您的位置:首页 > 其它

汇编端口及其作用详细列表

2014-03-13 12:06 876 查看
原文见:http://blog.chinaunix.net/uid-7672958-id-2598950.html

[This file was provided by Wim Osterholt (2:512/56 or wim@djo.wtm.tudelft.nl).]

Last Change: 11/6/94

XT, AT and PS/2 I/O port addresses

Do NOT consider this information as complete and accurate.

If you want to do harware programming check ALWAYS the

appropriate data sheets. Be aware that erroneously programming

can put your hardware or your data at risk.

There is a memory mapped address in use for I/O functions of which I

think it should be mentioned here. See at the end of this list.

-------------------------------------------------------------------------------

0000-001F ---- DMA 1 (first Direct Memory Access controller 8237)

0000 r/w DMA channel 0 address byte 0, then byte 1.

0001 r/w DMA channel 0 word count byte 0, then byte 1.

0002 r/w DMA channel 1 address byte 0, then byte 1.

0003 r/w DMA channel 1 word count byte 0, then byte 1.

0004 r/w DMA channel 2 address byte 0, then byte 1.

0005 r/w DMA channel 2 word count byte 0, then byte 1.

0006 r/w DMA channel 3 address byte 0, then byte 1.

0007 r/w DMA channel 3 word count byte 0, then byte 1.

0008 r DMA channel 0-3 status register

bit 7 = 1 channel 3 request

bit 6 = 1 channel 2 request

bit 5 = 1 channel 1 request

bit 4 = 1 channel 0 request

bit 3 = 1 channel terminal count on channel 3

bit 2 = 1 channel terminal count on channel 2

bit 1 = 1 channel terminal count on channel 1

bit 0 = 1 channel terminal count on channel 0

0008 w DMA channel 0-3 command register

bit 7 = 1 DACK sense active high

= 0 DACK sense active low

bit 6 = 1 DREQ sense active high

= 0 DREQ sense active low

bit 5 = 1 extended write selection

= 0 late write selection

bit 4 = 1 rotating priority

= 0 fixed priority

bit 3 = 1 compressed timing

= 0 normal timing

bit 2 = 1 enable controller

= 0 enable memory-to-memory

0009 w DMA write request register

000A r/w DMA channel 0-3 mask register

bit 7-3 = 0 reserved

bit 2 = 0 clear mask bit

= 1 set mask bit

bit 1-0 = 00 channel 0 select

= 01 channel 1 select

= 10 channel 2 select

= 11 channel 3 select

000B w DMA channel 0-3 mode register

bit 7-6 = 00 demand mode

= 01 single mode

= 10 block mode

= 11 cascade mode

bit 5 = 0 address increment select

= 1 address decrement select

bit 3-2 = 00 verify operation

= 01 write to memory

= 10 read from memory

= 11 reserved

bit 1-0 = 00 channel 0 select

= 01 channel 1 select

= 10 channel 2 select

= 11 channel 3 select

000C w DMA clear byte pointer flip-flop

000D r DMA read temporary register

000D w DMA master clear

000E w DMA clear mask register

000F w DMA write mask register

-------------------------------------------------------------------------------

0010-001F ---- DMA controller (8237) on PS/2 model 60 & 80

-------------------------------------------------------------------------------

0018 w PS/2 extended function register

-------------------------------------------------------------------------------

001A PS/2 extended function execute

-------------------------------------------------------------------------------

0020-003F ---- PIC 1 (Programmable Interrupt Controller 8259)

0020 w PIC initialization command word ICW1

bit 7-5 = 0 only used in 80/85 mode

bit 4 = 1 ICW1 is being issued

bit 3 = 0 edge triggered mode

= 1 level triggered mode

bit 2 = 0 successive interrupt vectors use 8 bytes

= 1 successive interrupt vectors use 4 bytes

bit 1 = 0 cascade mode

= 1 single mode, no ICW3 needed

bit 0 = 0 no ICW4 needed

= 1 ICW4 needed

0021 w PIC ICW2,ICW3,ICW4 after ICW1 to 0020

ICW2:

bit 7-3 = address lines A0-A3 of base vector address for PIC

bit 2-0 = reserved

ICW3:

bit 7-0 = 0 slave controller not attached to corresponding

interrupt pin

= 1 slave controller attached to corresponding

interrupt pin

ICW4:

bit 7-5 = 0 reserved

bit 4 = 0 no special fully-nested mode

= 1 special fully-nested mode

bit 3-2 = 0x nonbuffered mode

= 10 buffered mode/slave

= 11 buffered mode/master

bit 1 = 0 normal EOI

= 1 Auto EOI

bit 0 = 0 8085 mode

= 1 8086/8088 mode

0021 r/w PIC master interrupt mask register

OCW1:

bit 7 = 0 enable parallel printer interrupt

bit 6 = 0 enable diskette interrupt

bit 5 = 0 enable fixed disk interrupt

bit 4 = 0 enable serial port 1 interrupt

bit 3 = 0 enable serial port 2 interrupt

bit 2 = 0 enable video interrupt

bit 1 = 0 enable keyboard, mouse, RTC interrupt

bit 0 = 0 enable timer interrupt

0020 r PIC interrupt request/in-service registers by OCW3

request register:

bit 7-0 = 0 no active request for the corresponding int. line

= 1 active request for corresponding interrupt line

in-service register:

bit 7-0 = 0 corresponding line not currently being serviced

= 1 corresponding int. line currently being serviced

0020 w OCW2:

bit 7-5 = 000 rotate in auto EOI mode (clear)

= 001 nonspecific EOI

= 010 no operation

= 011 specific EOI

= 100 rotate in auto EOI mode (set)

= 101 rotate on nonspecific EOI command

= 110 set priority command

= 111 rotate on specific EOI command

bit 4 = 0 reserved

bit 3 = 0 reserved

bit 2-0 interrupt request to which the command applies

0020 w PIC OCW3

bit 7 = 0 reserved

bit 6-5 = 0x no operation

= 10 reset special mask

= 11 set special mask

bit 4 = 0 reserved

bit 3 = 1 reserved

bit 2 = 0 no poll command

= 1 poll command

bit 1-0 = 0x no operation

= 10 read int.request register on next read at 0020

= 11 read int.in-service register on next read 0020

-------------------------------------------------------------------------------

0022-002B ---- Intel 82355, part of chipset for 386sx

initialisation in POST will disable these addresses,

only a hard reset will enable them again.

0022 r/w 82335 MCR memory configuration register

0024 82335 RC1 roll compare register

0026 82335 RC2 roll compare register

0028 82335 CC0 compare register

002A 82335 CC1 compare register

values for CC0 and CC1:

00F9,0000 enable range compare CC0 0-512K CC1 disable

00F1,0000 enable range compare CC0 0-1024K CC1 disable

00F1,10F9 enable range compare CC0 0-1M CC1 1M-1M5

00E1,0000 enable range compare CC0 0-2M CC1 disable

00E1,0000 enable range compare CC0 0-2M CC1 disable

00C1,0000 enable range compare CC0 0-4M CC1 disable

00C1,40E1 enable range compare CC0 0-4M CC1 4M-6M

0081,0000 enable range compare CC0 0-8M CC1 disable

-------------------------------------------------------------------------------

0022-0023 ---- Chip Set Data

0022 w index for accesses to data port

0023 r/w chip set data

-------------------------------------------------------------------------------

0022-0023 ---- Cyrix Cx486SLC/DLC processor Cache Configuration Registers

0022 w index for accesses to next port

C0h CR0

C1h CR1

C4h non-cacheable region 1, start address bits 31-24

C5h non-cacheable region 1, start address bits 23-16

C6h non-cacheable region 1, start addr 15-12, size (low nibble)

C7h non-cacheable region 2, start address bits 31-24

C8h non-cacheable region 2, start address bits 23-16

C9h non-cacheable region 2, start addr 15-12, size (low nibble)

CAh non-cacheable region 3, start address bits 31-24

CBh non-cacheable region 3, start address bits 23-16

CCh non-cacheable region 3, start addr 15-12, size (low nibble)

CDh non-cacheable region 4, start address bits 31-24

CEh non-cacheable region 4, start address bits 23-16

CFh non-cacheable region 4, start addr 15-12, size (low nibble)

0023 r/w cache configuration register array (indexed by port 0022h)

non-cacheable region sizes:

00h disabled

01h 4K

02h 8K

03h 16K

04h 32K

05h 64K

06h 128K

07h 256K

08h 512K

09h 1M

0Ah 2M

0Bh 4M

0Ch 8M

0Dh 16M

0Eh 32M

0Fh 4G

Configuration Register 0 format:

bit 0 "NC0" first 64K of each 1M noncacheable in real/V86

bit 1 "NC1" 640K-1M noncacheable

bit 2 "A20M" enables A20M# input pin

bit 3 "KEN" enables KEN# input pin

bit 4 "FLUSH" enables KEN# input pin

bit 5 "BARB" enables internal cache flushing on bus holds

bit 6 "C0" cache direct-mapped instead of 2-way associative

bit 7 "SUSPEND" enables SUSP# input and SUSPA# output pins

Configuration Register 1 format;

bit 0 "RPL" enables output pins RPLSET and RPLVAL#

-------------------------------------------------------------------------------

0026-0027 ---- Power Management

0026 w index for data port

0027 r/w power management data

-------------------------------------------------------------------------------

0038-003F ---- PC radio by CoZet Info Systems

The I/O address range is dipswitch selectable from:

038-03F and 0B0-0BF

078-07F and 0F0-0FF

138-13F and 1B0-1BF

178-17F and 1F0-1FF

238-23F and 2B0-2BF

278-27F and 2F0-2FF

338-33F and 3B0-3BF

378-37F and 3F0-3FF

All of these addresses show a readout of FF in initial state.

Once started, all of the addresses show FB, whatever might

happen.

-------------------------------------------------------------------------------

0040-005F ---- PIT (Programmable Interrupt Timer 8253, 8254)

XT & AT uses 40-43 PS/2 uses 40, 42,43,44, 47

0040 r/w PIT counter 0, counter divisor (XT, AT, PS/2)

0041 r/w PIT counter 1, RAM refresh counter (XT, AT)

0042 r/w PIT counter 2, cassette & speaker (XT, AT, PS/2)

0043 r/w PIT mode port, control word register for counters 0-2

bit 7-6 = 00 counter 0 select

= 01 counter 1 select (not PS/2)

= 10 counter 2 select

bit 5-4 = 00 counter latch command

= 01 read/write counter bits 0-7 only

= 10 read/write counter bits 8-15 only

= 11 read/write counter bits 0-7 first, then 8-15

bit 3-1 = 000 mode 0 select

= 001 mode 1 select - programmable one shot

= x10 mode 2 select - rate generator

= x11 mode 3 select - square wave generator

= 100 mode 4 select - software triggered strobe

= 101 mode 5 select - hardware triggered strobe

bit 0 = 0 binary counter 16 bits

= 1 BCD counter

0044 r/w PIT counter 3 (PS/2, EISA)

used as fail-safe timer. generates an NMI on time out.

for user generated NMI see at 0462.

0047 w PIT control word register counter 3 (PS/2, EISA)

bit 7-6 = 00 counter 3 select

= 01 reserved

= 10 reserved

= 11 reserved

bit 5-4 = 00 counter latch command counter 3

= 01 read/write counter bits 0-7 only

= 1x reserved

bit 3-0 = 00

0048 EISA

0049 8254 timer 2, not used (counter 1)

004A EISA programmable interval timer 2

004B EISA programmable interval timer 2

-------------------------------------------------------------------------------

0060-006F ---- Keyboard controller 804x (8041, 8042) (or PPI (8255) on PC,XT)

XT uses 60-63, AT uses 60-64

AT keyboard controller input port bit definitions

bit 7 = 0 keyboard inhibited

bit 6 = 0 CGA, else MDA

bit 5 = 0 manufacturing jumper installed

bit 4 = 0 system RAM 512K, else 640K

bit 3-0 reserved

AT keyboard controller input port bit definitions by Compaq

bit 7 = 0 security lock is locked

bit 6 = 0 Compaq dual-scan display, 1=non-Compaq display

bit 5 = 0 system board dip switch 5 is ON

bit 4 = 0 auto speed selected, 1=high speed selected

bit 3 = 0 slow (4MHz), 1 = fast (8MHz)

bit 2 = 0 80287 installed, 1= no NDP installed

bit 1-0 reserved

AT keyboard controller output port bit definitions

bit 7 = keyboard data output

bit 6 = keyboard clock output

bit 5 = 0 input buffer full

bit 4 = 0 output buffer empty

bit 3 = reserved (see note)

bit 2 = reserved (see note)

bit 1 = gate A20

bit 0 = system reset

Note: bits 2 and 3 are the turbo speed switch or password

lock on Award/AMI/Phoenix BIOSes. These bits make

use of nonstandard keyboard controller BIOS

functionality to manipulate

pin 23 (8041 port 22) as turbo switch for AWARD

pin 35 (8041 port 15) as turbo switch/pw lock for

Phoenix

0060 r/w KB controller data port or keyboard input buffer (ISA, EISA)

should only be read from after status port bit0 = 1

should only be written to if status port bit1 = 0

keyboard commands (data also goes to port 0060):

E6 sngl set mouse scaling to 1:1

E7 sngl set mouse scaling to 2:1

E8 dbl set mouse resolution

(00h = 1/mm,01h = 2/mm,02h = 4/mm,03h = 8/mm)

E9 sngl get mouse information

read two status bytes:

byte 0

bit 7 unused

bit 6 remote rather than stream mode

bit 5 mouse enabled

bit 4 scaling set to 2:1

bit 3 unused

bit 2 left button pressed

bit 1 unused

bit 0 right button pressed

byte 1: resolution

ED dbl set/reset mode indicators Caps Num Scrl

bit 2 = CapsLk, bit 1 = NumLk, bit 0 = ScrlLk

EE sngl diagnostic echo. returns EE.

EF sngl NOP (No OPeration). reserved for future use

F0 dbl get/set scan code set

00h get current set

01h scancode set 1 (except Type 2 ctrlr)

02h scancode set 2 (default)

03h scancode set 3

F2 sngl read keyboard ID (read two ID bytes)

F2 sngl read mouse ID (read two ID bytes)

F3 dbl set typematic rate/delay

F3 dbl set mouse sample rate in reports per second

F4 sngl enable keyboard

F4 sngl enable mouse

F5 sngl disable keyboard. set default parameters

F5 sngl disable mouse, set default parameters

F6 sngl set default parameters

F7 sngl [MCA] set all keys to typematic (scancode set 3)

F8 sngl [MCA] set all keys to make/release

F9 sngl [MCA] set all keys to make only

FA sngl [MCA] set all keys to typematic/make/release

FB sngl [MCA] set al keys to typematic

FC dbl [MCA] set specific key to make/release

FD dbl [MCA] set specific key to make only

FE sngl resend last scancode

FF sngl perform internal power-on reset function

