home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / misc / inter41 / ports.lst < prev    next >
File List  |  1994-06-05  |  104KB  |  2,775 lines

  1. [This file was provided by Wim Osterholt (2:512/56 or wim@djo.wtm.tudelft.nl).]
  2. Last Change: 6/5/94
  3.  
  4.  
  5.         XT, AT and PS/2     I/O port addresses
  6.  
  7.       Do NOT consider this information as complete and accurate.
  8.       If you want to do harware programming check ALWAYS the
  9.       appropriate data sheets. Be aware that erroneously programming
  10.       can put your hardware or your data at risk. 
  11.  
  12.       There is a memory mapped address in use for I/O functions of which I
  13.       think it should be mentioned here. See at the end of this list.
  14.  
  15. -------------------------------------------------------------------------------
  16. 0000-001F ----    DMA 1    (first Direct Memory Access controller 8237)
  17.  
  18. 0000    r/w    DMA channel 0  address    byte  0, then byte 1.
  19. 0001    r/w    DMA channel 0 word count byte 0, then byte 1.
  20. 0002    r/w    DMA channel 1  address    byte  0, then byte 1.
  21. 0003    r/w    DMA channel 1 word count byte 0, then byte 1.
  22. 0004    r/w    DMA channel 2  address    byte  0, then byte 1.
  23. 0005    r/w    DMA channel 2 word count byte 0, then byte 1.
  24. 0006    r/w    DMA channel 3  address    byte  0, then byte 1.
  25. 0007    r/w    DMA channel 3 word count byte 0, then byte 1.
  26.  
  27. 0008    r    DMA channel 0-3 status register
  28.          bit 7 = 1  channel 3 request
  29.          bit 6 = 1  channel 2 request
  30.          bit 5 = 1  channel 1 request
  31.          bit 4 = 1  channel 0 request
  32.          bit 3 = 1  channel terminal count on channel 3
  33.          bit 2 = 1  channel terminal count on channel 2
  34.          bit 1 = 1  channel terminal count on channel 1
  35.          bit 0 = 1  channel terminal count on channel 0
  36.  
  37. 0008    w    DMA channel 0-3 command register
  38.          bit 7 = 1  DACK sense active high
  39.                = 0  DACK sense active low
  40.          bit 6 = 1  DREQ sense active high
  41.                = 0  DREQ sense active low
  42.          bit 5 = 1  extended write selection
  43.                = 0  late write selection
  44.          bit 4 = 1  rotating priority
  45.                = 0  fixed priority
  46.          bit 3 = 1  compressed timing
  47.                = 0  normal timing
  48.          bit 2 = 1  enable controller
  49.                = 0  enable memory-to-memory
  50.  
  51. 0009    w    DMA write request register
  52.  
  53. 000A    r/w    DMA channel 0-3 mask register
  54.          bit 7-3 = 0   reserved
  55.          bit 2     = 0   clear mask bit
  56.              = 1   set mask bit
  57.          bit 1-0 = 00  channel 0 select
  58.              = 01  channel 1 select
  59.              = 10  channel 2 select
  60.              = 11  channel 3 select
  61.  
  62. 000B    w    DMA channel 0-3 mode register
  63.          bit 7-6 = 00  demand mode
  64.              = 01  single mode
  65.              = 10  block mode
  66.              = 11  cascade mode
  67.          bit 5     = 0   address increment select
  68.              = 1   address decrement select
  69.          bit 3-2 = 00  verify operation
  70.              = 01  write to memory
  71.              = 10  read from memory
  72.              = 11  reserved
  73.          bit 1-0 = 00  channel 0 select
  74.              = 01  channel 1 select
  75.              = 10  channel 2 select
  76.              = 11  channel 3 select
  77.  
  78. 000C    w    DMA clear byte pointer flip-flop
  79. 000D    r    DMA read temporary register
  80. 000D    w    DMA master clear
  81. 000E    w    DMA clear mask register
  82. 000F    w    DMA write mask register
  83.  
  84. -------------------------------------------------------------------------------
  85. 0010-001F ----    DMA controller (8237) on PS/2 model 60 & 80
  86.  
  87. -------------------------------------------------------------------------------
  88. 0018    w    PS/2 extended function register
  89.  
  90. -------------------------------------------------------------------------------
  91. 001A        PS/2 extended function execute
  92.  
  93. -------------------------------------------------------------------------------
  94. 0020-003F ----    PIC 1    (Programmable Interrupt Controller 8259)
  95.  
  96. 0020    w    PIC initialization command word ICW1
  97.          bit 7-5 = 0  only used in 80/85 mode
  98.          bit 4     = 1  ICW1 is being issued
  99.          bit 3     = 0  edge triggered mode
  100.              = 1  level triggered mode
  101.          bit 2     = 0  successive interrupt vectors use 8 bytes
  102.              = 1  successive interrupt vectors use 4 bytes
  103.          bit 1     = 0  cascade mode
  104.              = 1  single mode, no ICW3 needed
  105.          bit 0     = 0  no ICW4 needed
  106.              = 1  ICW4 needed
  107.  
  108. 0021    w    PIC  ICW2,ICW3,ICW4 after ICW1 to 0020
  109.         ICW2:
  110.          bit 7-3 = address lines A0-A3 of base vector address for PIC
  111.          bit 2-0 = reserved
  112.         ICW3:
  113.          bit 7-0 = 0  slave controller not attached to corresponding
  114.                   interrupt pin
  115.              = 1  slave controller attached to corresponding
  116.                   interrupt pin
  117.         ICW4:
  118.          bit 7-5 = 0  reserved
  119.          bit 4     = 0  no special fully-nested mode
  120.              = 1  special fully-nested mode
  121.          bit 3-2 = 0x nonbuffered mode
  122.              = 10 buffered mode/slave
  123.              = 11 buffered mode/master
  124.          bit 1     = 0  normal EOI
  125.              = 1  Auto EOI
  126.          bit 0     = 0  8085 mode
  127.              = 1  8086/8088 mode
  128.  
  129. 0021    r/w    PIC master interrupt mask register
  130.         OCW1:
  131.          bit 7 = 0  enable parallel printer interrupt
  132.          bit 6 = 0  enable diskette interrupt
  133.          bit 5 = 0  enable fixed disk interrupt
  134.          bit 4 = 0  enable serial port 1 interrupt
  135.          bit 3 = 0  enable serial port 2 interrupt
  136.          bit 2 = 0  enable video interrupt
  137.          bit 1 = 0  enable keyboard, mouse, RTC interrupt
  138.          bit 0 = 0  enable timer interrupt
  139.  
  140. 0020    r    PIC  interrupt request/in-service registers by OCW3
  141.         request register:
  142.          bit 7-0 = 0  no active request for the corresponding int. line
  143.              = 1  active request for corresponding interrupt line
  144.         in-service register:
  145.          bit 7-0 = 0  corresponding line not currently being serviced
  146.              = 1  corresponding int. line currently being serviced
  147.  
  148. 0020    w    OCW2:
  149.          bit 7-5 = 000    rotate in auto EOI mode (clear)
  150.              = 001    nonspecific EOI
  151.              = 010    no operation
  152.              = 011    specific EOI
  153.              = 100    rotate in auto EOI mode (set)
  154.              = 101    rotate on nonspecific EOI command
  155.              = 110    set priority command
  156.              = 111    rotate on specific EOI command
  157.          bit 4     = 0    reserved
  158.          bit 3     = 0    reserved
  159.          bit 2-0    interrupt request to which the command applies
  160.  
  161. 0020    w    PIC OCW3
  162.          bit 7     = 0   reserved
  163.          bit 6-5 = 0x  no operation
  164.              = 10  reset special mask
  165.              = 11  set special mask
  166.          bit 4     = 0   reserved
  167.          bit 3     = 1   reserved
  168.          bit 2     = 0   no poll command
  169.              = 1   poll command
  170.          bit 1-0 = 0x  no operation
  171.              = 10  read int.request register on next read at 0020
  172.              = 11  read int.in-service register on next read 0020
  173.  
  174. -------------------------------------------------------------------------------
  175. 0022-002B ----    Intel 82355, part of chipset for 386sx
  176.          initialisation in POST will disable these addresses,
  177.          only a hard reset will enable them again.
  178.  
  179. 0022    r/w    82335 MCR memory configuration register
  180. 0024        82335 RC1 roll compare register
  181. 0026        82335 RC2 roll compare register
  182. 0028        82335 CC0 compare register
  183. 002A        82335 CC1 compare register
  184.  
  185.           values for CC0 and CC1:
  186.           00F9,0000  enable range compare CC0 0-512K  CC1 disable
  187.           00F1,0000  enable range compare CC0 0-1024K CC1 disable
  188.           00F1,10F9  enable range compare CC0 0-1M    CC1 1M-1M5
  189.           00E1,0000  enable range compare CC0 0-2M    CC1 disable
  190.           00E1,0000  enable range compare CC0 0-2M    CC1 disable
  191.           00C1,0000  enable range compare CC0 0-4M    CC1 disable
  192.           00C1,40E1  enable range compare CC0 0-4M    CC1 4M-6M
  193.           0081,0000  enable range compare CC0 0-8M    CC1 disable
  194.  
  195. -------------------------------------------------------------------------------
  196. 0022-0023 ----    Chip Set Data
  197.  
  198. 0022    w    index for accesses to data port
  199. 0023    r/w    chip set data
  200.  
  201. -------------------------------------------------------------------------------
  202. 0022-0023 ----    Cyrix Cx486SLC/DLC processor Cache Configuration Registers
  203.  
  204. 0022    w    index for accesses to next port
  205.         C0h CR0
  206.         C1h CR1
  207.         C4h non-cacheable region 1, start address bits 31-24
  208.         C5h non-cacheable region 1, start address bits 23-16
  209.         C6h non-cacheable region 1, start addr 15-12, size (low nybble)
  210.         C7h non-cacheable region 2, start address bits 31-24
  211.         C8h non-cacheable region 2, start address bits 23-16
  212.         C9h non-cacheable region 2, start addr 15-12, size (low nybble)
  213.         CAh non-cacheable region 3, start address bits 31-24
  214.         CBh non-cacheable region 3, start address bits 23-16
  215.         CCh non-cacheable region 3, start addr 15-12, size (low nybble)
  216.         CDh non-cacheable region 4, start address bits 31-24
  217.         CEh non-cacheable region 4, start address bits 23-16
  218.         CFh non-cacheable region 4, start addr 15-12, size (low nybble)
  219. 0023    r/w    cache configuration register array (indexed by port 0022h)
  220.  
  221.         non-cacheable region sizes:
  222.          00h  disabled
  223.          01h  4K
  224.          02h  8K
  225.          03h  16K
  226.          04h  32K
  227.          05h  64K
  228.          06h  128K
  229.          07h  256K
  230.          08h  512K
  231.          09h  1M
  232.          0Ah  2M
  233.          0Bh  4M
  234.          0Ch  8M
  235.          0Dh  16M
  236.          0Eh  32M
  237.          0Fh  4G
  238.  
  239.         Configuration Register 0 format:
  240.          bit 0    "NC0" first 64K of each 1M noncacheable in real/V86
  241.          bit 1    "NC1" 640K-1M noncacheable
  242.          bit 2    "A20M" enables A20M# input pin
  243.          bit 3    "KEN"  enables KEN# input pin
  244.          bit 4    "FLUSH" enables KEN# input pin
  245.          bit 5    "BARB" enables internal cache flushing on bus holds
  246.          bit 6    "C0" cache direct-mapped instead of 2-way associative
  247.          bit 7    "SUSPEND" enables SUSP# input and SUSPA# output pins
  248.  
  249.         Configuration Register 1 format;
  250.          bit 0    "RPL" enables output pins RPLSET and RPLVAL#
  251.  
  252. -------------------------------------------------------------------------------
  253. 0026-0027 ----  Power Management
  254.  
  255. 0026    w    index for data port
  256. 0027    r/w    power management data
  257.  
  258. -------------------------------------------------------------------------------
  259. 0038-003F ----    PC radio by CoZet Info Systems
  260.         The I/O address range is dipswitch selectable from:
  261.            038-03F and 0B0-0BF
  262.            078-07F and 0F0-0FF
  263.            138-13F and 1B0-1BF
  264.            178-17F and 1F0-1FF
  265.            238-23F and 2B0-2BF
  266.            278-27F and 2F0-2FF
  267.            338-33F and 3B0-3BF
  268.            378-37F and 3F0-3FF
  269.         All of these addresses show a readout of FF in initial state.
  270.         Once started, all of the addresses show     FB, whatever might
  271.         happen.
  272.  
  273. -------------------------------------------------------------------------------
  274. 0040-005F ----    PIT  (Programmable Interrupt Timer  8253, 8254)
  275.          XT & AT uses 40-43    PS/2 uses 40, 42,43,44, 47
  276.  
  277. 0040    r/w    PIT  counter 0, counter divisor          (XT, AT, PS/2)
  278. 0041    r/w    PIT  counter 1, RAM refresh counter   (XT, AT)
  279. 0042    r/w    PIT  counter 2, cassette & speaker    (XT, AT, PS/2)
  280.  
  281. 0043    r/w    PIT  mode port, control word register for counters 0-2
  282.          bit 7-6 = 00  counter 0 select
  283.              = 01  counter 1 select      (not PS/2)
  284.              = 10  counter 2 select
  285.          bit 5-4 = 00  counter latch command
  286.              = 01  read/write counter bits 0-7 only
  287.              = 10  read/write counter bits 8-15 only
  288.              = 11  read/write counter bits 0-7 first, then 8-15
  289.          bit 3-1 = 000 mode 0 select
  290.              = 001 mode 1 select - programmable one shot
  291.              = x10 mode 2 select - rate generator
  292.              = x11 mode 3 select - square wave generator
  293.              = 100 mode 4 select - software triggered strobe
  294.              = 101 mode 5 select - hardware triggered strobe
  295.          bit 0     = 0   binary counter 16 bits
  296.              = 1   BCD counter
  297.  
  298. 0044    r/w    PIT  counter 3 (PS/2, EISA)
  299.         used as fail-safe timer. generates an NMI on time out.
  300.         for user generated NMI see at 0462.
  301.  
  302. 0047    w    PIT  control word register counter 3 (PS/2, EISA)
  303.          bit 7-6 = 00  counter 3 select
  304.              = 01  reserved
  305.              = 10  reserved
  306.              = 11  reserved
  307.          bit 5-4 = 00  counter latch command counter 3
  308.              = 01  read/write counter bits 0-7 only
  309.              = 1x  reserved
  310.          bit 3-0 = 00
  311.  
  312. 0048        EISA
  313. 0049        8254 timer 2, not used (counter 1)
  314. 004A        EISA programmable interval timer 2
  315. 004B        EISA programmable interval timer 2
  316.  
  317. -------------------------------------------------------------------------------
  318. 0060-006F ----    Keyboard controller (8041, 8042)  (or PPI (8255) on XT)
  319.          XT uses 60-63,     AT uses 60-64
  320.  
  321.          AT keyboard controller input port bit definitions
  322.           bit 7      = 0  keyboard inhibited
  323.           bit 6      = 0  CGA, else MDA
  324.           bit 5      = 0  manufacturing jumper installed
  325.           bit 4      = 0  system RAM 512K, else 640K
  326.           bit 3-0      reserved
  327.  
  328.          AT keyboard controller input port bit definitions by Compaq
  329.           bit 7      = 0  security lock is locked
  330.           bit 6      = 0  Compaq dual-scan display, 1=non-Compaq display
  331.           bit 5      = 0  system board dip switch 5 is ON
  332.           bit 4      = 0  auto speed selected, 1=high speed selected
  333.           bit 3      = 0  slow (4MHz), 1 = fast (8MHz)
  334.           bit 2      = 0  80287 installed, 1= no NDP installed
  335.           bit 1-0      reserved
  336.  
  337.          AT keyboard controller output port bit definitions
  338.           bit 7 =    keyboard data output
  339.           bit 6 =    keyboard clock output
  340.           bit 5 = 0  input buffer full
  341.           bit 4 = 0  output buffer empty
  342.           bit 3 =    reserved (see note)
  343.           bit 2 =    reserved (see note)
  344.           bit 1 =    gate A20
  345.           bit 0 =    system reset
  346.         Note:    bits 2 and 3 are the turbo speed switch or password
  347.               lock on Award/AMI/Phoenix BIOSes.  These bits make
  348.               use of nonstandard keyboard controller BIOS
  349.               functionality to manipulate
  350.                 pin 23 (8041 port 22) as turbo switch for AWARD
  351.                 pin 35 (8041 port 15) as turbo switch/pw lock for
  352.                 Phoenix
  353.  
  354. 0060    r/w    KB controller data port or keyboard input buffer (ISA, EISA)
  355.         should only be read from after status port bit0 = 1
  356.         should only be written to if status port bit1 = 0
  357.         keyboard commands (data also goes to port 0060h):
  358.          E6    sngl  set mouse scaling to 1:1
  359.          E7    sngl  set mouse scaling to 2:1
  360.          E8    dbl   set mouse resolution
  361.                 (00h = 1/mm,01h = 2/mm,02h = 4/mm,03h = 8/mm)
  362.          E9    sngl  get mouse information
  363.                 read two status bytes:
  364.                   byte 0
  365.                     bit 7 unused
  366.                     bit 6 remote rather than stream mode
  367.                     bit 5 mouse enabled
  368.                     bit 4 scaling set to 2:1
  369.                     bit 3 unused
  370.                     bit 2 left button pressed
  371.                     bit 1 unused
  372.                     bit 0 right button pressed
  373.                   byte 1: resolution
  374.          ED    dbl   set/reset mode indicators Caps Num Scrl
  375.                 bit 2 = CapsLk, bit 1 = NumLk, bit 0 = ScrlLk
  376.          EE    sngl  diagnostic echo. returns EE.
  377.          EF    sngl  NOP (No OPeration). reserved for future use
  378.          F0    dbl   get/set scan code set
  379.                 00h get current set
  380.                 01h scancode set 1 (except Type 2 ctrlr)
  381.                 02h scancode set 2 (default)
  382.                 03h scancode set 3
  383.          F2    sngl  read keyboard ID (read two ID bytes)
  384.          F2    sngl  read mouse ID (read two ID bytes)
  385.          F3    dbl   set typematic rate/delay
  386.          F3    dbl   set mouse sample rate in reports per second
  387.          F4    sngl  enable keyboard
  388.          F4    sngl  enable mouse
  389.          F5    sngl  disable keyboard. set default parameters
  390.          F5    sngl  disable mouse, set default parameters
  391.          F6    sngl  set default parameters
  392.          F7    sngl  [MCA] set all keys to typematic (scancode set 3)
  393.          F8    sngl  [MCA] set all keys to make/release
  394.          F9    sngl  [MCA] set all keys to make only
  395.          FA    sngl  [MCA] set all keys to typematic/make/release
  396.          FB    sngl  [MCA] set al keys to typematic
  397.          FC    dbl   [MCA] set specific key to make/release
  398.          FD    dbl   [MCA] set specific key to make only
  399.          FE    sngl  resend last scancode
  400.          FF    sngl  perform internal power-on reset function
  401.          FF    sngl  reset mouse
  402.         Note:    must issue command D4h to port 64h first to access
  403.               mouse functions
  404.  
  405. 0060    r    KeyBoard or KB controller data output buffer (via PPI on XT)
  406.  
  407. 0061    w    KB controller port B (ISA, EISA)   (PS/2 port A is at 0092)
  408.         system control port for compatibility with 8255
  409.          bit 7    (1= IRQ 0 reset )
  410.          bit 6-4    reserved
  411.          bit 3 = 1  channel check enable
  412.          bit 2 = 1  parity check enable
  413.          bit 1 = 1  speaker data enable
  414.          bit 0 = 1  timer 2 gate to speaker enable
  415.  
  416. 0061    r    KB controller port B control register (ISA, EISA)
  417.         system control port for compatibility with 8255
  418.          bit 7     parity check occurred
  419.          bit 6     channel check occurred
  420.          bit 5     mirrors timer 2 output condition
  421.          bit 4     toggles with each refresh request
  422.          bit 3     channel check status
  423.          bit 2     parity check status
  424.          bit 1     speaker data status
  425.          bit 0     timer 2 gate to speaker status
  426.  
  427. 0061    w    PPI  Programmable Peripheral Interface 8255 (XT only)
  428.         system control port
  429.          bit 7 = 1  clear keyboard
  430.          bit 6 = 0  hold keyboard clock low
  431.          bit 5 = 0  I/O check enable
  432.          bit 4 = 0  RAM parity check enable
  433.          bit 3 = 0  read low switches
  434.          bit 2        reserved, often used as turbo switch
  435.          bit 1 = 1  speaker data enable
  436.          bit 0 = 1  timer 2 gate to speaker enable
  437.  
  438. 0062    r/w    PPI (XT only)
  439.          bit 7 = 1  RAM parity check
  440.          bit 6 = 1  I/O channel check
  441.          bit 5 = 1  timer 2 channel out
  442.          bit 4        reserved 
  443.          bit 3 = 1  system board RAM size type 1
  444.          bit 2 = 1  system board RAM size type 2
  445.          bit 1 = 1  coprocessor installed
  446.          bit 0 = 1  loop in POST
  447.  
  448. 0063    r/w    PPI (XT only) command mode register  (read dipswitches)
  449.          bit 7-6 = 00  1 diskette drive
  450.              = 01  2 diskette drives
  451.              = 10  3 diskette drives
  452.              = 11  4 diskette drives
  453.          bit 5-4 = 00  reserved
  454.              = 01  40*25 color (mono mode)
  455.              = 10  80*25 color (mono mode)
  456.              = 11  MDA 80*25
  457.          bit 3-2 = 00  256K (using 256K chips)
  458.              = 01  512K (using 256K chips)
  459.              = 10  576K (using 256K chips)
  460.              = 11  640K (using 256K chips)
  461.          bit 3-2 = 00  64K  (using 64K chips)
  462.              = 01  128K (using 64K chips)
  463.              = 10  192K (using 64K chips)
  464.              = 11  256K (using 64K chips)
  465.          bit 1-0       reserved
  466.  
  467. 0064    r    KB controller read status (ISA, EISA)
  468.          bit 7 = 1 parity error on transmission from keyboard
  469.          bit 6 = 1 receive timeout
  470.          bit 5 = 1 transmit timeout
  471.          bit 4 = 0 keyboard inhibit
  472.          bit 3 = 1 data in input register is command
  473.              0 data in input register is data
  474.          bit 2 = system flag status 0=power up or reset 1=selftest OK
  475.          bit 1 = 1 input buffer full (input 60/64 has data for 8042)
  476.          bit 0 = 1 output buffer full (output 60 has data for system)
  477.  
  478. 0064    r    KB controller read status (MCA)
  479.          bit 7 = 1 parity error on transmission from keyboard
  480.          bit 6 = 1 general timeout
  481.          bit 5 = 1 mouse output buffer full
  482.          bit 4 = 0 keyboard inhibit
  483.          bit 3 = 1 data in input register is command
  484.              0 data in input register is data
  485.          bit 2 = system flag status 0=power up or reset 1=selftest OK
  486.          bit 1 = 1 input buffer full (input 60/64 has data for 8042)
  487.          bit 0 = 1 output buffer full (output 60 has data for system)
  488.  
  489. 0064    r    KB controller read status by Compaq
  490.          bit 7 = 1 parity error detected (11-bit format only). If an
  491.                error is detected, a Resend command is sent to the
  492.                keyboard once only, as an attempt to recover.
  493.          bit 6 = 1 receive timeout. transmission didn't finish in 2mS.
  494.          bit 5 = 1 transmission timeout error
  495.                 bit 5,6,7  cause
  496.                 1 0 0  No clock
  497.                 1 1 0  Clock OK, no response
  498.                 1 0 1  Clock OK, parity error
  499.          bit 4 = 0 security lock engaged
  500.          bit 3 = 1 data in OUTPUT register is command
  501.              0 data in OUTPUT register is data
  502.          bit 2 = 0 system flag status 0=power up or reset 1=soft reset
  503.          bit 1 = 1 input buffer full (output 60/64 has data)
  504.          bit 0 = 0 no new data in buffer (input 60 has data)
  505.  
  506. 0064    w    KB controller input buffer (ISA, EISA)
  507.         KB controller commands (data goes to port 0060):
  508.          20    read  read byte zero of internal RAM, this is the
  509.                   last KB command send to 8041
  510.               Compaq  Put current command byte on port 0060
  511.                 command structure:
  512.                 bit 7    reserved
  513.                 bit 6 = 1 convert KB codes to 8086 scan codes
  514.                 bit 5 = 0 use 11-bit codes, 1=use 8086 codes
  515.                 bit 4 = 0 enable keyboard, 1=disable keyboard
  516.                 bit 3 = 1 ignore security lock state
  517.                 bit 2      this bit goes into bit2 status reg.
  518.                 bit 1 = 0 reserved
  519.                 bit 0 = 1 generate int. when output buffer full
  520.          21-3F    read  reads the byte specified in the lower 5 bits of
  521.                   the command in the 8041's internal RAM
  522.          60-7F    dbl   writes the data byte to the address specified in
  523.                   the 5 lower bits of the command.
  524.  
  525.                   Alternate description KB IO command 60 summary:
  526.                    bit7 = 0 reserved
  527.                    bit6 =    IBM PC compatibility mode
  528.                    bit5 =    IBM PC mode
  529.                    bit4 =    disable kb
  530.                    bit3 =    inhibit override
  531.                    bit2 =    system flag
  532.                    bit1 = 0 reserved
  533.                    bit0 =    enableoutput buffer full interrupt
  534.  
  535.          60   Compaq  Load new command (60 to [64], command to [60])
  536.          A1   Compaq  unknown speedfunction ??
  537.          A2   Compaq  unknown speedfunction ??
  538.          A3   Compaq  Enable system speed control
  539.          A4    MCA   check if password installed
  540.          A4   Compaq  Toggle speed
  541.          A5    MCA   load password
  542.          A5   Compaq  Special reed. the 8042 places the real values
  543.                   of port 2 except for bits 4 and 5 wich are given
  544.                   a new definition in the output buffer. No output
  545.                   buffer full is generated.
  546.                 if bit 5 = 0, a 9-bit keyboard is in use
  547.                 if bit 5 = 1, an 11-bit keyboard is in use
  548.                 if bit 4 = 0, outp-buff-full interrupt disabled
  549.                 if bit 4 = 1, output-buffer-full int. enabled
  550.          A6    MCA   check password
  551.          A6   Compaq  unknown speedfunction ??
  552.          A7    MCA   disable mouse port
  553.          A8    MCA   enable mouse port
  554.          A9    MCA   test mouse port
  555.          AA    sngl  initiate self-test. will return 55 to data port
  556.               Compaq  Initializes ports 1 and 2, disables the keyboard
  557.                   and clears the buffer pointers. It then places
  558.                   55 in the output buffer.
  559.          AB    sngl  initiate interface test. result values:
  560.                    0 = no error
  561.                    1 = keyboard clock line stuck low
  562.                    2 = keyboard clock line stuck high
  563.                    3 = keyboard data line is stuck low
  564.                    4 = keyboard data line stuck high
  565.               Compaq   5 = Compaq diagnostic feature
  566.          AC    read  diagnostic dump. the contents of the 8041 RAM,
  567.                   output port, input port, status word are send.
  568.          AD    sngl  disable keyboard (sets bit 4 of commmand byte)
  569.          AE    sngl  enable keyboard  (resets bit 4 of commmand byte)
  570.          AF    AWARD Enhanced Command: read keyboard version
  571.          C0    read  read input port
  572.               Compaq  Places status of input port in output buffer. use
  573.                   this command only when the output buffer is empty
  574.          C1    MCA   Enhanced Command: poll input port Low nibble
  575.          C2    MCA   Enhanced Command: poll input port High nibble
  576.          D0    read  read output port
  577.               Compaq  Places byte in output port in output buffer. use
  578.                   this command only when the output buffer is empty
  579.          D1    dbl   write output port. next byte written  to 0060
  580.                   will be written to the 8042 output port; the
  581.                   original IBM AT and many compatibles use bit 1 of
  582.                   the output port to control the A20 gate
  583.               Compaq  The system speed bits are not set by this command
  584.                   use commands A1-A6 (!) for speed functions.
  585.          D2    MCA   Enhanced Command: write keyboard output buffer
  586.          D3    MCA   Enhanced Command: write pointing device out.buf.
  587.          D4    MCA   write to mouse
  588.          D4    AWARD Enhanced Command: write to auxiliary device
  589.          DD    sngl  disable address line A20 (HP Vectra only???)
  590.                   default in Real Mode
  591.          DF    sngl  enable address line A20 (HP Vectra only???)
  592.          E0    read  read test inputs.
  593.                 bit0 = kbd clock, bit1 = kbd data
  594.          Exxx    AWARD Enhanced Command: active output port
  595.          ED   Compaq  This is a two part command to control the state
  596.                   of the NumLock CpasLock and ScrollLock LEDs
  597.                   The second byte contains the state to set LEDs.
  598.                 bit 7-3       reserved. should be set to 0.
  599.                 bit 2 = 0  Caps Lock LED off
  600.                 bit 1 = 0  Num Lock LED off
  601.                 bit 0 = 0  Scroll Lock LED off
  602.          F0-FF    sngl  pulse output port low for 6 microseconds.
  603.                   bits 0-3 contain the mask for the bits to be
  604.                   pulsed. a bit is pulsed if its mask bit is zero.
  605.                   bit0=system reset. Don't set to zero. Pulse only!
  606.  
  607. general note:     Keyboard controllers are widely different from each other.
  608.          You cannot generally exchange them between different machines.
  609. note on Award:     Derived from Award's Enhanced KB controller advertising sheet.
  610. note on Compaq:     Derived from the Compaq Deskpro 386 Tech. Ref. Guide.
  611.  
  612. 0065    r    communications port (Olivetti M24)
  613.  
  614. 0068    w    HP-Vectra  control buffer (HP commands)
  615. 0069    r    HP-Vectra  SVC (keyboard request SerViCe port)
  616. 006A    w    HP-Vectra  clear processing, done
  617.  
  618. 006C-006F    HP-HIL    (Human Interface Link = async. serial inputs 0-7)
  619.  
  620. -------------------------------------------------------------------------------
  621. 0065      ----  AT&T 6300+ high/low chip select
  622.  
  623. -------------------------------------------------------------------------------
  624. 0065      ----    ???
  625.  
  626. 0065    r/w    ???
  627.         bit 2: A20 gate control (set = A20 enabled, clear = disabled)
  628.  
  629. -------------------------------------------------------------------------------
  630. 0066-0067 ----  AT&T 6300+ system configuration switches
  631.  
  632. -------------------------------------------------------------------------------
  633. 0068      ----  C&T chipsets, turbo mode control
  634.  
  635. -------------------------------------------------------------------------------
  636. 006B-006F ----  SSGA control registers
  637.  
  638. 006B    ?    RAM enable/remap
  639. 006C-006F    undocumented
  640.  
  641. -------------------------------------------------------------------------------
  642. 0070-007F ----    CMOS RAM/RTC (Real Time Clock  MC146818)
  643.  
  644. 0070    w    CMOS RAM index register port (ISA, EISA)
  645.          bit 7     = 1  NMI disabled
  646.              = 0  NMI enabled
  647.          bit 6-0      CMOS RAM index (64 bytes, sometimes 128 bytes)
  648.  
  649.         any write to 0070 should be followed by an action to 0071
  650.         or the RTC wil be left in an unknown state.
  651.  
  652. 0071    r/w    CMOS RAM data port (ISA, EISA)
  653.         RTC registers:
  654.         00    current second in BCD
  655.         01    alarm second   in BCD
  656.         02    current minute in BCD
  657.         03    alarm minute   in BCD
  658.         04    current hour in BCD
  659.         05    alarm hour   in BCD
  660.         06    day of week  in BCD
  661.         07    day of month in BCD
  662.         08    month in BCD
  663.         09    year  in BCD (00-99)
  664.         0A    status register A
  665.                bit 7 = 1  update in progress
  666.                bit 6-4 divider that identifies the time-based
  667.                 frequency
  668.                bit 3-0 rate selection output  frequency and int. rate
  669.         0B    status register B
  670.                bit 7 = 0  run
  671.                  = 1  halt
  672.                bit 6 = 1  enable periodic interrupt
  673.                bit 5 = 1  enable alarm interrupt
  674.                bit 4 = 1  enable update-ended interrupt
  675.                bit 3 = 1  enable square wave interrupt
  676.                bit 2 = 1  calendar is in binary format
  677.                  = 0  calendar is in BCD format
  678.                bit 1 = 1  24-hour mode
  679.                  = 0  12-hour mode
  680.                bit 0 = 1  enable daylight savings time. only in USA.
  681.                   useless in Europe. Some DOS versions clear
  682.                   this bit when you use the DAT/TIME command.
  683.         0C    status register C
  684.                bit 7 =      interrupt request flag
  685.                bit 6 =      peridoc interrupt flag
  686.                bit 5 =      alarm interrupt flag
  687.                bit 4 =      update interrupt flag
  688.                bit 3-0      reserved
  689.         0D    status register D
  690.                bit 7 = 1  Real-Time Clock has power
  691.                bit 6-0      reserved
  692.         0E    diagnostics status byte
  693.                bit 7 = 0  RTC lost power
  694.                bit 6 = 1  CMOS RAM checksum bad
  695.                bit 5 = 1  invalid configuration information at POST
  696.                bit 4 = 1  memory size error at POST
  697.                bit 3 = 1  fixed disk/adapter failed initialization
  698.                bit 2 = 1  CMOS RAM time found invalid
  699.                bit 1 = 1  adapters do not match configuration (EISA)
  700.                bit 0 = 1  time out reading an adapter ID (EISA)
  701.         0F    shutdown status byte
  702.                00 = normal execution of POST
  703.                01 = chip set initialization for real mode reentry
  704.                04 = jump to bootstrap code
  705.                05 = issue an EOI an JMP to Dword ptr at 40:67
  706.                06 = JMP to Dword ptrv at 40:67 without EOI
  707.                07 = return to INT15/87 (block move)
  708.                08 = return to POST memory test
  709.                09 = return to INT15/87 (block move)
  710.                0A = JMP to Dword ptr at 40:67 without EOI
  711.                0B = return IRETS through 40:67
  712.         10    diskette drive type for A: and B:
  713.                bit 7-4    drive type of drive 0
  714.                bit 3-0    drive type of drive 1
  715.                    = 0000       no drive
  716.                    = 0001       360K
  717.                    = 0010       1M2
  718.                    = 0011       720K
  719.                    = 0100       1M44
  720.                    = 0101-1111 reserved
  721.         11    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  722.                bit 7   = 1     Typematic Rate Programming
  723.                bit 6-5 = 00    Typematic Rate Delay 250 mSec
  724.                bit 4-0 = 00011 Typematic Rate 21.8 Chars/Sec
  725.         12    fixed disk drive type for drive 0 and drive 1
  726.                bit 7-4    drive type of drive 0
  727.                bit 3-0    drive type of drive 1
  728.                 if either of the nibbles equals 0F, then bytes
  729.                 19 an 1A are valid
  730.         13    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  731.                bit 7 = 1  Mouse Support Option
  732.                bit 6 = 1  Above 1 MB Memory Test disable
  733.                bit 5 = 1  Memory Test Tick Sound disable
  734.                bit 4 = 1  Memory Parity Error Check enable
  735.                bit 3 = 1  Hit <ESC> Message Display disabled
  736.                bit 2 = 1  Hard Disk Type 47 Data Area at address 0:300
  737.                bit 1 = 1  Wait For <F1> If Any Error enabled
  738.                bit 0 = 1  System Boot Up Num Lock is On
  739.         14    equipment byte
  740.                bit 7-6     diskette drives installed
  741.                    = 00  1 drive installed
  742.                    = 01  2 drives installed
  743.                    = 10  reserved
  744.                    = 11  reserved
  745.                bit 5-4     primary display
  746.                    = 00  adapter card with option ROM 
  747.                    = 01  40*25 color
  748.                    = 10  80*25 color
  749.                    = 11  monochrome
  750.                bit 3-2     reserved
  751.                bit 1   = 1  coprocessor installed (non-Weitek)
  752.                bit 0        diskette drive avaliable for boot
  753.         15    LSB of systemn base memory in Kb
  754.         16    MSB of systemn base memory in Kb
  755.         17    LSB of total extended memory in Kb
  756.         18    MSB of total extended memory in Kb
  757.         19    drive C extension byte
  758.         1A    drive D extension byte
  759.         1B-27 reserved
  760.         1B/1C word to 82335 RC1 roll compare register at [24]
  761.             (Phoenix)
  762.         1D/1E word to 82335 RC2 roll compare register at [26]
  763.             (Phoenix)
  764.         28    HP-Vectra checksum over 29-2D
  765.         29-2D reserved
  766.         29/2A word to Intel 82335 CC0 compare register at
  767.             [28](Phoenix)
  768.         2B/2C word send to 82335 CC1 compare register at [2A]
  769.             (Phoenix)
  770.         2D    AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  771.               (Phoenix BIOS checks for the values AA or CC)
  772.                bit 7 = 1  Weitek Processor Absent
  773.                bit 6 = 1  Floppy Drive Seek At Boot disabled
  774.                bit 5 = 1  System Boot Up Sequence  C:, A:
  775.                bit 4 = 1  System Boot Up Speed is high
  776.                bit 3 = 1  Cache Memory enabled
  777.                bit 2 = 1  Internal Cache Memory     <1>
  778.                bit 1-0      reserved
  779.         2E    CMOS MSB checksum over 10-2D
  780.         2F    CMOS LSB checksum over 10-2D
  781.         30    LSB of extended memory found above 1Mb at POST
  782.         31    MSB of extended memory found above 1Mb at POST
  783.         32    date century in BCD
  784.         33    information flags
  785.                bit4 = bit4 from CPU register CR0   (Phoenix)
  786.                   this bit is only known as INTEL RESERVED
  787.         34-3F reserved    
  788.         34     bit4 bit5 (Phoenix BIOS)
  789.         3D/3E word to 82335 MCR memory config register at
  790.             [22](Phoenix)
  791.         3D     bit3     base memsize 512/640  (Phoenix)
  792.         3E     bit7 = 1     relocate enable       (Phoenix)
  793.                bit1 = 1     shadow video enable   (Phoenix)
  794.                bit0 = 1     shadow BIOS enable    (Phoenix)
  795.  
  796.  
  797.         User Definable Drive Parameters are also stored in CMOS RAM:
  798.  
  799.         AMI (386sx BIOS 1989) first user definable drive (type 47)
  800.          1B  L cylinders
  801.          1C  H cylinders
  802.          1D  heads
  803.          1E  L Write Precompensation Cylinder
  804.          1F  H Write Precompensation Cylinder
  805.          20  ??
  806.          21  L cylinders parking zone
  807.          22  H cylinders parking zone
  808.          23  sectors
  809.  
  810.         AMI (386sx BIOS 1989) second user definable drive (type 48)
  811.          24  L cylinders
  812.          25  H cylinders
  813.          26  heads
  814.          27  L Write Precompensation Cylinder
  815.          28  H Write Precompensation Cylinder
  816.          29  ??
  817.          2A  L cylinders parking zone
  818.          2B  H cylinders parking zone
  819.          2C  sectors
  820.  
  821.         Phoenix (386BIOS v1.10.03 1988) 1st user definable drv (type48)
  822.          20  L cylinders
  823.          21  H cylinders
  824.          22  heads
  825.          23  L Write Precompensation Cylinder
  826.          24  H Write Precompensation Cylinder
  827.          25  L cylinders parking zone
  828.          26  H cylinders parking zone
  829.          27  sectors
  830.  
  831.         Phoenix (386BIOS v1.10.03 1988) 2nd user definable drv (type49)
  832.         (when PS/2-style password option is not used)
  833.          35  L cylinders
  834.          36  H cylinders
  835.          37  heads
  836.          38  L Write Precompensation Cylinder
  837.          39  H Write Precompensation Cylinder
  838.          3A  L cylinders parking zone
  839.          3B  H cylinders parking zone
  840.          3C  sectors
  841.  
  842. 0074    w    secondary CMOS RAM index (Compaq)
  843.  
  844. 0076    r/w    secondary CMOS RAM (Compaq)
  845.  
  846. 0078        HP-Vectra  Hard Reset: NMI enable/disable
  847.          bit 7 = 0  disable & clear hard reset from HP-HIL controller
  848.                = 1  enable hard reset from HP-HIL controller chip
  849.          bit 6-0    reserved
  850.  
  851. -------------------------------------------------------------------------------
  852. 0078-007F ----    PC radio by CoZet Info Systems
  853.         The I/O address range is dipswitch selectable from:
  854.            038-03F and 0B0-0BF
  855.            078-07F and 0F0-0FF
  856.            138-13F and 1B0-1BF
  857.            178-17F and 1F0-1FF
  858.            238-23F and 2B0-2BF
  859.            278-27F and 2F0-2FF
  860.            338-33F and 3B0-3BF
  861.            378-37F and 3F0-3FF
  862.         All of these addresses show a readout of FF in initial state.
  863.         Once started, all of the addresses show     FB, whatever might
  864.         happen.
  865.  
  866. -------------------------------------------------------------------------------
  867. 007C-007D ----    HP-Vectra  PIC 3   (Programmable Interrupt Controller 8259)
  868.         cascaded to first controller.
  869.         used for keyboard and input device interface.
  870. 007C    r/w    HP-Vectra  PIC 3  see at 0020  PIC 1
  871. 007D    r/w    HP-Vectra  PIC 3  see at 0021  PIC 1
  872.  
  873. -------------------------------------------------------------------------------
  874. 0080    w    Manufacturing Diagnostics port
  875.  
  876. -------------------------------------------------------------------------------
  877. 0080-008F ----    DMA page registers   (74612)
  878.  
  879. 0080    r/w    extra page register (temporary storage)
  880. 0081    r/w    DMA channel 2 address byte 2
  881. 0082    r/w    DMA channel 3 address byte 2
  882. 0083    r/w    DMA channel 1 address byte 2
  883. 0084    r/w    extra page register
  884. 0085    r/w    extra page register
  885. 0086    r/w    extra page register
  886. 0087    r/w    DMA channel 0 address byte 2
  887. 0088    r/w    extra page register
  888. 0089    r/w    DMA channel 6 address byte 2
  889. 0089    r/w    DMA channel 7 address byte 2
  890. 0089    r/w    DMA channel 5 address byte 2
  891. 008C    r/w    extra page register
  892. 008D    r/w    extra page register
  893. 008E    r/w    extra page register
  894. 008F    r/w    DMA refresh page register
  895.  
  896. -------------------------------------------------------------------------------
  897. 0084      ----  Compaq POST Diagnostic
  898.  
  899. -------------------------------------------------------------------------------
  900. 0084      ----  EISA Synchronize Bus Cycle
  901.  
  902. -------------------------------------------------------------------------------
  903. 0090-009F ----    PS/2 POS (Programmable Option Select)
  904.  
  905. 0090        Central arbitration control port
  906. 0091    r    Card selection feedback
  907.  
  908. 0092    r/w    PS/2 system control port A  (port B is at 0061)
  909.          bit 7-6   any bit set to 1 turns activity light on
  910.          bit 5       reserved
  911.          bit 4 = 1 watchdog timout occurred 
  912.          bit 3 = 0 RTC/CMOS security lock (on password area) unlocked
  913.                = 1 CMOS locked (done by POST)
  914.          bit 2       reserved
  915.          bit 1 = 1 indicates A20 active
  916.          bit 0 = 0 system reset or write
  917.              1 pulse alternate reset pin (alternate CPU reset)
  918.  
  919. 0094    w    system board enable/setup register
  920.          bit 7 = 1  enable functions
  921.                = 0  setup functions
  922.          bit 5 = 1  enables VGA
  923.                = 0  setup VGA
  924.  
  925. 0095        reserved
  926.  
  927. 0096    w    adapter enable /setup register
  928.          bit 3 = 1  setup adapters
  929.                = 0  enable registers
  930.  
  931. 0097        reserved
  932.  
  933. -------------------------------------------------------------------------------
  934. 00A0-00AF ----    PIC 2    (Programmable Interrupt Controller 8259)
  935.  
  936. 00A0    r/w    NMI mask register (XT)
  937.  
  938. 00A0    r/w    PIC 2  same as 0020 for PIC 1
  939. 00A1    r/w    PIC 2  same as 0021 for PIC 1 except for OCW1:
  940.          bit 7 = 0  reserved
  941.          bit 6 = 0  enable fixed disk interrupt
  942.          bit 5 = 0  enable coprocessor exception interrupt
  943.          bit 4 = 0  enable mouse interrupt
  944.          bit 3 = 0  reserved
  945.          bit 2 = 0  reserved
  946.          bit 1 = 0  enable redirect cascade
  947.          bit 0 = 0  enable real-time clock interrupt
  948.  
  949. -------------------------------------------------------------------------------
  950. 00B0-00BF ----    PC radio by CoZet Info Systems
  951.         The I/O address range is dipswitch selectable from:
  952.            038-03F and 0B0-0BF
  953.            078-07F and 0F0-0FF
  954.            138-13F and 1B0-1BF
  955.            178-17F and 1F0-1FF
  956.            238-23F and 2B0-2BF
  957.            278-27F and 2F0-2FF
  958.            338-33F and 3B0-3BF
  959.            378-37F and 3F0-3FF
  960.         All of these addresses show a readout of FF in initial state.
  961.         Once started, all of the addresses show     FB, whatever might
  962.         happen.
  963.  
  964. -------------------------------------------------------------------------------
  965. 00C0      ----    TI  SN746496 programmable tone/noise generator    PCjr
  966.  
  967. -------------------------------------------------------------------------------
  968. 00C0-00DF ----    DMA 2    (second Direct Memory Access controller 8237)
  969.  
  970. 00C0    r/w    DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)
  971. 00C2    r/w    DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)
  972. 00C4    r/w    DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)
  973. 00C6    r/w    DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)
  974. 00C8    r/w    DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)
  975. 00CA    r/w    DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)
  976. 00CC    r/w    DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)
  977. 00CE    r/w    DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)
  978.  
  979. 00D0    r    DMA channel 4-7 status register (ISA, EISA)
  980.          bit 7 = 1  channel 7 request
  981.          bit 6 = 1  channel 6 request
  982.          bit 5 = 1  channel 5 request
  983.          bit 4 = 1  channel 4 request
  984.          bit 3 = 1  terminal count on channel 7
  985.          bit 2 = 1  terminal count on channel 6
  986.          bit 1 = 1  terminal count on channel 5
  987.          bit 0 = 1  terminal count on channel 4
  988.  
  989. 00D0    w    DMA channel 4-7 command register (ISA, EISA)
  990.          bit 7 = 1  DACK sense active high
  991.                = 0  DACK sense active low
  992.          bit 6 = 1  DREQ sense active high
  993.                = 0  DREQ sense active low
  994.          bit 5 = 1  extended write selection
  995.                = 0  late write selection
  996.          bit 4 = 1  rotating priority
  997.                = 0  fixed priority
  998.          bit 3 = 1  compressed timing
  999.                = 0  normal timing
  1000.          bit 2 = 0  enable controller
  1001.          bit 1 = 1  enable memory-to-memory transfer
  1002.          bit 0        .....
  1003.  
  1004. 00D2    w    DMA channel 4-7 write request register (ISA, EISA)
  1005.  
  1006. 00D4    w    DMA channel 4-7 write single mask register (ISA, EISA)
  1007.          bit 7-3      reserved
  1008.          bit 2     = 0  clear mask bit
  1009.              = 1  set mask bit
  1010.          bit 1-0 = 00 channel 4 select
  1011.              = 01 channel 5 select
  1012.              = 10 channel 6 select
  1013.              = 11 channel 7 select
  1014.  
  1015. 00D6    w    DMA channel 4-7 mode register (ISA, EISA)
  1016.          bit 7-6 = 00  demand mode
  1017.              = 01  single mode
  1018.              = 10  block mode
  1019.              = 11  cascade mode
  1020.          bit 5     = 0   address increment select
  1021.              = 1   address decrement select
  1022.          bit 4     = 0   autoinitialisation disable
  1023.              = 1   autoinitialisation enable
  1024.          bit 3-2 = 00  verify operation
  1025.              = 01  write to memory
  1026.              = 10  read from memory
  1027.              = 11  reserved
  1028.          bit 1-0 = 00  channel 4 select
  1029.              = 01  channel 5 select
  1030.              = 10  channel 6 select
  1031.              = 11  channel 7 select
  1032.  
  1033. 00D8    w    DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)
  1034. 00DA    r    DMA channel 4-7 read temporary register (ISA, EISA)
  1035. 00DA    w    DMA channel 4-7 master clear (ISA, EISA)
  1036. 00DC    w    DMA channel 4-7 clear mask register (ISA, EISA)
  1037. 00DE    w    DMA channel 4-7 write mask register (ISA, EISA)
  1038.  
  1039. -------------------------------------------------------------------------------
  1040. 00E0-00E7 ----  Microchannel
  1041.  
  1042. 00E0    r/w    split address register, memory encoding registers PS/2m80 only
  1043. 00E1    r/w    memory register
  1044. 00E3    r/w    error trace
  1045. 00E4    r/w    error trace
  1046. 00E5    r/w    error trace
  1047. 00E7    r/w    error trace
  1048.  
  1049. -------------------------------------------------------------------------------
  1050. 00F0-00F5 ----    PCjr Disk Controller
  1051.  
  1052. 00F0        disk controller
  1053. 00F2        disk controller control port
  1054. 00F4        disk controller status register
  1055. 00F5        disk controller data port
  1056.  
  1057. -------------------------------------------------------------------------------
  1058. 00F0-00FF ----    coprocessor (8087..80387)
  1059.  
  1060. 00F0    w    math coprocessor clear busy latch
  1061. 00F1    w    math coprocessor reset
  1062. 00F8    r/w    opcode transfer
  1063. 00FA    r/w    opcode transfer
  1064. 00FC    r/w    opcode transfer
  1065.  
  1066. -------------------------------------------------------------------------------
  1067. 00F9-00FF ----    PC radio by CoZet Info Systems
  1068.         The I/O address range is dipswitch selectable from:
  1069.            038-03F and 0B0-0BF
  1070.            078-07F and 0F0-0FF
  1071.            138-13F and 1B0-1BF
  1072.            178-17F and 1F0-1FF
  1073.            238-23F and 2B0-2BF
  1074.            278-27F and 2F0-2FF
  1075.            338-33F and 3B0-3BF
  1076.            378-37F and 3F0-3FF
  1077.         All of these addresses show a readout of FF in initial state.
  1078.         Once started, all of the addresses show     FB, whatever might
  1079.         happen.
  1080.  
  1081. -------------------------------------------------------------------------------
  1082. 0100-010F ----    CompaQ Tape drive adapter. alternate address at 0300
  1083.  
  1084. -------------------------------------------------------------------------------
  1085. 0100-0107 ----    PS/2 POS (Programmable Option Select)
  1086.  
  1087. 0100    r    POS register 0    Low adapter ID byte
  1088. 0101    r    POS register 1    High adapter ID byte
  1089.  
  1090. 0102    r/w    POS register 2    option select data byte 1
  1091.          bit 0 is card enable (CDEN)
  1092.  
  1093. 0103    r/w    POS register 3    option select data byte 2
  1094. 0104    r/w    POS register 4    option select data byte 3
  1095. 0105    r/w    POS register 5    option select data byte 4
  1096.          bit 7    channel active (-CHCK)
  1097.          bit 6    channel status
  1098.  
  1099. 0106    r/w    POS register 6    Low subaddress extension
  1100. 0107    r/w    POS register 7    High subaddress extension
  1101.  
  1102. -------------------------------------------------------------------------------
  1103. 0108-010F ----    8 digit LED info panel on IBM PS/2
  1104.  
  1105. 010F    w    leftmost character on display
  1106. 010E    w    second character
  1107. ....    w
  1108. 0108    w    eighth character
  1109.  
  1110. -------------------------------------------------------------------------------
  1111. 0130-013F ----    CompaQ SCSI adapter. alternate address at 0330
  1112.  
  1113. -------------------------------------------------------------------------------
  1114. 0130-0133 ----    Adaptec 154xB/154xC SCSI adapter.
  1115.         alternate address at 0134, 0230, 0234, 0330 and 0334
  1116.  
  1117. -------------------------------------------------------------------------------
  1118. 0134-0137 ----    Adaptec 154xB/154xC SCSI adapter.
  1119.         alternate address at 0130, 0230, 0234, 0330 and 0334
  1120.  
  1121. -------------------------------------------------------------------------------
  1122. 0138-013F ----    PC radio by CoZet Info Systems
  1123.         The I/O address range is dipswitch selectable from:
  1124.            038-03F and 0B0-0BF
  1125.            078-07F and 0F0-0FF
  1126.            138-13F and 1B0-1BF
  1127.            178-17F and 1F0-1FF
  1128.            238-23F and 2B0-2BF
  1129.            278-27F and 2F0-2FF
  1130.            338-33F and 3B0-3BF
  1131.            378-37F and 3F0-3FF
  1132.         All of these addresses show a readout of FF in initial state.
  1133.         Once started, all of the addresses show     FB, whatever might
  1134.         happen.
  1135.  
  1136. -------------------------------------------------------------------------------
  1137. 0140-014F ----    SCSI (alternate Small Computer System Interface) adapter
  1138.         (1st at 0340-034F)
  1139.  
  1140. -------------------------------------------------------------------------------
  1141. 0140-0157 ----    RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  1142.  
  1143. -------------------------------------------------------------------------------
  1144. 0170-0177 ----    HDC 2    (2nd Fixed Disk Controller)   same as 01Fx (ISA, EISA)
  1145.  
  1146. -------------------------------------------------------------------------------
  1147. 0178-0179 ----  Power Management
  1148.  
  1149. 0178    w    index selection for data port
  1150. 0179    r/w    power management data
  1151.  
  1152. -------------------------------------------------------------------------------
  1153. 0178-017F ----    PC radio by CoZet Info Systems
  1154.         The I/O address range is dipswitch selectable from:
  1155.            038-03F and 0B0-0BF
  1156.            078-07F and 0F0-0FF
  1157.            138-13F and 1B0-1BF
  1158.            178-17F and 1F0-1FF
  1159.            238-23F and 2B0-2BF
  1160.            278-27F and 2F0-2FF
  1161.            338-33F and 3B0-3BF
  1162.            378-37F and 3F0-3FF
  1163.         All of these addresses show a readout of FF in initial state.
  1164.         Once started, all of the addresses show     FB, whatever might
  1165.         happen.
  1166.  
  1167. -------------------------------------------------------------------------------
  1168. 01E8-01EF ----    System Control. Laptop chipset: Headland HL21 & Acer M5105
  1169.  
  1170. 01ED    r/w    select internal register. Data to/from 01EF
  1171. 01EE    r
  1172. 01EF    r/w    reg.
  1173.         5  = 1000xxxx  for low CPU clock speed (4MHz on Morse/Mitac)
  1174.            = 0xxxxxxx  for high CPU clock speed (16MHz on Morse/Mitac)
  1175.  
  1176. -------------------------------------------------------------------------------
  1177. 01F0-01F7 ----    HDC 1    (1st Fixed Disk Controller)   same as 017x (ISA, EISA)
  1178.  
  1179. 01F0    r/w    data register
  1180.  
  1181. 01F1    r    error register
  1182.         diagnostic mode errors:
  1183.          bit 7-3    reserved
  1184.          bit 2-1 = 001    no error detected
  1185.              = 010    formatter device error
  1186.              = 011    sector buffer error
  1187.              = 100    ECC circuitry error
  1188.              = 101    controlling microprocessor error
  1189.          operation mode:
  1190.           bit 7     = 1  bad block detected
  1191.              = 0  block OK
  1192.           bit 6     = 1  uncorrectable ECC error
  1193.              = 0  no error
  1194.           bit 5          reserved
  1195.           bit 4     = 1  ID found
  1196.              = 0  ID not found
  1197.           bit 3          reserved
  1198.           bit 2     = 1  command completed
  1199.              = 0  command aborted
  1200.           bit 1     = 1  track 000 not found
  1201.              = 0  track 000 found
  1202.           bit 0     = 1  DAM not found
  1203.              = 0  DAM found (CP-3022 always 0)
  1204.  
  1205. 01F1    w    WPC/4  (Write Precompensation Cylinder divided by 4)
  1206.  
  1207. 01F2    r/w    sector count
  1208. 01F3    r/w    sector number
  1209. 01F4    r/w    cylinder low
  1210. 01F5    r/w    cylinder high
  1211.  
  1212. 01F6    r/w    drive/head
  1213.          bit 7     = 1
  1214.          bit 6     = 0
  1215.          bit 5     = 1
  1216.          bit 4     = 0  drive 0 select
  1217.              = 1  drive 1 select
  1218.          bit 3-0      head select bits
  1219.  
  1220. 01F7    r    status register
  1221.          bit 7 = 1  controller is executing a command
  1222.          bit 6 = 1  drive is ready
  1223.          bit 5 = 1  write fault
  1224.          bit 4 = 1  seek complete
  1225.          bit 3 = 1  sector buffer requires servicing
  1226.          bit 2 = 1  disk data read successfully corrected
  1227.          bit 1 = 1  index - set to 1 each disk revolution
  1228.          bit 0 = 1  previous command ended in an error
  1229.  
  1230. 01F7    w    command register
  1231.         commands:
  1232.          98 E5     check power mode    (IDE)
  1233.          90     execute drive diagnostics
  1234.          50     format track
  1235.          EC     identify drive        (IDE)
  1236.          97 E3     idle            (IDE)
  1237.          95 E1     idle immediate        (IDE)
  1238.          91     initialize drive parameters
  1239.          1x     recalibrate
  1240.          E4     read buffer        (IDE)
  1241.          C8     read DMA with retry    (IDE)
  1242.          C9     read DMA without retry (IDE)
  1243.          C4     read multiplec        (IDE)
  1244.          20     read sectors with retry
  1245.          21     read sectors without retry
  1246.          22     read long with retry
  1247.          23     read long without retry
  1248.          40     read verify sectors with retry
  1249.          41     read verify sectors without retry
  1250.          7x     seek
  1251.          EF     set features        (IDE)
  1252.          C6     set multiple mode    (IDE)
  1253.          99 E6     set sleep mode        (IDE)
  1254.          96 E2     standby        (IDE)
  1255.          94 E0     standby immediate    (IDE)
  1256.          E8     write buffer        (IDE)
  1257.          CA     write DMA with retry    (IDE)
  1258.          CB     write DMA with retry    (IDE)
  1259.          C5     write multiple        (IDE)
  1260.          E9     write same        (IDE)
  1261.          30     write sectors with retry
  1262.          31     write sectors without retry
  1263.          32     write long with retry
  1264.          33     write long without retry
  1265.          3C     write verify        (IDE)
  1266.          9A     vendor unique        (IDE)
  1267.          C0-C3     vendor unique        (IDE)
  1268.          8x     vendor unique        (IDE)
  1269.          F0-F4     EATA standard        (IDE)
  1270.          F5-FF     vendor unique        (IDE)
  1271.  
  1272. -------------------------------------------------------------------------------
  1273. 01F8      ----    ???
  1274.  
  1275. 01F8    r/w    ???
  1276.         bit 0: A20 gate control (set = A20 enabled, clear = disabled)
  1277.  
  1278. -------------------------------------------------------------------------------
  1279. 01F9-01FF ----    PC radio by CoZet Info Systems
  1280.         The I/O address range is dipswitch selectable from:
  1281.            038-03F and 0B0-0BF
  1282.            078-07F and 0F0-0FF
  1283.            138-13F and 1B0-1BF
  1284.            178-17F and 1F0-1FF
  1285.            238-23F and 2B0-2BF
  1286.            278-27F and 2F0-2FF
  1287.            338-33F and 3B0-3BF
  1288.            378-37F and 3F0-3FF
  1289.         All of these addresses show a readout of FF in initial state.
  1290.         Once started, all of the addresses show     FB, whatever might
  1291.         happen.
  1292.  
  1293. -------------------------------------------------------------------------------
  1294. 0200-020F ----    Game port reserved I/O address space  
  1295. 0200-0207 ----    Game port, eight identical addresses on some boards
  1296.  
  1297. 0201    r    read joystick position and status
  1298.          bit 7    status B joystick button 2 / D paddle button
  1299.          bit 6    status B joystick button 1 / C paddle button
  1300.          bit 5    status A joystick button 2 / B paddle button
  1301.          bit 4    status A joystick button 1 / A paddle button
  1302.          bit 3    B joystick Y coordinate       / D paddle coordinate
  1303.          bit 2    B joystick X coordinate       / C paddle coordinate
  1304.          bit 1    A joystick Y coordinate       / B paddle coordinate
  1305.          bit 0    A joystick X coordinate       / A paddle coordinate
  1306.  
  1307.     w    fire joysticks four one-shots
  1308.  
  1309. -------------------------------------------------------------------------------
  1310. 0200-02FF ----    Sunshine uPW48, programmer for EPROM version CPU's 8748/8749
  1311.         (4 bit DIP switch installable in the range 20x-2Fx)
  1312. 0200-0203    adresses of the 8255 on the uPW48
  1313. 0208-020B    adresses of ??? on the uPW48 (all showing zeros)
  1314.  
  1315.  
  1316. -------------------------------------------------------------------------------
  1317. 0210-0217 ----    Expansion unit (XT)
  1318.  
  1319. 0210    w    latch expansion bus data
  1320.     r    verify expansion bus data
  1321. 0211    w    clear wait, test latch
  1322.     r    High byte data address
  1323. 0212    r    Low byte data address
  1324. 0213    w    0=enable,  1=disable expansion unit
  1325. 0214    w    latch data  (receiver card port)
  1326.     r    read data   (receiver card port)
  1327. 0215    r    High byte of address, then Low byte   (receiver card port)
  1328.  
  1329. ------------------------------------------------------------------------------
  1330. 0220-0223 ---- Sound Blaster / Adlib port
  1331.  
  1332. 0220    r/w    Left speaker -- Status / Address port
  1333. 0221    w    Left speaker -- Data port
  1334. 0222    r/w    Right speaker -- Status / Address port
  1335.         Address:
  1336.             01 -- Enable waveform control
  1337.             02 -- Timer #1 data
  1338.             03 -- Timer #2 data
  1339.             04 -- Timer control flags
  1340.             08 -- Speech synthesis mode
  1341.          20-35 -- Amplitude Modulation / Vibrato
  1342.          40-55 -- Level key scaling / Total level
  1343.          60-75 -- Attack / Decay rate
  1344.          80-95 -- Sustain / Release rate
  1345.          A0-B8 -- Octave / Frequency Number
  1346.          C0-C8 -- Feedback / Algorithm
  1347.          E0-F5 -- Waveform Selection
  1348. 0223    w    Right speaker -- Data port
  1349.  
  1350. SeeAlso: 0388-0389
  1351.  
  1352. -------------------------------------------------------------------------------
  1353. 0220-0227 ----    Soundblaster PRO and SSB 16 ASP
  1354.  
  1355. -------------------------------------------------------------------------------
  1356. 0220-022F ----    Soundblaster PRO 2.0
  1357.  
  1358. -------------------------------------------------------------------------------
  1359. 0220-022F ----    Soundblaster PRO 4.0
  1360. 0220    r    left FM status port
  1361. 0220    w    left FM music register address port (index)
  1362. 0221    r/w    left FM music data port
  1363. 0222    r    right FM status port
  1364. 0222    w    right FM music register address port (index)
  1365. 0223    r/w    right FM music data port
  1366. 0224    w    mixer register address port (index)
  1367. 0225    r/w    mixer data port
  1368. 0226    w    DSP reset
  1369. 0228    r    FM music status port
  1370. 0228    w    FM music register address port (index)
  1371. 0229    w    FM music data port
  1372. 022A    r    DSP read data (voice I/O and Midi)
  1373. 022C    w    DSP write data / write command
  1374. 022C    r    DSP write buffer status (bit 7)
  1375. 022E    r    DSP data available status (bit 7)
  1376.  
  1377.         The FM music is accessible on 0388/0389 for compatibility.
  1378.  
  1379. -------------------------------------------------------------------------------
  1380. 0230-0233 ----    Adaptec 154xB/154xC SCSI adapter.
  1381.         alternate address at 0130, 0134, 0230, 0330 and 0334
  1382.  
  1383. -------------------------------------------------------------------------------
  1384. 0234-0237 ----    Adaptec 154xB/154xC SCSI adapter.
  1385.         alternate address at 0130, 0134, 0230, 0330 and 0334
  1386.  
  1387. -------------------------------------------------------------------------------
  1388. 0240-0257 ----    RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  1389.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  1390.  
  1391. -------------------------------------------------------------------------------
  1392. 0258-025F ----    Intel Above Board
  1393.  
  1394. -------------------------------------------------------------------------------
  1395. 0278-027E ----    parallel printer port, same as 0378 and 03BC
  1396.  
  1397. 0278    w    data port
  1398. 0279    r/w    status port
  1399. 027A    r/w    control port
  1400.  
  1401. -------------------------------------------------------------------------------
  1402. 02A0-02A7 ----    Sunshine EW-901BN, EW-904BN
  1403.         EPROM writer card (release 1986) for EPROMs up to 27512
  1404. 02A0-02A3    adresses of the 8255 on the EW-90xBN
  1405.  
  1406.  
  1407. -------------------------------------------------------------------------------
  1408. 02A2-02A3 ----    MSM58321RS clock
  1409.  
  1410. -------------------------------------------------------------------------------
  1411. 02B0-02BF ----    Trantor SCSI adapter
  1412.  
  1413. -------------------------------------------------------------------------------
  1414. 02B0-02DF ----    alternate EGA,    primary EGA at 03C0
  1415.  
  1416. -------------------------------------------------------------------------------
  1417. 02C0-02Cx ----    AST-clock
  1418.  
  1419. -------------------------------------------------------------------------------
  1420. 02E0-02EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1421.         (GAB 0 on XT)
  1422. 02E1        GPIB (adapter 0)
  1423. 02E2
  1424. 02E3
  1425.  
  1426. -------------------------------------------------------------------------------
  1427. 02E0-02EF ----    data aquisition     (AT)
  1428.  
  1429. 02E2        data aquisition (adapter 0)
  1430. 02E3        data aquisition (adapter 0)
  1431.  
  1432. -------------------------------------------------------------------------------
  1433. 02E8      ----    S3 86C928 video controller (ELSA Winner 1000)
  1434.  
  1435. -------------------------------------------------------------------------------
  1436. 02E8-02EF ----    serial port, same as 02F8, 03E8 and 03F8
  1437.  
  1438. -------------------------------------------------------------------------------
  1439. 02E8-02EF ----    used by ATI Mach32 video cards (e.g. Graphics Ultra+)
  1440.  
  1441. -------------------------------------------------------------------------------
  1442. 02EA      ----    S3 86C928 video controller (ELSA Winner 1000)
  1443.  
  1444. -------------------------------------------------------------------------------
  1445. 02F8-02FF ----    serial port, same as 02E8, 03E8 and 03F8
  1446.  
  1447. 02F8    w    transmitter holding register
  1448. 02F8    r    receiver buffer register
  1449.     r/w    divisor latch, low byte      when DLAB=1
  1450. 02F9    r/w    divisor latch, high byte  when DLAB=1
  1451.     r/w    interrupt enable register when DLAB=0
  1452. 02FA    r    interrupt identification register
  1453. 02FB    r/w    line control register
  1454. 02FC    r/w    modem control register
  1455. 02FD    r    line status register
  1456. 02FF    r/w    scratch register
  1457.  
  1458. -------------------------------------------------------------------------------
  1459. 0300      ---- Award POST Diagnostic
  1460.  
  1461. -------------------------------------------------------------------------------
  1462. 0300-0301 ---- Soundblaster 16 ASP MPU-Midi
  1463.  
  1464. -------------------------------------------------------------------------------
  1465. 0300-0303 ---- Panasonic 52x CD-ROM SCSI Miniport
  1466.     Alternate addresses at 0320, 0340, 0360, and 0380
  1467.  
  1468. -------------------------------------------------------------------------------
  1469. 0300-031F ----    prototype cards
  1470.         Periscope hardware debugger
  1471.  
  1472. -------------------------------------------------------------------------------
  1473. 0300-030F ----    Philips CD-ROM player CM50
  1474.  
  1475. -------------------------------------------------------------------------------
  1476. 0300-030F ----    CompaQ Tape drive adapter. alternate address at 0100
  1477.  
  1478. -------------------------------------------------------------------------------
  1479. 0310-031F ----    Philips CD-ROM player CM50
  1480.  
  1481. -------------------------------------------------------------------------------
  1482. 0320-0323 ----    XT HDC 1   (Hard Disk Controller)
  1483.  
  1484. 0320    r/w    data register
  1485.  
  1486. 0321    w    reset controller
  1487.     r    read controller hardware status
  1488.          bit 7-6 = 0
  1489.          bit 5          logical unit number
  1490.          bit 4-2 = 0
  1491.          bit 1     = 0  no error
  1492.          bit 0     = 0 
  1493.  
  1494. 0322    r    read DIPswitch setting on XT controller card
  1495.     w    generate controller-select pulse
  1496. 0323    w    write pattern to DMA and INT mask register
  1497.  
  1498. 0324-0327 ----    XT HDC 2   (Hard Disk Controller)
  1499. 0328-032B ----    XT HDC 3   (Hard Disk Controller)
  1500. 032C-032F ----    XT HDC 4   (Hard Disk Controller)
  1501.  
  1502. -------------------------------------------------------------------------------
  1503. 0330-0331 ----    MIDI interface
  1504.  
  1505. -------------------------------------------------------------------------------
  1506. 0330-0333 ----    Adaptec 154xB/154xC SCSI adapter. default address.
  1507.         alternate address at 0130, 0134, 0230, 0234 and 0334
  1508.  
  1509. -------------------------------------------------------------------------------
  1510. 0330-033F ----    CompaQ SCSI adapter. alternate address at 0130
  1511.  
  1512. -------------------------------------------------------------------------------
  1513. 0330-033F ----    Philips CD-ROM player CM50
  1514.  
  1515. -------------------------------------------------------------------------------
  1516. 0334-0337 ----    Adaptec 154xB/154xC SCSI adapter.
  1517.         alternate address at 0130, 0134, 0230, 0234 and 0330
  1518.  
  1519. -------------------------------------------------------------------------------
  1520. 0338      ----    AdLib soundblaster card
  1521.  
  1522. -------------------------------------------------------------------------------
  1523. 0340-034F ----    Philips CD-ROM player CM50
  1524.  
  1525. -------------------------------------------------------------------------------
  1526. 0340-034F ----    SCSI (1st Small Computer System Interface) adapter
  1527.         (alternate at 0140-014F)
  1528.  
  1529. -------------------------------------------------------------------------------
  1530. 0340-0357 ----    RTC (1st Real Time Clock for XT), (alternate at 0240-0257)
  1531.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  1532.  
  1533. 0340    r/w    0.01 seconds  0-99
  1534. 0341    r/w    0.1 seconds   0-99
  1535. 0342    r/w    seconds          0-59
  1536. 0343    r/w    minutes          0-59
  1537. 0343    r/w    hours          0-23
  1538. 0345    r/w    day of week   1-7
  1539. 0346    r/w    day of month  1-31
  1540. 0347    r/w    month          1-12
  1541. 0348
  1542. 0349    r/w    year          0-99
  1543. 034A
  1544. 034B
  1545. 034C
  1546. 034D
  1547. 034E
  1548. 034F
  1549. 0350    r    status?
  1550. 0351    
  1551. 0352
  1552. 0353
  1553. 0354    r    status?
  1554. 0355
  1555. 0356
  1556. 0357
  1557.  
  1558. -------------------------------------------------------------------------------
  1559. 0348-0357 ----    DCA 3278
  1560.  
  1561. -------------------------------------------------------------------------------
  1562. 0360-036F ----    PC network (AT)
  1563. 0360-0367 ----    PC network (XT only)
  1564.  
  1565. -------------------------------------------------------------------------------
  1566. 0360-036F ----  National Semiconductor DP8390C/NS3249C network chipset
  1567. Note:    cards based on this IEEE 802.3 networking chipset can use any range
  1568.       of 16 consecutive addresses, and provide a total of four pages of
  1569.       sixteen register
  1570.  
  1571. Page 0    r                    w
  1572.  
  1573. 00    Command    reg.             CR    Command reg.        CR
  1574. 01    current local DMA address 0    CLDA0    page start reg.     PSTART
  1575. 02    current local DMA address 1    CLDA1    page stop reg.        PSTOP
  1576. 03    boundary pointer        BNRY    boundary pointer    BNRY
  1577. 04    transmit status reg.        TSR    Tx page start address    TPSR
  1578. 05    number of collisions reg.    NCR    Tx byte count reg.0     TBCR0 
  1579. 06    FIFO                    Tx byte count reg.1    TBCR1
  1580. 07    interrupt status reg.        ISR    interrupt status reg.    ISR
  1581. 08    current remote DMA address 0    CRDA0    remote start addr.reg.0    RSAR0
  1582. 09    current remote DMA address 1    CRDA1    remote start addr.reg.1    RSAR1
  1583. 0A    reserved                remote byte count reg.0    RBCR0
  1584. 0B    reserved                remote byte count reg.1    RBCR1
  1585. 0C    receive status reg.        RSR    Rx configuration reg.    RCR
  1586. 0D    tally counter 0 (frame errors)    CNTR0    Tx configuration reg.    TCR
  1587. 0E    tally counter 1 (CRC errors)    CNTR1    data configuration reg.    DCR
  1588. 0F    tally counter 2 (missed pkt)    CNTR2    interrupt mask reg.    IMR
  1589.  
  1590. Page 1    r/w
  1591.  
  1592. 00    Command            CR
  1593. 01    physical address reg.0    PAR0
  1594. 02    physical address reg.1    PAR1        
  1595. 03    physical address reg.2    PAR2        
  1596. 04    physical address reg.3    PAR3        
  1597. 05    physical address reg.4    PAR4        
  1598. 06    physical address reg.5    PAR5        
  1599. 07    current page reg.    CURR            
  1600. 08    multicast address reg.0    MAR0        
  1601. 09    multicast address reg.1    MAR1        
  1602. 0A    multicast address reg.2    MAR2        
  1603. 0B    multicast address reg.3    MAR3        
  1604. 0C    multicast address reg.4    MAR4        
  1605. 0D    multicast address reg.5    MAR5        
  1606. 0E    multicast address reg.6    MAR6        
  1607. 0F    multicast address reg.7    MAR7        
  1608.  
  1609. Page 2    r                    w
  1610.     diagnostics page - should never be modfied under normal operation.
  1611.  
  1612. 00    Command                CR    Command             CR
  1613. 01    page start reg.            PSTART    current local DMA addr.0 CLDA0
  1614. 02    page stop reg.            BPSTOP    current local DMA addr.1 CLDA1
  1615. 03    remote next packet pointer        remote next packet pointer
  1616. 04    Tx page start address        TPSR    reserved
  1617. 05    local next packet pointer        local next packet pointer
  1618. 06    address counter (upper)            address counter (upper)
  1619. 07    address counter (lower)            address counter (lower)
  1620. 08    reserved                reserved
  1621. 09    reserved                reserved
  1622. 0A    reserved                reserved
  1623. 0B    reserved                reserved
  1624. 0C    Rx configuration reg.        RCR    reserved
  1625. 0D    Tx configuration reg.        TCR    reserved
  1626. 0E    data configuration reg.        DCR    reserved
  1627. 0F    interrupt mask reg.        IMR    reserved
  1628.  
  1629. Page 3    r                    w
  1630.     Test Page - should never be modified !
  1631.  
  1632. 00    Command CR                Command CR
  1633.  
  1634.     bit0=1  software reset command. 1=offline  0=online
  1635.     bit1=0  activate NIC after reset command
  1636.     bit2=1  start transmision of a packet
  1637.     bit3-5  remote DMA command
  1638.          000 not allowed
  1639.          001 remote read
  1640.          010 remote write
  1641.          011 send packet
  1642.          1xx abort/complete rmote DMA
  1643.     bit 6,7 page select
  1644.          00 register page 0
  1645.          01 register page 1
  1646.          10 register page 2
  1647.          11 register page 3
  1648.  
  1649. -------------------------------------------------------------------------------
  1650. 0370-0377 ----    FDC 2  (2nd Floppy Disk Controller 8272)  same as 03F0
  1651.  
  1652. 0372    w    diskette controller DOR (Digital Output Register)
  1653. 0374    r    diskette controller status register
  1654. 0375    r/w    diskette controller data register
  1655. 0376    r/w    FIXED disk controller data register
  1656. 0377    r    diskette controller DIR (Digital Input Register)
  1657. 0377    w    select register for diskette data transfer rate
  1658.  
  1659. -------------------------------------------------------------------------------
  1660. 0378-037A ----    parallel printer port, same as 0278 and 03BC
  1661.  
  1662. 0378    w    data port
  1663. 0379    r/w    status port
  1664. 037A    r/w    control port
  1665.  
  1666. -------------------------------------------------------------------------------
  1667. 0380-038F ----    2nd Binary Synchronous Data Link Control adapter (see 03A0)
  1668.  
  1669. 0380    r/w     on board 8255 port A, internal/external sense
  1670. 0381    r/w     on board 8255 port B, external modem interface
  1671. 0382    r/w     on board 8255 port C, internal control and gating
  1672. 0383    r/w     on board 8255 mode register
  1673. 0384    r/w     on board 8253 channel square wave generator
  1674. 0385    r/w     on board 8253 channel 1 inactivity time-out
  1675. 0386    r/w     on board 8253 channel 2 inactivity time-out
  1676. 0387    r/w     on board 8253 mode register
  1677. 0388    r/w     on board 8273 read: status  write: command
  1678. 0389    r/w     on board 8273 read: response  write: parameter
  1679. 038A    r/w     on board 8273 transmit interrupt status
  1680. 038B    r/w     on board 8273 receiver interrupt status
  1681. 038C    r/w     on board 8273 data
  1682.  
  1683. ------------------------------------------------------------------------------
  1684. 0388-0389 ---- Sound Blaster / Adlib port
  1685.  
  1686. 0388    r/w    Both Speakers -- Status / Address port
  1687.         Address:
  1688.              01 -- Enable waveform control
  1689.              02 -- Timer #1 data
  1690.              03 -- Timer #2 data
  1691.              04 -- Timer control flags
  1692.              08 -- Speech synthesis mode
  1693.           20-35 -- Amplitude Modulation / Vibrato
  1694.           40-55 -- Level key scaling / Total level
  1695.           60-75 -- Attack / Decay rate
  1696.           80-95 -- Sustain / Release rate
  1697.           A0-B8 -- Octave / Frequency Number
  1698.           C0-C8 -- Feedback / Algorithm
  1699.           E0-F5 -- Waveform Selection
  1700. 0389    w    Data port
  1701.  
  1702. SeeAlso: 0220-0223
  1703.  
  1704. -------------------------------------------------------------------------------
  1705. 0388-0389 ---- Soundblaster PRO FM-Chip
  1706. 0388-038B ---- Soundblaster 16 ASP FM-Chip
  1707.  
  1708. -------------------------------------------------------------------------------
  1709. 0390-0397 ----    Sunshine EW-901B, EW-904B
  1710.         EPROM writer card for EPROMs up to 27512
  1711. 0390-0393    adresses of the 8255 on the EW-90xB
  1712.  
  1713. -------------------------------------------------------------------------------
  1714. 0390-039F ----    Cluster adapter (AT)
  1715.  
  1716. 0390-0393    (adapter 0)    (XT)
  1717.  
  1718. -------------------------------------------------------------------------------
  1719. 03A0-03AF ----    1st SDLC (Binary Synchronous Data Link Control adapter)
  1720.  
  1721. 03A0    r/w     on board 8255 port A, internal/external sense
  1722. 03A1    r/w     on board 8255 port B, external modem interface
  1723. 03A2    r/w     on board 8255 port C, internal control and gating
  1724. 03A3    r/w     on board 8255 mode register
  1725. 03A4    r/w     on board 8253 counter 0 unused
  1726. 03A5    r/w     on board 8253 channel 1 inactivity time-out
  1727. 03A6    r/w     on board 8253 channel 2 inactivity time-out
  1728. 03A7    r/w     on board 8253 mode register
  1729. 03A8    r/w     on board 8251 data
  1730. 03A9    r/w     on board 8251 command/mode/status register
  1731.  
  1732. -------------------------------------------------------------------------------
  1733. 03B0-03BF ----    MDA  (Monochrome Display Adapter based on 6845)
  1734.  
  1735. 03B0        same as 03B4
  1736. 03B1        same as 03B5
  1737. 03B2        same as 03B4
  1738. 03B3        same as 03B5
  1739. 03B4    w    MDA CRT index register     (EGA/VGA)
  1740.         selects which register (0-11h) is to be accessed through 3B5
  1741. 03B5    r/w    MDA CRT data register     (EGA/VGA)
  1742.         selected by port 3B4. registers C-F may be read
  1743.          00  horizontal total
  1744.          01  horizontal displayed
  1745.          02  horizontal sync position
  1746.          03  horizontal sync pulse width
  1747.          04  vertical total
  1748.          05  vertical displayed
  1749.          06  vertical sync position
  1750.          07  vertical sunc pulse width
  1751.          08  interlace mode
  1752.          09  maximum scan lines
  1753.          0A  cursor start
  1754.          0B  cursor end
  1755.          0C  start address high
  1756.          0D  start address low
  1757.          0E  cursor location high
  1758.          0F  cursor location low
  1759.          10  light pen high
  1760.          11  light pen low
  1761. 03B6        same as 03B4
  1762. 03B7        same as 03B5
  1763. 03B8    r/w    MDA mode control register
  1764.          bit 7 not used
  1765.          bit 6 not used
  1766.          bit 5 enable blink
  1767.          bit 4 not used
  1768.          bit 3 video enable
  1769.          bit 2 not used
  1770.          bit 1 not used
  1771.          bit 0 high resolution mode
  1772.  
  1773. 03B9        reserved for color select register on color adapter
  1774.  
  1775. 03BA    r    CRT status register     EGA/VGA: input status 1 register
  1776.          bit 7     (MSD says) if this bit changes within 8000h reads then
  1777.           bit 6-4 = 000 = adapter is Hercules or compatible
  1778.                 001 = adapter is Hercules+
  1779.                 101 = adapter is Hercules InColor
  1780.                   else: adapter is unknown
  1781.          bit 3     black/white video
  1782.          bit 2-1 reserved
  1783.          bit 0     horizontal drive
  1784.  
  1785. 03BA    w    EGA/VGA feature control register
  1786.  
  1787. 03BB        reserved for light pen strobe reset
  1788.  
  1789. -------------------------------------------------------------------------------
  1790. 03BC-03BF ----    parallel printer port, same as 0278 and 0378
  1791.  
  1792. 03BC    w    data port
  1793. 03BD    r/w    status port
  1794.          bit 7 = 0  busy
  1795.          bit 6 = 0  acknowledge
  1796.          bit 5 = 1  out of paper
  1797.          bit 4 = 1  printer is selected
  1798.          bit 3 = 0  error
  1799.          bit 2 = 0  IRQ has occurred
  1800.          bit 1-0    reserved
  1801.  
  1802. 03BE    r/w    control port
  1803.          bit 7-5    reserved
  1804.          bit 4 = 1  enable IRQ
  1805.          bit 3 = 1  select printer
  1806.          bit 2 = 0  initialize printer
  1807.          bit 1 = 1  automatic line feed
  1808.          bit 0 = 1  strobe
  1809.  
  1810. -------------------------------------------------------------------------------
  1811. 03BF    r/w    Hercules configuration switch register
  1812.          bit 7-2
  1813.          bit 1 = 0  disables upper 32K of graphics mode buffer
  1814.              1  enables upper 32K of graphics mode buffer
  1815.          bit 0 = 0  prevents graphics mode
  1816.              1  allows graphics mode
  1817.  
  1818. -------------------------------------------------------------------------------
  1819. 03C0-03C7 ----    Sunshine EW-901, EW-901A, EW-904, EW-904A
  1820.         EPROM writer card for EPROMs up to 27512
  1821. 03C0-03C3    adresses of the 8255 on the EW-90x
  1822.  
  1823. -------------------------------------------------------------------------------
  1824. 03C0-03CF ----    EGA  (1st Enhanced Graphics Adapter)    alternate at 02C0
  1825.  
  1826. 03C0    (r)/w    EGA VGA ATC index/data register
  1827. 03C1    r    VGA    other attribute register
  1828. 03C2    r    EGA VGA input status 0 register
  1829.     w    VGA    miscellaneous output register
  1830. 03C3    r/w    VGA    video subsystem enable (see also port 46E8h)
  1831.             for IBM, motherboard VGA only
  1832. 03C4    w    EGA    TS index register
  1833.     r/w    VGA    sequencer index register
  1834. 03C5    w    EGA    TS data register
  1835.     r/w    VGA    other sequencer register
  1836. 03C6    r/w    VGA    PEL mask register
  1837. 03C7    r/w    VGA    PEL address read mode
  1838.     r    VGA    DAC state register
  1839. 03C8    r/w    VGA    PEL address write mode
  1840. 03C9    r/w    VGA    PEL data register
  1841. 03CA    w    EGA    graphics 2 position register
  1842.     r    VGA    feature control register
  1843. 03CC    w    EGA    graphics 1 position register
  1844.     r    VGA    miscellaneous output register
  1845. 03CE    w    EGA    GDC index register
  1846.     r/w    VGA    graphics address register
  1847. 03CF    w    EGA    GDC data register
  1848.     r/w    VGA    other graphics register
  1849.  
  1850. -------------------------------------------------------------------------------
  1851. 03D0-03DF ----    CGA   (Color Graphics Adapter)
  1852.  
  1853. 03D0        same as 03D4
  1854. 03D1        same as 03D5
  1855. 03D2        same as 03D4
  1856. 03D3        same as 03D5
  1857. 03D4    w    CRT (6845) index register   (EGA/VGA)
  1858.         selects which register (0-11h) is to be accessed through 3B5
  1859. 03D5    w    CRT (6845) data register    (EGA/VGA)
  1860.         selected by port 3B4. registers C-F may be read
  1861.          (for registers see at 3B5)
  1862. 03D6        same as 03D4
  1863. 03D7        same as 03D5
  1864. 03D8    r/w    CGA mode control register  (except PCjr)
  1865.          bit 7-6      not used
  1866.          bit 5     = 1  blink enabled
  1867.          bit 4     = 1  640*200 graphics mode
  1868.          bit 3     = 1  video enabled
  1869.          bit 2     = 1  monochrome signal
  1870.          bit 1     = 0  text mode
  1871.              = 1  320*200 graphics mode
  1872.          bit 0     = 0  40*25 text mode
  1873.              = 1  80*25 text mode
  1874.  
  1875. 03D9    r/w    CGA palette register
  1876.          bit 7-6      not used
  1877.          bit 5     = 0 active color set: red, green brown
  1878.              = 1 active color set: cyan, magenta, white
  1879.          bit 4         intense colors in graphics, background colors text
  1880.          bit 3         intense border in 40*25, intense background in
  1881.                  320*200, intense foreground in 640*200
  1882.          bit 2         red border in 40*25, red background in 320*200,
  1883.                  red foreground in 640*200
  1884.          bit 1         green border in 40*25, green background in
  1885.                  320*200, green foreground in 640*200
  1886.          bit 0         blue border in 40*25, blue background in 320*200,
  1887.                  blue foreground in 640*200
  1888.  
  1889. 03DA    r    CGA status register    EGA/VGA: input status 1 register
  1890.          bit 7-4     not used
  1891.          bit 3 = 1   in vertical retrace
  1892.          bit 2 = 1   light pen switch is off
  1893.          bit 1 = 1   positive edge from light pen has set trigger
  1894.          bit 0 = 0   do not use memory
  1895.                = 1   memory access without interfering with display
  1896.  
  1897. 03DA    w    EGA/VGA feature control register
  1898.  
  1899. 03DB    w    clear light pen latch
  1900. 03DC    r/w    preset light pen latch
  1901.  
  1902. 03DF        CRT/CPU page register  (PCjr only)
  1903.  
  1904. -------------------------------------------------------------------------------
  1905. 03E8-03EF ----    serial port, same as 02E8, 02F8 and 03F8
  1906.  
  1907. -------------------------------------------------------------------------------
  1908. 03F0-03F7 ----    FDC 1  (1st Floppy Disk Controller 8272)  same as 0370
  1909.  
  1910. 03F0        diskette controller status A (PS/2)
  1911.          bit 7     interrupt pending
  1912.          bit 6     second drive installed
  1913.          bit 5     step
  1914.          bit 4     track 0
  1915.          bit 3     head 1 select
  1916.          bit 2     index
  1917.          bit 1     write protect
  1918.          bit 0     direction
  1919.  
  1920. 03F1    r    diskette controller status B (PS/2)
  1921.          bit 7-6  reserved
  1922.          bit 5      drive select (0=A:, 1=B:)
  1923.          bit 4      write data
  1924.          bit 3      read data
  1925.          bit 2      write enable
  1926.          bit 1      motor enable 1
  1927.          bit 0      motor enable 0
  1928.  
  1929. 03F2    w    diskette controller DOR (Digital Output Register)
  1930.          bit 7-6    reserved PS/2
  1931.          bit 7 = 1  drive 3 motor enable
  1932.          bit 6 = 1  drive 2 motor enable
  1933.          bit 5 = 1  drive 1 motor enable
  1934.          bit 4 = 1  drive 0 motor enable
  1935.          bit 3 = 1  diskette DMA enable (reserved PS/2)
  1936.          bit 2 = 1  FDC enable    (controller reset)
  1937.                = 0  hold FDC at reset
  1938.          bit 1-0    drive select (0=A 1=B ..)
  1939.  
  1940. 03F4    r    diskette controller status register
  1941.          bit 7 = 1  data register is ready
  1942.          bit 6 = 1  transfer is from controller to system
  1943.              0  transfer is from system to controller
  1944.          bit 5 = 1  non-DMA mode
  1945.          bit 4 = 1  diskette controller busy
  1946.          bit 3 = 1  drive 3 busy (reserved on PS/2)
  1947.          bit 2 = 1  drive 2 busy (reserved on PS/2)
  1948.          bit 1 = 1  drive 1 busy
  1949.          bit 0 = 1  drive 0 busy
  1950.  
  1951. 03F5    r    diskette command status register 0
  1952.          bit 7-6      last command status
  1953.              = 00  command terminated successfully
  1954.              = 01  command terminated abnormally
  1955.              = 10  invalid command
  1956.              = 11  terminated abnormally by change in ready signal
  1957.          bit 5     = 1   seek completed
  1958.          bit 4     = 1  equipment check occurred after error
  1959.          bit 3     = 1  not ready
  1960.          bit 2     = 1  head number at interrupt
  1961.          bit 1-0 = 1  unit select (0=A 1=B .. )
  1962.                   (on PS/2    01=A  10=B)
  1963.  
  1964.         status register 1
  1965.          bit 7        end of cylinder; sector# greater then sectors/track
  1966.          bit 6 = 0
  1967.          bit 5 = 1  CRC error in ID or data field
  1968.          bit 4 = 1  overrun
  1969.          bit 3 = 0
  1970.          bit 2 = 1  sector ID not found
  1971.          bit 1 = 1  write protect detected during write
  1972.          bit 0 = 1  ID address mark not found
  1973.  
  1974.         status register 2
  1975.          bit 7 = 0
  1976.          bit 6 = 1  deleted Data Eddress Mark detected
  1977.          bit 5 = 1  CRC error in data
  1978.          bit 4 = 1  wrong cylinder detected
  1979.          bit 3 = 1  scan command equal condition satisfied
  1980.          bit 2 = 1  scan command failed, sector not found
  1981.          bit 1 = 1  bad cylinder, ID not found
  1982.          bit 0 = 1  missing Data Address Mark 
  1983.  
  1984.         status register 3
  1985.          bit 7        fault status signal
  1986.          bit 6        write protect status
  1987.          bit 5        ready status
  1988.          bit 4        track zero status
  1989.          bit 3        two sided status signal
  1990.          bit 2        side select (head select)
  1991.          bit 1-0    unit select (0=A 1=B .. )
  1992.  
  1993. 03F6    r/w    FIXED disk controller data register
  1994.          bit 7-4    reserved
  1995.          bit 3 = 0  reduce write current
  1996.              1  head select 3 enable
  1997.          bit 2 = 1  disk reset enable
  1998.              0  disk reset disable
  1999.          bit 1 = 0  disk initialization enable
  2000.              1  disk initialization disable
  2001.          bit 0        reserved
  2002.  
  2003. 03F7    r    diskette controller DIR (Digital Input Register)
  2004.          bit 7 = 1 diskette change
  2005.  
  2006.          bit 6       FIXED DISK write gate
  2007.          bit 5       FIXED DISK head select 3 / reduced write current
  2008.          bit 4       FIXED DISK head select 2
  2009.          bit 3       FIXED DISK head select 1
  2010.          bit 2       FIXED DISK head select 0
  2011.          bit 1       FIXED DISK drive 1 select
  2012.          bit 0       FIXED DISK drive 0 select   conflicts with:
  2013.  
  2014.          bit 0       diskette high density select
  2015.  
  2016. 03F7    w    select register for diskette data transfer rate
  2017.          bit 7-2       reserved
  2018.          bit 1-0 = 00  500 Kb/S mode
  2019.              = 01  300 Kb/S mode
  2020.              = 10  250 Kb/S mode
  2021.              = 11  reserved
  2022.  
  2023. -------------------------------------------------------------------------------
  2024. 03F8-03FF ----    serial port (8250,8251,16450,16550), same as 02E8,02F8 and 03E8
  2025.  
  2026. 03F8    w    serial port, transmitter holding register, which contains the
  2027.         character to be sent. Bit 0 is sent first.
  2028.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  2029.     r    receiver buffer register, which contains the received character
  2030.         Bit 0 is received first
  2031.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  2032.     r/w    divisor latch low byte when DLAB=1
  2033.  
  2034. 03F9    r/w    divisor latch high byte when DLAB=1
  2035.     r/w    interrupt enable register when DLAB=0
  2036.          bits 7-4   reserved
  2037.          bit 3 = 1  modem-status interrupt enable
  2038.          bit 2 = 1  receiver-line-status interrupt enable
  2039.          bit 1 = 1  transmitter-holding-register empty interrupt enable
  2040.          bit 0 = 1  received-data-avail.int. enable (and 16550 timeout)
  2041.  
  2042.           - 16550 will interrupt if data exists in the FIFO and isn't read
  2043.         within the time it takes to receive four bytes or if no data is
  2044.         received within the time it takes to receive four bytes
  2045.  
  2046. 03FA    r    interrupt identification register. Information about a pending
  2047.         interrupt is stored here. When the ID register is addressed,
  2048.         the highest priority interrupt is held, and no other interrupts
  2049.         are acknowledged until the CPU services that interrupt.
  2050.          bit 7-6 = 00  reserved on 8250, 8251, 16450
  2051.              = 11  if FIFO queues are enabled (16550 only)
  2052.          bit 5-4 = 0 reserved
  2053.          bit 3     = 0 reserved  8250, 16450
  2054.              = 1 16550  timeout int. pending
  2055.          bit 2-1 identify pending interrupt with the highest priority
  2056.           = 11    receiver line status interrupt. priority=highest
  2057.           = 10    received data available register interrupt. pr.=second
  2058.           = 01    transmitter holding register empty interrupt. pr.=third
  2059.           = 00    modem status interrupt. priority=fourth
  2060.          bit 0 = 0  interrupt pending. contents of register can be used
  2061.                 as a pointer to the appropriate int.service routine
  2062.              1  no interrupt pending
  2063.  
  2064.           - interrupt pending flag uses reverse logic, 0=pending, 1=none
  2065.           - interrupt will occur if any of the line status bits are set
  2066.           - THRE bit is set when THRE register is emptied into the TSR
  2067.  
  2068.  
  2069. 03FA    w    16650 FCR  (FIFO Control Register)
  2070.          bit 7-6 = 00  1 byte
  2071.              = 01  4 bytes
  2072.              = 10  8 bytes
  2073.              = 11 14 bytes
  2074.          bit 5-4 = 00 reserved
  2075.          bit 3     = 1  change RXRDY  TXRDY pins from mode 0 to mode 1
  2076.          bit 2     = 1  clear XMIT FIFO
  2077.          bit 1     = 1  clear RCVR FIFO
  2078.          bit 0     = 1  enable clear XMIT and RCVR FIFO queues
  2079.  
  2080.           - bit 0 must be set in order to write to other FCR bits
  2081.           - bit 1 when set    the RCVR FIFO is cleared and this bit is reset
  2082.          the receiver shift register is not cleared
  2083.           - bit 2 when set    the XMIT FIFO is cleared and this bit is reset
  2084.          the transmit shift register is not cleared
  2085.  
  2086. 03FB    r/w    line control register
  2087.          bit 7 = 1  divisor latch access bit (DLAB)
  2088.              0  receiver buffer, transmitter holding, or interrupt
  2089.                 enable register access
  2090.          bit 6 = 1  set break enable. serial ouput is forced to spacing
  2091.                 state and remains there.
  2092.          bit 5 =    stick parity
  2093.          bit 4 = 1  even parity select
  2094.          bit 3 =    parity enable
  2095.              1  even number of ones are sent and checked in the 
  2096.                 data word bits and parity bit
  2097.              0  odd number of ones are sent and checked
  2098.          bit 2 = 0  one stop bit
  2099.              1  zero stop bit
  2100.          bit 1-0 00 word length is 5 bits
  2101.              01 word length is 6 bits
  2102.              10 word length is 7 bits
  2103.              11 word length is 8 bits
  2104.  
  2105. 03FC    r/w    modem control register
  2106.          bit 7-5 = 0  reserved
  2107.          bit 4 = 1  loopback mode for diagnostic testing of serial port
  2108.                 output of transmitter shift register is looped back
  2109.                 to receiver shift register input. In this mode
  2110.                 transmitted data is received immediately so that
  2111.                 the CPU can verify the transmit data/receive data
  2112.                 serial port paths.
  2113.          bit 3 = 1  auxiliary user-designated output 2
  2114.          bit 2 = 1  auxiliary user-designated output 1
  2115.          bit 1 = 1  force request-to-send active
  2116.          bit 0 = 1  force data-terminal-ready active
  2117.  
  2118. 03FD    r    line status register
  2119.          bit 7 = 0  reserved
  2120.          bit 6 = 1  transmitter shift and holding registers empty
  2121.          bit 5 = 1  transmitter holding register empty. Controller is
  2122.                 ready toaccept a new character to send.
  2123.          bit 4 = 1  break interrupt. the received data input is held in
  2124.                 in the zero bit state longer than the time of start
  2125.                 bit + data bits + parity bit + stop bits.
  2126.          bit 3 = 1  framing error. the stop bit that follows the last
  2127.                 parity or data bit is a zero bit.
  2128.          bit 2 = 1  parity error. Character has wrong parity
  2129.          bit 1 = 1  overrun error. a character was sent to the receiver
  2130.                 buffer before the previous character in the buffer
  2131.                 could be read. This destroys the previous
  2132.                 character.
  2133.          bit 0 = 1  data ready. a complete incoming character has been
  2134.                 received and sent to the receiver buffer register.
  2135.  
  2136. 03FE    r    modem status register
  2137.          bit 7 = 1  data carrier detect
  2138.          bit 6 = 1  ring indicator
  2139.          bit 5 = 1  data set ready
  2140.          bit 4 = 1  clear to send
  2141.          bit 3 = 1  delta data carrier detect
  2142.          bit 2 = 1  trailing edge ring indicator
  2143.          bit 1 = 1  delta data set ready
  2144.          bit 0 = 1  delta clear to send
  2145.  
  2146.           - bits 0-3 are reset when the CPU reads the MSR
  2147.           - bit 4 is the Modem Control Register RTS during loopback test
  2148.           - bit 5 is the Modem Control Register DTR during loopback test
  2149.           - bit 6 is the Modem Control Register OUT1 during loopback test
  2150.           - bit 7 is the Modem Control Register OUT2 during loopback test
  2151.  
  2152. 03FF    r/w    scratch register
  2153.  
  2154. -------------------------------------------------------------------------------
  2155.  
  2156.         Adresses above 03FF apply to EISA machines only !
  2157.  
  2158.              1000-1FFF    slot 1 EISA
  2159.              2000-2FFF    slot 2 EISA
  2160.              3000-3FFF    slot 3 EISA
  2161.              4000-4FFF    slot 4 EISA
  2162.              5000-5FFF    slot 5 EISA
  2163.              6000-6FFF    slot 6 EISA
  2164.              7000-7FFF    slot 7 EISA
  2165.  
  2166. -------------------------------------------------------------------------------
  2167. 0401-04D6 ----    used by EISA systems only
  2168.  
  2169. 0401    r/w    DMA channel 0 word count byte 2 (high)
  2170. 0403    r/w    DMA channel 1 word count byte 2 (high)
  2171. 0405    r/w    DMA channel 2 word count byte 2 (high)
  2172. 0407    r/w    DMA channel 3 word count byte 2 (high)
  2173.  
  2174. 040A    w    extended DMA chaining mode register, channels 0-3
  2175.          bit 7-5      reserved
  2176.          bit 4     = 0  generates IRQ13
  2177.              = 1  generates terminal count
  2178.          bit 3     = 0  do not start chaining
  2179.              = 1  programming complete
  2180.          bit 2     = 0  disable buffer chaining mode (default)
  2181.              = 1  enable buffer chaining mode
  2182.          bit 1-0      DMA channel select
  2183.  
  2184. 040A    r    channel interrupt (IRQ13) status register
  2185.          bit 7-5  interrupt on channels 7-5
  2186.          bit 4      reserved
  2187.          bit 3-0  interrupt on channels 3-0
  2188.  
  2189. 040B    w    DMA extended mode register for channels 3-0.
  2190.         bit settings same as 04D6
  2191.          bit 7     = 0  enable stop register
  2192.          bit 6     = 0  terminal count is an output for this channel
  2193.                 (default)
  2194.          bit 5-4      DMA cycle timing
  2195.              = 00 ISA-compatible (default)
  2196.              = 01 type A timing mode
  2197.              = 10 type B timing mode
  2198.              = 11 burst DMA mode
  2199.          bit 3-2      Address mode
  2200.              = 00 8-bit I/O, count by bytes (default)
  2201.              = 01 16-bit I/O, count by words, address shifted
  2202.              = 10 32-bit I/O, count by bytes
  2203.              = 11 16-bit I/O, count by bytes
  2204.          bit 1-0      DMA channel select
  2205.  
  2206. -------------------------------------------------------------------------------
  2207. 0461    r/w    Extended NMI status/control register
  2208.          bit 7 = 1  NMI pending from fail-safe timer (read only)
  2209.          bit 6 = 1  NMI pending from bus timeout NMI status (read only)
  2210.          bit 5 = 1  NMI pending (read only)
  2211.          bit 4        reserved
  2212.          bit 3 = 1  bus timeout NMI enable (read/write)
  2213.          bit 2 = 1  fail-safe NMI enable (read/write)
  2214.          bit 1 = 1  NMI I/O port enable (read/write)
  2215.          bit 0        RSTDRV. bus reset (read/write)
  2216.                = 0  normal bus reset operation
  2217.                = 1  reset bus asserted
  2218.  
  2219. 0462    w    Software NMI register. writing to this register causes an NMI
  2220.         if NMI's are enabled
  2221.          bit 7 = 1  generates an NMI
  2222.  
  2223. 0464    r    bus master status latch register (slots 1-8). identifies the
  2224.         last bus master that had control of the bus
  2225.          bit 7 = 0  slot 8 had control last
  2226.          bit 6 = 0  slot 7 had control last
  2227.          bit 5 = 0  slot 6 had control last
  2228.          bit 4 = 0  slot 5 had control last
  2229.          bit 3 = 0  slot 4 had control last
  2230.          bit 2 = 0  slot 3 had control last
  2231.          bit 1 = 0  slot 2 had control last
  2232.          bit 0 = 0  slot 1 had control last
  2233.  
  2234. 0465    r    bus master status latch register (slots 9-16)
  2235.          bit 7 = 0  slot 16 had control last
  2236.          bit 6 = 0  slot 15 had control last
  2237.          bit 5 = 0  slot 14 had control last
  2238.          bit 4 = 0  slot 13 had control last
  2239.          bit 3 = 0  slot 12 had control last
  2240.          bit 2 = 0  slot 11 had control last
  2241.          bit 1 = 0  slot 10 had control last
  2242.          bit 0 = 0  slot 9  had control last
  2243.  
  2244. -------------------------------------------------------------------------------
  2245. 0481-048B ---- EISA DMA page registers
  2246.  
  2247. 0481    r/w    DMA channel 2 address byte 3 (high)
  2248. 0482    r/w    DMA channel 3 address byte 3 (high)
  2249. 0483    r/w    DMA channel 1 address byte 3 (high)
  2250. 0487    r/w    DMA channel 0 address byte 3 (high)
  2251. 0489    r/w    DMA channel 6 address byte 3 (high)
  2252. 048A    r/w    DMA channel 7 address byte 3 (high)
  2253. 048B    r/w    DMA channel 5 address byte 3 (high)
  2254.  
  2255. -------------------------------------------------------------------------------
  2256. 04C6-04CF ---- EISA DMA count registers
  2257.  
  2258. 04C6    r/w    DMA channel 5 word count byte 2 (high)
  2259. 04CA    r/w    DMA channel 6 word count byte 2 (high)
  2260. 04CE    r/w    DMA channel 7 word count byte 2 (high)
  2261.  
  2262. -------------------------------------------------------------------------------
  2263. 04D0-04D1 ---- EISA IRQ control
  2264.  
  2265. 04D0    w    IRQ 0-7 interrupt edge/level registers
  2266.          bit 7 = 1  IRQ 7 is level sensitive
  2267.          bit 6 = 1  IRQ 6 is level sensitive
  2268.          bit 5 = 1  IRQ 5 is level sensitive
  2269.          bit 4 = 1  IRQ 4 is level sensitive
  2270.          bit 3 = 1  IRQ 3 is level sensitive
  2271.          bit 2-0    reserved
  2272.  
  2273. 04D1    w    IRQ 8-15 interrupt edge/level registers
  2274.          bit 7 = 1  IRQ 15 is level sensitive
  2275.          bit 6 = 1  IRQ 14 is level sensitive
  2276.          bit 5 = 1  reserved
  2277.          bit 4 = 1  IRQ 12 is level sensitive
  2278.          bit 3 = 1  IRQ 11 is level sensitive
  2279.          bit 2 = 1  IRQ 10 is level sensitive
  2280.          bit 1 = 1  IRQ 9  is level sensitive
  2281.          bit 0        reserved
  2282.  
  2283. -------------------------------------------------------------------------------
  2284. 04D4-04D6 ---- EISA DMA control
  2285.  
  2286. 04D4    r    DMA chaining status
  2287.  
  2288. 04D4    w    extended DMA chaining mode register, channels 4-7
  2289.          bit 7-5 = 0  reserved
  2290.          bit 4     = 0  generates IRQ 13
  2291.              = 1  generates terminal count
  2292.          bit 3     = 0  do not start chaining
  2293.              = 1  programming complete
  2294.          bit 2     = 0  disable buffer chaining mode (default)
  2295.              = 1  enable buffer chaining mode
  2296.          bit 1-0      DMA channel select
  2297.  
  2298. 04D6    w    DMA extended mode register for channels 4-7
  2299.         bit settings same as 04B
  2300.          bit 7     = 0  enable stop register
  2301.          bit 6     = 0  terminal count is an output for this channel
  2302.                 (default)
  2303.          bit 5-4      DMA cycle timing
  2304.              = 00 ISA-compatible (default)
  2305.              = 01 type A timing mode
  2306.              = 10 type B timing mode
  2307.              = 11 burst DMA mode
  2308.          bit 3-2      Address mode
  2309.              = 00 8-bit I/O, count by bytes (default)
  2310.              = 01 16-bit I/O, count by words, address shifted
  2311.              = 10 32-bit I/O, count by bytes
  2312.              = 11 16-bit I/O, count by bytes
  2313.          bit 1-0      DMA channel select
  2314.  
  2315. -------------------------------------------------------------------------------
  2316. 04E0-04FF ---- EISA DMA stop registers
  2317.  
  2318. 04E0-04E2 r/w    channel 0
  2319. 04E4-04E6 r/w    channel 1
  2320. 04E8-04EA r/w    channel 2
  2321. 04EC-04EE r/w    channel 3
  2322. 04F4-04F6 r/w    channel 5
  2323. 04F8-04FA r/w    channel 6
  2324. 04FC-04FE r/w    channel 7
  2325.  
  2326. -------------------------------------------------------------------------------
  2327. 0601    w    System control. Laptop chipset: Headland HL21 & Acer M5105
  2328.          bit 7 = 1  power led on
  2329.          bit 6 = 1  LCD backlight off
  2330.          bit 5
  2331.          bit 4
  2332.          bit 3
  2333.          bit 2 = 1  video chips disabled, screen blanked.
  2334.          bit 1
  2335.          bit 0 = 1  will lock up your machine!
  2336.  
  2337.     r     bit 7 = 0  if screen enabled always these values
  2338.          bit 6 = 0
  2339.          bit 5 = 0
  2340.          bit 4 = 0
  2341.          bit 3 = 0
  2342.          bit 2 = 1
  2343.          bit 1 = 0
  2344.          bit 0 = 0
  2345.  
  2346. -------------------------------------------------------------------------------
  2347. 0620-0627 ----    PC network (adapter 1)
  2348. 0628-062F ----    PC network (adapter 2)
  2349.  
  2350. -------------------------------------------------------------------------------
  2351. 0680      ----  Microchannel POST Diagnostic (write only)
  2352.  
  2353. -------------------------------------------------------------------------------
  2354. 06E2-06E3 ----    data aquisition (adapter 1)
  2355.  
  2356. -------------------------------------------------------------------------------
  2357. 0790-0793 ----    cluster (adapter 1)
  2358.  
  2359. -------------------------------------------------------------------------------
  2360. 0800-08FF ----    I/O port access registers for extended CMOS RAM or SRAM
  2361.         (256 bytes at a time)
  2362.         Sometimes plain text can be seen here.
  2363.  
  2364. -------------------------------------------------------------------------------
  2365. 0800-08FF ----  reserved for EISA system motherboard
  2366.  
  2367. -------------------------------------------------------------------------------
  2368. 0A20-0A23 ----    Token Ring (adapter 1)
  2369. 0A24-0A27 ----    Token Ring (adapter 2)
  2370.  
  2371. -------------------------------------------------------------------------------
  2372. 0AE2-0AE3 ----    cluster (adapter 2)
  2373. 0B90-0B93 ----    cluster (adapter 2)
  2374.  
  2375. -------------------------------------------------------------------------------
  2376. 0C00    r/w    page register to write to SRAM or I/O
  2377.  
  2378. -------------------------------------------------------------------------------
  2379. 0C00-0CFF ----  reserved for EISA system motherboard
  2380.  
  2381. -------------------------------------------------------------------------------
  2382. 0C7C        bit 7-4 (Compaq)
  2383.  
  2384. -------------------------------------------------------------------------------
  2385. 0C80-0C83 ----    EISA system board ID registers
  2386.  
  2387. -------------------------------------------------------------------------------
  2388. 1000-10FF ----  available for EISA slot 1
  2389.  
  2390. -------------------------------------------------------------------------------
  2391. 1390-1393 ----    cluster (adapter 3)
  2392.  
  2393. -------------------------------------------------------------------------------
  2394. 1400-14FF ----  available for EISA slot 1
  2395.  
  2396. -------------------------------------------------------------------------------
  2397. 1800-18FF ----  available for EISA slot 1
  2398.  
  2399. -------------------------------------------------------------------------------
  2400. 1C00-1CFF ----  available for EISA slot 1
  2401.  
  2402. -------------------------------------------------------------------------------
  2403. 1C80-1C8F ----  VESA XGA Video in EISA slot 1
  2404.  
  2405. 1C80-1C83 r/w    EISA Video ID
  2406. 1C84    r/w    EISA Video expansion board control    
  2407. 1C85    r/w    EISA Setup control
  2408. 1C88    r/w    EISA Video Programmable Option Select 0
  2409. 1C89-1C8F r/w    EISA Video Programmable Option Select 1-7
  2410.  
  2411. -------------------------------------------------------------------------------
  2412. 2000-20FF ----  available for EISA slot 2
  2413.  
  2414. -------------------------------------------------------------------------------
  2415. 2100-210F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (first installed)
  2416. 2110-211F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (second installed)
  2417. 2120-212F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (third installed)
  2418. 2130-213F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (fourth installed)
  2419. 2140-214F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (fifth installed)
  2420. 2150-215F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (sixth installed)
  2421. 2160-216F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (seventh installed)
  2422. 2170-217F ----    IBM XGA (eXtended Graphics Adapter  8514/A) (eighth installed)
  2423.  
  2424. -------------------------------------------------------------------------------
  2425. 2100      ----  XGA Video Operating Mode Register
  2426.  
  2427. Note:    this port is for the first XGA in the system; 2110-2170 are used for
  2428.       the second through eighth XGAs
  2429.  
  2430. -------------------------------------------------------------------------------
  2431. 2101      ----  XGA VIdeo Aperture Control
  2432.  
  2433. Note:    this port is for the first XGA in the system; 2111-2171 are used for
  2434.       the second through eighth XGAs
  2435.  
  2436. -------------------------------------------------------------------------------
  2437. 2102-2103 ----  XGA ???
  2438.  
  2439. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2440.       the second through eighth XGAs
  2441.  
  2442. -------------------------------------------------------------------------------
  2443. 2104      ----  XGA Video Interrupt Enable
  2444.  
  2445. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2446.       the second through eighth XGAs
  2447.  
  2448. -------------------------------------------------------------------------------
  2449. 2105      ----  XGA Video Interrupt Status
  2450.  
  2451. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2452.       the second through eighth XGAs
  2453.  
  2454. -------------------------------------------------------------------------------
  2455. 2106      ----  XGA Video Virtual Memory Control
  2456.  
  2457. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2458.       the second through eighth XGAs
  2459.  
  2460. -------------------------------------------------------------------------------
  2461. 2107      ----  XGA Video Virtual Memory Interrupt Status
  2462.  
  2463. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2464.       the second through eighth XGAs
  2465.  
  2466. -------------------------------------------------------------------------------
  2467. 2108      ----  XGA Video Aperture Index
  2468.  
  2469. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2470.       the second through eighth XGAs
  2471.  
  2472. -------------------------------------------------------------------------------
  2473. 2109      ----    XGA Video Memory Access Mode
  2474.  
  2475. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2476.       the second through eighth XGAs
  2477.  
  2478. -------------------------------------------------------------------------------
  2479. 210A      ----  XGA Video Index for Data
  2480.  
  2481. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2482.       the second through eighth XGAs
  2483.  
  2484. -------------------------------------------------------------------------------
  2485. 210B      ----  XGA Video Data (byte)
  2486.  
  2487. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2488.       the second through eighth XGAs
  2489.  
  2490. -------------------------------------------------------------------------------
  2491. 210C-210F ----    XGA Video Data (word/dword)
  2492.  
  2493. Note:    this port is for the first XGA in the system; 211x-217x are used for
  2494.       the second through eighth XGAs
  2495.  
  2496. -------------------------------------------------------------------------------
  2497. 2110-217F ----  secondary XGA adapters (see individual entries above)
  2498.  
  2499. -------------------------------------------------------------------------------
  2500. 2390-2393 ----    cluster (adapter 4)
  2501.  
  2502. -------------------------------------------------------------------------------
  2503. 2400-24FF ----  available for EISA slot 2
  2504.  
  2505. -------------------------------------------------------------------------------
  2506. 27C6    r/w    LCD timeout in minutes (Compaq LTE Lite)
  2507.  
  2508. -------------------------------------------------------------------------------
  2509. 2800-28FF ----  available for EISA slot 2
  2510.  
  2511. -------------------------------------------------------------------------------
  2512. 2C80-2C8F ----  VESA XGA Video in EISA slot 2 (see 1C80-1C8F)
  2513.  
  2514. -------------------------------------------------------------------------------
  2515. 3000-30FF ----  available for EISA slot 3
  2516.  
  2517. -------------------------------------------------------------------------------
  2518. 3220-3227 ----    serial port 3, description same as 03F8 (MCA)
  2519. 3228-322F ----    serial port 4, description same as 03F8 (MCA)
  2520.  
  2521. -------------------------------------------------------------------------------
  2522. 3400-34FF ----  available for EISA slot 3
  2523.  
  2524. -------------------------------------------------------------------------------
  2525. 3540-354F ----    IBM SCSI (Small Computer System Interface) adapter
  2526. 3550-355F ----    IBM SCSI (Small Computer System Interface) adapter
  2527. 3560-356F ----    IBM SCSI (Small Computer System Interface) adapter
  2528. 3570-357F ----    IBM SCSI (Small Computer System Interface) adapter
  2529.  
  2530. -------------------------------------------------------------------------------
  2531. 3800-38FF ----  available for EISA slot 3
  2532.  
  2533. -------------------------------------------------------------------------------
  2534. 3C00-3CFF ----  available for EISA slot 3
  2535.  
  2536. -------------------------------------------------------------------------------
  2537. 3C80-3C8F ----  VESA XGA Video in EISA slot 3
  2538.  
  2539. 3C80-3C83 r/w    EISA Video ID
  2540. 3C84    r/w    EISA Video expansion board control    
  2541. 3C85    r/w    EISA Setup control
  2542. 3C88    r/w    EISA Video Programmable Option Select 0
  2543. 3C89-3C8F r/w    EISA Video Programmable Option Select 1-7
  2544.  
  2545. SeeAlso: 1C80-1C8F,2C80-2C8F,7C80-7C8F
  2546.  
  2547. -------------------------------------------------------------------------------
  2548. 4000-40FF ----  available for EISA slot 4
  2549.  
  2550. -------------------------------------------------------------------------------
  2551. 4220-4227 ----    serial port, description same as 03F8
  2552. 4228-422F ----    serial port, description same as 03F8
  2553.  
  2554. -------------------------------------------------------------------------------
  2555. 42E0-42EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2556.  
  2557. 42E1    r/w    GPIB (adapter 2)
  2558.  
  2559. -------------------------------------------------------------------------------
  2560. 4400-44FF ----  available for EISA slot 4
  2561.  
  2562. -------------------------------------------------------------------------------
  2563. 46E8      ----  VGA video adapter enable
  2564.  
  2565. 46E8    r/w    enable flags
  2566.         bits 7-5 unused or vendor-specific
  2567.         bit 4: setup for POS registers (MCA)
  2568.         bit 3: enable video I/O ports and video buffer
  2569.         bits 2-0 unused or vendor-specific
  2570.  
  2571. Note:    IBM uses this port for adapter-card VGAs only, and port 03C3 for
  2572.       motherboard VGA only
  2573.  
  2574. SeeAlso: 03C3
  2575.  
  2576. -------------------------------------------------------------------------------
  2577. 4800-48FF ----  available for EISA slot 4
  2578.  
  2579. -------------------------------------------------------------------------------
  2580. 4C00-4CFF ----  available for EISA slot 4
  2581.  
  2582. -------------------------------------------------------------------------------
  2583. 4C80-4C8F ----  VESA XGA Video in EISA slot 4 (see 3C80-3C8F)
  2584.  
  2585. SeeAlso: 1C80-1C8F,6C80-6C8F
  2586.  
  2587. -------------------------------------------------------------------------------
  2588. 5000-50FF ----  available for EISA slot 5
  2589.  
  2590. -------------------------------------------------------------------------------
  2591. 5220-5227 ----    serial port, description same as 03F8
  2592. 5228-522F ----    serial port, description same as 03F8
  2593.  
  2594. -------------------------------------------------------------------------------
  2595. 5400-54FF ----  available for EISA slot 5
  2596.  
  2597. -------------------------------------------------------------------------------
  2598. 5800-58FF ----  available for EISA slot 5
  2599.  
  2600. -------------------------------------------------------------------------------
  2601. 5C00-5CFF ----  available for EISA slot 5
  2602.  
  2603. -------------------------------------------------------------------------------
  2604. 5C80-5C8F ----  VESA XGA Video in EISA slot 5
  2605.  
  2606. 5C80-5C83 r/w    EISA Video ID
  2607. 5C84    r/w    EISA Video expansion board control    
  2608. 5C85    r/w    EISA Setup control
  2609. 5C88    r/w    EISA Video Programmable Option Select 0
  2610. 5C89-5C8F r/w    EISA Video Programmable Option Select 1-7
  2611.  
  2612. SeeAlso: 2C80-2C8F,4C80-4C8F,6C80-6C8F
  2613.  
  2614. -------------------------------------------------------------------------------
  2615. 6000-60FF ----  available for EISA slot 6
  2616.  
  2617. -------------------------------------------------------------------------------
  2618. 62E0-62EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2619.  
  2620. 62E1    r/w    GPIB (adapter 3)
  2621.  
  2622. -------------------------------------------------------------------------------
  2623. 6400-64FF ----  available for EISA slot 6
  2624.  
  2625. -------------------------------------------------------------------------------
  2626. 6800-68FF ----  available for EISA slot 6
  2627.  
  2628. -------------------------------------------------------------------------------
  2629. 6C00-6CFF ----  available for EISA slot 6
  2630.  
  2631. -------------------------------------------------------------------------------
  2632. 6C80-6C8F ----  VESA XGA Video in EISA slot 1
  2633.  
  2634. 6C80-6C83 r/w    EISA Video ID
  2635. 6C84    r/w    EISA Video expansion board control    
  2636. 6C85    r/w    EISA Setup control
  2637. 6C88    r/w    EISA Video Programmable Option Select 0
  2638. 6C89-1C8F r/w    EISA Video Programmable Option Select 1-7
  2639.  
  2640. SeeAlso: 1C80-1C8F,2C80-2C8F,5C80-5C8F
  2641.  
  2642. -------------------------------------------------------------------------------
  2643. 7000-70FF ----  available for EISA slot 7
  2644.  
  2645. -------------------------------------------------------------------------------
  2646. 7400-74FF ----  available for EISA slot 7
  2647.  
  2648. -------------------------------------------------------------------------------
  2649. 7800-78FF ----  available for EISA slot 7
  2650.  
  2651. -------------------------------------------------------------------------------
  2652. 7C00-7CFF ----  available for EISA slot 7
  2653.  
  2654. -------------------------------------------------------------------------------
  2655. 7C80-7C8F ----  VESA XGA Video in EISA slot 7
  2656.  
  2657. 7C80-7C83 r/w    EISA Video ID
  2658. 7C84    r/w    EISA Video expansion board control    
  2659. 7C85    r/w    EISA Setup control
  2660. 7C88    r/w    EISA Video Programmable Option Select 0
  2661. 7C89-7C8F r/w    EISA Video Programmable Option Select 1-7
  2662.  
  2663. SeeAlso: 1C80-1C8F, 6C80-6C8F
  2664.  
  2665. -------------------------------------------------------------------------------
  2666. 8000-80FF ----  available for EISA slot 8
  2667.  
  2668. -------------------------------------------------------------------------------
  2669. 82E0-82EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2670.  
  2671. 82E1    r/w    GPIB (adapter 4)
  2672.  
  2673. -------------------------------------------------------------------------------
  2674. 82F8-82FF ----    serial port, description same as 03F8
  2675. 83F8-83FF ----    serial port, description same as 03F8
  2676.  
  2677. -------------------------------------------------------------------------------
  2678. 8400-84FF ----  available for EISA slot 8
  2679.  
  2680. -------------------------------------------------------------------------------
  2681. 8800-88FF ----  available for EISA slot 8
  2682.  
  2683. -------------------------------------------------------------------------------
  2684. 8C00-8CFF ----  available for EISA slot 8
  2685.  
  2686. -------------------------------------------------------------------------------
  2687. 9000-90FF ----  available for EISA slot 9
  2688.  
  2689. -------------------------------------------------------------------------------
  2690. 9400-94FF ----  available for EISA slot 9
  2691.  
  2692. -------------------------------------------------------------------------------
  2693. 9800-98FF ----  available for EISA slot 9
  2694.  
  2695. -------------------------------------------------------------------------------
  2696. 9C00-9CFF ----  available for EISA slot 9
  2697.  
  2698. -------------------------------------------------------------------------------
  2699. A220      ????    soundblaster support in AMI Hi-Flex BIOS  ????
  2700.  
  2701. -------------------------------------------------------------------------------
  2702. A2E0-A2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2703.  
  2704. A2E1    r/w    GPIB (adapter 5)
  2705.  
  2706. -------------------------------------------------------------------------------
  2707. AFFF    r/w    plane 0-3 system latch (video register)
  2708.  
  2709. -------------------------------------------------------------------------------
  2710. B220-B227 ----    serial port, description same as 03F8
  2711. B228-B22F ----    serial port, description same as 03F8
  2712.  
  2713. -------------------------------------------------------------------------------
  2714. C220-C227 ----    serial port, description same as 03F8
  2715. C228-C22F ----    serial port, description same as 03F8
  2716.  
  2717. -------------------------------------------------------------------------------
  2718. D220-D227 ----    serial port, description same as 03F8
  2719. D228-D22F ----    serial port, description same as 03F8
  2720.  
  2721. -------------------------------------------------------------------------------
  2722. C2E0-C2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2723.  
  2724. C2E1    r/w    GPIB (adapter 6)
  2725.  
  2726. -------------------------------------------------------------------------------
  2727. E2E0-E2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2728.  
  2729. E2E1    r/w    GPIB (adapter 7)
  2730.  
  2731.  
  2732. -------------------------------------------------------------------------------
  2733.  
  2734. MEMORY-MAPPED ADDRESSES
  2735.  
  2736. -------------------------------------------------------------------------------
  2737. 80C00000  Compaq Deskpro 386 system memory board register
  2738.  
  2739. 80C00000 w    RAM relocation register
  2740.         bit 7-2       Reserved, always write 1's.
  2741.         bit 1 = 0  Write-protect 128-Kbyte RAM at FE0000.
  2742.               = 1  Do not write-protect RAM at FE0000.
  2743.         bit 0 = 0  Relocate 128-Kbyte block at FE0000 to address 0E0000
  2744.               = 1  128-Kbyte RAM is addressed only at FE0000.
  2745.  
  2746. 80C00000 r    Diagnostics register
  2747.         bit 7    = 0  memory expansion board is installed
  2748.         bit 6    = 0  second 1 MB of system memory board is installed
  2749.         bit 5-4 = 00 base memory set to 640 KB
  2750.               01 invalid
  2751.               10 base memory set to 512 KB
  2752.               11 base memory set to 256 KB
  2753.         bit 3    = 0  parity error in byte 3
  2754.         bit 2    = 0  parity error in byte 2
  2755.         bit 1    = 0  parity error in byte 1
  2756.         bit 0    = 0  parity error in byte 0 (in 32-bit double word)
  2757.  
  2758. -------------------------------------------------------------------------------
  2759. C0000000-C000FFFF    Weitek "Abacus" math coprocessor
  2760.  
  2761. -------------------------------------------------------------------------------
  2762.  
  2763.  
  2764.  
  2765.  
  2766. -------------CREDITS-------------------------
  2767. Chuck Proctor <71534.2302@CompuServe.COM>
  2768.  
  2769. [Some of the information in this list was extracted from Frank van Gilluwe's
  2770. _The_Undocumented_PC_, a must-have book for anyone programming down to the
  2771. "bare metal" of a PC.]
  2772.  
  2773. [Some of the information in this list from the shareware version of Dave
  2774. Williams' DOSREF, v3.0]
  2775.