FARCALL.LST 79 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175
  1. FAR CALL Interface List Release 60 Last change 03jan99
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  3. =============================================
  4. >CALL 0000h:0000h - Sample Entry
  5. >Program: description of the program(s) providing the API
  6. >InstallCheck: how to determine CALL address if variable, whether it is
  7. > available if address is fixed
  8. >Note: any notes related to the API
  9. >SeeAlso: related APIs, and interrupt entries for this API in INTERRUP.*
  10. >
  11. >Call entry point with:
  12. > input registers
  13. >Return: result registers
  14. >
  15. >Format of data:
  16. >Offset Size Description
  17. > 00h ... ...
  18. =============================================
  19. --------D-@00600000--------------------------
  20. CALL 0060h:0000h - Eagle MS-DOS v1.25 IO.SYS - INITIALIZE
  21. InstallCheck: MS-DOS v1.25 must be installed
  22. Note: this function should only be called by MSDOS.SYS
  23. SeeAlso: @0060h:0003h,@0060h:0039h
  24. --------D-@00600003--------------------------
  25. CALL 0060h:0003h - Eagle MS-DOS v1.25 IO.SYS - CHECK FOR KEYSTROKE
  26. InstallCheck: MS-DOS v1.25 must be installed
  27. Note: does not return extended keystrokes
  28. SeeAlso: @0060h:0000h,@0060h:0006h,@0060h:0027h
  29. (Table F0001)
  30. Call Eagle MS-DOS entry point 0003h with:
  31. nothing
  32. Return: ZF set if no key
  33. ZF clear if keystroke available
  34. AL = keystroke
  35. --------D-@00600006--------------------------
  36. CALL 0060h:0006h - Eagle MS-DOS v1.25 IO.SYS - WAIT FOR KEYSTROKE
  37. InstallCheck: MS-DOS v1.25 must be installed
  38. Notes: if an extended keystroke is available, only the low byte is returned,
  39. and this function must be called again to get the high byte
  40. the BIOS keycode 0000h (Ctrl-Break) is returned as 00h+FFh to avoid
  41. the ambiguity that might be caused by returning the 00h high byte
  42. SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:0027h
  43. (Table F0002)
  44. Call Eagle MS-DOS entry point 0006h with:
  45. nothing
  46. Return: AL = keystroke
  47. flags modified
  48. --------D-@00600009--------------------------
  49. CALL 0060h:0009h - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHARACTER TO SCREEN
  50. InstallCheck: MS-DOS v1.25 must be installed
  51. Note: this entry point supports most of the ANSI.SYS control sequences,
  52. plus several additional escape sequences
  53. SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:000Ch
  54. (Table F0003)
  55. Call Eagle MS-DOS entry point 0009h with:
  56. AL = character to output
  57. Return: flags modified
  58. --------D-@0060000C--------------------------
  59. CALL 0060h:000Ch - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHARACTER TO PRINTER
  60. InstallCheck: MS-DOS v1.25 must be installed
  61. Note: this entry point is able, if set by configuration (see @0060h:0039h),
  62. to strip linefeed characters following carriage returns
  63. SeeAlso: @0060h:0000h,@0060h:0009h
  64. (Table F0004)
  65. Call Eagle MS-DOS entry point 000Ch with:
  66. AL = character to be printed
  67. Return: flags modified
  68. --------D-@0060000F--------------------------
  69. CALL 0060h:000Fh - Eagle MS-DOS v1.25 IO.SYS - INPUT CHAR FROM AUX: DEVICE
  70. InstallCheck: MS-DOS v1.25 must be installed
  71. Note: if the configured AUX: device is a parallel port, this call always
  72. returns a Ctrl-Z as the "read" character; Ctrl-Z is also returned
  73. if the user presses Esc or Ctrl-Break while waiting for a character
  74. to arrive on a serial port
  75. SeeAlso: @0060h:0000h
  76. (Table F0005)
  77. Call Eagle MS-DOS entry point 000Fh with:
  78. nothing
  79. Return: AL = received character
  80. --------D-@00600012--------------------------
  81. CALL 0060h:0012h - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHAR TO AUX: DEVICE
  82. InstallCheck: MS-DOS v1.25 must be installed
  83. Note: if the port is busy, this function waits until the port becomes
  84. available or the user presses Esc or Ctrl-Break
  85. SeeAlso: @0060h:0000h
  86. (Table F0006)
  87. Call Eagle MS-DOS entry point 0012h with:
  88. AL = character to output
  89. Return: flags modified
  90. --------D-@00600015--------------------------
  91. CALL 0060h:0015h - Eagle MS-DOS v1.25 IO.SYS - READ ABSOLUTE SECTOR(S)
  92. InstallCheck: MS-DOS v1.25 must be installed
  93. SeeAlso: @0060h:0000h,@0060h:0018h,@0060h:001Bh
  94. (Table F0007)
  95. Call Eagle MS-DOS entry point 0015h with:
  96. AL = drive table number
  97. ES:BX -> buffer
  98. CX = number of sectors to read
  99. DX = logical sector number of first sector
  100. AH = verify flag
  101. Return: CF clear if successful
  102. CF set on error
  103. AL = error code
  104. 0Ch drive table number out of range
  105. Note: the drive number in AL is *not* the logical DOS drive number, but
  106. the number of an internal data table; multiple data tables, each
  107. describing a distinct disk format, may be shared by one logical
  108. drive
  109. --------D-@00600018--------------------------
  110. CALL 0060h:0018h - Eagle MS-DOS v1.25 IO.SYS - WRITE ABSOLUTE SECTOR(S)
  111. InstallCheck: MS-DOS v1.25 must be installed
  112. SeeAlso: @0060h:0000h,@0060h:0015h,@0060h:001Bh
  113. (Table F0008)
  114. Call Eagle MS-DOS entry point 0018h with:
  115. AL = drive table number
  116. ES:BX -> data to be written
  117. CX = number of sectors to write
  118. DX = logical sector number of first sector
  119. AH = verify flag
  120. Return: CF clear if successful
  121. CF set on error
  122. AL = error code
  123. 0Ch drive table number out of range
  124. Note: the drive number in AL is *not* the logical DOS drive number, but
  125. the number of an internal data table; multiple data tables, each
  126. describing a distinct disk format, may be shared by one logical
  127. drive
  128. --------D-@0060001B--------------------------
  129. CALL 0060h:001Bh - Eagle MS-DOS v1.25 IO.SYS - DETERMINE DISK FORMAT
  130. InstallCheck: MS-DOS v1.25 must be installed
  131. SeeAlso: @0060h:0000h,@0060h:0015h,@0060h:002Ah
  132. (Table F0009)
  133. Call Eagle MS-DOS entry point 001Bh with:
  134. AL = DOS drive number
  135. Return: CF clear if successful
  136. AL = drive table number
  137. AH = ??? flag
  138. 00h ???
  139. FFh ???
  140. CF set on error
  141. AL = error code
  142. 02h ???
  143. 0Ch unrecognized format
  144. --------D-@0060001E--------------------------
  145. CALL 0060h:001Eh - Eagle MS-DOS v1.25 IO.SYS - SET DAY COUNT
  146. InstallCheck: MS-DOS v1.25 must be installed
  147. SeeAlso: @0060h:0000h,@0060h:0021h,@0060h:0024h
  148. (Table F0010)
  149. Call Eagle MS-DOS entry point 001Eh with:
  150. AX = day count
  151. Return: nothing
  152. --------D-@00600021--------------------------
  153. CALL 0060h:0021h - Eagle MS-DOS v1.25 IO.SYS - SET SYSTEM TIME
  154. InstallCheck: MS-DOS v1.25 must be installed
  155. SeeAlso: @0060h:0000h,@0060h:001Eh,@0060h:0024h
  156. (Table F0011)
  157. Call Eagle MS-DOS entry point 0021h with:
  158. CH = hours
  159. CL = minutes
  160. DH = seconds
  161. DL = hundredths
  162. Return: flags modified
  163. --------D-@00600024--------------------------
  164. CALL 0060h:0024h - Eagle MS-DOS v1.25 IO.SYS - READ SYSTEM TIME
  165. InstallCheck: MS-DOS v1.25 must be installed
  166. SeeAlso: @0060h:0000h,@0060h:001Eh,@0060h:0021h
  167. (Table F0012)
  168. Call Eagle MS-DOS entry point 0024h with:
  169. nothing
  170. Return: AX = day count
  171. CH = hours
  172. CL = minutes
  173. DH = seconds
  174. DL = hundredths
  175. --------D-@00600027--------------------------
  176. CALL 0060h:0027h - Eagle MS-DOS v1.25 IO.SYS - CLEAR KEYBOARD BUFFER
  177. InstallCheck: MS-DOS v1.25 must be installed
  178. SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:0006h
  179. (Table F0013)
  180. Call Eagle MS-DOS entry point 0027h with:
  181. nothing
  182. Return: ZF set
  183. --------D-@0060002A--------------------------
  184. CALL 0060h:002Ah - Eagle MS-DOS v1.25 IO.SYS - SEARCH FOR NEXT DISK FORMAT
  185. InstallCheck: MS-DOS v1.25 must be installed
  186. SeeAlso: @0060h:0000h,@0060h:001Bh
  187. (Table F0014)
  188. Call Eagle MS-DOS entry point 002Ah with:
  189. AL = drive table number
  190. Return: AL = next drive table number with matching disk sector size and media
  191. ID byte
  192. --------D-@00600039--------------------------
  193. CALL 0060h:0039h - Eagle MS-DOS v1.25 IO.SYS - CONFIGURE FROM SYSINFO.SYS
  194. InstallCheck: MS-DOS v1.25 must be installed
  195. Note: reads the first 144 bytes of SYSINFO.SYS from the current drive into
  196. an internal configuration buffer
  197. SeeAlso: @0060h:0000h
  198. --------V-@C0000003--------------------------
  199. CALL C000h:0003h - VIDEO BIOS INITIALIZATION
  200. InstallCheck: C000h:0000h must contain the word AA55h and the
  201. 512*BYTE[C000h:0002h] bytes must sum to 00h (mod 256)
  202. Note: is normally called only by the System ROM BIOS initialization code
  203. --------V-@C0000064--------------------------
  204. CALL C000h:0064h U - ATI Mach32 VIDEO BIOS - ???
  205. InstallCheck: ATI Mach32 video board must be installed
  206. SeeAlso: @C000h:0068h"Mach32",@C000h:006Ch,@C000h:0070h
  207. (Table F0015)
  208. Call ATI Mach32 entry point with:
  209. AL = function
  210. 00h ???
  211. 01h,02h ???
  212. 11h,12h ???
  213. 21h,22h ???
  214. 41h,42h ???
  215. 81h,82h ???
  216. Return: CF clear if successful
  217. CF set on error
  218. --------V-@C0000064--------------------------
  219. CALL C000h:0064h U - ATI Mach64 VIDEO BIOS - ALTERNATE INT 10/AH=A0h (IRET)
  220. InstallCheck: ATI Mach64 video board must be installed
  221. SeeAlso: @C000h:0068h"Mach64",INT 10/AH=A0h"Mach64"
  222. --------V-@C0000068--------------------------
  223. CALL C000h:0068h U - ATI Mach32 VIDEO BIOS - ???
  224. InstallCheck: ATI Mach32 video board must be installed
  225. SeeAlso: @C000h:0064h"Mach32",@C000h:006Ch,@C000h:0070h
  226. (Table F0016)
  227. Call ATI Mach32 entry point with:
  228. AL = ??? (00h-02h)
  229. ???
  230. Return: ???
  231. --------V-@C0000068--------------------------
  232. CALL C000h:0068h U - ATI Mach64 VIDEO BIOS - ALTERNATE INT 10/AH=A0h (RETF)
  233. InstallCheck: ATI Mach64 video board must be installed
  234. SeeAlso: @C000h:0064h"Mach64",INT 10/AH=A0h"Mach64"
  235. --------V-@C000006C--------------------------
  236. CALL C000h:006Ch - ATI Mach32 VIDEO BIOS -
  237. InstallCheck: ATI Mach32 video board must be installed
  238. SeeAlso: @C000h:0064h,@C000h:0068h,@C000h:0070h
  239. (Table F0017)
  240. Call ATI Mach32 entry point with:
  241. AL = function
  242. 00h get ???
  243. Return: AX = ??? (019Eh)
  244. 01h get ??? information
  245. ES:BX -> buffer for ??? information (see #F0018)
  246. Return: buffer filled
  247. 02h get ???
  248. Return: AX = ??? (0250h)
  249. BX = ??? (0A00h)
  250. CX = ??? (0200h)
  251. DX = ??? (0003h)
  252. Return: CF clear if successful
  253. CF set if invalid function
  254. all other registers preserved
  255. Note: officially (Programmer's Reference Guide), interrupts should be
  256. disabled (CLI) during a function 01h call
  257. Format of ATI Mach32 ??? information:
  258. Offset Size Description (Table F0018)
  259. 00h WORD number of bytes of data returned (0116h for tested BIOS)
  260. 02h 2 BYTEs ??? (00h 00h and 00h 05h seen)
  261. 04h WORD offset of video mode records??? (0028h)
  262. 06h BYTE length of one video mode record??? (22h)
  263. 07h BYTE ???
  264. 08h BYTE ??? (00h/01h, reflects bit 1 of port 36EEh)
  265. 09h BYTE ??? (01h)
  266. 0Ah BYTE ???
  267. 0Bh BYTE memory size
  268. 00h = 256K, 01h = 512K, 02h = 1024K, 03h = 2M, 04h = 4M
  269. 0Ch BYTE ???
  270. 0Dh BYTE ???
  271. 0Eh BYTE ???
  272. 0Fh BYTE ??? (bits 6-4 of port 42E8h)
  273. 10h BYTE ???
  274. 11h BYTE ???
  275. 12h BYTE ???
  276. 13h BYTE ???
  277. 14h WORD ???
  278. 16h BYTE ???
  279. 17h BYTE ???
  280. 18h BYTE ???
  281. 19h 14 BYTEs unused
  282. 27h BYTE scratch byte used by ROM code
  283. 28h 34N BYTEs ??? video mode records (see #F0019)
  284. SeeAlso: #F0017
  285. Format of ATI Mach32 ??? video mode record:
  286. Offset Size Description (Table F0019)
  287. 00h WORD horizontal resolution in pixels
  288. 02h WORD vertical resolution in pixels
  289. 04h 30 BYTEs ???
  290. SeeAlso: #F0018
  291. --------V-@C0000070--------------------------
  292. CALL C000h:0070h U - ATI Mach32 VIDEO BIOS - ???
  293. InstallCheck: ATI Mach32 video board must be installed
  294. SeeAlso: @C000h:0064h,@C000h:0068h,@C000h:006Ch
  295. (Table F0020)
  296. Call ATI Mach32 entry point with:
  297. AH = function
  298. 00h ???
  299. 01h ???
  300. 02h ???
  301. AL = subfunction
  302. 00h ???
  303. 01h ???
  304. 03h ???
  305. AL = ??? (00h/nonzero)
  306. Return: CF clear if successful
  307. CF set on error
  308. --------B-@F000E739--------------------------
  309. CALL F000h:E739h - ROM BIOS INT 14 HANDLER
  310. InstallCheck: present if BIOS is 100% compatible with original IBM PC
  311. --------B-@F000E82E--------------------------
  312. CALL F000h:E82Eh - ROM BIOS INT 16 HANDLER
  313. InstallCheck: present if BIOS is 100% compatible with original IBM PC
  314. --------B-@F000EC59--------------------------
  315. CALL F000h:EC59h - ROM BIOS INT 13 HANDLER
  316. InstallCheck: present if BIOS is 100% compatible with original IBM PC
  317. --------B-@F000EFD2--------------------------
  318. CALL F000h:EFD2h - ROM BIOS INT 17 HANDLER
  319. InstallCheck: present if BIOS is 100% compatible with original IBM PC
  320. --------B-@F000F065--------------------------
  321. CALL F000h:F065h - ROM BIOS INT 10 HANDLER
  322. InstallCheck: present if BIOS is 100% compatible with original IBM PC
  323. --------B-@F000F841--------------------------
  324. CALL F000h:F841h - ROM BIOS INT 12 HANDLER
  325. InstallCheck: present if BIOS is 100% compatible with original IBM PC
  326. --------B-@F000F84D--------------------------
  327. CALL F000h:F84Dh - ROM BIOS INT 11 HANDLER
  328. InstallCheck: present if BIOS is 100% compatible with original IBM PC
  329. --------B-@F000F859--------------------------
  330. CALL F000h:F859h - ROM BIOS INT 15 HANDLER
  331. InstallCheck: present if BIOS is 100% compatible with original IBM PC
  332. --------B-@F000FE6E--------------------------
  333. CALL F000h:FE6Eh - ROM BIOS INT 1A HANDLER
  334. InstallCheck: present if BIOS is 100% compatible with original IBM PC
  335. --------H-@F000FFF0--------------------------
  336. CALL F000h:FFF0h - COLD-BOOT ADDRESS
  337. InstallCheck: always present
  338. SeeAlso: @FFFFh:0000h
  339. --------H-@FFFF0000--------------------------
  340. CALL FFFFh:0000h - COLD-BOOT ADDRESS
  341. InstallCheck: always present
  342. Note: this address is another way of expressing F000h:FFF0h
  343. SeeAlso: @F000h:FFF0h
  344. --------m-@xxxxxxxx--------------------------
  345. CALL xxxxh:xxxxh - 10NET - 10MEMMGR.SYS
  346. InstallCheck: see INT 21/AX=4402h"10MEMMGR"
  347. SeeAlso: INT 21/AX=4402h"10MEMMGR"
  348. --------t-@xxxxxxxx--------------------------
  349. CALL xxxxh:xxxxh - Alternate Multiplex Interrupt Specification TSRs
  350. InstallCheck: see INT 2D"AMIS"
  351. SeeAlso: INT 2D"AMIS"
  352. ----------@xxxxxxxx--------------------------
  353. CALL xxxxh:xxxxh - AutoCAD Device Interface
  354. InstallCheck: see INT 7A/AX=0001h
  355. SeeAlso: INT 7A/AX=0001h
  356. ----------@xxxxxxxx---------------------------
  357. CALL xxxxh:xxxxh - BIOS32 Service Directory
  358. InstallCheck: scan paragraph boundaries E000h to FFFFh for signature string
  359. "_32_", followed by a valid header structure (see #F0021)
  360. Notes: a 32-bit-code alternate PCI BIOS entry point may be found (if
  361. supported) by requesting the entry point for the API with
  362. identifier "$PCI"
  363. an alternate entry point for INT 1A/AH=B4h may be found (if
  364. supported) by requesting the entry point for the API with identifier
  365. "$ACF"
  366. other known identifiers are "$WDS" and "MPTN"
  367. SeeAlso: INT 1A/AX=B100h
  368. Format of BIOS32 Service Directory header structure:
  369. Offset Size Description (Table F0021)
  370. 00h 4 BYTEs signature "_32_"
  371. 04h DWORD physical address of BSD entry point (see #F0022)
  372. 08h BYTE header structure version number (currently 00h)
  373. 09h BYTE header structure length in paragraphs (currently 01h)
  374. 0Ah BYTE checksum (8-bit sum of all bytes in structure, including this
  375. one, should equal zero)
  376. 0Bh 5 BYTEs reserved (0)
  377. (Table F0022)
  378. Call BIOS32 Service Directory entry point with:
  379. EBX = function
  380. 00000000h get service entry point
  381. EAX = service identifier
  382. 46434124h ("FCA$") Plug-and-Play Auto-Configuration
  383. 49435024h ("ICP$") PCI BIOS
  384. 4E54504Dh ("NTPM") ??? MPTN [PhoenixBIOS4 Rev. 6.0]
  385. 54435724h ("SDW$") ??? WDS$ [PhoenixBIOS4 Rev. 6.0]
  386. Return: AL = status
  387. 00h successful
  388. EBX = base address of handler's code seg
  389. ECX = size of code segment
  390. EDX = offset of handler in code seg
  391. 80h unknown service identifier
  392. else
  393. Return: AL = 81h invalid function
  394. Notes: the BSD handler assumes that it is running in a 32-bit code segment
  395. the returned entry points for PCI BIOS and Auto-Config must be called
  396. with the same registers as the real-mode INT 1Ah interface,
  397. including the value B1h or B4h in AH (AMI BIOS v1.00.05.AX1 returns
  398. the same entry point for both interfaces and uses AH to distinguish
  399. which API is desired)
  400. some references indicate that only BL is used for the function number,
  401. though at least one implementation actually checks the entire EBX
  402. register; for maximum compatibility, the upper 24 bits of EBX should
  403. be cleared when calling the entry point
  404. SeeAlso: #F0021
  405. --------E-@xxxxxxxx--------------------------
  406. CALL xxxxh:xxxxh - Borland TKERNEL
  407. InstallCheck: see INT 2F/AX=FBA1h/BX=0082h
  408. SeeAlso: INT 2F/AX=FBA1h/BX=0082h
  409. ----------@xxxxxxxx--------------------------
  410. CALL xxxxh:xxxxh - Buffit v3.0
  411. InstallCheck: see INT 60"Buffit"
  412. SeeAlso: INT 60"Buffit"
  413. --------m-@xxxxxxxx--------------------------
  414. CALL xxxxh:xxxxh - CEMM v5.10+ Private API
  415. InstallCheck: see INT 21/AX=4402h/SF=00h
  416. SeeAlso: INT 21/AX=4402h/SF=00h
  417. --------m-@xxxxxxxx--------------------------
  418. CALL xxxxh:xxxxh - Cloaking - PROTECTED-MODE API
  419. InstallCheck: see INT 2C/AX=001Dh
  420. SeeAlso: INT 2C/AX=001Dh
  421. --------m-@xxxxxxxx--------------------------
  422. CALL xxxxh:xxxxh - Cloaking - REAL-MODE API
  423. InstallCheck: see INT 2F/AX=4310h"Cloaking"
  424. SeeAlso: INT 2F/AX=4310h"Cloaking"
  425. ----------@xxxxxxxx--------------------------
  426. CALL xxxxh:xxxxh - CTMMSYS.SYS - API
  427. Program: CTMMSYS.SYS is the Creative DOS Multimedia Architecture Integration
  428. driver
  429. InstallCheck: see INT 21/AX=4402h"CTMMSYS"
  430. SeeAlso: INT 21/AX=4402h"CTMMSYS"
  431. --------Q-@xxxxxxxx--------------------------
  432. CALL xxxxh:xxxxh - DESQview XDI - Driver API
  433. InstallCheck: see INT 2F/AX=DE01h
  434. SeeAlso: INT 2F/AX=DE01h
  435. --------D-@xxxxxxxx--------------------------
  436. CALL xxxxh:xxxxh - DOS Device Drivers
  437. InstallCheck: see INT 21/AH=52h
  438. SeeAlso: INT 21/AH=52h
  439. --------E-@xxxxxxxx--------------------------
  440. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - MODE SWITCH
  441. InstallCheck: see INT 2F/AX=1687h
  442. SeeAlso: INT 2F/AX=1687h
  443. --------E-@xxxxxxxx--------------------------
  444. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - Phar Lap RUN286
  445. InstallCheck: see INT 2F/AX=168Ah
  446. SeeAlso: INT 2F/AX=168Ah
  447. --------E-@xxxxxxxx--------------------------
  448. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - Vendor-Specific APIs
  449. InstallCheck: see INT 31/AX=0A00h
  450. SeeAlso: INT 31/AX=0A00h
  451. --------E-@xxxxxxxx--------------------------
  452. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - Windows Support
  453. InstallCheck: see INT 2F/AX=168Ah
  454. SeeAlso: INT 2F/AX=168Ah
  455. --------E-@xxxxxxxx--------------------------
  456. CALL xxxxh:xxxxh - DOS Protected-Mode Services
  457. InstallCheck: see INT 2F/AX=43E0h
  458. SeeAlso: INT 2F/AX=43E1h
  459. --------T-@xxxxxxxx--------------------------
  460. CALL xxxxh:xxxxh - DOS Task Switcher - Callout
  461. InstallCheck: see INT 2F/AX=4B01h
  462. SeeAlso: INT 2F/AX=4B01h
  463. --------T-@xxxxxxxx--------------------------
  464. CALL xxxxh:xxxxh - DOS Task Switcher
  465. InstallCheck: see INT 2F/AX=4B02h
  466. SeeAlso: INT 2F/AX=4B02h
  467. ----------@xxxxxxxx--------------------------
  468. CALL xxxxh:xxxxh - Enhanced Parallel Port (EPP) BIOS
  469. InstallCheck: see INT 17/AX=0200h/BX=5050h
  470. SeeAlso: INT 17/AX=0200h/BX=5050h
  471. --------m-@xxxxxxxx--------------------------
  472. CALL xxxxh:xxxxh - Extended Memory Specification (XMS)
  473. InstallCheck: see INT 2F/AX=4300h
  474. SeeAlso: INT 2F/AX=4310h
  475. --------c-@xxxxxxxx--------------------------
  476. CALL xxxxh:xxxxh - FASTOPEN
  477. InstallCheck: see INT 2F/AX=122Ah
  478. SeeAlso: INT 2F/AX=122Ah
  479. --------m-@xxxxxxxx--------------------------
  480. CALL xxxxh:xxxxh - HIGHUMM.SYS
  481. InstallCheck: see INT 21/AX=4402h"HIGHUMM"
  482. SeeAlso: INT 21/AX=4402h"HIGHUMM"
  483. ----------@xxxxxxxx--------------------------
  484. CALL xxxxh:xxxxh - HugeRealMode Driver
  485. InstallCheck: see INT 78/AX=0000h,INT 78/AX=0001h
  486. SeeAlso: INT 78/AX=0001h
  487. --------V-@xxxxxxxx--------------------------
  488. CALL xxxxh:xxxxh - IBM 8514/A Adapter Interface (HDILOAD)
  489. InstallCheck: see INT 7F/AX=0105h
  490. SeeAlso: INT 7F/AX=0105h
  491. ----------@xxxxxxxx--------------------------
  492. CALL xxxxh:xxxxh - IBM 8516 Touch Screen Device Driver
  493. InstallCheck: see INT 7F/AX=ABCDh
  494. SeeAlso: INT 7F/AX=ABCDh
  495. --------u-@xxxxxxxx--------------------------
  496. CALL xxxxh:xxxxh - IBM System 36/38 Workstation Emulation
  497. InstallCheck: see INT 0C"SYSTEM 36/38"
  498. SeeAlso: INT 0C"SYSTEM 36/38"
  499. --------D-@xxxxxxxx--------------------------
  500. CALL xxxxh:xxxxh - IFS Drivers
  501. InstallCheck: see INT 21/AH=52h
  502. SeeAlso: INT 21/AH=52h
  503. --------W-@xxxxxxxx--------------------------
  504. CALL xxxxh:xxxxh - IFSHLP.SYS
  505. InstallCheck: see INT 21/AH=3Fh"IFSHLP"
  506. SeeAlso: INT 21/AH=3Fh"IFSHLP"
  507. --------b-@xxxxxxxx--------------------------
  508. CALL xxxxh:xxxxh - Intel BIOS Upgrade
  509. InstallCheck: scan paragraph boundaries from 0F0000h to 0FFFFFh for signature
  510. string "$IBU" (see #F0023)
  511. SeeAlso: INT 15/AX=D042h/BL=00h
  512. !!! IAL\PROCESSR\PPROBIOS.PDF page 60
  513. Format of Intel BIOS Upgrade header:
  514. Offset Size Description (Table F0023)
  515. 00h 4 BYTEs signature "$IBU"
  516. 04h BYTE IBU specification version (currently 01h = 1.0)
  517. 05h BYTE length of entire header structure in bytes (currently 17h)
  518. 06h BYTE checksum (forces 8-bit sum of all header bytes to 00h)
  519. 07h DWORD real-mode entry point address
  520. 0Bh WORD offset of 16-bit protected mode entry point
  521. 0Dh DWORD segment base address of 16-bit protected-mode entry point
  522. 11h WORD real-mode data segment address
  523. 13h DWORD segment base address of 16-bit protected-mode data segment
  524. Notes: calls from 32-bit protected mode may be made to the 16-bit entry
  525. point, but must ensure that any stack arguments are pushed as
  526. 16-bit values instead of 32-bit values
  527. the entry point uses standard C calling conventions to implement
  528. functions prototyped as
  529. int far (*entrypoint)(int function, ...)
  530. ----------@xxxxxxxx--------------------------
  531. CALL xxxxh:xxxxh - Interrupt Sharing Protocol
  532. InstallCheck: see INT 2D"AMIS"
  533. SeeAlso: INT 2D"AMIS"
  534. --------X-@xxxxxxxx--------------------------
  535. CALL xxxxh:xxxxh - Intel System Management Bus BIOS
  536. InstallCheck: see INT 15/AX=53B0h/BH=01h,INT 15/AX=53B0h/BH=02h
  537. SeeAlso: INT 15/AX=53B0h/BH=01h,INT 15/AX=53B0h/BH=05h
  538. --------G-@xxxxxxxx--------------------------
  539. CALL xxxxh:xxxxh - INTRSPY v1.0 only
  540. InstallCheck: see INT 60"INTRSPY"
  541. SeeAlso: INT 60"INTRSPY"
  542. --------m-@xxxxxxxx--------------------------
  543. CALL xxxxh:xxxxh - Memory Managers
  544. InstallCheck: see INT 21/AX=4402h/SF=00h
  545. SeeAlso: INT 21/AX=4402h/SF=00h
  546. --------m-@xxxxxxxx--------------------------
  547. CALL xxxxh:xxxxh - Microsoft EMM386.EXE
  548. InstallCheck: see INT 67/AX=FFA5h
  549. SeeAlso: INT 67/AX=FFA5h
  550. --------M-@xxxxxxxx--------------------------
  551. CALL xxxxh:xxxxh - Microsoft Mouse Driver - Alternate Entry Point
  552. InstallCheck: INT 33 must be non-NULL, and must not point at an IRET
  553. instruction; the alternate entry point is located two bytes past
  554. the INT 33 handler
  555. Note: this alternate entry point accepts the same arguments as the
  556. INT 33 interface, but is invoked with a FAR CALL instead of INT 33.
  557. SeeAlso: INT 33/AX=0000h
  558. --------k-@xxxxxxxx--------------------------
  559. CALL xxxxh:xxxxh - Microsoft Real-Time Compression Interface (MRCI)
  560. InstallCheck: see INT 1A/AX=B001h
  561. SeeAlso: INT 1A/AX=B001h
  562. --------N-@xxxxxxxx--------------------------
  563. CALL xxxxh:xxxxh - Microsoft Workgroup Connection - WORKGRP.SYS
  564. InstallCheck: see INT 21/AH=3Fh"WORKGRP.SYS"
  565. SeeAlso: INT 21/AX=4402h"WORKGRP.SYS"
  566. --------W-@xxxxxxxx--------------------------
  567. CALL xxxxh:xxxxh - MS Windows - DOSMGR Device
  568. InstallCheck: see INT 2F/AX=1684h/BX=0015h
  569. SeeAlso: INT 2F/AX=1684h/BX=0015h
  570. --------W-@xxxxxxxx--------------------------
  571. CALL xxxxh:xxxxh - MS Windows - EDOS Device
  572. InstallCheck: see INT 2F/AX=1684h/BX=2925h
  573. SeeAlso: INT 2F/AX=1684h/BX=2925h
  574. --------W-@xxxxxxxx--------------------------
  575. CALL xxxxh:xxxxh - MS Windows - POSTMSG Device
  576. InstallCheck: see INT 2F/AX=1684h/BX=8888h
  577. SeeAlso: INT 2F/AX=1684h/BX=8888h
  578. --------W-@xxxxxxxx--------------------------
  579. CALL xxxxh:xxxxh - MS Windows - REBOOT Device
  580. InstallCheck: see INT 2F/AX=1684h/BX=0009h
  581. SeeAlso: INT 2F/AX=1684h/BX=0009h
  582. --------W-@xxxxxxxx--------------------------
  583. CALL xxxxh:xxxxh - MS Windows - SHELL Device
  584. InstallCheck: see INT 2F/AX=1684h/BX=0017h
  585. SeeAlso: INT 2F/AX=1684h/BX=0017h
  586. --------W-@xxxxxxxx--------------------------
  587. CALL xxxxh:xxxxh - MS Windows - VADMAD Device
  588. InstallCheck: see INT 2F/AX=1684h/BX=0444h
  589. SeeAlso: INT 2F/AX=1684h/BX=0444h
  590. --------W-@xxxxxxxx--------------------------
  591. CALL xxxxh:xxxxh - MS Windows - VbillD Device
  592. InstallCheck: see INT 2F/AX=1684h/BX=8888h
  593. SeeAlso: INT 2F/AX=1684h/BX=8888h
  594. --------W-@xxxxxxxx--------------------------
  595. CALL xxxxh:xxxxh - MS Windows - VSWITCHD Device
  596. InstallCheck: see INT 2F/AX=1684h/BX=0750h
  597. SeeAlso: INT 2F/AX=1684h/BX=0750h
  598. --------W-@xxxxxxxx--------------------------
  599. CALL xxxxh:xxxxh - MS Windows - VTD Device
  600. InstallCheck: see INT 2F/AX=1684h/BX=0005h
  601. SeeAlso: INT 2F/AX=1684h/BX=0005h
  602. --------W-@xxxxxxxx--------------------------
  603. CALL xxxxh:xxxxh - MS Windows - WPS Device
  604. InstallCheck: see INT 2F/AX=1684h/BX=310Eh
  605. SeeAlso: INT 2F/AX=1684h/BX=310Eh
  606. --------m-@xxxxxxxx--------------------------
  607. CALL xxxxh:xxxxh - Netroom RM386 v6.00
  608. InstallCheck: see INT 2F/AX=4310h
  609. SeeAlso: INT 2F/AX=4310h
  610. --------N-@xxxxxxxx--------------------------
  611. CALL xxxxh:xxxxh - Novell - ODI Link Support Layer
  612. InstallCheck: see INT 2F/AX=C000h"LSL.COM"
  613. SeeAlso: INT 2F/AX=C000h"LSL.COM"
  614. --------O-@xxxxxxxx--------------------------
  615. CALL xxxxh:xxxxh - Novell DOS 7 DELWATCH.EXE
  616. InstallCheck: see INT 2F/AX=10FEh
  617. SeeAlso: INT 2F/AX=10FEh
  618. --------m-@xxxxxxxx--------------------------
  619. CALL xxxxh:xxxxh - Novell DOS 7 EMM386.EXE
  620. InstallCheck: see INT 2F/AX=12FFh/BX=0106h
  621. SeeAlso: INT 2F/AX=12FFh/BX=0106h
  622. --------N-@xxxxxxxx--------------------------
  623. CALL xxxxh:xxxxh - Novell NetWare - Access Server Driver
  624. InstallCheck: see INT 2F/AX=7AF1h
  625. SeeAlso: INT 2F/AX=7AF1h
  626. --------N-@xxxxxxxx--------------------------
  627. CALL xxxxh:xxxxh - Novell NetWare - DOS Requester
  628. InstallCheck: see INT 2F/AX=7A20h/BX=0000h
  629. SeeAlso: INT 2F/AX=7A20h/BX=0000h
  630. --------N-@xxxxxxxx--------------------------
  631. CALL xxxxh:xxxxh - Novell Netware - Event Service Layer
  632. InstallCheck: see INT 2F/AX=C000h"NESL"
  633. SeeAlso: INT 2F/AX=C000h"NESL"
  634. --------N-@xxxxxxxx--------------------------
  635. CALL xxxxh:xxxxh - Novell NetWare - IPX
  636. InstallCheck: see INT 2F/AX=7A00h
  637. SeeAlso: INT 2F/AX=7A00h
  638. --------N-@xxxxxxxx--------------------------
  639. CALL xxxxh:xxxxh - Novell NetWare - IPXODI
  640. InstallCheck: see INT 2F/AX=7A2Fh
  641. SeeAlso: INT 2F/AX=7A2Fh
  642. --------N-@xxxxxxxx--------------------------
  643. CALL xxxxh:xxxxh - Novell NetWare - TCP/IP Protocol Stack
  644. InstallCheck: see INT 2F/AX=7A40h
  645. SeeAlso: INT 2F/AX=7A40h
  646. --------N-@xxxxxxxx--------------------------
  647. CALL xxxxh:xxxxh - Novell NetWare - VLM
  648. InstallCheck: see INT 2F/AX=7A20h/BX=0000h
  649. SeeAlso: INT 2F/AX=7A20h/BX=0000h
  650. --------N-@xxxxxxxx--------------------------
  651. CALL xxxxh:xxxxh - Novell NetWare - VLM CallA
  652. InstallCheck: see INT 2F/AX=7A20h/BX=0001h
  653. SeeAlso: INT 2F/AX=7A20h/BX=0001h
  654. --------N-@xxxxxxxx--------------------------
  655. CALL xxxxh:xxxxh - Novell NetWare - VLM Multicast
  656. InstallCheck: see INT 2F/AX=7A20h/BX=0004h
  657. SeeAlso: INT 2F/AX=7A20h/BX=0004h
  658. --------N-@xxxxxxxx--------------------------
  659. CALL xxxxh:xxxxh - Novell NetWare - VLM Multiplex
  660. InstallCheck: see INT 2F/AX=7A20h/BX=0002h
  661. SeeAlso: INT 2F/AX=7A20h/BX=0002h
  662. --------N-@xxxxxxxx--------------------------
  663. CALL xxxxh:xxxxh - Novell NetWare - VLM Parse API
  664. InstallCheck: see INT 2F/AX=7A20h/BX=0003h
  665. SeeAlso: INT 2F/AX=7A20h/BX=0003h
  666. --------N-@xxxxxxxx--------------------------
  667. CALL xxxxh:xxxxh - Novell NetWare Lite - CLIENT
  668. InstallCheck: see INT 2F/AX=D800h
  669. SeeAlso: INT 2F/AX=D800h
  670. --------N-@xxxxxxxx--------------------------
  671. CALL xxxxh:xxxxh - Novell NetWare Lite - NLCACHE/NWCACHE
  672. InstallCheck: see INT 2F/AX=D8C0h
  673. SeeAlso: INT 2F/AX=D8C0h
  674. --------N-@xxxxxxxx--------------------------
  675. CALL xxxxh:xxxxh - Novell NetWare Lite - SERVER
  676. InstallCheck: see INT 2F/AX=D880h
  677. SeeAlso: INT 2F/AX=D880h
  678. --------R-@xxxxxxxx--------------------------
  679. CALL xxxxh:xxxxh - pcANYWHERE IV/LAN
  680. InstallCheck: see INT 21/AX=2B44h/BX=4D41h
  681. SeeAlso: INT 21/AX=2B44h/BX=4D41h
  682. --------X-@xxxxxxxx--------------------------
  683. CALL xxxxh:xxxxh - PCI BIOS v2.0c Protected-Mode API
  684. InstallCheck: see INT 1A/AX=B101h
  685. SeeAlso: INT 1A/AX=B101h
  686. ----------@xxxxxxxx--------------------------
  687. CALL xxxxh:xxxxh - PenDOS PENDEV.SYS
  688. InstallCheck: see INT 21/AX=4402h"PENDEV"
  689. SeeAlso: INT 21/AX=4402h"PENDEV"
  690. --------E-@xxxxxxxx--------------------------
  691. CALL xxxxh:xxxxh - Phar Lap 386/DOS-Extender v4.1
  692. InstallCheck: see INT 2F/AX=ED03h
  693. SeeAlso: INT 2F/AX=ED03h
  694. --------X-@xxxxxxxx--------------------------
  695. CALL xxxxh:xxxxh - Plug-and-Play BIOS v1.0A
  696. InstallCheck: scan paragraph boundaries F000h to FFFFh for signature string
  697. "$PnP" followed by a valid Plug-and-Play header structure
  698. (see #F0024)
  699. SeeAlso: @xxxxh:xxxxh"BIOS32 Service Directory",INT 1A/AH=B4h
  700. Format of Plug-and-Play Installation Structure:
  701. Offset Size Description (Table F0024)
  702. 00h 4 BYTEs signature "$PnP"
  703. 04h BYTE Plug-and-Play version (major in high nybble, BCD minor in low)
  704. 10h for current specification
  705. 05h BYTE length of Installation Structure in bytes
  706. 06h WORD control field
  707. bits 15-2 reserved
  708. bits 1-0: event notification mechanism
  709. 00 not supported
  710. 01 polling
  711. 10 asynchronous (interrupt time)
  712. 08h BYTE checksum (8-bit sum of all bytes in structure, including this
  713. one, should equal zero)
  714. 09h DWORD physical address of event notification flag if using polling
  715. (bit 0 set when a system even occurs)
  716. 0Dh WORD real mode entry offset (see #F0025)
  717. 0Fh WORD real mode code segment
  718. 11h WORD 16-bit protected mode entry point offset (see #F0025)
  719. 13h DWORD 16-bit protected mode code segment base address
  720. 17h DWORD OEM device identifier
  721. 1Bh WORD real mode data segment
  722. 1Dh DWORD 16-bit protected mode data segment base address
  723. (Table F0025)
  724. Call Plug-and-Play BIOS entry point with:
  725. STACK: WORD function number
  726. 0000h Get Number of System Device Nodes (see #F0026)
  727. 0001h Get System Device Node (see #F0027)
  728. 0002h Set System Device Node (see #F0028)
  729. 0003h Get Event (see #F0029)
  730. 0004h Send Message (see #F0031)
  731. 0005h Get Docking Station Information (see #F0033)
  732. 0006h reserved for future versions
  733. 0007h Select Primary Boot Devices (see #F0034)
  734. 0008h Get Primary Boot Devices (see #F0035)
  735. 0009h Set Statically Allocated Resource Information
  736. (see #F0037)
  737. 000Ah Get Statically Allocated Resource Information
  738. (see #F0038)
  739. 000Bh Get APM ID Table (see #F0039)
  740. 0040h Get Plug-and-Play ISA Configuration Structure
  741. (see #F0041)
  742. 0041h Get Extended System Configuration Data Info
  743. (see #F0043)
  744. 0042h Read Extended SYstem Configuration Data
  745. (see #F0044)
  746. 0043h Write Extended SYstem Configuration Data
  747. (see #F0045)
  748. ---Desktop Management Interface v2.0+---
  749. 0050h Get DMI Information (see #F0046)
  750. 0051h Get DMI structure (see #F0047)
  751. ---SMBIOS v2.1+ (formerly Desktop Management I'face---
  752. 0052h Set DMI structure (see #F0048)
  753. 0053h Get DMI structure-change information (see #F0051)
  754. 0054h SMBIOS control (see #F0053)
  755. 0055h Get GP Non-Volatile Storage info (see #F0056)
  756. 0056h Read GP Non-Volatile Storage data (see #F0057)
  757. 0057h Write GP Non-Volatile Storage data (see #F0058)
  758. 0058h-005Fh reserved for future use
  759. ---BIOS Boot Specification---
  760. 0060h Get Version and Installation Check (see #F0074)
  761. 0061h Get IPL Device Count (see #F0075)
  762. 0062h Get Boot Priority and IPL Table (see #F0076)
  763. 0063h Set Boot Priority (see #F0077)
  764. 0064h Get IPL Device from Last Boot (see #F0078)
  765. 0065h Get Boot First (see #F0079)
  766. 0066h Set Boot First (see #F0080)
  767. 0067h-006Fh reserved
  768. var function arguments
  769. WORD PnP BIOS writable segment/selector
  770. Return: AX = status (see #F0081)
  771. Notes: the caller must provide at least 1024 bytes of stack space for use by
  772. the Plug-and-Play BIOS
  773. this API is bi-modal; all calls are available in both real mode and
  774. 16-bit protected mode (if calling from 32-bit protected mode, care
  775. must be taken to ensure proper alignment of the stack arguments)
  776. SeeAlso: #F0024
  777. (Table F0026)
  778. Call Plug-and-Play BIOS function 00h with:
  779. STACK: WORD 0000h (function "Get Number of System Device Nodes")
  780. DWORD -> BYTE in which to return number of device nodes
  781. DWORD -> WORD in which to return size of largest device node
  782. WORD PnP BIOS writable segment/selector
  783. Return: AX = status (see #F0081)
  784. Note: the large-model C declaration is
  785. int (*entry)(int, unsigned char *, unsigned int *, unsigned int);
  786. (Table F0027)
  787. Call Plug-and-Play BIOS function 01h with:
  788. STACK: WORD 0001h (function "Get System Device Node")
  789. DWORD -> BYTE containing node number or handle
  790. DWORD -> buffer for device node
  791. WORD control flag
  792. bits 15-2 reserved (0)
  793. bit 1: get static config (values for next boot)
  794. bit 0: get current (dynamic) configuration
  795. WORD PnP BIOS writable segment/selector
  796. Return: AX = status (see #F0081)
  797. Notes: the large-model C declaration is
  798. int (*entry)(int, unsigned char *, DEV_NODE *, unsigned int,
  799. unsigned int);
  800. exactly one of the two defined bits in the control flag must be set
  801. (Table F0028)
  802. Call Plug-and-Play BIOS function 02h with:
  803. STACK: WORD 0002h (function "Set System Device Node")
  804. DWORD -> BYTE containing node number or handle
  805. DWORD -> buffer containing device node
  806. WORD control flag
  807. bits 15-2 reserved (0)
  808. bit 1: set static config (values for next boot)
  809. bit 0: set current (dynamic) configuration
  810. WORD PnP BIOS writable segment/selector
  811. Return: AX = status (see #F0081)
  812. Notes: the large-model C declaration is
  813. int (*entry)(int, unsigned char *, DEV_NODE *, unsigned int,
  814. unsigned int);
  815. exactly one of the two defined bits in the control flag must be set
  816. (Table F0029)
  817. Call Plug-and-Play BIOS function 03h with:
  818. STACK: WORD 0003h (function "Get Event")
  819. DWORD -> WORD buffer for event message identifier (see #F0030)
  820. WORD PnP BIOS writable segment/selector
  821. Return: AX = status (see #F0081)
  822. Note: the large-model C declaration is
  823. int (*entry)(int, unsigned int *, unsigned int);
  824. (Table F0030)
  825. Values for PnP Event Identifier:
  826. 0001h "ABOUT_TO_CHANGE_CONFIG" preliminary notification of changes, including
  827. docking and undocking
  828. 0002h "DOCK_CHANGED" devices have been added to or removed from system
  829. 0003h "SYSTEM_DEVICE_CHANGED" removable system devices have been inserted
  830. or removed
  831. 0004h "CONFIG_CHANGE_FAILED" error detected while atempting to add or remove
  832. devices
  833. 8000h-FFFEh OEM-defined events
  834. FFFFh "UNKNOWN_SYSTEM_EVENT"
  835. (Table F0031)
  836. Call Plug-and-Play BIOS function 04h with:
  837. STACK: WORD 0004h (function "Send Message")
  838. WORD message identifier (see #F0032)
  839. WORD PnP BIOS writable segment/selector
  840. Return: AX = status (see #F0081)
  841. Note: the large-model C declaration is
  842. int (*entry)(int, unsigned int, unsigned int);
  843. SeeAlso: #F0031,#F0033
  844. (Table F0032)
  845. Values for PnP Message Identifier:
  846. 0000h "OK"
  847. 0001h "ABORT" action which caused an ABOUT_TO_X message
  848. 0002h-003Fh reserved for future Response Messages
  849. 0040h "UNDOCK_DEFAULT_ACTION"
  850. 0041h "POWER_OFF"
  851. 0042h "PNP_OS_ACTIVE"
  852. 0043h "PNP_OS_INACTIVE"
  853. 0044h-007Fh reserved for future Control Messages
  854. 8000h-FFFFh OEM-defined messages
  855. (Table F0033)
  856. Call Plug-and-Play BIOS function 05h with:
  857. STACK: WORD 0005h (function "Get Docking Station Information")
  858. DWORD -> buffer for docking station info (see #F0036)
  859. WORD PnP BIOS writable segment/selector
  860. Return: AX = status (see #F0081)
  861. Note: the large-model C declaration is
  862. int (*entry)(int, unsigned char *, unsigned int);
  863. SeeAlso: #F0031,#F0034
  864. (Table F0034)
  865. Call Plug-and-Play BIOS function 07h with:
  866. STACK: WORD 0007h (function "Select Primary Boot Devices")
  867. WORD type of primary boot device
  868. 0000h primary input
  869. 0001h primary output
  870. 0002h primary IPL
  871. DWORD Plug-and-Play 32-bit device ID or FFFFFFFFh for ISA
  872. DWORD device serial number or FFFFFFFFh
  873. DWORD 32-bit logical device ID or FFFFFFFFh for ISA device
  874. WORD physical unit number
  875. WORD control flag
  876. bits 15-1 reserved (0)
  877. bit 0: do not check for attached device during PnP POST
  878. boot device selection
  879. DWORD -> preferred resource allocation or -> END_TAG if none
  880. WORD PnP BIOS writable segment/selector
  881. Return: AX = status (see #F0081)
  882. Note: the large-model C declaration is
  883. int (*entry)(int, int, unsigned long, unsigned long, unsigned long,
  884. int, int, char *, unsigned int);
  885. (Table F0035)
  886. Call Plug-and-Play BIOS function 08h with:
  887. STACK: WORD 0008h (function "Get Primary Boot Devices")
  888. WORD type of primary boot device
  889. 0000h primary input
  890. 0001h primary output
  891. 0002h primary IPL
  892. DWORD -> DWORD buffer for Plug-and-Play 32-bit device ID
  893. DWORD -> DWORD buffer for device serial number
  894. DWORD -> DWORD buffer for logical device ID
  895. DWORD -> WORD buffer for physical unit number
  896. DWORD -> buffer for preferred resource allocation
  897. WORD PnP BIOS writable segment/selector
  898. Return: AX = status (see #F0081)
  899. Note: the large-model C declaration is
  900. int (*entry)(int, int, unsigned long *, unsigned long *,
  901. unsigned long *, unsigned int *, char *, unsigned int);
  902. Format of Plug-and-Play Docking Station Information:
  903. Offset Size Description (Table F0036)
  904. 00h DWORD docking station location identifier (EISA device ID format)
  905. FFFFFFFFh if unknown or no product identifier
  906. 04h DWORD serial number or 00000000h
  907. 08h WORD capabilities
  908. bits 15-3 reserved (0)
  909. bits 2-1: hot-pluggability
  910. 00 power-down required to dock/undock
  911. 01 must be in suspend mode ("warm" dock/undock)
  912. 10 system can be hot-docked
  913. 11 reserved
  914. bit 0: docking station provides support for controlling
  915. sequence of docking/undocking
  916. (Table F0037)
  917. Call Plug-and-Play BIOS function 09h with:
  918. STACK: WORD 0009h (function "Set Statically Allocated Resource
  919. Information")
  920. DWORD -> block of statically-allocated resources as described
  921. in the Plug-and-Play ISA Spec
  922. WORD PnP BIOS writable segment/selector
  923. Return: AX = status (see #F0081)
  924. Notes: the large-model C declaration is
  925. int (*entry)(int, unsigned char *, unsigned int);
  926. if the returned status is 008Dh, the Plug-and-Play BIOS supports
  927. ESCD, and the caller should thus use functions 41h to 43h instead
  928. of 09h and 0Ah
  929. (Table F0038)
  930. Call Plug-and-Play BIOS function 0Ah with:
  931. STACK: WORD 000Ah (function "Get Statically Allocated Resource
  932. Information")
  933. DWORD -> buffer for statically-allocated resources as
  934. described in the Plug-and-Play ISA Spec
  935. WORD PnP BIOS writable segment/selector
  936. Return: AX = status (see #F0081)
  937. Notes: the large-model C declaration is
  938. int (*entry)(int, unsigned char *, unsigned int);
  939. if the returned status is 008Dh, the Plug-and-Play BIOS supports
  940. ESCD, and the caller should thus use functions 41h to 43h instead
  941. of 09h and 0Ah
  942. (Table F0039)
  943. Call Plug-and-Play BIOS function 0Bh with:
  944. STACK: WORD 000Bh (function "Get APM ID Table")
  945. Information")
  946. DWORD -> WORD buffer for size of data buffer
  947. DWORD -> buffer for storing APM ID table (see #F0040)
  948. WORD PnP BIOS writable segment/selector
  949. Return: AX = status (see #F0081)
  950. Desc: copies the Advanced Power Management v1.1 device identifier table to
  951. Plug-and-Play device identifier mappings
  952. Note: the large-model C declaration is
  953. int (*entry)(int, unsigned int *, unsigned char *, unsigned int);
  954. SeeAlso: INT 15/AX=5300h
  955. Format of Plug-and-Play APM ID Table:
  956. Offset Size Description (Table F0040)
  957. 00h DWORD Plug-and-Play device identifier
  958. 04h WORD APM v1.1+ identifier
  959. SeeAlso: #F0039
  960. (Table F0041)
  961. Call Plug-and-Play BIOS function 40h with:
  962. STACK: WORD 0040h (function "Get Plug-and-Play ISA Configuration
  963. Structure")
  964. DWORD -> buffer for configuration structure (see #F0042)
  965. WORD PnP BIOS writable segment/selector
  966. Return: AX = status (see #F0081)
  967. Note: the large-model C declaration is
  968. int (*entry)(int, unsigned char *, unsigned int);
  969. Format of Plug-and-Play ISA Configuration Structure:
  970. Offset Size Description (Table F0042)
  971. 00h BYTE structure revision level (01h)
  972. 01h BYTE total Card Select Numbers (CSNs) assigned
  973. 02h WORD ISA Read Data Port (see also PORT 0A79h)
  974. 04h WORD reserved (0)
  975. SeeAlso: #F0041
  976. (Table F0043)
  977. Call Plug-and-Play BIOS function 41h with:
  978. STACK: WORD 0041h (function "Get Extended System Configuration
  979. Information")
  980. DWORD -> WORD buffer for size of nonvolatile storage
  981. DWORD -> WORD buffer for size of ESCD allocated
  982. DWORD -> DWORD buffer for physical base address of NV storage
  983. (if memory-mapped, else 00000000h)
  984. WORD PnP BIOS writable segment/selector
  985. Return: AX = status (see #F0081)
  986. Note: the large-model C declaration is
  987. int (*entry)(int, unsigned int *, unsigned int *, unsigned long *,
  988. unsigned int);
  989. SeeAlso: INT 1A/AX=B401h
  990. (Table F0044)
  991. Call Plug-and-Play BIOS function 42h with:
  992. STACK: WORD 0042h (function "Read Extended System Configuration
  993. Data")
  994. DWORD -> buffer for storing ESCD
  995. WORD read/writable selector for ESCD if memory-mapped and
  996. called in protected mode (ignored otherwise)
  997. WORD PnP BIOS writable segment/selector
  998. Return: AX = status (see #F0081)
  999. Notes: the large-model C declaration is
  1000. int (*entry)(int, unsigned char *, unsigned int, unsigned int);
  1001. if an ESCD selector is required, the caller must construct a 16-bit
  1002. data segment selector with a limit of 64K
  1003. (Table F0045)
  1004. Call Plug-and-Play BIOS function 43h with:
  1005. STACK: WORD 0043h (function "Write Extended System Configuration
  1006. Data")
  1007. DWORD -> buffer containing ESCD
  1008. WORD read/writable selector for ESCD if memory-mapped and
  1009. called in protected mode (ignored otherwise)
  1010. WORD PnP BIOS writable segment/selector
  1011. Return: AX = status (see #F0081)
  1012. Notes: the large-model C declaration is
  1013. int (*entry)(int, unsigned char *, unsigned int, unsigned int);
  1014. if an ESCD selector is required, the caller must construct a 16-bit
  1015. data segment selector with a limit of 64K
  1016. (Table F0046)
  1017. Call Desktop Management Specification function 50h with:
  1018. STACK: WORD 0050h (function "Get DMI Information")
  1019. DWORD -> buffer for ASCIZ DMI BIOS revision string
  1020. DWORD -> WORD to receive number of DMI structures
  1021. DWORD -> WORD to receive size of largest DMI structure
  1022. DWORD -> DWORD to receive DMI storage base address
  1023. DWORD -> WORD to receive DMI storage size
  1024. WORD BIOS selector
  1025. Return: AX = status (see #F0081)
  1026. Notes: the large-model C declaration is
  1027. short (*entry)(int, unsigned char *, unsigned short *,
  1028. unsigned short *, unsigned long *, unsigned short *,
  1029. unsigned short) ;
  1030. the BIOS may return a structure size larger than the actual largest
  1031. DMI structure to permit dynamic information
  1032. this function is available in both real mode and 16-bit protected mode
  1033. SeeAlso: #F0047
  1034. (Table F0047)
  1035. Call Desktop Management Specification function 51h with:
  1036. STACK: WORD 0051h (function "Get DMI Structure")
  1037. DWORD -> WORD number/handle of structure to retrieve
  1038. DWORD -> buffer for DMI structure
  1039. WORD DMI read/write data selector
  1040. WORD PnP BIOS read/write selector
  1041. Return: AX = status (see #F0081)
  1042. Notes: the large-model c declaration is
  1043. short (*entry)(int, unsigned short *,unsigned char *, unsigned short,
  1044. unsigned short) ;
  1045. structure number 0000h will return the first SMBIOS structure; the
  1046. variable is updated with the number of the next structure after each
  1047. successful call, returning FFFFh if the last structure has been
  1048. returned
  1049. this function is available in both real mode and 16-bit protected mode
  1050. SeeAlso: #F0046,#F0048
  1051. (Table F0048)
  1052. Call System Management BIOS function 52h with:
  1053. STACK: WORD 0052h (function "Set DMI Structure")
  1054. DWORD -> buffer containing new data (see #F0049)
  1055. DWORD -> BIOS work buffer
  1056. BYTE control flags
  1057. bit 0: set structure instead of just validating
  1058. bits 7-1: reserved (0)
  1059. BYTE padding
  1060. WORD DMI read/write data selector
  1061. WORD PnP BIOS read/write selector
  1062. Return: AX = status (see #F0081)
  1063. SeeAlso: #F0025,#F0047,#F0051
  1064. Format of DMI data buffer for SMBIOS function 52h:
  1065. Offset Size Description (Table F0049)
  1066. 00h BYTE operation to perform (see #F0050)
  1067. 01h BYTE offset within fixed data of the structure for the to-be-
  1068. changed item
  1069. 02h DWORD change mask for BYTE/WORD/DWORD change operation
  1070. this value is ANDed with the existing data prior to
  1071. applying the change value given below
  1072. 06h DWORD change value for BYTE/WORD/DWORD change operation
  1073. this value is ORed with the result of applying the
  1074. change mask above to the existing data
  1075. 0Ah WORD data length for structure-add, string-change, block-change
  1076. for a string-change command, this field specifies the
  1077. length of the string including the NUL terminator; if
  1078. the length is 1 (empty string), the string is removed
  1079. if the applicable access rights are met
  1080. 0Ch 4 BYTEs structure header of structure to be changed/added/removed
  1081. (see also #F0059)
  1082. 10h var new structure data for structure-add or block-change cmd
  1083. new string data for string-change command
  1084. SeeAlso: #F0048,#F0059
  1085. (Table F0050)
  1086. Values for SMBIOS structure-change operation:
  1087. 00h change a single byte in the identified structure
  1088. 01h change a word (two bytes) in the identified structure
  1089. 02h change a DWORD (four byets) in the identified structure
  1090. 03h add the identified structure to the SMBIOS structure pool
  1091. 04h remove the identified structure from the SMBIOS structure pool
  1092. 05h change a string in the identified structure
  1093. 06h change a block of data in the identified structure
  1094. 07h-FFh reserved for future revisions of specification
  1095. SeeAlso: #F0049
  1096. (Table F0051)
  1097. Call System Management BIOS function 53h with:
  1098. STACK: WORD 0053h (function "Get Structure Change Information")
  1099. DWORD -> SMBIOS change structure (see #F0052)
  1100. WORD DMI read/write data selector
  1101. WORD PnP BIOS read/write selector
  1102. Return: AX = status (see #F0081)
  1103. SeeAlso: #F0025,#F0048,#F0053
  1104. Format of SMBIOS change structure:
  1105. Offset Size Description (Table F0052)
  1106. 00h BYTE change status
  1107. 00h no change
  1108. 01h other
  1109. 02h unknown
  1110. 03h single SMBIOS structure affected
  1111. 04h multiple SMBIOS structures affected
  1112. other reserved
  1113. 01h BYTE change type
  1114. bits 7-2 reserved (0)
  1115. bit 1: structure(s) added
  1116. bit 0: structure(s) changed
  1117. 02h WORD structure handle (if change status == 03h)
  1118. 04h 12 BYTEs reserved (0)
  1119. Note: if multiple structures changed, all of the SMBIOS structures must be
  1120. enumerated to determine what changed
  1121. SeeAlso: #F0051
  1122. (Table F0053)
  1123. Call System Management BIOS function 54h with:
  1124. STACK: WORD 0054h (function "SMBIOS Control")
  1125. WORD subfunction (see #F0054)
  1126. DWORD -> data
  1127. BYTE control flags
  1128. bits 7-1: reserved (0)
  1129. bit 0: perform the operation instead of just validating
  1130. parameters
  1131. BYTE padding
  1132. WORD DMI read/write data selector
  1133. WORD PnP BIOS read/write selector
  1134. Return: AX = status (see #F0081)
  1135. SeeAlso: #F0025,#F0051,#F0056
  1136. (Table F0054)
  1137. Values for SMBIOS function 54h subfunction:
  1138. 0000h clear event log
  1139. data parameter must be 00000000h
  1140. 0001h control event logging
  1141. data parameter points at 2-WORD buffer containing AND-mask and
  1142. OR-mask for modifying logging values; on return, the second word will
  1143. contain the prior value of the control flags (see #F0055)
  1144. 0002h (v2.1+) clear event log (Type 15)
  1145. data parameter is 32-bit physical address of a scratch buffer for use
  1146. by the BIOS, which must be writeable and at least as large as the
  1147. largest-structure size reported by function 50h
  1148. 0003h-3FFFh reserved for future revisions of specification
  1149. 4000h-7FFFh reserved for BIOS vendor
  1150. 8000h-FFFFh reserved for system vendor
  1151. SeeAlso: #F0053
  1152. Bitfields for SMBIOS event logging control word:
  1153. Bit(s) Description (Table F0055)
  1154. 15-3 reserved for future use (0)
  1155. 2 disable logging of POST errors
  1156. 1 enable logging of correctable memory errors
  1157. 0 enable overall event logging
  1158. SeeAlso: #F0054
  1159. (Table F0056)
  1160. Call System Management BIOS function 55h with:
  1161. STACK: WORD 0055h (function "Get General-Purpose NonVolatile Info")
  1162. DWORD -> WORD GPNV handle (set to 0000h for first call)
  1163. DWORD -> WORD (ret) minimum buffer size (in bytes)
  1164. DWORD -> WORD (ret) size allocated for this GPNV
  1165. DWORD -> DWORD (ret) physical base address for memory-mapped
  1166. non-volatile storage (00000000h if PMode
  1167. mapping not required)
  1168. WORD PnP BIOS read/write selector
  1169. Return: AX = status (see #F0081)
  1170. GPNV handle var set to handle of next GPNV area or FFFFh if no more
  1171. SeeAlso: #F0025,#F0053,#F0057
  1172. (Table F0057)
  1173. Call System Management BIOS function 56h with:
  1174. STACK: WORD 0056h (func "Read General-Purpose NonVolatile Data")
  1175. WORD GPNV handle for area to be read
  1176. DWORD -> buffer for GPNV data (must be large enough to hold
  1177. entire area - use "min buffer size" from func 55h)
  1178. DWORD -> WORD lock value or FFFFh to ignore
  1179. WORD GPNV storage selector
  1180. WORD PnP BIOS read/write selector
  1181. Return: AX = status (see #F0081)
  1182. lock value set to value of the current lock if it was not FFFFh on
  1183. entry and locking is supported
  1184. SeeAlso: #F0025,#F0056,#F0058
  1185. (Table F0058)
  1186. Call System Management BIOS function 57h with:
  1187. STACK: WORD 0057h (func "Write General-Purpose NonVolatile Data")
  1188. WORD GPNV handle for area to be written
  1189. DWORD -> buffer containing GPNV data
  1190. WORD lock value (must match value set by prior read) or
  1191. FFFFh for a forced write
  1192. WORD GPNV storage selector
  1193. WORD PnP BIOS read/write selector
  1194. Return: AX = status (see #F0081)
  1195. SeeAlso: #F0025,#F0057
  1196. Format of SMBIOS data structure:
  1197. Offset Size Description (Table F0059)
  1198. 00h 4 BYTEs structure header
  1199. BYTE structure type (see #F0060)
  1200. 80h-FFh available for system/OEM-specific data
  1201. BYTE length of formatted data, including header
  1202. WORD structure handle (a unique value 0000h-FEFFh [v2.0 allows
  1203. up to FFFEh])
  1204. handles FF00h-FFFFh are reserved for use by the SMBIOS
  1205. specification
  1206. handles need not be contiguous -- a handle might not
  1207. exist any more after a configuration change, but the
  1208. BIOS may not re-assign that handle number to another
  1209. structure
  1210. ---type 00h---
  1211. 04h BYTE string number of the vendor name (string numbers are 1-based)
  1212. 05h BYTE string number of the version string (00h if not present)
  1213. 06h WORD starting segment of runtime BIOS
  1214. 08h BYTE string number of BIOS release date
  1215. 09h BYTE size of BIOS ROM (stored as one less than number of 64K units)
  1216. 0Ah QWORD BIOS characteristics (see #F0061)
  1217. 12h var optional space for BIOS characteristics extension
  1218. (see #F0062,#F0063)
  1219. (size of optional space is implied by header's length field)
  1220. var var free-form ASCIZ strings (max 64 bytes per string)
  1221. ---type 01h---
  1222. 04h BYTE string number of manufacturer name
  1223. 05h BYTE string number of product name
  1224. 06h BYTE string number of version number
  1225. 07h BYTE string number of serial number
  1226. 08h 16 BYTEs (v2.1+) universal unique ID number (UUID)
  1227. all-FFh if not currently set
  1228. all-00h if not present
  1229. 18h BYTE (v2.1+) type of last wake-up event (see #F0064)
  1230. ---type 02h---
  1231. 04h BYTE string number of manufacturer name
  1232. 05h BYTE string number of product name
  1233. 06h BYTE string number of version number
  1234. 07h BYTE string number of serial number
  1235. ---type 03h---
  1236. 04h BYTE string number of manufacturer name
  1237. 05h BYTE chassis type
  1238. bit 7: chassis lock present
  1239. bits 6-0: (see #F0065)
  1240. 06h BYTE string number of version number
  1241. 07h BYTE string number of serial number
  1242. 08h BYTE string number of asset tag number
  1243. 09h BYTE (v2.1+) enclosure state at last boot (see #F0066)
  1244. 0Ah BYTE (v2.1+) power supply state at last boot
  1245. 0Bh BYTE (v2.1+) thermal state at last boot
  1246. 0Ch BYTE (v2.1+) physical security status at last boot (see #F0067)
  1247. 0Dh DWORD (v2.3+) OEM/BIOS-specific information
  1248. ---type 04h---
  1249. 04h BYTE string number of socket designation
  1250. 05h BYTE processor type (see #F0068)
  1251. 06h BYTE processor family (see #F0069)
  1252. 07h BYTE string number of processor manufacturer
  1253. 08h QWORD processor identification data (see #F0070)
  1254. 10h BYTE string number of processor version string
  1255. 11h BYTE voltage (see #F0071)
  1256. 12h WORD external clock frequency in MHz (0000h if unknown)
  1257. 14h WORD maximum internal processor speed in MHz (0000h if unknown)
  1258. 16h WORD current internal processor speed in MHz (0000h if unknown)
  1259. 18h BYTE processor status (see #F0072)
  1260. 19h BYTE processor upgrade (see #F0073)
  1261. 1Ah WORD (v2.1+) handle of L1 cache information structure, or FFFFh
  1262. 1Ch WORD (v2.1+) handle of L2 cache information structure, or FFFFh
  1263. 1Eh WORD (v2.1+) handle of L3 cache information structure, or FFFFh
  1264. ---type 05h---
  1265. 04h BYTE error-detection method
  1266. 05h BYTE error-correction capability
  1267. 06h BYTE supported memory interleave
  1268. 07h BYTE current memory interleave
  1269. 08h BYTE maximum memory module size (00h=1M, 01h=2M, 02h=4M, etc.)
  1270. 09h WORD supported memory speeds
  1271. 0Bh WORD supported memory types
  1272. 0Dh BYTE voltages supported by memory modules
  1273. bits 7-3: reserved (0)
  1274. bit 2: 2.9V
  1275. bit 1: 3.3V
  1276. bit 0: 5.0V
  1277. 0Eh BYTE number of memory slots
  1278. 0Fh N WORDs handles of memory information structures for each slot
  1279. BYTE (v2.1+) enabled error-correction capabilities
  1280. !!!ftp://download.intel.com/ial/wfm/smbios.pdf p.39
  1281. ---type 06h---
  1282. 04h BYTE string number for socket designation
  1283. 05h BYTE bank connections
  1284. 06h BYTE current memory speed in ns (00h = unknown)
  1285. 07h WORD current memory type
  1286. 09h BYTE installed size
  1287. 0Ah BYTE enabled size
  1288. 0Bh BYTE error status
  1289. bits 7-3: reserved (0)
  1290. bit 2: get error status info from event log (bits 1-0 reserved)
  1291. bit 1: correctable errors encountered
  1292. bit 0: uncorrectable errors encountered, some or all of module
  1293. disabled
  1294. ---type 07h---
  1295. 04h BYTE string number of socket designation
  1296. 05h WORD cache configuration
  1297. 07h WORD maximum cache size
  1298. 09h WORD installed cache size
  1299. 0Bh WORD supported SRAM type(s)
  1300. 0Dh WORD current SRAM type
  1301. 0Fh BYTE (v2.1+) cache speed in ns (00h = unknown)
  1302. 10h BYTE (v2.1+) error correction type
  1303. 11h BYTE (v2.1+) system cache type
  1304. 12h BYTE (v2.1+) cache associativity
  1305. ---type 08h---
  1306. ------
  1307. var WORD 0000h end-of-structure marker
  1308. (if strings are present, only a single byte of 00h is needed,
  1309. because the terminating NUL of the last string forms the
  1310. first byte of the end-of-structure marker)
  1311. Note: structures can have new fields added in successive revisions of the
  1312. SMBIOS specification, so applications should use the actual length
  1313. field given in the SMBIOS structure; as of SMBIOS v2.3, structure
  1314. types also have a minimum length to enable the addition of optional
  1315. fields
  1316. SeeAlso: #F0049
  1317. (Table F0060)
  1318. Values for SMBIOS structure type:
  1319. 00h BIOS Information
  1320. 01h System Information
  1321. 02h Motherboard Information
  1322. 03h system enclosure/chassis information
  1323. 04h processor information
  1324. 05h memory controller information
  1325. 06h memory module information
  1326. 07h cache information
  1327. 08h port connector information
  1328. 09h system slots
  1329. 0Ah on-board devices
  1330. 0Dh BIOS language
  1331. 0Eh group associations
  1332. 0Fh system event log
  1333. 10h physical memory array
  1334. 11h memory device information
  1335. 12h memory error information
  1336. 13h memory array mapped addresses
  1337. 14h memory device mapped addresses
  1338. 15h built-in pointing device information
  1339. 16h portable battery
  1340. 17h (v2.2+) system reset
  1341. 18h (v2.2+) hardware security
  1342. 19h (v2.2+) system power controls
  1343. 1Ah (v2.2+) voltage probe
  1344. 1Bh (v2.2+) cooling device
  1345. 1Ch (v2.2+) temperature probe
  1346. 1Dh (v2.2+) electrical current probe
  1347. 1Eh (v2.2+) out-of-band remote access
  1348. 1Fh (v2.3+) Boot Integrity Services (BIS) entry point
  1349. 20h (v2.3+) system boot information
  1350. 21h (v2.3+) 64-bit memory error information
  1351. 22h (v2.3+) management device attributes
  1352. 23h (v2.3+) management device component
  1353. 24h (v2.3+) management device threshold information
  1354. 7Eh inactive structure
  1355. 7Fh end of structure table indicator
  1356. SeeAlso: #F0059
  1357. Bitfields for SMBIOS BIOS characteristics:
  1358. Bit(s) Description (Table F0061)
  1359. 63-48 reserved for system vendor
  1360. 47-32 reserved for BIOS vendor
  1361. 31 NEC PC-98
  1362. 30 supports INT 10 CGA/Mono video services
  1363. 29 supports INT 17 printer services
  1364. 28 supports INT 14 serial services
  1365. 27 supports INT 09 and 8042 keyboard services
  1366. 26 supports INT 05 print-screen
  1367. 25 supports INT 13 3.5-inch/2.88M floppy services
  1368. 24 supports INT 13 3.5-inch/720K floppy services
  1369. 23 supports INT 13 5.25-inch/1.2M floppy services
  1370. 22 supports INT 13 5.25-inch/360K floppy services
  1371. 21 supports INT 13 for Japanese Toshiba 1.2M floppy (3.5-inch, 360rpm)
  1372. 20 supports INT 13 for Japanese NEC 9800 1.2M floppy (3.5-inch, 1024-byte
  1373. sectors, 360rpm)
  1374. 19 supports Enhanced Disk Drive specification
  1375. 18 supports booting from PC Card (PCMCIA)
  1376. 17 BIOS ROM is socketed
  1377. 16 supports selectable boot
  1378. 15 supports booting from CD-ROM
  1379. 14 ESCD support is available
  1380. 13 supports VL-VESA
  1381. 12 allows BIOS shadowing
  1382. 11 upgradeable (Flash) BIOS
  1383. 10 supports APM
  1384. 9 supports Plug-and-Play
  1385. 8 supports PC Card (PCMCIA)
  1386. 7 supports PCI
  1387. 6 supports EISA
  1388. 5 supports MCA
  1389. 4 supports ISA
  1390. 3 BIOS characteristics not supported
  1391. 2 characteristics unknown
  1392. 1-0 reserved
  1393. SeeAlso: #F0059,#F0062,#F0063
  1394. Bitfields for SMBIOS v2.1+ BIOS characteristics extension byte 1:
  1395. Bit(s) Description (Table F0062)
  1396. 7 Smart Battery supported
  1397. 6 supports booting from IEEE 1394 device
  1398. 5 supports booting from ATAPI ZIP drive
  1399. 4 supports booting from LS-120
  1400. 3 supports booting from I2O device
  1401. 2 supports AGP
  1402. 1 supports legacy USB
  1403. 0 supports ACPI
  1404. SeeAlso: #F0059,#F0061,#F0063
  1405. Bitfields for SMBIOS v2.3+ BIOS characteristics extension byte 2:
  1406. Bit(s) Description (Table F0063)
  1407. 7-1 reserved for future versions
  1408. 0 supports BIOS Boot Specification (see #F0074)
  1409. SeeAlso: #F0059,#F0061,#F0062
  1410. (Table F0064)
  1411. Values for SMBIOS wake-up type:
  1412. 00h reserved
  1413. 01h other
  1414. 02h unknown wake-up method
  1415. 03h APM timer
  1416. 04h modem ring
  1417. 05h LAN remote
  1418. 06h power switch
  1419. 07h PCI PME#
  1420. 08h AC power restored
  1421. SeeAlso: #F0059
  1422. (Table F0065)
  1423. Values for SMBIOS Chassis Type:
  1424. 01h other
  1425. 02h chassis type not known
  1426. 03h desktop
  1427. 04h low-profile desktop
  1428. 05h pizza box
  1429. 06h mini tower
  1430. 07h full tower
  1431. 08h portable
  1432. 09h laptop
  1433. 0Ah notebook
  1434. 0Bh handheld
  1435. 0Ch docking station
  1436. 0Dh all-in-one
  1437. 0Eh sub-notebook
  1438. 0Fh space-saving
  1439. 10h lunch box
  1440. 11h main server chassis
  1441. 12h expansion chassis
  1442. 13h subchassis
  1443. 14h bus-expansion chassis
  1444. 15h peripheral chassis
  1445. 16h RAID chassis
  1446. 17h rack-mount
  1447. 18h sealed-case PC
  1448. SeeAlso: #F0059,#F0066,#F0067
  1449. (Table F0066)
  1450. Values for SMBIOS system enclosure/chassis state:
  1451. 01h other
  1452. 02h state not known
  1453. 03h safe
  1454. 04h warning
  1455. 05h critical
  1456. 06h non-recoverable
  1457. SeeAlso: #F0059,#F0065,#F0067
  1458. (Table F0067)
  1459. Values for SMBIOS system enclosure/chassis security status:
  1460. 01h other
  1461. 02h not known
  1462. 03h none
  1463. 04h external interface locked out
  1464. 05h external interface enabled
  1465. SeeAlso: #F0059,#F0065,#F0066
  1466. (Table F0068)
  1467. Values for SMBIOS processor type:
  1468. 01h other
  1469. 02h unknown processor type
  1470. 03h central processor
  1471. 04h math processor
  1472. 05h digital signal processor (DSP)
  1473. 06h video processor
  1474. SeeAlso: #F0059,#F0069,#F0070,#F0071
  1475. (Table F0069)
  1476. Values for SMBIOS processor family:
  1477. 01h other
  1478. 02h unknown processor family
  1479. 03h 8086
  1480. 04h 80286
  1481. 05h 80386
  1482. 06h 80486
  1483. 07h 8087
  1484. 08h 80287
  1485. 09h 80387
  1486. 0Ah 80487
  1487. 0Bh Pentium
  1488. 0Ch Pentium Pro
  1489. 0Dh Pentium II
  1490. 0Eh Pentium-MMX
  1491. 0Fh Celeron
  1492. 10h Pentium II-Xeon
  1493. 11h reserved for future Pentium (probably Pentium III)
  1494. 12h Cyrix M1 family
  1495. 13h-18h reserved for future M1 versions
  1496. 19h AMD K5 family
  1497. 1Ah-1Fh reserved for future K5 versions
  1498. 20h PowerPC family
  1499. 21h PowerPC 601
  1500. 22h PowerPC 603
  1501. 23h PowerPC 603+
  1502. 24h PowerPC 604
  1503. 30h DEC Alpha family (Pentium Pro for some v2.0 implementations)
  1504. 40h MIPS family
  1505. 50h Sun SPARC family
  1506. 60h Motorola 68040 family
  1507. 61h 68xxx
  1508. 62h 68000
  1509. 63h 68010
  1510. 64h 68020
  1511. 65h 68030
  1512. 70h Hobbit family
  1513. 80h Weitek
  1514. 90h Hewlett-Packard PA-RISC family
  1515. A0h NEC V30 family
  1516. B0h
  1517. SeeAlso: #F0059,#F0068
  1518. Bitfields for SMBIOS processor identification data:
  1519. Bit(s) Description (Table F0070)
  1520. ---x86 supporting CPUID---
  1521. 63-32 EDX returned by CPUID with EAX=1
  1522. 31-0 EAX returned by CPUID with EAX=1
  1523. ---x86 not supporting CPUID---
  1524. 63-16 reserved
  1525. 15-0 contents of DX at CPU reset
  1526. SeeAlso: #F0059,#F0068
  1527. Bitfields for SMBIOS processor voltage:
  1528. Bit(s) Description (Table F0071)
  1529. 7 =0 legacy mode
  1530. =1 new mode
  1531. ---bit7=0---
  1532. 6-3 reserved (0)
  1533. 2 supports 2.9V
  1534. 1 supports 3.3V
  1535. 0 supports 5.0V
  1536. ---bit7=1---
  1537. 6-0 current CPU voltage * 10 (12h = 1.8V)
  1538. SeeAlso: #F0059,#F0068,#F0072
  1539. Bitfields for SMBIOS processor status:
  1540. Bit(s) Description (Table F0072)
  1541. 7 reserved (0)
  1542. 6 CPU socket is populated
  1543. 5-3 reserved (0)
  1544. 2-0 CPU status
  1545. 000 unknown
  1546. 001 CPU enabled
  1547. 010 CPU disabled by user (via BIOS setup)
  1548. 011 CPU disabled by BIOS (POST error)
  1549. 100 CPU idle
  1550. 101 reserved
  1551. 110 reserved
  1552. 111 other
  1553. SeeAlso: #F0059,#F0068,#F0071
  1554. (Table F0073)
  1555. Values for SMBIOS processor upgrade:
  1556. 01h other
  1557. 02h unknown processor upgrade
  1558. 03h daughter board
  1559. 04h ZIF socket
  1560. 05h replaceable piggyback
  1561. 06h none
  1562. 07h LIF socket
  1563. 08h Slot 1
  1564. 09h Slot 2
  1565. SeeAlso: #F0059,#F0068
  1566. (Table F0074)
  1567. Call BIOS Boot Specification function 60h with:
  1568. STACK: WORD 0060h (function "Get Version and Installation Check")
  1569. DWORD -> WORD buffer for BIOS Boot Spec version number (BCD)
  1570. Return: AX = status (see #F0081)
  1571. 0081h if BIOS Boot not available
  1572. Note: the large-model C declaration is
  1573. int (*entry)(int, int *) ;
  1574. SeeAlso: #F0075,#F0076,#F0077,#F0078
  1575. (Table F0075)
  1576. Call BIOS Boot Specification function 61h "Get IPL Device Count" with:
  1577. STACK: WORD 0061h (function "Get IPL Device Count")
  1578. DWORD -> WORD buffer for number of IPL devices in system
  1579. DWORD -> WORD buffer for max. number of IPL devices supported
  1580. DWORD -> WORD buffer for size of an IPL table entry
  1581. Return: AX = status (see #F0081)
  1582. Note: the large-model C declaration is
  1583. int (*entry)(int, unsigned int *, unsigned int *, unsigned int *) ;
  1584. SeeAlso: #F0074,#F0076,#F0077,#F0078
  1585. (Table F0076)
  1586. Call BIOS Boot Specification function 62h with:
  1587. STACK: WORD 0062h (function "Get Boot Priority and IPL Table")
  1588. DWORD -> buffer for copy of boot priority stored in NVRAM
  1589. DWORD -> buffer for IPL table
  1590. Return: AX = status (see #F0081)
  1591. Notes: the large-model C declaration is
  1592. int (*entry)(int, unsigned char *, unsigned char *) ;
  1593. the size of the boot priority buffer must be at least MaxIPL bytes
  1594. (see #F0075), of which the first CurrentIPL bytes are valid, with
  1595. the lowest-valued byte indicating the device which should attempt
  1596. booting first, the next lowest second, etc.
  1597. the size of the IPL table buffer must be at least MaxIPL + IPLsize
  1598. bytes (see #F0075)
  1599. SeeAlso: #F0074,#F0075,#F0077,#F0078
  1600. (Table F0077)
  1601. Call BIOS Boot Specification function 63h "Set Boot Priority" with:
  1602. STACK: WORD 0063h (function "Set Boot Priority")
  1603. DWORD -> buffer containing new boot priority list (see #F0076)
  1604. Return: AX = status (see #F0081)
  1605. Note: the large-model C declaration is
  1606. int (*entry)(int, unsigned char *) ;
  1607. SeeAlso: #F0074,#F0075,#F0076,#F0078
  1608. (Table F0078)
  1609. Call BIOS Boot Specification function 64h with:
  1610. STACK: WORD 0064h (function "Get IPL Device from Last Boot")
  1611. DWORD -> WORD buffer for index in IPL table of boot device
  1612. Return: AX = status (see #F0081)
  1613. Note: the large-model C declaration is
  1614. int (*entry)(int, unsigned int *) ;
  1615. SeeAlso: #F0074,#F0075,#F0076,#F0077,#F0079
  1616. (Table F0079)
  1617. Call BIOS Boot Specification function 65h "Get Boot First" with:
  1618. STACK: WORD 0065h (function "Get Boot First")
  1619. DWORD -> WORD buffer for index in IPL table of current
  1620. first boot device
  1621. Return: AX = status (see #F0081)
  1622. Notes: the large-model C declaration is
  1623. int (*entry)(int, unsigned int *) ;
  1624. the boot-first device will attempt booting before the boot-priority
  1625. list is considered
  1626. SeeAlso: #F0074,#F0075,#F0076,#F0077,#F0080
  1627. (Table F0080)
  1628. Call BIOS Boot Specification function 66h "Set Boot First" with:
  1629. STACK: WORD 0066h (function "Set Boot First")
  1630. DWORD -> WORD containing index in IPL table of new device
  1631. from which to attempt booting first before
  1632. considering the boot priority list
  1633. Return: AX = status (see #F0081)
  1634. Note: the large-model C declaration is
  1635. int (*entry)(int,
  1636. SeeAlso: #F0074,#F0075,#F0076,#F0077,#F0079
  1637. (Table F0081)
  1638. Values for Plug-and-Play function status code:
  1639. 0000h successful
  1640. 0001h boot device resource configuration not saved to nonvolatile memory
  1641. 0002h-007Eh reserved for future warnings
  1642. 0055h unable to read/write Extended System Config Data from nonvolatile mem
  1643. 0056h no valid Extended System Configuration Data in nonvolatile storage
  1644. 0059h user's buffer was too small for Extended System Configuration Data
  1645. 007Fh device could not be configured statically, but dynamic config succeeded
  1646. 0081h unknown function
  1647. 0082h unsupported function
  1648. 0083h invalid device node (or DMI structure) number/handle
  1649. 0084h bad parameter
  1650. 0085h failure setting device node
  1651. invalid DMI/SMBIOS subfunction
  1652. 0086h no pending events
  1653. 0087h system not docked
  1654. (SMBIOS) out of space to add data
  1655. 0088h no ISA Plug-and-Play cards installed
  1656. 0089h unable to determine docking station's capabilities
  1657. 008Ah undocking sequence failed because system unit does not have a battery
  1658. 008Bh resource conflict with a primary boot device
  1659. 008Ch buffer provided by user was too small
  1660. 008Dh must use ESCD support for specified device
  1661. (SMBIOS) "set" request failed (one or more fields read-only)
  1662. 008Eh message not supported
  1663. 008Fh hardware error
  1664. ---SMBIOS v2.1+ ---
  1665. 0090h locking not supported for the GPNV handle
  1666. 0091h GPNV already locked
  1667. 0092h invalid GPNV lock value
  1668. SeeAlso: #01243
  1669. Format of Option ROM header:
  1670. Offset Size Description (Table F0082)
  1671. 00h WORD AA55h signature
  1672. 02h BYTE length of option ROM in 512-byte pages (should be multiple 4)
  1673. 03h 4 BYTEs standard initialization entry point
  1674. (called with ES:DI -> PnP Installation Structure)
  1675. 07h 19 BYTEs reserved
  1676. 1Ah WORD offset to PnP Expansion Header
  1677. Format of Expansion Header:
  1678. Offset Size Description (Table F0083)
  1679. 00h 4 BYTEs signature ("$PnP" for Plug-and-Play expansion header)
  1680. 04h BYTE structure version number
  1681. 05h BYTE length of entire header in paragraphs
  1682. 06h WORD offset to next header or 0000h
  1683. 08h BYTE reserved
  1684. 09h BYTE checksum (sum of all bytes in header, including this one,
  1685. mod 256 should equal zero)
  1686. ---PnP Expansion Header---
  1687. 0Ah DWORD Plug-and-Play device identifier
  1688. 0Eh WORD offset of manufacturer ID string in Option ROM or 0000h
  1689. 10h WORD offset of product name string in Option ROM or 0000h
  1690. 12h 3 BYTEs device type code (see #F0085)
  1691. byte 0: base type (general kind of device)
  1692. byte 1: device subtype
  1693. byte 2: device programming interface
  1694. 15h BYTE device indicator flags (see #F0084)
  1695. 16h WORD Boot Connection Vector offset (real/protected mode) or 0000h
  1696. (see #F0089)
  1697. 18h WORD Disconnect Vector offset (real/protected mode) or 0000h
  1698. far-called by system BIOS is boot attempt failed
  1699. 1Ah WORD bootstrap entry point (real/protected mode) or 0000h
  1700. 1Ch WORD reserved (0)
  1701. 1Eh WORD Static Resource Information offset (real/prot mode) or 0000h
  1702. should be used only by non-PnP devices to make them PnP-aware
  1703. (see #F0090)
  1704. Bitfields for Plug-and-Play device indicator flags:
  1705. Bit(s) Description (Table F0084)
  1706. 7 supports Device Driver Initialization model
  1707. 6 may be shadowed in RAM
  1708. 5 may be read cached
  1709. 4 only required if device used for booting
  1710. 3 reserved (0)
  1711. 2 device is Initial Program Load (IPL, i.e. boot) device
  1712. 1 device is Input device
  1713. 0 device is Display device
  1714. SeeAlso: #F0085
  1715. (Table F0085)
  1716. Values for Plug-and-Play device type code:
  1717. Type Subtype Description
  1718. 00h --- reserved
  1719. 01h --- mass storage
  1720. 00h SCSI controller
  1721. 01h IDE controller
  1722. programming interface (see #F0087)
  1723. 02h floppy controller (NEC 765-compatible)
  1724. 03h IPI controller
  1725. 04h RAID controller
  1726. 80h other
  1727. 02h --- network interface controller
  1728. 00h Ethernet
  1729. 01h Token Ring
  1730. 02h FDDI
  1731. 03h ATM
  1732. 80h other
  1733. 03h --- display controller
  1734. 00h VGA
  1735. programming interface 00h = VGA registers
  1736. programming interface 01h = 8514/A-compatible registers
  1737. 01h SuperVGA
  1738. 02h XGA
  1739. 80h other
  1740. 04h --- multi-media controller
  1741. 00h video
  1742. 01h audio
  1743. 80h other
  1744. 05h --- memory
  1745. 00h RAM
  1746. 01h Flash memory
  1747. 80h other
  1748. 06h --- bridge controller
  1749. 00h host processor bridge
  1750. 01h ISA bridge
  1751. 02h EISA bridge
  1752. 03h MicroChannel bridge
  1753. 04h PCI bridge
  1754. 05h PCMCIA bridge
  1755. 06h NuBus bridge
  1756. 07h CardBus bridge
  1757. 80h other
  1758. 07h --- communications device
  1759. 00h XT-compatible RS-232
  1760. 01h AT-compatible parallel port
  1761. 80h other
  1762. 08h --- system peripherals
  1763. 00h 8259-compatible Programmable Interrupt Controller
  1764. 01h 8237-compatible DMA Controller
  1765. 02h 8254-compatible system timer
  1766. 03h real-time clock
  1767. 80h other
  1768. 09h --- input device
  1769. 00h keyboard controller
  1770. 01h digitizer/pen
  1771. 02h mouse
  1772. 80h other
  1773. 0Ah --- docking station
  1774. 00h generic docking station
  1775. 80h other
  1776. 0Bh --- CPU
  1777. 00h 386-based
  1778. 01h 486-based
  1779. 02h Pentium-based
  1780. 03h Pentium-Pro (P6)
  1781. 10h DEC Alpha
  1782. 40h coprocessor
  1783. 80h other
  1784. 0Ch --- Serial Bus controller
  1785. 00h Firewire (IEEE 1394)
  1786. 01h ACCESS.bus
  1787. 02h SSA
  1788. 03h Universal Serial Bus (USB)
  1789. programming interface 10h = OpenHCI Host Controller
  1790. 04h Fiber Channel
  1791. 80h other
  1792. SeeAlso: #F0084,#F0086,#00878
  1793. (Table F0086)
  1794. Values for Plug-and-Play generic EISA device ID:
  1795. PNP0xxx system devices
  1796. PNP00xx interrupt controller
  1797. PNP0000 AT interrupt controller
  1798. PNP0001 EISA interrupt controller
  1799. PNP0002 MCA interrupt controller
  1800. PNP0003 APIC
  1801. PNP0004 Cyrix SLiC MP interrupt controller
  1802. PNP01xx timer
  1803. PNP0100 AT timer
  1804. PNP0101 EISA timer
  1805. PNP0102 MCA timer
  1806. PNP02xx DMA controller
  1807. PNP0200 AT DMA controller
  1808. PNP0201 EISA DMA controller
  1809. PNP0202 MCA DMA controller
  1810. PNP03xx keyboard
  1811. PNP0300 PC/XT keyboard controller (83-key)
  1812. PNP0301 PC/AT keyboard controller (84-key)
  1813. PNP0302 PC/XT keyboard controller (84-key)
  1814. PNP0303 IBM enhanced keyboard (101/102-key, PS/2 mouse)
  1815. PNP0304 Olivetti keyboard (83-key)
  1816. PNP0305 Olivetti keyboard (102-key)
  1817. PNP0306 Olivetti keyboard (86-key)
  1818. PNP0307 enhanced keyboard with Windows keys
  1819. PNP0308 General Input Device Emulation Interface (GIDEI) legacy
  1820. PNP0309 Olivetti keyboard (A101/102-key)
  1821. PNP030A AT&T 302 keyboard
  1822. PNP04xx parallel port
  1823. PNP0400 standard printer port
  1824. PNP0401 ECP printer port
  1825. PNP05xx serial port
  1826. PNP0500 standard 8250/16450 UART
  1827. PNP0501 16550A-compatible UART
  1828. PNP06xx disk controller
  1829. PNP0600 generic ESDI/IDE/ATA controller
  1830. PNP0601 Plus Hardcard II
  1831. PNP0602 Plus Hardcard IIXL/EX
  1832. PNP0700 standard floppy controller
  1833. PNP0800 PC speaker
  1834. PNP09xx display adapter
  1835. PNP0900 VGA-compatible
  1836. PNP0Axx periperal bus
  1837. PNP0A00 ISA
  1838. PNP0A01 EISA
  1839. PNP0A02 MCA
  1840. PNP0A03 PCI
  1841. PNP0A04 VESA/VL bus
  1842. PNP0A05 generic ACPI bus
  1843. PNP0A06 extended IO bus
  1844. PNP0A07 SMB bus
  1845. PNP0A08 ACPI three-wire device bus
  1846. PNP0A09 ACPI two-wire device bus
  1847. PNP0B00 AT-style real-time clock
  1848. PNP0Cxx BIOS/system board
  1849. PNP0C00 Plug-and-Play BIOS
  1850. PNP0C01 system board
  1851. PNP0C02 (PnP-reserved resources)
  1852. PNP0C03 Plug-and-Play event notification interrupt
  1853. PNP0C04 math coprocessor
  1854. PNP0C08 ACPI driver/BIOS
  1855. PNP0C09 embedded controller device
  1856. PNP0C0A control method battery
  1857. PNP0C0B fan
  1858. PNP0C0C power button
  1859. PNP0C0D lid
  1860. PNP0Exx PCMCIA controller chipset
  1861. PNP0E00 Intel 82365-compatible
  1862. PNP0Fxx mouse
  1863. PNP8xxx network adapter
  1864. PNP9xxx modem
  1865. PNPAxxx SCSI controller/proprietary CD-ROM controller
  1866. PNPA000 Adaptec 154x-compatible
  1867. PNPA001 Adaptec 174x-compatible
  1868. PNPA002 Future Domain 16-700-compatible
  1869. PNPBxxx sound/video/multimedia
  1870. PNPB000 Sound Blaster 1.5
  1871. PNPB001 Sound Blaster 2.0
  1872. PNPB002 Sound Blaster Pro
  1873. PNPB004 Thunderboard
  1874. PNPB005 Adlib-compatible FM synthesis
  1875. PNPB006 MPU-401
  1876. PNPB007 Microsoft Windows Sound System
  1877. PNPB008 Compaq Waveform
  1878. PNPB010 Motion Video device (MCI)
  1879. PNPB011 MIDI Sequencer (MCI)
  1880. PNPB012 Wave Audio (MCI)
  1881. PNPB013 VISCA VCR (MCI)
  1882. PNPB014 Pioneer Laserdisk (MCI)
  1883. PNPB015 CD Audio (MCI)
  1884. PNPB020 Yamaha OPL3-compatible FM synthesis
  1885. PNPB02F joystick/game port
  1886. ACPI0001 three-wire serial memory device
  1887. ACPI0002 two-wire serial memory device
  1888. SeeAlso: #F0085,#F0088
  1889. Bitfields for Plug-and-Play IDE programming interface:
  1890. Bit(s) Description (Table F0087)
  1891. 7 bus mastering (read-only)
  1892. 6-4 reserved (read-only)
  1893. 3 secondary IDE mode bit is writable (read-only)
  1894. 2 secondary IDE mode (0 = legacy, 1 = native)
  1895. 1 primary IDE mode bit is writable (read-only)
  1896. 0 primary IDE mode (0 = legacy, 1 = native)
  1897. SeeAlso: #F0085
  1898. (Table F0088)
  1899. Values for data tags:
  1900. 22h IRQ descriptor, no flags
  1901. 23h IRQ descriptor, with flags
  1902. 2Ah DMA descriptor
  1903. 30h Dependent Function start
  1904. 31h Dependent Function start, with priority byte
  1905. 38h Dependent Function end
  1906. 47h I/O port descriptor
  1907. 4Bh fixed-location I/O port descriptor
  1908. 78h "END_TAG" end of resource descriptors
  1909. SeeAlso: #F0086
  1910. (Table F0089)
  1911. Values Boot Connection Vector is called with:
  1912. AX = which vectors to hook
  1913. bit 2: connect as IPL (INT 13)
  1914. bit 1: connect as primary video (INT 10)
  1915. bit 0: connect as primary input (INT 09)
  1916. ES:DI -> system BIOS PnP Installation Check Structure
  1917. BX = Card Select Number for this card (ISA bus only)
  1918. DX = read data port (ISA only) or FFFFh
  1919. SeeAlso: #F0090
  1920. (Table F0090)
  1921. Values Static Resource Information vector is called with:
  1922. ES:DI -> buffer for device's static resource config info (at least 1024
  1923. bytes)
  1924. SeeAlso: #F0089
  1925. Format of Plug-and-Play System Device Node:
  1926. Offset Size Description (Table F0091)
  1927. 00h WORD size of device node in bytes
  1928. 02h BYTE device node number/handle
  1929. 03h DWORD EISA product identifier
  1930. 07h 3 BYTEs device type code
  1931. 0Ah WORD attribute flags
  1932. bits 15-9 reserved (0)
  1933. bits 8-7: configurability
  1934. 00 can only be statically configured for next boot
  1935. 01 can be dynamically configured at runtime
  1936. 10 reserved
  1937. 11 can only be dynamically configured
  1938. bit 6: removable device
  1939. bit 5: docking station
  1940. bit 4: capable of being primary IPL (boot) device
  1941. bit 3: capable of being primary input device
  1942. bit 2: capable of being primary output device
  1943. bit 1: device is not configurable
  1944. bit 0: device can not be disabled
  1945. 0Ch var allocated resource configuration descriptors
  1946. var possible resource configuration descriptors
  1947. var compatible device identifiers
  1948. --------m-@xxxxxxxx--------------------------
  1949. CALL xxxxh:xxxxh - POST Memory Manager Specification (PMM) v1.0
  1950. InstallCheck: scan paragraph boundaries E000h to FFFFh for signature string
  1951. "$PMM" followed by a valid PMM header structure (see #F0092)
  1952. Note: the PMM is only available at system boot -- between the completion
  1953. of the memory check and the call to INT 19; this includes Option
  1954. ROM initialization and Plug-and-Play Boot Connection Vectors, but
  1955. not the Bootstrap Entry Vector (which is called after INT 19)
  1956. SeeAlso: INT 2F/AX=4300h,INT 67/AH=40h
  1957. Format of POST Memory Manager Specification structure:
  1958. Offset Size Description (Table F0092)
  1959. 00h 4 BYTEs signature "$PMM"
  1960. 04h BYTE structure version number (01h)
  1961. 05h BYTE length of structure in bytes
  1962. 06h BYTE checksum of structure (value needed to force byte-wise sum
  1963. of entire structure to be 00h)
  1964. 07h DWORD -> PMM entry point (real mode only) (see #F0093)
  1965. 0Bh 5 BYTEs reserved (0)
  1966. SeeAlso: #F0024
  1967. (Table F0093)
  1968. Call POST Memory Manager Specification entry point with:
  1969. STACK: WORD function number
  1970. 0000h pmmAllocate (see #F0094)
  1971. 0001h pmmFind (see #F0095)
  1972. 0002h pmmDeallocate (see #F0096)
  1973. additional parameters vary by function
  1974. Notes: PMM calls use standard large-model C-language calling conventions
  1975. the caller must provide at least 256 bytes of stack space; BIOSes
  1976. which support this specification will provide at least 1024 bytes
  1977. of stack space when calling a ROM initialization vector, Boot
  1978. Connection Vector, or Bootstrap Entry Vector (thus allowing the
  1979. Option ROM's code to provide sufficient stack space when calling
  1980. the PMM)
  1981. (Table F0094)
  1982. Call PMM "pmmAllocate" entry point with:
  1983. STACK: WORD 0000h (function "pmmAllocate")
  1984. DWORD length of memory block, in paragraphs
  1985. if 00000000h, only get size of largest available block
  1986. DWORD handle to assign to memory block, or FFFFFFFh for
  1987. "anonymous" block
  1988. WORD option flags
  1989. bit 0: allocate from conventional memory
  1990. bit 1: allocate from extended memory
  1991. bit 2: use alignment based on least-significant set
  1992. bit of requested length
  1993. Return: DX:AX = 32-bit physical address of allocated memory block, or
  1994. size of largest available block in paragraphs, or
  1995. 00000000h if specified handle is already in use, or
  1996. FFFFFFFFh if allocation failed
  1997. Notes: at least one of bits 0 and 1 must be set in the option flags; both
  1998. may be set if the location of the memory block is not important
  1999. the specification requires that an Option ROM must use handles
  2000. compliant with the Plug-and-Play specification (high 16 bits are
  2001. manufacturer's vendor ID, low 16 bits are vendor-defined); handles
  2002. whose highest bit is set or highest six bits are all clear are
  2003. reserved for the BIOS, and the BIOS may flag attempts to use such
  2004. reserved handles
  2005. SeeAlso: #F0093,#F0095,#F0096
  2006. (Table F0095)
  2007. Call PMM "pmmFind" entry point with:
  2008. STACK: WORD 0001h (function "pmmFind")
  2009. DWORD handle to be found
  2010. Return: DX:AX = 32-bit physical address of allocated memory block, or
  2011. 00000000h if handle is not in use
  2012. Desc: get the address of the memory block associated with the given handle
  2013. SeeAlso: #F0093,#F0094,#F0096
  2014. (Table F0096)
  2015. Call PMM "pmmDeallocate" entry point with:
  2016. STACK: WORD 0002h (function "pmmDeallocate")
  2017. DWORD physical address of block (as returned by pmmAllocate)
  2018. Return: DX:AX = FFFFFFFFh on error
  2019. Notes: the memory block is cleared to all zeros by the PMM
  2020. invalid functions (0003h-FFFFh) return DX:AX = FFFFFFFFh
  2021. SeeAlso: #F0093,#F0094,#F0095
  2022. --------b-@xxxxxxxx--------------------------
  2023. CALL xxxxh:xxxxh - BIOS Boot Specification (BBS)
  2024. InstallCheck: perform Plug-and-Play installation check, then call PnP
  2025. function 60h
  2026. SeeAlso: @xxxxh:xxxxh"Plug-and-Play"
  2027. --------m-@xxxxxxxx--------------------------
  2028. CALL xxxxh:xxxxh - QEMM Programming Interface (QPI)
  2029. InstallCheck: see INT 67/AH=3Fh
  2030. SeeAlso: INT 67/AH=3Fh
  2031. --------m-@xxxxxxxx--------------------------
  2032. CALL xxxxh:xxxxh - QEXT.SYS Private API
  2033. InstallCheck: see INT 15/AX=11DEh
  2034. SeeAlso: INT 15/AX=11DEh
  2035. --------m-@xxxxxxxx--------------------------
  2036. CALL xxxxh:xxxxh - Quarterdeck VIDRAM
  2037. InstallCheck: see INT 2F/AX=D201h/BX=5649h
  2038. SeeAlso: INT 2F/AX=D201h/BX=5649h
  2039. --------s-@xxxxxxxx--------------------------
  2040. CALL xxxxh:xxxxh - SoundBlaster Speech Driver
  2041. InstallCheck: see INT 2F/AX=FBFBh
  2042. SeeAlso: INT 2F/AX=FBFBh
  2043. --------k-@xxxxxxxx--------------------------
  2044. CALL xxxxh:xxxxh - Stacker
  2045. InstallCheck: see INT 2F/AX=4A12h/CX=5354h
  2046. SeeAlso: INT 2F/AX=4A12h/CX=5354h
  2047. --------s-@xxxxxxxx--------------------------
  2048. CALL xxxxh:xxxxh - VESA Audio Interface Driver
  2049. InstallCheck: see INT 10/AX=4F13h/BX=0002h
  2050. SeeAlso: INT 10/AX=4F13h/BX=0002h
  2051. --------m-@xxxxxxxx--------------------------
  2052. CALL xxxxh:xxxxh - Virtual Control Program Interface (VCPI) - Protected-Mode
  2053. InstallCheck: see INT 67/AX=DE01h
  2054. SeeAlso: INT 67/AX=DE01h
  2055. --------N-@xxxxxxxx--------------------------
  2056. CALL xxxxh:xxxxh - WEB v4.02 - MODULE APIs
  2057. InstallCheck: see INT 2F/AH=EEh
  2058. SeeAlso: INT 2F/AH=EEh
  2059. ---------------------------------------------
  2060. ----------@xxxxxxxx--------------------------
  2061. CALL xxxxh:xxxxh -
  2062. InstallCheck:
  2063. SeeAlso:
  2064. --------!---Admin----------------------------
  2065. Highest Table Number = F0096
  2066. --------!---FILELIST-------------------------
  2067. Please redistribute all of the files comprising the interrupt list (listed at
  2068. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  2069. quartet of archives named INTER60A through INTER60D (preferably the original
  2070. authenticated PKZIP archives), and the utility and hypertext conversion
  2071. programs in three additional archives called INTER60E.ZIP to INTER60G.ZIP
  2072. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  2073. --------!---CONTACT_INFO---------------------
  2074. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  2075. FIDO: Ralf Brown 1:129/26.1