FF sngl reset mouse

Note: must issue command D4h to port 64h first to access

mouse functions

0060 r KeyBoard or KB controller data output buffer (via PPI on XT)

0061 w KB controller port B (ISA, EISA) (PS/2 port A is at 0092)

system control port for compatibility with 8255

bit 7 (1= IRQ 0 reset )

bit 6-4 reserved

bit 3 = 1 channel check enable

bit 2 = 1 parity check enable

bit 1 = 1 speaker data enable

bit 0 = 1 timer 2 gate to speaker enable

0061 r KB controller port B control register (ISA, EISA)

system control port for compatibility with 8255

bit 7 parity check occurred

bit 6 channel check occurred

bit 5 mirrors timer 2 output condition

bit 4 toggles with each refresh request

bit 3 channel check status

bit 2 parity check status

bit 1 speaker data status

bit 0 timer 2 gate to speaker status

0061 w PPI Programmable Peripheral Interface 8255 (XT only)

system control port

bit 7 = 1 clear keyboard

bit 6 = 0 hold keyboard clock low

bit 5 = 0 I/O check enable

bit 4 = 0 RAM parity check enable

bit 3 = 0 read low switches

bit 2 reserved, often used as turbo switch

bit 1 = 1 speaker data enable

bit 0 = 1 timer 2 gate to speaker enable

0062 r/w PPI (XT only)

bit 7 = 1 RAM parity check

bit 6 = 1 I/O channel check

bit 5 = 1 timer 2 channel out

bit 4 reserved

bit 3 = 1 system board RAM size type 1

bit 2 = 1 system board RAM size type 2

bit 1 = 1 coprocessor installed

bit 0 = 1 loop in POST

0063 r/w PPI (XT only) command mode register (read dipswitches)

bit 7-6 = 00 1 diskette drive

= 01 2 diskette drives

= 10 3 diskette drives

= 11 4 diskette drives

bit 5-4 = 00 reserved

= 01 40*25 color (mono mode)

= 10 80*25 color (mono mode)

= 11 MDA 80*25

bit 3-2 = 00 256K (using 256K chips)

= 01 512K (using 256K chips)

= 10 576K (using 256K chips)

= 11 640K (using 256K chips)

bit 3-2 = 00 64K (using 64K chips)

= 01 128K (using 64K chips)

= 10 192K (using 64K chips)

= 11 256K (using 64K chips)

bit 1-0 reserved

0064 r KB controller read status (ISA, EISA)

bit 7 = 1 parity error on transmission from keyboard

bit 6 = 1 receive timeout

bit 5 = 1 transmit timeout

bit 4 = 0 keyboard inhibit

bit 3 = 1 data in input register is command

0 data in input register is data

bit 2 system flag status: 0=power up or reset 1=selftest OK

bit 1 = 1 input buffer full (input 60/64 has data for 8042)

bit 0 = 1 output buffer full (output 60 has data for system)

0064 r KB controller read status (MCA)

bit 7 = 1 parity error on transmission from keyboard

bit 6 = 1 general timeout

bit 5 = 1 mouse output buffer full

bit 4 = 0 keyboard inhibit

bit 3 = 1 data in input register is command

0 data in input register is data

bit 2 system flag status: 0=power up or reset 1=selftest OK

bit 1 = 1 input buffer full (input 60/64 has data for 804x)

bit 0 = 1 output buffer full (output 60 has data for system)

0064 r KB controller read status by Compaq

bit 7 = 1 parity error detected (11-bit format only). If an

error is detected, a Resend command is sent to the

keyboard once only, as an attempt to recover.

bit 6 = 1 receive timeout. transmission didn't finish in 2mS.

bit 5 = 1 transmission timeout error

bit 5,6,7 cause

1 0 0 No clock

1 1 0 Clock OK, no response

1 0 1 Clock OK, parity error

bit 4 = 0 security lock engaged

bit 3 = 1 data in OUTPUT register is command

0 data in OUTPUT register is data

bit 2 system flag status: 0=power up or reset 1=soft reset

bit 1 = 1 input buffer full (output 60/64 has data)

bit 0 = 0 no new data in buffer (input 60 has data)

0064 w KB controller input buffer (ISA, EISA)

KB controller commands (data goes to port 0060):

20 read read byte zero of internal RAM, this is the

last KB command send to 804x

Compaq Put current command byte on port 0060

command structure:

bit 7 reserved

bit 6 = 1 convert KB codes to 8086 scan codes

bit 5 = 0 use 11-bit codes, 1=use 8086 codes

bit 4 = 0 enable keyboard, 1=disable keyboard

bit 3 = 1 ignore security lock state

bit 2 this bit goes into bit2 status reg.

bit 1 = 0 reserved

bit 0 = 1 generate int. when output buffer full

21-3F read reads the byte specified in the lower 5 bits of

the command in the 804x's internal RAM

60-7F dbl writes the data byte to the address specified in

the 5 lower bits of the command.

Alternate description KB IO command 60 summary:

bit7 = 0 reserved

bit6 = IBM PC compatibility mode

bit5 = IBM PC mode

bit4 = disable kb

bit3 = inhibit override

bit2 = system flag

bit1 = 0 reserved

bit0 = enableoutput buffer full interrupt

60 Compaq Load new command (60 to [64], command to [60])

A1 Compaq unknown speedfunction ??

A2 Compaq unknown speedfunction ??

A3 Compaq Enable system speed control

A4 MCA check if password installed

A4 Compaq Toggle speed

A5 MCA load password

A5 Compaq Special reed. the 8042 places the real values

of port 2 except for bits 4 and 5 wich are given

a new definition in the output buffer. No output

buffer full is generated.

if bit 5 = 0, a 9-bit keyboard is in use

if bit 5 = 1, an 11-bit keyboard is in use

if bit 4 = 0, outp-buff-full interrupt disabled

if bit 4 = 1, output-buffer-full int. enabled

A6 MCA check password

A6 Compaq unknown speedfunction ??

A7 MCA disable mouse port

A8 MCA enable mouse port

A9 MCA test mouse port

AA sngl initiate self-test. will return 55 to data port

Compaq Initializes ports 1 and 2, disables the keyboard

and clears the buffer pointers. It then places

55 in the output buffer.

AB sngl initiate interface test. result values:

0 = no error

1 = keyboard clock line stuck low

2 = keyboard clock line stuck high

3 = keyboard data line is stuck low

4 = keyboard data line stuck high

Compaq 5 = Compaq diagnostic feature

AC read diagnostic dump. the contents of the 804x RAM,

output port, input port, status word are send.

AD sngl disable keyboard (sets bit 4 of commmand byte)

AE sngl enable keyboard (resets bit 4 of commmand byte)

AF AWARD Enhanced Command: read keyboard version

C0 read read input port

Compaq Places status of input port in output buffer. use

this command only when the output buffer is empty

C1 MCA Enhanced Command: poll input port Low nibble

C2 MCA Enhanced Command: poll input port High nibble

D0 read read output port

Compaq Places byte in output port in output buffer. use

this command only when the output buffer is empty

D1 dbl write output port. next byte written to 0060

will be written to the 804x output port; the

original IBM AT and many compatibles use bit 1 of

the output port to control the A20 gate.

Compaq The system speed bits are not set by this command

use commands A1-A6 (!) for speed functions.

D2 MCA Enhanced Command: write keyboard output buffer

D3 MCA Enhanced Command: write pointing device out.buf.

D4 MCA write to mouse

D4 AWARD Enhanced Command: write to auxiliary device

DD sngl disable address line A20 (HP Vectra only???)

default in Real Mode

DF sngl enable address line A20 (HP Vectra only???)

E0 read read test inputs.

bit0 = kbd clock, bit1 = kbd data

Exxx AWARD Enhanced Command: active output port

ED Compaq This is a two part command to control the state

of the NumLock CpasLock and ScrollLock LEDs

The second byte contains the state to set LEDs.

bit 7-3 reserved. should be set to 0.

bit 2 = 0 Caps Lock LED off

bit 1 = 0 Num Lock LED off

bit 0 = 0 Scroll Lock LED off

F0-FF sngl pulse output port low for 6 microseconds.

bits 0-3 contain the mask for the bits to be

pulsed. a bit is pulsed if its mask bit is zero.

bit0=system reset. Don't set to zero. Pulse only!

general note: Keyboard controllers are widely different from each other.

You cannot generally exchange them between different machines.

note on Award: Derived from Award's Enhanced KB controller advertising sheet.

note on Compaq: Derived from the Compaq Deskpro 386 Tech. Ref. Guide.

0065 r communications port (Olivetti M24)

0068 w HP-Vectra control buffer (HP commands)

0069 r HP-Vectra SVC (keyboard request SerViCe port)

006A w HP-Vectra clear processing, done

006C-006F HP-HIL (Human Interface Link = async. serial inputs 0-7)

-------------------------------------------------------------------------------

0065 ---- AT&T 6300+ high/low chip select

-------------------------------------------------------------------------------

0065 ---- ???

0065 r/w ???

bit 2: A20 gate control (set = A20 enabled, clear = disabled)

-------------------------------------------------------------------------------

0066-0067 ---- AT&T 6300+ system configuration switches

-------------------------------------------------------------------------------

0068 ---- C&T chipsets, turbo mode control

-------------------------------------------------------------------------------

006B-006F ---- SSGA control registers

006B ? RAM enable/remap

006C-006F undocumented

-------------------------------------------------------------------------------

0070-007F ---- CMOS RAM/RTC (Real Time Clock MC146818)

0070 w CMOS RAM index register port (ISA, EISA)

bit 7 = 1 NMI disabled

= 0 NMI enabled

bit 6-0 CMOS RAM index (64 bytes, sometimes 128 bytes)

any write to 0070 should be followed by an action to 0071

or the RTC wil be left in an unknown state.

0071 r/w CMOS RAM data port (ISA, EISA)

RTC registers:

00 current second in BCD

01 alarm second in BCD

02 current minute in BCD

03 alarm minute in BCD

04 current hour in BCD

05 alarm hour in BCD

06 day of week in BCD

07 day of month in BCD

08 month in BCD

09 year in BCD (00-99)

0A status register A

bit 7 = 1 update in progress

bit 6-4 divider that identifies the time-based

frequency

bit 3-0 rate selection output frequency and int. rate

0B status register B

bit 7 = 0 run

= 1 halt

bit 6 = 1 enable periodic interrupt

bit 5 = 1 enable alarm interrupt

bit 4 = 1 enable update-ended interrupt

bit 3 = 1 enable square wave interrupt

bit 2 = 1 calendar is in binary format

= 0 calendar is in BCD format

bit 1 = 1 24-hour mode

= 0 12-hour mode

bit 0 = 1 enable daylight savings time. only in USA.

useless in Europe. Some DOS versions clear

this bit when you use the DAT/TIME command.

0C status register C

bit 7 = interrupt request flag

bit 6 = peridoc interrupt flag

bit 5 = alarm interrupt flag

bit 4 = update interrupt flag

bit 3-0 reserved

0D status register D

bit 7 = 1 Real-Time Clock has power

bit 6-0 reserved

0E diagnostics status byte

bit 7 = 0 RTC lost power

bit 6 = 1 CMOS RAM checksum bad

bit 5 = 1 invalid configuration information at POST

bit 4 = 1 memory size error at POST

bit 3 = 1 fixed disk/adapter failed initialization

bit 2 = 1 CMOS RAM time found invalid

bit 1 = 1 adapters do not match configuration (EISA)

bit 0 = 1 time out reading an adapter ID (EISA)

0F shutdown status byte

00 = normal execution of POST

01 = chip set initialization for real mode reentry

04 = jump to bootstrap code

05 = issue an EOI an JMP to Dword ptr at 40:67

06 = JMP to Dword ptrv at 40:67 without EOI

07 = return to INT15/87 (block move)

08 = return to POST memory test

09 = return to INT15/87 (block move)

0A = JMP to Dword ptr at 40:67 without EOI

0B = return IRETS through 40:67

10 diskette drive type for A: and B:

bit 7-4 drive type of drive 0

bit 3-0 drive type of drive 1

= 0000 no drive

= 0001 360K

= 0010 1M2

= 0011 720K

= 0100 1M44

= 0101-1111 reserved

11 reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)

bit 7 = 1 Typematic Rate Programming

bit 6-5 = 00 Typematic Rate Delay 250 mSec

bit 4-0 = 00011 Typematic Rate 21.8 Chars/Sec

12 fixed disk drive type for drive 0 and drive 1

bit 7-4 drive type of drive 0

bit 3-0 drive type of drive 1

if either of the nibbles equals 0F, then bytes

19 an 1A are valid

13 reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)

bit 7 = 1 Mouse Support Option

bit 6 = 1 Above 1 MB Memory Test disable

bit 5 = 1 Memory Test Tick Sound disable

bit 4 = 1 Memory Parity Error Check enable

bit 3 = 1 Hit <ESC> Message Display disabled

bit 2 = 1 Hard Disk Type 47 Data Area at address 0:300

bit 1 = 1 Wait For <F1> If Any Error enabled

bit 0 = 1 System Boot Up Num Lock is On

14 equipment byte

bit 7-6 diskette drives installed

= 00 1 drive installed

= 01 2 drives installed

= 10 reserved

= 11 reserved

bit 5-4 primary display

= 00 adapter card with option ROM

= 01 40*25 color

= 10 80*25 color

= 11 monochrome

bit 3-2 reserved

bit 1 = 1 coprocessor installed (non-Weitek)

bit 0 diskette drive avaliable for boot

15 LSB of systemn base memory in Kb

16 MSB of systemn base memory in Kb

17 LSB of total extended memory in Kb

18 MSB of total extended memory in Kb

19 drive C extension byte

1A drive D extension byte

1B-27 reserved

1B/1C word to 82335 RC1 roll compare register at [24]

(Phoenix)

1D/1E word to 82335 RC2 roll compare register at [26]

(Phoenix)

28 HP-Vectra checksum over 29-2D

29-2D reserved

29/2A word to Intel 82335 CC0 compare register at

[28](Phoenix)

2B/2C word send to 82335 CC1 compare register at [2A]

(Phoenix)

2D AMI Extended CMOS setup (AMI Hi-Flex BIOS)

(Phoenix BIOS checks for the values AA or CC)

bit 7 = 1 Weitek Processor Absent

bit 6 = 1 Floppy Drive Seek At Boot disabled

bit 5 = 1 System Boot Up Sequence C:, A:

bit 4 = 1 System Boot Up Speed is high

bit 3 = 1 Cache Memory enabled

bit 2 = 1 Internal Cache Memory <1>

bit 1-0 reserved

2E CMOS MSB checksum over 10-2D

2F CMOS LSB checksum over 10-2D

30 LSB of extended memory found above 1Mb at POST

31 MSB of extended memory found above 1Mb at POST

32 date century in BCD

33 information flags

bit4 = bit4 from CPU register CR0 (Phoenix)

this bit is only known as INTEL RESERVED

