msdos.inc
上传用户:xiaoan1112
上传日期:2013-04-11
资源大小:19621k
文件大小:6k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. ;***
  2. ;msdos.inc - MS-DOS definitions for C runtime
  3. ;
  4. ; Copyright (c) 1987-1988, Microsoft Corporation.  All rights reserved.
  5. ;
  6. ;Purpose:
  7. ; This file contains the MS-DOS definitions (DOS function request
  8. ; numbers, flags, etc) used by the C runtime.
  9. ;
  10. ;*******************************************************************************
  11. ;_NFILE equ 20 ; maximum # files per process
  12. STACKSLOP equ 256 ; stack slop for DOS interrupt overhead
  13. ; __osfile flag values for DOS file handles
  14. FOPEN equ 01H ; file handle open
  15. FEOFLAG equ 02H ; end of file has been encountered
  16. FCRLF equ 04H ; CR-LF across read buffer (in text mode)
  17. FPIPE equ 08H ; file handle refers to a pipe
  18. FRDONLY equ 10H ; file handle associated with read only file
  19. FAPPEND equ 20H ; file handle opened O_APPEND
  20. FDEV equ 40H ; file handle refers to device
  21. FTEXT equ 80H ; file handle is in text mode
  22. callos MACRO func
  23. ifnb <func>
  24. mov ah,DOS_&func
  25. endif
  26. int DOS
  27. ENDM
  28. DOS equ 21H ; MS-DOS interrupt
  29. DOS_exit equ 00000H ; exit offset (PSP:0000)
  30. DOS_maxpara equ 00002H ; maximum paragraph (PSP:0002)
  31. DOS_envp equ 0002cH ; environment address (PSP:002c)
  32. DOS_cmdline equ 00080H ; command line offset (PSP:0080)
  33. DOS_kill equ 00H ; terminate
  34. DOS_echoread equ 01H ; read keyboard and echo
  35. DOS_display equ 02H ; display character
  36. DOS_auxinput equ 03H ; auxiliary input
  37. DOS_auxoutput equ 04H ; auxiliary output
  38. DOS_print equ 05H ; print character
  39. DOS_conio equ 06H ; direct console i/o
  40. DOS_coninput equ 07H ; direct console input
  41. DOS_readkbd equ 08H ; read keyboard
  42. DOS_message equ 09H ; display string
  43. DOS_bufkbdin equ 0aH ; buffered keyboard input
  44. DOS_kbdstatus equ 0bH ; check keyboard status
  45. DOS_flshread equ 0cH ; flush buffer and read keyboard
  46. DOS_diskreset equ 0dH ; disk reset
  47. DOS_selectdisk equ 0eH ; select default disk
  48. DOS_fcbopen equ 0fH ; open file with fcb
  49. DOS_fcbclose equ 10H ; close file with fcb
  50. DOS_fcbfirst equ 11H ; search for first entry with fcb
  51. DOS_fcbnext equ 12H ; search for next entry with fcb
  52. DOS_fcbdelete equ 13H ; delete file with fcb
  53. DOS_fcbsread equ 14H ; sequential read with fcb
  54. DOS_fcbswrite equ 15H ; sequential write with fcb
  55. DOS_fcbcreate equ 16H ; create file with fcb
  56. DOS_fcbrename equ 17H ; rename file with fcb
  57. DOS_currentd equ 19H ; current default disk
  58. DOS_setDMA equ 1aH ; set DMA
  59. DOS_fcbrread equ 21H ; random read with fcb
  60. DOS_fcbrwrite equ 22H ; random write with fcb
  61. DOS_fcbsize equ 23H ; file size with fcb
  62. DOS_fcbsetrec equ 24H ; set relative record with fcb
  63. DOS_setvector equ 25H ; set interrupt vector
  64. DOS_fcbbread equ 27H ; random block read with fcb
  65. DOS_fcbbwrite equ 28H ; random block write with fcb
  66. DOS_fcbparse equ 29H ; parse file name with fcb
  67. DOS_getdate equ 2aH ; get date
  68. DOS_setdate equ 2bH ; set date
  69. DOS_gettime equ 2cH ; get time
  70. DOS_settime equ 2dH ; set time
  71. DOS_verify equ 2eH ; set/reset verify flag
  72. DOS_getDMA equ 2fH ; get DMA
  73. DOS_version equ 30H ; get version number
  74. DOS_keep equ 31H ; keep process
  75. DOS_cntlc equ 33H ; Cntl-C check
  76. DOS_getvector equ 35H ; get interrupt vector
  77. DOS_getdskspc equ 36H ; get disk free space
  78. DOS_country equ 38H ; get country dependent info
  79. DOS_mkdir equ 39H ; make subdirectory
  80. DOS_rmdir equ 3aH ; remove subdirectory
  81. DOS_chdir equ 3bH ; change subdirectory
  82. DOS_create equ 3cH ; create pathname
  83. DOS_open equ 3dH ; open pathname
  84. DOS_close equ 3eH ; close file handle
  85. DOS_read equ 3fH ; read from file handle
  86. DOS_write equ 40H ; write from file handle
  87. DOS_delete equ 41H ; delete pathname
  88. DOS_lseek equ 42H ; move file pointer
  89. DOS_filemode equ 43H ; get/set attributes of pathname
  90. DOS_ioctl equ 44H ; ioctl for devices
  91. DOS_dup equ 45H ; duplicate file handle
  92. DOS_forcedup equ 46H ; force duplicate file handle
  93. DOS_curdir equ 47H ; get current directory
  94. DOS_allocmem equ 48H ; allocate memory block
  95. DOS_freemem equ 49H ; free memory block
  96. DOS_setmem equ 4aH ; set size of memory block
  97. DOS_exec equ 4bH ; load and execute program
  98. DOS_terminate equ 4cH ; terminate process with errorcode
  99. DOS_wait equ 4dH ; get child process return code
  100. DOS_findfirst equ 4eH ; find first file match
  101. DOS_findnext equ 4fH ; find next file match
  102. DOS_getverify equ 54H ; return current verify flag
  103. DOS_rename equ 56H ; rename pathname
  104. DOS_filedate equ 57H ; get/set file handle date/time
  105. DOS_createnew equ 5BH ; create new file
  106. DOS_locking equ 5CH ; file record locking/unlocking
  107. DOS_sleep equ 89H ; delay process execution
  108. ; DOS error codes
  109. doserr MACRO num,name,text
  110. name equ num
  111. ENDM
  112. doserr 1, E_ifunc, <invalid function code>
  113. doserr 2, E_nofile, <file not found>
  114. doserr 3, E_nopath, <path not found>
  115. doserr 4, E_toomany, <too many open files>
  116. doserr 5, E_access, <access denied>
  117. doserr 6, E_ihandle, <invalid handle>
  118. doserr 7, E_arena, <arena trashed>
  119. doserr 8, E_nomem, <not enough memory>
  120. doserr 9, E_iblock, <invalid block>
  121. doserr 10, E_badenv, <bad environment>
  122. doserr 11, E_badfmt, <bad format>
  123. doserr 12, E_iaccess, <invalid access code>
  124. doserr 13, E_idata, <invalid data>
  125. doserr 14, E_unknown, <??? unknown error ???>
  126. doserr 15, E_idrive, <invalid drive>
  127. doserr 16, E_curdir, <current directory>
  128. doserr 17, E_difdev, <not same device>
  129. doserr 18, E_nomore, <no more files>
  130. doserr 19, E_maxerr2, <unknown error - Version 2.0>
  131. ; the following errors can occur only in DOS 3.0
  132. doserr 32, E_sharerr, <sharing violation>
  133. doserr 33, E_lockerr, <locking violation>
  134. doserr 34, E_maxerr3, <unknown error - Version 3.0>
  135. ; DOS file attributes
  136. A_ro equ 01H ; read-only file
  137. A_h equ 02H ; hidden
  138. A_s equ 04H ; system
  139. A_v equ 08H ; volume ID
  140. A_d equ 10H ; directory
  141. A_a equ 20H ; archive
  142. A_mod equ A_ro+A_h+A_s+A_a ; modifiable attributes
  143. ; OS/2 file creation bits
  144. F_CREATFLAG equ 10h
  145. F_OPENFLAG  equ 01h
  146. F_TRUNCFLAG equ 02H
  147. ; OS/2 device mask
  148. IS_DEV equ 1
  149. IS_PIPE equ 2
  150. ; end of msdos.inc
  151. ;-----------------------------------------------------------------------