MEMORY.LST 126 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282
  1. MEMORY MAP Release 60 Last change 03jan99
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  3. --------H-M00000000--------------------------
  4. MEM 0000h:0000h R - INTERRUPT VECTOR TABLE
  5. Size: 1024 BYTEs
  6. Note: see also the main interrupt list
  7. --------b-M0000031D--------------------------
  8. MEM 0000h:031Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 47 HARD DISK PARMS
  9. Size: 16 BYTEs
  10. Note: these fields are used if the AMI BIOS setup is set to use the top of
  11. the interrupt table for the extended BIOS data area
  12. SeeAlso: MEM 0000h:032Dh,INT 41
  13. --------b-M0000032D--------------------------
  14. MEM 0000h:032Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 48 HARD DISK PARMS
  15. Size: 16 BYTEs
  16. Note: these fields are used if the AMI BIOS setup is set to use the top of
  17. the interrupt table for the extended BIOS data area
  18. SeeAlso: MEM 0000h:031Dh,INT 46
  19. --------B-M00000400--------------------------
  20. MEM 0000h:0400h - BIOS DATA AREA
  21. Size: 256 BYTEs
  22. Note: see also the MEM 0040h:xxxxh entries
  23. ----------M00000500--------------------------
  24. MEM 0000h:0500h - DATA AREA
  25. Size: 256 BYTEs
  26. --------D-M00000600--------------------------
  27. MEM 0000h:0600h - MS-DOS 1.x LOAD ADDRESS
  28. --------D-M00000700--------------------------
  29. MEM 0000h:0700h - MS-DOS 2+ LOAD ADDRESS
  30. --------S-M00400000--------------------------
  31. MEM 0040h:0000h - BASE I/O ADDRESS OF FIRST SERIAL I/O PORT
  32. Size: WORD
  33. Notes: the BIOS sets this word to zero if is unable to find any serial ports
  34. at the addresses it is programmed to check at boot
  35. DOS and BIOS serial device numbers may be redefined by re-assigning
  36. these values of the base I/O addresses stored here
  37. SeeAlso: MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:0008h
  38. SeeAlso: MEM 0040h:007Ch,INT 14/AH=00h,PORT 03F8h"SERIAL"
  39. --------S-M00400002--------------------------
  40. MEM 0040h:0002h - BASE I/O ADDRESS OF SECOND SERIAL I/O PORT
  41. Size: WORD
  42. Note: the BIOS sets this word to zero if is unable to find more than one
  43. serial port at the addresses it is programmed to check at boot
  44. SeeAlso: MEM 0040h:0000h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:000Ah
  45. SeeAlso: MEM 0040h:007Dh,INT 14/AH=00h,PORT 02F8h"SERIAL"
  46. --------S-M00400004--------------------------
  47. MEM 0040h:0004h - BASE I/O ADDRESS OF THIRD SERIAL I/O PORT
  48. Size: WORD
  49. Note: the BIOS sets this word to zero if is unable to find more than two
  50. serial ports at the addresses it is programmed to check at boot
  51. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0006h,MEM 0040h:000Ch
  52. SeeAlso: MEM 0040h:007Eh,PORT 03E8h"SERIAL"
  53. --------S-M00400006--------------------------
  54. MEM 0040h:0006h - BASE I/O ADDRESS OF FOURTH SERIAL I/O PORT
  55. Size: WORD
  56. Note: the BIOS sets this word to zero if is unable to find more than three
  57. serial ports at the addresses it is programmed to check at boot
  58. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0008h
  59. SeeAlso: MEM 0040h:007Fh,PORT 02E8h"SERIAL"
  60. --------P-M00400008--------------------------
  61. MEM 0040h:0008h - BASE I/O ADDRESS OF FIRST PARALLEL I/O PORT
  62. Size: WORD
  63. Notes: the BIOS POST routine fills in the parallel port address fields in
  64. turn as it finds parallel ports. All fields beyond the last one
  65. for which a valid parallel port was found are set to zero.
  66. the BIOS INT 17 handler uses these fields to address the parallel
  67. ports
  68. SeeAlso: MEM 0040h:0000h,MEM 0040h:000Ah,MEM 0040h:000Ch,INT 17/AH=00h
  69. SeeAlso: PORT 0278h"PRINTER",PORT 03BCh"PRINTER"
  70. --------P-M0040000A--------------------------
  71. MEM 0040h:000Ah - BASE I/O ADDRESS OF SECOND PARALLEL I/O PORT
  72. Size: WORD
  73. Note: zero if fewer than two parallel ports installed
  74. SeeAlso: MEM 0040h:0002h,MEM 0040h:0008h,MEM 0040h:000Ch,PORT 0278h"PRINTER"
  75. SeeAlso: PORT 0378h"PRINTER",INT 17/AH=00h
  76. --------P-M0040000C--------------------------
  77. MEM 0040h:000Ch - BASE I/O ADDRESS OF THIRD PARALLEL I/O PORT
  78. Size: WORD
  79. Note: zero if fewer than three parallel ports installed
  80. SeeAlso: MEM 0040h:0004h,MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh
  81. SeeAlso: PORT 0378h"PRINTER",INT 17/AH=00h
  82. --------P-M0040000E--------------------------
  83. MEM 0040h:000Eh - BASE I/O ADDRESS OF FOURTH PARALLEL I/O PORT (pre-PS/2)
  84. Size: WORD
  85. Note: zero if fewer than four parallel ports installed
  86. SeeAlso: MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh"BIOS DATA"
  87. SeeAlso: PORT 0378h"PRINTER",INT 17/AH=00h
  88. --------B-M0040000E--------------------------
  89. MEM 0040h:000Eh - SEGMENT OF EXTENDED BIOS DATA SEGMENT (PS/2, newer BIOSes)
  90. Size: WORD
  91. SeeAlso: MEM 0040h:000Eh"PARALLEL",INT 15/AH=C1h
  92. Format of Extended BIOS Data Area (IBM):
  93. Offset Size Description (Table M0001)
  94. 00h BYTE length of EBDA in kilobytes
  95. 01h 15 BYTEs reserved
  96. 17h BYTE number of entries in POST error log (0-5)
  97. 18h 5 WORDs POST error log (each word is a POST error number)
  98. 22h DWORD Pointing Device Driver entry point
  99. 26h BYTE Pointing Device Flags 1 (see #M0002)
  100. 27h BYTE Pointing Device Flags 2 (see #M0003)
  101. 28h 8 BYTEs Pointing Device Auxiliary Device Data
  102. 30h DWORD Vector for INT 07h stored here during 80387 interrupt
  103. 34h DWORD Vector for INT 01h stored here during INT 07h emulation
  104. 38h BYTE Scratchpad for 80287/80387 interrupt code
  105. 39h WORD Timer3: Watchdog timer initial count
  106. 3Bh BYTE ??? seen non-zero on Model 30
  107. 3Ch BYTE ???
  108. 3Dh 16 BYTEs Fixed Disk parameter table for drive 0 (for older machines
  109. which don't directly support the installed drive)
  110. 4Dh 16 BYTEs Fixed Disk parameter table for drive 1 (for older machines
  111. which don't directly support the installed drive)
  112. 5Dh-67h ???
  113. 68h BYTE cache control
  114. bits 7-2 unused (0)
  115. bit 1: CPU cache failed test
  116. bit 0: CPU cache disabled
  117. 69h-6Bh ???
  118. 6Ch BYTE Fixed disk: (=FFh on ESDI systems)
  119. bits 7-4: Channel number 00-0Fh
  120. bits 3-0: DMA arbitration level 00-0Eh
  121. 6Dh BYTE ???
  122. 6Eh WORD current typematic setting (see INT 16/AH=03h)
  123. 70h BYTE number of attached hard drives
  124. 71h BYTE hard disk 16-bit DMA channel
  125. 72h BYTE interrupt status for hard disk controller (1Fh on timeout)
  126. 73h BYTE hard disk operation flags
  127. bit 7: controller issued operation-complete INT 76h
  128. bit 6: controller has been reset
  129. bits 5-0: unused (0)
  130. 74h DWORD old INT 76h vector
  131. 78h BYTE hard disk DMA type
  132. typically 44h for reads and 4Ch for writes
  133. 79h BYTE status of last hard disk operation
  134. 7Ah BYTE hard disk timeout counter
  135. 7Bh-7Dh
  136. 7Eh 8 WORDs storage for hard disk controller status
  137. 8Eh-E6h
  138. E7h BYTE floppy drive type
  139. bit 7: drive(s) present
  140. bits 6-2: unused (0)
  141. bit 1: drive 1 is 5.25" instead of 3.5"
  142. bit 0: drive 0 is 5.25"
  143. E8h 4 BYTEs ???
  144. ECh BYTE hard disk parameters flag
  145. bit 7: parameters loaded into EBDA
  146. bits 6-0: unused (0)
  147. EDh BYTE ???
  148. EEh BYTE CPU family ID (03h = 386, 04h = 486, etc.) (see INT 15/AH=C9h)
  149. EFh BYTE CPU stepping (see INT 15/AH=C9h)
  150. F0h 39 BYTEs ???
  151. 117h WORD keyboard ID (see INT 16/AH=0Ah)
  152. (most commonly 41ABh)
  153. 119h BYTE ???
  154. 11Ah BYTE non-BIOS INT 18h flag
  155. bits 7-1: unused (0)
  156. bit 0: set by BIOS before calling user INT 18h at offset 11Dh
  157. 11Bh 2 BYTE ???
  158. 11Dh DWORD user INT 18h vector if BIOS has re-hooked INT 18h
  159. 121h and up: ??? seen non-zero on Model 60
  160. 3F0h BYTE Fixed disk buffer (???)
  161. SeeAlso: #M0004
  162. Bitfields for Pointing Device Flags 1:
  163. Bit(s) Description (Table M0002)
  164. 7 command in progress
  165. 6 resend byte (FAh) received
  166. 5 acknowledge byte (FEh) received
  167. 4 error byte (FCh) received
  168. 3 unexpected value received
  169. 2-0 index count for auxiliary device data at 28h
  170. SeeAlso: #M0001,#M0003
  171. Bitfields for Pointing Device Flags 2:
  172. Bit(s) Description (Table M0003)
  173. 7 device driver far call flag
  174. 6-3 reserved
  175. 2-0 package size (number of bytes received) - 1
  176. SeeAlso: #M0001,#M0002
  177. Format of Extended BIOS Data Area (AMI v1.00.12.AX1T):
  178. Offset Size Description (Table M0004)
  179. 00h BYTE length of XBDA in kilobytes
  180. 01h 15 BYTEs reserved
  181. 17h BYTE number of entries in POST error log (0-10)
  182. 18h 10 BYTEs unused???
  183. 22h DWORD Pointing Device Driver entry point
  184. 26h BYTE Pointing Device Flags 1 (see #M0002)
  185. 27h BYTE Pointing Device Flags 2 (see #M0003)
  186. 28h 8 BYTEs Pointing Device Auxiliary Device Data
  187. 30h 13 BYTEs ???
  188. 3Dh 16 BYTEs Fixed Disk parameter table for drive 0
  189. 4Dh 16 BYTEs Fixed Disk parameter table for drive 1
  190. 5Dh 16 BYTEs parameter table for drive 2???
  191. 6Dh 16 BYTEs parameter table for drive 3???
  192. 80h 56 BYTEs? IDE drive 0 manufacturer/model string
  193. B8h 41 BYTEs AMIBIOS copyright string
  194. E1h unused???
  195. 102h WORD ??? flags
  196. bit 15: ???
  197. 108h WORD offset of IntelIDECfgTbl (IDE configuration settings) within
  198. segment F000h
  199. 10Ah 2 BYTEs ???
  200. 10Ch DWORD pointer to routine to call for language-specific error messages
  201. 110h WORD offset in segment F000h of end of currently-loaded optional
  202. BIOS subsystems (language, APM, etc.)
  203. 112h WORD offset in segment F000h of end of area avaiable for loading
  204. optional BIOS subsystems
  205. 1F0h BYTE APM status flags
  206. 1F1h 8 BYTEs APM power-state data for device classes 01h-06h
  207. bits 0-3: current power state for devices 00h-03h in class
  208. bits 7-4: current engaged state for devices 00h-03h in class
  209. 1F9h 4 BYTEs APM power-state data for device classes 01h-08h (four devices
  210. per class)
  211. 1FDh 3 BYTEs ???
  212. 200h 10 WORDs POST error log
  213. 214h ???
  214. SeeAlso: #M0001,#M0005
  215. Format of Extended BIOS Data Area (PhoenixBIOS 4.0):
  216. Offset Size Description (Table M0005)
  217. 00h BYTE length of XBDA in kilobytes
  218. 01h 33 BYTEs reserved
  219. 22h DWORD Pointing Device Driver entry point
  220. 26h BYTE Pointing Device Flags 1 (see #M0002)
  221. 27h BYTE Pointing Device Flags 2 (see #M0003)
  222. 28h 8 BYTEs Pointing Device Auxiliary Device Data
  223. SeeAlso: #M0001,#M0004
  224. --------B-M00400010--------------------------
  225. MEM 0040h:0010h - INSTALLED HARDWARE
  226. Size: WORD
  227. SeeAlso: INT 11
  228. Bitfields for BIOS-detected installed hardware:
  229. Bit(s) Description (Table M0006)
  230. 15-14 number of parallel devices
  231. 00 or 11 sometimes used to indicate four LPT ports
  232. 13 (Convertible, PS/2-55LS) internal modem
  233. 12 game port installed
  234. 11-9 number of serial devices
  235. 000 or 111 sometimes used to indicate eight COM ports
  236. 8 reserved
  237. 7-6 number of floppy disk drives (minus 1)
  238. 5-4 initial video mode
  239. 00 EGA,VGA,PGA, or other with on-board video BIOS
  240. 01 40x25 CGA color
  241. 10 80x25 CGA color
  242. 11 80x25 mono text
  243. 3-2 (PC only) RAM on motherboard
  244. 00 = 16K, 01 = 32K, 10 = 48K, 11 = 64K
  245. (some XTs) RAM on motherboard
  246. 00 = 64K, 01 = 128K, 10 = 192K, 11 = 256K
  247. 2 (pre-PS/2 except PC) reserved
  248. (PS/2, some XT clones, newer BIOSes) pointing device installed
  249. 1 math coprocessor installed
  250. 0 floppy disk drives are installed
  251. booted from floppy
  252. --------B-M00400012--------------------------
  253. MEM 0040h:0012h - Convertible - POST STATUS
  254. Size: BYTE
  255. --------B-M00400012--------------------------
  256. MEM 0040h:0012h U - AT - MANUFACTURING TEST INITIALIZATION FLAGS
  257. Size: BYTE
  258. Bitfields for AT manufacturing test initialization flags:
  259. Bit(s) Description (Table M0007)
  260. 0 start in manufacturing test mode rather than normal operation
  261. 1-7 unused
  262. --------b-M00400012--------------------------
  263. MEM 0040h:0012h - MCA - MANUFACTURING TEST
  264. Size: BYTE
  265. Bitfields for MCA manufacturing test flags :
  266. Bit(s) Description (Table M0008)
  267. 7 POST flag, ???
  268. 6-5 unused
  269. 4 POST flag, slot 4 has adapter identifier EDAFh
  270. 3 POST flag, 80x25 color video
  271. 2 POST flag, ???
  272. 1 unused
  273. 0 manufacturing test mode rather than normal operation
  274. --------b-M00400012--------------------------
  275. MEM 0040h:0012h - PS/2 Model 25 - POST SYSTEM FLAG
  276. Size: BYTE
  277. Bitfields for PS/2 Model 25 POST sytem flag :
  278. Bit(s) Description (Table M0009)
  279. 0 optional memory failed; memory remapped
  280. 1 real-time clock installed
  281. --------B-M00400013--------------------------
  282. MEM 0040h:0013h - BASE MEMORY SIZE IN KBYTES
  283. Size: WORD
  284. SeeAlso: INT 12
  285. --------b-M00400015--------------------------
  286. MEM 0040h:0015h - PC, XT - ADAPTER MEMORY SIZE IN KBYTES
  287. Size: WORD
  288. --------b-M00400015--------------------------
  289. MEM 0040h:0015h U - AT - MANUFACTURING TEST SCRATCH PAD
  290. Size: BYTE
  291. --------K-M00400015--------------------------
  292. MEM 0040h:0015h - Compaq Deskpro 386 - PREVIOUS SCAN CODE
  293. Size: BYTE
  294. --------b-M00400016--------------------------
  295. MEM 0040h:0016h U - AT - MANUFACTURING TEST SCRATCH PAD
  296. Size: BYTE
  297. --------b-M00400016--------------------------
  298. MEM 0040h:0016h U - PS/2 Model 30 - BIOS CONTROL FLAGS
  299. Size: BYTE
  300. --------K-M00400016--------------------------
  301. MEM 0040h:0016h - Compaq Deskpro 386 - KEYCLICK VOLUME
  302. Size: BYTE
  303. Range: 00h-7Fh
  304. --------K-M00400017--------------------------
  305. MEM 0040h:0017h - KEYBOARD - STATUS FLAGS 1
  306. Size: BYTE
  307. SeeAlso: MEM 0040h:0018h,INT 16/AH=02h,MEM 0040h:0096h
  308. Bitfields for keyboard status flags 1:
  309. Bit(s) Description (Table M0010)
  310. 7 INSert active
  311. 6 Caps Lock active
  312. 5 Num Lock active
  313. 4 Scroll Lock active
  314. 3 either Alt pressed
  315. 2 either Ctrl pressed
  316. 1 Left Shift pressed
  317. 0 Right Shift pressed
  318. SeeAlso: #M0011,#00587
  319. --------K-M00400018--------------------------
  320. MEM 0040h:0018h - KEYBOARD - STATUS FLAGS 2
  321. Size: BYTE
  322. SeeAlso: MEM 0040h:0017h,INT 16/AH=12h
  323. Bitfields for keyboard status flags 2 :
  324. Bit(s) Description (Table M0011)
  325. 7 INSert pressed
  326. 6 Caps Lock pressed
  327. 5 Num Lock pressed
  328. 4 Scroll Lock pressed
  329. 3 Pause state active
  330. 2 Sys Req pressed
  331. 1 Left Alt pressed
  332. 0 Left Ctrl pressed
  333. SeeAlso: #M0010,#00588
  334. --------K-M00400019--------------------------
  335. MEM 0040h:0019h - KEYBOARD - ALT-nnn KEYPAD WORKSPACE
  336. Size: BYTE
  337. Desc: holds the current value of an Alt-NNN keypad sequence; when Alt is
  338. released and this byte is non-zero, the appropriate character is
  339. placed in the keyboard buffer
  340. SeeAlso: INT 16/AH=00h,MEM 0040h:001Ah
  341. --------K-M0040001A--------------------------
  342. MEM 0040h:001Ah - KEYBOARD - POINTER TO NEXT CHARACTER IN KEYBOARD BUFFER
  343. Size: WORD
  344. SeeAlso: MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  345. --------K-M0040001C--------------------------
  346. MEM 0040h:001Ch - KEYBOARD - POINTER TO FIRST FREE SLOT IN KEYBOARD BUFFER
  347. Size: WORD
  348. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0080h,MEM 0040h:0082h
  349. SeeAlso: INT 16/AH=00h
  350. --------K-M0040001E--------------------------
  351. MEM 0040h:001Eh - KEYBOARD - DEFAULT KEYBOARD CIRCULAR BUFFER
  352. Size: 16 WORDs
  353. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h
  354. SeeAlso: INT 16/AH=00h,INT 16/AH=05h
  355. --------B-M0040003E--------------------------
  356. MEM 0040h:003Eh - DISKETTE - RECALIBRATE STATUS
  357. Size: BYTE
  358. SeeAlso: MEM 0040h:003Fh,MEM 0040h:0040h,INT 13/AH=00h,INT 13/AH=11h
  359. Bitfields for diskette recalibrate status:
  360. Bit(s) Description (Table M0012)
  361. 7 diskette hardware interrupt occurred
  362. 6-4 reserved
  363. 3 recalibrate diskette 3 (PC,XT only)
  364. 2 recalibrate diskette 2 (PC,XT only)
  365. 1 recalibrate diskette 1
  366. 0 recalibrate diskette 0
  367. --------B-M0040003F--------------------------
  368. MEM 0040h:003Fh - DISKETTE - MOTOR STATUS
  369. Size: BYTE
  370. SeeAlso: MEM 0040h:003Eh,MEM 0040h:0040h
  371. Bitfields for diskette motor status:
  372. Bit(s) Description (Table M0013)
  373. 7 current operation is write or format, rather than read or verify
  374. 6 reserved (DMA enabled on 82077)
  375. 5-4 diskette drive number selected (0-3)
  376. 3 diskette 3 motor on (PC,XT only)
  377. 2 diskette 2 motor on (PC,XT only)
  378. 1 diskette 1 motor on
  379. 0 diskette 0 motor on
  380. --------B-M00400040--------------------------
  381. MEM 0040h:0040h - DISKETTE - MOTOR TURN-OFF TIMEOUT COUNT
  382. Size: BYTE
  383. Desc: number of clock ticks until diskette motor is turned off
  384. Note: the typical implementation of the timeout is to have the INT 08
  385. handler decrement this byte on every clock tick, and force the
  386. diskette motor off if the result is equal to zero
  387. SeeAlso: MEM 0040h:003Eh,MEM 0040h:003Fh,MEM 0040h:0041h,INT 08"IRQ0"
  388. --------B-M00400041--------------------------
  389. MEM 0040h:0041h - DISKETTE - LAST OPERATION STATUS
  390. Size: BYTE
  391. SeeAlso: MEM 0040h:003Eh,MEM 0040h:0042h,INT 13/AH=01h
  392. Bitfields for diskette last operation status:
  393. Bit(s) Description (Table M0014)
  394. 7 drive not ready
  395. 6 seek error
  396. 5 general controller failure
  397. 4-0 error reason
  398. 00h no error
  399. 01h invalid request/parameter
  400. 02h address mark not found
  401. 03h write-protect error
  402. 04h sector not found
  403. 06h diskette change line active
  404. 08h DMA overrun
  405. 09h DMA across 64k boundary
  406. 0Ch media type unknown
  407. 10h CRC error on read
  408. Note: the following values for this byte differ somewhat from the
  409. bitfield definition above:
  410. 30h drive does not support media sense
  411. 31h no media in drive
  412. 32h drive does not support media type
  413. AAh diskette drive not ready
  414. --------B-M00400042--------------------------
  415. MEM 0040h:0042h - DISK - FLOPPY/HARD DRIVE STATUS/COMMAND BYTES
  416. Size: 7 BYTEs
  417. SeeAlso: MEM 0040h:0041h
  418. 42h BYTE XT: command byte to hard disk controller
  419. AT: write precompensation cylinder number / 4
  420. 43h BYTE XT: bit 5 = drive number, bits 3-0=head number
  421. AT: sector count
  422. 44h BYTE XT: bits 6,7 = high bits of track, bits 5-0 = start sector-1
  423. AT: starting sector
  424. 45h BYTE low byte of track number
  425. 46h BYTE XT: sector count
  426. AT: high bits of track number
  427. 47h BYTE XT: controlbyte from HD parameters (step rate,...)
  428. AT: 101DHHHH, D=drive number, HHHH=head number
  429. 48h BYTE XT: INT 13h subfunction number
  430. AT: comand byte to hard disk controller
  431. --------B-M00400042--------------------------
  432. MEM 0040h:0042h - DISK CONTROLLER STATUS REGISTER 0
  433. Size: BYTE
  434. SeeAlso: MEM 0040h:0043h
  435. Bitfields for diskette controller status register 0:
  436. Bit(s) Description (Table M0015)
  437. 7-6 interrupt code
  438. 00 normal completion
  439. 01 abnormal termination during execution
  440. 10 invalid command
  441. 11 abnormal termination: ready line on/diskette change
  442. 5 requested seek complete
  443. 4 drive fault
  444. 3 drive not ready
  445. 2 head state at time of interrupt
  446. 1-0 selected drive (drives 2&3 on PC,XT only)
  447. SeeAlso: #M0016
  448. --------B-M00400043--------------------------
  449. MEM 0040h:0043h - DISK CONTROLLER STATUS REGISTER 1
  450. Size: BYTE
  451. SeeAlso: MEM 0040h:0042h,MEM 0040h:0044h
  452. Bitfields for diskette controller status register 0:
  453. Bit(s) Description (Table M0016)
  454. 7 attempted access beyon last cylinder
  455. 6 unused
  456. 5 CRC error on read
  457. 4 DMA overrun
  458. 3 unused
  459. 2 data error
  460. 1 disk write protected
  461. 0 missing address mark
  462. SeeAlso: #M0015,#M0017
  463. --------B-M00400044--------------------------
  464. MEM 0040h:0044h - DISK CONTROLLER STATUS REGISTER 2
  465. Size: BYTE
  466. SeeAlso: MEM 0040h:0043h
  467. Bitfields for diskette controller status register 0:
  468. Bit(s) Description (Table M0017)
  469. 7 unused
  470. 6 found deleted data address mark
  471. 5 CRC error in data field
  472. 4 wrong cylinder number read
  473. 3 verify equal
  474. 2 can't find sector matching verify condition
  475. 1 bad cylinder
  476. 0 unable to find address mark
  477. SeeAlso: #M0016
  478. --------V-M00400049--------------------------
  479. MEM 0040h:0049h - VIDEO - CURRENT VIDEO MODE
  480. Size: BYTE
  481. SeeAlso: MEM 0040h:004Ah,INT 10/AH=00h
  482. --------V-M0040004A--------------------------
  483. MEM 0040h:004Ah - VIDEO - COLUMNS ON SCREEN
  484. Size: WORD
  485. SeeAlso: MEM 0040h:0049h,MEM 0040h:004Ch,MEM 0040h:004Eh,INT 10/AH=0Fh
  486. --------V-M0040004C--------------------------
  487. MEM 0040h:004Ch - VIDEO - PAGE (REGEN BUFFER) SIZE IN BYTES
  488. Size: WORD
  489. SeeAlso: MEM 0040h:004Ah,MEM 0040h:004Eh,MEM 0040h:0050h
  490. --------V-M0040004E--------------------------
  491. MEM 0040h:004Eh - VIDEO - CURRENT PAGE START ADDRESS IN REGEN BUFFER
  492. Size: WORD
  493. SeeAlso: MEM 0040h:004Ch,MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=05h
  494. --------V-M00400050--------------------------
  495. MEM 0040h:0050h - VIDEO - CURSOR POSITIONS
  496. Size: 8 WORDs
  497. Desc: contains row and column position for the cursors on each of eight
  498. video pages
  499. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0060h,INT 10/AH=02h
  500. --------V-M00400060--------------------------
  501. MEM 0040h:0060h - VIDEO - CURSOR TYPE
  502. Size: WORD (big-endian)
  503. Desc: contains cursor start scan line and cursor end scan line
  504. SeeAlso: MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=03h
  505. --------V-M00400062--------------------------
  506. MEM 0040h:0062h - VIDEO - CURRENT PAGE NUMBER
  507. Size: BYTE
  508. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0063h,INT 10/AH=05h
  509. --------V-M00400063--------------------------
  510. MEM 0040h:0063h - VIDEO - CRT CONTROLLER BASE I/O PORT ADDRESS
  511. Size: WORD
  512. Note: normally 03B4h for mono and 03D4h for color video boards
  513. SeeAlso: MEM 0040h:0065h,MEM 0040h:0066h
  514. --------V-M00400065--------------------------
  515. MEM 0040h:0065h - VIDEO - CURRENT MODE SELECT REGISTER
  516. Size: BYTE
  517. Desc: contains last value written to I/O port 03B8h / 03D8h
  518. SeeAlso: MEM 0040h:0063h,MEM 0040h:0066h
  519. Bitfields for current video mode select register:
  520. Bit(s) Description (Table M0018)
  521. 7-6 unused
  522. 5 attribute bit 7 controls blinking instead of background
  523. 4 mode 6 graphics in monochrome
  524. 3 video signal enabled
  525. 2 monochrome
  526. 1 graphics
  527. 0 80x25 text
  528. --------V-M00400066--------------------------
  529. MEM 0040h:0066h - VIDEO - CURRENT SETTING OF CGA PALETTE REGISTER
  530. Size: BYTE
  531. Desc: contains the last value written to I/O port 03D9h
  532. SeeAlso: MEM 0040h:0063h,MEM 0040h:0065h,INT 10h/AH=0Bh/BH=01h
  533. Bitfields for CGA palette register:
  534. Bit(s) Description (Table M0019)
  535. 7-6 unused
  536. 5 palette (0/1)
  537. 4 intense background colors in text mode
  538. 3 intense border color (40x25) / background color (mode 5)
  539. 2 red
  540. 1 green
  541. 0 blue
  542. ----------M00400067--------------------------
  543. MEM 0040h:0067h - PC only - CASSETTE TIME COUNT
  544. Size: WORD
  545. SeeAlso: INT 15/AH=00h
  546. ----------M00400067--------------------------
  547. MEM 0040h:0067h - RESET RESTART ADDRESS
  548. Size: DWORD
  549. Desc: this address stores the address at which to resume execution after a
  550. CPU reset (or jump to F000h:FFF0h) when certain magic values are
  551. stored at 0040h:0072h or in CMOS RAM location 0Fh
  552. SeeAlso: MEM 0040h:0072h,MEM F000h:FFF0h,CMOS 0Fh,INT 19
  553. ----------M00400069--------------------------
  554. MEM 0040h:0069h - CASSETTE (PC only) - CASSETTE CRC REGISTER
  555. Size: WORD
  556. SeeAlso: MEM 0040h:006Bh"CASSETTE",INT 15/AH=02h
  557. ----------M00400069--------------------------
  558. MEM 0040h:0069h - V20-XT-BIOS - KEY REPEAT
  559. Size: BYTE
  560. Bitfields for V20-XT-BIOS key repeat flags:
  561. Bit(s) Description (Table M0020)
  562. 7 key repeat disabled
  563. 6 Ctrl-Alt pressed instead of just Alt
  564. ----------M0040006B--------------------------
  565. MEM 0040h:006Bh - CASSETTE (PC only) - LAST VALUE READ FROM CASSETTE
  566. Size: BYTE
  567. SeeAlso: MEM 0040h:0069h"CASSETTE",INT 15/AH=02h
  568. ----------M0040006B--------------------------
  569. MEM 0040h:006Bh - POST LAST UNEXPECTED INTERRUPT (XT and later)
  570. Size: BYTE
  571. Desc: this is a bitmask of IRQs which have occurred while the corresponding
  572. interrupt vector points at the default system BIOS handler
  573. (bit 0 = IRQ0 to bit 7 = IRQ7; bit 2 = IRQ8-15 on AT and later)
  574. SeeAlso: INT 0F"IRQ7",INT 70"IRQ8",INT 77"IRQ15"
  575. ----------M0040006C--------------------------
  576. MEM 0040h:006Ch - TIMER TICKS SINCE MIDNIGHT
  577. Size: DWORD
  578. Desc: updated approximately every 55 milliseconds by the BIOS INT 08 handler
  579. SeeAlso: MEM 0040h:0070h,INT 08"IRQ0",INT 1A/AH=00h
  580. ----------M00400070--------------------------
  581. MEM 0040h:0070h - TIMER OVERFLOW
  582. Size: BYTE
  583. Desc: non-zero if timer has counted past midnight since last call to
  584. INT 1A/AH=00h
  585. Note: the original IBM BIOS, and thus most other BIOSes, sets this byte to
  586. 01h at midnight; a few (such as the Eagle PC-2) increment it each
  587. time midnight is passed. The former behavior results in lost days
  588. if multiple midnights pass between "get-time" calls while the machine
  589. is powered up.
  590. SeeAlso: MEM 0040h:006Ch,INT 1A/AH=00h
  591. --------K-M00400071--------------------------
  592. MEM 0040h:0071h - Ctrl-Break FLAG
  593. Size: BYTE
  594. Desc: bit 7 is set when Ctrl-Break has been pressed
  595. SeeAlso: INT 1B
  596. ----------M00400072--------------------------
  597. MEM 0040h:0072h - POST RESET FLAG
  598. Size: WORD
  599. Desc: specify the action the BIOS should take at the beginning of the
  600. power-on self-test when the machine is reset
  601. SeeAlso: INT 19,MEM F000h:FFF0h
  602. (Table M0021)
  603. Values for POST reset flag:
  604. 0000h cold boot
  605. 0064h Burn-in mode
  606. 1234h to bypass memory test (warm boot)
  607. 4321h [PS/2 except Mod 25,30] to preserve memory
  608. 5678h [Conv] system suspended
  609. 9ABCh [Conv] manufacturing test mode
  610. ABCDh [Conv] POST loop mode
  611. --------B-M00400074--------------------------
  612. MEM 0040h:0074h - FIXED DISK LAST OPERATION STATUS (except ESDI drives)
  613. Size: BYTE
  614. SeeAlso: INT 13/AH=01h,INT 13h/AH=0Ah,MEM 0040h:0041h
  615. (Table M0022)
  616. Values for fixed disk last operation status:
  617. 00h no error
  618. 01h invalid function request
  619. 02h address mark not found
  620. 03h write protect error
  621. 04h sector not found
  622. 05h reset failed
  623. 06h diskette removed
  624. 07h drive parameter activity failed
  625. 08h DMA overrun
  626. 09h DMA data boundary error
  627. 0Ah bad sector flag detected
  628. 0Bh bad track detected
  629. 0Ch requested diskette media type not found
  630. (PS/2 or extended BIOS only) unsupported track
  631. 0Dh invalid number of sectors for Format
  632. 0Eh control data address mark detected
  633. 0Fh DMA arbitration level out of range
  634. 10h uncorrectable ECC or CRC error
  635. 11h ECC corrected data error
  636. 20h general controller failed
  637. 40h seek failed
  638. 80h time out
  639. AAh drive not ready
  640. B0h volume not locked in drive (INT 13 extensions)
  641. B1h volume locked in drive (INT 13 extensions)
  642. B2h volume not removable (INT 13 extensions)
  643. B3h volume in use (INT 13 extensions)
  644. B4h lock count exceeded (INT 13 extensions)
  645. B5h valid eject request failed (INT 13 extensions)
  646. BBh undefined error
  647. CCh write fault on selected drive
  648. E0h status error/error register is zero
  649. FFh sense failed
  650. SeeAlso: #00234
  651. --------d-M00400074--------------------------
  652. MEM 0040h:0074h - WD1002-27X SuperBIOS - TOTAL DRIVES, FIRST CONTROLLER ONLY
  653. Size: BYTE
  654. SeeAlso: MEM 0040h:0075h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  655. --------B-M00400075--------------------------
  656. MEM 0040h:0075h - FIXED DISK - NUMBER OF FIXED DISK DRIVES
  657. Size: BYTE
  658. SeeAlso: MEM 0040h:0076h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  659. --------d-M00400075--------------------------
  660. MEM 0040h:0075h - WD1002-27X SuperBIOS - TOTAL FIXED DRIVES, BOTH CONTROLLERS
  661. Size: BYTE
  662. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  663. --------B-M00400076--------------------------
  664. MEM 0040h:0076h - FIXED DISK - CONTROL BYTE {IBM documented only for XT}
  665. Size: BYTE
  666. Desc: loaded from the disk parameter table control byte (offset 8) during
  667. various hard disk operations
  668. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  669. --------d-M00400076--------------------------
  670. MEM 0040h:0076h - XT: hard disk controller's I/O address (Western Digital)
  671. Size: BYTE
  672. --------d-M00400076--------------------------
  673. MEM 0040h:0076h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  674. Size: BYTE
  675. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0075h"SuperBIOS"
  676. SeeAlso: MEM 0040h:0077h"SuperBIOS"
  677. --------B-M00400077--------------------------
  678. MEM 0040h:0077h - FIXED DISK - I/O port offset {IBM documented only for XT}
  679. Size: BYTE
  680. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0076h"FIXED DISK"
  681. --------d-M00400077--------------------------
  682. MEM 0040h:0077h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  683. Size: BYTE
  684. SeeAlso: MEM 0040h:0076h"SuperBIOS"
  685. --------B-M00400078--------------------------
  686. MEM 0040h:0078h - PARALLEL DEVICE 1 TIME-OUT COUNTER
  687. Size: BYTE
  688. SeeAlso: MEM 0040h:0079h,MEM 0040h:007Ah,INT 17/AH=00h
  689. --------B-M00400079--------------------------
  690. MEM 0040h:0079h - PARALLEL DEVICE 2 TIME-OUT COUNTER
  691. Size: BYTE
  692. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,INT 17/AH=00h
  693. --------B-M0040007A--------------------------
  694. MEM 0040h:007Ah - PARALLEL DEVICE 3 TIME-OUT COUNTER
  695. Size: BYTE
  696. SeeAlso: MEM 0040h:0078h,MEM 0040h:0079h,MEM 0040h:007Bh"PARALLEL"
  697. --------B-M0040007B--------------------------
  698. MEM 0040h:007Bh - PARALLEL DEVICE 4 TIME-OUT COUNTER (pre-PS, PS Models 25,30)
  699. Size: BYTE
  700. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,MEM 0040h:007Bh"INT 4Bh"
  701. --------m-M0040007B--------------------------
  702. MEM 0040h:007Bh - INT 4Bh FLAGS (PS2 and newer)
  703. Size: BYTE
  704. SeeAlso: INT 4B/AX=8102h
  705. Bitfields for INT 4Bh flags:
  706. Bit(s) Description (Table M0023)
  707. 7-6 reserved
  708. 5 set if Virtual DMA Spec supported [PS] (see INT 4B)
  709. 4 reserved
  710. 3 set if INT 4Bh intercepted and must be chained
  711. 2 reserved
  712. 1 set if Generic SCSI CBIOS services available on INT 4Bh
  713. 0 reserved
  714. --------B-M0040007C--------------------------
  715. MEM 0040h:007Ch - SERIAL DEVICE 1 TIMEOUT COUNTER
  716. Size: BYTE
  717. SeeAlso: MEM 0040h:0000h,MEM 0040h:007Dh,MEM 0040h:007Eh,MEM 0040h:007Fh
  718. SeeAlso: INT 14/AH=01h
  719. --------B-M0040007D--------------------------
  720. MEM 0040h:007Dh - SERIAL DEVICE 2 TIMEOUT COUNTER
  721. Size: BYTE
  722. SeeAlso: MEM 0040h:0002h,MEM 0040h:007Ch,MEM 0040h:007Eh,MEM 0040h:007Fh
  723. SeeAlso: INT 14/AH=01h
  724. --------B-M0040007E--------------------------
  725. MEM 0040h:007Eh - SERIAL DEVICE 3 TIMEOUT COUNTER
  726. Size: BYTE
  727. SeeAlso: MEM 0040h:0004h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Fh
  728. SeeAlso: INT 14/AH=01h
  729. --------B-M0040007F--------------------------
  730. MEM 0040h:007Fh - SERIAL DEVICE 4 TIMEOUT COUNTER
  731. Size: BYTE
  732. SeeAlso: MEM 0040h:0006h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Eh
  733. SeeAlso: INT 14/AH=01h
  734. --------K-M00400080--------------------------
  735. MEM 0040h:0080h - KEYBOARD BUFFER START OFFSET FROM SEGMENT 40h (normally 1Eh)
  736. Size: WORD
  737. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0082h,INT 16/AH=05h
  738. --------K-M00400082--------------------------
  739. MEM 0040h:0082h - KEYBOARD BUFFER END+1 OFFSET FROM SEGMENT 40h (normally 3Eh)
  740. Size: WORD
  741. Note: XT BIOS dated 11/08/82 ends here
  742. SeeAlso: MEM 0040h:001Ch,MEM 0040h:003Eh,MEM 0040h:0080h,INT 16/AH=05h
  743. --------V-M00400084--------------------------
  744. MEM 0040h:0084h - VIDEO (EGA/MCGA/VGA) - ROWS ON SCREEN MINUS ONE
  745. Size: BYTE
  746. SeeAlso: MEM 0040h:0085h,INT 10/AX=1100h
  747. --------V-M00400085--------------------------
  748. MEM 0040h:0085h - VIDEO (EGA/MCGA/VGA) - CHARACTER HEIGHT IN SCAN-LINES
  749. Size: WORD
  750. SeeAlso: MEM 0040h:0084h
  751. --------V-M00400087--------------------------
  752. MEM 0040h:0087h - VIDEO (EGA/VGA) CONTROL: [MCGA: =00h]
  753. Size: BYTE
  754. SeeAlso: MEM 0040h:0084h,MEM 0040h:0085h,MEM 0040h:0088h
  755. Bitfields for EGA/VGA Video control flags:
  756. Bit(s) Description (Table M0024)
  757. 7 do not to clear RAM on mode set (see INT 10h, AH=00h)
  758. 6-5 RAM on adapter = (this field + 1) * 64K
  759. 4 reserved
  760. 3 EGA/VGA video system INactive
  761. 2 wait for display enable
  762. 1 mono monitor
  763. 0 alphanumeric cursor emulation DISabled
  764. When enabled, text mode cursor size (INT 10,AH=01h) settings looking
  765. like CGA ones are translated to equivalent EGA/VGA ones.
  766. --------V-M00400088--------------------------
  767. MEM 0040h:0088h - VIDEO (EGA/VGA) SWITCHES: [MCGA: reserved]
  768. Size: BYTE
  769. SeeAlso: MEM 0040h:0087h,MEM 0040h:0089h
  770. Bitfields for EGA/VGA Video switches:
  771. Bit(s) Description (Table M0025)
  772. 7-4 power-on state of feature connector bits 3-0
  773. 3-0 configuration switches 4-1 (=0 on, =1 off) (see #M0026)
  774. Note: when bit 4 of 0040h:0089h is 0, VGA emulates 350-line EGA if this
  775. byte is x3h or x9h, otherwise emulates 200-line CGA in 400-line
  776. double scan. VGA resets this byte to x9h after the mode set.
  777. See also note for 0040h:0089h.
  778. (Table M0026)
  779. Values for EGA/VGA configuration switches:
  780. 00h Pri MDA, Sec EGA+old color display 40 x 25
  781. 01h Pri MDA, Sec EGA+old color display 80 x 25
  782. 02h Pri MDA, Sec EGA+ECD normal mode (CGA emul)
  783. 03h Pri MDA, Sec EGA+ECD enhanced mode
  784. 04h Pri CGA 40 x 25, Sec EGA mono display
  785. 05h Pri CGA 80 x 25, Sec EGA mono display
  786. 06h Pri EGA+old color display 40 x 25, Sec MDA
  787. 07h Pri EGA+old color display 80 x 25, Sec MDA
  788. 08h Pri EGA+ECD normal mode (CGA emul), Sec MDA
  789. 09h Pri EGA+ECD enhanced mode, Sec MDA
  790. 0Ah Pri EGA mono display, Sec CGA 40 x 25
  791. 0Bh Pri EGA mono display, Sec CGA 80 x 25
  792. SeeAlso: #M0025
  793. --------V-M00400089--------------------------
  794. MEM 0040h:0089h U - VIDEO (MCGA/VGA) - MODE-SET OPTION CONTROL
  795. Size: BYTE
  796. SeeAlso: MEM 0040h:0087h,MEM 0040h:0088h
  797. Bitfields for Video mode-set option control:
  798. Bit(s) Description (Table M0027)
  799. 7,4 requested scan lines
  800. 0 0 350-line mode requested
  801. 0 1 400-line mode at next mode set
  802. 1 0 200-line mode requested
  803. 1 1 reserved
  804. Note: Apparently VGA BIOS mode set disregards bit 7 and uses
  805. byte 40h:88h to determine 200/350 selection when bit 4
  806. is zero. Presumably bit 7 is a convenience for other
  807. purposes. Bit 7 is reset to zero after the mode set.
  808. 6 display switching enabled
  809. 5 reserved
  810. 4 if set: use 400-line mode at next mode set
  811. if clear: [VGA] emulate EGA at next mode set
  812. [MCGA] emulate CGA, digital monitor, 200 lines, 8x8 text
  813. Note: this bit is set by the video mode set on VGA, unchanged on MCGA
  814. 3 default palette loading DISabled at mode set
  815. 2 mono display
  816. 1 gray scale summing enabled
  817. 0 [VGA] =1 if VGA active, =0 if not
  818. [MCGA] reserved, zero
  819. Note: the Tseng ET4000 BIOS v3.00 uses bits 6-4 of 88h and bits 6-5 of 89h
  820. to specify graphics-mode refresh rates as follows
  821. 88h/6 640x480: 1 for 72Hz,0 for 60Hz
  822. 88h/5+89h/6 800x600: 00 60Hz
  823. 01 56Hz
  824. 11 72Hz
  825. 88h/4+89h/5 1024x768: 00 interlaced
  826. 01 60Hz
  827. 10 72Hz???
  828. 11 70Hz
  829. --------V-M0040008A--------------------------
  830. MEM 0040h:008Ah U - VIDEO (MCGA/VGA) - INDEX INTO DISPLAY COMBINATION CODE TBL
  831. Size: BYTE
  832. SeeAlso: INT 10/AX=1A00h,#M0039
  833. --------*-M0040008B--------------------------
  834. MEM 0040h:008Bh - PC, PCjr, PC/XT 11/8/82, Convertible - RESERVED
  835. Size: 11 BYTEs
  836. --------B-M0040008B--------------------------
  837. MEM 0040h:008Bh - DISKETTE MEDIA CONTROL
  838. Size: BYTE
  839. Bitfields for diskette media control:
  840. Bit(s) Description (Table M0028)
  841. 7-6 last data rate set by controller
  842. 00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  843. 5-4 last diskette drive step rate selected
  844. 00=0Ch, 01=0Dh, 10=0Eh, 11=0Ah
  845. 3-2 {data rate at start of operation}
  846. 1-0 reserved
  847. Note: EHD BIOS sets this byte to 01h and never reads it back
  848. --------B-M0040008C--------------------------
  849. MEM 0040h:008Ch - FIXED DISK - CONTROLLER STATUS [not XT]
  850. Size: BYTE
  851. SeeAlso: MEM 0040h:008Dh,MEM 0040h:008Eh
  852. --------B-M0040008D--------------------------
  853. MEM 0040h:008Dh - FIXED DISK - CONTROLLER ERROR STATUS [not XT]
  854. Size: BYTE
  855. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Eh
  856. --------B-M0040008E--------------------------
  857. MEM 0040h:008Eh - FIXED DISK - INTERRUPT CONTROL [not XT]
  858. Size: BYTE
  859. Note: cleared to 00h at start of disk operation, set to FFh by IRQ14
  860. handler when hard disk controller completes command
  861. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Fh
  862. --------B-M0040008F--------------------------
  863. MEM 0040h:008Fh U - DISKETTE CONTROLLER INFORMATION [not XT]
  864. Size: BYTE
  865. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Eh
  866. Bitfields for diskette controller information:
  867. Bit(s) Description (Table M0029)
  868. 7 reserved
  869. 6 =1 drive 1 determined
  870. 5 =1 drive 1 is multi-rate, valid if drive determined
  871. 4 =1 drive 1 supports 80 tracks, always valid
  872. 3 reserved
  873. 2 =1 drive 0 determined
  874. 1 =1 drive 0 is multi-rate, valid if drive determined
  875. 0 =1 drive 0 supports 80 tracks, always valid
  876. Note: EHD BIOS sets this byte to 01h and never alters it again
  877. --------B-M00400090--------------------------
  878. MEM 0040h:0090h - DISKETTE DRIVE 0 MEDIA STATE
  879. Size: BYTE
  880. SeeAlso: MEM 0040h:0091h
  881. Bitfields for diskette drive media state:
  882. Bit(s) Description (Table M0030)
  883. 7-6 data rate
  884. 00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  885. 5 double stepping required (e.g. 360kB in 1.2MB)
  886. 4 media type established
  887. 3 drive capable of supporting 4MB media
  888. 2-0 on exit from BIOS, contains
  889. 000 trying 360kB in 360kB
  890. 001 trying 360kB in 1.2MB
  891. 010 trying 1.2MB in 1.2MB
  892. 011 360kB in 360kB established
  893. 100 360kB in 1.2MB established
  894. 101 1.2MB in 1.2MB established
  895. 110 reserved
  896. 111 all other formats/drives
  897. SeeAlso: #M0031,#M0032
  898. --------B-M00400091--------------------------
  899. MEM 0040h:0091h - DISKETTE DRIVE 1 MEDIA STATE
  900. Size: BYTE
  901. SeeAlso: MEM 0040h:0090h,#M0030
  902. --------B-M00400092--------------------------
  903. MEM 0040h:0092h U - DISKETTE DRIVE 0 MEDIA STATE AT START OF OPERATION
  904. Size: BYTE
  905. Note: officially "Drive 2 media state"
  906. SeeAlso: MEM 0040h:0093h"DRIVE 1"
  907. Bitfields for diskette drive 0 media state at start of operation:
  908. Bit(s) Description (Table M0031)
  909. 7-3 (see #M0030)
  910. 2 multiple data rate capability determined
  911. 1 multiple data rate capability
  912. 0 =1 if drive has 80 tracks, =0 if 40 tracks
  913. SeeAlso: #M0030,#M0032
  914. --------d-M00400092--------------------------
  915. MEM 0040h:0092h - Olivetti Quaderno - HARD DISK POWERDOWN COUNTDOWN CLOCK TICKS
  916. Size: BYTE
  917. Note: hard disk is turned off when counter reaches zero
  918. --------B-M00400093--------------------------
  919. MEM 0040h:0093h U - DISKETTE DRIVE 1 MEDIA STATE AT START OF OPERATION
  920. Size: BYTE
  921. Note: officially "Drive 3 media state"
  922. SeeAlso: MEM 0040h:0092h"DRIVE 0"
  923. Bitfields for diskette drive 1 media state at start of operation:
  924. Bit(s) Description (Table M0032)
  925. 7-3 (see #M0030)
  926. 2 multiple data rate capability determined
  927. 1 multiple data rate capability
  928. 0 =1 if drive has 80 tracks, =0 if 40 tracks
  929. --HP 100LX/200LX--
  930. display control status
  931. 0 =1 if DISPCTL -K
  932. 1 =1 if DISPCTL -C
  933. --------B-M00400094--------------------------
  934. MEM 0040h:0094h - DISKETTE DRIVE 0 CURRENT TRACK NUMBER
  935. Size: BYTE
  936. SeeAlso: MEM 0040h:0095h
  937. --------B-M00400095--------------------------
  938. MEM 0040h:0095h - DISKETTE DRIVE 1 CURRENT TRACK NUMBER
  939. Size: BYTE
  940. SeeAlso: MEM 0040h:0094h
  941. --------K-M00400096--------------------------
  942. MEM 0040h:0096h - KEYBOARD STATUS BYTE 1
  943. Size: BYTE
  944. SeeAlso: MEM 0040h:0097h,INT 16/AH=11h
  945. Bitfields for keyboard status byte 1:
  946. Bit(s) Description (Table M0033)
  947. 7 =1 read-ID in progress
  948. 6 =1 last code read was first of two ID codes
  949. 5 =1 force Num Lock if read-ID and enhanced keyboard
  950. 4 =1 enhanced keyboard installed
  951. 3 =1 Right Alt pressed
  952. 2 =1 Right Ctrl pressed
  953. 1 =1 last code read was E0h
  954. 0 =1 last code read was E1h
  955. SeeAlso: #M0034,#M0010
  956. --------K-M00400097--------------------------
  957. MEM 0040h:0097h - KEYBOARD STATUS BYTE 2
  958. Size: BYTE
  959. SeeAlso: MEM 0040h:0096h,INT 16/AH=11h
  960. Bitfields for keyboard status byte 2:
  961. Bit(s) Description (Table M0034)
  962. 7 =1 keyboard transmit error flag
  963. 6 =1 LED update in progress
  964. 5 =1 RESEND received from keyboard
  965. 4 =1 ACK received from keyboard
  966. 3 reserved, must be zero
  967. 2 Caps Lock LED
  968. 1 Num Lock LED
  969. 0 Scroll Lock LED
  970. SeeAlso: #M0033,#M0010
  971. --------B-M00400098--------------------------
  972. MEM 0040h:0098h - TIMER2 (AT, PS exc Mod 30) - PTR TO USER WAIT-COMPLETE FLAG
  973. Size: DWORD
  974. Note: (see INT 15/AX=8300h)
  975. SeeAlso: MEM 0040h:009Ch,INT 15/AH=83h,INT 15/AH=86h
  976. --------B-M0040009C--------------------------
  977. MEM 0040h:009Ch - TIMER2 (AT, PS exc Mod 30) - USER WAIT COUNT IN MICROSECONDS
  978. Size: DWORD
  979. SeeAlso: MEM 0040h:0098h,MEM 0040h:00A0h,INT 15/AH=83h,INT 15/AH=86h
  980. --------V-M0040009F--------------------------
  981. MEM 0040h:009Fh - HP 100LX/200LX - VIDEO ZOOM MODE
  982. Size: BYTE
  983. (Table M0035)
  984. Values for HP 100LX/200LX video zoom mode:
  985. 02h 80x25 mono
  986. 03h 80x25 color
  987. 80h 64x18 mono
  988. 81h 64x18 color
  989. 82h 40x25 mono
  990. 83h 40x25 color
  991. 84h 40x16 mono
  992. 85h 40x16 color
  993. SeeAlso: INT 10/AH=D0h
  994. --------B-M004000A0--------------------------
  995. MEM 0040h:00A0h - TIMER2 (AT, PS exc Mod 30) - WAIT ACTIVE FLAG
  996. Size: BYTE
  997. SeeAlso: MEM 0040h:009Ch,INT 15/AH=83h,INT 15/AH=86h
  998. Bitfields for Timer2 wait active flag:
  999. Bit(s) Description (Table M0036)
  1000. 7 wait time elapsed
  1001. 6-1 reserved
  1002. 0 INT 15/AH=86h has occurred
  1003. --------N-M004000A1--------------------------
  1004. MEM 0040h:00A1h - BIT 5 SET IF LAN SUPPORT PROGRAM INTERRUPT ARBITRATOR PRESENT
  1005. Size: BYTE
  1006. Note: DEVICE=DXMA0MOD.SYS
  1007. --------N-M004000A2--------------------------
  1008. MEM 0040h:00A2h - RESERVED FOR NETWORK ADAPTERS
  1009. Size: 6 BYTEs
  1010. --------d-M004000A4--------------------------
  1011. MEM 0040h:00A4h - PS/2 Mod 30 - SAVED FIXED DISK INTERRUPT VECTOR
  1012. Size: DWORD
  1013. --------V-M004000A8--------------------------
  1014. MEM 0040h:00A8h - VIDEO (EGA/MCGA/VGA) - POINTER TO VIDEO SAVE POINTER TABLE
  1015. Size: DWORD
  1016. SeeAlso: INT 10/AH=1Ch
  1017. Format of Video Save Pointer Table [EGA/VGA/MCGA only]:
  1018. Offset Size Description (Table M0037)
  1019. 00h DWORD ptr to Video Parameter Table
  1020. 04h DWORD ptr to Parameter Dynamic Save Area, else 0 [EGA/VGA only]
  1021. 08h DWORD ptr to Alphanumeric Character Set Override, else 0
  1022. 0Ch DWORD ptr to Graphics Character Set Override, else 0
  1023. 10h DWORD [VGA only] ptr to Secondary Save Pointer Table, must be valid
  1024. 14h DWORD reserved, zero
  1025. 18h DWORD reserved, zero
  1026. Note: table initially in ROM, copy to RAM to alter, then update 40h:A8h.
  1027. Format of Secondary Video Save Pointer Table [VGA only]:
  1028. Offset Size Description (Table M0038)
  1029. 00h WORD Length of this table in bytes, including this word (1Ah)
  1030. 02h DWORD ptr to Display Combination Code Table, must be valid
  1031. 06h DWORD ptr to second Alphanumeric Character Set Override, else 0
  1032. 0Ah DWORD ptr to User Palette Profile Table, else 0
  1033. 0Eh DWORD reserved, zero
  1034. 12h DWORD reserved, zero
  1035. 16h DWORD reserved, zero
  1036. Note: table initially in ROM, copy to RAM to alter, then alter Save Ptr Table.
  1037. Format of Display Combination Code Table [VGA only]:
  1038. Offset Size Description (Table M0039)
  1039. 00h BYTE Number of entries in the DCC table at offset 04h
  1040. 01h BYTE Version number
  1041. 02h BYTE Maximum display type code that can appear in DCC table
  1042. 03h BYTE reserved
  1043. 04h 2N BYTEs Each pair of bytes gives a valid display combination, one
  1044. display type per byte (see #M0040)
  1045. (Table M0040)
  1046. Values for Display Combination display type:
  1047. 00h no display
  1048. 01h MDA with mono display
  1049. 02h CGA with color display
  1050. 03h reserved
  1051. 04h EGA with color display
  1052. 05h EGA with mono display
  1053. 06h Professional Graphics Controller
  1054. 07h VGA with mono display
  1055. 08h VGA with color display
  1056. 09h reserved
  1057. 0Ah MCGA with digital color display
  1058. 0Bh MCGA with analog mono display
  1059. 0Ch MCGA with analog color display
  1060. FFh unrecognised video system
  1061. SeeAlso: #M0039
  1062. Format of Video Parameter Table [EGA, VGA only]:
  1063. Offset Size Description (Table M0041)
  1064. 00h-03h Modes 00h-03h in 200-line CGA emulation mode
  1065. 04h-0Eh Modes 04h-0Eh
  1066. 0Fh-10h Modes 0Fh-10h when only 64kB RAM on adapter
  1067. 11h-12h Modes 0Fh-10h when >64kB RAM on adapter
  1068. 13h-16h Modes 00h-03h in 350-line mode
  1069. 17h VGA Modes 00h or 01h in 400-line mode
  1070. 18h VGA Modes 02h or 03h in 400-line mode
  1071. 19h VGA Mode 07h in 400-line mode
  1072. 1Ah-1Ch VGA Modes 11h-13h
  1073. Note: An array of 23 [EGA] or 29 [VGA] elements, each element being 64
  1074. bytes long. Elements appear in the above order.
  1075. Format of Video Parameter Table element [EGA, VGA only]:
  1076. Offset Size Description (Table M0042)
  1077. 00h BYTE Columns on screen (see 40h:4Ah)
  1078. 01h BYTE Rows on screen minus one (see 40h:84h)
  1079. 02h BYTE Height of character in scan lines (see 40h:85h)
  1080. 03h WORD Size of video buffer (see 40h:4Ch)
  1081. 05h 4 BYTEs Values for Sequencer Registers 1-4
  1082. 09h BYTE Value for Miscellaneous Output Register
  1083. 0Ah 25 BYTEs Values for CRTC Registers 00h-18h
  1084. 23h 20 BYTEs Values for Attribute Controller Registers 00h-13h
  1085. 37h 9 BYTEs Values for Graphics Controller Registers 00h-08h
  1086. Format of Video Parameter Table [MCGA only] {guesswork from inspection}:
  1087. Offset Size Description (Table M0043)
  1088. - 16 triplet BYTEs of R,G,B DAC info for 16 colors;
  1089. - An array of 11 elements, each element being 32 bytes long.
  1090. Elements appear in the order:
  1091. Modes 00h,01h in 200-line mode for digital displays
  1092. Modes 00h,01h in 400-line mode for analog displays
  1093. Modes 02h,03h in 200-line mode for digital displays
  1094. Modes 02h,03h in 400-line mode for analog displays
  1095. Modes 04h,05h in 200-line mode for digital displays
  1096. Modes 04h,05h in 400-line mode for analog displays
  1097. Mode 06h in 200-line mode for digital displays
  1098. Mode 06h in 400-line mode for analog displays
  1099. Mode 11h
  1100. Mode 13h in 200-line mode for digital displays
  1101. Mode 13h in 400-line mode for analog displays
  1102. Format of Video Parameter Table element [MCGA only]:
  1103. Offset Size Description (Table M0044)
  1104. 00h BYTE Columns on screen (see 40h:4Ah)
  1105. 01h BYTE Rows on screen minus one (see 40h:84h)
  1106. 02h BYTE Height of character in scan lines (see 40h:85h)
  1107. 03h WORD Size of video buffer (see 40h:4Ch)
  1108. 05h WORD ??? always zero
  1109. 07h 21 BYTEs Video data registers 00h-14h to port 3D5h indexed by 3D4h
  1110. 1Ch BYTE PEL Mask to port 3C6h
  1111. 1Dh BYTE CGA Mode Control to port 3D8h
  1112. 1Eh BYTE CGA Border Control to port 3D9h
  1113. 1Fh BYTE Extended Mode Control to port 3DDh
  1114. Format of Video Parameter Dynamic Save Area [EGA, VGA only]:
  1115. Offset Size Description (Table M0045)
  1116. 00h 16 BYTEs Last data written to Attribute Contr. Palette Registers 0-15
  1117. 10h BYTE Last data written to Attribute Controller Overscan Register
  1118. 11h-FFh Reserved
  1119. Note: Need for table was that EGA registers were write-only.
  1120. Note: If default values (from the Video Parameter Table) are
  1121. over-ridden at a mode set by the VGA User Palette Profile
  1122. Table, then the Dynamic Save Area is updated with the
  1123. default values, not the User Profile ones.
  1124. Format of Alphanumeric Character Set Override:
  1125. Offset Size Description (Table M0046)
  1126. 00h BYTE Length in bytes of each character in font table
  1127. 01h BYTE Character generator RAM bank to load, 0=normal
  1128. 02h WORD Number of characters in font table, normally 256
  1129. 04h WORD Code of first character in font table, normally 0
  1130. 06h DWORD ptr to font table
  1131. 0Ah BYTE Displayable rows (FFh=use maximum calculated value)
  1132. 0Bh BYTEs Array of mode values to which this font is to pertain
  1133. BYTE FFh end of array
  1134. Format of Second Alphanumeric Character Set Override:
  1135. Offset Size Description (Table M0047)
  1136. 00h BYTE Length in bytes of each character in font table
  1137. 01h BYTE Character generator RAM bank to load, normally non-zero
  1138. 02h BYTE reserved
  1139. 03h DWORD ptr to font table
  1140. 07h BYTEs Array of mode values to which this font is to pertain
  1141. BYTE FFh end of array
  1142. Note: Authorities differ, some say same as first override above, but IBM
  1143. says it is as shown above
  1144. Format of Graphics Character Set Override:
  1145. Offset Size Description (Table M0048)
  1146. 00h BYTE Number of displayable character rows
  1147. 01h WORD Length in bytes of each character in font table
  1148. 03h DWORD ptr to font table
  1149. 07h BYTEs Array of mode values to which this font is to pertain
  1150. BYTE FFh end of array
  1151. Format of User Palette Profile Table [VGA only]:
  1152. Offset Size Description (Table M0049)
  1153. 00h BYTE Underlining: 01h=enable in all alphanumeric modes
  1154. 00h=enable in monochrome alphanumeric modes only
  1155. FFh=disable in all alphanumeric modes
  1156. 01h BYTE reserved
  1157. 02h WORD reserved
  1158. 04h WORD Number (0-17) of Attribute Controller registers in table
  1159. 06h WORD Index (0-16) of first Attribute Controller register in table
  1160. 08h DWORD ptr to table of Attribute Controller registers to override
  1161. Table is an array of BYTEs.
  1162. 0Ch WORD Number (0-256) of video DAC Color registers in table
  1163. 0Eh WORD Index (0-255) of first video DAC Color register in table
  1164. 10h DWORD ptr to table of video DAC Color registers to override
  1165. Table is ??? triplets ??? of BYTEs???
  1166. 14h BYTEs array of mode values to which this profile is to pertain
  1167. BYTE FFh end of array
  1168. --------*-M004000AC--------------------------
  1169. MEM 0040h:00ACh - RESERVED
  1170. Size: 4 BYTEs
  1171. --------b-M004000B0--------------------------
  1172. MEM 0040h:00B0h - Phoenix 386 BIOS 1.10 10a - LOOP COUNT FOR HARD DISK TIMEOUT
  1173. Size: BYTE
  1174. Desc: number of times a tight software delay loop should be executed to
  1175. generate the sub-55ms delays used internally by the BIOS
  1176. Note: also used for delaying when beeping due to full keyboard buffer
  1177. SeeAlso: MEM 0040h:00ECh"Dell",INT 15/AH=BCh
  1178. --------d-M004000B0--------------------------
  1179. MEM 0040h:00B0h - PTR TO 3363 OPTICAL DISK DRIVER OR BIOS ENTRY POINT
  1180. Size: DWORD
  1181. Notes: When 3363 BIOS present, the ASCIZ signature "OPTIC "occurs 3 bytes
  1182. beyond this entry point
  1183. When 3363 BIOS and 3363 File System Driver present, the ASCIZ signature
  1184. "FILE SYSTEM DRIVER" occurs 3 bytes beyond this entry point
  1185. --------b-M004000B0--------------------------
  1186. MEM 0040h:00B0h - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 48 HARD DISK
  1187. Size: 16 BYTEs
  1188. SeeAlso: INT 41,INT 46,MEM 0040h:00C0h"HARD DISK"
  1189. --------*-M004000B4--------------------------
  1190. MEM 0040h:00B4h - RESERVED
  1191. Size: WORD
  1192. --------b-M004000B5--------------------------
  1193. MEM 0040h:00B5h - Dell 4xxDE
  1194. Size: BYTE
  1195. Bitfields for Dell 4xxDE flags:
  1196. Bit(s) Description (Table M0050)
  1197. 2 ??? (related to disk drives)
  1198. 5 page tables set to allow Weitek addressing in real mode
  1199. 6 Weitek math coprocessor present
  1200. ----------M004000B6--------------------------
  1201. MEM 0040h:00B6h - RESERVED FOR POST???
  1202. Size: 3 BYTEs
  1203. ----------M004000B9--------------------------
  1204. MEM 0040h:00B9h - ???
  1205. Size: 7 BYTEs
  1206. --------b-M004000BC--------------------------
  1207. MEM 0040h:00BCh - 1993 Phoenix 486 BIOS 1.03 PCI - CPU TYPE/MASK REVISION
  1208. Size: WORD
  1209. Desc: the high byte contains the CPU type, the low byte the mask revision
  1210. (stepping level), as reported to the BIOS in DX by the CPU at startup
  1211. SeeAlso: INT 15/AH=C9h
  1212. --------b-M004000C0--------------------------
  1213. MEM 0040h:00C0h - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 49 HARD DISK
  1214. Size: 16 BYTEs
  1215. SeeAlso: INT 41,INT 46,MEM 0040h:00B0h"HARD DISK"
  1216. --------*-M004000C0--------------------------
  1217. MEM 0040h:00C0h - RESERVED
  1218. Size: 14 BYTEs
  1219. --------K-M004000C2--------------------------
  1220. MEM 0040h:00C2h - AMI BIOS 1.00.12.AX1T - KEYBOARD TYPE
  1221. Size: WORD
  1222. Desc: this word contains an indication of the type of keyboard
  1223. (controller???) attached to the system
  1224. Note: AMI's APM code checks for 4147h vs. other value (5047h seen on Intel
  1225. "Plato" motherboard)
  1226. SeeAlso: #00586,INT 16/AH=F2h
  1227. --------b-M004000CE--------------------------
  1228. MEM 0040h:00CEh - COUNT OF DAYS SINCE LAST BOOT
  1229. Size: WORD
  1230. --------*-M004000D0--------------------------
  1231. MEM 0040h:00D0h - RESERVED
  1232. Size: 32 BYTEs
  1233. --------S-M004000D0--------------------------
  1234. MEM 0040h:00D0h - Digiboard MV/4 - LENGTH OF DATA TABLE
  1235. Size: BYTE
  1236. --------d-M004000D0--------------------------
  1237. MEM 0040h:00D0h EHD floppy - INSTALLATION FLAGS
  1238. Size: BYTE
  1239. Bitfields for EHD floppy installation flags:
  1240. Bit(s) Description (Table M0051)
  1241. 4 installation completed
  1242. 3-0 drives 0-3
  1243. --------b-M004000D0--------------------------
  1244. MEM 0040h:00D0h - AMI BIOS v1.00.12.AX1T - EPP - SCRATCH SPACE
  1245. Size: WORD
  1246. Desc: this word holds the value of BX during an EPP BIOS call
  1247. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1248. SeeAlso: MEM 0040h:00DDh"AMI"
  1249. --------S-M004000D1--------------------------
  1250. MEM 0040h:00D1h - Digiboard MV/4 - PRODUCT ID
  1251. Size: BYTE
  1252. --------S-M004000D2--------------------------
  1253. MEM 0040h:00D2h - Digiboard MV/4 - BASE ADDRESS FOUND
  1254. Size: WORD
  1255. --------b-M004000D2--------------------------
  1256. MEM 0040h:00D2h - AMI BIOS v1.00.12.AX1T - EPP BASE I/O PORT
  1257. Size: WORD
  1258. --------S-M004000D4--------------------------
  1259. MEM 0040h:00D4h - Digiboard MV/4 - PORTS
  1260. Size: BYTE
  1261. --------S-M004000D5--------------------------
  1262. MEM 0040h:00D5h - Digiboard MV/4 - IRQ
  1263. Size: BYTE
  1264. --------d-M004000D5--------------------------
  1265. MEM 0040h:00D5h - EHD floppy - NUMBER OF FLOPPY DISK CONTROLLERS IN SYSTEM
  1266. Size: BYTE
  1267. --------b-M004000D5--------------------------
  1268. MEM 0040h:00D5h - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 CAPABILITIES
  1269. Size: BYTE
  1270. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1271. SeeAlso: MEM 0040h:00DCh"AMI"
  1272. --------d-M004000D6--------------------------
  1273. MEM 0040h:00D6h - EHD floppy - AND-BITS TO ADJUST PORT ADDRESS
  1274. Size: BYTE
  1275. Note: this byte contains FFh if controller at 03Fxh and 7Fh if at 037xh; the
  1276. value is ANDed with DL prior to using IN A?,DX or OUT DX,A?
  1277. instructions
  1278. --------K-M004000D6--------------------------
  1279. MEM 0040h:00D6h - Digiboard MV/4 - NUMBER OF KEYBOARDS FOUND
  1280. Size: WORD
  1281. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1282. --------b-M004000D6--------------------------
  1283. MEM 0040h:00D6h - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 IRQ
  1284. Size: BYTE
  1285. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D8h"AMI"
  1286. SeeAlso: MEM 0040h:00DDh"AMI"
  1287. --------d-M004000D7--------------------------
  1288. MEM 0040h:00D7h - EHD floppy - DRIVE 0 DISKETTE MEDIA STATE
  1289. Size: BYTE
  1290. Note: the value in this byte is copied into 0040h:0090h (diskette 0 status)
  1291. SeeAlso: MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1292. Bitfields for EHD diskette media state:
  1293. Bit(s) Description (Table M0052)
  1294. 7-6 data rate: 00=500kbps,01=300kbps,10=250k,11=1M/S
  1295. 5 double stepping required (e.g. 360kB in 1.2MB)
  1296. 4 media type established
  1297. 3 reserved
  1298. 2-0 on exit from BIOS, contains:
  1299. 000 trying 360kB in 360kB
  1300. 001 trying 360kB in 1.2MB
  1301. 010 trying 1.2MB in 1.2MB
  1302. 011 360kB in 360kB established
  1303. 100 360kB in 1.2MB established
  1304. 101 1.2MB in 1.2MB established
  1305. 110 reserved (2M8?)
  1306. 111 all other formats/drives
  1307. --------b-M004000D7--------------------------
  1308. MEM 0040h:00D7h - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 CAPABILITIES
  1309. Size: BYTE
  1310. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1311. SeeAlso: MEM 0040h:00DDh"AMI"
  1312. --------M-M004000D8--------------------------
  1313. MEM 0040h:00D8h - Digiboard MV/4 - NUMBER OF MICE FOUND
  1314. Size: WORD
  1315. SeeAlso: MEM 0040h:00D6h"Digiboard",MEM 0040h:00DAh"Digiboard"
  1316. --------d-M004000D8--------------------------
  1317. MEM 0040h:00D8h - EHD floppy - DRIVE 1 DISKETTE MEDIA STATE
  1318. Size: BYTE
  1319. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1320. --------b-M004000D8--------------------------
  1321. MEM 0040h:00D8h - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 IRQ
  1322. Size: BYTE
  1323. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1324. SeeAlso: MEM 0040h:00DDh"AMI"
  1325. --------b-M004000D8--------------------------
  1326. MEM 0040h:00D8h U - Phoenix BIOS 4.0 Rel 6.0 - POWER MANAGEMENT FLAGS
  1327. Size: BYTE
  1328. SeeAlso: INT 15/AX=5300h
  1329. --------d-M004000D9--------------------------
  1330. MEM 0040h:00D9h - EHD floppy - DRIVE 2 DISKETTE MEDIA STATE
  1331. Size: BYTE
  1332. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00DAh"EHD"
  1333. --------S-M004000DA--------------------------
  1334. MEM 0040h:00DAh - Digiboard MV/4 - CURRENT PORT (used by VGA initializatn only)
  1335. Size: BYTE
  1336. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1337. --------d-M004000DA--------------------------
  1338. MEM 0040h:00DAh - EHD floppy - DRIVE 3 DISKETTE MEDIA STATE
  1339. Size: BYTE
  1340. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD"
  1341. --------S-M004000DB--------------------------
  1342. MEM 0040h:00DBh - Digiboard MV/4 - MASTER 8259 MASK (used by VGA init only)
  1343. Size: BYTE
  1344. SeeAlso: MEM 0040h:00DCh"Digiboard"
  1345. --------d-M004000DB--------------------------
  1346. MEM 0040h:00DBh - EHD floppy - DRIVE 0 NEEDS RECALIBARATION
  1347. Size: BYTE
  1348. SeeAlso: MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1349. --------S-M004000DC--------------------------
  1350. MEM 0040h:00DCh - Digiboard MV/4 - SLAVE 8259 MASK (used by VGA init only)
  1351. Size: BYTE
  1352. SeeAlso: MEM 0040h:00DBh"Digiboard"
  1353. --------b-M004000DC--------------------------
  1354. MEM 0040h:00DCh - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 MODE
  1355. Size: BYTE
  1356. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00DDh"AMI"
  1357. SeeAlso: INT 17/AX=0200h/BX=5050h
  1358. (Table M0053)
  1359. Values for AMI Enhanced Parallel Port mode:
  1360. 01h compatibility mode
  1361. 02h bi-directional mode
  1362. 04h EPP mode
  1363. SeeAlso: #00637
  1364. --------d-M004000DC--------------------------
  1365. MEM 0040h:00DCh - EHD floppy - DRIVE 1 NEEDS RECALIBARATION
  1366. Size: BYTE
  1367. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1368. --------b-M004000DC--------------------------
  1369. MEM 0040h:00DCh - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 MODE
  1370. Size: BYTE
  1371. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI",#M0053
  1372. --------d-M004000DD--------------------------
  1373. MEM 0040h:00DDh - EHD floppy - DRIVE 2 NEEDS RECALIBARATION
  1374. Size: BYTE
  1375. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DEh"EHD"
  1376. --------d-M004000DE--------------------------
  1377. MEM 0040h:00DEh - EHD floppy - DRIVE 3 NEEDS RECALIBARATION
  1378. Size: BYTE
  1379. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD"
  1380. --------b-M004000DF--------------------------
  1381. MEM 0040h:00DFh - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT LOCK STATE
  1382. Size: BYTE
  1383. Note: set to 01h if last request was to lock a port, 00h if last request was
  1384. to unlock a port
  1385. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI"
  1386. --------b-M004000E0--------------------------
  1387. MEM 0040h:00E0h - AMI BIOS v1.00.12.AX1T - EPP - REAL-TIME DEVICE COUNT
  1388. Size: BYTE
  1389. Desc: contains the number of advertised real-time devices as set by EPP
  1390. function 12h (see #00632)
  1391. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DFh"AMI"
  1392. --------b-M004000E0--------------------------
  1393. MEM 0040h:00E0h - Phoenix 386 BIOS - DRIVE PARAMETER TABLE FOR FIRST HARD DISK
  1394. Size: 16 BYTEs
  1395. Note: this area is used to store the driver parameter table for the first
  1396. hard disk if it has been setup as the user-configurable "type 47"
  1397. --------d-M004000E3--------------------------
  1398. MEM 0040h:00E3h - EHD floppy - DRIVE 0 DISKETTE TYPE (from jumpers)
  1399. Size: BYTE
  1400. SeeAlso: MEM 0040h:00E4h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1401. (Table M0054)
  1402. Values for EHD floppy diskette type:
  1403. 01h undefined by diskette change (360K)
  1404. 02h 1.2M
  1405. 03h 720K
  1406. 04h 1.44M
  1407. 05h 2.88M
  1408. --------d-M004000E4--------------------------
  1409. MEM 0040h:00E4h - EHD floppy - DRIVE 1 DISKETTE TYPE (from jumpers)
  1410. Size: BYTE
  1411. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1412. --------d-M004000E5--------------------------
  1413. MEM 0040h:00E5h - EHD floppy - DRIVE 2 DISKETTE TYPE (from jumpers)
  1414. Size: BYTE
  1415. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E6h"EHD"
  1416. --------d-M004000E6--------------------------
  1417. MEM 0040h:00E6h - EHD floppy - DRIVE 3 DISKETTE TYPE (from jumpers)
  1418. Size: BYTE
  1419. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E5h"EHD"
  1420. --------d-M004000EA--------------------------
  1421. MEM 0040h:00EAh - Omti controller - SEGMENT OF EXTENDED BIOS DATA AREA???
  1422. Size: WORD
  1423. Note: drive parameter tables stored in specified segment
  1424. --------b-M004000EC--------------------------
  1425. MEM 0040h:00ECh - Dell 4xxDE BIOS A11 - LOOP COUNT FOR DELAYS
  1426. Size: WORD
  1427. ----------M004000F0--------------------------
  1428. MEM 0040h:00F0h - INTRA-APPLICATION COMMUNICATION AREA
  1429. Size: 16 BYTEs
  1430. --------B-M00500000--------------------------
  1431. MEM 0050h:0000h - PRINT-SCREEN STATUS
  1432. Size: BYTE
  1433. --------J-M00500001--------------------------
  1434. MEM 0050h:0001h - NEC PC-9800 series - SCREEN MODE
  1435. Size: BYTE
  1436. Note: if bit 3 set, the screen is in high-resolution mode (start memory at
  1437. segment E000h instead of A000h)
  1438. --------D-M00500004--------------------------
  1439. MEM 0050h:0004h - MS-DOS - LOGICAL DRIVE FOR SINGLE-FLOPPY SYSTEM (A: / B:)
  1440. Size: BYTE
  1441. --------A-M0050000E--------------------------
  1442. MEM 0050h:000Eh - STATE OF BREAK CHECKING AT START OF BASICA.COM EXECUTION
  1443. Size: BYTE
  1444. --------A-M0050000F--------------------------
  1445. MEM 0050h:000Fh - BASICA VERSION FLAG
  1446. Size: BYTE
  1447. Note: this byte contains the value 02h if BASICA v2.10 is running
  1448. --------A-M00500010--------------------------
  1449. MEM 0050h:0010h - POINTER TO BASIC DATA SEGMENT
  1450. Size: WORD
  1451. --------A-M00500012--------------------------
  1452. MEM 0050h:0012h - INT 08 VECTOR AT START OF BASICA.COM EXECUTION
  1453. Size: DWORD
  1454. --------A-M00500016--------------------------
  1455. MEM 0050h:0016h - INT 1B VECTOR AT START OF BASICA.COM EXECUTION
  1456. Size: DWORD
  1457. --------A-M0050001A--------------------------
  1458. MEM 0050h:001Ah - INT 24 VECTOR AT START OF BASICA.COM EXECUTION
  1459. Size: DWORD
  1460. --------D-M00600000--------------------------
  1461. MEM 0060h:0000h - DOS 2+ SCRATCH SPACE
  1462. Size: 256 BYTEs
  1463. Note: used during DOS 2+ boot process
  1464. --------D-M00600000--------------------------
  1465. MEM 0060h:0000h - DOS 1.x IO.SYS LOAD ADDRESS
  1466. --------D-M00700000--------------------------
  1467. MEM 0070h:0000h - DOS 2+ IO.SYS LOAD ADDRESS
  1468. --------D-M00700100--------------------------
  1469. MEM 0070h:0100h - DOS 5+ - ORIGINAL INTERRUPT VECTORS 10h,13h,15h,19h,1Bh
  1470. Size: 25 BYTEs
  1471. Note: each value is stored as a BYTE for the interrupt number followed by
  1472. a DWORD for the vector
  1473. these values are restored on INT 19 by recent versions of
  1474. DR/Novell/PC/MS-DOS (MS-DOS 3.x used this area to support HIMEM.SYS)
  1475. not supported by OS/2 MDOS
  1476. SeeAlso: MEM 0080h:0000h,INT 2F/AH=13
  1477. --------H-M00800000--------------------------
  1478. MEM 0080h:0000h - 80286 CPU - LOADALL WORKSPACE
  1479. Size: 102 BYTEs
  1480. Desc: on the 80286 (unlike 80386), the state buffer from which the LOADALL
  1481. instruction loads all internal registers is hardwired to physical
  1482. address 000800h
  1483. Note: several versions 3.x of MS-DOS leave an empty space at offset 100h in
  1484. IO.SYS (which is loaded at 0070h:0000h) so that HIMEM.SYS can use
  1485. LOADALL on 80286 machines without having to save/restore the area
  1486. of memory that LOADALL uses
  1487. SeeAlso: MEM 0070h:0100h
  1488. --------m-m80C00000--------------------------
  1489. MEM 80C00000h - Compaq Deskpro 386 system memory board register
  1490. Size: BYTE
  1491. 80C00000 R Diagnostics register (see #M0055)
  1492. 80C00000 W RAM relocation register (see #M0056)
  1493. Bitfields for Compaq Deskpro 386 diagnostics register:
  1494. Bit(s) Description (Table M0055)
  1495. 7 =0 memory expansion board is installed
  1496. 6 =0 second 1 MB of system memory board is installed
  1497. 5-4 base memory
  1498. 00 set to 640 KB
  1499. 01 invalid
  1500. 10 set to 512 KB
  1501. 11 set to 256 KB
  1502. 3 parity correct in byte 3
  1503. 2 parity correct in byte 2
  1504. 1 parity correct in byte 1
  1505. 0 parity correct in byte 0 (in 32-bit double word)
  1506. SeeAlso: #M0056
  1507. Bitfields for Compaq Deskpro 386 RAM relocation register:
  1508. Bit(s) Description (Table M0056)
  1509. 7-2 reserved, always write 1's.
  1510. 1 =0 Write-protect 128-Kbyte RAM at FE0000.
  1511. =1 Do not write-protect RAM at FE0000.
  1512. 0 =0 Relocate 128-Kbyte block at FE0000 to address 0E0000
  1513. =1 128-Kbyte RAM is addressed only at FE0000.
  1514. SeeAlso: #M0055
  1515. --------V-MA0000000--------------------------
  1516. MEM A000h:0000h - EGA+ GRAPHICS BUFFER
  1517. Size: 65536 BYTEs
  1518. --------V-MA0000000--------------------------
  1519. MEM A000h:0000h - S3 - MEMORY-MAPPED GRAPHICS PROCESSOR REGISTERS
  1520. Size: 65536 BYTEs
  1521. Note: the S3 graphics processor registers can be mapped at either
  1522. linear 000A0000h or at offset 16M from the start of the linear
  1523. frame buffer
  1524. --------V-MA0001234--------------------------
  1525. MEM A000h:1234h - S3 - MEMORY-MAPPED ???
  1526. Size: WORD???
  1527. Note: the Win95 driver for the Stealth64 tests various bits in this word,
  1528. sometimes looping until a particular bit is set or cleared
  1529. --------V-MA0008000--------------------------
  1530. MEM A000h:8000h - S3 - MEMORY-MAPPED PCI CONFIGURATION REGISTERS
  1531. Size: 256 BYTEs
  1532. Notes: the S3 graphics processor registers can be mapped at either
  1533. linear 000A0000h or at offset 16M from the start of the linear
  1534. frame buffer
  1535. additional setup may be required to access these registers via memory
  1536. the DWORDs at 8080h,8088h,808Ch,8090h,8094h,8098h,809Ch are used by
  1537. STLTH64.DRV
  1538. the DWORDs at 18080h,18088h,18090h,18094h,18098h,1809Ch are written
  1539. by S3_32.DLL
  1540. --------V-MA0008100--------------------------
  1541. MEM A000h:8100h - S3 - MEMORY-MAPPED PACKED REGISTERS
  1542. Size: 80 BYTEs
  1543. Access: Write-Only
  1544. Desc: these registers pack two 16-bit I/O registers into a single DWORD
  1545. for faster writes
  1546. Note: the S3 graphics processor registers can be mapped at either
  1547. linear 000A0000h or at offset 16M from the start of the linear
  1548. frame buffer
  1549. SeeAlso: MEM A000h:8180h
  1550. Format of S3 Trio32/Trio64 packed memory-mapped registers:
  1551. Offset Size Description (Table M0057)
  1552. 8100h DWORD drawing control: row (low word), column (high word)
  1553. "CUR_X" and "CUR_Y" (see PORT 82E8h,PORT 86E8h)
  1554. 8104h DWORD (Trio64) drawing control: row 2 (low word), column 2 (high word)
  1555. 8108h DWORD drawing control: destination Y and axial step constant (low
  1556. word), destination X and axial step constant (high word)
  1557. (see PORT 8AE8h,PORT 8EE8h)
  1558. 810Ch DWORD (Trio64 only) destination Y 2 and axial step constant 2 (low
  1559. word), destination X 2 and axial step constant 2 (high word)
  1560. (see PORT 8AEAh,PORT 8EEAh)
  1561. 8110h WORD error term (see PORT 92E8h)
  1562. 8112h WORD (Trio64) error term 2 (see PORT 92EAh)
  1563. 8114h DWORD unused??? (would correspond to PORT 96E8h)
  1564. 8118h WORD drawing control: command register (see PORT 9AE8h)
  1565. 811Ah WORD (Trio64) command register 2 (see PORT 9AEAh)
  1566. 811Ch DWORD short stroke (see PORT 9EE8h)
  1567. 8120h DWORD background color (see PORT A2E8h)
  1568. 8124h DWORD foreground color (see PORT A6E8h)
  1569. 8128h DWORD write mask (see PORT AAE8h)
  1570. 812Ch DWORD read mask (see PORT AEE8h)
  1571. 8130h DWORD color compare (see PORT B2E8h)
  1572. 8134h DWORD background mix (low word) and foreground mix (high word)
  1573. (see PORT B6E8h,PORT BAE8h)
  1574. 8138h DWORD top scissors (low word) and left scissors (high word)
  1575. (see PORT BEE8h,#P1047)
  1576. 813Ch DWORD bottom scissors (low word) and right scissors (high word)
  1577. (see PORT BEE8h,#P1047)
  1578. 8140h DWORD data manipulation control (low word) and miscellaneous 2 (high
  1579. word) (see PORT BEE8h,#P1047)
  1580. 8144h DWORD miscellaneous (low word) and read register select (high word)
  1581. (see PORT BEE8h,#P1047)
  1582. 8148h DWORD minor axis pixel count (low word) and major axis pixel count
  1583. (high word) (see PORT BEE8h,#P1047,PORT 96E8h)
  1584. 814Ch WORD (Trio64) major axis pixel count 2 (see PORT 96EAh)
  1585. 8150h DWORD pixel data transfer (see PORT E2E8h,PORT E2EAh)
  1586. 8154h 4 DWORDs ???
  1587. 8164h DWORD ??? (written by STLTH64.DRV for Win95)
  1588. 8168h DWORD (Trio64 only) Pattern Y (low word), Pattern X (high word)
  1589. (see PORT EAE8h,PORT EAEAh)
  1590. 816Ch DWORD ??? (written by STLTH64.DRV for Win95)
  1591. Note: setting 8138h to 0 and 813Ch to 12345678h may be a magic value to unlock
  1592. some S3 features
  1593. SeeAlso: #M0073,#M0070
  1594. --------V-MA0008180--------------------------
  1595. MEM A000h:8180h - S3 - STREAMS PROCESSOR
  1596. Size: 128 BYTEs
  1597. Note: the S3 graphics processor registers can be mapped at either
  1598. linear 000A0000h or at offset 16M from the start of the linear
  1599. frame buffer
  1600. SeeAlso: MEM A000h:8100h,MEM A000h:FF00h
  1601. Format of S3 Streams Processor memory-mapped registers:
  1602. Offset Size Description (Table M0058)
  1603. 8180h DWORD primary stream control (see #M0059)
  1604. 8184h DWORD chroma key control (see #M0063)
  1605. 8188h DWORD unused??? (high word seems to echo 8184h, low word 8180h)
  1606. 818Ch DWORD unused??? (high word seems to echo 8184h, low word 8180h)
  1607. 8190h DWORD secondary stream control (see #M0061)
  1608. 8194h DWORD chroma key upper bound (bits 23-0) (see also #M0063)
  1609. 8198h DWORD secondary stream stretch (see #M0062)
  1610. 819Ch DWORD ??? (set by S3_32.DLL)
  1611. bits 30-16: ???
  1612. bits 14-0: ???
  1613. 81A0h DWORD blend control (see #M0064)
  1614. 81A4h 3 DWORDs unused??? (reads as FFFFFFFFh)
  1615. 81B0h 4 DWORDs ??? (appear to be read-only)
  1616. 81C0h DWORD primary frame buffer address 0 (bits 21-0, multiple of 8)
  1617. 81C4h DWORD primary frame buffer address 1 (bits 21-0, multiple of 8)
  1618. 81C8h DWORD primary stream stride (bits 11-0 only)
  1619. 81CCh DWORD double buffer/LPB control (see #M0065)
  1620. 81D0h DWORD secondary frame buffer address 0 (bits 21-0, multiple of 8)
  1621. 81D4h DWORD secondary frame buffer address 1 (bits 21-0, multiple of 8)
  1622. 81D8h DWORD secondary stream stride (bits 11-0 only)
  1623. 81DCh DWORD opaque overlay control (see #M0066)
  1624. 81E0h DWORD K1 -- vertical stretch (lines in) (bits 10-0 only)
  1625. set to one less than # lines in
  1626. 81E4h DWORD K2 -- vertical stretch (stretch factor) (bits 10-0 only)
  1627. set to -(#lines_in - #lines_out)
  1628. 81E8h DWORD DDA vertical accumulator (bits 11-0 only) (lines out)
  1629. set to (#lines_out) - 1
  1630. 81ECh DWORD streams FIFO and RAS control (see #M0067)
  1631. 81F0h DWORD primary start coordinate (see #M0068)
  1632. 81F4h DWORD primary window size (see #M0069)
  1633. 81F8h DWORD secondary start coordinate (see #M0068)
  1634. 81FCh DWORD secondary window size (see #M0069)
  1635. Note: changes to registers 81E0h-81E8h do not take effect until the next
  1636. VSYNC
  1637. SeeAlso: #M0073,#M0057,#M0070
  1638. Bitfields for S3 Streams Processor primary stream control:
  1639. Bit(s) Description (Table M0059)
  1640. 31 reserved
  1641. 30-28 filter characteristics
  1642. 000 unchanged primary stream
  1643. 001 2X stretch by replicating pixels
  1644. 010 2X stretch by interpolating horizontally (replicating vertically)
  1645. else reserved
  1646. 27 reserved
  1647. 26-24 color mode (see #M0060)
  1648. 23-0 officially reserved, but writing nonzero values can hang display
  1649. Notes: the primary stream is the output from the display RAM
  1650. bits 26-24 correspond to CR67 color mode field (see #P0688)
  1651. SeeAlso: #M0058,#M0061
  1652. (Table M0060)
  1653. Values for S3 Streams Processor color mode:
  1654. 000b eight bits per pixel
  1655. 001b YCrCb 4:2:2 unsigned, range 10h-F0h (secondary stream only)
  1656. 010b YUV 4:2:2, range 00h-FFh (secondary stream only)
  1657. 011b keyed high-color (1-5-5-5)
  1658. 100b YUV 2:1:1 two's complement (secondary stream only)
  1659. 101b high-color (5-6-5)
  1660. 110b reserved
  1661. 111b true-color (32bpp, high byte ignored)
  1662. SeeAlso: #M0059,#M0061
  1663. Bitfields for S3 Streams Processor secondary stream control:
  1664. Bit(s) Description (Table M0061)
  1665. 31 reserved
  1666. 30-28 filter characteristics
  1667. 000 unchanged secondary stream
  1668. 001 linear 0-2-4-2-0 for 1x-2x stretch
  1669. 010 bi-linear for 2x-4x stretch
  1670. 011 linear 1-2-2-2-1 for 4x+ stretch
  1671. else reserved
  1672. 28 enable smoothing between horizontally adjacent bits (trial-and-error)
  1673. 27 reserved
  1674. 26-24 color mode (see #M0060,#M0074)
  1675. 23-12 reserved
  1676. 11-0 initial value of DDA horizontal accumulator
  1677. set to 2*(inwidth-1)-(outwidth-1)
  1678. Notes: the secondary stream is typically live video, but can be pointed at
  1679. any part of video memory
  1680. changes to this register do not take effect until the next VSYNC
  1681. SeeAlso: #M0058,#M0059,#M0062
  1682. Bitfields for S3 Streams Processor stretch/filter constants:
  1683. Bit(s) Description (Table M0062)
  1684. 31-27 reserved
  1685. 26-16 K2 horizontal scaling factor (input width - output width)
  1686. 15-11 reserved
  1687. 10-0 K1 horizontal scaling factor (input width - 1)
  1688. Note: changes to this register do not take effect until the next VSYNC
  1689. SeeAlso: #M0061
  1690. Bitfields for S3 Streams Processor chroma-key control:
  1691. Bit(s) Description (Table M0063)
  1692. 31-29 reserved
  1693. 28 key control
  1694. =1 normal color-key or chroma-key
  1695. =0 (keyed RGB 1-5-5-5 mode only) extract key from high bit of input
  1696. stream; if key bit is clear, show pixel from other stream
  1697. 27 reserved
  1698. 26-24 color comparison precision
  1699. 000 compare bit 7 of R,G, and B values only
  1700. 001 compare bits 7-6
  1701. ...
  1702. 111 compare bits 7-0
  1703. 23-0 chroma-key color value
  1704. 23-16 = red or Y
  1705. 15-8 = green or U/Cb
  1706. 7-0 = blue or V/Cr
  1707. Note: if the keyed stream is YUV or YCrCb, then this register contains the
  1708. lower bound and 8194h contains the upper bound of the chromakey
  1709. value
  1710. SeeAlso: #M0058
  1711. Bitfields for S3 Streams Processor blend control:
  1712. Bit(s) Description (Table M0064)
  1713. 31-27 reserved (unused)
  1714. 26-24 blend type
  1715. 000 show secondary stream (video) overlaying primary stream
  1716. 001 show primary stream overlaying secondary stream
  1717. 010 blend pri/sec. streams (dissolve, secondary intensity = full-prim.)
  1718. 011 blend pri/sec. streams
  1719. 100 reserved (blank display)
  1720. 101 show secondary stream only where chroma-key color present
  1721. 110 show secondary stream (video) unconditionally
  1722. 111 reserved (blank display)
  1723. 23-14 reserved
  1724. 13 ??? (officially reserved, but set by S3_32.DLL)
  1725. 12-8 primary stream intensity (00h-1Ch, must be multiple of 4)
  1726. 4-0 secondary stream intensity (00h-1Ch, must be multiple of 4)
  1727. (ignored for blend type 010)
  1728. Notes: for blend type 011, the primary and secondary stream intensities should
  1729. not total more than 20h to avoid wraparounds which appear as
  1730. incorrect colors; for blend type 010, the secondary stream intensity
  1731. is automatically computed as 20h - bits12-8
  1732. changes to this register do not take effect until the next VSYNC
  1733. SeeAlso: #M0058
  1734. Bitfields for S3 Streams Processor double-buffer/LPB control:
  1735. Bit(s) Description (Table M0065)
  1736. 31-7 reserved (unused; all but bit 7 appear to be read-only, as well)
  1737. 6 LPB frame buffer auto-toggle
  1738. if set, End-of-Frame toggles bit 4
  1739. 5 delay loading LPB input buffer select until next End-of-Frame
  1740. 4 LPB input buffer select (see #M0073)
  1741. 0 use LPB frame buffer address 0 (FF0Ch) for incoming video data
  1742. 1 use LPB frame buffer address 1 (FF10h)
  1743. 3 reserved
  1744. 2-1 secondary stream buffer select
  1745. 00 use frame buffer address 0 (81D0h)
  1746. 01 use frame buffer address 1 (81D4h)
  1747. 1x use frame buffer 0/1 (81D0h/81D4h) selected by bit 4 for secondary
  1748. stream and selected LPB frame buffer for LPB input
  1749. 0 primary stream buffer select
  1750. =0 use frame buffer address 0 (81C0h)
  1751. =1 use frame buffer address 1 (81C4h)
  1752. SeeAlso: #M0058,#M0073
  1753. Bitfields for S3 Streams Processor opaque overlay control:
  1754. Bit(s) Description (Table M0066)
  1755. 31 enable opaque overlay control
  1756. 30 select top stream (0 = secondary on top, 1 = primary)
  1757. 29 reserved
  1758. 28-19 pixel resume fetch
  1759. number of quadwords from background's left edge to position at which
  1760. to start fetching pixels again
  1761. 18-13 reserved
  1762. 12-3 pixel stop fetch
  1763. number of quadwords from background's left edge to position at which
  1764. to stop fetching pixels
  1765. 2-0 reserved
  1766. SeeAlso: #M0058
  1767. Bitfields for S3 Streams Processor streams FIFO and RAS control register:
  1768. Bit(s) Description (Table M0067)
  1769. 31-22 reserved (0)
  1770. 21 skip 0.5 MCLK delay of PD[63:0] output (default = 0)
  1771. 20 skip memory arbitration for ROM cycles (default = 0)
  1772. 19 do not tristate PD[63:16] during ROM cycles (default = 0)
  1773. (set by Win95 driver when using ISA bus)
  1774. 18 EDO wait state control (LPB memory cycles only)
  1775. =0 two-cycle accesses
  1776. =1 one-cycle EDO accesses
  1777. 17 reserved
  1778. 16 RAS# pre-charge control
  1779. =0 use CR68(bit3) setting (2.5/3.5 MCLKs)
  1780. =1 1.5 MCLKs
  1781. 15 RAS# low control
  1782. =0 use CR68(bit2) setting (3.5/4.5 MCLKs)
  1783. =1 2.5 MCLKs
  1784. 14-10 primary stream FIFO threshold
  1785. number of filled quadword slots at which to request refilling
  1786. 9-5 secondary stream FIFO threshold
  1787. number of filled quadword slots at which to request refilling
  1788. 4-0 FIFO allocation, in quadword slots
  1789. 00000 primary stream = 24, secondary = 0
  1790. 01000 primary stream = 16, secondary = 8
  1791. 01100 primary stream = 12, secondary = 12
  1792. 10000 primary stream = 8, secondary = 16
  1793. 11000 primary stream = 0, secondary = 24
  1794. else reserved
  1795. SeeAlso: #M0058
  1796. Bitfields for S3 Streams Processor start coordinate:
  1797. Bit(s) Description (Table M0068)
  1798. 31-27 reserved (read-only)
  1799. 26-16 X coordinate (column) of upper left corner, plus 1
  1800. 15-11 reserved (read-only)
  1801. 10-0 Y coordinate (row) of upper left corner, plus 1
  1802. SeeAlso: #M0058,#M0069
  1803. Bitfields for S3 Streams Processor window size:
  1804. Bit(s) Description (Table M0069)
  1805. 31-27 reserved (read-only)
  1806. 26-16 width in pixels - 1
  1807. 15-11 reserved (read-only)
  1808. 10-0 height in scan lines
  1809. SeeAlso: #M0058,#M0068
  1810. --------V-MA0008200--------------------------
  1811. MEM A000h:8200h - S3 ViRGE - MEMORY-MAPPED MEMORY-PORT CONTROL REGISTERS
  1812. Size: 40 BYTEs
  1813. Note: the S3 graphics processor registers can be mapped at either
  1814. linear 000A0000h or at offset 16M from the start of the linear
  1815. frame buffer
  1816. Format of S3 memory-maped port control registers:
  1817. Offset Size Description (Table M0070)
  1818. 8200h DWORD FIFO control
  1819. 8204h DWORD MIU control
  1820. 8208h DWORD streams timeout
  1821. 820Ch DWORD miscellaneous timeout
  1822. 8210h 4 DWORDs ???
  1823. 8220h DWORD DMA read base address
  1824. 8224h DWORD DMA read stride width
  1825. SeeAlso: #M0057
  1826. --------V-MA00082E8--------------------------
  1827. MEM A000h:82E8h - S3 - MEMORY-MAPPED CURRENT Y POSITION REGISTER
  1828. Size: WORD
  1829. Note: the S3 graphics processor registers can be mapped at either
  1830. linear 000A0000h or at offset 16M from the start of the linear
  1831. frame buffer
  1832. SeeAlso: PORT 82E8h
  1833. --------V-MA00083B0--------------------------
  1834. MEM A000h:83B0h - S3 - MEMORY-MAPPED VGA REGISTERS
  1835. Size: 48 BYTEs
  1836. Note: the S3 graphics processor registers can be mapped at either
  1837. linear 000A0000h or at offset 16M from the start of the linear
  1838. frame buffer
  1839. SeeAlso: PORT 03B0h,PORT 03C0h,PORT 03D0h
  1840. --------V-MA0008504--------------------------
  1841. MEM A000h:8504h - S3 ViRGE - MEMORY-MAPPED SUBSYSTEM REGISTERS
  1842. Size: 12 BYTEs
  1843. Note: the S3 graphics processor registers can be mapped at either
  1844. linear 000A0000h or at offset 16M from the start of the linear
  1845. frame buffer
  1846. Format of S3 memory-mapped subsystem registers:
  1847. Offset Size Description (Table M0071)
  1848. 8504h DWORD subsystem Control/Status Register (see PORT 42E8h,PORT 9AE8h)
  1849. on read:
  1850. bit 13 indicates whether graphics processor is busy
  1851. bits 12-8 indicate number of free FIFO slots
  1852. 8508h DWORD ???
  1853. 850Ch DWORD advanced function control (see PORT 4AE8h)
  1854. SeeAlso: #M0073,#M0057,#M0072
  1855. --------V-MA0008580--------------------------
  1856. MEM A000h:8580h - S3 - MEMORY-MAPPED DMA REGISTERS
  1857. Size: 32 BYTEs
  1858. Note: the S3 graphics processor registers can be mapped at either
  1859. linear 000A0000h or at offset 16M from the start of the linear
  1860. frame buffer
  1861. Format of S3 memory-mapped DMA registers:
  1862. Offset Size Description (Table M0072)
  1863. 8580h DWORD start address in system memory
  1864. 8584h DWORD transfer length
  1865. 8588h DWORD transfer enable
  1866. 858Ch DWORD ???
  1867. 8590h DWORD DMA base address
  1868. 8594h DWORD DMA write pointer
  1869. 8598h DWORD DMA read pointer
  1870. 859Ch DWORD DMA enable
  1871. SeeAlso: #M0057,#M0073
  1872. --------V-MA00086E8--------------------------
  1873. MEM A000h:86E8h - S3 - MEMORY-MAPPED ENHANCED REGISTERS
  1874. Size: ? BYTEs
  1875. Note: the S3 graphics processor registers can be mapped at either
  1876. linear 000A0000h or at offset 16M from the start of the linear
  1877. frame buffer
  1878. --------V-MA000A000--------------------------
  1879. MEM A000h:A000h - S3 - MEMORY-MAPPED COLOR PALETTE REGISTERS
  1880. Size: 448 BYTEs
  1881. Note: the S3 graphics processor registers can be mapped at either
  1882. linear 000A0000h or at offset 16M from the start of the linear
  1883. frame buffer
  1884. --------V-MA000A4D4--------------------------
  1885. MEM A000h:A4D4h - S3 - MEMORY-MAPPED BLT-FILL REGISTERS
  1886. Size: 60 BYTEs
  1887. Note: the S3 graphics processor registers can be mapped at either
  1888. linear 000A0000h or at offset 16M from the start of the linear
  1889. frame buffer
  1890. A4D4h DWORD ???
  1891. A4D8h DWORD ???
  1892. A4DCh DWORD ??? (set to 07FFh by S3_32.DLL)
  1893. A4E0h DWORD ??? (set to 07FFh by S3_32.DLL)
  1894. A4E4h DWORD ???
  1895. A4E8h DWORD ???
  1896. A4ECh DWORD ???
  1897. A4F0h
  1898. A4F4h DWORD ???
  1899. A4F8h
  1900. A4FCh DWORD ???
  1901. A500h DWORD ???
  1902. A504h DWORD ???
  1903. A508h DWORD ???
  1904. A50Ch DWORD ???
  1905. --------V-MA000A8D4--------------------------
  1906. MEM A000h:A8D4h - S3 - MEMORY-MAPPED LINE REGISTERS
  1907. Size: 172 BYTEs
  1908. Note: the S3 graphics processor registers can be mapped at either
  1909. linear 000A0000h or at offset 16M from the start of the linear
  1910. frame buffer
  1911. --------V-MA000ACD4--------------------------
  1912. MEM A000h:ACD4h - S3 - MEMORY-MAPPED POLYGON-FILL REGISTERS
  1913. Size: 172 BYTEs
  1914. Note: the S3 graphics processor registers can be mapped at either
  1915. linear 000A0000h or at offset 16M from the start of the linear
  1916. frame buffer
  1917. --------V-MA000B0D4--------------------------
  1918. MEM A000h:B0D4h - S3 - MEMORY-MAPPED 3D-LINE REGISTERS
  1919. Size: 172 BYTEs
  1920. Note: the S3 graphics processor registers can be mapped at either
  1921. linear 000A0000h or at offset 16M from the start of the linear
  1922. frame buffer
  1923. --------V-MA000B4D4--------------------------
  1924. MEM A000h:B4D4h - S3 - MEMORY-MAPPED 3D-TRIANGLE REGISTERS
  1925. Size: 172 BYTEs
  1926. Note: the S3 graphics processor registers can be mapped at either
  1927. linear 000A0000h or at offset 16M from the start of the linear
  1928. frame buffer
  1929. --------V-MA000FF00--------------------------
  1930. MEM A000h:FF00h - S3 - MEM-MAPPED "SCENIC HIGHWAY" (Local Periph. Bus) ACCESS
  1931. Size: 64 DWORDs
  1932. Note: the S3 graphics processor registers can be mapped at either
  1933. linear 000A0000h or at offset 16M from the start of the linear
  1934. frame buffer
  1935. SeeAlso: MEM A000h:8180h
  1936. Format of S3 Local Peripheral Bus memory-mapped registers:
  1937. Offset Size Description (Table M0073)
  1938. FF00h DWORD LPB mode (see #M0074)
  1939. FF04h DWORD LPB FIFO status (see #M0075)
  1940. FF08h DWORD interrupt status (see #M0076)
  1941. FF0Ch DWORD frame buffer address 0 (bits 21-0, multiple of 8)
  1942. offset within frame buffer at which to store incoming data from
  1943. LPB when Streams Processor double-buffer control (see #M0065)
  1944. bit 4 clear
  1945. FF10h DWORD frame buffer address 1 (bits 21-0, multiple of 8)
  1946. offset within frame buffer at which to store incoming data from
  1947. LPB when Streams Processor double-buffer control (see #M0065)
  1948. bit 4 is set
  1949. FF14h DWORD "direct address" = index for FF18h (see #M0077)
  1950. FF18h DWORD "direct data" (see #M0077)
  1951. Note: the direct address/direct data registers presumably rely
  1952. on the attached device inserting data into the digital video
  1953. stream, as on a Diamond Stealth64 Video, the "direct data"
  1954. appears to reflect the video stream data (i.e. it varies, but
  1955. with a pattern that depends on the video image, and stops
  1956. varying when video is frozen)
  1957. FF1Ch DWORD general purpose I/O (see #M0078)
  1958. FF20h DWORD LPB serial port -- I2C/DDC access (see #M0079)
  1959. FF24h DWORD input window size (high word = rows, low word = columns)
  1960. FF28h DWORD data offsets
  1961. (video alignment; high word = rows ; low word = columns)
  1962. FF2Ch DWORD horizontal decimation
  1963. bits 0-31 set indicate that bytes 0-31 (mod 32)
  1964. of each line should be dropped (in Video16 mode, each bit
  1965. controls a WORD); decimation is aligned with the start of
  1966. line as specified by the data offsets at FF28h
  1967. FF30h DWORD vertical decimation
  1968. bits 0-31 set indicate that lines 0-31 (mod 32) should be
  1969. dropped, i.e. setting this DWORD to 55555555h will drop
  1970. every other line; decimation starts with VSYNC regardless
  1971. of the data offsets specified at FF28h
  1972. FF34h DWORD line stride (number of bytes between starts of successive lines
  1973. of video data)
  1974. must be multiple of 4 -- lowest two bits forced to 0
  1975. FF38h 3 DWORDs unused??? (seem to echo FF34h)
  1976. FF40h 8 DWORDs LPB output FIFO - data transfer
  1977. writing to ANY of these DWORDs transfers a value to the FIFO;
  1978. this organization allows use of a REP MOVSD instruction to
  1979. fill the FIFO
  1980. on ISA bus, there must be a delay between successive writes
  1981. SeeAlso: #M0058
  1982. Bitfields for S3 Local Peripheral Bus LPB Mode register:
  1983. Bit(s) Description (Table M0074)
  1984. 0 enable LPB
  1985. 3-1 LPB operational mode
  1986. 000 Scenic/MX2
  1987. 001 Video 16 (PCI only)
  1988. 010 Video 8 In
  1989. used by Philips SAA7110/SAA7111 and Diamond's DTV1100
  1990. 011 Video 8 In/Out
  1991. used by CL-480
  1992. 100 Pass-Through
  1993. send FIFO data written by CPU through the decimation logic
  1994. else reserved (Trio64V+)
  1995. 4 LBP Reset
  1996. pulse this bit before changing operational mode
  1997. 5 skip every other frame
  1998. =0 write all received frames to memory
  1999. 6 disable byte-swapping
  2000. =0 incoming 8-bit video is in order U, Y0, V, Y1 (CL-480)
  2001. =1 incoming 8-bit video is in order Y0, U, Y1, V (SAA711x)
  2002. (refer to bit 26 below)
  2003. 8-7 officially reserved
  2004. 7 ??? messes up video image when set
  2005. 9 LPB vertical sync input polarity
  2006. =0 active low
  2007. =1 active high
  2008. 10 LPB horizontal sync input polarity
  2009. =0 active low
  2010. =1 active high
  2011. 11 (write-only) CPU VSYNC
  2012. writing a 1 makes Trio act as if LPB VSYNC had been received
  2013. 12 (write-only) CPU HSYNC
  2014. writing a 1 makes Trio act as if LPB HSYNC had been received
  2015. 13 (write-only) load base address
  2016. writing a 1 causes an immediate load of the currently active base
  2017. address
  2018. 15-14 reserved
  2019. 17-16 maximum compressed data burst, LPB to Scenic/MX2
  2020. 00 one DWORD
  2021. 01 two DWORDs
  2022. 10 three DWORDs
  2023. 11 burst until empty (must ensure that MX2's 8-entry FIFO is not
  2024. overrun)
  2025. 20-18 reserved
  2026. 22-21 video FIFO threshold
  2027. number of filled slots at which to request that Trio's memory manager
  2028. begin to empty the FIFO (00 = one slot, 01 = two slots, 10 = four
  2029. slots, 11 = six slots)
  2030. 23 reserved (read-only)
  2031. 24 LPB clock source
  2032. =0 driven by SCLK (Pin194) (for Trio64-compatibility mode)
  2033. =1 driven by LCLK (Pin148) (default)
  2034. 25 don't add line stride after first HSYNC within VSYNC
  2035. must be set if first HSYNC occurs before VSYNC goes active
  2036. 26 invert LCLK (only has effect if bit 24 set)
  2037. 27 reserved
  2038. 28 (not yet on Trio64V+) current odd/even video field status
  2039. 29 (not yet on Trio64V+) field inversion - when set, the LPB's FIELD pin
  2040. state is inverted before being reported in bit 28
  2041. 30 reserved
  2042. 31 (read-only) current state of CFLEVEL input (Pin182) in Video In/Out
  2043. mode (refer to bits 3-1)
  2044. SeeAlso: #M0073
  2045. Bitfields for S3 Local Peripheral Bus LPB FIFO status:
  2046. Bit(s) Description (Table M0075)
  2047. 31 video FIFO 1 is almost empty (has exactly one full slot)
  2048. 30 video FIFO 1 is empty
  2049. 29 video FIFO 1 is full
  2050. 28-23 reserved
  2051. 22 video FIFO 0 is almost empty (has exactly one full slot)
  2052. 21 video FIFO 0 is empty
  2053. 20 video FIFO 0 is full
  2054. 19-14 reserved
  2055. 13 output FIFO is almost empty (has exactly one full slot)
  2056. 12 output FIFO is empty
  2057. 11 output FIFO is full
  2058. 10-4 reserved
  2059. 3-0 number of free four-byte slots in FIFO (there are 8 slots)
  2060. SeeAlso: #M0073,#M0076
  2061. Bitfields for S3 Local Peripheral Bus interrupt status:
  2062. Bit(s) Description (Table M0076)
  2063. 31-25 reserved
  2064. 24 drive serial port clock line low on receipt of start condition
  2065. (causes I2C wait states until interrupt handler responds to start cond)
  2066. 23-20 reserved
  2067. 19 enable interrupt on I2C start condition detection
  2068. 18 enable interrupt on end of frame (VSYNC received)
  2069. 17 enable interrupt on end of line (HSYNC received)
  2070. 16 enable interrupt on LPB output FIFO empty
  2071. 15-4 reserved
  2072. 3 serial port detected I2C start condition
  2073. 2 VSYNC received (end of frame)
  2074. 1 HSYNC received (end of line)
  2075. 0 LPB output FIFO emptied
  2076. Note: bits 3-0 are write-clear: writing a 1 to a bit resets it
  2077. SeeAlso: #M0073,#P0721
  2078. (Table M0077)
  2079. Values for S3 Local Peripheral Bus "direct address" index:
  2080. 0000h CP3 installation (FF18h reads 00C3h if installed)
  2081. 0001h ?
  2082. 0002h ?
  2083. 0003h ?
  2084. bit 7: ???
  2085. bits 6-0: ???
  2086. 0004h ?
  2087. 0005h ?
  2088. bits 7-0: ???
  2089. 0020h ? (set to 107D4h, 1xxD4h by CP3.DLL))
  2090. 0028h ?
  2091. 0034h ? (set to 10000h by CP3.DLL)
  2092. 0414h ? (set by CP3.DLL)
  2093. 0500h ?
  2094. 0504h ?
  2095. 0508h ?
  2096. 050Ch ?
  2097. 0510h ?
  2098. SeeAlso: #M0073
  2099. Bitfields for S3 Local Peripheral Bus General-Purpose I/O:
  2100. Bit(s) Description (Table M0078)
  2101. 3-0 values to drive onto LPB GP output lines whenever CR5C is written
  2102. 7-4 values of GP input lines (read-only), latched whenever CR5C is read
  2103. 31-8 unused (read-only 0)
  2104. SeeAlso: #M0073
  2105. Bitfields for S3 Local Peripheral Bus serial-port register:
  2106. Bit(s) Description (Table M0079)
  2107. 0 I2C clock line [SCL] (write)
  2108. =1 tri-state SCL, allowing other devices to pull it low
  2109. 1 I2C data line [SDA] (write)
  2110. =1 tri-state SDA, allowing other devices to pull it low
  2111. 2 I2C clock line (read)
  2112. this bit reflect the actual state of the SCL line
  2113. 3 I2C data line (read)
  2114. this bit reflect the actual state of the SDA line
  2115. 4 enable I2C interface
  2116. =0 disable bits 0/1, forcing both SCL and SDA to be tri-stated
  2117. 15-5 reserved (unused)
  2118. 20-16 mirrors of bits 4-0
  2119. (these bits are on the data bus' byte lane 2 to make them accessible
  2120. via I/O port 00E2h)
  2121. Notes: see file I2C.LST for details of the I2C device registers accessible
  2122. through this interface (VPX3220A for Stealth64 Video 2001TV)
  2123. when the feature connector is disabled on the Stealth64 Video, these
  2124. bits are connected to the monitor's DDC data and clock lines
  2125. the official documentation erroneously lists the mirrors in bits 12-8
  2126. instead of 20-16
  2127. SeeAlso: #M0073,PORT 00E2h,#P0677
  2128. --------V-MB0000000--------------------------
  2129. MEM B000h:0000h - MDA TEXT BUFFER
  2130. Size: 4096 BYTEs
  2131. --------V-MB0000000--------------------------
  2132. MEM B000h:0000h - HGC+ RAMFont-MODE TEXT BUFFER
  2133. Size: 16384 BYTEs
  2134. Note: in RAMFont Mode 1, the memory is filled with the usual
  2135. character/attribute pairs; in RAMFont Mode 2, four bits of each
  2136. 'attribute' byte is used to provide 12 bits for specifying the
  2137. character
  2138. --------V-MB0000000--------------------------
  2139. MEM B000h:0000h - HGC GRAPHICS BUFFER (PAGE 0)
  2140. Size: 32768 BYTEs
  2141. --------V-MB4000000--------------------------
  2142. MEM B400h:0000h - HGC+ RAMFont BUFFER
  2143. Size: 4096 BYTEs
  2144. Notes: apparently write-only
  2145. RAMFont Mode 1: 256 characters (8 bits each for char and attribute)
  2146. RAMFont Mode 2: 3072 characters (12 bits for char, 4 bits for attrib)
  2147. each character definition is 8 pixels wide (with 9th-column duplication
  2148. if appropriate) by 8-16 pixels high
  2149. --------V-MB8000000--------------------------
  2150. MEM B800h:0000h - CGA TEXT/GRAPHICS BUFFER
  2151. Size: 16384 BYTEs
  2152. --------V-MB8000000--------------------------
  2153. MEM B800h:0000h - EGA/VGA+ TEXT BUFFER
  2154. Size: 32768 BYTEs
  2155. --------V-MB8000000--------------------------
  2156. MEM B800h:0000h - HGC GRAPHICS BUFFER (PAGE 1)
  2157. Size: 32768 BYTEs
  2158. --------V-MBFF00000--------------------------
  2159. MEM BFF0h:0000h - ET4000/W32 ACL accelerator
  2160. Size: 169 BYTES
  2161. Format of ET4000/W32 memory-mapped registers:
  2162. Offset Size Description (Table M0080)
  2163. 00h DWORD MMU Registers: memory base pointer register 0 (see #M0081)
  2164. 04h DWORD MMU Registers: memory base pointer register 1 (see #M0081)
  2165. 08h DWORD MMU Registers: memory base pointer register 2 (see #M0081)
  2166. 0Ch 7 BYTEs ???
  2167. 13h BYTE MMU Registers: MMU control register (see #M0082)
  2168. 14h 28 BYTEs ???
  2169. 30h BYTE Non-Queued Registers: suspend/terminate
  2170. 31h BYTE Non-Queued Registers: operation state (see #M0083) (write-only)
  2171. 32h BYTE Non-Queued Registers: sync enable
  2172. 33h BYTE ???
  2173. 34h BYTE Non-Queued Registers: interrupt mask
  2174. 35h BYTE Non-Queued Registers: interrupt status
  2175. 36h BYTE Non-Queued Registers: ACL status (read-only)
  2176. bit 1: read status (RDST) 1=ACL active, queue not empty
  2177. bit 0: write status (WRST) 1=queue full
  2178. 37h 73 BYTEs ???
  2179. 80h DWORD Queued Registers: pattern address (see #M0084)
  2180. 84h DWORD Queued Registers: source address (see #M0084)
  2181. 88h WORD Queued Registers: pattern Y offset (see #M0085)
  2182. 8Ah WORD Queued Registers: source Y offset (see #M0085)
  2183. 8Ch WORD Queued Registers: destination y offset (see #M0085)
  2184. 8Eh BYTE Queued Registers: virtual bus size
  2185. 8Fh BYTE Queued Registers: X/Y direction (see #M0086)
  2186. 90h BYTE Queued Registers: pattern wrap (see #M0087)
  2187. 91h BYTE ???
  2188. 92h BYTE Queued Registers: source wrap (see #M0087)
  2189. 93h BYTE ???
  2190. 94h WORD Queued Registers: X position
  2191. 96h WORD Queued Registers: Y position
  2192. 98h WORD Queued Registers: X count (see #M0088)
  2193. 9Ah WORD Queued Registers: Y count (see #M0088)
  2194. 9Ch BYTE Queued Registers: routine control (see #M0089)
  2195. 9Dh BYTE Queued Registers: reload control
  2196. 9Eh BYTE Queued Registers: background ROP for mixing
  2197. 9Fh BYTE Queued Registers: foreground ROP for mixing
  2198. A0h DWORD Queued Registers: destination address
  2199. A4h DWORD Queued Registers: internal pattern address
  2200. A8h DWORD Queued Registers: internal source address
  2201. Bitfields for ET4000/W32 memory base pointer register:
  2202. Bit(s) Description (Table M0081)
  2203. 31-22 reserved
  2204. 21-0 memory base pointer
  2205. SeeAlso: #M0080
  2206. Bitfields for ET4000/W32 MMU control register:
  2207. Bit(s) Description (Table M0082)
  2208. 7 reserved
  2209. 6-4 linear address control (LAC)
  2210. bit 6: MMU aperture 2
  2211. bit 5: MMU aperture 1
  2212. bit 4: MMU aperture 0
  2213. 3 reserved
  2214. t2-0 aperture type (APT)
  2215. bit 2: MMU aperture 2
  2216. bit 1: MMU aperture 1
  2217. bit 0: MMU aperture 0
  2218. SeeAlso: #M0080
  2219. Bitfields for ET4000/W32 operation state register:
  2220. Bit(s) Description (Table M0083)
  2221. 7-4 reserved
  2222. 3 restart operation after ACL-interruption
  2223. 2-1 reserved
  2224. 0 restore status before ACL-interruption
  2225. SeeAlso: #M0080
  2226. Bitfields for ET4000/W32 memory address register:
  2227. Bit(s) Description (Table M0084)
  2228. 31-22 reserved
  2229. 21-0 memory base pointer
  2230. SeeAlso: #M0080
  2231. Bitfields for ET4000/W32 offset register:
  2232. Bit(s) Description (Table M0085)
  2233. 15-12 reserved
  2234. 11-0 Y offset
  2235. SeeAlso: #M0080
  2236. Bitfields for ET4000/W32 X/Y direction register:
  2237. Bit(s) Description (Table M0086)
  2238. 7-2 reserved
  2239. 1 X direction
  2240. 0 Y direction
  2241. SeeAlso: #M0080
  2242. Bitfields for ET4000/W32 wrap register:
  2243. Bit(s) Description (Table M0087)
  2244. 7 reserved
  2245. 6-4 pattern Y wrap
  2246. 000 = 1 line
  2247. 001 = 2 lines
  2248. 010 = 4 lines
  2249. 011 = 8 lines
  2250. 100 = reserved
  2251. 101 = reserved
  2252. 110 = reserved
  2253. 111 = no wrap
  2254. 3 reserved
  2255. 2-0 pattern X wrap
  2256. 000 = reserved
  2257. 001 = reserved
  2258. 010 = 4 byte
  2259. 011 = 8 byte
  2260. 100 = 16 byte
  2261. 101 = 32 byte
  2262. 110 = 64 byte
  2263. 111 = no wrap
  2264. SeeAlso: #M0080
  2265. Bitfields for ET4000/W32 count register:
  2266. Bit(s) Description (Table M0088)
  2267. 15-12 reserved
  2268. 11-0 pixel count
  2269. SeeAlso: #M0080
  2270. Bitfields for ET4000/W32 routine control register:
  2271. Bit(s) Description (Table M0089)
  2272. 7-6 reserved
  2273. 5-4 routing of CPU address (ADRO)
  2274. 00 don't use CPU address
  2275. 01 CPU address is destination
  2276. 10 reserved
  2277. 11 reserved
  2278. 3 reserved
  2279. 2-0 routing of CPU data (DARQ)
  2280. 000 don't use CPU data
  2281. 001 CPU data is source data
  2282. 010 CPU data is mixed data
  2283. 011 reserved
  2284. 100 CPU data is x-count
  2285. 101 CPU data is y-count
  2286. 10x reserved
  2287. SeeAlso: #M0080
  2288. --------V-MC0000000--------------------------
  2289. MEM C000h:0000h - VIDEO BIOS (EGA and newer)
  2290. Size: varies (usually 16K-24K for EGA, 24K-32K for VGA)
  2291. --------h-mC0000000--------------------------
  2292. MEM C0000000h - Weitek "Abacus" math coprocessor
  2293. Size: 4096 BYTEs
  2294. --------B-MC8000000--------------------------
  2295. MEM C800h:0000h - HARD DISK BIOS
  2296. Size: varies (usually 8K or 16K)
  2297. --------V-MC8001C00--------------------------
  2298. MEM C800h:1C00h - IBM XGA, XGA/A - MEMORY-MAPPED REGISTERS
  2299. Range: any 8K boundary within segments C000h to DFFFh
  2300. Notes: The XGA memory mapped registers can be assigned to the last 1K block in
  2301. in each 8K block in the range of C0000h-DFFFFh; the base offset of
  2302. the 128 memory mapped lcoation for a particular XGA instance is
  2303. Segment:(1C00h+instance*80h) for each XGA installed in a system
  2304. (default instance is 6). The instance number may be read from the
  2305. XGA's Programmable Option Select registers
  2306. The XGA/A (PS/2 adapter) uses the 7KB area below the memory-mapped
  2307. register area for ROM data; the XGA (PS/2 onboard) has included
  2308. this area in it's video BIOS ROM.
  2309. Most of the memory mapped registers are from the graphics coprocessor,
  2310. while the I/O-registers are for the display controller.
  2311. --------V-MC0007FF8--------------------------
  2312. MEM C000h:7FF8h - Matrox MGA Video Adapters - CARD VENDOR ID
  2313. Size: WORD
  2314. Desc: contains the PCI vendor ID for the card vendor; this is written into
  2315. the video controllers PCI subsystem-vendor-ID field
  2316. SeeAlso: MEM C000h:7FFAh,MEM C000h:7FFCh
  2317. --------V-MC0007FFA--------------------------
  2318. MEM C000h:7FFAh - Matrox MGA Video Adapters - HARDWARE REVISION ID
  2319. Size: BYTE
  2320. SeeAlso: MEM C000h:7FF8h,MEM C000h:7FFCh
  2321. --------V-MC0007FFC--------------------------
  2322. MEM C000h:7FFCh - Matrox MGA Video Adapters - OFFSET OF PINS DATA STRUCTURE
  2323. Size: WORD
  2324. SeeAlso: INT 10/AX=4F14h"Matrox",#00126,MEM C000h:7FF8h
  2325. --------A-MF0006000--------------------------
  2326. MEM F000h:6000h - IBM PC ROM BASIC
  2327. Size: 32768 BYTEs
  2328. --------B-MF000E000--------------------------
  2329. MEM F000h:E000h - ORIGINAL IBM PC ROM BIOS
  2330. Size: 8192 BYTEs
  2331. --------H-MF000FFF0--------------------------
  2332. MEM F000h:FFF0h - RESET JUMP
  2333. Size: 5 BYTEs
  2334. --------B-MF000FFF5--------------------------
  2335. MEM F000h:FFF5h - ASCII BIOS DATE
  2336. Size: 8 BYTEs
  2337. --------B-MF000FFFD--------------------------
  2338. MEM F000h:FFFDh - OFTEN USED TO ENSURE CORRECT BIOS CHECKSUM
  2339. Size: BYTE
  2340. --------B-MF000FFFE--------------------------
  2341. MEM F000h:FFFEh - MACHINE TYPE CODE
  2342. Size: BYTE
  2343. SeeAlso: INT 15/AH=C0h
  2344. --------X-MF000xxx0--------------------------
  2345. MEM F000h:xxx0h - PCI IRQ Routing Table Specification v1.0
  2346. Size: N paragraphs (N >= 2)
  2347. InstallCheck: scan for the signature string "$PIR" followed by a valid
  2348. PCI IRQ Routing Table
  2349. Range: any paragraph boundary within the range F0000h to FFFFFh
  2350. Format of PCI IRQ Routing Table v1.0:
  2351. Offset Size Description (Table M0090)
  2352. 00h 4 BYTEs signature "$PIR"
  2353. 04h WORD version (0100h for v1.0)
  2354. 06h WORD table size in bytes
  2355. 08h BYTE bus number for PCI Interrupt Router
  2356. 09h BYTE device/function number for PCI Interrupt Router
  2357. 0Ah WORD bitmap of PCI-exclusive IRQs (bit 0 = IRQ0, etc.)
  2358. 0Ch WORD PCI vendor ID for compatible PCI Interrupt Router
  2359. 0Eh WORD PCI device ID for compatible PCI Interrupt Router
  2360. 10h DWORD Miniport data
  2361. 14h 11 BYTEs reserved (0)
  2362. 1Fh BYTE checksum (set to make 8-bit sum of bytes in entire structure
  2363. equal 00h)
  2364. --- optional data ---
  2365. 20h 16 BYTEs first slot entry (see #M0091)
  2366. ...
  2367. 16 BYTEs Nth slot entry
  2368. Format of PCI IRQ Routing Table slot entry:
  2369. Offset Size Description (Table M0091)
  2370. 00h BYTE PCI bus number
  2371. 01h BYTE PCI device number (bits 7-3)
  2372. 02h BYTE link value for INTA#
  2373. 03h WORD IRQ bitmap for INTA#
  2374. 05h BYTE link value for INTB#
  2375. 06h WORD IRQ bitmap for INTB#
  2376. 08h BYTE link value for INTC#
  2377. 09h WORD IRQ bitmap for INTC#
  2378. 0Bh BYTE link value for INTD#
  2379. 0Ch WORD IRQ bitmap for INTD#
  2380. 0Eh BYTE slot number (00h = motherboard, other = vendor-specific)
  2381. 0Fh BYTE reserved
  2382. SeeAlso: #M0090,#01260 at INT 1A/AX=B406h
  2383. --------B-MF000xxxx--------------------------
  2384. MEM F000h:xxxxh - AWARD Flash Hook
  2385. Format of AWARD Flash BIOS interface:
  2386. Offset Size Description (Table M0092)
  2387. 00h 8 BYTEs signature "AWDFLASH"
  2388. 08h WORD offset in F000h of FAR function: Get ???
  2389. Return: BL = ??? (00h)
  2390. 0Ah WORD offset in F000h of FAR function: ???
  2391. 0Ch WORD offset in F000h of FAR function: ???
  2392. 0Eh WORD offset in F000h of FAR function: ???
  2393. 10h WORD offset in F000h of FAR function: ???
  2394. 12h WORD offset in F000h of FAR function: Disable Shadowing
  2395. 14h WORD offset in F000h of FAR function: Enable Shadowing
  2396. 16h WORD offset in F000h of FAR function: Get ???
  2397. Return: DS:SI -> ??? (30 bytes?)
  2398. 18h WORD offset in F000h of FAR function: Set ???
  2399. DS:SI -> ??? (appears to be same as previous function)
  2400. Note: the AWDFLASH utility copies the ROM from F000h and uses the copy
  2401. instead of the original F000h:xxxxh addresses
  2402. --------B-MF000xxxx--------------------------
  2403. MEM F000h:xxxxh - Asustek Flash Hook
  2404. Format of Asustek Flash interface:
  2405. Offset Size Description (Table M0093)
  2406. 00h 10 BYTEs signature "ASUS_FLASH"
  2407. 0Ah 6 BYTEs blanks (padding)
  2408. 10h WORD interface version??? (current PFLASH.EXE requires 0101h)
  2409. 12h DWORD -> position-independent code to enable shadowing
  2410. 16h WORD size of code pointed at by previous field (<= 0400h)
  2411. 18h DWORD -> position-independent code to disable shadowing
  2412. 1Ch WORD size of code pointed at by previous field (<= 0400h)
  2413. --------p-Mxxxxxxx0--------------------------
  2414. MEM xxxxh:xxx0h - Advanced Configuration and Power Interface Spec (ACPI) v0.9+
  2415. Range: any paragraph boundary in the first kilobyte of the XBDA, the last
  2416. kilobyte of conventional memory, or from E000h:0000h to F000h:FFE0h
  2417. Note: scan paragraph boundaries for the signature string "RSD PTR ", followed
  2418. by a valid Root System Description Pointer structure (see #M0094)
  2419. SeeAlso: INT 15/AX=E820h
  2420. !!!acpi\acpi10.pdf p.194
  2421. Format of ACPI Root System Description Pointer structure:
  2422. Offset Size Description (Table M0094)
  2423. 00h 8 BYTEs signature "RSD PTR "
  2424. 08h BYTE checksum (entire structure, including this byte, must
  2425. add up to zero)
  2426. 09h 6 BYTEs OEM identifier
  2427. 0Fh BYTE reserved (0)
  2428. 10h DWORD physical address of Root System Description Table (see #M0096)
  2429. SeeAlso: #M0096
  2430. Format of ACPI System Description Table header:
  2431. Offset Size Description (Table M0095)
  2432. 00h 4 BYTEs signature
  2433. 04h DWORD length of table in bytes, including this header
  2434. 08h BYTE revision of specification corresponding to signature
  2435. 01h for both v0.9 and v1.0
  2436. 09h BYTE checksum (set such that entire table sums to 00h)
  2437. 0Ah 6 BYTEs OEM identification
  2438. 10h 8 BYTEs OEM table identifier
  2439. 18h 4 BYTEs OEM revision number
  2440. ---ACPI v1.0---
  2441. 1Ch 4 BYTEs vendor ID for table-creation utility used
  2442. 20h 4 BYTEs revision of table-creation utility
  2443. SeeAlso: #M0094,#M0096,#M0099,#M0097,#M0100,#M0105,#M0108,#M0110
  2444. Format of ACPI Root System Description Table:
  2445. Offset Size Description (Table M0096)
  2446. 00h 36 BYTEs System Description Table Header (see #M0095)
  2447. signature "RSDT"
  2448. 24h N DWORDs physical addresses of other description tables
  2449. (see #M0099,#M0097,#M0100,#M0105,#M0108,#M0109)
  2450. Notes: the number of table pointers is implied by the table length
  2451. field in the header (at offset 04h)
  2452. for ACPI v0.9, the header is eight bytes smaller and thus all
  2453. following offsets are 8 less
  2454. SeeAlso: #M0094
  2455. Format of ACPI Fixed ACPI Description Table:
  2456. Offset Size Description (Table M0097)
  2457. 00h 36 BYTEs System Description Table Header (see #M0095)
  2458. signature "FACP"
  2459. 24h DWORD physical address of the Firmware ACPI Control Structure
  2460. (see #M0105)
  2461. 28h DWORD physical address of the Differentiated System Description Table
  2462. (see #M0099)
  2463. 2Ch BYTE interrupt mode
  2464. 00h dual PIC (industry-standard AT-type)
  2465. 01h multiple APIC (see #M0100)
  2466. else reserved
  2467. 2Dh BYTE reserved
  2468. 2Eh WORD system vector of SCI interrupt
  2469. 30h DWORD I/O port address of SMI command port
  2470. 34h BYTE value to write to SMI comamnd port to disable SMI ownership
  2471. of ACPI hardware registers
  2472. 35h BYTE value to write to SMI comamnd port to re-enable SMI ownership
  2473. of ACPI hardware registers
  2474. 36h BYTE (v1.0) value to write to SMI command port to enter S4BIOS state
  2475. 00h if not supported
  2476. 37h BYTE reserved
  2477. 38h DWORD I/O port address of Power Management 1a Event Register Block
  2478. 3Ch DWORD I/O port address of Power Management 1b Event Register Block
  2479. (optional, 00000000h if not supported)
  2480. 40h DWORD I/O port address of Power Management 1a Control Register Block
  2481. 44h DWORD I/O port address of Power Management 1b Control Register Block
  2482. (optional, 00000000h if not supported)
  2483. 48h DWORD I/O port address of Power Management 2 Control Register Block
  2484. (optional, 00000000h if not supported)
  2485. 4Ch DWORD I/O port address of Power Management Timer Control Reg. Block
  2486. 50h DWORD I/O port address of Generic Purpose Event 0 Register Block
  2487. (optional, 00000000h if not supported)
  2488. 54h DWORD I/O port address of Generic Purpose Event 1 Register Block
  2489. (optional, 00000000h if not supported)
  2490. 58h BYTE size of Power Management 1a/1b Event Register Block (>= 4)
  2491. 59h BYTE size of Power Management 1a/1b Control Register Block (>= 1)
  2492. 5Ah BYTE size of Power Management 2 Control Register Block (>= 1)
  2493. 5Bh BYTE size of Power Management Timer Control Register Block (>= 4)
  2494. 5Ch BYTE size of Generic Purpose Event 0 Register Block (multiple of 2)
  2495. 5Dh BYTE size of Generic Purpose Event 1 Register Block (multiple of 2)
  2496. 5Eh BYTE offset within General Purpose Event model for GPE1-based events
  2497. 5Fh BYTE reserved
  2498. 60h WORD worst-case hardware latency (microseconds) for entering/leaving
  2499. state C2; >100 if C2 not supported
  2500. 62h WORD worst-case hardware latency (microseconds) for entering/leaving
  2501. state C3; >1000 if C3 not supported
  2502. 64h WORD size of contiguous cacheable memory which must be read to flush
  2503. all dirty lines from a processor's memory cache; use if
  2504. fixed feature flag WBINVD (see #M0098) is clear
  2505. 0000h if flushing not supported
  2506. 66h WORD memory stride size (in bytes) to flush processor's memory cache
  2507. 68h BYTE bit index of processor's duty cycle setting within the
  2508. processor's P_CNT register
  2509. 69h BYTE size of processor's duty cycle setting in bits
  2510. 6Ah BYTE index within RTC CMOS RAM of the day-of-month alarm value
  2511. 00h = not supported
  2512. 6Bh BYTE index within RTC CMOS RAM of the month-of-year alarm value
  2513. 00h = not supported
  2514. 6Ch BYTE index within RTC CMOS RAM of the century alarm value
  2515. 00h = not supported
  2516. 6Dh BYTE reserved
  2517. 6Eh DWORD fixed feature flags (see #M0098)
  2518. SeeAlso: #M0094,CMOS 7Dh,CMOS 7Eh,CMOS 7Fh
  2519. Bitfields for ACPI Fixed Feature Flags:
  2520. Bit(s) Description (Table M0098)
  2521. 0 WBINVD instruction is correctly supported by processor
  2522. 1 WBINVD instruction flushes all caches and maintains coherency, but
  2523. does not guarantee invalidation of all caches
  2524. 2 all processors support C1 sleep state
  2525. 3 C2 sleep state is configured to work on multiprocessor system
  2526. ---v0.9---
  2527. 4 power button is handled as a generic feature
  2528. 5 RTC wake-up state is not supported in fixed register space
  2529. 6 TMR_VAL size
  2530. =0 24 bits
  2531. =1 32 bits
  2532. 7-31 reserved
  2533. ---v1.0---
  2534. 4 power button is handled as a control method device
  2535. 5 =0 sleep button is handled as a fixed feature programming mode
  2536. =1 control method device, or no sleep button
  2537. 6 RTC wake-up state is not supported in fixed register space
  2538. 7 RTc alarm can wake system from S4 state
  2539. 8 TMR_VAL size
  2540. =0 24 bits
  2541. =1 32 bits
  2542. 9-31 reserved
  2543. SeeAlso: #M0097
  2544. Format of ACPI Differentiated System Description Table:
  2545. Offset Size Description (Table M0099)
  2546. 00h 36 BYTEs System Description Table Header (see #M0095)
  2547. signature "DSDT"
  2548. 24h complex byte stream; refer to ACPI document and software
  2549. SeeAlso: #M0094
  2550. Format of ACPI Multiple APIC Description Table:
  2551. Offset Size Description (Table M0100)
  2552. 00h 36 BYTEs System Description Table Header (see #M0095)
  2553. signature "APIC"
  2554. 24h DWORD physical address of the local APIC in each processor's address
  2555. space
  2556. 28h DWORD multiple-APIC flags (see #M0101)
  2557. 2Ch 12N BYTEs APIC structures (see #M0102,#M0104)
  2558. first byte of each is type, second is length; types other than
  2559. 00h and 01h are currently reserved and should be skipped
  2560. SeeAlso: #M0094
  2561. Bitfields for ACPI Multiple APIC Description Table flags:
  2562. Bit(s) Description (Table M0101)
  2563. 0 system contains AT-compatible dual 8259 interrupt controllers in
  2564. addition to APICs
  2565. 1-31 reserved (0)
  2566. SeeAlso: #M0100
  2567. Format of ACPI Local APIC Structure:
  2568. Offset Size Description (Table M0102)
  2569. 00h BYTE structure type (00h = Processor Local APIC)
  2570. 01h BYTE length of this structure (0Ch for v0.9, 08h for v1.0)
  2571. 02h BYTE processor ID
  2572. 03h BYTE processor's local APIC ID
  2573. ---v0.9---
  2574. 04h DWORD physical address of APIC
  2575. 08h DWORD flags (TBD)
  2576. --v1.0---
  2577. 04h DWORD flags (see #M0103)
  2578. SeeAlso: #M0100,#M0104
  2579. Bitfields for ACPI Local APIC flags:
  2580. Bit(s) Description (Table M0103)
  2581. 0 APIC enabled
  2582. 1-31 reserved (0)
  2583. SeeAlso: #M0102
  2584. Format of ACPI I/O APIC Structure:
  2585. Offset Size Description (Table M0104)
  2586. 00h BYTE structure type (00h = Processor Local APIC)
  2587. 01h BYTE 0Ch (length of this structure)
  2588. 02h BYTE I/O APIC's ID
  2589. 03h BYTE reserved (0)
  2590. 04h DWORD physical address of the APIC
  2591. 08h DWORD number of first system interrupt vector for APIC
  2592. SeeAlso: #M0100,#M0102
  2593. Format of ACPI Firmware ACPI Control Structure:
  2594. Offset Size Description (Table M0105)
  2595. 00h 4 BYTEs signature "FACS"
  2596. 04h DWORD length of entire structure in bytes (>= 40h)
  2597. 08h DWORD value of system's hardware signature at last boot
  2598. 0Ch DWORD real-mode ACPI OS waking vector
  2599. if nonzero, control is transferred to this address on next BIOS
  2600. POST
  2601. 10h DWORD global lock (see #M0107)
  2602. 14h DWORD (v1.0) firmware control structure flags (see #M0106)
  2603. 18h 44 BYTEs reserved (0)
  2604. Notes: this structure is located on a 64-byte boundary anywhere in the
  2605. first 4GB of memory
  2606. the BIOS is required to omit the address space containing this
  2607. structure from system memory in the system's memory map
  2608. SeeAlso: #M0094,INT 15/AX=E820h
  2609. Bitfields for ACPI Firmware Control Structure Feature flags:
  2610. Bit(s) Description (Table M0106)
  2611. 0 system supports S4BIOS_REQ
  2612. =0 operating system must save/restore memory state in order to go to S4
  2613. 1-31 reserved (0)
  2614. SeeAlso: #M0105
  2615. Bitfields for ACPI Embedded Controller Arbitration Structure:
  2616. Bit(s) Description (Table M0107)
  2617. 0 request for Global Lock ownership is pending
  2618. 1 Global Lock is currently owned
  2619. 2-31 reserved
  2620. SeeAlso: #M0105
  2621. Format of ACPI Persistent System Description Table:
  2622. Offset Size Description (Table M0108)
  2623. 00h 36 BYTEs System Description Table Header (see #M0095)
  2624. signature "PSDT"
  2625. 24h complex byte stream; refer to ACPI document and software
  2626. SeeAlso: #M0094
  2627. Format of ACPI Secondary System Description Table:
  2628. Offset Size Description (Table M0109)
  2629. 00h 36 BYTEs System Description Table Header (see #M0095)
  2630. signature "SSDT"
  2631. 24h complex byte stream; refer to ACPI document and software
  2632. SeeAlso: #M0094
  2633. Format of ACPI Smart Battery Description Table:
  2634. Offset Size Description (Table M0110)
  2635. 00h 36 BYTEs System Description Table Header (see #M0095)
  2636. signature "SBST"
  2637. 24h DWORD energy level in mWh at which system should warn user
  2638. 28h DWORD energy level in mWh at which system should automatically enter
  2639. sleep state
  2640. 2Ch DWORD energy level in mWh at which system should perform an emergency
  2641. shutdown
  2642. SeeAlso: #M0094
  2643. ----------Mxxxxxxx0---------------------------
  2644. MEM xxxxh:xxx0h - BIOS32 Service Directory
  2645. InstallCheck: scan paragraph boundaries E000h to FFFFh for signature string
  2646. "_32_", followed by a valid header structure (see #F0021)
  2647. SeeAlso: CALL xxxxh:xxxxh"BIOS32"
  2648. ----------Mxxxxxxx0---------------------------
  2649. MEM xxxxh:xxx0h - Desktop Management Interface / System Management BIOS
  2650. InstallCheck: scan paragraph boundaries F000h to FFFFh for signature string
  2651. "_DMI_", followed by a valid header structure (see #M0111,#M0112)
  2652. Format of Desktop Management Interface entry-point structure:
  2653. Offset Size Description (Table M0111)
  2654. 00h 5 BYTEs signature "_DMI_"
  2655. 05h BYTE checksum of this structure (forces 8-bit sum of bytes to 00h)
  2656. 06h WORD total length of SMBIOS structure table, in bytes
  2657. 08h DWORD 32-bit physical address of read-only SMBIOS structure table
  2658. (see #F0059)
  2659. 0Ch WORD number of SMBIOS structures
  2660. 0Eh BYTE BCD SMBIOS revision (high nybble = major, low = minor)
  2661. !!!ftp://download.intel.com/ial/wfm/smbios.pdf
  2662. SeeAlso: #M0112
  2663. Format of System Management BIOS entry-point structure:
  2664. Offset Size Description (Table M0112)
  2665. 00h 4 BYTEs signature "_SM_"
  2666. 04h BYTE checksum of this structure (forces 8-bit sum of bytes to 00h)
  2667. 05h BYTE length of structure in bytes (1Fh for v2.1+)
  2668. 06h BYTE major version of specification
  2669. 07h BYTE minor version of specification (01h = vX.1, 16h = vX.22)
  2670. 08h WORD size of largest SMBIOS structure (see also #F0046)
  2671. 0Ah BYTE revision of this data structure
  2672. 00h SMBIOS v2.1-2.3
  2673. 01h-FFh reserved for future versions
  2674. 0Bh 5 BYTEs revision-specific data (currently unused)
  2675. 10h 5 BYTEs intermediate anchor string "_DMI_"
  2676. 15h BYTE checksum of intermediate entry-point structure
  2677. (forces 8-bit sum of bytes 10h-1Eh to 00h)
  2678. 16h WORD total length of SMBIOS structure table, in bytes
  2679. 18h DWORD 32-bit physical address of read-only SMBIOS structure table
  2680. (see #F0059)
  2681. 1Ch WORD number of SMBIOS structures
  2682. 1Eh BYTE BCD SMBIOS revision (high nybble = major, low = minor)
  2683. 00h if specification version only given in bytes 06h/07h
  2684. BUG: due to an error in the v2.1 specification, some implementations might
  2685. indicate a length of 1Eh bytes instead of 1Fh
  2686. SeeAlso: #M0111
  2687. ----------Mxxxxxxx0--------------------------
  2688. MEM xxxxh:xxx0h - Multiprocessor Specification - FLOATING POINTER STRUCTURE
  2689. InstallCheck: scan paragraph boundaries for the signature string "_MP_",
  2690. followed by a valid floating pointer structure (see #M0113)
  2691. Range: any paragraph boundary in the first kilobyte of the XBDA, the last
  2692. kilobyte of conventional memory, or from F000h:0000h to F000h:FFE0h
  2693. SeeAlso: MEM FEE00000h
  2694. Format of Multiprocessor Specification Floating Pointer structure:
  2695. Offset Size Description (Table M0113)
  2696. 00h 4 BYTEs signature "_MP_"
  2697. 04h DWORD physical address of MP configuration table (see #M0114)
  2698. 00000000h if no configuration table
  2699. 08h BYTE length of this structure in paragraphs (currently 01h)
  2700. 09h BYTE revision of MP specification supported
  2701. 01h = v1.1
  2702. 04h = v1.4
  2703. 0Ah BYTE checksum (8-bit sum of entire structure, including this
  2704. byte, must equal 00h)
  2705. 0Bh BYTE MP feature byte 1: system configuration type
  2706. 00h: MP configuration table present
  2707. nonzero: default configuration implemented by system
  2708. 0Ch BYTE MP feature byte 2
  2709. bit 7: IMCR present
  2710. bits 6-0: reserved (0)
  2711. 0Dh 3 BYTEs MP feature bytes 3-5 (reserved, must be 00h)
  2712. Format of Multiprocessor Specification configuration table header:
  2713. Offset Size Description (Table M0114)
  2714. 00h 4 BYTEs signature "PCMP"
  2715. 04h WORD length of base configuration table in bytes, including
  2716. this header
  2717. 06h BYTE revision of MP specification supported
  2718. 01h = v1.1
  2719. 04h = v1.4
  2720. 07h BYTE checksum of entire base configuration table
  2721. 08h 8 BYTEs OEM identifier
  2722. 10h 12 BYTEs product ID
  2723. 1Ch DWORD physical address to OEM-defined configuration table
  2724. 00000000h if not present
  2725. 20h WORD size of base OEM table in bytes (0000h if not present)
  2726. 22h WORD number of entries in variable portion of base table
  2727. 24h DWORD address of local APIC (see also MEM FEE0h:0020h)
  2728. 28h WORD length of extended entries following end of base table
  2729. (in bytes)
  2730. 2Ah BYTE checksum for extended table entries (includes only
  2731. extended entries following base table)
  2732. 2Ch var configuration table entries (see #M0115)
  2733. SeeAlso: #M0113
  2734. Format of Multiprocessor Specification configuration table entries:
  2735. Offset Size Description (Table M0115)
  2736. 00h BYTE entry type code
  2737. 00h processor
  2738. 01h bus
  2739. 02h I/O APIC
  2740. 03h I/IO interrupt assignment
  2741. 04h local interrupt assignment
  2742. 80h system address space mapping
  2743. 81h bus hierarchy descriptor
  2744. 82h compatibility bus address space modifier
  2745. ---processor---
  2746. 01h BYTE local APIC identifier
  2747. 02h BYTE local APIC version
  2748. 03h BYTE CPU flags
  2749. bit 0: processor usable
  2750. bit 1: bootstrap processor
  2751. 04h WORD CPU type
  2752. bits 11-8: CPU family
  2753. bits 7-4: CPU model
  2754. bits 3-0: stepping
  2755. (bits 11-0 all set indicate non-Intel-compatible CPU)
  2756. 06h 2 BYTEs unused
  2757. 08h DWORD feature flags (as returned by Pentium CPUID instruction)
  2758. 0Ch 8 BYTEs reserved
  2759. ---bus---
  2760. 01h BYTE bus ID (assigned sequentially from 00h by BIOS)
  2761. 02h 6 BYTEs bus type (blank-padded ASCII string) (see #M0116)
  2762. ---I/O APIC---
  2763. 01h BYTE APIC identifier
  2764. 02h BYTE APIC version
  2765. 03h BYTE I/O APIC flags
  2766. bit 0: enabled
  2767. bits 7-1: reserved
  2768. 04h DWORD base address for APIC
  2769. ---I/O,local interrupt assignment---
  2770. 01h BYTE interrupt type
  2771. 00h vectored interrupt (from APIC)
  2772. 01h NMI
  2773. 02h system management interrupt
  2774. 03h vectored interrupt (from external PIC)
  2775. 02h BYTE APIC control (see #M0117)
  2776. 03h BYTE unused
  2777. 04h BYTE source bus identifier
  2778. 05h BYTE source bus IRQ
  2779. 06h BYTE destination I/O APIC identifier
  2780. 07h BYTE destination I/O APIC interrupt pin number
  2781. ---system address space mapping---
  2782. 01h BYTE entry length (14h)
  2783. 02h BYTE bus ID
  2784. 03h BYTE address type (00h I/O, 01h memory, 02h prefetch)
  2785. 04h QWORD starting address of region visible to bus
  2786. 0Ch QWORD length of region visible to bus
  2787. ---bus hierarchy descriptor---
  2788. 01h BYTE entry length (08h)
  2789. 02h BYTE bus ID
  2790. 03h BYTE bus information
  2791. bit 0: subtractive decoding
  2792. 04h BYTE ID of parent bus
  2793. 05h 3 BYTEs reserved
  2794. ---compatibility bus address space modifier---
  2795. 01h BYTE entry length (08h)
  2796. 02h BYTE bus ID
  2797. 03h BYTE address modifier
  2798. bit 0: remove address ranges in predefined range list from
  2799. bus's address space
  2800. 04h DWORD number indicating predefined address space range to be removed
  2801. 00h ISA-compatible I/O range (x100h-x3FFh and aliases)
  2802. 01h VGA-compatible I/O range (x3B0h-x3BBh,x3C0h-x3DFh,aliases)
  2803. SeeAlso: #M0114
  2804. (Table M0116)
  2805. Values for Multiprocessor Specification bus name:
  2806. "CBUS" Corollary CBus
  2807. "CBUSII" Corollary CBus II
  2808. "EISA"
  2809. "FUTURE" IEEE FutureBus
  2810. "INTERN" internal bus
  2811. "ISA"
  2812. "MBI" Multibus I
  2813. "MBII" Multibus II
  2814. "MCA" Microchannel
  2815. "MPI"
  2816. "MPSA"
  2817. "NUBUS" Apple Macintosh NuBus
  2818. "PCI"
  2819. "PCMCIA"
  2820. "TC" DEC TurboChannel
  2821. "VL" VESA Local Bus
  2822. "VME" VMEbus
  2823. "XPRESS" Express System Bus
  2824. SeeAlso: #M0115
  2825. Bitfields for Multiprocessor Specification APIC control:
  2826. Bit(s) Description (Table M0117)
  2827. 1-0 input signal polarity
  2828. 00 conforms to bus specification
  2829. 01 active high
  2830. 10 reserved
  2831. 11 active low
  2832. 3-2 trigger mode
  2833. 00 conforms to bus specification
  2834. 01 edge-triggered
  2835. 10 reserved
  2836. 11 level-triggered
  2837. SeeAlso: #M0115
  2838. --------H-mFEC00000--------------------------
  2839. MEM FEC00000h - Pentium - 82379AB I/O APIC - I/O REGISTER SELECT
  2840. Size: DWORD
  2841. Desc: bits 7-0 of the I/O Register Select memory location specify which
  2842. of the APIC's registers appears in the I/O Window at FExxx010h
  2843. Range: the Multiprocessor Specification calls for I/O APICs to be memory-
  2844. mapped on 4K boundaries between FEC00000h and FEDFC000h; the Intel
  2845. 82379AB I/O APIC can be memory-mapped on any 1K boundary within
  2846. FEC0000h-FEC0F800h
  2847. Note: this memory-mapped register is also supported by the Intel 82093AA
  2848. I/O APIC
  2849. SeeAlso: MEM FEC00010h,MEM FEE00000h,MEM xxxxh:xxx0h"Multiprocessor"
  2850. --------H-mFEC00010--------------------------
  2851. MEM FEC00010h - Pentium - 82379AB I/O APIC - I/O WINDOW
  2852. Size: DWORD
  2853. Range: the Multiprocessor Specification calls for I/O APICs to be memory-
  2854. mapped on 4K boundaries between FEC00000h and FEDFC000h
  2855. Note: this memory-mapped register is also supported by the Intel 82093AA
  2856. I/O APIC
  2857. SeeAlso: MEM FEC00010h
  2858. (Table M0118)
  2859. Values for Intel 82379AB/82093AA I/O APIC registers:
  2860. 00h APIC ID
  2861. 01h APIC version (read-only)
  2862. bits 31-24: reserved
  2863. bits 23-16: maximum redirection entry
  2864. bits 15-8: reserved
  2865. bits 7-0: APIC version (11h for 82093AA)
  2866. 02h APIC arbitration ID (read-only)
  2867. bits 31-28: reserved
  2868. bits 27-24: arbitration ID
  2869. bits 23-0: reserved
  2870. 10h-11h redirection table entry 0 (10h=low DWORD, 11h=high DWORD)
  2871. 12h-13h redirection table entry 1 (see !!!)
  2872. ...
  2873. 2Eh-2Fh redirection table entry 15
  2874. ---82093AA only---
  2875. 30h-31h redirection table entry 16
  2876. ...
  2877. 3Eh-3Fh redirection table entry 23
  2878. Bitfields for APIC redirection table entry:
  2879. Bit(s) Description (Table M0119)
  2880. 63-56 destination
  2881. !!!29056601.pdf pg. 10
  2882. 55-17 reserved
  2883. 16 interrupt mask
  2884. 15 trigger mode
  2885. 14 remote IRR (read-only)
  2886. 13 interrupt input pin polarity
  2887. 12 delivery status (read-only)
  2888. 11 destination mode
  2889. 10-8 delivery mode
  2890. 7-0 interrupt vector (10h-FEh)
  2891. --------H-mFEE00000--------------------------
  2892. MEM FEE00000h - Pentium - LOCAL APIC
  2893. Size: 4096 BYTEs
  2894. Notes: the Advanced Programmable Interrupt Controller built into
  2895. multiprocessor-capable Pentiums (P54C, etc. -- basically 75MHz and
  2896. faster Pentiums) maps its registers into the top of the physical
  2897. address space on data reads and writes, but not on code reads;
  2898. data accesses to the APIC registers do not cause external bus
  2899. cycles
  2900. the APIC's registers are only visible when the APIC is enabled (which
  2901. occurs at CPU reset when external data lines contain proper signals);
  2902. all accesses to APIC registers should use 32-bit reads or writes, as
  2903. 8-bit and 16-bit accesses may produce unpredictable results
  2904. the PentiumPro (P6) permits the address at which the local APIC
  2905. appears to be changed with Model-Specific Register 0000001Bh
  2906. SeeAlso: MEM FEC00000h,MEM FEE00020h,MEM xxxxh:xxx0h"Multiprocessor"
  2907. SeeAlso: MSR 0000001Bh
  2908. --------H-mFEE00020--------------------------
  2909. MEM FEE00020h - Pentium - LOCAL APIC - LOCAL APIC ID REGISTER
  2910. Size: DWORD
  2911. SeeAlso: MEM FEE00030h
  2912. --------H-mFEE00030--------------------------
  2913. MEM FEE00030h - Pentium - LOCAL APIC - LOCAL APIC VERSION REGISTER
  2914. Size: DWORD
  2915. Note: read-only
  2916. SeeAlso: MEM FEE00020h
  2917. --------H-mFEE00040--------------------------
  2918. MEM FEE00040h - Pentium - LOCAL APIC - RESERVED
  2919. SeeAlso: MEM FEE00000h
  2920. --------H-mFEE00050--------------------------
  2921. MEM FEE00050h - Pentium - LOCAL APIC - RESERVED
  2922. SeeAlso: MEM FEE00000h
  2923. --------H-mFEE00060--------------------------
  2924. MEM FEE00060h - Pentium - LOCAL APIC - RESERVED
  2925. SeeAlso: MEM FEE00000h
  2926. --------H-mFEE00070--------------------------
  2927. MEM FEE00070h - Pentium - LOCAL APIC - RESERVED
  2928. SeeAlso: MEM FEE00000h
  2929. --------H-mFEE00080--------------------------
  2930. MEM FEE00080h - Pentium - LOCAL APIC - TASK PRIORITY REGISTER (TPR)
  2931. Size: DWORD
  2932. --------H-mFEE00090--------------------------
  2933. MEM FEE00090h - Pentium - LOCAL APIC - ARBITRATION PRIORITY REGISTER (APR)
  2934. Size: DWORD
  2935. Note: read-only
  2936. --------H-mFEE000A0--------------------------
  2937. MEM FEE000A0h - Pentium - LOCAL APIC - END OF INTERRUPT REGISTER (EOI)
  2938. Size: DWORD
  2939. Note: write-only
  2940. --------H-mFEE000A0--------------------------
  2941. MEM FEE000A0h - Pentium - LOCAL APIC - PROCESSOR PRIORITY REGISTER (PPR)
  2942. Size: DWORD
  2943. Note: read-only
  2944. SeeAlso: MEM FEE00000h
  2945. --------H-mFEE000B0--------------------------
  2946. MEM FEE000B0h - Pentium - LOCAL APIC - RESERVED
  2947. SeeAlso: MEM FEE00000h
  2948. --------H-mFEE000C0--------------------------
  2949. MEM FEE000C0h - Pentium - LOCAL APIC - REMOTE READ REGISTER
  2950. Size: DWORD
  2951. Note: read-only
  2952. --------H-mFEE000D0--------------------------
  2953. MEM FEE000D0h - Pentium - LOCAL APIC - LOGICAL DURATION REGISTER (LDR)
  2954. Size: DWORD
  2955. SeeAlso: MEM FEE00000h
  2956. --------H-mFEE000E0--------------------------
  2957. MEM FEE000E0h - Pentium - LOCAL APIC - DESTINATION FORMAT REGISTER (DFR)
  2958. Size: DWORD
  2959. bits 27-0: read-only
  2960. bits 31-28: read-write
  2961. --------H-mFEE000F0--------------------------
  2962. MEM FEE000F0h - Pentium - LOCAL APIC - SPURIOUS INTERRUPT VECTOR REGISTER
  2963. Size: DWORD
  2964. bits 3-0, read-only
  2965. bits 9-4, read/write
  2966. --------H-mFEE00100--------------------------
  2967. MEM FEE00100h - Pentium - LOCAL APIC - IN-SERVICE REGISTER (ISR)
  2968. Size: 128 BYTEs
  2969. Note: read-only
  2970. SeeAlso: MEM FEE00200h
  2971. --------H-mFEE00180--------------------------
  2972. MEM FEE00180h - Pentium - LOCAL APIC - TRIGGER MODE REGISTER (TMR)
  2973. Size: 128 BYTEs
  2974. Note: read-only
  2975. SeeAlso: MEM FEE00000h
  2976. --------H-mFEE00200--------------------------
  2977. MEM FEE00200h - Pentium - LOCAL APIC - INTERRUPT REQUEST REGISTER (IRR)
  2978. Size: 128 BYTEs
  2979. Note: read-only
  2980. SeeAlso: MEM FEE00100h
  2981. --------H-mFEE00280--------------------------
  2982. MEM FEE00280h - Pentium - LOCAL APIC - ERROR STATUS REGISTER
  2983. Size: DWORD
  2984. Note: read-only
  2985. Bitfields for Pentium APIC error status register:
  2986. Bit(s) Description (Table M0120)
  2987. 0 send checksum error
  2988. 1 receive checksum error
  2989. 2 send accept error
  2990. 3 receive accept error
  2991. 4 reserved
  2992. 5 send illegal vector
  2993. 6 receive illegal vector
  2994. 7 illegal register address
  2995. 31-8 reserved
  2996. --------H-mFEE00300--------------------------
  2997. MEM FEE00300h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  2998. Size: DWORD
  2999. Note: this is the low half of the 64-bit ICR
  3000. SeeAlso: MEM FEE00310h,#M0121
  3001. Bitfields for Pentium APIC Interrupt Command Register:
  3002. Bit(s) Description (Table M0121)
  3003. 7-0 interrupt vector number
  3004. 10-8 delivery mode (see #M0122)
  3005. 11 destination mode
  3006. 12 delivery status (read-only)
  3007. 1 = transfer pending
  3008. 13 reserved
  3009. 14 level (0 = INIT Level Deassert message, 1 = anything else)
  3010. 15 trigger mode (1)
  3011. 17-16 remote read status (read-only)
  3012. 19-18 destination shorthand
  3013. 00 as specified by destination field
  3014. 01 self
  3015. 10 all including self
  3016. 11 all except self
  3017. 55-20 reserved
  3018. 63-56 destination for interrupt request or message
  3019. SeeAlso: #M0124
  3020. (Table M0122)
  3021. Values for Pentium APIC delivery mode:
  3022. 000b fixed
  3023. 001b lowest-priority
  3024. 010b SMI
  3025. 011b remote read
  3026. 100b NMI
  3027. 101b INIT
  3028. 110b start up
  3029. 111b reserved
  3030. SeeAlso: #M0121
  3031. --------H-mFEE00310--------------------------
  3032. MEM FEE00310h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  3033. Size: DWORD
  3034. Note: this is the high half of the 64-bit ICR
  3035. SeeAlso: MEM FEE00300h,#M0121
  3036. --------H-mFEE00320--------------------------
  3037. MEM FEE00320h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 0 (TIMER)
  3038. Size: DWORD
  3039. SeeAlso: MEM FEE00350h,MEM FEE00370h,MEM FEE003E0h,INT 70h
  3040. Bitfields for Pentium APIC timer local vector entry:
  3041. Bit(s) Description (Table M0123)
  3042. 7-0 interrupt vector number
  3043. 11-8 reserved
  3044. 12 delivery status (read-only)
  3045. 1 = interrupt being sent to APIC
  3046. 15-13 reserved
  3047. 16 interrupt delivery disabled
  3048. 17 timer mode (0=one-shot, 1=periodic)
  3049. 31-18 reserved
  3050. SeeAlso: #M0125,#M0124
  3051. --------H-mFEE00330--------------------------
  3052. MEM FEE00330h - Pentium - LOCAL APIC - RESERVED
  3053. SeeAlso: MEM FEE00000h
  3054. --------H-mFEE00340--------------------------
  3055. MEM FEE00340h - Pentium - LOCAL APIC - RESERVED
  3056. SeeAlso: MEM FEE00000h
  3057. --------H-mFEE00350--------------------------
  3058. MEM FEE00350h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 1 (LINT0)
  3059. Size: DWORD
  3060. SeeAlso: MEM FEE00320h,MEM FEE00360h
  3061. Bitfields for Pentium APIC LINTx local vector entry:
  3062. Bit(s) Description (Table M0124)
  3063. 7-0 interrupt vector number
  3064. 10-8 delivery mode
  3065. 000 fixed
  3066. 100 NMI
  3067. 111 external interrupt (8259A-compatibility)
  3068. 11 reserved
  3069. 12 delivery status (read-only)
  3070. 1 = interrupt being sent to APIC
  3071. 13 interrupt pin is active low
  3072. 14 remote IRR
  3073. 15 trigger mode
  3074. 0 edge-sensitive
  3075. 1 level-sensitive
  3076. 16 interrupt delivery disabled
  3077. 31-17 reserved
  3078. SeeAlso: #M0123
  3079. --------H-mFEE00360--------------------------
  3080. MEM FEE00360h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 2 (LINT1)
  3081. Size: DWORD
  3082. SeeAlso: MEM FEE00350h,MEM FEE00370h,#M0124
  3083. --------H-mFEE00370--------------------------
  3084. MEM FEE00370h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 3 (Error)
  3085. Size: DWORD
  3086. SeeAlso: MEM FEE00320h,MEM FEE00370h
  3087. --------H-mFEE00380--------------------------
  3088. MEM FEE00380h - Pentium - LOCAL APIC - INITIAL COUNT REGISTER (ICR) TIMER
  3089. Size: DWORD
  3090. Desc: timer start value, which together with the Divide Configuration
  3091. Register also determines its period when periodic mode has been
  3092. selected
  3093. SeeAlso: MEM FEE00000h,MEM FEE00390h
  3094. --------H-mFEE00390--------------------------
  3095. MEM FEE00390h - Pentium - LOCAL APIC - CURRENT COUNT REGISTER (CCR) TIMER
  3096. Size: DWORD
  3097. Desc: current timer count; when this value reaches zero, an interrupt is
  3098. generated
  3099. Note: read-only
  3100. SeeAlso: MEM FEE00380h
  3101. --------H-mFEE003A0--------------------------
  3102. MEM FEE003A0h - Pentium - LOCAL APIC - RESERVED
  3103. SeeAlso: MEM FEE00000h
  3104. --------H-mFEE003B0--------------------------
  3105. MEM FEE003B0h - Pentium - LOCAL APIC - RESERVED
  3106. SeeAlso: MEM FEE00000h
  3107. --------H-mFEE003C0--------------------------
  3108. MEM FEE003C0h - Pentium - LOCAL APIC - RESERVED
  3109. SeeAlso: MEM FEE00000h
  3110. --------H-mFEE003D0--------------------------
  3111. MEM FEE003D0h - Pentium - LOCAL APIC - RESERVED
  3112. SeeAlso: MEM FEE00000h
  3113. --------H-mFEE003E0--------------------------
  3114. MEM FEE003E0h - Pentium - LOCAL APIC - TIMER DIVIDE CONFIGURATION REGISTER
  3115. Size: DWORD
  3116. SeeAlso: MEM FEE00000h,MEM FEE00320h
  3117. Bitfields for Pentium APIC timer divide configuration:
  3118. Bit(s) Description (Table M0125)
  3119. 3,1,0 divisor
  3120. 000 divide by 2
  3121. 001 by 4
  3122. 010 by 8
  3123. ...
  3124. 110 by 128
  3125. 111 by 1
  3126. 2 zero (0)
  3127. 31-4 reserved
  3128. Note: the divisor determines the timer's time base relative to the processor
  3129. clock
  3130. SeeAlso: #M0123
  3131. ----------MFFFF0010--------------------------
  3132. MEM FFFFh:0010h - HIGH MEMORY AREA (HMA)
  3133. Size: 65520 BYTEs
  3134. --------!---CONTRIBUTORS---------------------
  3135. Robin Walker <rdhw@cus.cam.ac.uk> ORIGINAL FILE
  3136. Wim Osterholt <wim@djo.wtm.tudelft.nl> or Wim Osterholt 2:512/56
  3137. EHD floppy = 'KEGAN 4.0M Floppy Drive Controller.',
  3138. 'ACME FX4-K7tb2 v:2.5 11/5/91'
  3139. Stanley Appel <appel@stack.urc.tue.nl>
  3140. Matthias Paul <mpaul@ibh.rwth-aachen.de>
  3141. --------!---Admin----------------------------
  3142. Highest Table Number = M0125
  3143. --------!---FILELIST-------------------------
  3144. Please redistribute all of the files comprising the interrupt list (listed at
  3145. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  3146. quartet of archives named INTER60A through INTER60D (preferably the original
  3147. authenticated PKZIP archives), and the utility and hypertext programs in
  3148. three additional archives called INTER60E.ZIP to INTER60G.ZIP.
  3149. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  3150. --------!---CONTACT_INFO---------------------
  3151. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  3152. FIDO: Ralf Brown 1:129/26.1