34-3F reserved

34 bit4 bit5 (Phoenix BIOS)

3D/3E word to 82335 MCR memory config register at

[22](Phoenix)

3D bit3 base memsize 512/640 (Phoenix)

3E bit7 = 1 relocate enable (Phoenix)

bit1 = 1 shadow video enable (Phoenix)

bit0 = 1 shadow BIOS enable (Phoenix)

User Definable Drive Parameters are also stored in CMOS RAM:

AMI (386sx BIOS 1989) first user definable drive (type 47)

1B L cylinders

1C H cylinders

1D heads

1E L Write Precompensation Cylinder

1F H Write Precompensation Cylinder

20 ??

21 L cylinders parking zone

22 H cylinders parking zone

23 sectors

AMI (386sx BIOS 1989) second user definable drive (type 48)

24 L cylinders

25 H cylinders

26 heads

27 L Write Precompensation Cylinder

28 H Write Precompensation Cylinder

29 ??

2A L cylinders parking zone

2B H cylinders parking zone

2C sectors

Phoenix (386BIOS v1.10.03 1988) 1st user definable drv (type48)

20 L cylinders

21 H cylinders

22 heads

23 L Write Precompensation Cylinder

24 H Write Precompensation Cylinder

25 L cylinders parking zone

26 H cylinders parking zone

27 sectors

Phoenix (386BIOS v1.10.03 1988) 2nd user definable drv (type49)

(when PS/2-style password option is not used)

35 L cylinders

36 H cylinders

37 heads

38 L Write Precompensation Cylinder

39 H Write Precompensation Cylinder

3A L cylinders parking zone

3B H cylinders parking zone

3C sectors

- - - - - - - - ---------------------------------------------------------------

0073 ---- Intel Pentium motherboard ("Neptune" chipset)

0073 r/w bit 7: ???

- - - - - - - - ---------------------------------------------------------------

0074-0076 secondary CMOS (Compaq)

0074 w secondary CMOS RAM index (Compaq)

0076 r/w secondary CMOS RAM (Compaq)

- - - - - - - - ---------------------------------------------------------------

0078 HP-Vectra Hard Reset: NMI enable/disable

bit 7 = 0 disable & clear hard reset from HP-HIL controller

= 1 enable hard reset from HP-HIL controller chip

bit 6-0 reserved

-------------------------------------------------------------------------------

0078-007F ---- PC radio by CoZet Info Systems

The I/O address range is dipswitch selectable from:

038-03F and 0B0-0BF

078-07F and 0F0-0FF

138-13F and 1B0-1BF

178-17F and 1F0-1FF

238-23F and 2B0-2BF

278-27F and 2F0-2FF

338-33F and 3B0-3BF

378-37F and 3F0-3FF

All of these addresses show a readout of FF in initial state.

Once started, all of the addresses show FB, whatever might

happen.

-------------------------------------------------------------------------------

007C-007D ---- HP-Vectra PIC 3 (Programmable Interrupt Controller 8259)

cascaded to first controller.

used for keyboard and input device interface.

007C r/w HP-Vectra PIC 3 see at 0020 PIC 1

007D r/w HP-Vectra PIC 3 see at 0021 PIC 1

-------------------------------------------------------------------------------

0080 w Manufacturing Diagnostics port

-------------------------------------------------------------------------------

0080-008F ---- DMA page registers (74612)

0080 r/w extra page register (temporary storage)

0081 r/w DMA channel 2 address byte 2

0082 r/w DMA channel 3 address byte 2

0083 r/w DMA channel 1 address byte 2

0084 r/w extra page register

0085 r/w extra page register

0086 r/w extra page register

0087 r/w DMA channel 0 address byte 2

0088 r/w extra page register

0089 r/w DMA channel 6 address byte 2

0089 r/w DMA channel 7 address byte 2

0089 r/w DMA channel 5 address byte 2

008C r/w extra page register

008D r/w extra page register

008E r/w extra page register

008F r/w DMA refresh page register

-------------------------------------------------------------------------------

0084 ---- Compaq POST Diagnostic

-------------------------------------------------------------------------------

0084 ---- EISA Synchronize Bus Cycle

-------------------------------------------------------------------------------

0090-009F ---- PS/2 POS (Programmable Option Select)

0090 Central arbitration control port

0091 r Card selection feedback

0092 r/w PS/2 system control port A (port B is at 0061)

bit 7-6 any bit set to 1 turns activity light on

bit 5 reserved

bit 4 = 1 watchdog timout occurred

bit 3 = 0 RTC/CMOS security lock (on password area) unlocked

= 1 CMOS locked (done by POST)

bit 2 reserved

bit 1 = 1 indicates A20 active

bit 0 = 0 system reset or write

1 pulse alternate reset pin (alternate CPU reset)

0094 w system board enable/setup register

bit 7 = 1 enable functions

= 0 setup functions

bit 5 = 1 enables VGA

= 0 setup VGA

0095 reserved

0096 w adapter enable /setup register

bit 3 = 1 setup adapters

= 0 enable registers

0097 reserved

-------------------------------------------------------------------------------

00A0-00AF ---- PIC 2 (Programmable Interrupt Controller 8259)

00A0 r/w NMI mask register (XT)

00A0 r/w PIC 2 same as 0020 for PIC 1

00A1 r/w PIC 2 same as 0021 for PIC 1 except for OCW1:

bit 7 = 0 reserved

bit 6 = 0 enable fixed disk interrupt

bit 5 = 0 enable coprocessor exception interrupt

bit 4 = 0 enable mouse interrupt

bit 3 = 0 reserved

bit 2 = 0 reserved

bit 1 = 0 enable redirect cascade

bit 0 = 0 enable real-time clock interrupt

-------------------------------------------------------------------------------

00B0-00BF ---- PC radio by CoZet Info Systems

The I/O address range is dipswitch selectable from:

038-03F and 0B0-0BF

078-07F and 0F0-0FF

138-13F and 1B0-1BF

178-17F and 1F0-1FF

238-23F and 2B0-2BF

278-27F and 2F0-2FF

338-33F and 3B0-3BF

378-37F and 3F0-3FF

All of these addresses show a readout of FF in initial state.

Once started, all of the addresses show FB, whatever might

happen.

-------------------------------------------------------------------------------

00C0 ---- TI SN746496 programmable tone/noise generator PCjr

-------------------------------------------------------------------------------

00C0-00DF ---- DMA 2 (second Direct Memory Access controller 8237)

00C0 r/w DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)

00C2 r/w DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)

00C4 r/w DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)

00C6 r/w DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)

00C8 r/w DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)

00CA r/w DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)

00CC r/w DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)

00CE r/w DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)

00D0 r DMA channel 4-7 status register (ISA, EISA)

bit 7 = 1 channel 7 request

bit 6 = 1 channel 6 request

bit 5 = 1 channel 5 request

bit 4 = 1 channel 4 request

bit 3 = 1 terminal count on channel 7

bit 2 = 1 terminal count on channel 6

bit 1 = 1 terminal count on channel 5

bit 0 = 1 terminal count on channel 4

00D0 w DMA channel 4-7 command register (ISA, EISA)

bit 7 = 1 DACK sense active high

= 0 DACK sense active low

bit 6 = 1 DREQ sense active high

= 0 DREQ sense active low

bit 5 = 1 extended write selection

= 0 late write selection

bit 4 = 1 rotating priority

= 0 fixed priority

bit 3 = 1 compressed timing

= 0 normal timing

bit 2 = 0 enable controller

bit 1 = 1 enable memory-to-memory transfer

bit 0 .....

00D2 w DMA channel 4-7 write request register (ISA, EISA)

00D4 w DMA channel 4-7 write single mask register (ISA, EISA)

bit 7-3 reserved

bit 2 = 0 clear mask bit

= 1 set mask bit

bit 1-0 = 00 channel 4 select

= 01 channel 5 select

= 10 channel 6 select

= 11 channel 7 select

00D6 w DMA channel 4-7 mode register (ISA, EISA)

bit 7-6 = 00 demand mode

= 01 single mode

= 10 block mode

= 11 cascade mode

bit 5 = 0 address increment select

= 1 address decrement select

bit 4 = 0 autoinitialisation disable

= 1 autoinitialisation enable

bit 3-2 = 00 verify operation

= 01 write to memory

= 10 read from memory

= 11 reserved

bit 1-0 = 00 channel 4 select

= 01 channel 5 select

= 10 channel 6 select

= 11 channel 7 select

00D8 w DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)

00DA r DMA channel 4-7 read temporary register (ISA, EISA)

00DA w DMA channel 4-7 master clear (ISA, EISA)

00DC w DMA channel 4-7 clear mask register (ISA, EISA)

00DE w DMA channel 4-7 write mask register (ISA, EISA)

-------------------------------------------------------------------------------

00E0-00E7 ---- Microchannel

00E0 r/w split address register, memory encoding registers PS/2m80 only

00E1 r/w memory register

00E3 r/w error trace

00E4 r/w error trace

00E5 r/w error trace

00E7 r/w error trace

-------------------------------------------------------------------------------

00F0-00F5 ---- PCjr Disk Controller

00F0 disk controller

00F2 disk controller control port

00F4 disk controller status register

00F5 disk controller data port

-------------------------------------------------------------------------------

00F0-00FF ---- coprocessor (8087..80387)

00F0 w math coprocessor clear busy latch

00F1 w math coprocessor reset

00F8 r/w opcode transfer

00FA r/w opcode transfer

00FC r/w opcode transfer

-------------------------------------------------------------------------------

00F9-00FF ---- PC radio by CoZet Info Systems

The I/O address range is dipswitch selectable from:

038-03F and 0B0-0BF

078-07F and 0F0-0FF

138-13F and 1B0-1BF

178-17F and 1F0-1FF

238-23F and 2B0-2BF

278-27F and 2F0-2FF

338-33F and 3B0-3BF

378-37F and 3F0-3FF

All of these addresses show a readout of FF in initial state.

Once started, all of the addresses show FB, whatever might

happen.

-------------------------------------------------------------------------------

0100-010F ---- CompaQ Tape drive adapter. alternate address at 0300

-------------------------------------------------------------------------------

0100-0107 ---- PS/2 POS (Programmable Option Select)

0100 r POS register 0 Low adapter ID byte

0101 r POS register 1 High adapter ID byte

0102 r/w POS register 2 option select data byte 1

bit 0 is card enable (CDEN)

0103 r/w POS register 3 option select data byte 2

0104 r/w POS register 4 option select data byte 3

0105 r/w POS register 5 option select data byte 4

bit 7 channel active (-CHCK)

bit 6 channel status

0106 r/w POS register 6 Low subaddress extension

0107 r/w POS register 7 High subaddress extension

-------------------------------------------------------------------------------

0108-010F ---- 8 digit LED info panel on IBM PS/2

010F w leftmost character on display

010E w second character

.... w

0108 w eighth character

-------------------------------------------------------------------------------

0130-013F ---- CompaQ SCSI adapter. alternate address at 0330

-------------------------------------------------------------------------------

0130-0133 ---- Adaptec 154xB/154xC SCSI adapter.

alternate address at 0134, 0230, 0234, 0330 and 0334

-------------------------------------------------------------------------------

0134-0137 ---- Adaptec 154xB/154xC SCSI adapter.

alternate address at 0130, 0230, 0234, 0330 and 0334

-------------------------------------------------------------------------------

0138-013F ---- PC radio by CoZet Info Systems

The I/O address range is dipswitch selectable from:

038-03F and 0B0-0BF

078-07F and 0F0-0FF

138-13F and 1B0-1BF

178-17F and 1F0-1FF

238-23F and 2B0-2BF

278-27F and 2F0-2FF

338-33F and 3B0-3BF

378-37F and 3F0-3FF

All of these addresses show a readout of FF in initial state.

Once started, all of the addresses show FB, whatever might

happen.

-------------------------------------------------------------------------------

0140-014F ---- SCSI (alternate Small Computer System Interface) adapter

(1st at 0340-034F)

-------------------------------------------------------------------------------

0140-0157 ---- RTC (alternate Real Time Clock for XT) (1st at 0340-0357)

-------------------------------------------------------------------------------

015F ---- ARTEC Handyscanner A400Z. alternate address at 35F.

-------------------------------------------------------------------------------

0170-0177 ---- HDC 2 (2nd Fixed Disk Controller) same as 01Fx (ISA, EISA)

-------------------------------------------------------------------------------

0178-0179 ---- Power Management

0178 w index selection for data port

0179 r/w power management data

-------------------------------------------------------------------------------

0178-017F ---- PC radio by CoZet Info Systems

The I/O address range is dipswitch selectable from:

038-03F and 0B0-0BF

078-07F and 0F0-0FF

138-13F and 1B0-1BF

178-17F and 1F0-1FF

238-23F and 2B0-2BF

278-27F and 2F0-2FF

338-33F and 3B0-3BF

378-37F and 3F0-3FF

All of these addresses show a readout of FF in initial state.

Once started, all of the addresses show FB, whatever might

happen.

-------------------------------------------------------------------------------

01E8-01EF ---- System Control. Laptop chipset: Headland HL21 & Acer M5105

01ED r/w select internal register. Data to/from 01EF

01EE r

01EF r/w reg.

5 = 1000xxxx for low CPU clock speed (4MHz on Morse/Mitac)

= 0xxxxxxx for high CPU clock speed (16MHz on Morse/Mitac)

-------------------------------------------------------------------------------

01F0-01F7 ---- HDC 1 (1st Fixed Disk Controller) same as 017x (ISA, EISA)

01F0 r/w data register

01F1 r error register

diagnostic mode errors:

bit 7-3 reserved

bit 2-1 = 001 no error detected

= 010 formatter device error

= 011 sector buffer error

= 100 ECC circuitry error

= 101 controlling microprocessor error

operation mode:

bit 7 = 1 bad block detected

= 0 block OK

bit 6 = 1 uncorrectable ECC error

= 0 no error

bit 5 reserved

bit 4 = 1 ID found

= 0 ID not found

bit 3 reserved

bit 2 = 1 command completed

= 0 command aborted

bit 1 = 1 track 000 not found

= 0 track 000 found

bit 0 = 1 DAM not found

= 0 DAM found (CP-3022 always 0)

01F1 w WPC/4 (Write Precompensation Cylinder divided by 4)

01F2 r/w sector count

01F3 r/w sector number

01F4 r/w cylinder low

01F5 r/w cylinder high

01F6 r/w drive/head

bit 7 = 1

bit 6 = 0

bit 5 = 1

bit 4 = 0 drive 0 select

= 1 drive 1 select

bit 3-0 head select bits

01F7 r status register

bit 7 = 1 controller is executing a command

bit 6 = 1 drive is ready

bit 5 = 1 write fault

bit 4 = 1 seek complete

bit 3 = 1 sector buffer requires servicing

bit 2 = 1 disk data read successfully corrected

bit 1 = 1 index - set to 1 each disk revolution

