Sunteți pe pagina 1din 54

15/10/2015

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.

0000001F DMA1 (firstDirectMemoryAccesscontroller8237)


0000
0001
0002
0003
0004
0005
0006
0007

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

0020003F PIC1 (ProgrammableInterruptController8259)


0020

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

00A000AF PIC2 (ProgrammableInterruptController8259)


00A0

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

00C000DF DMA2 (secondDirectMemoryAccesscontroller8237)


00C0
00C2
00C4
00C6
00C8
00CA
00CC
00CE

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)

01400157 RTC(alternateRealTimeClockforXT) (1stat03400357)

015F
ARTECHandyscannerA400Z.alternateaddressat35F.

01700177 HDC2 (2ndFixedDiskController)sameas01Fx(ISA,EISA)

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)

01F001F7 HDC1 (1stFixedDiskController)sameas017x(ISA,EISA)


01F0

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

02400257 RTC(alternateRealTimeClockforXT) (1stat03400357)

(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

02B002DF alternateEGA, primaryEGAat03C0

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

S-ar putea să vă placă și