Documente Academic
Documente Profesional
Documente Cultură
bochs.sourceforge.net/techspec/PORTS.LST
[ThisfilewasprovidedbyWimOsterholt(2:512/56orwim@djo.wtm.tudelft.nl).]
LastChange:11/6/94
XT,ATandPS/2I/Oportaddresses
DoNOTconsiderthisinformationascompleteandaccurate.
IfyouwanttodoharwareprogrammingcheckALWAYSthe
appropriatedatasheets.Beawarethaterroneouslyprogramming
canputyourhardwareoryourdataatrisk.
ThereisamemorymappedaddressinuseforI/OfunctionsofwhichI
thinkitshouldbementionedhere.Seeattheendofthislist.
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
DMAchannel0address byte0,thenbyte1.
DMAchannel0wordcountbyte0,thenbyte1.
DMAchannel1address byte0,thenbyte1.
DMAchannel1wordcountbyte0,thenbyte1.
DMAchannel2address byte0,thenbyte1.
DMAchannel2wordcountbyte0,thenbyte1.
DMAchannel3address byte0,thenbyte1.
DMAchannel3wordcountbyte0,thenbyte1.
0008
DMAchannel03statusregister
bit7=1channel3request
bit6=1channel2request
bit5=1channel1request
bit4=1channel0request
bit3=1channelterminalcountonchannel3
bit2=1channelterminalcountonchannel2
bit1=1channelterminalcountonchannel1
bit0=1channelterminalcountonchannel0
0008
DMAchannel03commandregister
bit7=1DACKsenseactivehigh
=0DACKsenseactivelow
bit6=1DREQsenseactivehigh
=0DREQsenseactivelow
bit5=1extendedwriteselection
=0latewriteselection
bit4=1rotatingpriority
=0fixedpriority
bit3=1compressedtiming
=0normaltiming
bit2=1enablecontroller
=0enablememorytomemory
0009
DMAwriterequestregister
000A
r/w
DMAchannel03maskregister
bit73=0reserved
bit2 =0clearmaskbit
=1setmaskbit
bit10=00channel0select
=01channel1select
=10channel2select
=11channel3select
000B
DMAchannel03moderegister
bit76=00demandmode
=01singlemode
http://bochs.sourceforge.net/techspec/PORTS.LST
1/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
=10blockmode
=11cascademode
bit5 =0addressincrementselect
=1addressdecrementselect
bit32=00verifyoperation
=01writetomemory
=10readfrommemory
=11reserved
bit10=00channel0select
=01channel1select
=10channel2select
=11channel3select
000C
000D
000D
000E
000F
w
r
w
w
w
DMAclearbytepointerflipflop
DMAreadtemporaryregister
DMAmasterclear
DMAclearmaskregister
DMAwritemaskregister
0010001F DMAcontroller(8237)onPS/2model60&80
0018
w
PS/2extendedfunctionregister
001A
PS/2extendedfunctionexecute
PICinitializationcommandwordICW1
bit75=0onlyusedin80/85mode
bit4 =1ICW1isbeingissued
bit3 =0edgetriggeredmode
=1leveltriggeredmode
bit2 =0successiveinterruptvectorsuse8bytes
=1successiveinterruptvectorsuse4bytes
bit1 =0cascademode
=1singlemode,noICW3needed
bit0 =0noICW4needed
=1ICW4needed
0021
PICICW2,ICW3,ICW4afterICW1to0020
ICW2:
bit73=addresslinesA0A3ofbasevectoraddressforPIC
bit20=reserved
ICW3:
bit70=0slavecontrollernotattachedtocorresponding
interruptpin
=1slavecontrollerattachedtocorresponding
interruptpin
ICW4:
bit75=0reserved
bit4 =0nospecialfullynestedmode
=1specialfullynestedmode
bit32=0xnonbufferedmode
=10bufferedmode/slave
=11bufferedmode/master
bit1 =0normalEOI
=1AutoEOI
bit0 =08085mode
=18086/8088mode
0021
r/w
PICmasterinterruptmaskregister
http://bochs.sourceforge.net/techspec/PORTS.LST
2/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
OCW1:
bit7=0enableparallelprinterinterrupt
bit6=0enabledisketteinterrupt
bit5=0enablefixeddiskinterrupt
bit4=0enableserialport1interrupt
bit3=0enableserialport2interrupt
bit2=0enablevideointerrupt
bit1=0enablekeyboard,mouse,RTCinterrupt
bit0=0enabletimerinterrupt
0020
PICinterruptrequest/inserviceregistersbyOCW3
requestregister:
bit70=0noactiverequestforthecorrespondingint.line
=1activerequestforcorrespondinginterruptline
inserviceregister:
bit70=0correspondinglinenotcurrentlybeingserviced
=1correspondingint.linecurrentlybeingserviced
0020
OCW2:
bit75=000
=001
=010
=011
=100
=101
=110
=111
bit4 =0
bit3 =0
bit20
0020
PICOCW3
bit7 =0reserved
bit65=0xnooperation
=10resetspecialmask
=11setspecialmask
bit4 =0reserved
bit3 =1reserved
bit2 =0nopollcommand
=1pollcommand
bit10=0xnooperation
=10readint.requestregisteronnextreadat0020
=11readint.inserviceregisteronnextread0020
rotateinautoEOImode(clear)
nonspecificEOI
nooperation
specificEOI
rotateinautoEOImode(set)
rotateonnonspecificEOIcommand
setprioritycommand
rotateonspecificEOIcommand
reserved
reserved
interruptrequesttowhichthecommandapplies
0022002B Intel82355,partofchipsetfor386sx
initialisationinPOSTwilldisabletheseaddresses,
onlyahardresetwillenablethemagain.
0022
0024
0026
0028
002A
r/w
82335MCRmemoryconfigurationregister
82335RC1rollcompareregister
82335RC2rollcompareregister
82335CC0compareregister
82335CC1compareregister
valuesforCC0andCC1:
00F9,0000enablerangecompareCC00512KCC1disable
00F1,0000enablerangecompareCC001024KCC1disable
00F1,10F9enablerangecompareCC001MCC11M1M5
00E1,0000enablerangecompareCC002MCC1disable
00E1,0000enablerangecompareCC002MCC1disable
00C1,0000enablerangecompareCC004MCC1disable
00C1,40E1enablerangecompareCC004MCC14M6M
0081,0000enablerangecompareCC008MCC1disable
http://bochs.sourceforge.net/techspec/PORTS.LST
3/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
00220023 ChipSetData
0022
0023
w
r/w
indexforaccessestodataport
chipsetdata
00220023 CyrixCx486SLC/DLCprocessorCacheConfigurationRegisters
0022
0023
r/w
indexforaccessestonextport
C0hCR0
C1hCR1
C4hnoncacheableregion1,startaddressbits3124
C5hnoncacheableregion1,startaddressbits2316
C6hnoncacheableregion1,startaddr1512,size(lownibble)
C7hnoncacheableregion2,startaddressbits3124
C8hnoncacheableregion2,startaddressbits2316
C9hnoncacheableregion2,startaddr1512,size(lownibble)
CAhnoncacheableregion3,startaddressbits3124
CBhnoncacheableregion3,startaddressbits2316
CChnoncacheableregion3,startaddr1512,size(lownibble)
CDhnoncacheableregion4,startaddressbits3124
CEhnoncacheableregion4,startaddressbits2316
CFhnoncacheableregion4,startaddr1512,size(lownibble)
cacheconfigurationregisterarray(indexedbyport0022h)
noncacheableregionsizes:
00hdisabled
01h4K
02h8K
03h16K
04h32K
05h64K
06h128K
07h256K
08h512K
09h1M
0Ah2M
0Bh4M
0Ch8M
0Dh16M
0Eh32M
0Fh4G
ConfigurationRegister0format:
bit0 "NC0"first64Kofeach1Mnoncacheableinreal/V86
bit1 "NC1"640K1Mnoncacheable
bit2 "A20M"enablesA20M#inputpin
bit3 "KEN"enablesKEN#inputpin
bit4 "FLUSH"enablesKEN#inputpin
bit5 "BARB"enablesinternalcacheflushingonbusholds
bit6 "C0"cachedirectmappedinsteadof2wayassociative
bit7 "SUSPEND"enablesSUSP#inputandSUSPA#outputpins
ConfigurationRegister1format;
bit0 "RPL"enablesoutputpinsRPLSETandRPLVAL#
00260027 PowerManagement
0026
0027
w
r/w
indexfordataport
powermanagementdata
0038003F PCradiobyCoZetInfoSystems
http://bochs.sourceforge.net/techspec/PORTS.LST
4/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
TheI/Oaddressrangeisdipswitchselectablefrom:
03803Fand0B00BF
07807Fand0F00FF
13813Fand1B01BF
17817Fand1F01FF
23823Fand2B02BF
27827Fand2F02FF
33833Fand3B03BF
37837Fand3F03FF
AlloftheseaddressesshowareadoutofFFininitialstate.
Oncestarted,alloftheaddressesshowFB,whatevermight
happen.
0040005F PIT(ProgrammableInterruptTimer8253,8254)
XT&ATuses4043PS/2uses40,42,43,44,47
0040
0041
0042
r/w
r/w
r/w
PITcounter0,counterdivisor(XT,AT,PS/2)
PITcounter1,RAMrefreshcounter(XT,AT)
PITcounter2,cassette&speaker(XT,AT,PS/2)
0043
r/w
PITmodeport,controlwordregisterforcounters02
bit76=00counter0select
=01counter1select(notPS/2)
=10counter2select
bit54=00counterlatchcommand
=01read/writecounterbits07only
=10read/writecounterbits815only
=11read/writecounterbits07first,then815
bit31=000mode0select
=001mode1selectprogrammableoneshot
=x10mode2selectrategenerator
=x11mode3selectsquarewavegenerator
=100mode4selectsoftwaretriggeredstrobe
=101mode5selecthardwaretriggeredstrobe
bit0 =0binarycounter16bits
=1BCDcounter
0044
r/w
PITcounter3(PS/2,EISA)
usedasfailsafetimer.generatesanNMIontimeout.
forusergeneratedNMIseeat0462.
0047
PITcontrolwordregistercounter3(PS/2,EISA)
bit76=00counter3select
=01reserved
=10reserved
=11reserved
bit54=00counterlatchcommandcounter3
=01read/writecounterbits07only
=1xreserved
bit30=00
0048
0049
004A
004B
EISA
8254timer2,notused(counter1)
EISAprogrammableintervaltimer2
EISAprogrammableintervaltimer2
0060006F Keyboardcontroller804x(8041,8042)(orPPI(8255)onPC,XT)
XTuses6063,ATuses6064
ATkeyboardcontrollerinputportbitdefinitions
bit7=0keyboardinhibited
bit6=0CGA,elseMDA
bit5=0manufacturingjumperinstalled
http://bochs.sourceforge.net/techspec/PORTS.LST
5/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit4=0systemRAM512K,else640K
bit30reserved
ATkeyboardcontrollerinputportbitdefinitionsbyCompaq
bit7=0securitylockislocked
bit6=0Compaqdualscandisplay,1=nonCompaqdisplay
bit5=0systemboarddipswitch5isON
bit4=0autospeedselected,1=highspeedselected
bit3=0slow(4MHz),1=fast(8MHz)
bit2=080287installed,1=noNDPinstalled
bit10reserved
ATkeyboardcontrolleroutputportbitdefinitions
bit7=keyboarddataoutput
bit6=keyboardclockoutput
bit5=0inputbufferfull
bit4=0outputbufferempty
bit3=reserved(seenote)
bit2=reserved(seenote)
bit1=gateA20
bit0=systemreset
Note: bits2and3aretheturbospeedswitchorpassword
lockonAward/AMI/PhoenixBIOSes.Thesebitsmake
useofnonstandardkeyboardcontrollerBIOS
functionalitytomanipulate
pin23(8041port22)asturboswitchforAWARD
pin35(8041port15)asturboswitch/pwlockfor
Phoenix
0060
r/w
KBcontrollerdataportorkeyboardinputbuffer(ISA,EISA)
shouldonlybereadfromafterstatusportbit0=1
shouldonlybewrittentoifstatusportbit1=0
keyboardcommands(dataalsogoestoport0060):
E6
snglsetmousescalingto1:1
E7
snglsetmousescalingto2:1
E8
dblsetmouseresolution
(00h=1/mm,01h=2/mm,02h=4/mm,03h=8/mm)
E9
snglgetmouseinformation
readtwostatusbytes:
byte0
bit7unused
bit6remoteratherthanstreammode
bit5mouseenabled
bit4scalingsetto2:1
bit3unused
bit2leftbuttonpressed
bit1unused
bit0rightbuttonpressed
byte1:resolution
ED
dblset/resetmodeindicatorsCapsNumScrl
bit2=CapsLk,bit1=NumLk,bit0=ScrlLk
EE
sngldiagnosticecho.returnsEE.
EF
snglNOP(NoOPeration).reservedforfutureuse
F0
dblget/setscancodeset
00hgetcurrentset
01hscancodeset1(exceptType2ctrlr)
02hscancodeset2(default)
03hscancodeset3
F2
snglreadkeyboardID(readtwoIDbytes)
F2
snglreadmouseID(readtwoIDbytes)
F3
dblsettypematicrate/delay
F3
dblsetmousesamplerateinreportspersecond
F4
snglenablekeyboard
F4
snglenablemouse
F5
sngldisablekeyboard.setdefaultparameters
http://bochs.sourceforge.net/techspec/PORTS.LST
6/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
FF
Note:
sngldisablemouse,setdefaultparameters
snglsetdefaultparameters
sngl[MCA]setallkeystotypematic(scancodeset3)
sngl[MCA]setallkeystomake/release
sngl[MCA]setallkeystomakeonly
sngl[MCA]setallkeystotypematic/make/release
sngl[MCA]setalkeystotypematic
dbl[MCA]setspecifickeytomake/release
dbl[MCA]setspecifickeytomakeonly
snglresendlastscancode
snglperforminternalpoweronresetfunction
snglresetmouse
mustissuecommandD4htoport64hfirsttoaccess
mousefunctions
0060
KeyBoardorKBcontrollerdataoutputbuffer(viaPPIonXT)
0061
KBcontrollerportB(ISA,EISA)(PS/2portAisat0092)
systemcontrolportforcompatibilitywith8255
bit7 (1=IRQ0reset)
bit64reserved
bit3=1channelcheckenable
bit2=1paritycheckenable
bit1=1speakerdataenable
bit0=1timer2gatetospeakerenable
0061
KBcontrollerportBcontrolregister(ISA,EISA)
systemcontrolportforcompatibilitywith8255
bit7 paritycheckoccurred
bit6 channelcheckoccurred
bit5 mirrorstimer2outputcondition
bit4 toggleswitheachrefreshrequest
bit3 channelcheckstatus
bit2 paritycheckstatus
bit1 speakerdatastatus
bit0 timer2gatetospeakerstatus
0061
PPIProgrammablePeripheralInterface8255(XTonly)
systemcontrolport
bit7=1clearkeyboard
bit6=0holdkeyboardclocklow
bit5=0I/Ocheckenable
bit4=0RAMparitycheckenable
bit3=0readlowswitches
bit2 reserved,oftenusedasturboswitch
bit1=1speakerdataenable
bit0=1timer2gatetospeakerenable
0062
r/w
PPI(XTonly)
bit7=1RAMparitycheck
bit6=1I/Ochannelcheck
bit5=1timer2channelout
bit4 reserved
bit3=1systemboardRAMsizetype1
bit2=1systemboardRAMsizetype2
bit1=1coprocessorinstalled
bit0=1loopinPOST
0063
r/w
PPI(XTonly)commandmoderegister(readdipswitches)
bit76=001diskettedrive
=012diskettedrives
=103diskettedrives
=114diskettedrives
bit54=00reserved
http://bochs.sourceforge.net/techspec/PORTS.LST
7/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
=0140*25color(monomode)
=1080*25color(monomode)
=11MDA80*25
bit32=00256K(using256Kchips)
=01512K(using256Kchips)
=10576K(using256Kchips)
=11640K(using256Kchips)
bit32=0064K(using64Kchips)
=01128K(using64Kchips)
=10192K(using64Kchips)
=11256K(using64Kchips)
bit10reserved
0064
KBcontrollerreadstatus(ISA,EISA)
bit7=1parityerrorontransmissionfromkeyboard
bit6=1receivetimeout
bit5=1transmittimeout
bit4=0keyboardinhibit
bit3=1dataininputregisteriscommand
0dataininputregisterisdata
bit2 systemflagstatus:0=poweruporreset1=selftestOK
bit1=1inputbufferfull(input60/64hasdatafor8042)
bit0=1outputbufferfull(output60hasdataforsystem)
0064
KBcontrollerreadstatus(MCA)
bit7=1parityerrorontransmissionfromkeyboard
bit6=1generaltimeout
bit5=1mouseoutputbufferfull
bit4=0keyboardinhibit
bit3=1dataininputregisteriscommand
0dataininputregisterisdata
bit2 systemflagstatus:0=poweruporreset1=selftestOK
bit1=1inputbufferfull(input60/64hasdatafor804x)
bit0=1outputbufferfull(output60hasdataforsystem)
0064
KBcontrollerreadstatusbyCompaq
bit7=1parityerrordetected(11bitformatonly).Ifan
errorisdetected,aResendcommandissenttothe
keyboardonceonly,asanattempttorecover.
bit6=1receivetimeout.transmissiondidn'tfinishin2mS.
bit5=1transmissiontimeouterror
bit5,6,7cause
100Noclock
110ClockOK,noresponse
101ClockOK,parityerror
bit4=0securitylockengaged
bit3=1datainOUTPUTregisteriscommand
0datainOUTPUTregisterisdata
bit2 systemflagstatus:0=poweruporreset1=softreset
bit1=1inputbufferfull(output60/64hasdata)
bit0=0nonewdatainbuffer(input60hasdata)
0064
KBcontrollerinputbuffer(ISA,EISA)
KBcontrollercommands(datagoestoport0060):
20
readreadbytezeroofinternalRAM,thisisthe
lastKBcommandsendto804x
CompaqPutcurrentcommandbyteonport0060
commandstructure:
bit7 reserved
bit6=1convertKBcodesto8086scancodes
bit5=0use11bitcodes,1=use8086codes
bit4=0enablekeyboard,1=disablekeyboard
bit3=1ignoresecuritylockstate
bit2 thisbitgoesintobit2statusreg.
bit1=0reserved
http://bochs.sourceforge.net/techspec/PORTS.LST
8/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
213F
607F
bit0=1generateint.whenoutputbufferfull
readreadsthebytespecifiedinthelower5bitsof
thecommandinthe804x'sinternalRAM
dblwritesthedatabytetotheaddressspecifiedin
the5lowerbitsofthecommand.
AlternatedescriptionKBIOcommand60summary:
bit7=0reserved
bit6= IBMPCcompatibilitymode
bit5= IBMPCmode
bit4= disablekb
bit3= inhibitoverride
bit2= systemflag
bit1=0reserved
bit0= enableoutputbufferfullinterrupt
60CompaqLoadnewcommand(60to[64],commandto[60])
A1Compaqunknownspeedfunction??
A2Compaqunknownspeedfunction??
A3CompaqEnablesystemspeedcontrol
A4
MCAcheckifpasswordinstalled
A4CompaqTogglespeed
A5
MCAloadpassword
A5CompaqSpecialreed.the8042placestherealvalues
ofport2exceptforbits4and5wicharegiven
anewdefinitionintheoutputbuffer.Nooutput
bufferfullisgenerated.
ifbit5=0,a9bitkeyboardisinuse
ifbit5=1,an11bitkeyboardisinuse
ifbit4=0,outpbufffullinterruptdisabled
ifbit4=1,outputbufferfullint.enabled
A6
MCAcheckpassword
A6Compaqunknownspeedfunction??
A7
MCAdisablemouseport
A8
MCAenablemouseport
A9
MCAtestmouseport
AA
snglinitiateselftest.willreturn55todataport
CompaqInitializesports1and2,disablesthekeyboard
andclearsthebufferpointers.Itthenplaces
55intheoutputbuffer.
AB
snglinitiateinterfacetest.resultvalues:
0=noerror
1=keyboardclocklinestucklow
2=keyboardclocklinestuckhigh
3=keyboarddatalineisstucklow
4=keyboarddatalinestuckhigh
Compaq5=Compaqdiagnosticfeature
AC
readdiagnosticdump.thecontentsofthe804xRAM,
outputport,inputport,statuswordaresend.
AD
sngldisablekeyboard(setsbit4ofcommmandbyte)
AE
snglenablekeyboard(resetsbit4ofcommmandbyte)
AF
AWARDEnhancedCommand:readkeyboardversion
C0
readreadinputport
CompaqPlacesstatusofinputportinoutputbuffer.use
thiscommandonlywhentheoutputbufferisempty
C1
MCAEnhancedCommand:pollinputportLownibble
C2
MCAEnhancedCommand:pollinputportHighnibble
D0
readreadoutputport
CompaqPlacesbyteinoutputportinoutputbuffer.use
thiscommandonlywhentheoutputbufferisempty
D1
dblwriteoutputport.nextbytewrittento0060
willbewrittentothe804xoutputport;the
originalIBMATandmanycompatiblesusebit1of
theoutputporttocontroltheA20gate.
CompaqThesystemspeedbitsarenotsetbythiscommand
http://bochs.sourceforge.net/techspec/PORTS.LST
9/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
usecommandsA1A6(!)forspeedfunctions.
D2
MCAEnhancedCommand:writekeyboardoutputbuffer
D3
MCAEnhancedCommand:writepointingdeviceout.buf.
D4
MCAwritetomouse
D4
AWARDEnhancedCommand:writetoauxiliarydevice
DD
sngldisableaddresslineA20(HPVectraonly???)
defaultinRealMode
DF
snglenableaddresslineA20(HPVectraonly???)
E0
readreadtestinputs.
bit0=kbdclock,bit1=kbddata
Exxx AWARDEnhancedCommand:activeoutputport
EDCompaqThisisatwopartcommandtocontrolthestate
oftheNumLockCpasLockandScrollLockLEDs
ThesecondbytecontainsthestatetosetLEDs.
bit73reserved.shouldbesetto0.
bit2=0CapsLockLEDoff
bit1=0NumLockLEDoff
bit0=0ScrollLockLEDoff
F0FF snglpulseoutputportlowfor6microseconds.
bits03containthemaskforthebitstobe
pulsed.abitispulsedifitsmaskbitiszero.
bit0=systemreset.Don'tsettozero.Pulseonly!
generalnote: Keyboardcontrollersarewidelydifferentfromeachother.
Youcannotgenerallyexchangethembetweendifferentmachines.
noteonAward: DerivedfromAward'sEnhancedKBcontrolleradvertisingsheet.
noteonCompaq:DerivedfromtheCompaqDeskpro386Tech.Ref.Guide.
0065
communicationsport(OlivettiM24)
0068
0069
006A
w
r
w
HPVectracontrolbuffer(HPcommands)
HPVectraSVC(keyboardrequestSerViCeport)
HPVectraclearprocessing,done
006C006F
HPHIL (HumanInterfaceLink=async.serialinputs07)
0065
AT&T6300+high/lowchipselect
0065
???
0065
r/w
???
bit2:A20gatecontrol(set=A20enabled,clear=disabled)
00660067 AT&T6300+systemconfigurationswitches
0068
C&Tchipsets,turbomodecontrol
006B006F SSGAcontrolregisters
006B
?
006C006F
RAMenable/remap
undocumented
0070007F CMOSRAM/RTC(RealTimeClockMC146818)
0070
CMOSRAMindexregisterport(ISA,EISA)
bit7 =1NMIdisabled
=0NMIenabled
bit60CMOSRAMindex(64bytes,sometimes128bytes)
http://bochs.sourceforge.net/techspec/PORTS.LST
10/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
anywriteto0070shouldbefollowedbyanactionto0071
ortheRTCwilbeleftinanunknownstate.
0071
r/w
CMOSRAMdataport(ISA,EISA)
RTCregisters:
00currentsecondinBCD
01alarmsecondinBCD
02currentminuteinBCD
03alarmminuteinBCD
04currenthourinBCD
05alarmhourinBCD
06dayofweekinBCD
07dayofmonthinBCD
08monthinBCD
09yearinBCD(0099)
0AstatusregisterA
bit7=1updateinprogress
bit64dividerthatidentifiesthetimebased
frequency
bit30rateselectionoutputfrequencyandint.rate
0BstatusregisterB
bit7=0run
=1halt
bit6=1enableperiodicinterrupt
bit5=1enablealarminterrupt
bit4=1enableupdateendedinterrupt
bit3=1enablesquarewaveinterrupt
bit2=1calendarisinbinaryformat
=0calendarisinBCDformat
bit1=124hourmode
=012hourmode
bit0=1enabledaylightsavingstime.onlyinUSA.
uselessinEurope.SomeDOSversionsclear
thisbitwhenyouusetheDAT/TIMEcommand.
0CstatusregisterC
bit7= interruptrequestflag
bit6= peridocinterruptflag
bit5= alarminterruptflag
bit4= updateinterruptflag
bit30 reserved
0DstatusregisterD
bit7=1RealTimeClockhaspower
bit60 reserved
0Ediagnosticsstatusbyte
bit7=0RTClostpower
bit6=1CMOSRAMchecksumbad
bit5=1invalidconfigurationinformationatPOST
bit4=1memorysizeerroratPOST
bit3=1fixeddisk/adapterfailedinitialization
bit2=1CMOSRAMtimefoundinvalid
bit1=1adaptersdonotmatchconfiguration(EISA)
bit0=1timeoutreadinganadapterID(EISA)
0Fshutdownstatusbyte
00=normalexecutionofPOST
01=chipsetinitializationforrealmodereentry
04=jumptobootstrapcode
05=issueanEOIanJMPtoDwordptrat40:67
06=JMPtoDwordptrvat40:67withoutEOI
07=returntoINT15/87(blockmove)
08=returntoPOSTmemorytest
09=returntoINT15/87(blockmove)
0A=JMPtoDwordptrat40:67withoutEOI
0B=returnIRETSthrough40:67
10diskettedrivetypeforA:andB:
bit74 drivetypeofdrive0
http://bochs.sourceforge.net/techspec/PORTS.LST
11/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit30 drivetypeofdrive1
=0000 nodrive
=0001 360K
=0010 1M2
=0011 720K
=0100 1M44
=01011111reserved
11reserved/AMIExtendedCMOSsetup(AMIHiFlexBIOS)
bit7=1TypematicRateProgramming
bit65=00TypematicRateDelay250mSec
bit40=00011TypematicRate21.8Chars/Sec
12fixeddiskdrivetypefordrive0anddrive1
bit74 drivetypeofdrive0
bit30 drivetypeofdrive1
ifeitherofthenibblesequals0F,thenbytes
19an1Aarevalid
13reserved/AMIExtendedCMOSsetup(AMIHiFlexBIOS)
bit7=1MouseSupportOption
bit6=1Above1MBMemoryTestdisable
bit5=1MemoryTestTickSounddisable
bit4=1MemoryParityErrorCheckenable
bit3=1Hit<ESC>MessageDisplaydisabled
bit2=1HardDiskType47DataAreaataddress0:300
bit1=1WaitFor<F1>IfAnyErrorenabled
bit0=1SystemBootUpNumLockisOn
14equipmentbyte
bit76 diskettedrivesinstalled
=001driveinstalled
=012drivesinstalled
=10reserved
=11reserved
bit54 primarydisplay
=00adaptercardwithoptionROM
=0140*25color
=1080*25color
=11monochrome
bit32 reserved
bit1=1coprocessorinstalled(nonWeitek)
bit0
diskettedriveavaliableforboot
15LSBofsystemnbasememoryinKb
16MSBofsystemnbasememoryinKb
17LSBoftotalextendedmemoryinKb
18MSBoftotalextendedmemoryinKb
19driveCextensionbyte
1AdriveDextensionbyte
1B27reserved
1B/1Cwordto82335RC1rollcompareregisterat[24]
(Phoenix)
1D/1Ewordto82335RC2rollcompareregisterat[26]
(Phoenix)
28HPVectrachecksumover292D
292Dreserved
29/2AwordtoIntel82335CC0compareregisterat
[28](Phoenix)
2B/2Cwordsendto82335CC1compareregisterat[2A]
(Phoenix)
2DAMIExtendedCMOSsetup(AMIHiFlexBIOS)
(PhoenixBIOSchecksforthevaluesAAorCC)
bit7=1WeitekProcessorAbsent
bit6=1FloppyDriveSeekAtBootdisabled
bit5=1SystemBootUpSequenceC:,A:
bit4=1SystemBootUpSpeedishigh
bit3=1CacheMemoryenabled
bit2=1InternalCacheMemory<1>
bit10 reserved
http://bochs.sourceforge.net/techspec/PORTS.LST
12/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
2ECMOSMSBchecksumover102D
2FCMOSLSBchecksumover102D
30LSBofextendedmemoryfoundabove1MbatPOST
31MSBofextendedmemoryfoundabove1MbatPOST
32datecenturyinBCD
33informationflags
bit4=bit4fromCPUregisterCR0(Phoenix)
thisbitisonlyknownasINTELRESERVED
343Freserved
34bit4bit5(PhoenixBIOS)
3D/3Ewordto82335MCRmemoryconfigregisterat
[22](Phoenix)
3Dbit3
basememsize512/640(Phoenix)
3Ebit7=1relocateenable(Phoenix)
bit1=1shadowvideoenable(Phoenix)
bit0=1shadowBIOSenable(Phoenix)
UserDefinableDriveParametersarealsostoredinCMOSRAM:
AMI(386sxBIOS1989)firstuserdefinabledrive(type47)
1BLcylinders
1CHcylinders
1Dheads
1ELWritePrecompensationCylinder
1FHWritePrecompensationCylinder
20??
21Lcylindersparkingzone
22Hcylindersparkingzone
23sectors
AMI(386sxBIOS1989)seconduserdefinabledrive(type48)
24Lcylinders
25Hcylinders
26heads
27LWritePrecompensationCylinder
28HWritePrecompensationCylinder
29??
2ALcylindersparkingzone
2BHcylindersparkingzone
2Csectors
Phoenix(386BIOSv1.10.031988)1stuserdefinabledrv(type48)
20Lcylinders
21Hcylinders
22heads
23LWritePrecompensationCylinder
24HWritePrecompensationCylinder
25Lcylindersparkingzone
26Hcylindersparkingzone
27sectors
Phoenix(386BIOSv1.10.031988)2nduserdefinabledrv(type49)
(whenPS/2stylepasswordoptionisnotused)
35Lcylinders
36Hcylinders
37heads
38LWritePrecompensationCylinder
39HWritePrecompensationCylinder
3ALcylindersparkingzone
3BHcylindersparkingzone
3Csectors
0073
IntelPentiummotherboard("Neptune"chipset)
http://bochs.sourceforge.net/techspec/PORTS.LST
13/54
15/10/2015
0073
bochs.sourceforge.net/techspec/PORTS.LST
r/w
bit7:???
00740076
secondaryCMOS(Compaq)
0074
secondaryCMOSRAMindex(Compaq)
0076
r/w
secondaryCMOSRAM(Compaq)
0078
HPVectraHardReset:NMIenable/disable
bit7=0disable&clearhardresetfromHPHILcontroller
=1enablehardresetfromHPHILcontrollerchip
bit60reserved
0078007F PCradiobyCoZetInfoSystems
TheI/Oaddressrangeisdipswitchselectablefrom:
03803Fand0B00BF
07807Fand0F00FF
13813Fand1B01BF
17817Fand1F01FF
23823Fand2B02BF
27827Fand2F02FF
33833Fand3B03BF
37837Fand3F03FF
AlloftheseaddressesshowareadoutofFFininitialstate.
Oncestarted,alloftheaddressesshowFB,whatevermight
happen.
007C007D HPVectraPIC3(ProgrammableInterruptController8259)
cascadedtofirstcontroller.
usedforkeyboardandinputdeviceinterface.
007C
r/w
HPVectraPIC3seeat0020PIC1
007D
r/w
HPVectraPIC3seeat0021PIC1
0080
w
ManufacturingDiagnosticsport
0080008F DMApageregisters(74612)
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0089
0089
008C
008D
008E
008F
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
extrapageregister(temporarystorage)
DMAchannel2addressbyte2
DMAchannel3addressbyte2
DMAchannel1addressbyte2
extrapageregister
extrapageregister
extrapageregister
DMAchannel0addressbyte2
extrapageregister
DMAchannel6addressbyte2
DMAchannel7addressbyte2
DMAchannel5addressbyte2
extrapageregister
extrapageregister
extrapageregister
DMArefreshpageregister
0084
CompaqPOSTDiagnostic
http://bochs.sourceforge.net/techspec/PORTS.LST
14/54
15/10/2015
0084
bochs.sourceforge.net/techspec/PORTS.LST
EISASynchronizeBusCycle
0090009F PS/2POS(ProgrammableOptionSelect)
0090
0091
Centralarbitrationcontrolport
Cardselectionfeedback
0092
r/w
PS/2systemcontrolportA(portBisat0061)
bit76anybitsetto1turnsactivitylighton
bit5 reserved
bit4=1watchdogtimoutoccurred
bit3=0RTC/CMOSsecuritylock(onpasswordarea)unlocked
=1CMOSlocked(donebyPOST)
bit2 reserved
bit1=1indicatesA20active
bit0=0systemresetorwrite
1pulsealternateresetpin(alternateCPUreset)
0094
systemboardenable/setupregister
bit7=1enablefunctions
=0setupfunctions
bit5=1enablesVGA
=0setupVGA
0095
reserved
0096
adapterenable/setupregister
bit3=1setupadapters
=0enableregisters
0097
reserved
r/w
NMImaskregister(XT)
00A0
00A1
r/w
r/w
PIC2sameas0020forPIC1
PIC2sameas0021forPIC1exceptforOCW1:
bit7=0reserved
bit6=0enablefixeddiskinterrupt
bit5=0enablecoprocessorexceptioninterrupt
bit4=0enablemouseinterrupt
bit3=0reserved
bit2=0reserved
bit1=0enableredirectcascade
bit0=0enablerealtimeclockinterrupt
00B000BF PCradiobyCoZetInfoSystems
TheI/Oaddressrangeisdipswitchselectablefrom:
03803Fand0B00BF
07807Fand0F00FF
13813Fand1B01BF
17817Fand1F01FF
23823Fand2B02BF
27827Fand2F02FF
33833Fand3B03BF
37837Fand3F03FF
AlloftheseaddressesshowareadoutofFFininitialstate.
Oncestarted,alloftheaddressesshowFB,whatevermight
happen.
http://bochs.sourceforge.net/techspec/PORTS.LST
15/54
15/10/2015
00C0
bochs.sourceforge.net/techspec/PORTS.LST
TISN746496programmabletone/noisegenerator PCjr
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
DMAchannel4memoryaddressbytes1and0(low)(ISA,EISA)
DMAchannel4transfercountbytes1and0(low)(ISA,EISA)
DMAchannel5memoryaddressbytes1and0(low)(ISA,EISA)
DMAchannel5transfercountbytes1and0(low)(ISA,EISA)
DMAchannel6memoryaddressbytes1and0(low)(ISA,EISA)
DMAchannel6transfercountbytes1and0(low)(ISA,EISA)
DMAchannel7memoryaddressbyte0(low),then1(ISA,EISA)
DMAchannel7transfercountbyte0(low),then1(ISA,EISA)
00D0
DMAchannel47statusregister(ISA,EISA)
bit7=1channel7request
bit6=1channel6request
bit5=1channel5request
bit4=1channel4request
bit3=1terminalcountonchannel7
bit2=1terminalcountonchannel6
bit1=1terminalcountonchannel5
bit0=1terminalcountonchannel4
00D0
DMAchannel47commandregister(ISA,EISA)
bit7=1DACKsenseactivehigh
=0DACKsenseactivelow
bit6=1DREQsenseactivehigh
=0DREQsenseactivelow
bit5=1extendedwriteselection
=0latewriteselection
bit4=1rotatingpriority
=0fixedpriority
bit3=1compressedtiming
=0normaltiming
bit2=0enablecontroller
bit1=1enablememorytomemorytransfer
bit0 .....
00D2
DMAchannel47writerequestregister(ISA,EISA)
00D4
DMAchannel47writesinglemaskregister(ISA,EISA)
bit73reserved
bit2 =0clearmaskbit
=1setmaskbit
bit10=00channel4select
=01channel5select
=10channel6select
=11channel7select
00D6
DMAchannel47moderegister(ISA,EISA)
bit76=00demandmode
=01singlemode
=10blockmode
=11cascademode
bit5 =0addressincrementselect
=1addressdecrementselect
bit4 =0autoinitialisationdisable
=1autoinitialisationenable
bit32=00verifyoperation
=01writetomemory
=10readfrommemory
=11reserved
bit10=00channel4select
=01channel5select
http://bochs.sourceforge.net/techspec/PORTS.LST
16/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
=10channel6select
=11channel7select
00D8
00DA
00DA
00DC
00DE
w
r
w
w
w
DMAchannel47clearbytepointerflipflop(ISA,EISA)
DMAchannel47readtemporaryregister(ISA,EISA)
DMAchannel47masterclear(ISA,EISA)
DMAchannel47clearmaskregister(ISA,EISA)
DMAchannel47writemaskregister(ISA,EISA)
00E000E7 Microchannel
00E0
00E1
00E3
00E4
00E5
00E7
r/w
r/w
r/w
r/w
r/w
r/w
splitaddressregister,memoryencodingregistersPS/2m80only
memoryregister
errortrace
errortrace
errortrace
errortrace
00F000F5 PCjrDiskController
00F0
00F2
00F4
00F5
diskcontroller
diskcontrollercontrolport
diskcontrollerstatusregister
diskcontrollerdataport
00F000FF coprocessor(8087..80387)
00F0
00F1
00F8
00FA
00FC
w
w
r/w
r/w
r/w
mathcoprocessorclearbusylatch
mathcoprocessorreset
opcodetransfer
opcodetransfer
opcodetransfer
00F900FF PCradiobyCoZetInfoSystems
TheI/Oaddressrangeisdipswitchselectablefrom:
03803Fand0B00BF
07807Fand0F00FF
13813Fand1B01BF
17817Fand1F01FF
23823Fand2B02BF
27827Fand2F02FF
33833Fand3B03BF
37837Fand3F03FF
AlloftheseaddressesshowareadoutofFFininitialstate.
Oncestarted,alloftheaddressesshowFB,whatevermight
happen.
0100010F CompaQTapedriveadapter.alternateaddressat0300
01000107 PS/2POS(ProgrammableOptionSelect)
0100
0101
r
r
POSregister0 LowadapterIDbyte
POSregister1 HighadapterIDbyte
0102
r/w
POSregister2 optionselectdatabyte1
bit0iscardenable(CDEN)
0103
0104
r/w
r/w
POSregister3 optionselectdatabyte2
POSregister4 optionselectdatabyte3
http://bochs.sourceforge.net/techspec/PORTS.LST
17/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
0105
r/w
POSregister5 optionselectdatabyte4
bit7 channelactive(CHCK)
bit6 channelstatus
0106
0107
r/w
r/w
POSregister6 Lowsubaddressextension
POSregister7 Highsubaddressextension
0108010F 8digitLEDinfopanelonIBMPS/2
010F
010E
....
0108
w
w
w
w
leftmostcharacterondisplay
secondcharacter
eighthcharacter
0130013F CompaQSCSIadapter.alternateaddressat0330
01300133 Adaptec154xB/154xCSCSIadapter.
alternateaddressat0134,0230,0234,0330and0334
01340137 Adaptec154xB/154xCSCSIadapter.
alternateaddressat0130,0230,0234,0330and0334
0138013F PCradiobyCoZetInfoSystems
TheI/Oaddressrangeisdipswitchselectablefrom:
03803Fand0B00BF
07807Fand0F00FF
13813Fand1B01BF
17817Fand1F01FF
23823Fand2B02BF
27827Fand2F02FF
33833Fand3B03BF
37837Fand3F03FF
AlloftheseaddressesshowareadoutofFFininitialstate.
Oncestarted,alloftheaddressesshowFB,whatevermight
happen.
0140014F SCSI(alternateSmallComputerSystemInterface)adapter
(1stat0340034F)
015F
ARTECHandyscannerA400Z.alternateaddressat35F.
01780179 PowerManagement
0178
0179
w
r/w
indexselectionfordataport
powermanagementdata
0178017F PCradiobyCoZetInfoSystems
TheI/Oaddressrangeisdipswitchselectablefrom:
03803Fand0B00BF
07807Fand0F00FF
http://bochs.sourceforge.net/techspec/PORTS.LST
18/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
13813Fand1B01BF
17817Fand1F01FF
23823Fand2B02BF
27827Fand2F02FF
33833Fand3B03BF
37837Fand3F03FF
AlloftheseaddressesshowareadoutofFFininitialstate.
Oncestarted,alloftheaddressesshowFB,whatevermight
happen.
01E801EF SystemControl.Laptopchipset:HeadlandHL21&AcerM5105
01ED
01EE
01EF
r/w
r
r/w
selectinternalregister.Datato/from01EF
reg.
5=1000xxxxforlowCPUclockspeed(4MHzonMorse/Mitac)
=0xxxxxxxforhighCPUclockspeed(16MHzonMorse/Mitac)
r/w
dataregister
01F1
errorregister
diagnosticmodeerrors:
bit73
reserved
bit21=001 noerrordetected
=010 formatterdeviceerror
=011 sectorbuffererror
=100 ECCcircuitryerror
=101 controllingmicroprocessorerror
operationmode:
bit7=1badblockdetected
=0blockOK
bit6=1uncorrectableECCerror
=0noerror
bit5reserved
bit4=1IDfound
=0IDnotfound
bit3reserved
bit2=1commandcompleted
=0commandaborted
bit1=1track000notfound
=0track000found
bit0=1DAMnotfound
=0DAMfound(CP3022always0)
01F1
WPC/4(WritePrecompensationCylinderdividedby4)
01F2
01F3
01F4
01F5
r/w
r/w
r/w
r/w
sectorcount
sectornumber
cylinderlow
cylinderhigh
01F6
r/w
drive/head
bit7 =1
bit6 =0
bit5 =1
bit4 =0drive0select
=1drive1select
bit30headselectbits
01F7
statusregister
bit7=1controllerisexecutingacommand
http://bochs.sourceforge.net/techspec/PORTS.LST
19/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit6=1driveisready
bit5=1writefault
bit4=1seekcomplete
bit3=1sectorbufferrequiresservicing
bit2=1diskdatareadsuccessfullycorrected
bit1=1indexsetto1eachdiskrevolution
bit0=1previouscommandendedinanerror
01F7
commandregister
commands:
98E5 checkpowermode
(IDE)
90
executedrivediagnostics
50
formattrack
EC
identifydrive
(IDE)
97E3 idle
(IDE)
95E1 idleimmediate
(IDE)
91
initializedriveparameters
1x
recalibrate
E4
readbuffer
(IDE)
C8
readDMAwithretry
(IDE)
C9
readDMAwithoutretry(IDE)
C4
readmultiplec
(IDE)
20
readsectorswithretry
21
readsectorswithoutretry
22
readlongwithretry
23
readlongwithoutretry
40
readverifysectorswithretry
41
readverifysectorswithoutretry
7x
seek
EF
setfeatures
(IDE)
C6
setmultiplemode
(IDE)
99E6 setsleepmode
(IDE)
96E2 standby
(IDE)
94E0 standbyimmediate
(IDE)
E8
writebuffer
(IDE)
CA
writeDMAwithretry (IDE)
CB
writeDMAwithretry (IDE)
C5
writemultiple
(IDE)
E9
writesame
(IDE)
30
writesectorswithretry
31
writesectorswithoutretry
32
writelongwithretry
33
writelongwithoutretry
3C
writeverify
(IDE)
9A
vendorunique
(IDE)
C0C3 vendorunique
(IDE)
8x
vendorunique
(IDE)
F0F4 EATAstandard
(IDE)
F5FF vendorunique
(IDE)
01F8
???
01F8
r/w
???
bit0:A20gatecontrol(set=A20enabled,clear=disabled)
01F901FF PCradiobyCoZetInfoSystems
TheI/Oaddressrangeisdipswitchselectablefrom:
03803Fand0B00BF
07807Fand0F00FF
13813Fand1B01BF
17817Fand1F01FF
23823Fand2B02BF
27827Fand2F02FF
http://bochs.sourceforge.net/techspec/PORTS.LST
20/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
33833Fand3B03BF
37837Fand3F03FF
AlloftheseaddressesshowareadoutofFFininitialstate.
Oncestarted,alloftheaddressesshowFB,whatevermight
happen.
0200020F GameportreservedI/Oaddressspace
02000207 Gameport,eightidenticaladdressesonsomeboards
0201
readjoystickpositionandstatus
bit7 statusBjoystickbutton2/Dpaddlebutton
bit6 statusBjoystickbutton1/Cpaddlebutton
bit5 statusAjoystickbutton2/Bpaddlebutton
bit4 statusAjoystickbutton1/Apaddlebutton
bit3 BjoystickYcoordinate/Dpaddlecoordinate
bit2 BjoystickXcoordinate/Cpaddlecoordinate
bit1 AjoystickYcoordinate/Bpaddlecoordinate
bit0 AjoystickXcoordinate/Apaddlecoordinate
firejoysticksfouroneshots
020002FF SunshineuPW48,programmerforEPROMversionCPU's8748/8749
(4bitDIPswitchinstallableintherange20x2Fx)
02000203
adressesofthe8255ontheuPW48
0208020B
adressesof???ontheuPW48(allshowingzeros)
02100217 Expansionunit(XT)
0210
0211
0212
0213
0214
0215
w
r
w
r
r
w
w
r
r
latchexpansionbusdata
verifyexpansionbusdata
clearwait,testlatch
Highbytedataaddress
Lowbytedataaddress
0=enable,1=disableexpansionunit
latchdata(receivercardport)
readdata(receivercardport)
Highbyteofaddress,thenLowbyte(receivercardport)
02200223SoundBlaster/Adlibport
0220
0221
0222
0223
r/w
w
r/w
LeftspeakerStatus/Addressport
LeftspeakerDataport
RightspeakerStatus/Addressport
Address:
01Enablewaveformcontrol
02Timer#1data
03Timer#2data
04Timercontrolflags
08Speechsynthesismode
2035AmplitudeModulation/Vibrato
4055Levelkeyscaling/Totallevel
6075Attack/Decayrate
8095Sustain/Releaserate
A0B8Octave/FrequencyNumber
C0C8Feedback/Algorithm
E0F5WaveformSelection
RightspeakerDataport
SeeAlso:03880389
http://bochs.sourceforge.net/techspec/PORTS.LST
21/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
02200227 SoundblasterPROandSSB16ASP
0220022F SoundblasterPRO2.0
0220022F SoundblasterPRO4.0
0220
r
leftFMstatusport
0220
w
leftFMmusicregisteraddressport(index)
0221
r/w
leftFMmusicdataport
0222
r
rightFMstatusport
0222
w
rightFMmusicregisteraddressport(index)
0223
r/w
rightFMmusicdataport
0224
w
mixerregisteraddressport(index)
0225
r/w
mixerdataport
0226
w
DSPreset
0228
r
FMmusicstatusport
0228
w
FMmusicregisteraddressport(index)
0229
w
FMmusicdataport
022A
r
DSPreaddata(voiceI/OandMidi)
022C
w
DSPwritedata/writecommand
022C
r
DSPwritebufferstatus(bit7)
022E
r
DSPdataavailablestatus(bit7)
TheFMmusicisaccessibleon0388/0389forcompatibility.
02300233 Adaptec154xB/154xCSCSIadapter.
alternateaddressat0130,0134,0230,0330and0334
02340237 Adaptec154xB/154xCSCSIadapter.
alternateaddressat0130,0134,0230,0330and0334
0240024F GravisUltraSoundbyAdvancedGravis
TheI/Oaddressrangeisdipswitchselectablefrom:
0200020Fand0300030F
0210021Fand0310031F
0220022Fand0320032F
0230023Fand0330033F
0240024Fand0340034F
0250025Fand0350035F
0260026Fand0360036F
0270027Fand0370037F
0240
0241
0246
r
w
r
MixControlregister
bit6 ControlRegisterSelect(see024B)
bit5 EnableMIDILoopback
bit4 CombineGF1IRQwithMIDIIRQ
bit3 EnableLatches
bit2 EnableMICIN
bit1 DisableLINEOUT
bit0 DisableLINEIN
ReadData
TriggerTimer
IRQStatusRegister
bit7 DMATCIRQ
bit6 VolumeRampIRQ
bit5 WaveTableIRQ
bit3 Timer2IRQ
bit2 Timer1IRQ
bit1 MIDIReceiveIRQ
bit0 MIDITransmitIRQ
http://bochs.sourceforge.net/techspec/PORTS.LST
22/54
15/10/2015
0248
0249
024B
024F
bochs.sourceforge.net/techspec/PORTS.LST
r/w
r/w
TimerControlReg
SameaADLIBBoard(lookat0200)
TimerData
bit7 ResetTimrIRQ
bit6 MaskTimer1
bit5 MaskTimer2
bit1 Timer2Start
bit0 Timer1Start
IRQControlRegister(0240bit6=1)
bit6 CombineBothIRQ
bit53MIDIIRQSelector
=000NoIRQ
=001IRQ2
=010IRQ5
=011IRQ3
=100IRQ7
=101IRQ11
=110IRQ12
=111IRQ15
bit20GF1IRQSelector
=000NoIRQ
=001IRQ2
=010IRQ5
=011IRQ3
=100IRQ7
=101IRQ11
=110IRQ12
=111IRQ15
DMAControlRegister(0240bit6=0)
bit6 CombineBothIRQ
bit53DMASelectRegister2
=000NoDMA
=001DMA1
=010DMA3
=011DMA5
=100DMA6
=101DMA7
bit20DMASelectRegister1
=000NoDMA
=001DMA1
=010DMA3
=011DMA5
=100DMA6
=101DMA7
RegisterControls(rev3.4+)
SeeAlso:0340034F,0746
(usedbyTIMER.COMv1.2whichisthe'standard'timerprogram)
0258025F IntelAboveBoard
0278027E parallelprinterport,sameas0378and03BC
0278
0279
027A
w
r/w
r/w
dataport
statusport
controlport
02A002A7 SunshineEW901BN,EW904BN
EPROMwritercard(release1986)forEPROMsupto27512
http://bochs.sourceforge.net/techspec/PORTS.LST
23/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
02A002A3
adressesofthe8255ontheEW90xBN
02A202A3 MSM58321RSclock
02B002BF TrantorSCSIadapter
02C002Cx ASTclock
02E002EF GPIB(GeneralPurposeInterfaceBus,IEEE488interface)
(GAB0onXT)
02E1
GPIB(adapter0)
02E2
02E3
02E002EF dataaquisition(AT)
02E2
02E3
dataaquisition(adapter0)
dataaquisition(adapter0)
02E8
S386C928videocontroller(ELSAWinner1000)
02E802EF serialport,sameas02F8,03E8and03F8
02E802EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
02E8
02E8
02EA
02EB
02EC
02ED
r
w
w
w
w
w
displaystatus
horizontaltotal
DACmask
DACreadindex
DACwriteindex
DACdata
02EA
S386C928videocontroller(ELSAWinner1000)
02F802FF serialport,sameas02E8,03E8and03F8
02F8
02F8
02F9
02FA
02FB
02FC
02FD
02FF
w
r
r/w
r/w
r/w
r
r/w
r/w
r
r/w
transmitterholdingregister
receiverbufferregister
divisorlatch,lowbytewhenDLAB=1
divisorlatch,highbytewhenDLAB=1
interruptenableregisterwhenDLAB=0
interruptidentificationregister
linecontrolregister
modemcontrolregister
linestatusregister
scratchregister
0300
AwardPOSTDiagnostic
http://bochs.sourceforge.net/techspec/PORTS.LST
24/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
03000301Soundblaster16ASPMPUMidi
03000303 Panasonic52xCDROMSCSIMiniport
Alternateaddressesat0320,0340,0360,and0380
0300030F PhilipsCDROMplayerCM50
0300030F CompaQTapedriveadapter.alternateaddressat0100
0300031F prototypecards
Periscopehardwaredebugger
0310031F PhilipsCDROMplayerCM50
03200323 XTHDC1(HardDiskController)
0320
r/w
dataregister
0321
w
r
resetcontroller
readcontrollerhardwarestatus
bit76=0
bit5 logicalunitnumber
bit42=0
bit1 =0noerror
bit0 =0
0322
0323
r
w
w
readDIPswitchsettingonXTcontrollercard
generatecontrollerselectpulse
writepatterntoDMAandINTmaskregister
03240327 XTHDC2(HardDiskController)
0328032B XTHDC3(HardDiskController)
032C032F XTHDC4(HardDiskController)
03300331 MIDIinterface
03300333 Adaptec154xB/154xCSCSIadapter.defaultaddress.
alternateaddressat0130,0134,0230,0234and0334
0330033F CompaQSCSIadapter.alternateaddressat0130
0330033F PhilipsCDROMplayerCM50
03340337 Adaptec154xB/154xCSCSIadapter.
alternateaddressat0130,0134,0230,0234and0330
0338
AdLibsoundblastercard
0340034F PhilipsCDROMplayerCM50
0340034F SCSI(1stSmallComputerSystemInterface)adapter
http://bochs.sourceforge.net/techspec/PORTS.LST
25/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
(alternateat0140014F)
0340034F GravisUltraSoundbyAdvancedGravis
TheI/Oaddressrangeisdipswitchselectablefrom:
0200020Fand0300030F
0210021Fand0310031F
0220022Fand0320032F
0230023Fand0330033F
0240024Fand0340034F
0250025Fand0350035F
0260026Fand0360036F
0270027Fand0370037F
0340
w
MIDIControl
bit7 ReceiveIRQ(1=enabled)
bit56XmitIRQ
bit01MasterReset(1=enabled)
r
MIDIStatus
bit7 Interruptpending
bit5 OverrunError
bit4 FramingError
bit1 TransmitRegisterEmpty
bit0 ReceiveRegisterEmpty
0341
w
MIDITransmitData
r
MIDIReceiveData
0342
r/w
GF1PageRegister/VoiceSelect
0343
r/w
GF1/GlobalRegisterSelect
GlobalRegisters,NOTvoicespecific:
41r/wDRAMDMAControl
bit7
InvertMSB
bit6
DataSize(8/16bits)
bit5
DMAPending
bit34
DMARateDivider
bit2
DMAChannelWidth(8/16bits)
bit1
DMADirection(1=read)
bit0
DMAEnable
42wDMAStartAddress
bits150 DMAAddressLines194
43wDRAMI/OAddressLOW
44wDRAMI/OAddressHIGH
bits03 Upper4AddressLines
45r/wTimerControl
bit3
EnableTimer2
bit2
EnableTimer1
46wTimer1Count(granularityof80microsec)
47wTimer2Count(granulatityof320microsec)
48wSamplingFrequency
rate=9878400/(16*(FREQ+2))
49r/wSamplingControl
bit7
InvertMSB
bit6
DMAIRQpending
bit5
DMAIRQenable
bit2
DMAwidth(8/16bits)
bit1
Mode(mone/stereo)
bit0
StartSampling
4BwJoystickTrimDAC
4Cr/wRESET
bit2
GF1MasterIRQEnable
bit1
DACEnable
bit0
MasterReset
Voicespecificregisters:
00wVoiceControl
http://bochs.sourceforge.net/techspec/PORTS.LST
26/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit7
IRQpending
bit6
Direction
bit5
EnableWAVEIRQ
bit4
EnablebidirectionalLooping
bit3
EnableLooping
bit2
Sizedata(8/16bits)
bit1
StopVoice
bit0
VoiceStopped
01wFrequencyControl
bit1510 IntegerPortion
bit91
FractionalPortion
02wStartAddressHIGH
bit120 AddressLines197
03wStartAddressLOW
bit159 AddressLines60
bit85
FractionalPartofStartAddress
04wEndAddressHIGH
bit120 AddressLines197
05wEndAddressLOW
bit159 AddressLines60
bit85
FractionalPartofEndAddress
06wVolumeRampRate
bit50
Amountadded
bit76
Rate
07wVolumeRampStart
bit74
Exponent
bit30
Mantissa
08wVolumeRampEnd
bit74
Exponent
bit30
Mantissa
09wCurrentVolume
bit1512 Exponent
bit114 Mantissa
0AwCurrentAddressHIGH
bit120 AddressLines197
0BwCurrentAddressLOW
bit159 AddressLines60
bit80
FractionalPosition
0CwPanPosition
bit30
PanPostion
0DwVolumeControl
bit7
IRQPending
bit6
Direction
bit5
EnableVolumeRampIRQ
bit4
EnablebidirectionalLooping
bit3
EnableLooping
bit2
RolloverCondition
bit1
StopRamp
bit0
RampStopped
0EwActiveVoices
bit50
#Voices1(allowed1331)
0FwIRQSourceRegister
bit7
WaveTableIRQpending
bit6
VolumeRampIRQpending
bit40
VoiceNumber
80rVoiceControl(see00)
81rFrequencyControl(see01)
82rStartAddressHIGH(see02)
83rStartAddressLOW(see03)
84rEndAddressHIGH(see04)
85rEndAddressLOW(see05)
86rVolumeRampRate(see06)
87rVolumeRampStart(see07)
88rVolumeRampEnd(see08)
89rCurrentVolume(see09)
http://bochs.sourceforge.net/techspec/PORTS.LST
27/54
15/10/2015
0344
0345
0346
0347
bochs.sourceforge.net/techspec/PORTS.LST
r/w
r/w
w
r/w
8ArCurrentAddressHIGH(see0A)
8BrCurrentAddressLOW(see0B)
8CrPanPosition(see0C)
8DrVolumeControl(see0D)
8ErActiveVoices(see0E)
8FrIRQStatus(see0F)
GF1/GlobalDataLowByte(16bits)
GF1/GlobalDataHighByte(8bits)
MixerDataPort
GF1DRAM
DirectReadWriteatLoctionpointedwithregs43and44
SeeAlso:0240024F,0746
03400357 RTC(1stRealTimeClockforXT),(alternateat02400257)
(usedbyTIMER.COMv1.2whichisthe'standard'timerprogram)
0340
0341
0342
0343
0343
0345
0346
0347
0348
0349
034A
034B
034C
034D
034E
034F
0350
0351
0352
0353
0354
0355
0356
0357
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
0.01seconds099
0.1seconds099
seconds059
minutes059
hours 023
dayofweek17
dayofmonth131
month 112
r/w
year
status?
status?
099
03480357 DCA3278
034C034F GravisUltraMaxbyAdvancedGravis
TheI/Oaddressrangeisdipswitchselectablefrom:
0200020Fand0300030F
0210021Fand0310031F
0220022Fand0320032F
0230023Fand0330033F
0240024Fand0340034F
0250025Fand0350035F
0260026Fand0360036F
0270027Fand0370037F
035A035BAdaptecAH1520jumpersettings
035A
bit7: SCSIparitydisabled
bits65:DMAchannel
(00=channel0,01=5,10=6,11=7)
http://bochs.sourceforge.net/techspec/PORTS.LST
28/54
15/10/2015
035B
bochs.sourceforge.net/techspec/PORTS.LST
bits43:IRQnumber
(00=IRQ9,01=IRQ10,10=IRQ11,11=IRQ12)
bits20:SCSIID
bit7:DMAtransfermode(clearforPIO)
bit6:bootenabled
bits54:boottype
00???
01bootfromfloppy
10printconfiguredoptions
11bootfromharddisk
bit3:enablesyncnegotiation
bit2:enabletargetdisconnection
bits10:unused???
035F
ARTECHandyscannerA400Z.alternateaddressat15F.
0360036F PCnetwork(AT)
03600367 PCnetwork(XTonly)
0360036F NationalSemiconductorDP8390(1)C/NS3249Cnetworkchipset
Note: cardsbasedonthisIEEE802.3networkingchipsetcanuseanyrange
of16consecutiveaddresses,andprovideatotaloffourpagesof
sixteenregister
Page0 r
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
Commandreg.
currentlocalDMAaddress0
currentlocalDMAaddress1
boundarypointer
transmitstatusreg.
numberofcollisionsreg.
FIFO
interruptstatusreg.
currentremoteDMAaddress0
currentremoteDMAaddress1
reserved
reserved
receivestatusreg.
tallycounter0(frameerrors)
tallycounter1(CRCerrors)
tallycounter2(missedpkt)
CR
CLDA0
CLDA1
BNRY
TSR
NCR
ISR
CRDA0
CRDA1
RSR
CNTR0
CNTR1
CNTR2
Commandreg.
CR
pagestartreg.
PSTART
pagestopreg.
PSTOP
boundarypointer
BNRY
Txpagestartaddress TPSR
Txbytecountreg.0
TBCR0
Txbytecountreg.1
TBCR1
interruptstatusreg. ISR
remotestartaddr.reg.0RSAR0
remotestartaddr.reg.1RSAR1
remotebytecountreg.0RBCR0
remotebytecountreg.1RBCR1
Rxconfigurationreg. RCR
Txconfigurationreg. TCR
dataconfigurationreg.DCR
interruptmaskreg.
IMR
Page1 r/w
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
Command
CR
physicaladdressreg.0 PAR0
physicaladdressreg.1 PAR1
physicaladdressreg.2 PAR2
physicaladdressreg.3 PAR3
physicaladdressreg.4 PAR4
physicaladdressreg.5 PAR5
currentpagereg.
CURR
multicastaddressreg.0MAR0
multicastaddressreg.1MAR1
multicastaddressreg.2MAR2
multicastaddressreg.3MAR3
multicastaddressreg.4MAR4
multicastaddressreg.5MAR5
multicastaddressreg.6MAR6
multicastaddressreg.7MAR7
http://bochs.sourceforge.net/techspec/PORTS.LST
29/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
Page2 r
diagnosticspageshouldneverbemodfiedundernormaloperation.
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
Command
pagestartreg.
pagestopreg.
remotenextpacketpointer
Txpagestartaddress
localnextpacketpointer
addresscounter(upper)
addresscounter(lower)
reserved
reserved
reserved
reserved
Rxconfigurationreg.
Txconfigurationreg.
dataconfigurationreg.
interruptmaskreg.
CR
PSTART
BPSTOP
TPSR
RCR
TCR
DCR
IMR
Command
CR
currentlocalDMAaddr.0CLDA0
currentlocalDMAaddr.1CLDA1
remotenextpacketpointer
reserved
localnextpacketpointer
addresscounter(upper)
addresscounter(lower)
reserved
reserved
reserved
reserved
reserved
reserved
reserved
reserved
Page3 r
TestPageshouldneverbemodified!
00
CommandCR
CommandCR
bit0=1 softwareresetcommand.1=offline0=online
bit1=0 activateNICafterresetcommand
bit2=1 starttransmisionofapacket
bit35 remoteDMAcommand
000notallowed
001remoteread
010remotewrite
011sendpacket
1xxabort/completermoteDMA
bit6,7pageselect
00registerpage0
01registerpage1
10registerpage2
11registerpage3
03700377 FDC2(2ndFloppyDiskController)
firstFDCat03F0
(8272,8272A,NEC765)
(82072,82077AAforperpendicularrecordingat2.8Mb)
0370
0370
0371
0372
0374
0374
0375
0376
0377
0377
r
r
r
w
r
w
r/w
r/w
r
w
disketteExtraHighDensitycontrollerboardjumpers(AT)
diskettecontrollerstatusA(PS/2,PS/2model30)
diskettecontrollerstatusB(PS/2,PS/2model30)
diskettecontrollerDOR(DigitalOutputRegister)
diskettecontrollermainstatusregister
diskettecontrollerdatarateselectregister
diskettecontrollercommand/dataregister
(2ndFIXEDdiskcontrollerdataregister)
diskettecontrollerDIR(DigitalInputRegister)
selectregisterfordiskettedatatransferrate
0378037A parallelprinterport,sameas0278and03BC
0378
0379
037A
w
r/w
r/w
dataport
statusport
controlport
0380038F 2ndBinarySynchronousDataLinkControladapter(see03A0)
http://bochs.sourceforge.net/techspec/PORTS.LST
30/54
15/10/2015
0380
0381
0382
0383
0384
0385
0386
0387
0388
0389
038A
038B
038C
bochs.sourceforge.net/techspec/PORTS.LST
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
onboard8255portA,internal/externalsense
onboard8255portB,externalmodeminterface
onboard8255portC,internalcontrolandgating
onboard8255moderegister
onboard8253channelsquarewavegenerator
onboard8253channel1inactivitytimeout
onboard8253channel2inactivitytimeout
onboard8253moderegister
onboard8273read:statuswrite:command
onboard8273read:responsewrite:parameter
onboard8273transmitinterruptstatus
onboard8273receiverinterruptstatus
onboard8273data
03880389SoundBlaster/Adlibport
0388
0389
r/w
BothSpeakersStatus/Addressport
Address:
01Enablewaveformcontrol
02Timer#1data
03Timer#2data
04Timercontrolflags
08Speechsynthesismode
2035AmplitudeModulation/Vibrato
4055Levelkeyscaling/Totallevel
6075Attack/Decayrate
8095Sustain/Releaserate
A0B8Octave/FrequencyNumber
C0C8Feedback/Algorithm
E0F5WaveformSelection
Dataport
SeeAlso:02200223
03880389SoundblasterPROFMChip
0388038BSoundblaster16ASPFMChip
03900397 SunshineEW901B,EW904B
EPROMwritercardforEPROMsupto27512
03900393
adressesofthe8255ontheEW90xB
0390039F Clusteradapter(AT)
03900393
(adapter0)
(XT)
03A003AF 1stSDLC(BinarySynchronousDataLinkControladapter)
03A0
03A1
03A2
03A3
03A4
03A5
03A6
03A7
03A8
03A9
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
onboard8255portA,internal/externalsense
onboard8255portB,externalmodeminterface
onboard8255portC,internalcontrolandgating
onboard8255moderegister
onboard8253counter0unused
onboard8253channel1inactivitytimeout
onboard8253channel2inactivitytimeout
onboard8253moderegister
onboard8251data
onboard8251command/mode/statusregister
http://bochs.sourceforge.net/techspec/PORTS.LST
31/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
03B003BF MDA(MonochromeDisplayAdapterbasedon6845)
03B0
03B1
03B2
03B3
03B4
03B5
03B6
03B7
03B8
r/w
r/w
sameas03B4
sameas03B5
sameas03B4
sameas03B5
MDACRTindexregister (EGA/VGA)
selectswhichregister(011h)istobeaccessedthrough3B5
MDACRTdataregister (EGA/VGA)
selectedbyport3B4.registersCFmayberead
00horizontaltotal
01horizontaldisplayed
02horizontalsyncposition
03horizontalsyncpulsewidth
04verticaltotal
05verticaldisplayed
06verticalsyncposition
07verticalsuncpulsewidth
08interlacemode
09maximumscanlines
0Acursorstart
0Bcursorend
0Cstartaddresshigh
0Dstartaddresslow
0Ecursorlocationhigh
0Fcursorlocationlow
10lightpenhigh
11lightpenlow
sameas03B4
sameas03B5
MDAmodecontrolregister
bit7notused
bit6notused
bit5enableblink
bit4notused
bit3videoenable
bit2notused
bit1notused
bit0highresolutionmode
03B9
reservedforcolorselectregisteroncoloradapter
03BA
CRTstatusregister
EGA/VGA:inputstatus1register
bit7 (MSDsays)ifthisbitchangeswithin8000hreadsthen
bit64=000=adapterisHerculesorcompatible
001=adapterisHercules+
101=adapterisHerculesInColor
else:adapterisunknown
bit3 black/whitevideo
bit21reserved
bit0 horizontaldrive
03BA
EGA/VGAfeaturecontrolregister
03BB
reservedforlightpenstrobereset
03BC03BF parallelprinterport,sameas0278and0378
03BC
03BD
w
r/w
dataport
statusport
bit7=0busy
bit6=0acknowledge
bit5=1outofpaper
bit4=1printerisselected
http://bochs.sourceforge.net/techspec/PORTS.LST
32/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit3=0error
bit2=0IRQhasoccurred
bit10reserved
03BE
r/w
controlport
bit75reserved
bit4=1enableIRQ
bit3=1selectprinter
bit2=0initializeprinter
bit1=1automaticlinefeed
bit0=1strobe
03BF
r/w
Herculesconfigurationswitchregister
bit72
bit1=0disablesupper32Kofgraphicsmodebuffer
1enablesupper32Kofgraphicsmodebuffer
bit0=0preventsgraphicsmode
1allowsgraphicsmode
03C003C7 SunshineEW901,EW901A,EW904,EW904A
EPROMwritercardforEPROMsupto27512
03C003C3
adressesofthe8255ontheEW90x
03C003CF EGA(1stEnhancedGraphicsAdapter)
alternateat02C0
03C0
03C1
03C2
03C3
03C4
03C5
03C6
03C7
03C8
03C9
03CA
03CC
03CE
03CF
(r)/w
r
r
w
r/w
w
r/w
w
r/w
r/w
r/w
r
r/w
r/w
w
r
w
r
w
r/w
w
r/w
EGAVGAATCindex/dataregister
VGA
otherattributeregister
EGAVGAinputstatus0register
VGA
miscellaneousoutputregister
VGA
videosubsystemenable(seealsoport46E8h)
forIBM,motherboardVGAonly
EGA
TSindexregister
VGA
sequencerindexregister
EGA
TSdataregister
VGA
othersequencerregister
VGA
PELmaskregister
VGA
PELaddressreadmode
VGA
DACstateregister
VGA
PELaddresswritemode
VGA
PELdataregister
EGA
graphics2positionregister
VGA
featurecontrolregister
EGA
graphics1positionregister
VGA
miscellaneousoutputregister
EGA
GDCindexregister
VGA
graphicsaddressregister
EGA
GDCdataregister
VGA
othergraphicsregister
03CE03CF CompaqQvisionFunctionalityLevel
03CE
03CF
w
r/w
graphicsaddressregister(indexfornextport)
othergraphicsregister
Index
0Ch
r
controllerversion
2FhAdvancedVGA
37hearlyQVision1024
71hQVision1280orlaterQVision1024
0Dh
extendedcontrollerversion
0Eh
extendedcontrollercapabilities
0Fh
environmentinfo
http://bochs.sourceforge.net/techspec/PORTS.LST
33/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
54h
55h
56h57h
availablememory
phaselockedloopclock
controllercapabilities
03D003DF CGA(ColorGraphicsAdapter)
03D0
03D1
03D2
03D3
03D4
03D5
03D6
03D7
03D8
r/w
sameas03D4
sameas03D5
sameas03D4
sameas03D5
CRT(6845)indexregister(EGA/VGA)
selectswhichregister(011h)istobeaccessedthrough3B5
CRT(6845)dataregister(EGA/VGA)
selectedbyport3B4.registersCFmayberead
(forregistersseeat3B5)
sameas03D4
(underOS/2,readsreturn0iffullscreenDOSsession,
nonzeroifwindowedDOSsession)
sameas03D5
CGAmodecontrolregister(exceptPCjr)
bit76notused
bit5 =1blinkenabled
bit4 =1640*200graphicsmode
bit3 =1videoenabled
bit2 =1monochromesignal
bit1 =0textmode
=1320*200graphicsmode
bit0 =040*25textmode
=180*25textmode
03D9
r/w
CGApaletteregister
bit76notused
bit5 =0activecolorset:red,greenbrown
=1activecolorset:cyan,magenta,white
bit4 intensecolorsingraphics,backgroundcolorstext
bit3 intenseborderin40*25,intensebackgroundin
320*200,intenseforegroundin640*200
bit2 redborderin40*25,redbackgroundin320*200,
redforegroundin640*200
bit1 greenborderin40*25,greenbackgroundin
320*200,greenforegroundin640*200
bit0 blueborderin40*25,bluebackgroundin320*200,
blueforegroundin640*200
03DA
CGAstatusregister
EGA/VGA:inputstatus1register
bit74notused
bit3=1inverticalretrace
bit2=1lightpenswitchisoff
bit1=1positiveedgefromlightpenhassettrigger
bit0=0donotusememory
=1memoryaccesswithoutinterferingwithdisplay
03DA
EGA/VGAfeaturecontrolregister
03DB
03DC
w
r/w
clearlightpenlatch
presetlightpenlatch
03DF
CRT/CPUpageregister(PCjronly)
03E803EF serialport,sameas02E8,02F8and03F8
03F003F7 FDC1(1stFloppyDiskController)
secondFDCat0370
http://bochs.sourceforge.net/techspec/PORTS.LST
34/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
(8272,8272A,NEC765)
(82072,82077AAforperpendicularrecordingat2.8Mb)
03F0
disketteEHDcontrollerboardjumpersettings(82072AA)
bit76drive3
bit54drive2
bit32drive1
bit10drive0
=001.2Mb
=01720Kb
=102.8Mb
=111.4Mb
03F0
diskettecontrollerstatusA(PS/2)
bit7 interruptpending
bit6 DRV2 seconddriveinstalled
bit5 step
bit4 track0
bit3 head1select
bit2 index
bit1 writeprotect
bit0 +direction
03F0
diskettecontrollerstatusA(PS/2model30)
bit7 interruptpending
bit6 DRQ
bit5 stepF/F
bit4 track0
bit3 head1select
bit2 +index
bit1 +writeprotect
bit0 direction
03F1
diskettecontrollerstatusB(PS/2)
bit76=1reserved
bit5 driveselect(0=A:,1=B:)
bit4 writedata
bit3 readdata
bit2 writeenable
bit1 motorenable1
bit0 motorenable0
03F1
diskettecontrollerstatusB(PS/2model30)
bit7 DRV2seconddriveinstalled
bit6 DS1
bit5 DS0
bit4 writedataF/F
bit3 readdataF/F
bit2 writeenableF/F
bit1 DS3
bit0 DS2
03F2
diskettecontrollerDOR(DigitalOutputRegister)
bit76reservedonPS/2
bit7=1drive3motorenable
bit6=1drive2motorenable
bit5=1drive1motorenable
bit4=1drive0motorenable
bit3=1disketteDMAenable(reservedPS/2)
bit2=1FDCenable (controllerreset)
=0holdFDCatreset
bit10driveselect(0=A1=B..)
03F3
tapedriveregister(onthe82077AA)
bit72reserved,tristate
http://bochs.sourceforge.net/techspec/PORTS.LST
35/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit10tapeselect
=00none,drive0cannotbeatapedrive.
=01drive1
=10drive2
=11drive3
03F4
diskettecontrollermainstatusregister
bit7=1RQMdataregisterisready
0noaccessispermitted
bit6=1transferisfromcontrollertosystem
0transferisfromsystemtocontroller
bit5=1nonDMAmode
bit4=1diskettecontrollerisbusy
bit3=1drive3busy(reservedonPS/2)
bit2=1drive2busy(reservedonPS/2)
bit1=1drive1busy(=driveisinseekmode)
bit0=1drive0busy(=driveisinseekmode)
Note: innonDMAmode,alldatatransfersoccurthrough
port03F5handthestatusregisters(bit5here
indicatesdataread/writeratherthanthan
command/statusread/write)
03F4
diskettecontrollerdatarateselectregister
bit72reservedon8272
bit7 =1softwarereset(selfclearing)
82072/82077AA
bit6 =1powerdown
82072/82077AA
bit5 =0reservedon8272and82077AA
PLLselectbiton82072
bit42writeprecompensationvalue,000default
bit10datarateselect
=00500Kb/SMFM
250Kb/SFM
=01300Kb/SMFM
150Kb/SFM
=10250Kb/SMFM
125Kb/SFM
=111Mb/S
MFM
illegalFMon8207x
03F5
diskettecommand/dataregister0(ST0)
bit76lastcommandstatus
=00commandterminatedsuccessfully
=01commandterminatedabnormally
=10invalidcommand
=11terminatedabnormallybychangeinreadysignal
bit5 =1seekcompleted
bit4 =1equipmentcheckoccurredaftererror
bit3 =1notready
bit2 =1headnumberatinterrupt
bit10=1unitselect(0=A1=B..)
(onPS/2 01=A10=B)
statusregister1(ST1)
bit7 endofcylinder;sector#greaterthensectors/track
bit6=0
bit5=1CRCerrorinIDordatafield
bit4=1overrun
bit3=0
bit2=1sectorIDnotfound
bit1=1writeprotectdetectedduringwrite
bit0=1IDaddressmarknotfound
statusregister2(ST2)
bit7=0
bit6=1deletedDataAddressMarkdetected
bit5=1CRCerrorindata
bit4=1wrongcylinderdetected
bit3=1scancommandequalconditionsatisfied
bit2=1scancommandfailed,sectornotfound
http://bochs.sourceforge.net/techspec/PORTS.LST
36/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit1=1badcylinder,IDnotfound
bit0=1missingDataAddressMark
statusregister3(ST3)
bit7 faultstatussignal
bit6 writeprotectstatus
bit5 readystatus
bit4 trackzerostatus
bit3 twosidedstatussignal
bit2 sideselect(headselect)
bit10unitselect(0=A1=B..)
03F5
diskettecommandregister.Thecommandssummarizedhereare
mostlymultibytecommands.Thisisforbriefrecognitiononly.
Command
#bytes
readtrack
specify
3
sensedrivestatus
2
writedata
readdata
recalibrate
senseinterruptstatus1
writedeleteddata
9
readID
readdeleteddata
9
formattrack
10
dumpreg**
1
seek
version**
1
scanequal*
9
perpendicularmode** 2
configure**
4
verify
scanloworequal*
9
scanhighorequal* 9
relativeseek**
3
BEWARE:noteveryinvalidcommandistreatedasinvalid!
*Note:thescancommandsaren'tmentionedforthe82077AA.
**Note:EHDcontrollercommands.
MFM=MFMmodeselected,oppositetoMFmode.
HDS=headselect
DS=driveselect
MT=multitrackoperation
SK=skipdeleteddataaddressmark
http://bochs.sourceforge.net/techspec/PORTS.LST
D76 54
0MFM 00
00 00
00 0O
00 00
00 00
MTMFM 00
00 00
MTMFMSK0
00 00
00 00
00 00
00 00
MTMFM 00
00 00
0MFM 00
00 00
MTMFMSK0
00 00
0MFM 00
00 00
00 00
00 00
00 00
00 01
MTMFMSK1
00 00
00 01
00 00
00 01
00 00
MTMFMSK1
EC0 00
MTMFMSK1
00 00
MTMFMSK1
00 00
1DIR 00
00 00
32 10
00 10
0HDSDS1DS0
OO 11
01 00
0HDSDS1DS0
01 01
0HDSDS1DS0
01 10
0HDSDS1DS0
01 11
00DS1DS0
10 00
10 01
0HDSDS1DS0
10 10
0HDSDS1DS0
11 00
0HDSDS1DS0
11 01
0HDSDS1DS0
11 10
11 11
0HDSDS1DS0
00 00
00 01
0HDSDS1DS0
00 10
00WGATEGAP
00 11
00 00
01 10
0HDSDS1DS0
10 01
0HDSDS1DS0
11 01
0HDSDS1DS0
11 11
0HDSDS1DS0
37/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
03F6
reservedonFDC
03F6
r/w
FIXEDdiskcontrollerdataregister
bit74reserved
bit3=0reducewritecurrent
1headselect3enable
bit2=1diskresetenable
0diskresetdisable
bit1=0diskinitializationenable
1diskinitializationdisable
bit0 reserved
03F7
r/w
harddiskcontroller
bit6 FIXEDDISKwritegate
bit5 FIXEDDISKheadselect3/reducedwritecurrent
bit4 FIXEDDISKheadselect2
bit3 FIXEDDISKheadselect1
bit2 FIXEDDISKheadselect0
bit1 FIXEDDISKdrive1select
bit0 FIXEDDISKdrive0select
03F7
diskettecontrollerDIR(DigitalInputRegister,PC/ATmode)
bit7=1diskettechange
bit60tristateonFDC
03F7
diskettecontrollerDIR(DigitalInputRegister,PS/2mode)
bit7 =1diskettechange
bit63=1
bit2 datarateselect1
bit1 datarateselect0
bit0 =0highdensityselect(500Kb/s,1Mb/s)
conflictswithbit0 FIXEDDISKdrive0select
03F7
diskettecontrollerDIR(DigitalInputRegister,PS/2model30)
bit7 =0diskettechange
bit64=0
bit3 DMAgate(valuefromDORregister)
bit2 NOPREC(valuefromCCRregister)
bit1 datarateselect1
bit0 datarateselect0
conflictswithbit0 FIXEDDISKdrive0select
03F7
configurationcontrolregister(PC/AT,PS/2)
bit72reserved,tristate
bit10=00500Kb/Smode(MFM)
=01300Kb/Smode(MFM)
=10250Kb/Smode(MFM)
=111Mb/Smode(MFM)(on82072/82077AA)
conflictswithbit0 FIXEDDISKdrive0select
03F7
configurationcontrolregister(PS/2model30)
bit73reserved,tristate
bit2 NOPREC(hasnofunction.setto0byhardreset)
bit10=00500Kb/Smode(MFM)
=01300Kb/Smode(MFM)
=10250Kb/Smode(MFM)
=111Mb/Smode(MFM)(on82072/82077AA)
conflictswithbit0 FIXEDDISKdrive0select
03F803FF serialport(8250,8251,16450,16550,16550A,etc.)
http://bochs.sourceforge.net/techspec/PORTS.LST
38/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
sameas02E8,02F8and03E8
03F8
r/w
serialport,transmitterholdingregister,whichcontainsthe
charactertobesent.Bit0issentfirst.
bit70databitswhenDLAB=0(DivisorLatchAccessBit)
receiverbufferregister,whichcontainsthereceivedcharacter
Bit0isreceivedfirst
bit70databitswhenDLAB=0(DivisorLatchAccessBit)
divisorlatchlowbytewhenDLAB=1
03F9
r/w
r/w
divisorlatchhighbytewhenDLAB=1
interruptenableregisterwhenDLAB=0
bits74reserved
bit3=1modemstatusinterruptenable
bit2=1receiverlinestatusinterruptenable
bit1=1transmitterholdingregisteremptyinterruptenable
bit0=1receiveddataavailableinterruptenable
(also16550(A)timeoutinterrupt)
16550(A)willinterruptwithatimeoutifdataexistsinthe
FIFOandisn'treadwithinthetimeittakestoreceivefour
bytesorifnodataisreceivedwithinthetimeittakesto
receivefourbytes
03FA
interruptpendingflagusesreverselogic,0=pending,1=none
interruptwilloccurifanyofthelinestatusbitsareset
THREbitissetwhenTHREregisterisemptiedintotheTSR
03FA
bit0mustbesetinordertowritetootherFCRbits
bit1whenset theRCVRFIFOisclearedandthisbitisreset
thereceivershiftregisterisnotcleared
bit2whenset theXMITFIFOisclearedandthisbitisreset
thetransmitshiftregisterisnotcleared
interruptidentificationregister.Informationaboutapending
interruptisstoredhere.WhentheIDregisterisaddressed,
thehighestpriorityinterruptisheld,andnootherinterrupts
areacknowledgeduntiltheCPUservicesthatinterrupt.
bit76=00reservedon8250,8251,16450
=01ifFIFOqueuesenabled(16550only)
=11ifFIFOqueuesareenabled(16550Aonly)
bit54=0reserved
bit3 =0reserved8250,16450
=116550timeoutint.pending
bit21identifypendinginterruptwiththehighestpriority
=11 receiverlinestatusinterrupt.priority=highest
=10 receiveddataavailableregisterinterrupt.pr.=second
=01 transmitterholdingregisteremptyinterrupt.pr.=third
=00 modemstatusinterrupt.priority=fourth
bit0=0interruptpending.contentsofregistercanbeused
asapointertotheappropriateint.serviceroutine
1nointerruptpending
16650FCR(FIFOControlRegister)
bit76=receiveddataavailableinterrupttriggerlevel
001byte
014bytes
108bytes
1114bytes
bit54=00reserved
bit3 =1changeRXRDYTXRDYpinsfrommode0tomode1
bit2 =1clearXMITFIFO
bit1 =1clearRCVRFIFO
bit0 =1enableclearXMITandRCVRFIFOqueues
http://bochs.sourceforge.net/techspec/PORTS.LST
39/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
duetoahardwarebug,16550FIFOsdon'tworkcorrectly(this
wasfixedinthe16550A)
03FB
r/w
linecontrolregister
bit7=1divisorlatchaccessbit(DLAB)
0receiverbuffer,transmitterholding,orinterrupt
enableregisteraccess
bit6=1setbreakenable.serialouputisforcedtospacing
stateandremainsthere.
bit5=stickparity
bit4=1evenparityselect
bit3=parityenable
1evennumberofonesaresentandcheckedinthe
datawordbitsandparitybit
0oddnumberofonesaresentandchecked
bit2=0onestopbit
1zerostopbit
bit1000wordlengthis5bits
01wordlengthis6bits
10wordlengthis7bits
11wordlengthis8bits
03FC
r/w
modemcontrolregister
bit75=0reserved
bit4=1loopbackmodefordiagnostictestingofserialport
outputoftransmittershiftregisterisloopedback
toreceivershiftregisterinput.Inthismode
transmitteddataisreceivedimmediatelysothat
theCPUcanverifythetransmitdata/receivedata
serialportpaths.
bit3=1auxiliaryuserdesignatedoutput2
bit2=1auxiliaryuserdesignatedoutput1
bit1=1forcerequesttosendactive
bit0=1forcedataterminalreadyactive
03FD
linestatusregister
bit7=0reserved
bit6=1transmittershiftandholdingregistersempty
bit5=1transmitterholdingregisterempty.Controlleris
readytoacceptanewcharactertosend.
bit4=1breakinterrupt.thereceiveddatainputisheldin
inthezerobitstatelongerthanthetimeofstart
bit+databits+paritybit+stopbits.
bit3=1framingerror.thestopbitthatfollowsthelast
parityordatabitisazerobit.
bit2=1parityerror.Characterhaswrongparity
bit1=1overrunerror.acharacterwassenttothereceiver
bufferbeforethepreviouscharacterinthebuffer
couldberead.Thisdestroystheprevious
character.
bit0=1dataready.acompleteincomingcharacterhasbeen
receivedandsenttothereceiverbufferregister.
03FE
modemstatusregister
bit7=1datacarrierdetect
bit6=1ringindicator
bit5=1datasetready
bit4=1cleartosend
bit3=1deltadatacarrierdetect
bit2=1trailingedgeringindicator
bit1=1deltadatasetready
bit0=1deltacleartosend
bits03areresetwhentheCPUreadstheMSR
bit4istheModemControlRegisterRTSduringloopbacktest
http://bochs.sourceforge.net/techspec/PORTS.LST
40/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit5istheModemControlRegisterDTRduringloopbacktest
bit6istheModemControlRegisterOUT1duringloopbacktest
bit7istheModemControlRegisterOUT2duringloopbacktest
03FF
r/w
scratchregister
Adressesabove03FFapplytoEISAmachinesonly!
10001FFF
20002FFF
30003FFF
40004FFF
50005FFF
60006FFF
70007FFF
slot1EISA
slot2EISA
slot3EISA
slot4EISA
slot5EISA
slot6EISA
slot7EISA
040104D6 usedbyEISAsystemsonly
0401
0403
0405
0407
r/w
r/w
r/w
r/w
DMAchannel0wordcountbyte2(high)
DMAchannel1wordcountbyte2(high)
DMAchannel2wordcountbyte2(high)
DMAchannel3wordcountbyte2(high)
040A
extendedDMAchainingmoderegister,channels03
bit75reserved
bit4 =0generatesIRQ13
=1generatesterminalcount
bit3 =0donotstartchaining
=1programmingcomplete
bit2 =0disablebufferchainingmode(default)
=1enablebufferchainingmode
bit10DMAchannelselect
040A
channelinterrupt(IRQ13)statusregister
bit75interruptonchannels75
bit4 reserved
bit30interruptonchannels30
040B
DMAextendedmoderegisterforchannels30.
bitsettingssameas04D6
bit7 =0enablestopregister
bit6 =0terminalcountisanoutputforthischannel
(default)
bit54DMAcycletiming
=00ISAcompatible(default)
=01typeAtimingmode
=10typeBtimingmode
=11burstDMAmode
bit32Addressmode
=008bitI/O,countbybytes(default)
=0116bitI/O,countbywords,addressshifted
=1032bitI/O,countbybytes
=1116bitI/O,countbybytes
bit10DMAchannelselect
0461
r/w
ExtendedNMIstatus/controlregister
bit7=1NMIpendingfromfailsafetimer(readonly)
bit6=1NMIpendingfrombustimeoutNMIstatus(read
only)
bit5=1NMIpending(readonly)
bit4 reserved
http://bochs.sourceforge.net/techspec/PORTS.LST
41/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit3=1bustimeoutNMIenable(read/write)
bit2=1failsafeNMIenable(read/write)
bit1=1NMII/Oportenable(read/write)
bit0 RSTDRV.busreset(read/write)
=0NORMALbusresetoperation
=1resetbusasserted
0462
SoftwareNMIregister.writingtothisregistercausesanNMI
ifNMI'sareenabled
bit7=1generatesanNMI
0464
busmasterstatuslatchregister(slots18).identifiesthe
lastbusmasterthathadcontrolofthebus
bit7=0slot8hadcontrollast
bit6=0slot7hadcontrollast
bit5=0slot6hadcontrollast
bit4=0slot5hadcontrollast
bit3=0slot4hadcontrollast
bit2=0slot3hadcontrollast
bit1=0slot2hadcontrollast
bit0=0slot1hadcontrollast
0465
busmasterstatuslatchregister(slots916)
bit7=0slot16hadcontrollast
bit6=0slot15hadcontrollast
bit5=0slot14hadcontrollast
bit4=0slot13hadcontrollast
bit3=0slot12hadcontrollast
bit2=0slot11hadcontrollast
bit1=0slot10hadcontrollast
bit0=0slot9hadcontrollast
0481048BEISADMApageregisters
0481
0482
0483
0487
0489
048A
048B
r/w
r/w
r/w
r/w
r/w
r/w
r/w
DMAchannel2addressbyte3(high)
DMAchannel3addressbyte3(high)
DMAchannel1addressbyte3(high)
DMAchannel0addressbyte3(high)
DMAchannel6addressbyte3(high)
DMAchannel7addressbyte3(high)
DMAchannel5addressbyte3(high)
04C604CFEISADMAcountregisters
04C6
04CA
04CE
r/w
r/w
r/w
DMAchannel5wordcountbyte2(high)
DMAchannel6wordcountbyte2(high)
DMAchannel7wordcountbyte2(high)
04D004D1EISAIRQcontrol
04D0
IRQ07interruptedge/levelregisters
bit7=1IRQ7islevelsensitive
bit6=1IRQ6islevelsensitive
bit5=1IRQ5islevelsensitive
bit4=1IRQ4islevelsensitive
bit3=1IRQ3islevelsensitive
bit20reserved
04D1
IRQ815interruptedge/levelregisters
bit7=1IRQ15islevelsensitive
bit6=1IRQ14islevelsensitive
bit5=1reserved
http://bochs.sourceforge.net/techspec/PORTS.LST
42/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit4=1IRQ12islevelsensitive
bit3=1IRQ11islevelsensitive
bit2=1IRQ10islevelsensitive
bit1=1IRQ9islevelsensitive
bit0 reserved
04D404D6EISADMAcontrol
04D4
DMAchainingstatus
04D4
extendedDMAchainingmoderegister,channels47
bit75=0reserved
bit4 =0generatesIRQ13
=1generatesterminalcount
bit3 =0donotstartchaining
=1programmingcomplete
bit2 =0disablebufferchainingmode(default)
=1enablebufferchainingmode
bit10DMAchannelselect
04D6
DMAextendedmoderegisterforchannels47
bitsettingssameas04B
bit7 =0enablestopregister
bit6 =0terminalcountisanoutputforthischannel
(default)
bit54DMAcycletiming
=00ISAcompatible(default)
=01typeAtimingmode
=10typeBtimingmode
=11burstDMAmode
bit32Addressmode
=008bitI/O,countbybytes(default)
=0116bitI/O,countbywords,addressshifted
=1032bitI/O,countbybytes
=1116bitI/O,countbybytes
bit10DMAchannelselect
04E004FFEISADMAstopregisters
04E004E2r/w
04E404E6r/w
04E804EAr/w
04EC04EEr/w
04F404F6r/w
04F804FAr/w
04FC04FEr/w
channel0
channel1
channel2
channel3
channel5
channel6
channel7
05300533 GravisUltraSoundDaughterCardbyAdvancedGravis
TheI/Oaddressrangeisdipswitchselectablefrom:
05300533
06040607
0E800E83
0F400F43
0530
0531
0532
0533
r/w
r/w
r/w
r/w
AddressSelect
Data
Status
PIO
0601
w
Systemcontrol.Laptopchipset:HeadlandHL21&AcerM5105
bit7=1powerledon
http://bochs.sourceforge.net/techspec/PORTS.LST
43/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
bit6=1LCDbacklightoff
bit5
bit4
bit3
bit2=1videochipsdisabled,screenblanked.
bit1
bit0=1willlockupyourmachine!
bit7=0ifscreenenabledalwaysthesevalues
bit6=0
bit5=0
bit4=0
bit3=0
bit2=1(=0atlowpower)
bit1=0powerOK
bit0=0
06200627 PCnetwork(adapter1)
0628062F PCnetwork(adapter2)
0680
MicrochannelPOSTDiagnostic(writeonly)
06E206E3 dataaquisition(adapter1)
06E8
S386C928videocontroller(ELSAWinner1000)
06E806EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
06E8
horizontaldisplayed
Seealso02E802EF,0AE8,96E8,9AE8
0746
GravisUltraSoundbyAdvancedGravis
0746
BoardVersion(rev3.7+)
FF
Pre3.6boards,ICSmixerNOTpresent
05
Rev3.7withICSMixer.SomeR/L:flipproblems.
0609 Revision3.7andabove.ICSMixerpresent
0A
UltraMax.CS4231present,noICSmixer
MixerControlPort
SeeAlso:0240024F,0340034F
07900793 cluster(adapter1)
080008FF I/OportaccessregistersforextendedCMOSRAMorSRAM
(256bytesatatime)
Sometimesplaintextcanbeseenhere.
080008FF reservedforEISAsystemmotherboard
0A200A23 TokenRing(adapter1)
0A240A27 TokenRing(adapter2)
http://bochs.sourceforge.net/techspec/PORTS.LST
44/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
0AE20AE3 cluster(adapter2)
0AE8
S386C928videocontroller(ELSAWinner1000)
0AE80AEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
0AE8
horizontalsyncstart
0B900B93 cluster(adapter2)
0C00
r/w
pageregistertowritetoSRAMorI/O
0C000CFF reservedforEISAsystemmotherboard
0C7C
bit74(Compaq)
0C800C83 EISAsystemboardIDregisters
0CF8
IntelPentiummotherboard("Neptune"chipset)
0CFA
IntelPentiummotherboard("Neptune"chipset)
0EE8
S386C928videocontroller(ELSAWinner1000)
0EE80EEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
0EE8
horizontalsyncwidth
100010FF availableforEISAslot1
12E812EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
12E8
verticaltotal
13901393 cluster(adapter3)
140014FF availableforEISAslot1
16E816EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
16E8
verticaldisplayed
180018FF availableforEISAslot1
1AE81AEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
1AE8
verticalsyncstart
http://bochs.sourceforge.net/techspec/PORTS.LST
45/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
1C001CFF availableforEISAslot1
1C801C8F VESAXGAVideoinEISAslot1
1C801C83r/w
1C84
r/w
1C85
r/w
1C88
r/w
1C891C8Fr/w
EISAVideoID
EISAVideoexpansionboardcontrol
EISASetupcontrol
EISAVideoProgrammableOptionSelect0
EISAVideoProgrammableOptionSelect17
1C801C83
EISAboardproductID(boardinslot1)
1C85
CompaqQvisionEISAVirtualControllerID
1EE81EEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
1EE8
verticalsyncwidth
200020FF availableforEISAslot2
2100210F IBMXGA(eXtendedGraphicsAdapter8514/A)(firstinstalled)
2110211F IBMXGA(eXtendedGraphicsAdapter8514/A)(secondinstalled)
2120212F IBMXGA(eXtendedGraphicsAdapter8514/A)(thirdinstalled)
2130213F IBMXGA(eXtendedGraphicsAdapter8514/A)(fourthinstalled)
2140214F IBMXGA(eXtendedGraphicsAdapter8514/A)(fifthinstalled)
2150215F IBMXGA(eXtendedGraphicsAdapter8514/A)(sixthinstalled)
2160216F IBMXGA(eXtendedGraphicsAdapter8514/A)(seventhinstalled)
2170217F IBMXGA(eXtendedGraphicsAdapter8514/A)(eighthinstalled)
2100
XGAVideoOperatingModeRegister
Note:
thisportisforthefirstXGAinthesystem;21102170areusedfor
thesecondthrougheighthXGAs
2101
XGAVIdeoApertureControl
Note:
thisportisforthefirstXGAinthesystem;21112171areusedfor
thesecondthrougheighthXGAs
21022103 XGA???
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
thesecondthrougheighthXGAs
2104
XGAVideoInterruptEnable
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
thesecondthrougheighthXGAs
2105
XGAVideoInterruptStatus
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
http://bochs.sourceforge.net/techspec/PORTS.LST
46/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
thesecondthrougheighthXGAs
2106
XGAVideoVirtualMemoryControl
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
thesecondthrougheighthXGAs
2107
XGAVideoVirtualMemoryInterruptStatus
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
thesecondthrougheighthXGAs
2108
XGAVideoApertureIndex
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
thesecondthrougheighthXGAs
2109
XGAVideoMemoryAccessMode
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
thesecondthrougheighthXGAs
210A
XGAVideoIndexforData
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
thesecondthrougheighthXGAs
210B
XGAVideoData(byte)
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
thesecondthrougheighthXGAs
210C210F XGAVideoData(word/dword)
Note:
thisportisforthefirstXGAinthesystem;211x217xareusedfor
thesecondthrougheighthXGAs
2110217F secondaryXGAadapters(seeindividualentriesabove)
22E822EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
22E8
displaycontrol
23902393 cluster(adapter4)
23C023CF CompaqQVisionBitBLTengine
240024FF availableforEISAslot2
27C6
r/w
LCDtimeoutinminutes(CompaqLTELite)
http://bochs.sourceforge.net/techspec/PORTS.LST
47/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
280028FF availableforEISAslot2
28E9
8514/AWDEscapeFunctions
2C802C8F VESAXGAVideoinEISAslot2(see1C801C8F)
2C802C83
EISAboardproductID(boardinslot2)
300030FF availableforEISAslot3
32203227 serialport3,descriptionsameas03F8
3228322F serialport4,descriptionsameas03F8
33C033CF CompaqQVisionBitBLTengine
340034FF availableforEISAslot3
3540354F IBMSCSI(SmallComputerSystemInterface)adapter
3550355F IBMSCSI(SmallComputerSystemInterface)adapter
3560356F IBMSCSI(SmallComputerSystemInterface)adapter
3570357F IBMSCSI(SmallComputerSystemInterface)adapter
380038FF availableforEISAslot3
3C003CFF availableforEISAslot3
3C803C8F VESAXGAVideoinEISAslot3
3C803C83r/w
3C84
r/w
3C85
r/w
3C88
r/w
3C893C8Fr/w
EISAVideoID
EISAVideoexpansionboardcontrol
EISASetupcontrol
EISAVideoProgrammableOptionSelect0
EISAVideoProgrammableOptionSelect17
SeeAlso:1C801C8F,2C802C8F,7C807C8F
3C803C83
EISAboardproductID(boardinslot3)
400040FF availableforEISAslot4
42204227 serialport,descriptionsameas03F8
4228422F serialport,descriptionsameas03F8
42E042EF GPIB(GeneralPurposeInterfaceBus,IEEE488interface)
42E1
r/w
GPIB(adapter2)
42E8
8514/Aandhardwarecompatiblevideocards
http://bochs.sourceforge.net/techspec/PORTS.LST
48/54
15/10/2015
42E8
42E8
bochs.sourceforge.net/techspec/PORTS.LST
r
w
SubsystemStatus
SubsystemControl
440044FF availableforEISAslot4
46E8
VGAvideoadapterenable
46E8
r/w
enableflags
bits75unusedorvendorspecific
bit4:setupforPOSregisters(MCA)
bit3:enablevideoI/Oportsandvideobuffer
bits20unusedorvendorspecific
Note:
IBMusesthisportforadaptercardVGAsonly,andport03C3for
motherboardVGAonly
SeeAlso:03C3
46E8
8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
46E8
ROMpageselect
480048FF availableforEISAslot4
4AE84AEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
4AE8
Advancedfunctioncontrol
(02h=VGAmode,03h=480linemode,07h=768linemode)
4C004CFF availableforEISAslot4
4C804C83
EISAboardproductID(boardinslot4)
4C804C8F VESAXGAVideoinEISAslot4(see3C803C8F)
SeeAlso:1C801C8F,6C806C8F
500050FF availableforEISAslot5
52205227 serialport,descriptionsameas03F8
5228522F serialport,descriptionsameas03F8
540054FF availableforEISAslot5
580058FF availableforEISAslot5
5C005CFF availableforEISAslot5
5C805C8F VESAXGAVideoinEISAslot5
5C805C83r/w
EISAVideoID
http://bochs.sourceforge.net/techspec/PORTS.LST
49/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
5C84
r/w
5C85
r/w
5C88
r/w
5C895C8Fr/w
EISAVideoexpansionboardcontrol
EISASetupcontrol
EISAVideoProgrammableOptionSelect0
EISAVideoProgrammableOptionSelect17
SeeAlso:2C802C8F,4C804C8F,6C806C8F
5C805C83
EISAboardproductID(boardinslot5)
600060FF availableforEISAslot6
62E062EF GPIB(GeneralPurposeInterfaceBus,IEEE488interface)
62E1
r/w
GPIB(adapter3)
63C063CF CompaqQVisionBitBLTengine
640064FF availableforEISAslot6
680068FF availableforEISAslot6
6C006CFF availableforEISAslot6
6C806C83
EISAboardproductID(boardinslot6)
6C806C8F VESAXGAVideoinEISAslot1
6C806C83r/w
6C84
r/w
6C85
r/w
6C88
r/w
6C891C8Fr/w
EISAVideoID
EISAVideoexpansionboardcontrol
EISASetupcontrol
EISAVideoProgrammableOptionSelect0
EISAVideoProgrammableOptionSelect17
SeeAlso:1C801C8F,2C802C8F,5C805C8F
700070FF availableforEISAslot7
740074FF availableforEISAslot7
780078FF availableforEISAslot7
7C007CFF availableforEISAslot7
7C807C83
EISAboardproductID(boardinslot7)
7C807C8F VESAXGAVideoinEISAslot7
7C807C83r/w
7C84
r/w
7C85
r/w
EISAVideoID
EISAVideoexpansionboardcontrol
EISASetupcontrol
http://bochs.sourceforge.net/techspec/PORTS.LST
50/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
7C88
r/w
7C897C8Fr/w
EISAVideoProgrammableOptionSelect0
EISAVideoProgrammableOptionSelect17
SeeAlso:1C801C8F,6C806C8F
800080FF availableforEISAslot8
82E082EF GPIB(GeneralPurposeInterfaceBus,IEEE488interface)
82E1
r/w
GPIB(adapter4)
82E882EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
82E8
currentYposition
82F882FF serialport,descriptionsameas03F8
83F883FF serialport,descriptionsameas03F8
83C083CF CompaqQVisionLineDrawEngine
83C4
CompaqQvisionEISAVirtualControllerSelect
83C683C9 CompaqQvisionEISADACcolorregisters
840084FF availableforEISAslot8
86E886EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
86E8
currentXposition
880088FF availableforEISAslot8
8AE88AEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
8AE8
destinationYposition/axialstepconstant
8C008CFF availableforEISAslot8
8C808C83
EISAboardproductID(boardinslot8)
8EE88EEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
8EE8
destinationXposition/axialstepconstant
900090FF availableforEISAslot9
92E892EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
92E8
errorterm
http://bochs.sourceforge.net/techspec/PORTS.LST
51/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
940094FF availableforEISAslot9
96E896EF 8514/Aandhardwarecompatiblevideocards
96E8
96E8
r
w
EnterWDEnhancedMode
majoraxispixelcount
980098FF availableforEISAslot9
9AE8h9AE9h8514/AGraphicsProcessorStatus
9AE8w
9AE8
r
w
bit9:hardwarebusy
command
9C009CFF availableforEISAslot9
9C809C83
EISAboardproductID(boardinslot9)
A220
???? soundblastersupportinAMIHiFlexBIOS????
A2E0A2EF GPIB(GeneralPurposeInterfaceBus,IEEE488interface)
A2E1
r/w
GPIB(adapter5)
A2E8A2EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
A2E8
backgroundcolor
A6E8A6EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
A6E8
foregroundcolor
AAE8AAEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
AAE8
writemask
AEE8AEEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
AEE8
readmask
AFFF
r/w
plane03systemlatch(videoregister)
B220B227 serialport,descriptionsameas03F8
B228B22F serialport,descriptionsameas03F8
B2E8B2EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
B2E8
colorcompare
http://bochs.sourceforge.net/techspec/PORTS.LST
52/54
15/10/2015
bochs.sourceforge.net/techspec/PORTS.LST
B6E8B6EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
B6E8
backgroundmix
BAE8BAEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
BAE8
foregroundmix
BEE8BEEF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
BEE8
multifunctioncontrol
C008
IntelPentiummotherboard("Neptune"chipset)
C050
IntelPentiummotherboard("Neptune"chipset)
C050
r/w
bit2:???
C052
IntelPentiummotherboard("Neptune"chipset)
C052
r/???
bits6,7:???
C220C227 serialport,descriptionsameas03F8
C228C22F serialport,descriptionsameas03F8
C2E0C2EF GPIB(GeneralPurposeInterfaceBus,IEEE488interface)
C2E1
r/w
GPIB(adapter6)
D220D227 serialport,descriptionsameas03F8
D228D22F serialport,descriptionsameas03F8
E2E0E2EF GPIB(GeneralPurposeInterfaceBus,IEEE488interface)
E2E1
r/w
GPIB(adapter7)
E2E8E2EF 8514/Aandcompatiblevideocards(e.g.ATIGraphicsUltra)
E2E8
pixeldatatransfer
MEMORYMAPPEDADDRESSES
80C00000CompaqDeskpro386systemmemoryboardregister
80C00000w
RAMrelocationregister
bit72Reserved,alwayswrite1's.
bit1=0Writeprotect128KbyteRAMatFE0000.
=1DonotwriteprotectRAMatFE0000.
bit0=0Relocate128KbyteblockatFE0000toaddress0E0000
=1128KbyteRAMisaddressedonlyatFE0000.
http://bochs.sourceforge.net/techspec/PORTS.LST
53/54
15/10/2015
80C00000r
bochs.sourceforge.net/techspec/PORTS.LST
Diagnosticsregister
bit7 =0memoryexpansionboardisinstalled
bit6 =0second1MBofsystemmemoryboardisinstalled
bit54=00basememorysetto640KB
01invalid
10basememorysetto512KB
11basememorysetto256KB
bit3 =0parityerrorinbyte3
bit2 =0parityerrorinbyte2
bit1 =0parityerrorinbyte1
bit0 =0parityerrorinbyte0(in32bitdoubleword)
C0000000C000FFFF
Weitek"Abacus"mathcoprocessor
CREDITS
ChuckProctor<71534.2302@CompuServe.COM>
RichardW.Watson<73042.1420@CompuServe.COM>
[SomeoftheinformationinthislistwasextractedfromFrankvanGilluwe's
_The_Undocumented_PC_,amusthavebookforanyoneprogrammingdowntothe
"baremetal"ofaPC.]
[SomeoftheinformationinthislistfromthesharewareversionofDave
Williams'DOSREF,v3.0]
[8514/AhardwareportsfoundinFractIntv18.0sourcefileFR8514A.ASM]
[CompaqQVisioninfofromthe_COMPAQ_QVision_Graphics_System_Technical_
_Reference_Guide_,secondedition(October1993).Compaqpartnumber
073A/0693.Muchmoretocome!]
http://bochs.sourceforge.net/techspec/PORTS.LST
54/54