bit 0 = 1 previous command ended in an error

01F7 w command register

commands:

98 E5 check power mode (IDE)

90 execute drive diagnostics

50 format track

EC identify drive (IDE)

97 E3 idle (IDE)

95 E1 idle immediate (IDE)

91 initialize drive parameters

1x recalibrate

E4 read buffer (IDE)

C8 read DMA with retry (IDE)

C9 read DMA without retry (IDE)

C4 read multiplec (IDE)

20 read sectors with retry

21 read sectors without retry

22 read long with retry

23 read long without retry

40 read verify sectors with retry

41 read verify sectors without retry

7x seek

EF set features (IDE)

C6 set multiple mode (IDE)

99 E6 set sleep mode (IDE)

96 E2 standby (IDE)

94 E0 standby immediate (IDE)

E8 write buffer (IDE)

CA write DMA with retry (IDE)

CB write DMA with retry (IDE)

C5 write multiple (IDE)

E9 write same (IDE)

30 write sectors with retry

31 write sectors without retry

32 write long with retry

33 write long without retry

3C write verify (IDE)

9A vendor unique (IDE)

C0-C3 vendor unique (IDE)

8x vendor unique (IDE)

F0-F4 EATA standard (IDE)

F5-FF vendor unique (IDE)

-------------------------------------------------------------------------------

01F8 ---- ???

01F8 r/w ???

bit 0: A20 gate control (set = A20 enabled, clear = disabled)

-------------------------------------------------------------------------------

01F9-01FF ---- PC radio by CoZet Info Systems

The I/O address range is dipswitch selectable from:

038-03F and 0B0-0BF

078-07F and 0F0-0FF

138-13F and 1B0-1BF

178-17F and 1F0-1FF

238-23F and 2B0-2BF

278-27F and 2F0-2FF

338-33F and 3B0-3BF

378-37F and 3F0-3FF

All of these addresses show a readout of FF in initial state.

Once started, all of the addresses show FB, whatever might

happen.

-------------------------------------------------------------------------------

0200-020F ---- Game port reserved I/O address space

0200-0207 ---- Game port, eight identical addresses on some boards

0201 r read joystick position and status

bit 7 status B joystick button 2 / D paddle button

bit 6 status B joystick button 1 / C paddle button

bit 5 status A joystick button 2 / B paddle button

bit 4 status A joystick button 1 / A paddle button

bit 3 B joystick Y coordinate / D paddle coordinate

bit 2 B joystick X coordinate / C paddle coordinate

bit 1 A joystick Y coordinate / B paddle coordinate

bit 0 A joystick X coordinate / A paddle coordinate

w fire joysticks four one-shots

-------------------------------------------------------------------------------

0200-02FF ---- Sunshine uPW48, programmer for EPROM version CPU's 8748/8749

(4 bit DIP switch installable in the range 20x-2Fx)

0200-0203 adresses of the 8255 on the uPW48

0208-020B adresses of ??? on the uPW48 (all showing zeros)

-------------------------------------------------------------------------------

0210-0217 ---- Expansion unit (XT)

0210 w latch expansion bus data

r verify expansion bus data

0211 w clear wait, test latch

r High byte data address

0212 r Low byte data address

0213 w 0=enable, 1=disable expansion unit

0214 w latch data (receiver card port)

r read data (receiver card port)

0215 r High byte of address, then Low byte (receiver card port)

------------------------------------------------------------------------------

0220-0223 ---- Sound Blaster / Adlib port

0220 r/w Left speaker -- Status / Address port

0221 w Left speaker -- Data port

0222 r/w Right speaker -- Status / Address port

Address:

01 -- Enable waveform control

02 -- Timer #1 data

03 -- Timer #2 data

04 -- Timer control flags

08 -- Speech synthesis mode

20-35 -- Amplitude Modulation / Vibrato

40-55 -- Level key scaling / Total level

60-75 -- Attack / Decay rate

80-95 -- Sustain / Release rate

A0-B8 -- Octave / Frequency Number

C0-C8 -- Feedback / Algorithm

E0-F5 -- Waveform Selection

0223 w Right speaker -- Data port

SeeAlso: 0388-0389

-------------------------------------------------------------------------------

0220-0227 ---- Soundblaster PRO and SSB 16 ASP

-------------------------------------------------------------------------------

0220-022F ---- Soundblaster PRO 2.0

-------------------------------------------------------------------------------

0220-022F ---- Soundblaster PRO 4.0

0220 r left FM status port

0220 w left FM music register address port (index)

0221 r/w left FM music data port

0222 r right FM status port

0222 w right FM music register address port (index)

0223 r/w right FM music data port

0224 w mixer register address port (index)

0225 r/w mixer data port

0226 w DSP reset

0228 r FM music status port

0228 w FM music register address port (index)

0229 w FM music data port

022A r DSP read data (voice I/O and Midi)

022C w DSP write data / write command

022C r DSP write buffer status (bit 7)

022E r DSP data available status (bit 7)

The FM music is accessible on 0388/0389 for compatibility.

-------------------------------------------------------------------------------

0230-0233 ---- Adaptec 154xB/154xC SCSI adapter.

alternate address at 0130, 0134, 0230, 0330 and 0334

-------------------------------------------------------------------------------

0234-0237 ---- Adaptec 154xB/154xC SCSI adapter.

alternate address at 0130, 0134, 0230, 0330 and 0334

-------------------------------------------------------------------------------

0240-024F ---- Gravis Ultra Sound by Advanced Gravis

The I/O address range is dipswitch selectable from:

0200-020F and 0300-030F

0210-021F and 0310-031F

0220-022F and 0320-032F

0230-023F and 0330-033F

0240-024F and 0340-034F

0250-025F and 0350-035F

0260-026F and 0360-036F

0270-027F and 0370-037F

0240 w Mix Control register

bit 6 Control Register Select (see 024B)

bit 5 Enable MIDI Loopback

bit 4 Combine GF1 IRQ with MIDI IRQ

bit 3 Enable Latches

bit 2 Enable MIC IN

bit 1 Disable LINE OUT

bit 0 Disable LINE IN

0241 r Read Data

w Trigger Timer

0246 r IRQ Status Register

bit 7 DMA TC IRQ

bit 6 Volume Ramp IRQ

bit 5 WaveTable IRQ

bit 3 Timer 2 IRQ

bit 2 Timer 1 IRQ

bit 1 MIDI Receive IRQ

bit 0 MIDI Transmit IRQ

0248 r/w Timer Control Reg

Same a ADLIB Board (look at 0200)

0249 w Timer Data

bit 7 Reset Timr IRQ

bit 6 Mask Timer 1

bit 5 Mask Timer 2

bit 1 Timer 2 Start

bit 0 Timer 1 Start

024B w IRQ Control Register (0240 bit 6 = 1)

bit 6 Combine Both IRQ

bit 5-3 MIDI IRQ Selector

= 000 No IRQ

= 001 IRQ 2

= 010 IRQ 5

= 011 IRQ 3

= 100 IRQ 7

= 101 IRQ 11

= 110 IRQ 12

= 111 IRQ 15

bit 2-0 GF1 IRQ Selector

= 000 No IRQ

= 001 IRQ 2

= 010 IRQ 5

= 011 IRQ 3

= 100 IRQ 7

= 101 IRQ 11

= 110 IRQ 12

= 111 IRQ 15

DMA Control Register (0240 bit 6 = 0)

bit 6 Combine Both IRQ

bit 5-3 DMA Select Register 2

= 000 No DMA

= 001 DMA 1

= 010 DMA 3

= 011 DMA 5

= 100 DMA 6

= 101 DMA 7

bit 2-0 DMA Select Register 1

= 000 No DMA

= 001 DMA 1

= 010 DMA 3

= 011 DMA 5

= 100 DMA 6

= 101 DMA 7

024F r/w Register Controls (rev 3.4+)

SeeAlso: 0340-034F, 0746



-------------------------------------------------------------------------------

0240-0257 ---- RTC (alternate Real Time Clock for XT) (1st at 0340-0357)

(used by TIMER.COM v1.2 which is the 'standard' timer program)

-------------------------------------------------------------------------------

0258-025F ---- Intel Above Board

-------------------------------------------------------------------------------

0278-027E ---- parallel printer port, same as 0378 and 03BC

0278 w data port

0279 r/w status port

027A r/w control port

-------------------------------------------------------------------------------

02A0-02A7 ---- Sunshine EW-901BN, EW-904BN

EPROM writer card (release 1986) for EPROMs up to 27512

02A0-02A3 adresses of the 8255 on the EW-90xBN

-------------------------------------------------------------------------------

02A2-02A3 ---- MSM58321RS clock

-------------------------------------------------------------------------------

02B0-02BF ---- Trantor SCSI adapter

-------------------------------------------------------------------------------

02B0-02DF ---- alternate EGA, primary EGA at 03C0

-------------------------------------------------------------------------------

02C0-02Cx ---- AST-clock

-------------------------------------------------------------------------------

02E0-02EF ---- GPIB (General Purpose Interface Bus, IEEE 488 interface)

(GAB 0 on XT)

02E1 GPIB (adapter 0)

02E2

02E3

-------------------------------------------------------------------------------

02E0-02EF ---- data aquisition (AT)

02E2 data aquisition (adapter 0)

02E3 data aquisition (adapter 0)

-------------------------------------------------------------------------------

02E8 ---- S3 86C928 video controller (ELSA Winner 1000)

-------------------------------------------------------------------------------

02E8-02EF ---- serial port, same as 02F8, 03E8 and 03F8

-------------------------------------------------------------------------------

02E8-02EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

02E8 r display status

02E8 w horizontal total

02EA w DAC mask

02EB w DAC read index

02EC w DAC write index

02ED w DAC data

-------------------------------------------------------------------------------

02EA ---- S3 86C928 video controller (ELSA Winner 1000)

-------------------------------------------------------------------------------

02F8-02FF ---- serial port, same as 02E8, 03E8 and 03F8

02F8 w transmitter holding register

02F8 r receiver buffer register

r/w divisor latch, low byte when DLAB=1

02F9 r/w divisor latch, high byte when DLAB=1

r/w interrupt enable register when DLAB=0

02FA r interrupt identification register

02FB r/w line control register

02FC r/w modem control register

02FD r line status register

02FF r/w scratch register

-------------------------------------------------------------------------------

0300 ---- Award POST Diagnostic

-------------------------------------------------------------------------------

0300-0301 ---- Soundblaster 16 ASP MPU-Midi

-------------------------------------------------------------------------------

0300-0303 ---- Panasonic 52x CD-ROM SCSI Miniport

Alternate addresses at 0320, 0340, 0360, and 0380

-------------------------------------------------------------------------------

0300-030F ---- Philips CD-ROM player CM50

-------------------------------------------------------------------------------

0300-030F ---- CompaQ Tape drive adapter. alternate address at 0100

-------------------------------------------------------------------------------

0300-031F ---- prototype cards

Periscope hardware debugger

-------------------------------------------------------------------------------

0310-031F ---- Philips CD-ROM player CM50

-------------------------------------------------------------------------------

0320-0323 ---- XT HDC 1 (Hard Disk Controller)

0320 r/w data register

0321 w reset controller

r read controller hardware status

bit 7-6 = 0

bit 5 logical unit number

bit 4-2 = 0

bit 1 = 0 no error

bit 0 = 0

0322 r read DIPswitch setting on XT controller card

w generate controller-select pulse

0323 w write pattern to DMA and INT mask register

0324-0327 ---- XT HDC 2 (Hard Disk Controller)

0328-032B ---- XT HDC 3 (Hard Disk Controller)

032C-032F ---- XT HDC 4 (Hard Disk Controller)

-------------------------------------------------------------------------------

0330-0331 ---- MIDI interface

-------------------------------------------------------------------------------

0330-0333 ---- Adaptec 154xB/154xC SCSI adapter. default address.

alternate address at 0130, 0134, 0230, 0234 and 0334

-------------------------------------------------------------------------------

0330-033F ---- CompaQ SCSI adapter. alternate address at 0130

-------------------------------------------------------------------------------

0330-033F ---- Philips CD-ROM player CM50

-------------------------------------------------------------------------------

0334-0337 ---- Adaptec 154xB/154xC SCSI adapter.

alternate address at 0130, 0134, 0230, 0234 and 0330

-------------------------------------------------------------------------------

0338 ---- AdLib soundblaster card

-------------------------------------------------------------------------------

0340-034F ---- Philips CD-ROM player CM50

-------------------------------------------------------------------------------

0340-034F ---- SCSI (1st Small Computer System Interface) adapter

(alternate at 0140-014F)

-------------------------------------------------------------------------------

0340-034F ---- Gravis Ultra Sound by Advanced Gravis

The I/O address range is dipswitch selectable from:

0200-020F and 0300-030F

0210-021F and 0310-031F

0220-022F and 0320-032F

0230-023F and 0330-033F

0240-024F and 0340-034F

0250-025F and 0350-035F

0260-026F and 0360-036F

0270-027F and 0370-037F



0340 w MIDI Control

bit 7 Receive IRQ (1 = enabled)

bit 5-6 Xmit IRQ

bit 0-1 Master Reset (1 = enabled)

r MIDI Status

bit 7 Interrupt pending

bit 5 Overrun Error

bit 4 Framing Error

bit 1 Transmit Register Empty

bit 0 Receive Register Empty

0341 w MIDI Transmit Data

r MIDI Receive Data

0342 r/w GF1 Page Register / Voice Select

0343 r/w GF1/Global Register Select



Global Registers, NOT voice specific:

41 r/w DRAM DMA Control

bit 7 Invert MSB

bit 6 Data Size (8/16 bits)

bit 5 DMA Pending

bit 3-4 DMA Rate Divider

bit 2 DMA Channel Width (8/16 bits)

bit 1 DMA Direction (1 = read)

bit 0 DMA Enable

42 w DMA Start Address

bits 15-0 DMA Address Lines 19-4

43 w DRAM I/O Address LOW

44 w DRAM I/O Address HIGH

bits 0-3 Upper 4 Address Lines

45 r/w Timer Control

bit 3 Enable Timer 2

bit 2 Enable Timer 1

46 w Timer 1 Count (granularity of 80 micro sec)

47 w Timer 2 Count (granulatity of 320 micro sec)

48 w Sampling Frequency

rate = 9878400 / (16 * (FREQ + 2))

49 r/w Sampling Control

bit 7 Invert MSB

bit 6 DMA IRQ pending

bit 5 DMA IRQ enable

bit 2 DMA width (8/16 bits)

bit 1 Mode (mone/stereo)

bit 0 Start Sampling

4B w Joystick Trim DAC

4C r/w RESET

bit 2 GF1 Master IRQ Enable

bit 1 DAC Enable

bit 0 Master Reset



Voice specific registers:

00 w Voice Control

bit 7 IRQ pending

bit 6 Direction

bit 5 Enable W***E IRQ

bit 4 Enable bi-directional Looping

bit 3 Enable Looping

