| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282 |
- MEMORY MAP Release 60 Last change 03jan99
- Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
- --------H-M00000000--------------------------
- MEM 0000h:0000h R - INTERRUPT VECTOR TABLE
- Size: 1024 BYTEs
- Note: see also the main interrupt list
- --------b-M0000031D--------------------------
- MEM 0000h:031Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 47 HARD DISK PARMS
- Size: 16 BYTEs
- Note: these fields are used if the AMI BIOS setup is set to use the top of
- the interrupt table for the extended BIOS data area
- SeeAlso: MEM 0000h:032Dh,INT 41
- --------b-M0000032D--------------------------
- MEM 0000h:032Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 48 HARD DISK PARMS
- Size: 16 BYTEs
- Note: these fields are used if the AMI BIOS setup is set to use the top of
- the interrupt table for the extended BIOS data area
- SeeAlso: MEM 0000h:031Dh,INT 46
- --------B-M00000400--------------------------
- MEM 0000h:0400h - BIOS DATA AREA
- Size: 256 BYTEs
- Note: see also the MEM 0040h:xxxxh entries
- ----------M00000500--------------------------
- MEM 0000h:0500h - DATA AREA
- Size: 256 BYTEs
- --------D-M00000600--------------------------
- MEM 0000h:0600h - MS-DOS 1.x LOAD ADDRESS
- --------D-M00000700--------------------------
- MEM 0000h:0700h - MS-DOS 2+ LOAD ADDRESS
- --------S-M00400000--------------------------
- MEM 0040h:0000h - BASE I/O ADDRESS OF FIRST SERIAL I/O PORT
- Size: WORD
- Notes: the BIOS sets this word to zero if is unable to find any serial ports
- at the addresses it is programmed to check at boot
- DOS and BIOS serial device numbers may be redefined by re-assigning
- these values of the base I/O addresses stored here
- SeeAlso: MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:0008h
- SeeAlso: MEM 0040h:007Ch,INT 14/AH=00h,PORT 03F8h"SERIAL"
- --------S-M00400002--------------------------
- MEM 0040h:0002h - BASE I/O ADDRESS OF SECOND SERIAL I/O PORT
- Size: WORD
- Note: the BIOS sets this word to zero if is unable to find more than one
- serial port at the addresses it is programmed to check at boot
- SeeAlso: MEM 0040h:0000h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:000Ah
- SeeAlso: MEM 0040h:007Dh,INT 14/AH=00h,PORT 02F8h"SERIAL"
- --------S-M00400004--------------------------
- MEM 0040h:0004h - BASE I/O ADDRESS OF THIRD SERIAL I/O PORT
- Size: WORD
- Note: the BIOS sets this word to zero if is unable to find more than two
- serial ports at the addresses it is programmed to check at boot
- SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0006h,MEM 0040h:000Ch
- SeeAlso: MEM 0040h:007Eh,PORT 03E8h"SERIAL"
- --------S-M00400006--------------------------
- MEM 0040h:0006h - BASE I/O ADDRESS OF FOURTH SERIAL I/O PORT
- Size: WORD
- Note: the BIOS sets this word to zero if is unable to find more than three
- serial ports at the addresses it is programmed to check at boot
- SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0008h
- SeeAlso: MEM 0040h:007Fh,PORT 02E8h"SERIAL"
- --------P-M00400008--------------------------
- MEM 0040h:0008h - BASE I/O ADDRESS OF FIRST PARALLEL I/O PORT
- Size: WORD
- Notes: the BIOS POST routine fills in the parallel port address fields in
- turn as it finds parallel ports. All fields beyond the last one
- for which a valid parallel port was found are set to zero.
- the BIOS INT 17 handler uses these fields to address the parallel
- ports
- SeeAlso: MEM 0040h:0000h,MEM 0040h:000Ah,MEM 0040h:000Ch,INT 17/AH=00h
- SeeAlso: PORT 0278h"PRINTER",PORT 03BCh"PRINTER"
- --------P-M0040000A--------------------------
- MEM 0040h:000Ah - BASE I/O ADDRESS OF SECOND PARALLEL I/O PORT
- Size: WORD
- Note: zero if fewer than two parallel ports installed
- SeeAlso: MEM 0040h:0002h,MEM 0040h:0008h,MEM 0040h:000Ch,PORT 0278h"PRINTER"
- SeeAlso: PORT 0378h"PRINTER",INT 17/AH=00h
- --------P-M0040000C--------------------------
- MEM 0040h:000Ch - BASE I/O ADDRESS OF THIRD PARALLEL I/O PORT
- Size: WORD
- Note: zero if fewer than three parallel ports installed
- SeeAlso: MEM 0040h:0004h,MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh
- SeeAlso: PORT 0378h"PRINTER",INT 17/AH=00h
- --------P-M0040000E--------------------------
- MEM 0040h:000Eh - BASE I/O ADDRESS OF FOURTH PARALLEL I/O PORT (pre-PS/2)
- Size: WORD
- Note: zero if fewer than four parallel ports installed
- SeeAlso: MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh"BIOS DATA"
- SeeAlso: PORT 0378h"PRINTER",INT 17/AH=00h
- --------B-M0040000E--------------------------
- MEM 0040h:000Eh - SEGMENT OF EXTENDED BIOS DATA SEGMENT (PS/2, newer BIOSes)
- Size: WORD
- SeeAlso: MEM 0040h:000Eh"PARALLEL",INT 15/AH=C1h
- Format of Extended BIOS Data Area (IBM):
- Offset Size Description (Table M0001)
- 00h BYTE length of EBDA in kilobytes
- 01h 15 BYTEs reserved
- 17h BYTE number of entries in POST error log (0-5)
- 18h 5 WORDs POST error log (each word is a POST error number)
- 22h DWORD Pointing Device Driver entry point
- 26h BYTE Pointing Device Flags 1 (see #M0002)
- 27h BYTE Pointing Device Flags 2 (see #M0003)
- 28h 8 BYTEs Pointing Device Auxiliary Device Data
- 30h DWORD Vector for INT 07h stored here during 80387 interrupt
- 34h DWORD Vector for INT 01h stored here during INT 07h emulation
- 38h BYTE Scratchpad for 80287/80387 interrupt code
- 39h WORD Timer3: Watchdog timer initial count
- 3Bh BYTE ??? seen non-zero on Model 30
- 3Ch BYTE ???
- 3Dh 16 BYTEs Fixed Disk parameter table for drive 0 (for older machines
- which don't directly support the installed drive)
- 4Dh 16 BYTEs Fixed Disk parameter table for drive 1 (for older machines
- which don't directly support the installed drive)
- 5Dh-67h ???
- 68h BYTE cache control
- bits 7-2 unused (0)
- bit 1: CPU cache failed test
- bit 0: CPU cache disabled
- 69h-6Bh ???
- 6Ch BYTE Fixed disk: (=FFh on ESDI systems)
- bits 7-4: Channel number 00-0Fh
- bits 3-0: DMA arbitration level 00-0Eh
- 6Dh BYTE ???
- 6Eh WORD current typematic setting (see INT 16/AH=03h)
- 70h BYTE number of attached hard drives
- 71h BYTE hard disk 16-bit DMA channel
- 72h BYTE interrupt status for hard disk controller (1Fh on timeout)
- 73h BYTE hard disk operation flags
- bit 7: controller issued operation-complete INT 76h
- bit 6: controller has been reset
- bits 5-0: unused (0)
- 74h DWORD old INT 76h vector
- 78h BYTE hard disk DMA type
- typically 44h for reads and 4Ch for writes
- 79h BYTE status of last hard disk operation
- 7Ah BYTE hard disk timeout counter
- 7Bh-7Dh
- 7Eh 8 WORDs storage for hard disk controller status
- 8Eh-E6h
- E7h BYTE floppy drive type
- bit 7: drive(s) present
- bits 6-2: unused (0)
- bit 1: drive 1 is 5.25" instead of 3.5"
- bit 0: drive 0 is 5.25"
- E8h 4 BYTEs ???
- ECh BYTE hard disk parameters flag
- bit 7: parameters loaded into EBDA
- bits 6-0: unused (0)
- EDh BYTE ???
- EEh BYTE CPU family ID (03h = 386, 04h = 486, etc.) (see INT 15/AH=C9h)
- EFh BYTE CPU stepping (see INT 15/AH=C9h)
- F0h 39 BYTEs ???
- 117h WORD keyboard ID (see INT 16/AH=0Ah)
- (most commonly 41ABh)
- 119h BYTE ???
- 11Ah BYTE non-BIOS INT 18h flag
- bits 7-1: unused (0)
- bit 0: set by BIOS before calling user INT 18h at offset 11Dh
- 11Bh 2 BYTE ???
- 11Dh DWORD user INT 18h vector if BIOS has re-hooked INT 18h
- 121h and up: ??? seen non-zero on Model 60
- 3F0h BYTE Fixed disk buffer (???)
- SeeAlso: #M0004
- Bitfields for Pointing Device Flags 1:
- Bit(s) Description (Table M0002)
- 7 command in progress
- 6 resend byte (FAh) received
- 5 acknowledge byte (FEh) received
- 4 error byte (FCh) received
- 3 unexpected value received
- 2-0 index count for auxiliary device data at 28h
- SeeAlso: #M0001,#M0003
- Bitfields for Pointing Device Flags 2:
- Bit(s) Description (Table M0003)
- 7 device driver far call flag
- 6-3 reserved
- 2-0 package size (number of bytes received) - 1
- SeeAlso: #M0001,#M0002
- Format of Extended BIOS Data Area (AMI v1.00.12.AX1T):
- Offset Size Description (Table M0004)
- 00h BYTE length of XBDA in kilobytes
- 01h 15 BYTEs reserved
- 17h BYTE number of entries in POST error log (0-10)
- 18h 10 BYTEs unused???
- 22h DWORD Pointing Device Driver entry point
- 26h BYTE Pointing Device Flags 1 (see #M0002)
- 27h BYTE Pointing Device Flags 2 (see #M0003)
- 28h 8 BYTEs Pointing Device Auxiliary Device Data
- 30h 13 BYTEs ???
- 3Dh 16 BYTEs Fixed Disk parameter table for drive 0
- 4Dh 16 BYTEs Fixed Disk parameter table for drive 1
- 5Dh 16 BYTEs parameter table for drive 2???
- 6Dh 16 BYTEs parameter table for drive 3???
- 80h 56 BYTEs? IDE drive 0 manufacturer/model string
- B8h 41 BYTEs AMIBIOS copyright string
- E1h unused???
- 102h WORD ??? flags
- bit 15: ???
- 108h WORD offset of IntelIDECfgTbl (IDE configuration settings) within
- segment F000h
- 10Ah 2 BYTEs ???
- 10Ch DWORD pointer to routine to call for language-specific error messages
- 110h WORD offset in segment F000h of end of currently-loaded optional
- BIOS subsystems (language, APM, etc.)
- 112h WORD offset in segment F000h of end of area avaiable for loading
- optional BIOS subsystems
- 1F0h BYTE APM status flags
- 1F1h 8 BYTEs APM power-state data for device classes 01h-06h
- bits 0-3: current power state for devices 00h-03h in class
- bits 7-4: current engaged state for devices 00h-03h in class
- 1F9h 4 BYTEs APM power-state data for device classes 01h-08h (four devices
- per class)
- 1FDh 3 BYTEs ???
- 200h 10 WORDs POST error log
- 214h ???
- SeeAlso: #M0001,#M0005
- Format of Extended BIOS Data Area (PhoenixBIOS 4.0):
- Offset Size Description (Table M0005)
- 00h BYTE length of XBDA in kilobytes
- 01h 33 BYTEs reserved
- 22h DWORD Pointing Device Driver entry point
- 26h BYTE Pointing Device Flags 1 (see #M0002)
- 27h BYTE Pointing Device Flags 2 (see #M0003)
- 28h 8 BYTEs Pointing Device Auxiliary Device Data
- SeeAlso: #M0001,#M0004
- --------B-M00400010--------------------------
- MEM 0040h:0010h - INSTALLED HARDWARE
- Size: WORD
- SeeAlso: INT 11
- Bitfields for BIOS-detected installed hardware:
- Bit(s) Description (Table M0006)
- 15-14 number of parallel devices
- 00 or 11 sometimes used to indicate four LPT ports
- 13 (Convertible, PS/2-55LS) internal modem
- 12 game port installed
- 11-9 number of serial devices
- 000 or 111 sometimes used to indicate eight COM ports
- 8 reserved
- 7-6 number of floppy disk drives (minus 1)
- 5-4 initial video mode
- 00 EGA,VGA,PGA, or other with on-board video BIOS
- 01 40x25 CGA color
- 10 80x25 CGA color
- 11 80x25 mono text
- 3-2 (PC only) RAM on motherboard
- 00 = 16K, 01 = 32K, 10 = 48K, 11 = 64K
- (some XTs) RAM on motherboard
- 00 = 64K, 01 = 128K, 10 = 192K, 11 = 256K
- 2 (pre-PS/2 except PC) reserved
- (PS/2, some XT clones, newer BIOSes) pointing device installed
- 1 math coprocessor installed
- 0 floppy disk drives are installed
- booted from floppy
- --------B-M00400012--------------------------
- MEM 0040h:0012h - Convertible - POST STATUS
- Size: BYTE
- --------B-M00400012--------------------------
- MEM 0040h:0012h U - AT - MANUFACTURING TEST INITIALIZATION FLAGS
- Size: BYTE
- Bitfields for AT manufacturing test initialization flags:
- Bit(s) Description (Table M0007)
- 0 start in manufacturing test mode rather than normal operation
- 1-7 unused
- --------b-M00400012--------------------------
- MEM 0040h:0012h - MCA - MANUFACTURING TEST
- Size: BYTE
- Bitfields for MCA manufacturing test flags :
- Bit(s) Description (Table M0008)
- 7 POST flag, ???
- 6-5 unused
- 4 POST flag, slot 4 has adapter identifier EDAFh
- 3 POST flag, 80x25 color video
- 2 POST flag, ???
- 1 unused
- 0 manufacturing test mode rather than normal operation
- --------b-M00400012--------------------------
- MEM 0040h:0012h - PS/2 Model 25 - POST SYSTEM FLAG
- Size: BYTE
- Bitfields for PS/2 Model 25 POST sytem flag :
- Bit(s) Description (Table M0009)
- 0 optional memory failed; memory remapped
- 1 real-time clock installed
- --------B-M00400013--------------------------
- MEM 0040h:0013h - BASE MEMORY SIZE IN KBYTES
- Size: WORD
- SeeAlso: INT 12
- --------b-M00400015--------------------------
- MEM 0040h:0015h - PC, XT - ADAPTER MEMORY SIZE IN KBYTES
- Size: WORD
- --------b-M00400015--------------------------
- MEM 0040h:0015h U - AT - MANUFACTURING TEST SCRATCH PAD
- Size: BYTE
- --------K-M00400015--------------------------
- MEM 0040h:0015h - Compaq Deskpro 386 - PREVIOUS SCAN CODE
- Size: BYTE
- --------b-M00400016--------------------------
- MEM 0040h:0016h U - AT - MANUFACTURING TEST SCRATCH PAD
- Size: BYTE
- --------b-M00400016--------------------------
- MEM 0040h:0016h U - PS/2 Model 30 - BIOS CONTROL FLAGS
- Size: BYTE
- --------K-M00400016--------------------------
- MEM 0040h:0016h - Compaq Deskpro 386 - KEYCLICK VOLUME
- Size: BYTE
- Range: 00h-7Fh
- --------K-M00400017--------------------------
- MEM 0040h:0017h - KEYBOARD - STATUS FLAGS 1
- Size: BYTE
- SeeAlso: MEM 0040h:0018h,INT 16/AH=02h,MEM 0040h:0096h
- Bitfields for keyboard status flags 1:
- Bit(s) Description (Table M0010)
- 7 INSert active
- 6 Caps Lock active
- 5 Num Lock active
- 4 Scroll Lock active
- 3 either Alt pressed
- 2 either Ctrl pressed
- 1 Left Shift pressed
- 0 Right Shift pressed
- SeeAlso: #M0011,#00587
- --------K-M00400018--------------------------
- MEM 0040h:0018h - KEYBOARD - STATUS FLAGS 2
- Size: BYTE
- SeeAlso: MEM 0040h:0017h,INT 16/AH=12h
- Bitfields for keyboard status flags 2 :
- Bit(s) Description (Table M0011)
- 7 INSert pressed
- 6 Caps Lock pressed
- 5 Num Lock pressed
- 4 Scroll Lock pressed
- 3 Pause state active
- 2 Sys Req pressed
- 1 Left Alt pressed
- 0 Left Ctrl pressed
- SeeAlso: #M0010,#00588
- --------K-M00400019--------------------------
- MEM 0040h:0019h - KEYBOARD - ALT-nnn KEYPAD WORKSPACE
- Size: BYTE
- Desc: holds the current value of an Alt-NNN keypad sequence; when Alt is
- released and this byte is non-zero, the appropriate character is
- placed in the keyboard buffer
- SeeAlso: INT 16/AH=00h,MEM 0040h:001Ah
- --------K-M0040001A--------------------------
- MEM 0040h:001Ah - KEYBOARD - POINTER TO NEXT CHARACTER IN KEYBOARD BUFFER
- Size: WORD
- SeeAlso: MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
- --------K-M0040001C--------------------------
- MEM 0040h:001Ch - KEYBOARD - POINTER TO FIRST FREE SLOT IN KEYBOARD BUFFER
- Size: WORD
- SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0080h,MEM 0040h:0082h
- SeeAlso: INT 16/AH=00h
- --------K-M0040001E--------------------------
- MEM 0040h:001Eh - KEYBOARD - DEFAULT KEYBOARD CIRCULAR BUFFER
- Size: 16 WORDs
- SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h
- SeeAlso: INT 16/AH=00h,INT 16/AH=05h
- --------B-M0040003E--------------------------
- MEM 0040h:003Eh - DISKETTE - RECALIBRATE STATUS
- Size: BYTE
- SeeAlso: MEM 0040h:003Fh,MEM 0040h:0040h,INT 13/AH=00h,INT 13/AH=11h
- Bitfields for diskette recalibrate status:
- Bit(s) Description (Table M0012)
- 7 diskette hardware interrupt occurred
- 6-4 reserved
- 3 recalibrate diskette 3 (PC,XT only)
- 2 recalibrate diskette 2 (PC,XT only)
- 1 recalibrate diskette 1
- 0 recalibrate diskette 0
- --------B-M0040003F--------------------------
- MEM 0040h:003Fh - DISKETTE - MOTOR STATUS
- Size: BYTE
- SeeAlso: MEM 0040h:003Eh,MEM 0040h:0040h
- Bitfields for diskette motor status:
- Bit(s) Description (Table M0013)
- 7 current operation is write or format, rather than read or verify
- 6 reserved (DMA enabled on 82077)
- 5-4 diskette drive number selected (0-3)
- 3 diskette 3 motor on (PC,XT only)
- 2 diskette 2 motor on (PC,XT only)
- 1 diskette 1 motor on
- 0 diskette 0 motor on
- --------B-M00400040--------------------------
- MEM 0040h:0040h - DISKETTE - MOTOR TURN-OFF TIMEOUT COUNT
- Size: BYTE
- Desc: number of clock ticks until diskette motor is turned off
- Note: the typical implementation of the timeout is to have the INT 08
- handler decrement this byte on every clock tick, and force the
- diskette motor off if the result is equal to zero
- SeeAlso: MEM 0040h:003Eh,MEM 0040h:003Fh,MEM 0040h:0041h,INT 08"IRQ0"
- --------B-M00400041--------------------------
- MEM 0040h:0041h - DISKETTE - LAST OPERATION STATUS
- Size: BYTE
- SeeAlso: MEM 0040h:003Eh,MEM 0040h:0042h,INT 13/AH=01h
- Bitfields for diskette last operation status:
- Bit(s) Description (Table M0014)
- 7 drive not ready
- 6 seek error
- 5 general controller failure
- 4-0 error reason
- 00h no error
- 01h invalid request/parameter
- 02h address mark not found
- 03h write-protect error
- 04h sector not found
- 06h diskette change line active
- 08h DMA overrun
- 09h DMA across 64k boundary
- 0Ch media type unknown
- 10h CRC error on read
- Note: the following values for this byte differ somewhat from the
- bitfield definition above:
- 30h drive does not support media sense
- 31h no media in drive
- 32h drive does not support media type
- AAh diskette drive not ready
- --------B-M00400042--------------------------
- MEM 0040h:0042h - DISK - FLOPPY/HARD DRIVE STATUS/COMMAND BYTES
- Size: 7 BYTEs
- SeeAlso: MEM 0040h:0041h
- 42h BYTE XT: command byte to hard disk controller
- AT: write precompensation cylinder number / 4
- 43h BYTE XT: bit 5 = drive number, bits 3-0=head number
- AT: sector count
- 44h BYTE XT: bits 6,7 = high bits of track, bits 5-0 = start sector-1
- AT: starting sector
- 45h BYTE low byte of track number
- 46h BYTE XT: sector count
- AT: high bits of track number
- 47h BYTE XT: controlbyte from HD parameters (step rate,...)
- AT: 101DHHHH, D=drive number, HHHH=head number
- 48h BYTE XT: INT 13h subfunction number
- AT: comand byte to hard disk controller
- --------B-M00400042--------------------------
- MEM 0040h:0042h - DISK CONTROLLER STATUS REGISTER 0
- Size: BYTE
- SeeAlso: MEM 0040h:0043h
- Bitfields for diskette controller status register 0:
- Bit(s) Description (Table M0015)
- 7-6 interrupt code
- 00 normal completion
- 01 abnormal termination during execution
- 10 invalid command
- 11 abnormal termination: ready line on/diskette change
- 5 requested seek complete
- 4 drive fault
- 3 drive not ready
- 2 head state at time of interrupt
- 1-0 selected drive (drives 2&3 on PC,XT only)
- SeeAlso: #M0016
- --------B-M00400043--------------------------
- MEM 0040h:0043h - DISK CONTROLLER STATUS REGISTER 1
- Size: BYTE
- SeeAlso: MEM 0040h:0042h,MEM 0040h:0044h
- Bitfields for diskette controller status register 0:
- Bit(s) Description (Table M0016)
- 7 attempted access beyon last cylinder
- 6 unused
- 5 CRC error on read
- 4 DMA overrun
- 3 unused
- 2 data error
- 1 disk write protected
- 0 missing address mark
- SeeAlso: #M0015,#M0017
- --------B-M00400044--------------------------
- MEM 0040h:0044h - DISK CONTROLLER STATUS REGISTER 2
- Size: BYTE
- SeeAlso: MEM 0040h:0043h
- Bitfields for diskette controller status register 0:
- Bit(s) Description (Table M0017)
- 7 unused
- 6 found deleted data address mark
- 5 CRC error in data field
- 4 wrong cylinder number read
- 3 verify equal
- 2 can't find sector matching verify condition
- 1 bad cylinder
- 0 unable to find address mark
- SeeAlso: #M0016
- --------V-M00400049--------------------------
- MEM 0040h:0049h - VIDEO - CURRENT VIDEO MODE
- Size: BYTE
- SeeAlso: MEM 0040h:004Ah,INT 10/AH=00h
- --------V-M0040004A--------------------------
- MEM 0040h:004Ah - VIDEO - COLUMNS ON SCREEN
- Size: WORD
- SeeAlso: MEM 0040h:0049h,MEM 0040h:004Ch,MEM 0040h:004Eh,INT 10/AH=0Fh
- --------V-M0040004C--------------------------
- MEM 0040h:004Ch - VIDEO - PAGE (REGEN BUFFER) SIZE IN BYTES
- Size: WORD
- SeeAlso: MEM 0040h:004Ah,MEM 0040h:004Eh,MEM 0040h:0050h
- --------V-M0040004E--------------------------
- MEM 0040h:004Eh - VIDEO - CURRENT PAGE START ADDRESS IN REGEN BUFFER
- Size: WORD
- SeeAlso: MEM 0040h:004Ch,MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=05h
- --------V-M00400050--------------------------
- MEM 0040h:0050h - VIDEO - CURSOR POSITIONS
- Size: 8 WORDs
- Desc: contains row and column position for the cursors on each of eight
- video pages
- SeeAlso: MEM 0040h:004Eh,MEM 0040h:0060h,INT 10/AH=02h
- --------V-M00400060--------------------------
- MEM 0040h:0060h - VIDEO - CURSOR TYPE
- Size: WORD (big-endian)
- Desc: contains cursor start scan line and cursor end scan line
- SeeAlso: MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=03h
- --------V-M00400062--------------------------
- MEM 0040h:0062h - VIDEO - CURRENT PAGE NUMBER
- Size: BYTE
- SeeAlso: MEM 0040h:004Eh,MEM 0040h:0063h,INT 10/AH=05h
- --------V-M00400063--------------------------
- MEM 0040h:0063h - VIDEO - CRT CONTROLLER BASE I/O PORT ADDRESS
- Size: WORD
- Note: normally 03B4h for mono and 03D4h for color video boards
- SeeAlso: MEM 0040h:0065h,MEM 0040h:0066h
- --------V-M00400065--------------------------
- MEM 0040h:0065h - VIDEO - CURRENT MODE SELECT REGISTER
- Size: BYTE
- Desc: contains last value written to I/O port 03B8h / 03D8h
- SeeAlso: MEM 0040h:0063h,MEM 0040h:0066h
- Bitfields for current video mode select register:
- Bit(s) Description (Table M0018)
- 7-6 unused
- 5 attribute bit 7 controls blinking instead of background
- 4 mode 6 graphics in monochrome
- 3 video signal enabled
- 2 monochrome
- 1 graphics
- 0 80x25 text
- --------V-M00400066--------------------------
- MEM 0040h:0066h - VIDEO - CURRENT SETTING OF CGA PALETTE REGISTER
- Size: BYTE
- Desc: contains the last value written to I/O port 03D9h
- SeeAlso: MEM 0040h:0063h,MEM 0040h:0065h,INT 10h/AH=0Bh/BH=01h
- Bitfields for CGA palette register:
- Bit(s) Description (Table M0019)
- 7-6 unused
- 5 palette (0/1)
- 4 intense background colors in text mode
- 3 intense border color (40x25) / background color (mode 5)
- 2 red
- 1 green
- 0 blue
- ----------M00400067--------------------------
- MEM 0040h:0067h - PC only - CASSETTE TIME COUNT
- Size: WORD
- SeeAlso: INT 15/AH=00h
- ----------M00400067--------------------------
- MEM 0040h:0067h - RESET RESTART ADDRESS
- Size: DWORD
- Desc: this address stores the address at which to resume execution after a
- CPU reset (or jump to F000h:FFF0h) when certain magic values are
- stored at 0040h:0072h or in CMOS RAM location 0Fh
- SeeAlso: MEM 0040h:0072h,MEM F000h:FFF0h,CMOS 0Fh,INT 19
- ----------M00400069--------------------------
- MEM 0040h:0069h - CASSETTE (PC only) - CASSETTE CRC REGISTER
- Size: WORD
- SeeAlso: MEM 0040h:006Bh"CASSETTE",INT 15/AH=02h
- ----------M00400069--------------------------
- MEM 0040h:0069h - V20-XT-BIOS - KEY REPEAT
- Size: BYTE
- Bitfields for V20-XT-BIOS key repeat flags:
- Bit(s) Description (Table M0020)
- 7 key repeat disabled
- 6 Ctrl-Alt pressed instead of just Alt
- ----------M0040006B--------------------------
- MEM 0040h:006Bh - CASSETTE (PC only) - LAST VALUE READ FROM CASSETTE
- Size: BYTE
- SeeAlso: MEM 0040h:0069h"CASSETTE",INT 15/AH=02h
- ----------M0040006B--------------------------
- MEM 0040h:006Bh - POST LAST UNEXPECTED INTERRUPT (XT and later)
- Size: BYTE
- Desc: this is a bitmask of IRQs which have occurred while the corresponding
- interrupt vector points at the default system BIOS handler
- (bit 0 = IRQ0 to bit 7 = IRQ7; bit 2 = IRQ8-15 on AT and later)
- SeeAlso: INT 0F"IRQ7",INT 70"IRQ8",INT 77"IRQ15"
- ----------M0040006C--------------------------
- MEM 0040h:006Ch - TIMER TICKS SINCE MIDNIGHT
- Size: DWORD
- Desc: updated approximately every 55 milliseconds by the BIOS INT 08 handler
- SeeAlso: MEM 0040h:0070h,INT 08"IRQ0",INT 1A/AH=00h
- ----------M00400070--------------------------
- MEM 0040h:0070h - TIMER OVERFLOW
- Size: BYTE
- Desc: non-zero if timer has counted past midnight since last call to
- INT 1A/AH=00h
- Note: the original IBM BIOS, and thus most other BIOSes, sets this byte to
- 01h at midnight; a few (such as the Eagle PC-2) increment it each
- time midnight is passed. The former behavior results in lost days
- if multiple midnights pass between "get-time" calls while the machine
- is powered up.
- SeeAlso: MEM 0040h:006Ch,INT 1A/AH=00h
- --------K-M00400071--------------------------
- MEM 0040h:0071h - Ctrl-Break FLAG
- Size: BYTE
- Desc: bit 7 is set when Ctrl-Break has been pressed
- SeeAlso: INT 1B
- ----------M00400072--------------------------
- MEM 0040h:0072h - POST RESET FLAG
- Size: WORD
- Desc: specify the action the BIOS should take at the beginning of the
- power-on self-test when the machine is reset
- SeeAlso: INT 19,MEM F000h:FFF0h
- (Table M0021)
- Values for POST reset flag:
- 0000h cold boot
- 0064h Burn-in mode
- 1234h to bypass memory test (warm boot)
- 4321h [PS/2 except Mod 25,30] to preserve memory
- 5678h [Conv] system suspended
- 9ABCh [Conv] manufacturing test mode
- ABCDh [Conv] POST loop mode
- --------B-M00400074--------------------------
- MEM 0040h:0074h - FIXED DISK LAST OPERATION STATUS (except ESDI drives)
- Size: BYTE
- SeeAlso: INT 13/AH=01h,INT 13h/AH=0Ah,MEM 0040h:0041h
- (Table M0022)
- Values for fixed disk last operation status:
- 00h no error
- 01h invalid function request
- 02h address mark not found
- 03h write protect error
- 04h sector not found
- 05h reset failed
- 06h diskette removed
- 07h drive parameter activity failed
- 08h DMA overrun
- 09h DMA data boundary error
- 0Ah bad sector flag detected
- 0Bh bad track detected
- 0Ch requested diskette media type not found
- (PS/2 or extended BIOS only) unsupported track
- 0Dh invalid number of sectors for Format
- 0Eh control data address mark detected
- 0Fh DMA arbitration level out of range
- 10h uncorrectable ECC or CRC error
- 11h ECC corrected data error
- 20h general controller failed
- 40h seek failed
- 80h time out
- AAh drive not ready
- B0h volume not locked in drive (INT 13 extensions)
- B1h volume locked in drive (INT 13 extensions)
- B2h volume not removable (INT 13 extensions)
- B3h volume in use (INT 13 extensions)
- B4h lock count exceeded (INT 13 extensions)
- B5h valid eject request failed (INT 13 extensions)
- BBh undefined error
- CCh write fault on selected drive
- E0h status error/error register is zero
- FFh sense failed
- SeeAlso: #00234
- --------d-M00400074--------------------------
- MEM 0040h:0074h - WD1002-27X SuperBIOS - TOTAL DRIVES, FIRST CONTROLLER ONLY
- Size: BYTE
- SeeAlso: MEM 0040h:0075h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
- --------B-M00400075--------------------------
- MEM 0040h:0075h - FIXED DISK - NUMBER OF FIXED DISK DRIVES
- Size: BYTE
- SeeAlso: MEM 0040h:0076h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
- --------d-M00400075--------------------------
- MEM 0040h:0075h - WD1002-27X SuperBIOS - TOTAL FIXED DRIVES, BOTH CONTROLLERS
- Size: BYTE
- SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
- --------B-M00400076--------------------------
- MEM 0040h:0076h - FIXED DISK - CONTROL BYTE {IBM documented only for XT}
- Size: BYTE
- Desc: loaded from the disk parameter table control byte (offset 8) during
- various hard disk operations
- SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
- --------d-M00400076--------------------------
- MEM 0040h:0076h - XT: hard disk controller's I/O address (Western Digital)
- Size: BYTE
- --------d-M00400076--------------------------
- MEM 0040h:0076h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
- Size: BYTE
- SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0075h"SuperBIOS"
- SeeAlso: MEM 0040h:0077h"SuperBIOS"
- --------B-M00400077--------------------------
- MEM 0040h:0077h - FIXED DISK - I/O port offset {IBM documented only for XT}
- Size: BYTE
- SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0076h"FIXED DISK"
- --------d-M00400077--------------------------
- MEM 0040h:0077h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
- Size: BYTE
- SeeAlso: MEM 0040h:0076h"SuperBIOS"
- --------B-M00400078--------------------------
- MEM 0040h:0078h - PARALLEL DEVICE 1 TIME-OUT COUNTER
- Size: BYTE
- SeeAlso: MEM 0040h:0079h,MEM 0040h:007Ah,INT 17/AH=00h
- --------B-M00400079--------------------------
- MEM 0040h:0079h - PARALLEL DEVICE 2 TIME-OUT COUNTER
- Size: BYTE
- SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,INT 17/AH=00h
- --------B-M0040007A--------------------------
- MEM 0040h:007Ah - PARALLEL DEVICE 3 TIME-OUT COUNTER
- Size: BYTE
- SeeAlso: MEM 0040h:0078h,MEM 0040h:0079h,MEM 0040h:007Bh"PARALLEL"
- --------B-M0040007B--------------------------
- MEM 0040h:007Bh - PARALLEL DEVICE 4 TIME-OUT COUNTER (pre-PS, PS Models 25,30)
- Size: BYTE
- SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,MEM 0040h:007Bh"INT 4Bh"
- --------m-M0040007B--------------------------
- MEM 0040h:007Bh - INT 4Bh FLAGS (PS2 and newer)
- Size: BYTE
- SeeAlso: INT 4B/AX=8102h
- Bitfields for INT 4Bh flags:
- Bit(s) Description (Table M0023)
- 7-6 reserved
- 5 set if Virtual DMA Spec supported [PS] (see INT 4B)
- 4 reserved
- 3 set if INT 4Bh intercepted and must be chained
- 2 reserved
- 1 set if Generic SCSI CBIOS services available on INT 4Bh
- 0 reserved
- --------B-M0040007C--------------------------
- MEM 0040h:007Ch - SERIAL DEVICE 1 TIMEOUT COUNTER
- Size: BYTE
- SeeAlso: MEM 0040h:0000h,MEM 0040h:007Dh,MEM 0040h:007Eh,MEM 0040h:007Fh
- SeeAlso: INT 14/AH=01h
- --------B-M0040007D--------------------------
- MEM 0040h:007Dh - SERIAL DEVICE 2 TIMEOUT COUNTER
- Size: BYTE
- SeeAlso: MEM 0040h:0002h,MEM 0040h:007Ch,MEM 0040h:007Eh,MEM 0040h:007Fh
- SeeAlso: INT 14/AH=01h
- --------B-M0040007E--------------------------
- MEM 0040h:007Eh - SERIAL DEVICE 3 TIMEOUT COUNTER
- Size: BYTE
- SeeAlso: MEM 0040h:0004h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Fh
- SeeAlso: INT 14/AH=01h
- --------B-M0040007F--------------------------
- MEM 0040h:007Fh - SERIAL DEVICE 4 TIMEOUT COUNTER
- Size: BYTE
- SeeAlso: MEM 0040h:0006h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Eh
- SeeAlso: INT 14/AH=01h
- --------K-M00400080--------------------------
- MEM 0040h:0080h - KEYBOARD BUFFER START OFFSET FROM SEGMENT 40h (normally 1Eh)
- Size: WORD
- SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0082h,INT 16/AH=05h
- --------K-M00400082--------------------------
- MEM 0040h:0082h - KEYBOARD BUFFER END+1 OFFSET FROM SEGMENT 40h (normally 3Eh)
- Size: WORD
- Note: XT BIOS dated 11/08/82 ends here
- SeeAlso: MEM 0040h:001Ch,MEM 0040h:003Eh,MEM 0040h:0080h,INT 16/AH=05h
- --------V-M00400084--------------------------
- MEM 0040h:0084h - VIDEO (EGA/MCGA/VGA) - ROWS ON SCREEN MINUS ONE
- Size: BYTE
- SeeAlso: MEM 0040h:0085h,INT 10/AX=1100h
- --------V-M00400085--------------------------
- MEM 0040h:0085h - VIDEO (EGA/MCGA/VGA) - CHARACTER HEIGHT IN SCAN-LINES
- Size: WORD
- SeeAlso: MEM 0040h:0084h
- --------V-M00400087--------------------------
- MEM 0040h:0087h - VIDEO (EGA/VGA) CONTROL: [MCGA: =00h]
- Size: BYTE
- SeeAlso: MEM 0040h:0084h,MEM 0040h:0085h,MEM 0040h:0088h
- Bitfields for EGA/VGA Video control flags:
- Bit(s) Description (Table M0024)
- 7 do not to clear RAM on mode set (see INT 10h, AH=00h)
- 6-5 RAM on adapter = (this field + 1) * 64K
- 4 reserved
- 3 EGA/VGA video system INactive
- 2 wait for display enable
- 1 mono monitor
- 0 alphanumeric cursor emulation DISabled
- When enabled, text mode cursor size (INT 10,AH=01h) settings looking
- like CGA ones are translated to equivalent EGA/VGA ones.
- --------V-M00400088--------------------------
- MEM 0040h:0088h - VIDEO (EGA/VGA) SWITCHES: [MCGA: reserved]
- Size: BYTE
- SeeAlso: MEM 0040h:0087h,MEM 0040h:0089h
- Bitfields for EGA/VGA Video switches:
- Bit(s) Description (Table M0025)
- 7-4 power-on state of feature connector bits 3-0
- 3-0 configuration switches 4-1 (=0 on, =1 off) (see #M0026)
- Note: when bit 4 of 0040h:0089h is 0, VGA emulates 350-line EGA if this
- byte is x3h or x9h, otherwise emulates 200-line CGA in 400-line
- double scan. VGA resets this byte to x9h after the mode set.
- See also note for 0040h:0089h.
- (Table M0026)
- Values for EGA/VGA configuration switches:
- 00h Pri MDA, Sec EGA+old color display 40 x 25
- 01h Pri MDA, Sec EGA+old color display 80 x 25
- 02h Pri MDA, Sec EGA+ECD normal mode (CGA emul)
- 03h Pri MDA, Sec EGA+ECD enhanced mode
- 04h Pri CGA 40 x 25, Sec EGA mono display
- 05h Pri CGA 80 x 25, Sec EGA mono display
- 06h Pri EGA+old color display 40 x 25, Sec MDA
- 07h Pri EGA+old color display 80 x 25, Sec MDA
- 08h Pri EGA+ECD normal mode (CGA emul), Sec MDA
- 09h Pri EGA+ECD enhanced mode, Sec MDA
- 0Ah Pri EGA mono display, Sec CGA 40 x 25
- 0Bh Pri EGA mono display, Sec CGA 80 x 25
- SeeAlso: #M0025
- --------V-M00400089--------------------------
- MEM 0040h:0089h U - VIDEO (MCGA/VGA) - MODE-SET OPTION CONTROL
- Size: BYTE
- SeeAlso: MEM 0040h:0087h,MEM 0040h:0088h
- Bitfields for Video mode-set option control:
- Bit(s) Description (Table M0027)
- 7,4 requested scan lines
- 0 0 350-line mode requested
- 0 1 400-line mode at next mode set
- 1 0 200-line mode requested
- 1 1 reserved
- Note: Apparently VGA BIOS mode set disregards bit 7 and uses
- byte 40h:88h to determine 200/350 selection when bit 4
- is zero. Presumably bit 7 is a convenience for other
- purposes. Bit 7 is reset to zero after the mode set.
- 6 display switching enabled
- 5 reserved
- 4 if set: use 400-line mode at next mode set
- if clear: [VGA] emulate EGA at next mode set
- [MCGA] emulate CGA, digital monitor, 200 lines, 8x8 text
- Note: this bit is set by the video mode set on VGA, unchanged on MCGA
- 3 default palette loading DISabled at mode set
- 2 mono display
- 1 gray scale summing enabled
- 0 [VGA] =1 if VGA active, =0 if not
- [MCGA] reserved, zero
- Note: the Tseng ET4000 BIOS v3.00 uses bits 6-4 of 88h and bits 6-5 of 89h
- to specify graphics-mode refresh rates as follows
- 88h/6 640x480: 1 for 72Hz,0 for 60Hz
- 88h/5+89h/6 800x600: 00 60Hz
- 01 56Hz
- 11 72Hz
- 88h/4+89h/5 1024x768: 00 interlaced
- 01 60Hz
- 10 72Hz???
- 11 70Hz
- --------V-M0040008A--------------------------
- MEM 0040h:008Ah U - VIDEO (MCGA/VGA) - INDEX INTO DISPLAY COMBINATION CODE TBL
- Size: BYTE
- SeeAlso: INT 10/AX=1A00h,#M0039
- --------*-M0040008B--------------------------
- MEM 0040h:008Bh - PC, PCjr, PC/XT 11/8/82, Convertible - RESERVED
- Size: 11 BYTEs
- --------B-M0040008B--------------------------
- MEM 0040h:008Bh - DISKETTE MEDIA CONTROL
- Size: BYTE
- Bitfields for diskette media control:
- Bit(s) Description (Table M0028)
- 7-6 last data rate set by controller
- 00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
- 5-4 last diskette drive step rate selected
- 00=0Ch, 01=0Dh, 10=0Eh, 11=0Ah
- 3-2 {data rate at start of operation}
- 1-0 reserved
- Note: EHD BIOS sets this byte to 01h and never reads it back
- --------B-M0040008C--------------------------
- MEM 0040h:008Ch - FIXED DISK - CONTROLLER STATUS [not XT]
- Size: BYTE
- SeeAlso: MEM 0040h:008Dh,MEM 0040h:008Eh
- --------B-M0040008D--------------------------
- MEM 0040h:008Dh - FIXED DISK - CONTROLLER ERROR STATUS [not XT]
- Size: BYTE
- SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Eh
- --------B-M0040008E--------------------------
- MEM 0040h:008Eh - FIXED DISK - INTERRUPT CONTROL [not XT]
- Size: BYTE
- Note: cleared to 00h at start of disk operation, set to FFh by IRQ14
- handler when hard disk controller completes command
- SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Fh
- --------B-M0040008F--------------------------
- MEM 0040h:008Fh U - DISKETTE CONTROLLER INFORMATION [not XT]
- Size: BYTE
- SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Eh
- Bitfields for diskette controller information:
- Bit(s) Description (Table M0029)
- 7 reserved
- 6 =1 drive 1 determined
- 5 =1 drive 1 is multi-rate, valid if drive determined
- 4 =1 drive 1 supports 80 tracks, always valid
- 3 reserved
- 2 =1 drive 0 determined
- 1 =1 drive 0 is multi-rate, valid if drive determined
- 0 =1 drive 0 supports 80 tracks, always valid
- Note: EHD BIOS sets this byte to 01h and never alters it again
- --------B-M00400090--------------------------
- MEM 0040h:0090h - DISKETTE DRIVE 0 MEDIA STATE
- Size: BYTE
- SeeAlso: MEM 0040h:0091h
- Bitfields for diskette drive media state:
- Bit(s) Description (Table M0030)
- 7-6 data rate
- 00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
- 5 double stepping required (e.g. 360kB in 1.2MB)
- 4 media type established
- 3 drive capable of supporting 4MB media
- 2-0 on exit from BIOS, contains
- 000 trying 360kB in 360kB
- 001 trying 360kB in 1.2MB
- 010 trying 1.2MB in 1.2MB
- 011 360kB in 360kB established
- 100 360kB in 1.2MB established
- 101 1.2MB in 1.2MB established
- 110 reserved
- 111 all other formats/drives
- SeeAlso: #M0031,#M0032
- --------B-M00400091--------------------------
- MEM 0040h:0091h - DISKETTE DRIVE 1 MEDIA STATE
- Size: BYTE
- SeeAlso: MEM 0040h:0090h,#M0030
- --------B-M00400092--------------------------
- MEM 0040h:0092h U - DISKETTE DRIVE 0 MEDIA STATE AT START OF OPERATION
- Size: BYTE
- Note: officially "Drive 2 media state"
- SeeAlso: MEM 0040h:0093h"DRIVE 1"
- Bitfields for diskette drive 0 media state at start of operation:
- Bit(s) Description (Table M0031)
- 7-3 (see #M0030)
- 2 multiple data rate capability determined
- 1 multiple data rate capability
- 0 =1 if drive has 80 tracks, =0 if 40 tracks
- SeeAlso: #M0030,#M0032
- --------d-M00400092--------------------------
- MEM 0040h:0092h - Olivetti Quaderno - HARD DISK POWERDOWN COUNTDOWN CLOCK TICKS
- Size: BYTE
- Note: hard disk is turned off when counter reaches zero
- --------B-M00400093--------------------------
- MEM 0040h:0093h U - DISKETTE DRIVE 1 MEDIA STATE AT START OF OPERATION
- Size: BYTE
- Note: officially "Drive 3 media state"
- SeeAlso: MEM 0040h:0092h"DRIVE 0"
- Bitfields for diskette drive 1 media state at start of operation:
- Bit(s) Description (Table M0032)
- 7-3 (see #M0030)
- 2 multiple data rate capability determined
- 1 multiple data rate capability
- 0 =1 if drive has 80 tracks, =0 if 40 tracks
- --HP 100LX/200LX--
- display control status
- 0 =1 if DISPCTL -K
- 1 =1 if DISPCTL -C
- --------B-M00400094--------------------------
- MEM 0040h:0094h - DISKETTE DRIVE 0 CURRENT TRACK NUMBER
- Size: BYTE
- SeeAlso: MEM 0040h:0095h
- --------B-M00400095--------------------------
- MEM 0040h:0095h - DISKETTE DRIVE 1 CURRENT TRACK NUMBER
- Size: BYTE
- SeeAlso: MEM 0040h:0094h
- --------K-M00400096--------------------------
- MEM 0040h:0096h - KEYBOARD STATUS BYTE 1
- Size: BYTE
- SeeAlso: MEM 0040h:0097h,INT 16/AH=11h
- Bitfields for keyboard status byte 1:
- Bit(s) Description (Table M0033)
- 7 =1 read-ID in progress
- 6 =1 last code read was first of two ID codes
- 5 =1 force Num Lock if read-ID and enhanced keyboard
- 4 =1 enhanced keyboard installed
- 3 =1 Right Alt pressed
- 2 =1 Right Ctrl pressed
- 1 =1 last code read was E0h
- 0 =1 last code read was E1h
- SeeAlso: #M0034,#M0010
- --------K-M00400097--------------------------
- MEM 0040h:0097h - KEYBOARD STATUS BYTE 2
- Size: BYTE
- SeeAlso: MEM 0040h:0096h,INT 16/AH=11h
- Bitfields for keyboard status byte 2:
- Bit(s) Description (Table M0034)
- 7 =1 keyboard transmit error flag
- 6 =1 LED update in progress
- 5 =1 RESEND received from keyboard
- 4 =1 ACK received from keyboard
- 3 reserved, must be zero
- 2 Caps Lock LED
- 1 Num Lock LED
- 0 Scroll Lock LED
- SeeAlso: #M0033,#M0010
- --------B-M00400098--------------------------
- MEM 0040h:0098h - TIMER2 (AT, PS exc Mod 30) - PTR TO USER WAIT-COMPLETE FLAG
- Size: DWORD
- Note: (see INT 15/AX=8300h)
- SeeAlso: MEM 0040h:009Ch,INT 15/AH=83h,INT 15/AH=86h
- --------B-M0040009C--------------------------
- MEM 0040h:009Ch - TIMER2 (AT, PS exc Mod 30) - USER WAIT COUNT IN MICROSECONDS
- Size: DWORD
- SeeAlso: MEM 0040h:0098h,MEM 0040h:00A0h,INT 15/AH=83h,INT 15/AH=86h
- --------V-M0040009F--------------------------
- MEM 0040h:009Fh - HP 100LX/200LX - VIDEO ZOOM MODE
- Size: BYTE
- (Table M0035)
- Values for HP 100LX/200LX video zoom mode:
- 02h 80x25 mono
- 03h 80x25 color
- 80h 64x18 mono
- 81h 64x18 color
- 82h 40x25 mono
- 83h 40x25 color
- 84h 40x16 mono
- 85h 40x16 color
- SeeAlso: INT 10/AH=D0h
- --------B-M004000A0--------------------------
- MEM 0040h:00A0h - TIMER2 (AT, PS exc Mod 30) - WAIT ACTIVE FLAG
- Size: BYTE
- SeeAlso: MEM 0040h:009Ch,INT 15/AH=83h,INT 15/AH=86h
- Bitfields for Timer2 wait active flag:
- Bit(s) Description (Table M0036)
- 7 wait time elapsed
- 6-1 reserved
- 0 INT 15/AH=86h has occurred
- --------N-M004000A1--------------------------
- MEM 0040h:00A1h - BIT 5 SET IF LAN SUPPORT PROGRAM INTERRUPT ARBITRATOR PRESENT
- Size: BYTE
- Note: DEVICE=DXMA0MOD.SYS
- --------N-M004000A2--------------------------
- MEM 0040h:00A2h - RESERVED FOR NETWORK ADAPTERS
- Size: 6 BYTEs
- --------d-M004000A4--------------------------
- MEM 0040h:00A4h - PS/2 Mod 30 - SAVED FIXED DISK INTERRUPT VECTOR
- Size: DWORD
- --------V-M004000A8--------------------------
- MEM 0040h:00A8h - VIDEO (EGA/MCGA/VGA) - POINTER TO VIDEO SAVE POINTER TABLE
- Size: DWORD
- SeeAlso: INT 10/AH=1Ch
- Format of Video Save Pointer Table [EGA/VGA/MCGA only]:
- Offset Size Description (Table M0037)
- 00h DWORD ptr to Video Parameter Table
- 04h DWORD ptr to Parameter Dynamic Save Area, else 0 [EGA/VGA only]
- 08h DWORD ptr to Alphanumeric Character Set Override, else 0
- 0Ch DWORD ptr to Graphics Character Set Override, else 0
- 10h DWORD [VGA only] ptr to Secondary Save Pointer Table, must be valid
- 14h DWORD reserved, zero
- 18h DWORD reserved, zero
- Note: table initially in ROM, copy to RAM to alter, then update 40h:A8h.
-
- Format of Secondary Video Save Pointer Table [VGA only]:
- Offset Size Description (Table M0038)
- 00h WORD Length of this table in bytes, including this word (1Ah)
- 02h DWORD ptr to Display Combination Code Table, must be valid
- 06h DWORD ptr to second Alphanumeric Character Set Override, else 0
- 0Ah DWORD ptr to User Palette Profile Table, else 0
- 0Eh DWORD reserved, zero
- 12h DWORD reserved, zero
- 16h DWORD reserved, zero
- Note: table initially in ROM, copy to RAM to alter, then alter Save Ptr Table.
-
- Format of Display Combination Code Table [VGA only]:
- Offset Size Description (Table M0039)
- 00h BYTE Number of entries in the DCC table at offset 04h
- 01h BYTE Version number
- 02h BYTE Maximum display type code that can appear in DCC table
- 03h BYTE reserved
- 04h 2N BYTEs Each pair of bytes gives a valid display combination, one
- display type per byte (see #M0040)
- (Table M0040)
- Values for Display Combination display type:
- 00h no display
- 01h MDA with mono display
- 02h CGA with color display
- 03h reserved
- 04h EGA with color display
- 05h EGA with mono display
- 06h Professional Graphics Controller
- 07h VGA with mono display
- 08h VGA with color display
- 09h reserved
- 0Ah MCGA with digital color display
- 0Bh MCGA with analog mono display
- 0Ch MCGA with analog color display
- FFh unrecognised video system
- SeeAlso: #M0039
-
- Format of Video Parameter Table [EGA, VGA only]:
- Offset Size Description (Table M0041)
- 00h-03h Modes 00h-03h in 200-line CGA emulation mode
- 04h-0Eh Modes 04h-0Eh
- 0Fh-10h Modes 0Fh-10h when only 64kB RAM on adapter
- 11h-12h Modes 0Fh-10h when >64kB RAM on adapter
- 13h-16h Modes 00h-03h in 350-line mode
- 17h VGA Modes 00h or 01h in 400-line mode
- 18h VGA Modes 02h or 03h in 400-line mode
- 19h VGA Mode 07h in 400-line mode
- 1Ah-1Ch VGA Modes 11h-13h
- Note: An array of 23 [EGA] or 29 [VGA] elements, each element being 64
- bytes long. Elements appear in the above order.
-
- Format of Video Parameter Table element [EGA, VGA only]:
- Offset Size Description (Table M0042)
- 00h BYTE Columns on screen (see 40h:4Ah)
- 01h BYTE Rows on screen minus one (see 40h:84h)
- 02h BYTE Height of character in scan lines (see 40h:85h)
- 03h WORD Size of video buffer (see 40h:4Ch)
- 05h 4 BYTEs Values for Sequencer Registers 1-4
- 09h BYTE Value for Miscellaneous Output Register
- 0Ah 25 BYTEs Values for CRTC Registers 00h-18h
- 23h 20 BYTEs Values for Attribute Controller Registers 00h-13h
- 37h 9 BYTEs Values for Graphics Controller Registers 00h-08h
-
- Format of Video Parameter Table [MCGA only] {guesswork from inspection}:
- Offset Size Description (Table M0043)
- - 16 triplet BYTEs of R,G,B DAC info for 16 colors;
- - An array of 11 elements, each element being 32 bytes long.
- Elements appear in the order:
- Modes 00h,01h in 200-line mode for digital displays
- Modes 00h,01h in 400-line mode for analog displays
- Modes 02h,03h in 200-line mode for digital displays
- Modes 02h,03h in 400-line mode for analog displays
- Modes 04h,05h in 200-line mode for digital displays
- Modes 04h,05h in 400-line mode for analog displays
- Mode 06h in 200-line mode for digital displays
- Mode 06h in 400-line mode for analog displays
- Mode 11h
- Mode 13h in 200-line mode for digital displays
- Mode 13h in 400-line mode for analog displays
-
- Format of Video Parameter Table element [MCGA only]:
- Offset Size Description (Table M0044)
- 00h BYTE Columns on screen (see 40h:4Ah)
- 01h BYTE Rows on screen minus one (see 40h:84h)
- 02h BYTE Height of character in scan lines (see 40h:85h)
- 03h WORD Size of video buffer (see 40h:4Ch)
- 05h WORD ??? always zero
- 07h 21 BYTEs Video data registers 00h-14h to port 3D5h indexed by 3D4h
- 1Ch BYTE PEL Mask to port 3C6h
- 1Dh BYTE CGA Mode Control to port 3D8h
- 1Eh BYTE CGA Border Control to port 3D9h
- 1Fh BYTE Extended Mode Control to port 3DDh
-
- Format of Video Parameter Dynamic Save Area [EGA, VGA only]:
- Offset Size Description (Table M0045)
- 00h 16 BYTEs Last data written to Attribute Contr. Palette Registers 0-15
- 10h BYTE Last data written to Attribute Controller Overscan Register
- 11h-FFh Reserved
- Note: Need for table was that EGA registers were write-only.
- Note: If default values (from the Video Parameter Table) are
- over-ridden at a mode set by the VGA User Palette Profile
- Table, then the Dynamic Save Area is updated with the
- default values, not the User Profile ones.
-
- Format of Alphanumeric Character Set Override:
- Offset Size Description (Table M0046)
- 00h BYTE Length in bytes of each character in font table
- 01h BYTE Character generator RAM bank to load, 0=normal
- 02h WORD Number of characters in font table, normally 256
- 04h WORD Code of first character in font table, normally 0
- 06h DWORD ptr to font table
- 0Ah BYTE Displayable rows (FFh=use maximum calculated value)
- 0Bh BYTEs Array of mode values to which this font is to pertain
- BYTE FFh end of array
-
- Format of Second Alphanumeric Character Set Override:
- Offset Size Description (Table M0047)
- 00h BYTE Length in bytes of each character in font table
- 01h BYTE Character generator RAM bank to load, normally non-zero
- 02h BYTE reserved
- 03h DWORD ptr to font table
- 07h BYTEs Array of mode values to which this font is to pertain
- BYTE FFh end of array
- Note: Authorities differ, some say same as first override above, but IBM
- says it is as shown above
-
- Format of Graphics Character Set Override:
- Offset Size Description (Table M0048)
- 00h BYTE Number of displayable character rows
- 01h WORD Length in bytes of each character in font table
- 03h DWORD ptr to font table
- 07h BYTEs Array of mode values to which this font is to pertain
- BYTE FFh end of array
-
- Format of User Palette Profile Table [VGA only]:
- Offset Size Description (Table M0049)
- 00h BYTE Underlining: 01h=enable in all alphanumeric modes
- 00h=enable in monochrome alphanumeric modes only
- FFh=disable in all alphanumeric modes
- 01h BYTE reserved
- 02h WORD reserved
- 04h WORD Number (0-17) of Attribute Controller registers in table
- 06h WORD Index (0-16) of first Attribute Controller register in table
- 08h DWORD ptr to table of Attribute Controller registers to override
- Table is an array of BYTEs.
- 0Ch WORD Number (0-256) of video DAC Color registers in table
- 0Eh WORD Index (0-255) of first video DAC Color register in table
- 10h DWORD ptr to table of video DAC Color registers to override
- Table is ??? triplets ??? of BYTEs???
- 14h BYTEs array of mode values to which this profile is to pertain
- BYTE FFh end of array
- --------*-M004000AC--------------------------
- MEM 0040h:00ACh - RESERVED
- Size: 4 BYTEs
- --------b-M004000B0--------------------------
- MEM 0040h:00B0h - Phoenix 386 BIOS 1.10 10a - LOOP COUNT FOR HARD DISK TIMEOUT
- Size: BYTE
- Desc: number of times a tight software delay loop should be executed to
- generate the sub-55ms delays used internally by the BIOS
- Note: also used for delaying when beeping due to full keyboard buffer
- SeeAlso: MEM 0040h:00ECh"Dell",INT 15/AH=BCh
- --------d-M004000B0--------------------------
- MEM 0040h:00B0h - PTR TO 3363 OPTICAL DISK DRIVER OR BIOS ENTRY POINT
- Size: DWORD
- Notes: When 3363 BIOS present, the ASCIZ signature "OPTIC "occurs 3 bytes
- beyond this entry point
- When 3363 BIOS and 3363 File System Driver present, the ASCIZ signature
- "FILE SYSTEM DRIVER" occurs 3 bytes beyond this entry point
- --------b-M004000B0--------------------------
- MEM 0040h:00B0h - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 48 HARD DISK
- Size: 16 BYTEs
- SeeAlso: INT 41,INT 46,MEM 0040h:00C0h"HARD DISK"
- --------*-M004000B4--------------------------
- MEM 0040h:00B4h - RESERVED
- Size: WORD
- --------b-M004000B5--------------------------
- MEM 0040h:00B5h - Dell 4xxDE
- Size: BYTE
- Bitfields for Dell 4xxDE flags:
- Bit(s) Description (Table M0050)
- 2 ??? (related to disk drives)
- 5 page tables set to allow Weitek addressing in real mode
- 6 Weitek math coprocessor present
- ----------M004000B6--------------------------
- MEM 0040h:00B6h - RESERVED FOR POST???
- Size: 3 BYTEs
- ----------M004000B9--------------------------
- MEM 0040h:00B9h - ???
- Size: 7 BYTEs
- --------b-M004000BC--------------------------
- MEM 0040h:00BCh - 1993 Phoenix 486 BIOS 1.03 PCI - CPU TYPE/MASK REVISION
- Size: WORD
- Desc: the high byte contains the CPU type, the low byte the mask revision
- (stepping level), as reported to the BIOS in DX by the CPU at startup
- SeeAlso: INT 15/AH=C9h
- --------b-M004000C0--------------------------
- MEM 0040h:00C0h - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 49 HARD DISK
- Size: 16 BYTEs
- SeeAlso: INT 41,INT 46,MEM 0040h:00B0h"HARD DISK"
- --------*-M004000C0--------------------------
- MEM 0040h:00C0h - RESERVED
- Size: 14 BYTEs
- --------K-M004000C2--------------------------
- MEM 0040h:00C2h - AMI BIOS 1.00.12.AX1T - KEYBOARD TYPE
- Size: WORD
- Desc: this word contains an indication of the type of keyboard
- (controller???) attached to the system
- Note: AMI's APM code checks for 4147h vs. other value (5047h seen on Intel
- "Plato" motherboard)
- SeeAlso: #00586,INT 16/AH=F2h
- --------b-M004000CE--------------------------
- MEM 0040h:00CEh - COUNT OF DAYS SINCE LAST BOOT
- Size: WORD
- --------*-M004000D0--------------------------
- MEM 0040h:00D0h - RESERVED
- Size: 32 BYTEs
- --------S-M004000D0--------------------------
- MEM 0040h:00D0h - Digiboard MV/4 - LENGTH OF DATA TABLE
- Size: BYTE
- --------d-M004000D0--------------------------
- MEM 0040h:00D0h EHD floppy - INSTALLATION FLAGS
- Size: BYTE
- Bitfields for EHD floppy installation flags:
- Bit(s) Description (Table M0051)
- 4 installation completed
- 3-0 drives 0-3
- --------b-M004000D0--------------------------
- MEM 0040h:00D0h - AMI BIOS v1.00.12.AX1T - EPP - SCRATCH SPACE
- Size: WORD
- Desc: this word holds the value of BX during an EPP BIOS call
- SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
- SeeAlso: MEM 0040h:00DDh"AMI"
- --------S-M004000D1--------------------------
- MEM 0040h:00D1h - Digiboard MV/4 - PRODUCT ID
- Size: BYTE
- --------S-M004000D2--------------------------
- MEM 0040h:00D2h - Digiboard MV/4 - BASE ADDRESS FOUND
- Size: WORD
- --------b-M004000D2--------------------------
- MEM 0040h:00D2h - AMI BIOS v1.00.12.AX1T - EPP BASE I/O PORT
- Size: WORD
- --------S-M004000D4--------------------------
- MEM 0040h:00D4h - Digiboard MV/4 - PORTS
- Size: BYTE
- --------S-M004000D5--------------------------
- MEM 0040h:00D5h - Digiboard MV/4 - IRQ
- Size: BYTE
- --------d-M004000D5--------------------------
- MEM 0040h:00D5h - EHD floppy - NUMBER OF FLOPPY DISK CONTROLLERS IN SYSTEM
- Size: BYTE
- --------b-M004000D5--------------------------
- MEM 0040h:00D5h - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 CAPABILITIES
- Size: BYTE
- SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
- SeeAlso: MEM 0040h:00DCh"AMI"
- --------d-M004000D6--------------------------
- MEM 0040h:00D6h - EHD floppy - AND-BITS TO ADJUST PORT ADDRESS
- Size: BYTE
- Note: this byte contains FFh if controller at 03Fxh and 7Fh if at 037xh; the
- value is ANDed with DL prior to using IN A?,DX or OUT DX,A?
- instructions
- --------K-M004000D6--------------------------
- MEM 0040h:00D6h - Digiboard MV/4 - NUMBER OF KEYBOARDS FOUND
- Size: WORD
- SeeAlso: MEM 0040h:00D8h"Digiboard"
- --------b-M004000D6--------------------------
- MEM 0040h:00D6h - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 IRQ
- Size: BYTE
- SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D8h"AMI"
- SeeAlso: MEM 0040h:00DDh"AMI"
- --------d-M004000D7--------------------------
- MEM 0040h:00D7h - EHD floppy - DRIVE 0 DISKETTE MEDIA STATE
- Size: BYTE
- Note: the value in this byte is copied into 0040h:0090h (diskette 0 status)
- SeeAlso: MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
- Bitfields for EHD diskette media state:
- Bit(s) Description (Table M0052)
- 7-6 data rate: 00=500kbps,01=300kbps,10=250k,11=1M/S
- 5 double stepping required (e.g. 360kB in 1.2MB)
- 4 media type established
- 3 reserved
- 2-0 on exit from BIOS, contains:
- 000 trying 360kB in 360kB
- 001 trying 360kB in 1.2MB
- 010 trying 1.2MB in 1.2MB
- 011 360kB in 360kB established
- 100 360kB in 1.2MB established
- 101 1.2MB in 1.2MB established
- 110 reserved (2M8?)
- 111 all other formats/drives
- --------b-M004000D7--------------------------
- MEM 0040h:00D7h - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 CAPABILITIES
- Size: BYTE
- SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
- SeeAlso: MEM 0040h:00DDh"AMI"
- --------M-M004000D8--------------------------
- MEM 0040h:00D8h - Digiboard MV/4 - NUMBER OF MICE FOUND
- Size: WORD
- SeeAlso: MEM 0040h:00D6h"Digiboard",MEM 0040h:00DAh"Digiboard"
- --------d-M004000D8--------------------------
- MEM 0040h:00D8h - EHD floppy - DRIVE 1 DISKETTE MEDIA STATE
- Size: BYTE
- SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
- --------b-M004000D8--------------------------
- MEM 0040h:00D8h - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 IRQ
- Size: BYTE
- SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
- SeeAlso: MEM 0040h:00DDh"AMI"
- --------b-M004000D8--------------------------
- MEM 0040h:00D8h U - Phoenix BIOS 4.0 Rel 6.0 - POWER MANAGEMENT FLAGS
- Size: BYTE
- SeeAlso: INT 15/AX=5300h
- --------d-M004000D9--------------------------
- MEM 0040h:00D9h - EHD floppy - DRIVE 2 DISKETTE MEDIA STATE
- Size: BYTE
- SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00DAh"EHD"
- --------S-M004000DA--------------------------
- MEM 0040h:00DAh - Digiboard MV/4 - CURRENT PORT (used by VGA initializatn only)
- Size: BYTE
- SeeAlso: MEM 0040h:00D8h"Digiboard"
- --------d-M004000DA--------------------------
- MEM 0040h:00DAh - EHD floppy - DRIVE 3 DISKETTE MEDIA STATE
- Size: BYTE
- SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD"
- --------S-M004000DB--------------------------
- MEM 0040h:00DBh - Digiboard MV/4 - MASTER 8259 MASK (used by VGA init only)
- Size: BYTE
- SeeAlso: MEM 0040h:00DCh"Digiboard"
- --------d-M004000DB--------------------------
- MEM 0040h:00DBh - EHD floppy - DRIVE 0 NEEDS RECALIBARATION
- Size: BYTE
- SeeAlso: MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
- --------S-M004000DC--------------------------
- MEM 0040h:00DCh - Digiboard MV/4 - SLAVE 8259 MASK (used by VGA init only)
- Size: BYTE
- SeeAlso: MEM 0040h:00DBh"Digiboard"
- --------b-M004000DC--------------------------
- MEM 0040h:00DCh - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 MODE
- Size: BYTE
- SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00DDh"AMI"
- SeeAlso: INT 17/AX=0200h/BX=5050h
- (Table M0053)
- Values for AMI Enhanced Parallel Port mode:
- 01h compatibility mode
- 02h bi-directional mode
- 04h EPP mode
- SeeAlso: #00637
- --------d-M004000DC--------------------------
- MEM 0040h:00DCh - EHD floppy - DRIVE 1 NEEDS RECALIBARATION
- Size: BYTE
- SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
- --------b-M004000DC--------------------------
- MEM 0040h:00DCh - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 MODE
- Size: BYTE
- SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI",#M0053
- --------d-M004000DD--------------------------
- MEM 0040h:00DDh - EHD floppy - DRIVE 2 NEEDS RECALIBARATION
- Size: BYTE
- SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DEh"EHD"
- --------d-M004000DE--------------------------
- MEM 0040h:00DEh - EHD floppy - DRIVE 3 NEEDS RECALIBARATION
- Size: BYTE
- SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD"
- --------b-M004000DF--------------------------
- MEM 0040h:00DFh - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT LOCK STATE
- Size: BYTE
- Note: set to 01h if last request was to lock a port, 00h if last request was
- to unlock a port
- SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI"
- --------b-M004000E0--------------------------
- MEM 0040h:00E0h - AMI BIOS v1.00.12.AX1T - EPP - REAL-TIME DEVICE COUNT
- Size: BYTE
- Desc: contains the number of advertised real-time devices as set by EPP
- function 12h (see #00632)
- SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DFh"AMI"
- --------b-M004000E0--------------------------
- MEM 0040h:00E0h - Phoenix 386 BIOS - DRIVE PARAMETER TABLE FOR FIRST HARD DISK
- Size: 16 BYTEs
- Note: this area is used to store the driver parameter table for the first
- hard disk if it has been setup as the user-configurable "type 47"
- --------d-M004000E3--------------------------
- MEM 0040h:00E3h - EHD floppy - DRIVE 0 DISKETTE TYPE (from jumpers)
- Size: BYTE
- SeeAlso: MEM 0040h:00E4h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
- (Table M0054)
- Values for EHD floppy diskette type:
- 01h undefined by diskette change (360K)
- 02h 1.2M
- 03h 720K
- 04h 1.44M
- 05h 2.88M
- --------d-M004000E4--------------------------
- MEM 0040h:00E4h - EHD floppy - DRIVE 1 DISKETTE TYPE (from jumpers)
- Size: BYTE
- SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
- --------d-M004000E5--------------------------
- MEM 0040h:00E5h - EHD floppy - DRIVE 2 DISKETTE TYPE (from jumpers)
- Size: BYTE
- SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E6h"EHD"
- --------d-M004000E6--------------------------
- MEM 0040h:00E6h - EHD floppy - DRIVE 3 DISKETTE TYPE (from jumpers)
- Size: BYTE
- SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E5h"EHD"
- --------d-M004000EA--------------------------
- MEM 0040h:00EAh - Omti controller - SEGMENT OF EXTENDED BIOS DATA AREA???
- Size: WORD
- Note: drive parameter tables stored in specified segment
- --------b-M004000EC--------------------------
- MEM 0040h:00ECh - Dell 4xxDE BIOS A11 - LOOP COUNT FOR DELAYS
- Size: WORD
- ----------M004000F0--------------------------
- MEM 0040h:00F0h - INTRA-APPLICATION COMMUNICATION AREA
- Size: 16 BYTEs
- --------B-M00500000--------------------------
- MEM 0050h:0000h - PRINT-SCREEN STATUS
- Size: BYTE
- --------J-M00500001--------------------------
- MEM 0050h:0001h - NEC PC-9800 series - SCREEN MODE
- Size: BYTE
- Note: if bit 3 set, the screen is in high-resolution mode (start memory at
- segment E000h instead of A000h)
- --------D-M00500004--------------------------
- MEM 0050h:0004h - MS-DOS - LOGICAL DRIVE FOR SINGLE-FLOPPY SYSTEM (A: / B:)
- Size: BYTE
- --------A-M0050000E--------------------------
- MEM 0050h:000Eh - STATE OF BREAK CHECKING AT START OF BASICA.COM EXECUTION
- Size: BYTE
- --------A-M0050000F--------------------------
- MEM 0050h:000Fh - BASICA VERSION FLAG
- Size: BYTE
- Note: this byte contains the value 02h if BASICA v2.10 is running
- --------A-M00500010--------------------------
- MEM 0050h:0010h - POINTER TO BASIC DATA SEGMENT
- Size: WORD
- --------A-M00500012--------------------------
- MEM 0050h:0012h - INT 08 VECTOR AT START OF BASICA.COM EXECUTION
- Size: DWORD
- --------A-M00500016--------------------------
- MEM 0050h:0016h - INT 1B VECTOR AT START OF BASICA.COM EXECUTION
- Size: DWORD
- --------A-M0050001A--------------------------
- MEM 0050h:001Ah - INT 24 VECTOR AT START OF BASICA.COM EXECUTION
- Size: DWORD
- --------D-M00600000--------------------------
- MEM 0060h:0000h - DOS 2+ SCRATCH SPACE
- Size: 256 BYTEs
- Note: used during DOS 2+ boot process
- --------D-M00600000--------------------------
- MEM 0060h:0000h - DOS 1.x IO.SYS LOAD ADDRESS
- --------D-M00700000--------------------------
- MEM 0070h:0000h - DOS 2+ IO.SYS LOAD ADDRESS
- --------D-M00700100--------------------------
- MEM 0070h:0100h - DOS 5+ - ORIGINAL INTERRUPT VECTORS 10h,13h,15h,19h,1Bh
- Size: 25 BYTEs
- Note: each value is stored as a BYTE for the interrupt number followed by
- a DWORD for the vector
- these values are restored on INT 19 by recent versions of
- DR/Novell/PC/MS-DOS (MS-DOS 3.x used this area to support HIMEM.SYS)
- not supported by OS/2 MDOS
- SeeAlso: MEM 0080h:0000h,INT 2F/AH=13
- --------H-M00800000--------------------------
- MEM 0080h:0000h - 80286 CPU - LOADALL WORKSPACE
- Size: 102 BYTEs
- Desc: on the 80286 (unlike 80386), the state buffer from which the LOADALL
- instruction loads all internal registers is hardwired to physical
- address 000800h
- Note: several versions 3.x of MS-DOS leave an empty space at offset 100h in
- IO.SYS (which is loaded at 0070h:0000h) so that HIMEM.SYS can use
- LOADALL on 80286 machines without having to save/restore the area
- of memory that LOADALL uses
- SeeAlso: MEM 0070h:0100h
- --------m-m80C00000--------------------------
- MEM 80C00000h - Compaq Deskpro 386 system memory board register
- Size: BYTE
- 80C00000 R Diagnostics register (see #M0055)
- 80C00000 W RAM relocation register (see #M0056)
- Bitfields for Compaq Deskpro 386 diagnostics register:
- Bit(s) Description (Table M0055)
- 7 =0 memory expansion board is installed
- 6 =0 second 1 MB of system memory board is installed
- 5-4 base memory
- 00 set to 640 KB
- 01 invalid
- 10 set to 512 KB
- 11 set to 256 KB
- 3 parity correct in byte 3
- 2 parity correct in byte 2
- 1 parity correct in byte 1
- 0 parity correct in byte 0 (in 32-bit double word)
- SeeAlso: #M0056
- Bitfields for Compaq Deskpro 386 RAM relocation register:
- Bit(s) Description (Table M0056)
- 7-2 reserved, always write 1's.
- 1 =0 Write-protect 128-Kbyte RAM at FE0000.
- =1 Do not write-protect RAM at FE0000.
- 0 =0 Relocate 128-Kbyte block at FE0000 to address 0E0000
- =1 128-Kbyte RAM is addressed only at FE0000.
- SeeAlso: #M0055
- --------V-MA0000000--------------------------
- MEM A000h:0000h - EGA+ GRAPHICS BUFFER
- Size: 65536 BYTEs
- --------V-MA0000000--------------------------
- MEM A000h:0000h - S3 - MEMORY-MAPPED GRAPHICS PROCESSOR REGISTERS
- Size: 65536 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- --------V-MA0001234--------------------------
- MEM A000h:1234h - S3 - MEMORY-MAPPED ???
- Size: WORD???
- Note: the Win95 driver for the Stealth64 tests various bits in this word,
- sometimes looping until a particular bit is set or cleared
- --------V-MA0008000--------------------------
- MEM A000h:8000h - S3 - MEMORY-MAPPED PCI CONFIGURATION REGISTERS
- Size: 256 BYTEs
- Notes: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- additional setup may be required to access these registers via memory
- the DWORDs at 8080h,8088h,808Ch,8090h,8094h,8098h,809Ch are used by
- STLTH64.DRV
- the DWORDs at 18080h,18088h,18090h,18094h,18098h,1809Ch are written
- by S3_32.DLL
- --------V-MA0008100--------------------------
- MEM A000h:8100h - S3 - MEMORY-MAPPED PACKED REGISTERS
- Size: 80 BYTEs
- Access: Write-Only
- Desc: these registers pack two 16-bit I/O registers into a single DWORD
- for faster writes
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- SeeAlso: MEM A000h:8180h
- Format of S3 Trio32/Trio64 packed memory-mapped registers:
- Offset Size Description (Table M0057)
- 8100h DWORD drawing control: row (low word), column (high word)
- "CUR_X" and "CUR_Y" (see PORT 82E8h,PORT 86E8h)
- 8104h DWORD (Trio64) drawing control: row 2 (low word), column 2 (high word)
- 8108h DWORD drawing control: destination Y and axial step constant (low
- word), destination X and axial step constant (high word)
- (see PORT 8AE8h,PORT 8EE8h)
- 810Ch DWORD (Trio64 only) destination Y 2 and axial step constant 2 (low
- word), destination X 2 and axial step constant 2 (high word)
- (see PORT 8AEAh,PORT 8EEAh)
- 8110h WORD error term (see PORT 92E8h)
- 8112h WORD (Trio64) error term 2 (see PORT 92EAh)
- 8114h DWORD unused??? (would correspond to PORT 96E8h)
- 8118h WORD drawing control: command register (see PORT 9AE8h)
- 811Ah WORD (Trio64) command register 2 (see PORT 9AEAh)
- 811Ch DWORD short stroke (see PORT 9EE8h)
- 8120h DWORD background color (see PORT A2E8h)
- 8124h DWORD foreground color (see PORT A6E8h)
- 8128h DWORD write mask (see PORT AAE8h)
- 812Ch DWORD read mask (see PORT AEE8h)
- 8130h DWORD color compare (see PORT B2E8h)
- 8134h DWORD background mix (low word) and foreground mix (high word)
- (see PORT B6E8h,PORT BAE8h)
- 8138h DWORD top scissors (low word) and left scissors (high word)
- (see PORT BEE8h,#P1047)
- 813Ch DWORD bottom scissors (low word) and right scissors (high word)
- (see PORT BEE8h,#P1047)
- 8140h DWORD data manipulation control (low word) and miscellaneous 2 (high
- word) (see PORT BEE8h,#P1047)
- 8144h DWORD miscellaneous (low word) and read register select (high word)
- (see PORT BEE8h,#P1047)
- 8148h DWORD minor axis pixel count (low word) and major axis pixel count
- (high word) (see PORT BEE8h,#P1047,PORT 96E8h)
- 814Ch WORD (Trio64) major axis pixel count 2 (see PORT 96EAh)
- 8150h DWORD pixel data transfer (see PORT E2E8h,PORT E2EAh)
- 8154h 4 DWORDs ???
- 8164h DWORD ??? (written by STLTH64.DRV for Win95)
- 8168h DWORD (Trio64 only) Pattern Y (low word), Pattern X (high word)
- (see PORT EAE8h,PORT EAEAh)
- 816Ch DWORD ??? (written by STLTH64.DRV for Win95)
- Note: setting 8138h to 0 and 813Ch to 12345678h may be a magic value to unlock
- some S3 features
- SeeAlso: #M0073,#M0070
- --------V-MA0008180--------------------------
- MEM A000h:8180h - S3 - STREAMS PROCESSOR
- Size: 128 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- SeeAlso: MEM A000h:8100h,MEM A000h:FF00h
- Format of S3 Streams Processor memory-mapped registers:
- Offset Size Description (Table M0058)
- 8180h DWORD primary stream control (see #M0059)
- 8184h DWORD chroma key control (see #M0063)
- 8188h DWORD unused??? (high word seems to echo 8184h, low word 8180h)
- 818Ch DWORD unused??? (high word seems to echo 8184h, low word 8180h)
- 8190h DWORD secondary stream control (see #M0061)
- 8194h DWORD chroma key upper bound (bits 23-0) (see also #M0063)
- 8198h DWORD secondary stream stretch (see #M0062)
- 819Ch DWORD ??? (set by S3_32.DLL)
- bits 30-16: ???
- bits 14-0: ???
- 81A0h DWORD blend control (see #M0064)
- 81A4h 3 DWORDs unused??? (reads as FFFFFFFFh)
- 81B0h 4 DWORDs ??? (appear to be read-only)
- 81C0h DWORD primary frame buffer address 0 (bits 21-0, multiple of 8)
- 81C4h DWORD primary frame buffer address 1 (bits 21-0, multiple of 8)
- 81C8h DWORD primary stream stride (bits 11-0 only)
- 81CCh DWORD double buffer/LPB control (see #M0065)
- 81D0h DWORD secondary frame buffer address 0 (bits 21-0, multiple of 8)
- 81D4h DWORD secondary frame buffer address 1 (bits 21-0, multiple of 8)
- 81D8h DWORD secondary stream stride (bits 11-0 only)
- 81DCh DWORD opaque overlay control (see #M0066)
- 81E0h DWORD K1 -- vertical stretch (lines in) (bits 10-0 only)
- set to one less than # lines in
- 81E4h DWORD K2 -- vertical stretch (stretch factor) (bits 10-0 only)
- set to -(#lines_in - #lines_out)
- 81E8h DWORD DDA vertical accumulator (bits 11-0 only) (lines out)
- set to (#lines_out) - 1
- 81ECh DWORD streams FIFO and RAS control (see #M0067)
- 81F0h DWORD primary start coordinate (see #M0068)
- 81F4h DWORD primary window size (see #M0069)
- 81F8h DWORD secondary start coordinate (see #M0068)
- 81FCh DWORD secondary window size (see #M0069)
- Note: changes to registers 81E0h-81E8h do not take effect until the next
- VSYNC
- SeeAlso: #M0073,#M0057,#M0070
- Bitfields for S3 Streams Processor primary stream control:
- Bit(s) Description (Table M0059)
- 31 reserved
- 30-28 filter characteristics
- 000 unchanged primary stream
- 001 2X stretch by replicating pixels
- 010 2X stretch by interpolating horizontally (replicating vertically)
- else reserved
- 27 reserved
- 26-24 color mode (see #M0060)
- 23-0 officially reserved, but writing nonzero values can hang display
- Notes: the primary stream is the output from the display RAM
- bits 26-24 correspond to CR67 color mode field (see #P0688)
- SeeAlso: #M0058,#M0061
- (Table M0060)
- Values for S3 Streams Processor color mode:
- 000b eight bits per pixel
- 001b YCrCb 4:2:2 unsigned, range 10h-F0h (secondary stream only)
- 010b YUV 4:2:2, range 00h-FFh (secondary stream only)
- 011b keyed high-color (1-5-5-5)
- 100b YUV 2:1:1 two's complement (secondary stream only)
- 101b high-color (5-6-5)
- 110b reserved
- 111b true-color (32bpp, high byte ignored)
- SeeAlso: #M0059,#M0061
- Bitfields for S3 Streams Processor secondary stream control:
- Bit(s) Description (Table M0061)
- 31 reserved
- 30-28 filter characteristics
- 000 unchanged secondary stream
- 001 linear 0-2-4-2-0 for 1x-2x stretch
- 010 bi-linear for 2x-4x stretch
- 011 linear 1-2-2-2-1 for 4x+ stretch
- else reserved
- 28 enable smoothing between horizontally adjacent bits (trial-and-error)
- 27 reserved
- 26-24 color mode (see #M0060,#M0074)
- 23-12 reserved
- 11-0 initial value of DDA horizontal accumulator
- set to 2*(inwidth-1)-(outwidth-1)
- Notes: the secondary stream is typically live video, but can be pointed at
- any part of video memory
- changes to this register do not take effect until the next VSYNC
- SeeAlso: #M0058,#M0059,#M0062
- Bitfields for S3 Streams Processor stretch/filter constants:
- Bit(s) Description (Table M0062)
- 31-27 reserved
- 26-16 K2 horizontal scaling factor (input width - output width)
- 15-11 reserved
- 10-0 K1 horizontal scaling factor (input width - 1)
- Note: changes to this register do not take effect until the next VSYNC
- SeeAlso: #M0061
- Bitfields for S3 Streams Processor chroma-key control:
- Bit(s) Description (Table M0063)
- 31-29 reserved
- 28 key control
- =1 normal color-key or chroma-key
- =0 (keyed RGB 1-5-5-5 mode only) extract key from high bit of input
- stream; if key bit is clear, show pixel from other stream
- 27 reserved
- 26-24 color comparison precision
- 000 compare bit 7 of R,G, and B values only
- 001 compare bits 7-6
- ...
- 111 compare bits 7-0
- 23-0 chroma-key color value
- 23-16 = red or Y
- 15-8 = green or U/Cb
- 7-0 = blue or V/Cr
- Note: if the keyed stream is YUV or YCrCb, then this register contains the
- lower bound and 8194h contains the upper bound of the chromakey
- value
- SeeAlso: #M0058
- Bitfields for S3 Streams Processor blend control:
- Bit(s) Description (Table M0064)
- 31-27 reserved (unused)
- 26-24 blend type
- 000 show secondary stream (video) overlaying primary stream
- 001 show primary stream overlaying secondary stream
- 010 blend pri/sec. streams (dissolve, secondary intensity = full-prim.)
- 011 blend pri/sec. streams
- 100 reserved (blank display)
- 101 show secondary stream only where chroma-key color present
- 110 show secondary stream (video) unconditionally
- 111 reserved (blank display)
- 23-14 reserved
- 13 ??? (officially reserved, but set by S3_32.DLL)
- 12-8 primary stream intensity (00h-1Ch, must be multiple of 4)
- 4-0 secondary stream intensity (00h-1Ch, must be multiple of 4)
- (ignored for blend type 010)
- Notes: for blend type 011, the primary and secondary stream intensities should
- not total more than 20h to avoid wraparounds which appear as
- incorrect colors; for blend type 010, the secondary stream intensity
- is automatically computed as 20h - bits12-8
- changes to this register do not take effect until the next VSYNC
- SeeAlso: #M0058
- Bitfields for S3 Streams Processor double-buffer/LPB control:
- Bit(s) Description (Table M0065)
- 31-7 reserved (unused; all but bit 7 appear to be read-only, as well)
- 6 LPB frame buffer auto-toggle
- if set, End-of-Frame toggles bit 4
- 5 delay loading LPB input buffer select until next End-of-Frame
- 4 LPB input buffer select (see #M0073)
- 0 use LPB frame buffer address 0 (FF0Ch) for incoming video data
- 1 use LPB frame buffer address 1 (FF10h)
- 3 reserved
- 2-1 secondary stream buffer select
- 00 use frame buffer address 0 (81D0h)
- 01 use frame buffer address 1 (81D4h)
- 1x use frame buffer 0/1 (81D0h/81D4h) selected by bit 4 for secondary
- stream and selected LPB frame buffer for LPB input
- 0 primary stream buffer select
- =0 use frame buffer address 0 (81C0h)
- =1 use frame buffer address 1 (81C4h)
- SeeAlso: #M0058,#M0073
- Bitfields for S3 Streams Processor opaque overlay control:
- Bit(s) Description (Table M0066)
- 31 enable opaque overlay control
- 30 select top stream (0 = secondary on top, 1 = primary)
- 29 reserved
- 28-19 pixel resume fetch
- number of quadwords from background's left edge to position at which
- to start fetching pixels again
- 18-13 reserved
- 12-3 pixel stop fetch
- number of quadwords from background's left edge to position at which
- to stop fetching pixels
- 2-0 reserved
- SeeAlso: #M0058
- Bitfields for S3 Streams Processor streams FIFO and RAS control register:
- Bit(s) Description (Table M0067)
- 31-22 reserved (0)
- 21 skip 0.5 MCLK delay of PD[63:0] output (default = 0)
- 20 skip memory arbitration for ROM cycles (default = 0)
- 19 do not tristate PD[63:16] during ROM cycles (default = 0)
- (set by Win95 driver when using ISA bus)
- 18 EDO wait state control (LPB memory cycles only)
- =0 two-cycle accesses
- =1 one-cycle EDO accesses
- 17 reserved
- 16 RAS# pre-charge control
- =0 use CR68(bit3) setting (2.5/3.5 MCLKs)
- =1 1.5 MCLKs
- 15 RAS# low control
- =0 use CR68(bit2) setting (3.5/4.5 MCLKs)
- =1 2.5 MCLKs
- 14-10 primary stream FIFO threshold
- number of filled quadword slots at which to request refilling
- 9-5 secondary stream FIFO threshold
- number of filled quadword slots at which to request refilling
- 4-0 FIFO allocation, in quadword slots
- 00000 primary stream = 24, secondary = 0
- 01000 primary stream = 16, secondary = 8
- 01100 primary stream = 12, secondary = 12
- 10000 primary stream = 8, secondary = 16
- 11000 primary stream = 0, secondary = 24
- else reserved
- SeeAlso: #M0058
- Bitfields for S3 Streams Processor start coordinate:
- Bit(s) Description (Table M0068)
- 31-27 reserved (read-only)
- 26-16 X coordinate (column) of upper left corner, plus 1
- 15-11 reserved (read-only)
- 10-0 Y coordinate (row) of upper left corner, plus 1
- SeeAlso: #M0058,#M0069
- Bitfields for S3 Streams Processor window size:
- Bit(s) Description (Table M0069)
- 31-27 reserved (read-only)
- 26-16 width in pixels - 1
- 15-11 reserved (read-only)
- 10-0 height in scan lines
- SeeAlso: #M0058,#M0068
- --------V-MA0008200--------------------------
- MEM A000h:8200h - S3 ViRGE - MEMORY-MAPPED MEMORY-PORT CONTROL REGISTERS
- Size: 40 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- Format of S3 memory-maped port control registers:
- Offset Size Description (Table M0070)
- 8200h DWORD FIFO control
- 8204h DWORD MIU control
- 8208h DWORD streams timeout
- 820Ch DWORD miscellaneous timeout
- 8210h 4 DWORDs ???
- 8220h DWORD DMA read base address
- 8224h DWORD DMA read stride width
- SeeAlso: #M0057
- --------V-MA00082E8--------------------------
- MEM A000h:82E8h - S3 - MEMORY-MAPPED CURRENT Y POSITION REGISTER
- Size: WORD
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- SeeAlso: PORT 82E8h
- --------V-MA00083B0--------------------------
- MEM A000h:83B0h - S3 - MEMORY-MAPPED VGA REGISTERS
- Size: 48 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- SeeAlso: PORT 03B0h,PORT 03C0h,PORT 03D0h
- --------V-MA0008504--------------------------
- MEM A000h:8504h - S3 ViRGE - MEMORY-MAPPED SUBSYSTEM REGISTERS
- Size: 12 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- Format of S3 memory-mapped subsystem registers:
- Offset Size Description (Table M0071)
- 8504h DWORD subsystem Control/Status Register (see PORT 42E8h,PORT 9AE8h)
- on read:
- bit 13 indicates whether graphics processor is busy
- bits 12-8 indicate number of free FIFO slots
- 8508h DWORD ???
- 850Ch DWORD advanced function control (see PORT 4AE8h)
- SeeAlso: #M0073,#M0057,#M0072
- --------V-MA0008580--------------------------
- MEM A000h:8580h - S3 - MEMORY-MAPPED DMA REGISTERS
- Size: 32 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- Format of S3 memory-mapped DMA registers:
- Offset Size Description (Table M0072)
- 8580h DWORD start address in system memory
- 8584h DWORD transfer length
- 8588h DWORD transfer enable
- 858Ch DWORD ???
- 8590h DWORD DMA base address
- 8594h DWORD DMA write pointer
- 8598h DWORD DMA read pointer
- 859Ch DWORD DMA enable
- SeeAlso: #M0057,#M0073
- --------V-MA00086E8--------------------------
- MEM A000h:86E8h - S3 - MEMORY-MAPPED ENHANCED REGISTERS
- Size: ? BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- --------V-MA000A000--------------------------
- MEM A000h:A000h - S3 - MEMORY-MAPPED COLOR PALETTE REGISTERS
- Size: 448 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- --------V-MA000A4D4--------------------------
- MEM A000h:A4D4h - S3 - MEMORY-MAPPED BLT-FILL REGISTERS
- Size: 60 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- A4D4h DWORD ???
- A4D8h DWORD ???
- A4DCh DWORD ??? (set to 07FFh by S3_32.DLL)
- A4E0h DWORD ??? (set to 07FFh by S3_32.DLL)
- A4E4h DWORD ???
- A4E8h DWORD ???
- A4ECh DWORD ???
- A4F0h
- A4F4h DWORD ???
- A4F8h
- A4FCh DWORD ???
- A500h DWORD ???
- A504h DWORD ???
- A508h DWORD ???
- A50Ch DWORD ???
- --------V-MA000A8D4--------------------------
- MEM A000h:A8D4h - S3 - MEMORY-MAPPED LINE REGISTERS
- Size: 172 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- --------V-MA000ACD4--------------------------
- MEM A000h:ACD4h - S3 - MEMORY-MAPPED POLYGON-FILL REGISTERS
- Size: 172 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- --------V-MA000B0D4--------------------------
- MEM A000h:B0D4h - S3 - MEMORY-MAPPED 3D-LINE REGISTERS
- Size: 172 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- --------V-MA000B4D4--------------------------
- MEM A000h:B4D4h - S3 - MEMORY-MAPPED 3D-TRIANGLE REGISTERS
- Size: 172 BYTEs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- --------V-MA000FF00--------------------------
- MEM A000h:FF00h - S3 - MEM-MAPPED "SCENIC HIGHWAY" (Local Periph. Bus) ACCESS
- Size: 64 DWORDs
- Note: the S3 graphics processor registers can be mapped at either
- linear 000A0000h or at offset 16M from the start of the linear
- frame buffer
- SeeAlso: MEM A000h:8180h
- Format of S3 Local Peripheral Bus memory-mapped registers:
- Offset Size Description (Table M0073)
- FF00h DWORD LPB mode (see #M0074)
- FF04h DWORD LPB FIFO status (see #M0075)
- FF08h DWORD interrupt status (see #M0076)
- FF0Ch DWORD frame buffer address 0 (bits 21-0, multiple of 8)
- offset within frame buffer at which to store incoming data from
- LPB when Streams Processor double-buffer control (see #M0065)
- bit 4 clear
- FF10h DWORD frame buffer address 1 (bits 21-0, multiple of 8)
- offset within frame buffer at which to store incoming data from
- LPB when Streams Processor double-buffer control (see #M0065)
- bit 4 is set
- FF14h DWORD "direct address" = index for FF18h (see #M0077)
- FF18h DWORD "direct data" (see #M0077)
- Note: the direct address/direct data registers presumably rely
- on the attached device inserting data into the digital video
- stream, as on a Diamond Stealth64 Video, the "direct data"
- appears to reflect the video stream data (i.e. it varies, but
- with a pattern that depends on the video image, and stops
- varying when video is frozen)
- FF1Ch DWORD general purpose I/O (see #M0078)
- FF20h DWORD LPB serial port -- I2C/DDC access (see #M0079)
- FF24h DWORD input window size (high word = rows, low word = columns)
- FF28h DWORD data offsets
- (video alignment; high word = rows ; low word = columns)
- FF2Ch DWORD horizontal decimation
- bits 0-31 set indicate that bytes 0-31 (mod 32)
- of each line should be dropped (in Video16 mode, each bit
- controls a WORD); decimation is aligned with the start of
- line as specified by the data offsets at FF28h
- FF30h DWORD vertical decimation
- bits 0-31 set indicate that lines 0-31 (mod 32) should be
- dropped, i.e. setting this DWORD to 55555555h will drop
- every other line; decimation starts with VSYNC regardless
- of the data offsets specified at FF28h
- FF34h DWORD line stride (number of bytes between starts of successive lines
- of video data)
- must be multiple of 4 -- lowest two bits forced to 0
- FF38h 3 DWORDs unused??? (seem to echo FF34h)
- FF40h 8 DWORDs LPB output FIFO - data transfer
- writing to ANY of these DWORDs transfers a value to the FIFO;
- this organization allows use of a REP MOVSD instruction to
- fill the FIFO
- on ISA bus, there must be a delay between successive writes
- SeeAlso: #M0058
- Bitfields for S3 Local Peripheral Bus LPB Mode register:
- Bit(s) Description (Table M0074)
- 0 enable LPB
- 3-1 LPB operational mode
- 000 Scenic/MX2
- 001 Video 16 (PCI only)
- 010 Video 8 In
- used by Philips SAA7110/SAA7111 and Diamond's DTV1100
- 011 Video 8 In/Out
- used by CL-480
- 100 Pass-Through
- send FIFO data written by CPU through the decimation logic
- else reserved (Trio64V+)
- 4 LBP Reset
- pulse this bit before changing operational mode
- 5 skip every other frame
- =0 write all received frames to memory
- 6 disable byte-swapping
- =0 incoming 8-bit video is in order U, Y0, V, Y1 (CL-480)
- =1 incoming 8-bit video is in order Y0, U, Y1, V (SAA711x)
- (refer to bit 26 below)
- 8-7 officially reserved
- 7 ??? messes up video image when set
- 9 LPB vertical sync input polarity
- =0 active low
- =1 active high
- 10 LPB horizontal sync input polarity
- =0 active low
- =1 active high
- 11 (write-only) CPU VSYNC
- writing a 1 makes Trio act as if LPB VSYNC had been received
- 12 (write-only) CPU HSYNC
- writing a 1 makes Trio act as if LPB HSYNC had been received
- 13 (write-only) load base address
- writing a 1 causes an immediate load of the currently active base
- address
- 15-14 reserved
- 17-16 maximum compressed data burst, LPB to Scenic/MX2
- 00 one DWORD
- 01 two DWORDs
- 10 three DWORDs
- 11 burst until empty (must ensure that MX2's 8-entry FIFO is not
- overrun)
- 20-18 reserved
- 22-21 video FIFO threshold
- number of filled slots at which to request that Trio's memory manager
- begin to empty the FIFO (00 = one slot, 01 = two slots, 10 = four
- slots, 11 = six slots)
- 23 reserved (read-only)
- 24 LPB clock source
- =0 driven by SCLK (Pin194) (for Trio64-compatibility mode)
- =1 driven by LCLK (Pin148) (default)
- 25 don't add line stride after first HSYNC within VSYNC
- must be set if first HSYNC occurs before VSYNC goes active
- 26 invert LCLK (only has effect if bit 24 set)
- 27 reserved
- 28 (not yet on Trio64V+) current odd/even video field status
- 29 (not yet on Trio64V+) field inversion - when set, the LPB's FIELD pin
- state is inverted before being reported in bit 28
- 30 reserved
- 31 (read-only) current state of CFLEVEL input (Pin182) in Video In/Out
- mode (refer to bits 3-1)
- SeeAlso: #M0073
- Bitfields for S3 Local Peripheral Bus LPB FIFO status:
- Bit(s) Description (Table M0075)
- 31 video FIFO 1 is almost empty (has exactly one full slot)
- 30 video FIFO 1 is empty
- 29 video FIFO 1 is full
- 28-23 reserved
- 22 video FIFO 0 is almost empty (has exactly one full slot)
- 21 video FIFO 0 is empty
- 20 video FIFO 0 is full
- 19-14 reserved
- 13 output FIFO is almost empty (has exactly one full slot)
- 12 output FIFO is empty
- 11 output FIFO is full
- 10-4 reserved
- 3-0 number of free four-byte slots in FIFO (there are 8 slots)
- SeeAlso: #M0073,#M0076
- Bitfields for S3 Local Peripheral Bus interrupt status:
- Bit(s) Description (Table M0076)
- 31-25 reserved
- 24 drive serial port clock line low on receipt of start condition
- (causes I2C wait states until interrupt handler responds to start cond)
- 23-20 reserved
- 19 enable interrupt on I2C start condition detection
- 18 enable interrupt on end of frame (VSYNC received)
- 17 enable interrupt on end of line (HSYNC received)
- 16 enable interrupt on LPB output FIFO empty
- 15-4 reserved
- 3 serial port detected I2C start condition
- 2 VSYNC received (end of frame)
- 1 HSYNC received (end of line)
- 0 LPB output FIFO emptied
- Note: bits 3-0 are write-clear: writing a 1 to a bit resets it
- SeeAlso: #M0073,#P0721
- (Table M0077)
- Values for S3 Local Peripheral Bus "direct address" index:
- 0000h CP3 installation (FF18h reads 00C3h if installed)
- 0001h ?
- 0002h ?
- 0003h ?
- bit 7: ???
- bits 6-0: ???
- 0004h ?
- 0005h ?
- bits 7-0: ???
- 0020h ? (set to 107D4h, 1xxD4h by CP3.DLL))
- 0028h ?
- 0034h ? (set to 10000h by CP3.DLL)
- 0414h ? (set by CP3.DLL)
- 0500h ?
- 0504h ?
- 0508h ?
- 050Ch ?
- 0510h ?
- SeeAlso: #M0073
- Bitfields for S3 Local Peripheral Bus General-Purpose I/O:
- Bit(s) Description (Table M0078)
- 3-0 values to drive onto LPB GP output lines whenever CR5C is written
- 7-4 values of GP input lines (read-only), latched whenever CR5C is read
- 31-8 unused (read-only 0)
- SeeAlso: #M0073
- Bitfields for S3 Local Peripheral Bus serial-port register:
- Bit(s) Description (Table M0079)
- 0 I2C clock line [SCL] (write)
- =1 tri-state SCL, allowing other devices to pull it low
- 1 I2C data line [SDA] (write)
- =1 tri-state SDA, allowing other devices to pull it low
- 2 I2C clock line (read)
- this bit reflect the actual state of the SCL line
- 3 I2C data line (read)
- this bit reflect the actual state of the SDA line
- 4 enable I2C interface
- =0 disable bits 0/1, forcing both SCL and SDA to be tri-stated
- 15-5 reserved (unused)
- 20-16 mirrors of bits 4-0
- (these bits are on the data bus' byte lane 2 to make them accessible
- via I/O port 00E2h)
- Notes: see file I2C.LST for details of the I2C device registers accessible
- through this interface (VPX3220A for Stealth64 Video 2001TV)
- when the feature connector is disabled on the Stealth64 Video, these
- bits are connected to the monitor's DDC data and clock lines
- the official documentation erroneously lists the mirrors in bits 12-8
- instead of 20-16
- SeeAlso: #M0073,PORT 00E2h,#P0677
- --------V-MB0000000--------------------------
- MEM B000h:0000h - MDA TEXT BUFFER
- Size: 4096 BYTEs
- --------V-MB0000000--------------------------
- MEM B000h:0000h - HGC+ RAMFont-MODE TEXT BUFFER
- Size: 16384 BYTEs
- Note: in RAMFont Mode 1, the memory is filled with the usual
- character/attribute pairs; in RAMFont Mode 2, four bits of each
- 'attribute' byte is used to provide 12 bits for specifying the
- character
- --------V-MB0000000--------------------------
- MEM B000h:0000h - HGC GRAPHICS BUFFER (PAGE 0)
- Size: 32768 BYTEs
- --------V-MB4000000--------------------------
- MEM B400h:0000h - HGC+ RAMFont BUFFER
- Size: 4096 BYTEs
- Notes: apparently write-only
- RAMFont Mode 1: 256 characters (8 bits each for char and attribute)
- RAMFont Mode 2: 3072 characters (12 bits for char, 4 bits for attrib)
- each character definition is 8 pixels wide (with 9th-column duplication
- if appropriate) by 8-16 pixels high
- --------V-MB8000000--------------------------
- MEM B800h:0000h - CGA TEXT/GRAPHICS BUFFER
- Size: 16384 BYTEs
- --------V-MB8000000--------------------------
- MEM B800h:0000h - EGA/VGA+ TEXT BUFFER
- Size: 32768 BYTEs
- --------V-MB8000000--------------------------
- MEM B800h:0000h - HGC GRAPHICS BUFFER (PAGE 1)
- Size: 32768 BYTEs
- --------V-MBFF00000--------------------------
- MEM BFF0h:0000h - ET4000/W32 ACL accelerator
- Size: 169 BYTES
- Format of ET4000/W32 memory-mapped registers:
- Offset Size Description (Table M0080)
- 00h DWORD MMU Registers: memory base pointer register 0 (see #M0081)
- 04h DWORD MMU Registers: memory base pointer register 1 (see #M0081)
- 08h DWORD MMU Registers: memory base pointer register 2 (see #M0081)
- 0Ch 7 BYTEs ???
- 13h BYTE MMU Registers: MMU control register (see #M0082)
- 14h 28 BYTEs ???
- 30h BYTE Non-Queued Registers: suspend/terminate
- 31h BYTE Non-Queued Registers: operation state (see #M0083) (write-only)
- 32h BYTE Non-Queued Registers: sync enable
- 33h BYTE ???
- 34h BYTE Non-Queued Registers: interrupt mask
- 35h BYTE Non-Queued Registers: interrupt status
- 36h BYTE Non-Queued Registers: ACL status (read-only)
- bit 1: read status (RDST) 1=ACL active, queue not empty
- bit 0: write status (WRST) 1=queue full
- 37h 73 BYTEs ???
- 80h DWORD Queued Registers: pattern address (see #M0084)
- 84h DWORD Queued Registers: source address (see #M0084)
- 88h WORD Queued Registers: pattern Y offset (see #M0085)
- 8Ah WORD Queued Registers: source Y offset (see #M0085)
- 8Ch WORD Queued Registers: destination y offset (see #M0085)
- 8Eh BYTE Queued Registers: virtual bus size
- 8Fh BYTE Queued Registers: X/Y direction (see #M0086)
- 90h BYTE Queued Registers: pattern wrap (see #M0087)
- 91h BYTE ???
- 92h BYTE Queued Registers: source wrap (see #M0087)
- 93h BYTE ???
- 94h WORD Queued Registers: X position
- 96h WORD Queued Registers: Y position
- 98h WORD Queued Registers: X count (see #M0088)
- 9Ah WORD Queued Registers: Y count (see #M0088)
- 9Ch BYTE Queued Registers: routine control (see #M0089)
- 9Dh BYTE Queued Registers: reload control
- 9Eh BYTE Queued Registers: background ROP for mixing
- 9Fh BYTE Queued Registers: foreground ROP for mixing
- A0h DWORD Queued Registers: destination address
- A4h DWORD Queued Registers: internal pattern address
- A8h DWORD Queued Registers: internal source address
- Bitfields for ET4000/W32 memory base pointer register:
- Bit(s) Description (Table M0081)
- 31-22 reserved
- 21-0 memory base pointer
- SeeAlso: #M0080
- Bitfields for ET4000/W32 MMU control register:
- Bit(s) Description (Table M0082)
- 7 reserved
- 6-4 linear address control (LAC)
- bit 6: MMU aperture 2
- bit 5: MMU aperture 1
- bit 4: MMU aperture 0
- 3 reserved
- t2-0 aperture type (APT)
- bit 2: MMU aperture 2
- bit 1: MMU aperture 1
- bit 0: MMU aperture 0
- SeeAlso: #M0080
- Bitfields for ET4000/W32 operation state register:
- Bit(s) Description (Table M0083)
- 7-4 reserved
- 3 restart operation after ACL-interruption
- 2-1 reserved
- 0 restore status before ACL-interruption
- SeeAlso: #M0080
- Bitfields for ET4000/W32 memory address register:
- Bit(s) Description (Table M0084)
- 31-22 reserved
- 21-0 memory base pointer
- SeeAlso: #M0080
- Bitfields for ET4000/W32 offset register:
- Bit(s) Description (Table M0085)
- 15-12 reserved
- 11-0 Y offset
- SeeAlso: #M0080
- Bitfields for ET4000/W32 X/Y direction register:
- Bit(s) Description (Table M0086)
- 7-2 reserved
- 1 X direction
- 0 Y direction
- SeeAlso: #M0080
- Bitfields for ET4000/W32 wrap register:
- Bit(s) Description (Table M0087)
- 7 reserved
- 6-4 pattern Y wrap
- 000 = 1 line
- 001 = 2 lines
- 010 = 4 lines
- 011 = 8 lines
- 100 = reserved
- 101 = reserved
- 110 = reserved
- 111 = no wrap
- 3 reserved
- 2-0 pattern X wrap
- 000 = reserved
- 001 = reserved
- 010 = 4 byte
- 011 = 8 byte
- 100 = 16 byte
- 101 = 32 byte
- 110 = 64 byte
- 111 = no wrap
- SeeAlso: #M0080
- Bitfields for ET4000/W32 count register:
- Bit(s) Description (Table M0088)
- 15-12 reserved
- 11-0 pixel count
- SeeAlso: #M0080
- Bitfields for ET4000/W32 routine control register:
- Bit(s) Description (Table M0089)
- 7-6 reserved
- 5-4 routing of CPU address (ADRO)
- 00 don't use CPU address
- 01 CPU address is destination
- 10 reserved
- 11 reserved
- 3 reserved
- 2-0 routing of CPU data (DARQ)
- 000 don't use CPU data
- 001 CPU data is source data
- 010 CPU data is mixed data
- 011 reserved
- 100 CPU data is x-count
- 101 CPU data is y-count
- 10x reserved
- SeeAlso: #M0080
- --------V-MC0000000--------------------------
- MEM C000h:0000h - VIDEO BIOS (EGA and newer)
- Size: varies (usually 16K-24K for EGA, 24K-32K for VGA)
- --------h-mC0000000--------------------------
- MEM C0000000h - Weitek "Abacus" math coprocessor
- Size: 4096 BYTEs
- --------B-MC8000000--------------------------
- MEM C800h:0000h - HARD DISK BIOS
- Size: varies (usually 8K or 16K)
- --------V-MC8001C00--------------------------
- MEM C800h:1C00h - IBM XGA, XGA/A - MEMORY-MAPPED REGISTERS
- Range: any 8K boundary within segments C000h to DFFFh
- Notes: The XGA memory mapped registers can be assigned to the last 1K block in
- in each 8K block in the range of C0000h-DFFFFh; the base offset of
- the 128 memory mapped lcoation for a particular XGA instance is
- Segment:(1C00h+instance*80h) for each XGA installed in a system
- (default instance is 6). The instance number may be read from the
- XGA's Programmable Option Select registers
- The XGA/A (PS/2 adapter) uses the 7KB area below the memory-mapped
- register area for ROM data; the XGA (PS/2 onboard) has included
- this area in it's video BIOS ROM.
- Most of the memory mapped registers are from the graphics coprocessor,
- while the I/O-registers are for the display controller.
- --------V-MC0007FF8--------------------------
- MEM C000h:7FF8h - Matrox MGA Video Adapters - CARD VENDOR ID
- Size: WORD
- Desc: contains the PCI vendor ID for the card vendor; this is written into
- the video controllers PCI subsystem-vendor-ID field
- SeeAlso: MEM C000h:7FFAh,MEM C000h:7FFCh
- --------V-MC0007FFA--------------------------
- MEM C000h:7FFAh - Matrox MGA Video Adapters - HARDWARE REVISION ID
- Size: BYTE
- SeeAlso: MEM C000h:7FF8h,MEM C000h:7FFCh
- --------V-MC0007FFC--------------------------
- MEM C000h:7FFCh - Matrox MGA Video Adapters - OFFSET OF PINS DATA STRUCTURE
- Size: WORD
- SeeAlso: INT 10/AX=4F14h"Matrox",#00126,MEM C000h:7FF8h
- --------A-MF0006000--------------------------
- MEM F000h:6000h - IBM PC ROM BASIC
- Size: 32768 BYTEs
- --------B-MF000E000--------------------------
- MEM F000h:E000h - ORIGINAL IBM PC ROM BIOS
- Size: 8192 BYTEs
- --------H-MF000FFF0--------------------------
- MEM F000h:FFF0h - RESET JUMP
- Size: 5 BYTEs
- --------B-MF000FFF5--------------------------
- MEM F000h:FFF5h - ASCII BIOS DATE
- Size: 8 BYTEs
- --------B-MF000FFFD--------------------------
- MEM F000h:FFFDh - OFTEN USED TO ENSURE CORRECT BIOS CHECKSUM
- Size: BYTE
- --------B-MF000FFFE--------------------------
- MEM F000h:FFFEh - MACHINE TYPE CODE
- Size: BYTE
- SeeAlso: INT 15/AH=C0h
- --------X-MF000xxx0--------------------------
- MEM F000h:xxx0h - PCI IRQ Routing Table Specification v1.0
- Size: N paragraphs (N >= 2)
- InstallCheck: scan for the signature string "$PIR" followed by a valid
- PCI IRQ Routing Table
- Range: any paragraph boundary within the range F0000h to FFFFFh
- Format of PCI IRQ Routing Table v1.0:
- Offset Size Description (Table M0090)
- 00h 4 BYTEs signature "$PIR"
- 04h WORD version (0100h for v1.0)
- 06h WORD table size in bytes
- 08h BYTE bus number for PCI Interrupt Router
- 09h BYTE device/function number for PCI Interrupt Router
- 0Ah WORD bitmap of PCI-exclusive IRQs (bit 0 = IRQ0, etc.)
- 0Ch WORD PCI vendor ID for compatible PCI Interrupt Router
- 0Eh WORD PCI device ID for compatible PCI Interrupt Router
- 10h DWORD Miniport data
- 14h 11 BYTEs reserved (0)
- 1Fh BYTE checksum (set to make 8-bit sum of bytes in entire structure
- equal 00h)
- --- optional data ---
- 20h 16 BYTEs first slot entry (see #M0091)
- ...
- 16 BYTEs Nth slot entry
- Format of PCI IRQ Routing Table slot entry:
- Offset Size Description (Table M0091)
- 00h BYTE PCI bus number
- 01h BYTE PCI device number (bits 7-3)
- 02h BYTE link value for INTA#
- 03h WORD IRQ bitmap for INTA#
- 05h BYTE link value for INTB#
- 06h WORD IRQ bitmap for INTB#
- 08h BYTE link value for INTC#
- 09h WORD IRQ bitmap for INTC#
- 0Bh BYTE link value for INTD#
- 0Ch WORD IRQ bitmap for INTD#
- 0Eh BYTE slot number (00h = motherboard, other = vendor-specific)
- 0Fh BYTE reserved
- SeeAlso: #M0090,#01260 at INT 1A/AX=B406h
- --------B-MF000xxxx--------------------------
- MEM F000h:xxxxh - AWARD Flash Hook
- Format of AWARD Flash BIOS interface:
- Offset Size Description (Table M0092)
- 00h 8 BYTEs signature "AWDFLASH"
- 08h WORD offset in F000h of FAR function: Get ???
- Return: BL = ??? (00h)
- 0Ah WORD offset in F000h of FAR function: ???
- 0Ch WORD offset in F000h of FAR function: ???
- 0Eh WORD offset in F000h of FAR function: ???
- 10h WORD offset in F000h of FAR function: ???
- 12h WORD offset in F000h of FAR function: Disable Shadowing
- 14h WORD offset in F000h of FAR function: Enable Shadowing
- 16h WORD offset in F000h of FAR function: Get ???
- Return: DS:SI -> ??? (30 bytes?)
- 18h WORD offset in F000h of FAR function: Set ???
- DS:SI -> ??? (appears to be same as previous function)
- Note: the AWDFLASH utility copies the ROM from F000h and uses the copy
- instead of the original F000h:xxxxh addresses
- --------B-MF000xxxx--------------------------
- MEM F000h:xxxxh - Asustek Flash Hook
- Format of Asustek Flash interface:
- Offset Size Description (Table M0093)
- 00h 10 BYTEs signature "ASUS_FLASH"
- 0Ah 6 BYTEs blanks (padding)
- 10h WORD interface version??? (current PFLASH.EXE requires 0101h)
- 12h DWORD -> position-independent code to enable shadowing
- 16h WORD size of code pointed at by previous field (<= 0400h)
- 18h DWORD -> position-independent code to disable shadowing
- 1Ch WORD size of code pointed at by previous field (<= 0400h)
- --------p-Mxxxxxxx0--------------------------
- MEM xxxxh:xxx0h - Advanced Configuration and Power Interface Spec (ACPI) v0.9+
- Range: any paragraph boundary in the first kilobyte of the XBDA, the last
- kilobyte of conventional memory, or from E000h:0000h to F000h:FFE0h
- Note: scan paragraph boundaries for the signature string "RSD PTR ", followed
- by a valid Root System Description Pointer structure (see #M0094)
- SeeAlso: INT 15/AX=E820h
- !!!acpi\acpi10.pdf p.194
- Format of ACPI Root System Description Pointer structure:
- Offset Size Description (Table M0094)
- 00h 8 BYTEs signature "RSD PTR "
- 08h BYTE checksum (entire structure, including this byte, must
- add up to zero)
- 09h 6 BYTEs OEM identifier
- 0Fh BYTE reserved (0)
- 10h DWORD physical address of Root System Description Table (see #M0096)
- SeeAlso: #M0096
- Format of ACPI System Description Table header:
- Offset Size Description (Table M0095)
- 00h 4 BYTEs signature
- 04h DWORD length of table in bytes, including this header
- 08h BYTE revision of specification corresponding to signature
- 01h for both v0.9 and v1.0
- 09h BYTE checksum (set such that entire table sums to 00h)
- 0Ah 6 BYTEs OEM identification
- 10h 8 BYTEs OEM table identifier
- 18h 4 BYTEs OEM revision number
- ---ACPI v1.0---
- 1Ch 4 BYTEs vendor ID for table-creation utility used
- 20h 4 BYTEs revision of table-creation utility
- SeeAlso: #M0094,#M0096,#M0099,#M0097,#M0100,#M0105,#M0108,#M0110
- Format of ACPI Root System Description Table:
- Offset Size Description (Table M0096)
- 00h 36 BYTEs System Description Table Header (see #M0095)
- signature "RSDT"
- 24h N DWORDs physical addresses of other description tables
- (see #M0099,#M0097,#M0100,#M0105,#M0108,#M0109)
- Notes: the number of table pointers is implied by the table length
- field in the header (at offset 04h)
- for ACPI v0.9, the header is eight bytes smaller and thus all
- following offsets are 8 less
- SeeAlso: #M0094
- Format of ACPI Fixed ACPI Description Table:
- Offset Size Description (Table M0097)
- 00h 36 BYTEs System Description Table Header (see #M0095)
- signature "FACP"
- 24h DWORD physical address of the Firmware ACPI Control Structure
- (see #M0105)
- 28h DWORD physical address of the Differentiated System Description Table
- (see #M0099)
- 2Ch BYTE interrupt mode
- 00h dual PIC (industry-standard AT-type)
- 01h multiple APIC (see #M0100)
- else reserved
- 2Dh BYTE reserved
- 2Eh WORD system vector of SCI interrupt
- 30h DWORD I/O port address of SMI command port
- 34h BYTE value to write to SMI comamnd port to disable SMI ownership
- of ACPI hardware registers
- 35h BYTE value to write to SMI comamnd port to re-enable SMI ownership
- of ACPI hardware registers
- 36h BYTE (v1.0) value to write to SMI command port to enter S4BIOS state
- 00h if not supported
- 37h BYTE reserved
- 38h DWORD I/O port address of Power Management 1a Event Register Block
- 3Ch DWORD I/O port address of Power Management 1b Event Register Block
- (optional, 00000000h if not supported)
- 40h DWORD I/O port address of Power Management 1a Control Register Block
- 44h DWORD I/O port address of Power Management 1b Control Register Block
- (optional, 00000000h if not supported)
- 48h DWORD I/O port address of Power Management 2 Control Register Block
- (optional, 00000000h if not supported)
- 4Ch DWORD I/O port address of Power Management Timer Control Reg. Block
- 50h DWORD I/O port address of Generic Purpose Event 0 Register Block
- (optional, 00000000h if not supported)
- 54h DWORD I/O port address of Generic Purpose Event 1 Register Block
- (optional, 00000000h if not supported)
- 58h BYTE size of Power Management 1a/1b Event Register Block (>= 4)
- 59h BYTE size of Power Management 1a/1b Control Register Block (>= 1)
- 5Ah BYTE size of Power Management 2 Control Register Block (>= 1)
- 5Bh BYTE size of Power Management Timer Control Register Block (>= 4)
- 5Ch BYTE size of Generic Purpose Event 0 Register Block (multiple of 2)
- 5Dh BYTE size of Generic Purpose Event 1 Register Block (multiple of 2)
- 5Eh BYTE offset within General Purpose Event model for GPE1-based events
- 5Fh BYTE reserved
- 60h WORD worst-case hardware latency (microseconds) for entering/leaving
- state C2; >100 if C2 not supported
- 62h WORD worst-case hardware latency (microseconds) for entering/leaving
- state C3; >1000 if C3 not supported
- 64h WORD size of contiguous cacheable memory which must be read to flush
- all dirty lines from a processor's memory cache; use if
- fixed feature flag WBINVD (see #M0098) is clear
- 0000h if flushing not supported
- 66h WORD memory stride size (in bytes) to flush processor's memory cache
- 68h BYTE bit index of processor's duty cycle setting within the
- processor's P_CNT register
- 69h BYTE size of processor's duty cycle setting in bits
- 6Ah BYTE index within RTC CMOS RAM of the day-of-month alarm value
- 00h = not supported
- 6Bh BYTE index within RTC CMOS RAM of the month-of-year alarm value
- 00h = not supported
- 6Ch BYTE index within RTC CMOS RAM of the century alarm value
- 00h = not supported
- 6Dh BYTE reserved
- 6Eh DWORD fixed feature flags (see #M0098)
- SeeAlso: #M0094,CMOS 7Dh,CMOS 7Eh,CMOS 7Fh
- Bitfields for ACPI Fixed Feature Flags:
- Bit(s) Description (Table M0098)
- 0 WBINVD instruction is correctly supported by processor
- 1 WBINVD instruction flushes all caches and maintains coherency, but
- does not guarantee invalidation of all caches
- 2 all processors support C1 sleep state
- 3 C2 sleep state is configured to work on multiprocessor system
- ---v0.9---
- 4 power button is handled as a generic feature
- 5 RTC wake-up state is not supported in fixed register space
- 6 TMR_VAL size
- =0 24 bits
- =1 32 bits
- 7-31 reserved
- ---v1.0---
- 4 power button is handled as a control method device
- 5 =0 sleep button is handled as a fixed feature programming mode
- =1 control method device, or no sleep button
- 6 RTC wake-up state is not supported in fixed register space
- 7 RTc alarm can wake system from S4 state
- 8 TMR_VAL size
- =0 24 bits
- =1 32 bits
- 9-31 reserved
- SeeAlso: #M0097
- Format of ACPI Differentiated System Description Table:
- Offset Size Description (Table M0099)
- 00h 36 BYTEs System Description Table Header (see #M0095)
- signature "DSDT"
- 24h complex byte stream; refer to ACPI document and software
- SeeAlso: #M0094
- Format of ACPI Multiple APIC Description Table:
- Offset Size Description (Table M0100)
- 00h 36 BYTEs System Description Table Header (see #M0095)
- signature "APIC"
- 24h DWORD physical address of the local APIC in each processor's address
- space
- 28h DWORD multiple-APIC flags (see #M0101)
- 2Ch 12N BYTEs APIC structures (see #M0102,#M0104)
- first byte of each is type, second is length; types other than
- 00h and 01h are currently reserved and should be skipped
- SeeAlso: #M0094
- Bitfields for ACPI Multiple APIC Description Table flags:
- Bit(s) Description (Table M0101)
- 0 system contains AT-compatible dual 8259 interrupt controllers in
- addition to APICs
- 1-31 reserved (0)
- SeeAlso: #M0100
- Format of ACPI Local APIC Structure:
- Offset Size Description (Table M0102)
- 00h BYTE structure type (00h = Processor Local APIC)
- 01h BYTE length of this structure (0Ch for v0.9, 08h for v1.0)
- 02h BYTE processor ID
- 03h BYTE processor's local APIC ID
- ---v0.9---
- 04h DWORD physical address of APIC
- 08h DWORD flags (TBD)
- --v1.0---
- 04h DWORD flags (see #M0103)
- SeeAlso: #M0100,#M0104
- Bitfields for ACPI Local APIC flags:
- Bit(s) Description (Table M0103)
- 0 APIC enabled
- 1-31 reserved (0)
- SeeAlso: #M0102
- Format of ACPI I/O APIC Structure:
- Offset Size Description (Table M0104)
- 00h BYTE structure type (00h = Processor Local APIC)
- 01h BYTE 0Ch (length of this structure)
- 02h BYTE I/O APIC's ID
- 03h BYTE reserved (0)
- 04h DWORD physical address of the APIC
- 08h DWORD number of first system interrupt vector for APIC
- SeeAlso: #M0100,#M0102
- Format of ACPI Firmware ACPI Control Structure:
- Offset Size Description (Table M0105)
- 00h 4 BYTEs signature "FACS"
- 04h DWORD length of entire structure in bytes (>= 40h)
- 08h DWORD value of system's hardware signature at last boot
- 0Ch DWORD real-mode ACPI OS waking vector
- if nonzero, control is transferred to this address on next BIOS
- POST
- 10h DWORD global lock (see #M0107)
- 14h DWORD (v1.0) firmware control structure flags (see #M0106)
- 18h 44 BYTEs reserved (0)
- Notes: this structure is located on a 64-byte boundary anywhere in the
- first 4GB of memory
- the BIOS is required to omit the address space containing this
- structure from system memory in the system's memory map
- SeeAlso: #M0094,INT 15/AX=E820h
- Bitfields for ACPI Firmware Control Structure Feature flags:
- Bit(s) Description (Table M0106)
- 0 system supports S4BIOS_REQ
- =0 operating system must save/restore memory state in order to go to S4
- 1-31 reserved (0)
- SeeAlso: #M0105
- Bitfields for ACPI Embedded Controller Arbitration Structure:
- Bit(s) Description (Table M0107)
- 0 request for Global Lock ownership is pending
- 1 Global Lock is currently owned
- 2-31 reserved
- SeeAlso: #M0105
- Format of ACPI Persistent System Description Table:
- Offset Size Description (Table M0108)
- 00h 36 BYTEs System Description Table Header (see #M0095)
- signature "PSDT"
- 24h complex byte stream; refer to ACPI document and software
- SeeAlso: #M0094
- Format of ACPI Secondary System Description Table:
- Offset Size Description (Table M0109)
- 00h 36 BYTEs System Description Table Header (see #M0095)
- signature "SSDT"
- 24h complex byte stream; refer to ACPI document and software
- SeeAlso: #M0094
- Format of ACPI Smart Battery Description Table:
- Offset Size Description (Table M0110)
- 00h 36 BYTEs System Description Table Header (see #M0095)
- signature "SBST"
- 24h DWORD energy level in mWh at which system should warn user
- 28h DWORD energy level in mWh at which system should automatically enter
- sleep state
- 2Ch DWORD energy level in mWh at which system should perform an emergency
- shutdown
- SeeAlso: #M0094
- ----------Mxxxxxxx0---------------------------
- MEM xxxxh:xxx0h - BIOS32 Service Directory
- InstallCheck: scan paragraph boundaries E000h to FFFFh for signature string
- "_32_", followed by a valid header structure (see #F0021)
- SeeAlso: CALL xxxxh:xxxxh"BIOS32"
- ----------Mxxxxxxx0---------------------------
- MEM xxxxh:xxx0h - Desktop Management Interface / System Management BIOS
- InstallCheck: scan paragraph boundaries F000h to FFFFh for signature string
- "_DMI_", followed by a valid header structure (see #M0111,#M0112)
- Format of Desktop Management Interface entry-point structure:
- Offset Size Description (Table M0111)
- 00h 5 BYTEs signature "_DMI_"
- 05h BYTE checksum of this structure (forces 8-bit sum of bytes to 00h)
- 06h WORD total length of SMBIOS structure table, in bytes
- 08h DWORD 32-bit physical address of read-only SMBIOS structure table
- (see #F0059)
- 0Ch WORD number of SMBIOS structures
- 0Eh BYTE BCD SMBIOS revision (high nybble = major, low = minor)
- !!!ftp://download.intel.com/ial/wfm/smbios.pdf
- SeeAlso: #M0112
- Format of System Management BIOS entry-point structure:
- Offset Size Description (Table M0112)
- 00h 4 BYTEs signature "_SM_"
- 04h BYTE checksum of this structure (forces 8-bit sum of bytes to 00h)
- 05h BYTE length of structure in bytes (1Fh for v2.1+)
- 06h BYTE major version of specification
- 07h BYTE minor version of specification (01h = vX.1, 16h = vX.22)
- 08h WORD size of largest SMBIOS structure (see also #F0046)
- 0Ah BYTE revision of this data structure
- 00h SMBIOS v2.1-2.3
- 01h-FFh reserved for future versions
- 0Bh 5 BYTEs revision-specific data (currently unused)
- 10h 5 BYTEs intermediate anchor string "_DMI_"
- 15h BYTE checksum of intermediate entry-point structure
- (forces 8-bit sum of bytes 10h-1Eh to 00h)
- 16h WORD total length of SMBIOS structure table, in bytes
- 18h DWORD 32-bit physical address of read-only SMBIOS structure table
- (see #F0059)
- 1Ch WORD number of SMBIOS structures
- 1Eh BYTE BCD SMBIOS revision (high nybble = major, low = minor)
- 00h if specification version only given in bytes 06h/07h
- BUG: due to an error in the v2.1 specification, some implementations might
- indicate a length of 1Eh bytes instead of 1Fh
- SeeAlso: #M0111
- ----------Mxxxxxxx0--------------------------
- MEM xxxxh:xxx0h - Multiprocessor Specification - FLOATING POINTER STRUCTURE
- InstallCheck: scan paragraph boundaries for the signature string "_MP_",
- followed by a valid floating pointer structure (see #M0113)
- Range: any paragraph boundary in the first kilobyte of the XBDA, the last
- kilobyte of conventional memory, or from F000h:0000h to F000h:FFE0h
- SeeAlso: MEM FEE00000h
- Format of Multiprocessor Specification Floating Pointer structure:
- Offset Size Description (Table M0113)
- 00h 4 BYTEs signature "_MP_"
- 04h DWORD physical address of MP configuration table (see #M0114)
- 00000000h if no configuration table
- 08h BYTE length of this structure in paragraphs (currently 01h)
- 09h BYTE revision of MP specification supported
- 01h = v1.1
- 04h = v1.4
- 0Ah BYTE checksum (8-bit sum of entire structure, including this
- byte, must equal 00h)
- 0Bh BYTE MP feature byte 1: system configuration type
- 00h: MP configuration table present
- nonzero: default configuration implemented by system
- 0Ch BYTE MP feature byte 2
- bit 7: IMCR present
- bits 6-0: reserved (0)
- 0Dh 3 BYTEs MP feature bytes 3-5 (reserved, must be 00h)
- Format of Multiprocessor Specification configuration table header:
- Offset Size Description (Table M0114)
- 00h 4 BYTEs signature "PCMP"
- 04h WORD length of base configuration table in bytes, including
- this header
- 06h BYTE revision of MP specification supported
- 01h = v1.1
- 04h = v1.4
- 07h BYTE checksum of entire base configuration table
- 08h 8 BYTEs OEM identifier
- 10h 12 BYTEs product ID
- 1Ch DWORD physical address to OEM-defined configuration table
- 00000000h if not present
- 20h WORD size of base OEM table in bytes (0000h if not present)
- 22h WORD number of entries in variable portion of base table
- 24h DWORD address of local APIC (see also MEM FEE0h:0020h)
- 28h WORD length of extended entries following end of base table
- (in bytes)
- 2Ah BYTE checksum for extended table entries (includes only
- extended entries following base table)
- 2Ch var configuration table entries (see #M0115)
- SeeAlso: #M0113
- Format of Multiprocessor Specification configuration table entries:
- Offset Size Description (Table M0115)
- 00h BYTE entry type code
- 00h processor
- 01h bus
- 02h I/O APIC
- 03h I/IO interrupt assignment
- 04h local interrupt assignment
- 80h system address space mapping
- 81h bus hierarchy descriptor
- 82h compatibility bus address space modifier
- ---processor---
- 01h BYTE local APIC identifier
- 02h BYTE local APIC version
- 03h BYTE CPU flags
- bit 0: processor usable
- bit 1: bootstrap processor
- 04h WORD CPU type
- bits 11-8: CPU family
- bits 7-4: CPU model
- bits 3-0: stepping
- (bits 11-0 all set indicate non-Intel-compatible CPU)
- 06h 2 BYTEs unused
- 08h DWORD feature flags (as returned by Pentium CPUID instruction)
- 0Ch 8 BYTEs reserved
- ---bus---
- 01h BYTE bus ID (assigned sequentially from 00h by BIOS)
- 02h 6 BYTEs bus type (blank-padded ASCII string) (see #M0116)
- ---I/O APIC---
- 01h BYTE APIC identifier
- 02h BYTE APIC version
- 03h BYTE I/O APIC flags
- bit 0: enabled
- bits 7-1: reserved
- 04h DWORD base address for APIC
- ---I/O,local interrupt assignment---
- 01h BYTE interrupt type
- 00h vectored interrupt (from APIC)
- 01h NMI
- 02h system management interrupt
- 03h vectored interrupt (from external PIC)
- 02h BYTE APIC control (see #M0117)
- 03h BYTE unused
- 04h BYTE source bus identifier
- 05h BYTE source bus IRQ
- 06h BYTE destination I/O APIC identifier
- 07h BYTE destination I/O APIC interrupt pin number
- ---system address space mapping---
- 01h BYTE entry length (14h)
- 02h BYTE bus ID
- 03h BYTE address type (00h I/O, 01h memory, 02h prefetch)
- 04h QWORD starting address of region visible to bus
- 0Ch QWORD length of region visible to bus
- ---bus hierarchy descriptor---
- 01h BYTE entry length (08h)
- 02h BYTE bus ID
- 03h BYTE bus information
- bit 0: subtractive decoding
- 04h BYTE ID of parent bus
- 05h 3 BYTEs reserved
- ---compatibility bus address space modifier---
- 01h BYTE entry length (08h)
- 02h BYTE bus ID
- 03h BYTE address modifier
- bit 0: remove address ranges in predefined range list from
- bus's address space
- 04h DWORD number indicating predefined address space range to be removed
- 00h ISA-compatible I/O range (x100h-x3FFh and aliases)
- 01h VGA-compatible I/O range (x3B0h-x3BBh,x3C0h-x3DFh,aliases)
- SeeAlso: #M0114
- (Table M0116)
- Values for Multiprocessor Specification bus name:
- "CBUS" Corollary CBus
- "CBUSII" Corollary CBus II
- "EISA"
- "FUTURE" IEEE FutureBus
- "INTERN" internal bus
- "ISA"
- "MBI" Multibus I
- "MBII" Multibus II
- "MCA" Microchannel
- "MPI"
- "MPSA"
- "NUBUS" Apple Macintosh NuBus
- "PCI"
- "PCMCIA"
- "TC" DEC TurboChannel
- "VL" VESA Local Bus
- "VME" VMEbus
- "XPRESS" Express System Bus
- SeeAlso: #M0115
- Bitfields for Multiprocessor Specification APIC control:
- Bit(s) Description (Table M0117)
- 1-0 input signal polarity
- 00 conforms to bus specification
- 01 active high
- 10 reserved
- 11 active low
- 3-2 trigger mode
- 00 conforms to bus specification
- 01 edge-triggered
- 10 reserved
- 11 level-triggered
- SeeAlso: #M0115
- --------H-mFEC00000--------------------------
- MEM FEC00000h - Pentium - 82379AB I/O APIC - I/O REGISTER SELECT
- Size: DWORD
- Desc: bits 7-0 of the I/O Register Select memory location specify which
- of the APIC's registers appears in the I/O Window at FExxx010h
- Range: the Multiprocessor Specification calls for I/O APICs to be memory-
- mapped on 4K boundaries between FEC00000h and FEDFC000h; the Intel
- 82379AB I/O APIC can be memory-mapped on any 1K boundary within
- FEC0000h-FEC0F800h
- Note: this memory-mapped register is also supported by the Intel 82093AA
- I/O APIC
- SeeAlso: MEM FEC00010h,MEM FEE00000h,MEM xxxxh:xxx0h"Multiprocessor"
- --------H-mFEC00010--------------------------
- MEM FEC00010h - Pentium - 82379AB I/O APIC - I/O WINDOW
- Size: DWORD
- Range: the Multiprocessor Specification calls for I/O APICs to be memory-
- mapped on 4K boundaries between FEC00000h and FEDFC000h
- Note: this memory-mapped register is also supported by the Intel 82093AA
- I/O APIC
- SeeAlso: MEM FEC00010h
- (Table M0118)
- Values for Intel 82379AB/82093AA I/O APIC registers:
- 00h APIC ID
- 01h APIC version (read-only)
- bits 31-24: reserved
- bits 23-16: maximum redirection entry
- bits 15-8: reserved
- bits 7-0: APIC version (11h for 82093AA)
- 02h APIC arbitration ID (read-only)
- bits 31-28: reserved
- bits 27-24: arbitration ID
- bits 23-0: reserved
- 10h-11h redirection table entry 0 (10h=low DWORD, 11h=high DWORD)
- 12h-13h redirection table entry 1 (see !!!)
- ...
- 2Eh-2Fh redirection table entry 15
- ---82093AA only---
- 30h-31h redirection table entry 16
- ...
- 3Eh-3Fh redirection table entry 23
- Bitfields for APIC redirection table entry:
- Bit(s) Description (Table M0119)
- 63-56 destination
- !!!29056601.pdf pg. 10
- 55-17 reserved
- 16 interrupt mask
- 15 trigger mode
- 14 remote IRR (read-only)
- 13 interrupt input pin polarity
- 12 delivery status (read-only)
- 11 destination mode
- 10-8 delivery mode
- 7-0 interrupt vector (10h-FEh)
- --------H-mFEE00000--------------------------
- MEM FEE00000h - Pentium - LOCAL APIC
- Size: 4096 BYTEs
- Notes: the Advanced Programmable Interrupt Controller built into
- multiprocessor-capable Pentiums (P54C, etc. -- basically 75MHz and
- faster Pentiums) maps its registers into the top of the physical
- address space on data reads and writes, but not on code reads;
- data accesses to the APIC registers do not cause external bus
- cycles
- the APIC's registers are only visible when the APIC is enabled (which
- occurs at CPU reset when external data lines contain proper signals);
- all accesses to APIC registers should use 32-bit reads or writes, as
- 8-bit and 16-bit accesses may produce unpredictable results
- the PentiumPro (P6) permits the address at which the local APIC
- appears to be changed with Model-Specific Register 0000001Bh
- SeeAlso: MEM FEC00000h,MEM FEE00020h,MEM xxxxh:xxx0h"Multiprocessor"
- SeeAlso: MSR 0000001Bh
- --------H-mFEE00020--------------------------
- MEM FEE00020h - Pentium - LOCAL APIC - LOCAL APIC ID REGISTER
- Size: DWORD
- SeeAlso: MEM FEE00030h
- --------H-mFEE00030--------------------------
- MEM FEE00030h - Pentium - LOCAL APIC - LOCAL APIC VERSION REGISTER
- Size: DWORD
- Note: read-only
- SeeAlso: MEM FEE00020h
- --------H-mFEE00040--------------------------
- MEM FEE00040h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE00050--------------------------
- MEM FEE00050h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE00060--------------------------
- MEM FEE00060h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE00070--------------------------
- MEM FEE00070h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE00080--------------------------
- MEM FEE00080h - Pentium - LOCAL APIC - TASK PRIORITY REGISTER (TPR)
- Size: DWORD
- --------H-mFEE00090--------------------------
- MEM FEE00090h - Pentium - LOCAL APIC - ARBITRATION PRIORITY REGISTER (APR)
- Size: DWORD
- Note: read-only
- --------H-mFEE000A0--------------------------
- MEM FEE000A0h - Pentium - LOCAL APIC - END OF INTERRUPT REGISTER (EOI)
- Size: DWORD
- Note: write-only
- --------H-mFEE000A0--------------------------
- MEM FEE000A0h - Pentium - LOCAL APIC - PROCESSOR PRIORITY REGISTER (PPR)
- Size: DWORD
- Note: read-only
- SeeAlso: MEM FEE00000h
- --------H-mFEE000B0--------------------------
- MEM FEE000B0h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE000C0--------------------------
- MEM FEE000C0h - Pentium - LOCAL APIC - REMOTE READ REGISTER
- Size: DWORD
- Note: read-only
- --------H-mFEE000D0--------------------------
- MEM FEE000D0h - Pentium - LOCAL APIC - LOGICAL DURATION REGISTER (LDR)
- Size: DWORD
- SeeAlso: MEM FEE00000h
- --------H-mFEE000E0--------------------------
- MEM FEE000E0h - Pentium - LOCAL APIC - DESTINATION FORMAT REGISTER (DFR)
- Size: DWORD
- bits 27-0: read-only
- bits 31-28: read-write
- --------H-mFEE000F0--------------------------
- MEM FEE000F0h - Pentium - LOCAL APIC - SPURIOUS INTERRUPT VECTOR REGISTER
- Size: DWORD
- bits 3-0, read-only
- bits 9-4, read/write
- --------H-mFEE00100--------------------------
- MEM FEE00100h - Pentium - LOCAL APIC - IN-SERVICE REGISTER (ISR)
- Size: 128 BYTEs
- Note: read-only
- SeeAlso: MEM FEE00200h
- --------H-mFEE00180--------------------------
- MEM FEE00180h - Pentium - LOCAL APIC - TRIGGER MODE REGISTER (TMR)
- Size: 128 BYTEs
- Note: read-only
- SeeAlso: MEM FEE00000h
- --------H-mFEE00200--------------------------
- MEM FEE00200h - Pentium - LOCAL APIC - INTERRUPT REQUEST REGISTER (IRR)
- Size: 128 BYTEs
- Note: read-only
- SeeAlso: MEM FEE00100h
- --------H-mFEE00280--------------------------
- MEM FEE00280h - Pentium - LOCAL APIC - ERROR STATUS REGISTER
- Size: DWORD
- Note: read-only
- Bitfields for Pentium APIC error status register:
- Bit(s) Description (Table M0120)
- 0 send checksum error
- 1 receive checksum error
- 2 send accept error
- 3 receive accept error
- 4 reserved
- 5 send illegal vector
- 6 receive illegal vector
- 7 illegal register address
- 31-8 reserved
- --------H-mFEE00300--------------------------
- MEM FEE00300h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
- Size: DWORD
- Note: this is the low half of the 64-bit ICR
- SeeAlso: MEM FEE00310h,#M0121
- Bitfields for Pentium APIC Interrupt Command Register:
- Bit(s) Description (Table M0121)
- 7-0 interrupt vector number
- 10-8 delivery mode (see #M0122)
- 11 destination mode
- 12 delivery status (read-only)
- 1 = transfer pending
- 13 reserved
- 14 level (0 = INIT Level Deassert message, 1 = anything else)
- 15 trigger mode (1)
- 17-16 remote read status (read-only)
- 19-18 destination shorthand
- 00 as specified by destination field
- 01 self
- 10 all including self
- 11 all except self
- 55-20 reserved
- 63-56 destination for interrupt request or message
- SeeAlso: #M0124
- (Table M0122)
- Values for Pentium APIC delivery mode:
- 000b fixed
- 001b lowest-priority
- 010b SMI
- 011b remote read
- 100b NMI
- 101b INIT
- 110b start up
- 111b reserved
- SeeAlso: #M0121
- --------H-mFEE00310--------------------------
- MEM FEE00310h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
- Size: DWORD
- Note: this is the high half of the 64-bit ICR
- SeeAlso: MEM FEE00300h,#M0121
- --------H-mFEE00320--------------------------
- MEM FEE00320h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 0 (TIMER)
- Size: DWORD
- SeeAlso: MEM FEE00350h,MEM FEE00370h,MEM FEE003E0h,INT 70h
- Bitfields for Pentium APIC timer local vector entry:
- Bit(s) Description (Table M0123)
- 7-0 interrupt vector number
- 11-8 reserved
- 12 delivery status (read-only)
- 1 = interrupt being sent to APIC
- 15-13 reserved
- 16 interrupt delivery disabled
- 17 timer mode (0=one-shot, 1=periodic)
- 31-18 reserved
- SeeAlso: #M0125,#M0124
- --------H-mFEE00330--------------------------
- MEM FEE00330h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE00340--------------------------
- MEM FEE00340h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE00350--------------------------
- MEM FEE00350h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 1 (LINT0)
- Size: DWORD
- SeeAlso: MEM FEE00320h,MEM FEE00360h
- Bitfields for Pentium APIC LINTx local vector entry:
- Bit(s) Description (Table M0124)
- 7-0 interrupt vector number
- 10-8 delivery mode
- 000 fixed
- 100 NMI
- 111 external interrupt (8259A-compatibility)
- 11 reserved
- 12 delivery status (read-only)
- 1 = interrupt being sent to APIC
- 13 interrupt pin is active low
- 14 remote IRR
- 15 trigger mode
- 0 edge-sensitive
- 1 level-sensitive
- 16 interrupt delivery disabled
- 31-17 reserved
- SeeAlso: #M0123
- --------H-mFEE00360--------------------------
- MEM FEE00360h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 2 (LINT1)
- Size: DWORD
- SeeAlso: MEM FEE00350h,MEM FEE00370h,#M0124
- --------H-mFEE00370--------------------------
- MEM FEE00370h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 3 (Error)
- Size: DWORD
- SeeAlso: MEM FEE00320h,MEM FEE00370h
- --------H-mFEE00380--------------------------
- MEM FEE00380h - Pentium - LOCAL APIC - INITIAL COUNT REGISTER (ICR) TIMER
- Size: DWORD
- Desc: timer start value, which together with the Divide Configuration
- Register also determines its period when periodic mode has been
- selected
- SeeAlso: MEM FEE00000h,MEM FEE00390h
- --------H-mFEE00390--------------------------
- MEM FEE00390h - Pentium - LOCAL APIC - CURRENT COUNT REGISTER (CCR) TIMER
- Size: DWORD
- Desc: current timer count; when this value reaches zero, an interrupt is
- generated
- Note: read-only
- SeeAlso: MEM FEE00380h
- --------H-mFEE003A0--------------------------
- MEM FEE003A0h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE003B0--------------------------
- MEM FEE003B0h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE003C0--------------------------
- MEM FEE003C0h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE003D0--------------------------
- MEM FEE003D0h - Pentium - LOCAL APIC - RESERVED
- SeeAlso: MEM FEE00000h
- --------H-mFEE003E0--------------------------
- MEM FEE003E0h - Pentium - LOCAL APIC - TIMER DIVIDE CONFIGURATION REGISTER
- Size: DWORD
- SeeAlso: MEM FEE00000h,MEM FEE00320h
- Bitfields for Pentium APIC timer divide configuration:
- Bit(s) Description (Table M0125)
- 3,1,0 divisor
- 000 divide by 2
- 001 by 4
- 010 by 8
- ...
- 110 by 128
- 111 by 1
- 2 zero (0)
- 31-4 reserved
- Note: the divisor determines the timer's time base relative to the processor
- clock
- SeeAlso: #M0123
- ----------MFFFF0010--------------------------
- MEM FFFFh:0010h - HIGH MEMORY AREA (HMA)
- Size: 65520 BYTEs
- --------!---CONTRIBUTORS---------------------
- Robin Walker <rdhw@cus.cam.ac.uk> ORIGINAL FILE
- Wim Osterholt <wim@djo.wtm.tudelft.nl> or Wim Osterholt 2:512/56
- EHD floppy = 'KEGAN 4.0M Floppy Drive Controller.',
- 'ACME FX4-K7tb2 v:2.5 11/5/91'
- Stanley Appel <appel@stack.urc.tue.nl>
- Matthias Paul <mpaul@ibh.rwth-aachen.de>
- --------!---Admin----------------------------
- Highest Table Number = M0125
- --------!---FILELIST-------------------------
- Please redistribute all of the files comprising the interrupt list (listed at
- the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
- quartet of archives named INTER60A through INTER60D (preferably the original
- authenticated PKZIP archives), and the utility and hypertext programs in
- three additional archives called INTER60E.ZIP to INTER60G.ZIP.
- Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
- --------!---CONTACT_INFO---------------------
- Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
- FIDO: Ralf Brown 1:129/26.1
|