bit 2 Size data (8/16 bits)

bit 1 Stop Voice

bit 0 Voice Stopped

01 w Frequency Control

bit 15-10 Integer Portion

bit 9-1 Fractional Portion

02 w Start Address HIGH

bit 12-0 Address Lines 19-7

03 w Start Address LOW

bit 15-9 Address Lines 6-0

bit 8-5 Fractional Part of Start Address

04 w End Address HIGH

bit 12-0 Address Lines 19-7

05 w End Address LOW

bit 15-9 Address Lines 6-0

bit 8-5 Fractional Part of End Address

06 w Volume Ramp Rate

bit 5-0 Amount added

bit 7-6 Rate

07 w Volume Ramp Start

bit 7-4 Exponent

bit 3-0 Mantissa

08 w Volume Ramp End

bit 7-4 Exponent

bit 3-0 Mantissa

09 w Current Volume

bit 15-12 Exponent

bit 11-4 Mantissa

0A w Current Address HIGH

bit 12-0 Address Lines 19-7

0B w Current Address LOW

bit 15-9 Address Lines 6-0

bit 8-0 Fractional Position

0C w Pan Position

bit 3-0 Pan Postion

0D w Volume Control

bit 7 IRQ Pending

bit 6 Direction

bit 5 Enable Volume Ramp IRQ

bit 4 Enable bi-directional Looping

bit 3 Enable Looping

bit 2 Rollover Condition

bit 1 Stop Ramp

bit 0 Ramp Stopped

0E w Active Voices

bit 5-0 #Voices -1 (allowed 13 - 31)

0F w IRQ Source Register

bit 7 WaveTable IRQ pending

bit 6 Volume Ramp IRQ pending

bit 4-0 Voice Number

80 r Voice Control (see 00)

81 r Frequency Control (see 01)

82 r Start Address HIGH (see 02)

83 r Start Address LOW (see 03)

84 r End Address HIGH (see 04)

85 r End Address LOW (see 05)

86 r Volume Ramp Rate (see 06)

87 r Volume Ramp Start (see 07)

88 r Volume Ramp End (see 08)

89 r Current Volume (see 09)

8A r Current Address HIGH (see 0A)

8B r Current Address LOW (see 0B)

8C r Pan Position (see 0C)

8D r Volume Control (see 0D)

8E r Active Voices (see 0E)

8F r IRQ Status (see 0F)



0344 r/w GF1/Global Data Low Byte (16 bits)

0345 r/w GF1/Global Data High Byte (8 bits)

0346 w Mixer Data Port

0347 r/w GF1 DRAM

Direct Read Write at Loction pointed with regs 43 and 44

SeeAlso: 0240-024F, 0746



-------------------------------------------------------------------------------

0340-0357 ---- RTC (1st Real Time Clock for XT), (alternate at 0240-0257)

(used by TIMER.COM v1.2 which is the 'standard' timer program)

0340 r/w 0.01 seconds 0-99

0341 r/w 0.1 seconds 0-99

0342 r/w seconds 0-59

0343 r/w minutes 0-59

0343 r/w hours 0-23

0345 r/w day of week 1-7

0346 r/w day of month 1-31

0347 r/w month 1-12

0348

0349 r/w year 0-99

034A

034B

034C

034D

034E

034F

0350 r status?

0351

0352

0353

0354 r status?

0355

0356

0357

-------------------------------------------------------------------------------

0348-0357 ---- DCA 3278

-------------------------------------------------------------------------------

034C-034F ---- Gravis UltraMax by Advanced Gravis

The I/O address range is dipswitch selectable from:

0200-020F and 0300-030F

0210-021F and 0310-031F

0220-022F and 0320-032F

0230-023F and 0330-033F

0240-024F and 0340-034F

0250-025F and 0350-035F

0260-026F and 0360-036F

0270-027F and 0370-037F

-------------------------------------------------------------------------------

035A-035B ---- Adaptec AH1520 jumper settings

035A r bit 7: SCSI parity disabled

bits 6-5: DMA channel

(00 = channel 0, 01 = 5, 10 = 6, 11 = 7)

bits 4-3: IRQ number

(00 = IRQ9, 01 = IRQ10, 10 = IRQ11, 11 = IRQ12)

bits 2-0: SCSI ID

035B r bit 7: DMA transfer mode (clear for PIO)

bit 6: boot enabled

bits 5-4: boot type

00 ???

01 boot from floppy

10 print configured options

11 boot from hard disk

bit 3: enable sync negotiation

bit 2: enable target disconnection

bits 1-0: unused???

-------------------------------------------------------------------------------

035F ---- ARTEC Handyscanner A400Z. alternate address at 15F.

-------------------------------------------------------------------------------

0360-036F ---- PC network (AT)

0360-0367 ---- PC network (XT only)

-------------------------------------------------------------------------------

0360-036F ---- National Semiconductor DP8390(1)C/NS3249C network chipset

Note: cards based on this IEEE 802.3 networking chipset can use any range

of 16 consecutive addresses, and provide a total of four pages of

sixteen register

Page 0 r w

00 Command reg. CR Command reg. CR

01 current local DMA address 0 CLDA0 page start reg. PSTART

02 current local DMA address 1 CLDA1 page stop reg. PSTOP

03 boundary pointer BNRY boundary pointer BNRY

04 transmit status reg. TSR Tx page start address TPSR

05 number of collisions reg. NCR Tx byte count reg.0 TBCR0

06 FIFO Tx byte count reg.1 TBCR1

07 interrupt status reg. ISR interrupt status reg. ISR

08 current remote DMA address 0 CRDA0 remote start addr.reg.0 RSAR0

09 current remote DMA address 1 CRDA1 remote start addr.reg.1 RSAR1

0A reserved remote byte count reg.0 RBCR0

0B reserved remote byte count reg.1 RBCR1

0C receive status reg. RSR Rx configuration reg. RCR

0D tally counter 0 (frame errors) CNTR0 Tx configuration reg. TCR

0E tally counter 1 (CRC errors) CNTR1 data configuration reg. DCR

0F tally counter 2 (missed pkt) CNTR2 interrupt mask reg. IMR

Page 1 r/w

00 Command CR

01 physical address reg.0 PAR0

02 physical address reg.1 PAR1

03 physical address reg.2 PAR2

04 physical address reg.3 PAR3

05 physical address reg.4 PAR4

06 physical address reg.5 PAR5

07 current page reg. CURR

08 multicast address reg.0 MAR0

09 multicast address reg.1 MAR1

0A multicast address reg.2 MAR2

0B multicast address reg.3 MAR3

0C multicast address reg.4 MAR4

0D multicast address reg.5 MAR5

0E multicast address reg.6 MAR6

0F multicast address reg.7 MAR7

Page 2 r w

diagnostics page - should never be modfied under normal operation.

00 Command CR Command CR

01 page start reg. PSTART current local DMA addr.0 CLDA0

02 page stop reg. BPSTOP current local DMA addr.1 CLDA1

03 remote next packet pointer remote next packet pointer

04 Tx page start address TPSR reserved

05 local next packet pointer local next packet pointer

06 address counter (upper) address counter (upper)

07 address counter (lower) address counter (lower)

08 reserved reserved

09 reserved reserved

0A reserved reserved

0B reserved reserved

0C Rx configuration reg. RCR reserved

0D Tx configuration reg. TCR reserved

0E data configuration reg. DCR reserved

0F interrupt mask reg. IMR reserved

Page 3 r w

Test Page - should never be modified !

00 Command CR Command CR

bit0=1 software reset command. 1=offline 0=online

bit1=0 activate NIC after reset command

bit2=1 start transmision of a packet

bit3-5 remote DMA command

000 not allowed

001 remote read

010 remote write

011 send packet

1xx abort/complete rmote DMA

bit 6,7 page select

00 register page 0

01 register page 1

10 register page 2

11 register page 3

-------------------------------------------------------------------------------

0370-0377 ---- FDC 2 (2nd Floppy Disk Controller) first FDC at 03F0

(8272, 8272A, NEC765)

(82072, 82077AA for perpendicular recording at 2.8Mb)

0370 r diskette Extra High Density controller board jumpers (AT)

0370 r diskette controller status A (PS/2, PS/2 model 30)

0371 r diskette controller status B (PS/2, PS/2 model 30)

0372 w diskette controller DOR (Digital Output Register)

0374 r diskette controller main status register

0374 w diskette controller datarate select register

0375 r/w diskette controller command/data register

0376 r/w (2nd FIXED disk controller data register)

0377 r diskette controller DIR (Digital Input Register)

0377 w select register for diskette data transfer rate

-------------------------------------------------------------------------------

0378-037A ---- parallel printer port, same as 0278 and 03BC

0378 w data port

0379 r/w status port

037A r/w control port

-------------------------------------------------------------------------------

0380-038F ---- 2nd Binary Synchronous Data Link Control adapter (see 03A0)

0380 r/w on board 8255 port A, internal/external sense

0381 r/w on board 8255 port B, external modem interface

0382 r/w on board 8255 port C, internal control and gating

0383 r/w on board 8255 mode register

0384 r/w on board 8253 channel square wave generator

0385 r/w on board 8253 channel 1 inactivity time-out

0386 r/w on board 8253 channel 2 inactivity time-out

0387 r/w on board 8253 mode register

0388 r/w on board 8273 read: status write: command

0389 r/w on board 8273 read: response write: parameter

038A r/w on board 8273 transmit interrupt status

038B r/w on board 8273 receiver interrupt status

038C r/w on board 8273 data

------------------------------------------------------------------------------

0388-0389 ---- Sound Blaster / Adlib port

0388 r/w Both Speakers -- Status / Address port

Address:

01 -- Enable waveform control

02 -- Timer #1 data

03 -- Timer #2 data

04 -- Timer control flags

08 -- Speech synthesis mode

20-35 -- Amplitude Modulation / Vibrato

40-55 -- Level key scaling / Total level

60-75 -- Attack / Decay rate

80-95 -- Sustain / Release rate

A0-B8 -- Octave / Frequency Number

C0-C8 -- Feedback / Algorithm

E0-F5 -- Waveform Selection

0389 w Data port

SeeAlso: 0220-0223

-------------------------------------------------------------------------------

0388-0389 ---- Soundblaster PRO FM-Chip

0388-038B ---- Soundblaster 16 ASP FM-Chip

-------------------------------------------------------------------------------

0390-0397 ---- Sunshine EW-901B, EW-904B

EPROM writer card for EPROMs up to 27512

0390-0393 adresses of the 8255 on the EW-90xB

-------------------------------------------------------------------------------

0390-039F ---- Cluster adapter (AT)

0390-0393 (adapter 0) (XT)

-------------------------------------------------------------------------------

03A0-03AF ---- 1st SDLC (Binary Synchronous Data Link Control adapter)

03A0 r/w on board 8255 port A, internal/external sense

03A1 r/w on board 8255 port B, external modem interface

03A2 r/w on board 8255 port C, internal control and gating

03A3 r/w on board 8255 mode register

03A4 r/w on board 8253 counter 0 unused

03A5 r/w on board 8253 channel 1 inactivity time-out

03A6 r/w on board 8253 channel 2 inactivity time-out

03A7 r/w on board 8253 mode register

03A8 r/w on board 8251 data

03A9 r/w on board 8251 command/mode/status register

-------------------------------------------------------------------------------

03B0-03BF ---- MDA (Monochrome Display Adapter based on 6845)

03B0 same as 03B4

03B1 same as 03B5

03B2 same as 03B4

03B3 same as 03B5

03B4 w MDA CRT index register (EGA/VGA)

selects which register (0-11h) is to be accessed through 3B5

03B5 r/w MDA CRT data register (EGA/VGA)

selected by port 3B4. registers C-F may be read

00 horizontal total

01 horizontal displayed

02 horizontal sync position

03 horizontal sync pulse width

04 vertical total

05 vertical displayed

06 vertical sync position

07 vertical sunc pulse width

08 interlace mode

09 maximum scan lines

0A cursor start

0B cursor end

0C start address high

0D start address low

0E cursor location high

0F cursor location low

10 light pen high

11 light pen low

03B6 same as 03B4

03B7 same as 03B5

03B8 r/w MDA mode control register

bit 7 not used

bit 6 not used

bit 5 enable blink

bit 4 not used

bit 3 video enable

bit 2 not used

bit 1 not used

bit 0 high resolution mode

03B9 reserved for color select register on color adapter

03BA r CRT status register EGA/VGA: input status 1 register

bit 7 (MSD says) if this bit changes within 8000h reads then

bit 6-4 = 000 = adapter is Hercules or compatible

001 = adapter is Hercules+

101 = adapter is Hercules InColor

else: adapter is unknown

bit 3 black/white video

bit 2-1 reserved

bit 0 horizontal drive

03BA w EGA/VGA feature control register

03BB reserved for light pen strobe reset

-------------------------------------------------------------------------------

03BC-03BF ---- parallel printer port, same as 0278 and 0378

03BC w data port

03BD r/w status port

bit 7 = 0 busy

bit 6 = 0 acknowledge

bit 5 = 1 out of paper

bit 4 = 1 printer is selected

bit 3 = 0 error

bit 2 = 0 IRQ has occurred

bit 1-0 reserved

03BE r/w control port

bit 7-5 reserved

bit 4 = 1 enable IRQ

bit 3 = 1 select printer

bit 2 = 0 initialize printer

bit 1 = 1 automatic line feed

bit 0 = 1 strobe

-------------------------------------------------------------------------------

03BF r/w Hercules configuration switch register

bit 7-2

bit 1 = 0 disables upper 32K of graphics mode buffer

1 enables upper 32K of graphics mode buffer

bit 0 = 0 prevents graphics mode

1 allows graphics mode

-------------------------------------------------------------------------------

03C0-03C7 ---- Sunshine EW-901, EW-901A, EW-904, EW-904A

EPROM writer card for EPROMs up to 27512

03C0-03C3 adresses of the 8255 on the EW-90x

-------------------------------------------------------------------------------

03C0-03CF ---- EGA (1st Enhanced Graphics Adapter) alternate at 02C0

03C0 (r)/w EGA VGA ATC index/data register

03C1 r VGA other attribute register

03C2 r EGA VGA input status 0 register

w VGA miscellaneous output register

03C3 r/w VGA video subsystem enable (see also port 46E8h)

for IBM, motherboard VGA only

03C4 w EGA TS index register

r/w VGA sequencer index register

03C5 w EGA TS data register

r/w VGA other sequencer register

03C6 r/w VGA PEL mask register

03C7 r/w VGA PEL address read mode

r VGA DAC state register

03C8 r/w VGA PEL address write mode

03C9 r/w VGA PEL data register

03CA w EGA graphics 2 position register

r VGA feature control register

03CC w EGA graphics 1 position register

r VGA miscellaneous output register

03CE w EGA GDC index register

r/w VGA graphics address register

03CF w EGA GDC data register

r/w VGA other graphics register

-------------------------------------------------------------------------------

03CE-03CF ---- Compaq Qvision - Functionality Level

03CE w graphics address register (index for next port)

03CF r/w other graphics register

Index

0Ch r controller version

2Fh Advanced VGA

37h early QVision 1024

71h QVision 1280 or later QVision 1024

0Dh extended controller version

0Eh extended controller capabilities

0Fh environment info

54h available memory

55h phase-locked-loop clock

56h-57h controller capabilities

-------------------------------------------------------------------------------

03D0-03DF ---- CGA (Color Graphics Adapter)

03D0 same as 03D4

03D1 same as 03D5

03D2 same as 03D4

03D3 same as 03D5

03D4 w CRT (6845) index register (EGA/VGA)

selects which register (0-11h) is to be accessed through 3B5

03D5 w CRT (6845) data register (EGA/VGA)

selected by port 3B4. registers C-F may be read

(for registers see at 3B5)

03D6 same as 03D4

(under OS/2, reads return 0 if full-screen DOS session,

nonzero if windowed DOS session)

03D7 same as 03D5

03D8 r/w CGA mode control register (except PCjr)

bit 7-6 not used

bit 5 = 1 blink enabled

bit 4 = 1 640*200 graphics mode

bit 3 = 1 video enabled

bit 2 = 1 monochrome signal

bit 1 = 0 text mode

= 1 320*200 graphics mode

bit 0 = 0 40*25 text mode

= 1 80*25 text mode

03D9 r/w CGA palette register

bit 7-6 not used

bit 5 = 0 active color set: red, green brown

= 1 active color set: cyan, magenta, white

bit 4 intense colors in graphics, background colors text

bit 3 intense border in 40*25, intense background in

320*200, intense foreground in 640*200

bit 2 red border in 40*25, red background in 320*200,

red foreground in 640*200

bit 1 green border in 40*25, green background in

320*200, green foreground in 640*200

bit 0 blue border in 40*25, blue background in 320*200,

blue foreground in 640*200

03DA r CGA status register EGA/VGA: input status 1 register

bit 7-4 not used

bit 3 = 1 in vertical retrace

bit 2 = 1 light pen switch is off

bit 1 = 1 positive edge from light pen has set trigger

bit 0 = 0 do not use memory

= 1 memory access without interfering with display

03DA w EGA/VGA feature control register

03DB w clear light pen latch

03DC r/w preset light pen latch

03DF CRT/CPU page register (PCjr only)

-------------------------------------------------------------------------------

03E8-03EF ---- serial port, same as 02E8, 02F8 and 03F8

-------------------------------------------------------------------------------

03F0-03F7 ---- FDC 1 (1st Floppy Disk Controller) second FDC at 0370

(8272, 8272A, NEC765)

(82072, 82077AA for perpendicular recording at 2.8Mb)

03F0 r diskette EHD controller board jumper settings (82072AA)

bit 7-6 drive 3

bit 5-4 drive 2

bit 3-2 drive 1

bit 1-0 drive 0

= 00 1.2Mb

= 01 720Kb

= 10 2.8Mb

= 11 1.4Mb

03F0 r diskette controller status A (PS/2)

bit 7 interrupt pending

bit 6 -DRV2 second drive installed

bit 5 step

bit 4 -track 0

bit 3 head 1 select

bit 2 -index

bit 1 -write protect

bit 0 +direction

03F0 r diskette controller status A (PS/2 model 30)

bit 7 interrupt pending

bit 6 DRQ

bit 5 step F/F

bit 4 -track 0

bit 3 head 1 select

bit 2 +index

bit 1 +write protect

bit 0 -direction

03F1 r diskette controller status B (PS/2)

bit 7-6 =1 reserved

bit 5 drive select (0=A:, 1=B:)

bit 4 write data

bit 3 read data

bit 2 write enable

bit 1 motor enable 1

bit 0 motor enable 0

03F1 r diskette controller status B (PS/2 model 30)

bit 7 -DRV2 second drive installed

bit 6 -DS1

bit 5 -DS0

bit 4 write data F/F

bit 3 read data F/F

bit 2 write enable F/F

bit 1 -DS3

bit 0 -DS2

03F2 w diskette controller DOR (Digital Output Register)

bit 7-6 reserved on PS/2

bit 7 = 1 drive 3 motor enable

bit 6 = 1 drive 2 motor enable

bit 5 = 1 drive 1 motor enable

bit 4 = 1 drive 0 motor enable

bit 3 = 1 diskette DMA enable (reserved PS/2)

bit 2 = 1 FDC enable (controller reset)

= 0 hold FDC at reset

bit 1-0 drive select (0=A 1=B ..)

03F3 tape drive register (on the 82077AA)

bit 7-2 reserved, tri-state

bit 1-0 tape select

= 00 none, drive 0 cannot be a tape drive.

= 01 drive1

= 10 drive2

= 11 drive3

03F4 r diskette controller main status register

bit 7 = 1 RQM data register is ready

0 no access is permitted

bit 6 = 1 transfer is from controller to system

0 transfer is from system to controller

bit 5 = 1 non-DMA mode

bit 4 = 1 diskette controller is busy

bit 3 = 1 drive 3 busy (reserved on PS/2)

bit 2 = 1 drive 2 busy (reserved on PS/2)

bit 1 = 1 drive 1 busy (= drive is in seek mode)

bit 0 = 1 drive 0 busy (= drive is in seek mode)

Note: in non-DMA mode, all data transfers occur through

port 03F5h and the status registers (bit 5 here

indicates data read/write rather than than

command/status read/write)

03F4 w diskette controller data rate select register

bit 7-2 reserved on 8272

bit 7 = 1 software reset (self clearing) 82072/82077AA

bit 6 = 1 power down 82072/82077AA

bit 5 = 0 reserved on 8272 and 82077AA

PLL select bit on 82072

bit 4-2 write precompensation value, 000 default

bit 1-0 data rate select

= 00 500 Kb/S MFM 250 Kb/S FM

= 01 300 Kb/S MFM 150 Kb/S FM

= 10 250 Kb/S MFM 125 Kb/S FM

= 11 1Mb/S MFM illegal FM on 8207x

03F5 r diskette command/data register 0 (ST0)

bit 7-6 last command status

= 00 command terminated successfully

= 01 command terminated abnormally

= 10 invalid command

= 11 terminated abnormally by change in ready signal

bit 5 = 1 seek completed

bit 4 = 1 equipment check occurred after error

bit 3 = 1 not ready

bit 2 = 1 head number at interrupt

bit 1-0 = 1 unit select (0=A 1=B .. )

(on PS/2 01=A 10=B)

status register 1 (ST1)

bit 7 end of cylinder; sector# greater then sectors/track

bit 6 = 0

bit 5 = 1 CRC error in ID or data field

bit 4 = 1 overrun

bit 3 = 0

bit 2 = 1 sector ID not found

bit 1 = 1 write protect detected during write

bit 0 = 1 ID address mark not found

status register 2 (ST2)

bit 7 = 0

bit 6 = 1 deleted Data Address Mark detected

bit 5 = 1 CRC error in data

bit 4 = 1 wrong cylinder detected

bit 3 = 1 scan command equal condition satisfied

bit 2 = 1 scan command failed, sector not found

bit 1 = 1 bad cylinder, ID not found

bit 0 = 1 missing Data Address Mark

status register 3 (ST3)

bit 7 fault status signal

bit 6 write protect status

bit 5 ready status

bit 4 track zero status

bit 3 two sided status signal

bit 2 side select (head select)

bit 1-0 unit select (0=A 1=B .. )

03F5 w diskette command register. The commands summarized here are

mostly multibyte commands. This is for brief recognition only.

MFM = MFM mode selected, opposite to MF mode.

HDS = head select

DS = drive select

MT = multi track operation

SK = skip deleted data address mark

Command # bytes D7 6 5 4 3 2 1 0

read track 9 0 MFM 0 0 0 0 1 0

0 0 0 0 0 HDS DS1 DS0

specify 3 0 0 0 O O O 1 1

sense drive status 2 0 0 0 0 0 1 0 0

0 0 0 0 0 HDS DS1 DS0

write data 9 MT MFM 0 0 0 1 0 1

0 0 0 0 0 HDS DS1 DS0

read data 9 MT MFM SK 0 0 1 1 0

0 0 0 0 0 HDS DS1 DS0

recalibrate 2 0 0 0 0 0 1 1 1

0 0 0 0 0 0 DS1 DS0

sense interrupt status 1 0 0 0 0 1 0 0 0

write deleted data 9 MT MFM 0 0 1 0 0 1

0 0 0 0 0 HDS DS1 DS0

read ID 2 0 MFM 0 0 1 0 1 0

0 0 0 0 0 HDS DS1 DS0

read deleted data 9 MT MFM SK 0 1 1 0 0

0 0 0 0 0 HDS DS1 DS0

format track 10 0 MFM 0 0 1 1 0 1

0 0 0 0 0 HDS DS1 DS0

dumpreg ** 1 0 0 0 0 1 1 1 0

seek 3 0 0 0 0 1 1 1 1

0 0 0 0 0 HDS DS1 DS0

version ** 1 0 0 0 1 0 0 0 0

scan equal * 9 MT MFM SK 1 0 0 0 1

0 0 0 0 0 HDS DS1 DS0

perpendicular mode ** 2 0 0 0 1 0 0 1 0

0 0 0 0 0 0 WGATE GAP

configure ** 4 0 0 0 1 0 0 1 1

0 0 0 0 0 0 0 0

verify 9 MT MFM SK 1 0 1 1 0

EC 0 0 0 0 HDS DS1 DS0

scan low or equal * 9 MT MFM SK 1 1 0 0 1

0 0 0 0 0 HDS DS1 DS0

scan high or equal * 9 MT MFM SK 1 1 1 0 1

0 0 0 0 0 HDS DS1 DS0

relative seek ** 3 1 DIR 0 0 1 1 1 1

0 0 0 0 0 HDS DS1 DS0

BEWARE: not every invalid command is treated as invalid!

* Note: the scan commands aren't mentioned for the 82077AA.

** Note: EHD controller commands.

03F6 reserved on FDC

03F6 r/w FIXED disk controller data register

bit 7-4 reserved

bit 3 = 0 reduce write current

1 head select 3 enable

bit 2 = 1 disk reset enable

0 disk reset disable

bit 1 = 0 disk initialization enable

1 disk initialization disable

bit 0 reserved

03F7 r/w harddisk controller

bit 6 FIXED DISK write gate

bit 5 FIXED DISK head select 3 / reduced write current

bit 4 FIXED DISK head select 2

bit 3 FIXED DISK head select 1

bit 2 FIXED DISK head select 0

bit 1 FIXED DISK drive 1 select

bit 0 FIXED DISK drive 0 select

03F7 r diskette controller DIR (Digital Input Register, PC/AT mode)

bit 7 = 1 diskette change

bit 6-0 tri-state on FDC

03F7 r diskette controller DIR (Digital Input Register, PS/2 mode)

bit 7 = 1 diskette change

bit 6-3 = 1

bit 2 datarate select1

bit 1 datarate select0

bit 0 = 0 high density select (500Kb/s, 1Mb/s)

conflicts with bit 0 FIXED DISK drive 0 select

03F7 r diskette controller DIR (Digital Input Register, PS/2 model 30)

bit 7 = 0 diskette change

bit 6-4 = 0

bit 3 -DMA gate (value from DOR register)

bit 2 NOPREC (value from CCR register)

bit 1 datarate select1

bit 0 datarate select0

conflicts with bit 0 FIXED DISK drive 0 select

03F7 w configuration control register (PC/AT, PS/2)

bit 7-2 reserved, tri-state

bit 1-0 = 00 500 Kb/S mode (MFM)

= 01 300 Kb/S mode (MFM)

= 10 250 Kb/S mode (MFM)

= 11 1 Mb/S mode (MFM) (on 82072/82077AA)

conflicts with bit 0 FIXED DISK drive 0 select

03F7 w configuration control register (PS/2 model 30)

bit 7-3 reserved, tri-state

bit 2 NOPREC (has no function. set to 0 by hardreset)

bit 1-0 = 00 500 Kb/S mode (MFM)

= 01 300 Kb/S mode (MFM)

= 10 250 Kb/S mode (MFM)

= 11 1 Mb/S mode (MFM) (on 82072/82077AA)

conflicts with bit 0 FIXED DISK drive 0 select

-------------------------------------------------------------------------------

03F8-03FF ---- serial port (8250,8251,16450,16550,16550A,etc.)

same as 02E8,02F8 and 03E8

03F8 w serial port, transmitter holding register, which contains the

character to be sent. Bit 0 is sent first.

bit 7-0 data bits when DLAB=0 (Divisor Latch Access Bit)

r receiver buffer register, which contains the received character

Bit 0 is received first

bit 7-0 data bits when DLAB=0 (Divisor Latch Access Bit)

r/w divisor latch low byte when DLAB=1

03F9 r/w divisor latch high byte when DLAB=1

r/w interrupt enable register when DLAB=0

bits 7-4 reserved

bit 3 = 1 modem-status interrupt enable

bit 2 = 1 receiver-line-status interrupt enable

bit 1 = 1 transmitter-holding-register empty interrupt enable

bit 0 = 1 received-data-available interrupt enable

(also 16550(A) timeout interrupt)

- 16550(A) will interrupt with a timeout if data exists in the

FIFO and isn't read within the time it takes to receive four

bytes or if no data is received within the time it takes to

receive four bytes

03FA r interrupt identification register. Information about a pending

interrupt is stored here. When the ID register is addressed,

the highest priority interrupt is held, and no other interrupts

are acknowledged until the CPU services that interrupt.

bit 7-6 = 00 reserved on 8250, 8251, 16450

= 01 if FIFO queues enabled (16550 only)

= 11 if FIFO queues are enabled (16550A only)

bit 5-4 = 0 reserved

bit 3 = 0 reserved 8250, 16450

= 1 16550 timeout int. pending

bit 2-1 identify pending interrupt with the highest priority

= 11 receiver line status interrupt. priority=highest

= 10 received data available register interrupt. pr.=second

= 01 transmitter holding register empty interrupt. pr.=third

= 00 modem status interrupt. priority=fourth

bit 0 = 0 interrupt pending. contents of register can be used

as a pointer to the appropriate int.service routine

1 no interrupt pending

- interrupt pending flag uses reverse logic, 0=pending, 1=none

- interrupt will occur if any of the line status bits are set

- THRE bit is set when THRE register is emptied into the TSR

03FA w 16650 FCR (FIFO Control Register)

bit 7-6 = received data available interrupt trigger level

00 1 byte

01 4 bytes

10 8 bytes

11 14 bytes

bit 5-4 = 00 reserved

bit 3 = 1 change RXRDY TXRDY pins from mode 0 to mode 1

bit 2 = 1 clear XMIT FIFO

bit 1 = 1 clear RCVR FIFO

bit 0 = 1 enable clear XMIT and RCVR FIFO queues

- bit 0 must be set in order to write to other FCR bits

- bit 1 when set the RCVR FIFO is cleared and this bit is reset

the receiver shift register is not cleared

- bit 2 when set the XMIT FIFO is cleared and this bit is reset

the transmit shift register is not cleared

- due to a hardware bug, 16550 FIFOs don't work correctly (this

was fixed in the 16550A)

03FB r/w line control register

bit 7 = 1 divisor latch access bit (DLAB)

0 receiver buffer, transmitter holding, or interrupt

enable register access

bit 6 = 1 set break enable. serial ouput is forced to spacing

state and remains there.

bit 5 = stick parity

bit 4 = 1 even parity select

bit 3 = parity enable

1 even number of ones are sent and checked in the

data word bits and parity bit

0 odd number of ones are sent and checked

bit 2 = 0 one stop bit

1 zero stop bit

bit 1-0 00 word length is 5 bits

01 word length is 6 bits

10 word length is 7 bits

11 word length is 8 bits

03FC r/w modem control register

bit 7-5 = 0 reserved

bit 4 = 1 loopback mode for diagnostic testing of serial port

output of transmitter shift register is looped back

to receiver shift register input. In this mode

transmitted data is received immediately so that

the CPU can verify the transmit data/receive data

serial port paths.

bit 3 = 1 auxiliary user-designated output 2

bit 2 = 1 auxiliary user-designated output 1

bit 1 = 1 force request-to-send active

bit 0 = 1 force data-terminal-ready active

03FD r line status register

bit 7 = 0 reserved

bit 6 = 1 transmitter shift and holding registers empty

bit 5 = 1 transmitter holding register empty. Controller is

ready toaccept a new character to send.

bit 4 = 1 break interrupt. the received data input is held in

in the zero bit state longer than the time of start

bit + data bits + parity bit + stop bits.

bit 3 = 1 framing error. the stop bit that follows the last

parity or data bit is a zero bit.

bit 2 = 1 parity error. Character has wrong parity

bit 1 = 1 overrun error. a character was sent to the receiver

buffer before the previous character in the buffer

could be read. This destroys the previous

character.

bit 0 = 1 data ready. a complete incoming character has been

received and sent to the receiver buffer register.

03FE r modem status register

bit 7 = 1 data carrier detect

bit 6 = 1 ring indicator

bit 5 = 1 data set ready

bit 4 = 1 clear to send

bit 3 = 1 delta data carrier detect

bit 2 = 1 trailing edge ring indicator

bit 1 = 1 delta data set ready

bit 0 = 1 delta clear to send

- bits 0-3 are reset when the CPU reads the MSR

- bit 4 is the Modem Control Register RTS during loopback test

- bit 5 is the Modem Control Register DTR during loopback test

- bit 6 is the Modem Control Register OUT1 during loopback test

- bit 7 is the Modem Control Register OUT2 during loopback test

03FF r/w scratch register

-------------------------------------------------------------------------------

Adresses above 03FF apply to EISA machines only !

1000-1FFF slot 1 EISA

2000-2FFF slot 2 EISA

3000-3FFF slot 3 EISA

4000-4FFF slot 4 EISA

5000-5FFF slot 5 EISA

6000-6FFF slot 6 EISA

7000-7FFF slot 7 EISA

-------------------------------------------------------------------------------

0401-04D6 ---- used by EISA systems only

0401 r/w DMA channel 0 word count byte 2 (high)

0403 r/w DMA channel 1 word count byte 2 (high)

0405 r/w DMA channel 2 word count byte 2 (high)

0407 r/w DMA channel 3 word count byte 2 (high)

040A w extended DMA chaining mode register, channels 0-3

bit 7-5 reserved

bit 4 = 0 generates IRQ13

= 1 generates terminal count

bit 3 = 0 do not start chaining

= 1 programming complete

bit 2 = 0 disable buffer chaining mode (default)

= 1 enable buffer chaining mode

bit 1-0 DMA channel select

040A r channel interrupt (IRQ13) status register

bit 7-5 interrupt on channels 7-5

bit 4 reserved

bit 3-0 interrupt on channels 3-0

040B w DMA extended mode register for channels 3-0.

bit settings same as 04D6

bit 7 = 0 enable stop register

bit 6 = 0 terminal count is an output for this channel

(default)

bit 5-4 DMA cycle timing

= 00 ISA-compatible (default)

= 01 type A timing mode

= 10 type B timing mode

= 11 burst DMA mode

bit 3-2 Address mode

= 00 8-bit I/O, count by bytes (default)

= 01 16-bit I/O, count by words, address shifted

= 10 32-bit I/O, count by bytes

= 11 16-bit I/O, count by bytes

bit 1-0 DMA channel select

-------------------------------------------------------------------------------

0461 r/w Extended NMI status/control register

bit 7 = 1 NMI pending from fail-safe timer (read only)

bit 6 = 1 NMI pending from bus timeout NMI status (read

only)

bit 5 = 1 NMI pending (read only)

bit 4 reserved

bit 3 = 1 bus timeout NMI enable (read/write)

bit 2 = 1 fail-safe NMI enable (read/write)

bit 1 = 1 NMI I/O port enable (read/write)

bit 0 RSTDRV. bus reset (read/write)

= 0 NORMAL bus reset operation

= 1 reset bus asserted

0462 w Software NMI register. writing to this register causes an NMI

if NMI's are enabled

bit 7 = 1 generates an NMI

0464 r bus master status latch register (slots 1-8). identifies the

last bus master that had control of the bus

bit 7 = 0 slot 8 had control last

bit 6 = 0 slot 7 had control last

bit 5 = 0 slot 6 had control last

bit 4 = 0 slot 5 had control last

bit 3 = 0 slot 4 had control last

bit 2 = 0 slot 3 had control last

bit 1 = 0 slot 2 had control last

bit 0 = 0 slot 1 had control last

0465 r bus master status latch register (slots 9-16)

bit 7 = 0 slot 16 had control last

bit 6 = 0 slot 15 had control last

bit 5 = 0 slot 14 had control last

bit 4 = 0 slot 13 had control last

bit 3 = 0 slot 12 had control last

bit 2 = 0 slot 11 had control last

bit 1 = 0 slot 10 had control last

bit 0 = 0 slot 9 had control last

-------------------------------------------------------------------------------

0481-048B ---- EISA DMA page registers

0481 r/w DMA channel 2 address byte 3 (high)

0482 r/w DMA channel 3 address byte 3 (high)

0483 r/w DMA channel 1 address byte 3 (high)

0487 r/w DMA channel 0 address byte 3 (high)

0489 r/w DMA channel 6 address byte 3 (high)

048A r/w DMA channel 7 address byte 3 (high)

048B r/w DMA channel 5 address byte 3 (high)

-------------------------------------------------------------------------------

04C6-04CF ---- EISA DMA count registers

04C6 r/w DMA channel 5 word count byte 2 (high)

04CA r/w DMA channel 6 word count byte 2 (high)

04CE r/w DMA channel 7 word count byte 2 (high)

-------------------------------------------------------------------------------

04D0-04D1 ---- EISA IRQ control

04D0 w IRQ 0-7 interrupt edge/level registers

bit 7 = 1 IRQ 7 is level sensitive

bit 6 = 1 IRQ 6 is level sensitive

bit 5 = 1 IRQ 5 is level sensitive

bit 4 = 1 IRQ 4 is level sensitive

bit 3 = 1 IRQ 3 is level sensitive

bit 2-0 reserved

04D1 w IRQ 8-15 interrupt edge/level registers

bit 7 = 1 IRQ 15 is level sensitive

bit 6 = 1 IRQ 14 is level sensitive

bit 5 = 1 reserved

bit 4 = 1 IRQ 12 is level sensitive

bit 3 = 1 IRQ 11 is level sensitive

bit 2 = 1 IRQ 10 is level sensitive

bit 1 = 1 IRQ 9 is level sensitive

bit 0 reserved

-------------------------------------------------------------------------------

04D4-04D6 ---- EISA DMA control

04D4 r DMA chaining status

04D4 w extended DMA chaining mode register, channels 4-7

bit 7-5 = 0 reserved

bit 4 = 0 generates IRQ 13

= 1 generates terminal count

bit 3 = 0 do not start chaining

= 1 programming complete

bit 2 = 0 disable buffer chaining mode (default)

= 1 enable buffer chaining mode

bit 1-0 DMA channel select

04D6 w DMA extended mode register for channels 4-7

bit settings same as 04B

bit 7 = 0 enable stop register

bit 6 = 0 terminal count is an output for this channel

(default)

bit 5-4 DMA cycle timing

= 00 ISA-compatible (default)

= 01 type A timing mode

= 10 type B timing mode

= 11 burst DMA mode

bit 3-2 Address mode

= 00 8-bit I/O, count by bytes (default)

= 01 16-bit I/O, count by words, address shifted

= 10 32-bit I/O, count by bytes

= 11 16-bit I/O, count by bytes

bit 1-0 DMA channel select

-------------------------------------------------------------------------------

04E0-04FF ---- EISA DMA stop registers

04E0-04E2 r/w channel 0

04E4-04E6 r/w channel 1

04E8-04EA r/w channel 2

04EC-04EE r/w channel 3

04F4-04F6 r/w channel 5

04F8-04FA r/w channel 6

04FC-04FE r/w channel 7

-------------------------------------------------------------------------------

0530-0533 ---- Gravis Ultra Sound Daughter Card by Advanced Gravis

The I/O address range is dipswitch selectable from:

0530-0533

0604-0607

0E80-0E83

0F40-0F43

0530 r/w Address Select

0531 r/w Data

0532 r/w Status

0533 r/w PIO

-------------------------------------------------------------------------------

0601 w System control. Laptop chipset: Headland HL21 & Acer M5105

bit 7 = 1 power led on

bit 6 = 1 LCD backlight off

bit 5

bit 4

bit 3

bit 2 = 1 video chips disabled, screen blanked.

bit 1

bit 0 = 1 will lock up your machine!

r bit 7 = 0 if screen enabled always these values

bit 6 = 0

bit 5 = 0

bit 4 = 0

bit 3 = 0

bit 2 = 1 (=0 at low power)

bit 1 = 0 power OK

bit 0 = 0

-------------------------------------------------------------------------------

0620-0627 ---- PC network (adapter 1)

0628-062F ---- PC network (adapter 2)

-------------------------------------------------------------------------------

0680 ---- Microchannel POST Diagnostic (write only)

-------------------------------------------------------------------------------

06E2-06E3 ---- data aquisition (adapter 1)

-------------------------------------------------------------------------------

06E8 ---- S3 86C928 video controller (ELSA Winner 1000)

-------------------------------------------------------------------------------

06E8-06EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

06E8 w horizontal displayed

See also 02E8-02EF, 0AE8, 96E8, 9AE8

-------------------------------------------------------------------------------

0746 ---- Gravis Ultra Sound by Advanced Gravis

0746 r Board Version (rev 3.7+)

FF Pre 3.6 boards, ICS mixer NOT present

05 Rev 3.7 with ICS Mixer. Some R/L: flip problems.

06-09 Revision 3.7 and above. ICS Mixer present

0A- UltraMax. CS4231 present, no ICS mixer

w Mixer Control Port

SeeAlso: 0240-024F, 0340-034F

-------------------------------------------------------------------------------

0790-0793 ---- cluster (adapter 1)

-------------------------------------------------------------------------------

0800-08FF ---- I/O port access registers for extended CMOS RAM or SRAM

(256 bytes at a time)

Sometimes plain text can be seen here.

-------------------------------------------------------------------------------

0800-08FF ---- reserved for EISA system motherboard

-------------------------------------------------------------------------------

0A20-0A23 ---- Token Ring (adapter 1)

0A24-0A27 ---- Token Ring (adapter 2)

-------------------------------------------------------------------------------

0AE2-0AE3 ---- cluster (adapter 2)

-------------------------------------------------------------------------------

0AE8 ---- S3 86C928 video controller (ELSA Winner 1000)

-------------------------------------------------------------------------------

0AE8-0AEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

0AE8 w horizontal sync start

-------------------------------------------------------------------------------

0B90-0B93 ---- cluster (adapter 2)

-------------------------------------------------------------------------------

0C00 r/w page register to write to SRAM or I/O

-------------------------------------------------------------------------------

0C00-0CFF ---- reserved for EISA system motherboard

-------------------------------------------------------------------------------

0C7C bit 7-4 (Compaq)

-------------------------------------------------------------------------------

0C80-0C83 ---- EISA system board ID registers

-------------------------------------------------------------------------------

0CF8 ---- Intel Pentium motherboard ("Neptune" chipset)

-------------------------------------------------------------------------------

0CFA ---- Intel Pentium motherboard ("Neptune" chipset)

-------------------------------------------------------------------------------

0EE8 ---- S3 86C928 video controller (ELSA Winner 1000)

-------------------------------------------------------------------------------

0EE8-0EEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

0EE8 w horizontal sync width

-------------------------------------------------------------------------------

1000-10FF ---- available for EISA slot 1

-------------------------------------------------------------------------------

12E8-12EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

12E8 w vertical total

-------------------------------------------------------------------------------

1390-1393 ---- cluster (adapter 3)

-------------------------------------------------------------------------------

1400-14FF ---- available for EISA slot 1

-------------------------------------------------------------------------------

16E8-16EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

16E8 w vertical displayed

-------------------------------------------------------------------------------

1800-18FF ---- available for EISA slot 1

-------------------------------------------------------------------------------

1AE8-1AEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

1AE8 w vertical sync start

-------------------------------------------------------------------------------

1C00-1CFF ---- available for EISA slot 1

-------------------------------------------------------------------------------

1C80-1C8F ---- VESA XGA Video in EISA slot 1

1C80-1C83 r/w EISA Video ID

1C84 r/w EISA Video expansion board control

1C85 r/w EISA Setup control

1C88 r/w EISA Video Programmable Option Select 0

1C89-1C8F r/w EISA Video Programmable Option Select 1-7

-------------------------------------------------------------------------------

1C80-1C83 EISA board product ID (board in slot 1)

-------------------------------------------------------------------------------

1C85 Compaq Qvision EISA - Virtual Controller ID

-------------------------------------------------------------------------------

1EE8-1EEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

1EE8 w vertical sync width

-------------------------------------------------------------------------------

2000-20FF ---- available for EISA slot 2

-------------------------------------------------------------------------------

2100-210F ---- IBM XGA (eXtended Graphics Adapter 8514/A) (first installed)

2110-211F ---- IBM XGA (eXtended Graphics Adapter 8514/A) (second installed)

2120-212F ---- IBM XGA (eXtended Graphics Adapter 8514/A) (third installed)

2130-213F ---- IBM XGA (eXtended Graphics Adapter 8514/A) (fourth installed)

2140-214F ---- IBM XGA (eXtended Graphics Adapter 8514/A) (fifth installed)

2150-215F ---- IBM XGA (eXtended Graphics Adapter 8514/A) (sixth installed)

2160-216F ---- IBM XGA (eXtended Graphics Adapter 8514/A) (seventh installed)

2170-217F ---- IBM XGA (eXtended Graphics Adapter 8514/A) (eighth installed)

-------------------------------------------------------------------------------

2100 ---- XGA Video Operating Mode Register

Note: this port is for the first XGA in the system; 2110-2170 are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

2101 ---- XGA VIdeo Aperture Control

Note: this port is for the first XGA in the system; 2111-2171 are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

2102-2103 ---- XGA ???

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

2104 ---- XGA Video Interrupt Enable

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

2105 ---- XGA Video Interrupt Status

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

2106 ---- XGA Video Virtual Memory Control

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

2107 ---- XGA Video Virtual Memory Interrupt Status

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

2108 ---- XGA Video Aperture Index

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

2109 ---- XGA Video Memory Access Mode

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

210A ---- XGA Video Index for Data

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

210B ---- XGA Video Data (byte)

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

210C-210F ---- XGA Video Data (word/dword)

Note: this port is for the first XGA in the system; 211x-217x are used for

the second through eighth XGAs

-------------------------------------------------------------------------------

2110-217F ---- secondary XGA adapters (see individual entries above)

-------------------------------------------------------------------------------

22E8-22EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

22E8 w display control

-------------------------------------------------------------------------------

2390-2393 ---- cluster (adapter 4)

-------------------------------------------------------------------------------

23C0-23CF ---- Compaq QVision - BitBLT engine

-------------------------------------------------------------------------------

2400-24FF ---- available for EISA slot 2

-------------------------------------------------------------------------------

27C6 r/w LCD timeout in minutes (Compaq LTE Lite)

-------------------------------------------------------------------------------

2800-28FF ---- available for EISA slot 2

-------------------------------------------------------------------------------

28E9 ---- 8514/A - WD Escape Functions

-------------------------------------------------------------------------------

2C80-2C8F ---- VESA XGA Video in EISA slot 2 (see 1C80-1C8F)

-------------------------------------------------------------------------------

2C80-2C83 EISA board product ID (board in slot 2)

-------------------------------------------------------------------------------

3000-30FF ---- available for EISA slot 3

-------------------------------------------------------------------------------

3220-3227 ---- serial port 3, description same as 03F8

3228-322F ---- serial port 4, description same as 03F8

-------------------------------------------------------------------------------

33C0-33CF ---- Compaq QVision - BitBLT engine

-------------------------------------------------------------------------------

3400-34FF ---- available for EISA slot 3

-------------------------------------------------------------------------------

3540-354F ---- IBM SCSI (Small Computer System Interface) adapter

3550-355F ---- IBM SCSI (Small Computer System Interface) adapter

3560-356F ---- IBM SCSI (Small Computer System Interface) adapter

3570-357F ---- IBM SCSI (Small Computer System Interface) adapter

-------------------------------------------------------------------------------

3800-38FF ---- available for EISA slot 3

-------------------------------------------------------------------------------

3C00-3CFF ---- available for EISA slot 3

-------------------------------------------------------------------------------

3C80-3C8F ---- VESA XGA Video in EISA slot 3

3C80-3C83 r/w EISA Video ID

3C84 r/w EISA Video expansion board control

3C85 r/w EISA Setup control

3C88 r/w EISA Video Programmable Option Select 0

3C89-3C8F r/w EISA Video Programmable Option Select 1-7

SeeAlso: 1C80-1C8F,2C80-2C8F,7C80-7C8F

-------------------------------------------------------------------------------

3C80-3C83 EISA board product ID (board in slot 3)

-------------------------------------------------------------------------------

4000-40FF ---- available for EISA slot 4

-------------------------------------------------------------------------------

4220-4227 ---- serial port, description same as 03F8

4228-422F ---- serial port, description same as 03F8

-------------------------------------------------------------------------------

42E0-42EF ---- GPIB (General Purpose Interface Bus, IEEE 488 interface)

42E1 r/w GPIB (adapter 2)

-------------------------------------------------------------------------------

42E8 ---- 8514/A and hardware-compatible video cards

42E8 r Subsystem Status

42E8 w Subsystem Control

-------------------------------------------------------------------------------

4400-44FF ---- available for EISA slot 4

-------------------------------------------------------------------------------

46E8 ---- VGA video adapter enable

46E8 r/w enable flags

bits 7-5 unused or vendor-specific

bit 4: setup for POS registers (MCA)

bit 3: enable video I/O ports and video buffer

bits 2-0 unused or vendor-specific

Note: IBM uses this port for adapter-card VGAs only, and port 03C3 for

motherboard VGA only

SeeAlso: 03C3

-------------------------------------------------------------------------------

46E8 ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

46E8 w ROM page select

-------------------------------------------------------------------------------

4800-48FF ---- available for EISA slot 4

-------------------------------------------------------------------------------

4AE8-4AEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

4AE8 w Advanced function control

(02h = VGA mode, 03h = 480-line mode, 07h = 768-line mode)

-------------------------------------------------------------------------------

4C00-4CFF ---- available for EISA slot 4

-------------------------------------------------------------------------------

4C80-4C83 EISA board product ID (board in slot 4)

-------------------------------------------------------------------------------

4C80-4C8F ---- VESA XGA Video in EISA slot 4 (see 3C80-3C8F)

SeeAlso: 1C80-1C8F,6C80-6C8F

-------------------------------------------------------------------------------

5000-50FF ---- available for EISA slot 5

-------------------------------------------------------------------------------

5220-5227 ---- serial port, description same as 03F8

5228-522F ---- serial port, description same as 03F8

-------------------------------------------------------------------------------

5400-54FF ---- available for EISA slot 5

-------------------------------------------------------------------------------

5800-58FF ---- available for EISA slot 5

-------------------------------------------------------------------------------

5C00-5CFF ---- available for EISA slot 5

-------------------------------------------------------------------------------

5C80-5C8F ---- VESA XGA Video in EISA slot 5

5C80-5C83 r/w EISA Video ID

5C84 r/w EISA Video expansion board control

5C85 r/w EISA Setup control

5C88 r/w EISA Video Programmable Option Select 0

5C89-5C8F r/w EISA Video Programmable Option Select 1-7

SeeAlso: 2C80-2C8F,4C80-4C8F,6C80-6C8F

-------------------------------------------------------------------------------

5C80-5C83 EISA board product ID (board in slot 5)

-------------------------------------------------------------------------------

6000-60FF ---- available for EISA slot 6

-------------------------------------------------------------------------------

62E0-62EF ---- GPIB (General Purpose Interface Bus, IEEE 488 interface)

62E1 r/w GPIB (adapter 3)

-------------------------------------------------------------------------------

63C0-63CF ---- Compaq QVision - BitBLT engine

-------------------------------------------------------------------------------

6400-64FF ---- available for EISA slot 6

-------------------------------------------------------------------------------

6800-68FF ---- available for EISA slot 6

-------------------------------------------------------------------------------

6C00-6CFF ---- available for EISA slot 6

-------------------------------------------------------------------------------

6C80-6C83 EISA board product ID (board in slot 6)

-------------------------------------------------------------------------------

6C80-6C8F ---- VESA XGA Video in EISA slot 1

6C80-6C83 r/w EISA Video ID

6C84 r/w EISA Video expansion board control

6C85 r/w EISA Setup control

6C88 r/w EISA Video Programmable Option Select 0

6C89-1C8F r/w EISA Video Programmable Option Select 1-7

SeeAlso: 1C80-1C8F,2C80-2C8F,5C80-5C8F

-------------------------------------------------------------------------------

7000-70FF ---- available for EISA slot 7

-------------------------------------------------------------------------------

7400-74FF ---- available for EISA slot 7

-------------------------------------------------------------------------------

7800-78FF ---- available for EISA slot 7

-------------------------------------------------------------------------------

7C00-7CFF ---- available for EISA slot 7

-------------------------------------------------------------------------------

7C80-7C83 EISA board product ID (board in slot 7)

-------------------------------------------------------------------------------

7C80-7C8F ---- VESA XGA Video in EISA slot 7

7C80-7C83 r/w EISA Video ID

7C84 r/w EISA Video expansion board control

7C85 r/w EISA Setup control

7C88 r/w EISA Video Programmable Option Select 0

7C89-7C8F r/w EISA Video Programmable Option Select 1-7

SeeAlso: 1C80-1C8F, 6C80-6C8F

-------------------------------------------------------------------------------

8000-80FF ---- available for EISA slot 8

-------------------------------------------------------------------------------

82E0-82EF ---- GPIB (General Purpose Interface Bus, IEEE 488 interface)

82E1 r/w GPIB (adapter 4)

-------------------------------------------------------------------------------

82E8-82EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

82E8 w current Y position

-------------------------------------------------------------------------------

82F8-82FF ---- serial port, description same as 03F8

83F8-83FF ---- serial port, description same as 03F8

-------------------------------------------------------------------------------

83C0-83CF ---- Compaq QVision - Line Draw Engine

-------------------------------------------------------------------------------

83C4 ---- Compaq Qvision EISA - Virtual Controller Select

-------------------------------------------------------------------------------

83C6-83C9 ---- Compaq Qvision EISA - DAC color registers

-------------------------------------------------------------------------------

8400-84FF ---- available for EISA slot 8

-------------------------------------------------------------------------------

86E8-86EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

86E8 w current X position

-------------------------------------------------------------------------------

8800-88FF ---- available for EISA slot 8

-------------------------------------------------------------------------------

8AE8-8AEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

8AE8 w destination Y position / axial step constant

-------------------------------------------------------------------------------

8C00-8CFF ---- available for EISA slot 8

-------------------------------------------------------------------------------

8C80-8C83 EISA board product ID (board in slot 8)

-------------------------------------------------------------------------------

8EE8-8EEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

8EE8 w destination X position / axial step constant

-------------------------------------------------------------------------------

9000-90FF ---- available for EISA slot 9

-------------------------------------------------------------------------------

92E8-92EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

92E8 w error term

-------------------------------------------------------------------------------

9400-94FF ---- available for EISA slot 9

-------------------------------------------------------------------------------

96E8-96EF ---- 8514/A and hardware-compatible video cards

96E8 r Enter WD Enhanced Mode

96E8 w major axis pixel count

-------------------------------------------------------------------------------

9800-98FF ---- available for EISA slot 9

-------------------------------------------------------------------------------

9AE8h-9AE9h ---- 8514/A Graphics Processor Status

9AE8w r bit 9: hardware busy

9AE8 w command

-------------------------------------------------------------------------------

9C00-9CFF ---- available for EISA slot 9

-------------------------------------------------------------------------------

9C80-9C83 EISA board product ID (board in slot 9)

-------------------------------------------------------------------------------

A220 ???? soundblaster support in AMI Hi-Flex BIOS ????

-------------------------------------------------------------------------------

A2E0-A2EF ---- GPIB (General Purpose Interface Bus, IEEE 488 interface)

A2E1 r/w GPIB (adapter 5)

-------------------------------------------------------------------------------

A2E8-A2EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

A2E8 w background color

-------------------------------------------------------------------------------

A6E8-A6EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

A6E8 w foreground color

-------------------------------------------------------------------------------

AAE8-AAEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

AAE8 w write mask

-------------------------------------------------------------------------------

AEE8-AEEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

AEE8 w read mask

-------------------------------------------------------------------------------

AFFF r/w plane 0-3 system latch (video register)

-------------------------------------------------------------------------------

B220-B227 ---- serial port, description same as 03F8

B228-B22F ---- serial port, description same as 03F8

-------------------------------------------------------------------------------

B2E8-B2EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

B2E8 w color compare

-------------------------------------------------------------------------------

B6E8-B6EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

B6E8 w background mix

-------------------------------------------------------------------------------

BAE8-BAEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

BAE8 w foreground mix

-------------------------------------------------------------------------------

BEE8-BEEF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

BEE8 w multi-function control

-------------------------------------------------------------------------------

C008 ---- Intel Pentium motherboard ("Neptune" chipset)

-------------------------------------------------------------------------------

C050 ---- Intel Pentium motherboard ("Neptune" chipset)

C050 r/w bit 2: ???

-------------------------------------------------------------------------------

C052 ---- Intel Pentium motherboard ("Neptune" chipset)

C052 r/??? bits 6,7: ???

-------------------------------------------------------------------------------

C220-C227 ---- serial port, description same as 03F8

C228-C22F ---- serial port, description same as 03F8

-------------------------------------------------------------------------------

C2E0-C2EF ---- GPIB (General Purpose Interface Bus, IEEE 488 interface)

C2E1 r/w GPIB (adapter 6)

-------------------------------------------------------------------------------

D220-D227 ---- serial port, description same as 03F8

D228-D22F ---- serial port, description same as 03F8

-------------------------------------------------------------------------------

E2E0-E2EF ---- GPIB (General Purpose Interface Bus, IEEE 488 interface)

E2E1 r/w GPIB (adapter 7)

-------------------------------------------------------------------------------

E2E8-E2EF ---- 8514/A and compatible video cards (e.g. ATI Graphics Ultra)

E2E8 w pixel data transfer

-------------------------------------------------------------------------------

MEMORY-MAPPED ADDRESSES

-------------------------------------------------------------------------------

80C00000 Compaq Deskpro 386 system memory board register

80C00000 w RAM relocation register

bit 7-2 Reserved, always write 1's.

bit 1 = 0 Write-protect 128-Kbyte RAM at FE0000.

= 1 Do not write-protect RAM at FE0000.

bit 0 = 0 Relocate 128-Kbyte block at FE0000 to address 0E0000

= 1 128-Kbyte RAM is addressed only at FE0000.

80C00000 r Diagnostics register

bit 7 = 0 memory expansion board is installed

bit 6 = 0 second 1 MB of system memory board is installed

bit 5-4 = 00 base memory set to 640 KB

01 invalid

10 base memory set to 512 KB

11 base memory set to 256 KB

bit 3 = 0 parity error in byte 3

bit 2 = 0 parity error in byte 2

bit 1 = 0 parity error in byte 1

bit 0 = 0 parity error in byte 0 (in 32-bit double word)

-------------------------------------------------------------------------------

C0000000-C000FFFF Weitek "Abacus" math coprocessor

-------------------------------------------------------------------------------



-------------CREDITS-------------------------

Chuck Proctor <71534.2302@CompuServe.COM>

Richard W. Watson <73042.1420@CompuServe.COM>

[Some of the information in this list was extracted from Frank van Gilluwe's

_The_Undocumented_PC_, a must-have book for anyone programming down to the

"bare metal" of a PC.]

[Some of the information in this list from the shareware version of Dave

Williams' DOSREF, v3.0]

[8514/A hardware ports found in FractInt v18.0 source file FR8514A.ASM]

[Compaq QVision info from the _COMPAQ_QVision_Graphics_System_Technical_

_Reference_Guide_, second edition (October 1993). Compaq part number

073A/0693. Much more to come!]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: