home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 13 / CD_ASCQ_13_0494.iso / maj / 4266 / ports.lst < prev    next >
File List  |  1994-02-06  |  79KB  |  2,115 lines

  1. [This file was provided by Wim Osterholt (2:512/56.198).]
  2. Last Change: 2/6/94
  3.  
  4.  
  5.  
  6.         XT, AT and PS/2     I/O port addresses
  7.  
  8.       Do NOT consider this information as complete and accurate.
  9.       If you want to do harware programming check ALWAYS the
  10.       appropriate data sheets. Be aware that erroneously programming
  11.       can put your hardware or your data at risk. 
  12.  
  13.       There is a memory mapped address in use for I/O functions of which I
  14.       think it should be mentioned here. See at the end of this list.
  15.  
  16. -------------------------------------------------------------------------------
  17. 0000-001F ----    DMA 1    (first Direct Memory Access controller 8237)
  18.  
  19. 0000    r/w    DMA channel 0  address    byte  0, then byte 1.
  20. 0001    r/w    DMA channel 0 word count byte 0, then byte 1.
  21. 0002    r/w    DMA channel 1  address    byte  0, then byte 1.
  22. 0003    r/w    DMA channel 1 word count byte 0, then byte 1.
  23. 0004    r/w    DMA channel 2  address    byte  0, then byte 1.
  24. 0005    r/w    DMA channel 2 word count byte 0, then byte 1.
  25. 0006    r/w    DMA channel 3  address    byte  0, then byte 1.
  26. 0007    r/w    DMA channel 3 word count byte 0, then byte 1.
  27.  
  28. 0008    r    DMA channel 0-3 status register
  29.          bit 7 = 1  channel 3 request
  30.          bit 6 = 1  channel 2 request
  31.          bit 5 = 1  channel 1 request
  32.          bit 4 = 1  channel 0 request
  33.          bit 3 = 1  channel terminal count on channel 3
  34.          bit 2 = 1  channel terminal count on channel 2
  35.          bit 1 = 1  channel terminal count on channel 1
  36.          bit 0 = 1  channel terminal count on channel 0
  37.  
  38. 0008    w    DMA channel 0-3 command register
  39.          bit 7 = 1  DACK sense active high
  40.                = 0  DACK sense active low
  41.          bit 6 = 1  DREQ sense active high
  42.                = 0  DREQ sense active low
  43.          bit 5 = 1  extended write selection
  44.                = 0  late write selection
  45.          bit 4 = 1  rotating priority
  46.                = 0  fixed priority
  47.          bit 3 = 1  compressed timing
  48.                = 0  normal timing
  49.          bit 2 = 1  enable controller
  50.                = 0  enable memory-to-memory
  51.  
  52. 0009    w    DMA write request register
  53.  
  54. 000A    r/w    DMA channel 0-3 mask register
  55.          bit 7-3 = 0   reserved
  56.          bit 2     = 0   clear mask bit
  57.              = 1   set mask bit
  58.          bit 1-0 = 00  channel 0 select
  59.              = 01  channel 1 select
  60.              = 10  channel 2 select
  61.              = 11  channel 3 select
  62.  
  63. 000B    w    DMA channel 0-3 mode register
  64.          bit 7-6 = 00  demand mode
  65.              = 01  single mode
  66.              = 10  block mode
  67.              = 11  cascade mode
  68.          bit 5     = 0   address increment select
  69.              = 1   address decrement select
  70.          bit 3-2 = 00  verify operation
  71.              = 01  write to memory
  72.              = 10  read from memory
  73.              = 11  reserved
  74.          bit 1-0 = 00  channel 0 select
  75.              = 01  channel 1 select
  76.              = 10  channel 2 select
  77.              = 11  channel 3 select
  78.  
  79. 000C    w    DMA clear byte pointer flip-flop
  80. 000D    r    DMA read temporary register
  81. 000D    w    DMA master clear
  82. 000E    w    DMA clear mask register
  83. 000F    w    DMA write mask register
  84.  
  85. -------------------------------------------------------------------------------
  86. 0010-001F ----    DMA controller (8237) on PS/2 model 60 & 80
  87.  
  88. -------------------------------------------------------------------------------
  89. 0018    w    PS/2 extended function register
  90.  
  91. -------------------------------------------------------------------------------
  92. 001A        PS/2 extended function execute
  93.  
  94. -------------------------------------------------------------------------------
  95. 0020-003F ----    PIC 1    (Programmable Interrupt Controller 8259)
  96.  
  97. 0020    w    PIC initialization command word ICW1
  98.          bit 7-5 = 0  only used in 80/85 mode
  99.          bit 4     = 1  ICW1 is being issued
  100.          bit 3     = 0  edge triggered mode
  101.              = 1  level triggered mode
  102.          bit 2     = 0  successive interrupt vectors use 8 bytes
  103.              = 1  successive interrupt vectors use 4 bytes
  104.          bit 1     = 0  cascade mode
  105.              = 1  single mode, no ICW3 needed
  106.          bit 0     = 0  no ICW4 needed
  107.              = 1  ICW4 needed
  108.  
  109. 0021    w    PIC  ICW2,ICW3,ICW4 after ICW1 to 0020
  110.         ICW2:
  111.          bit 7-3 = address lines A0-A3 of base vector address for PIC
  112.          bit 2-0 = reserved
  113.         ICW3:
  114.          bit 7-0 = 0  slave controller not attached to corresponding
  115.                   interrupt pin
  116.              = 1  slave controller attached to corresponding
  117.                   interrupt pin
  118.         ICW4:
  119.          bit 7-5 = 0  reserved
  120.          bit 4     = 0  no special fully-nested mode
  121.              = 1  special fully-nested mode
  122.          bit 3-2 = 0x nonbuffered mode
  123.              = 10 buffered mode/slave
  124.              = 11 buffered mode/master
  125.          bit 1     = 0  normal EOI
  126.              = 1  Auto EOI
  127.          bit 0     = 0  8085 mode
  128.              = 1  8086/8088 mode
  129.  
  130. 0021    r/w    PIC master interrupt mask register
  131.         OCW1:
  132.          bit 7 = 0  enable parallel printer interrupt
  133.          bit 6 = 0  enable diskette interrupt
  134.          bit 5 = 0  enable fixed disk interrupt
  135.          bit 4 = 0  enable serial port 1 interrupt
  136.          bit 3 = 0  enable serial port 2 interrupt
  137.          bit 2 = 0  enable video interrupt
  138.          bit 1 = 0  enable keyboard, mouse, RTC interrupt
  139.          bit 0 = 0  enable timer interrupt
  140.         OCW2:
  141.          bit 7-5 = 000    rotate in auto EOI mode (clear)
  142.              = 001    nonspecific EOI
  143.              = 010    no operation
  144.              = 011    specific EOI
  145.              = 100    rotate in auto EOI mode (set)
  146.              = 101    rotate on nonspecific EOI command
  147.              = 110    set priority command
  148.              = 111    rotate on specific EOI command
  149.          bit 4     = 0    reserved
  150.          bit 3     = 0    reserved
  151.          bit 2-0    interrupt request to which the command applies
  152.  
  153. 0020    r    PIC  interrupt request/in-service registers by OCW3
  154.         request register:
  155.          bit 7-0 = 0  no active request for the corresponding int. line
  156.              = 1  active request for corresponding interrupt line
  157.         in-service register:
  158.          bit 7-0 = 0  corresponding line not currently being serviced
  159.              = 1  corresponding int. line currently being serviced
  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. 0038-003F ----    PC radio by CoZet Info Systems
  197.         The I/O address range is dipswitch selectable from:
  198.            038-03F and 0B0-0BF
  199.            078-07F and 0F9-0FF
  200.            138-13F and 1B0-1BF
  201.            178-17F and 1F9-1FF
  202.            238-23F and 2B0-2BF
  203.            278-27F and 2F0-2FF
  204.            338-33F and 3B0-3BF
  205.            378-37F and 3F0-3FF
  206.         All of these addresses show a readout of FF in initial state.
  207.         Once started, all of the addresses show     FB, whatever might
  208.         happen.
  209.  
  210. -------------------------------------------------------------------------------
  211. 0040-005F ----    PIT  (Programmable Interrupt Timer  8253, 8254)
  212.          XT & AT uses 40-43    PS/2 uses 40, 42,43,44, 47
  213.  
  214. 0040    r/w    PIT  counter 0, counter divisor          (XT, AT, PS/2)
  215. 0041    r/w    PIT  counter 1, RAM refresh counter   (XT, AT)
  216. 0042    r/w    PIT  counter 2, cassette & speaker    (XT, AT, PS/2)
  217.  
  218. 0043    r/w    PIT  mode port, control word register for counters 0-2
  219.          bit 7-6 = 00  counter 0 select
  220.              = 01  counter 1 select      (not PS/2)
  221.              = 10  counter 2 select
  222.          bit 5-4 = 00  counter latch command
  223.              = 01  read/write counter bits 0-7 only
  224.              = 10  read/write counter bits 8-15 only
  225.              = 11  read/write counter bits 0-7 first, then 8-15
  226.          bit 3-1 = 000 mode 0 select
  227.              = 001 mode 1 select - programmable one shot
  228.              = x10 mode 2 select - rate generator
  229.              = x11 mode 3 select - square wave generator
  230.              = 100 mode 4 select - software triggered strobe
  231.              = 101 mode 5 select - hardware triggered strobe
  232.          bit 0     = 0   binary counter 16 bits
  233.              = 1   BCD counter
  234.  
  235. 0044    r/w    PIT  counter 3 (PS/2, EISA)
  236.         used as fail-safe timer. generates an NMI on time out.
  237.         for user generated NMI see at 0462.
  238.  
  239. 0047    w    PIT  control word register counter 3 (PS/2, EISA)
  240.          bit 7-6 = 00  counter 3 select
  241.              = 01  reserved
  242.              = 10  reserved
  243.              = 11  reserved
  244.          bit 5-4 = 00  counter latch command counter 3
  245.              = 01  read/write counter bits 0-7 only
  246.              = 1x  reserved
  247.          bit 3-0 = 00
  248.  
  249. 0048        EISA
  250. 004A        EISA
  251. 004B        EISA
  252.  
  253. -------------------------------------------------------------------------------
  254. 0060-006F ----    Keyboard controller (8041, 8042)  (or PPI (8255) on XT)
  255.          XT uses 60-63,     AT uses 60-64
  256.  
  257.          AT keyboard controller input port bit definitions
  258.           bit 7      = 0  keyboard inhibited
  259.           bit 6      = 0  CGA, else MDA
  260.           bit 5      = 0  manufacturing jumper installed
  261.           bit 4      = 0  system RAM 512K, else 640K
  262.           bit 3-0      reserved
  263.  
  264.          AT keyboard controller input port bit definitions by Compaq
  265.           bit 7      = 0  security lock is locked
  266.           bit 6      = 0  Compaq dual-scan display, 1=non-Compaq display
  267.           bit 5      = 0  system board dip switch 5 is ON
  268.           bit 4      = 0  auto speed selected, 1=high speed selected
  269.           bit 3      = 0  slow (4MHz), 1 = fast (8MHz)
  270.           bit 2      = 0  80287 installed, 1= no NDP installed
  271.           bit 1-0      reserved
  272.  
  273.          AT keyboard controller output port bit definitions
  274.           bit 7 =    keyboard data output
  275.           bit 6 =    keyboard clock output
  276.           bit 5 = 0  input buffer full
  277.           bit 4 = 0  output buffer empty
  278.           bit 3 =    reserved (see note)
  279.           bit 2 =    reserved (see note)
  280.           bit 1 =    gate A20
  281.           bit 0 =    system reset
  282.         Note:    bits 2 and 3 are the turbo speed switch or password
  283.               lock on Award/AMI/Phoenix BIOSes.  These bits make
  284.               use of nonstandard keyboard controller BIOS
  285.               functionality to manipulate
  286.                 pin 23 (8041 port 22) as turbo switch for AWARD
  287.                 pin 35 (8041 port 15) as turbo switch/pw lock for
  288.                 Phoenix
  289.  
  290. 0060    r/w    KB controller data port or keyboard input buffer (ISA, EISA)
  291.         should only be read from after status port bit0 = 1
  292.         should only be written to if status port bit1 = 0
  293.         keyboard commands (data goes also to port 0060):
  294.          ED    dbl   set/reset mode indicators Caps Num Scrl
  295.          EE    sngl  diagnostic echo. returns EE.
  296.          EF-F2    sngl  NOP (No OPeration). reserved for future use
  297.          F3    dbl   set typematic rate/delay
  298.          F4    sngl  enable keyboard
  299.          F5    sngl  disable keyboard. set default parameters
  300.          F6    sngl  set default parameters
  301.          F7-FD    sngl  NOP
  302.          FE    sngl  resend last scancode
  303.          FF    sngl  perform internal power-on reset function
  304.  
  305.  
  306. 0060    r    KeyBoard or KB controller data output buffer (via PPI on XT)
  307.  
  308. 0061    w    KB controller port B (ISA, EISA)   (PS/2 port A is at 0092)
  309.         system control port for compatibility with 8255
  310.          bit 7    (1= IRQ 0 reset )
  311.          bit 6-4    reserved
  312.          bit 3 = 1  channel check enable
  313.          bit 2 = 1  parity check enable
  314.          bit 1 = 1  speaker data enable
  315.          bit 0 = 1  timer 2 gate to speaker enable
  316.  
  317. 0061    r    KB controller port B control register (ISA, EISA)
  318.         system control port for compatibility with 8255
  319.          bit 7     parity check occurred
  320.          bit 6     channel check occurred
  321.          bit 5     mirrors timer 2 output condition
  322.          bit 4     toggles with each refresh request
  323.          bit 3     channel check status
  324.          bit 2     parity check status
  325.          bit 1     speaker data status
  326.          bit 0     timer 2 gate to speaker status
  327.  
  328. 0061    w    PPI  Programmable Peripheral Interface 8255 (XT only)
  329.         system control port
  330.          bit 7 = 1  clear keyboard
  331.          bit 6 = 0  hold keyboard clock low
  332.          bit 5 = 0  I/O check enable
  333.          bit 4 = 0  RAM parity check enable
  334.          bit 3 = 0  read low switches
  335.          bit 2        reserved, often used as turbo switch
  336.          bit 1 = 1  speaker data enable
  337.          bit 0 = 1  timer 2 gate to speaker enable
  338.  
  339. 0062    r/w    PPI (XT only)
  340.          bit 7 = 1  RAM parity check
  341.          bit 6 = 1  I/O channel check
  342.          bit 5 = 1  timer 2 channel out
  343.          bit 4        reserved 
  344.          bit 3 = 1  system board RAM size type 1
  345.          bit 2 = 1  system board RAM size type 2
  346.          bit 1 = 1  coprocessor installed
  347.          bit 0 = 1  loop in POST
  348.  
  349. 0063    r/w    PPI (XT only) command mode register  (read dipswitches)
  350.          bit 7-6 = 00  1 diskette drive
  351.              = 01  2 diskette drives
  352.              = 10  3 diskette drives
  353.              = 11  4 diskette drives
  354.          bit 5-4 = 00  reserved
  355.              = 01  40*25 color (mono mode)
  356.              = 10  80*25 color (mono mode)
  357.              = 11  MDA 80*25
  358.          bit 3-2 = 00  256K (using 256K chips)
  359.              = 01  512K (using 256K chips)
  360.              = 10  576K (using 256K chips)
  361.              = 11  640K (using 256K chips)
  362.          bit 3-2 = 00  64K  (using 64K chips)
  363.              = 01  128K (using 64K chips)
  364.              = 10  192K (using 64K chips)
  365.              = 11  256K (using 64K chips)
  366.          bit 1-0       reserved
  367.  
  368. 0064    r    KB controller read status (ISA, EISA)
  369.          bit 7 = 1 parity error on transmission from keyboard
  370.          bit 6 = 1 receive timeout
  371.          bit 5 = 1 transmit timeout
  372.          bit 4 = 0 keyboard inhibit
  373.          bit 3 = 1 data in input register is command
  374.              0 data in input register is data
  375.          bit 2 = 0 system flag status 0=power up or reset 1=selftest OK
  376.          bit 1 = 1 input buffer full (input 60/64 has data for 8042)
  377.          bit 0 = 1 output buffer full (output 60 has data for system)
  378.  
  379. 0064    r     KB controller read status by Compaq
  380.          bit 7 = 1 parity error detected (11-bit format only). If an
  381.                error is detected, a Resend command is sent to the
  382.                keyboard once only, as an attempt to recover.
  383.          bit 6 = 1 receive timeout. transmission didn't finish in 2mS.
  384.          bit 5 = 1 transmission timeout error
  385.                 bit 5,6,7  cause
  386.                 1 0 0  No clock
  387.                 1 1 0  Clock OK, no response
  388.                 1 0 1  Clock OK, parity error
  389.          bit 4 = 0 security lock engaged
  390.          bit 3 = 1 data in OUTPUT register is command
  391.              0 data in OUTPUT register is data
  392.          bit 2 = 0 system flag status 0=power up or reset 1=soft reset
  393.          bit 1 = 1 input buffer full (output 60/64 has data)
  394.          bit 0 = 0 no new data in buffer (input 60 has data)
  395.  
  396. 0064    w    KB controller input buffer (ISA, EISA)
  397.         KB controller commands (data goes to port 0060):
  398.          20    read  read byte zero of internal RAM, this is the
  399.                   last KB command send to 8041
  400.               Compaq  Put current command byte on port 0060
  401.                 command structure:
  402.                 bit 7    reserved
  403.                 bit 6 = 1 convert KB codes to 8086 scan codes
  404.                 bit 5 = 0 use 11-bit codes, 1=use 8086 codes
  405.                 bit 4 = 0 enable keyboard, 1=disable keyboard
  406.                 bit 3 = 1 ignore security lock state
  407.                 bit 2      this bit goes into bit2 status reg.
  408.                 bit 1 = 0 reserved
  409.                 bit 0 = 1 generate int. when output buffer full
  410.          21-3F    read  reads the byte specified in the lower 5 bits of
  411.                   the command in the 8041's internal RAM
  412.          60-7F    dbl   writes the data byte to the address specified in
  413.                   the 5 lower bits of the command.
  414.  
  415.                   Alternate description KB IO command 60 summary:
  416.                    bit7 = 0 reserved
  417.                    bit6 =    IBM PC compatibility mode
  418.                    bit5 =    IBM PC mode
  419.                    bit4 =    disable kb
  420.                    bit3 =    inhibit override
  421.                    bit2 =    system flag
  422.                    bit1 = 0 reserved
  423.                    bit0 =    enableoutput buffer full interrupt
  424.  
  425.          60   Compaq  Load new command (60 to [64], command to [60])
  426.          A1   Compaq  unknown speedfunction ??
  427.          A2   Compaq  unknown speedfunction ??
  428.          A3   Compaq  Enable system speed control
  429.          A4   Compaq  Toggle speed
  430.          A5   Compaq  Special reed. the 8042 places the real values
  431.                   of port 2 except for bits 4 and 5 wich are given
  432.                   a new definition in the output buffer. No output
  433.                   buffer full is generated.
  434.                 if bit 5 = 0, a 9-bit keyboard is in use
  435.                 if bit 5 = 1, an 11-bit keyboard is in use
  436.                 if bit 4 = 0, outp-buff-full interrupt disabled
  437.                 if bit 4 = 1, output-buffer-full int. enabled
  438.          A6   Compaq  unknown speedfunction ??
  439.          AA    sngl  initiate self-test. will return 55 to data port
  440.               Compaq  Initializes ports 1 and 2, disables the keyboard
  441.                   and clears the buffer pointers. It then places
  442.                   55 in the output buffer.
  443.          AB    sngl  initiate interface test. result values:
  444.                    0 = no error
  445.                    1 = keyboard clock line stuck low
  446.                    2 = keyboard clock line stuck high
  447.                    3 = keyboard data line is stuck low
  448.                    4 = keyboard data line stuck high
  449.               Compaq   5 = Compaq diagnostic feature
  450.          AC    read  diagnostic dump. the contents of the 8041 RAM,
  451.                   output port, input port, status word are send.
  452.          AD    sngl  disable keyboard (sets bit 4 of commmand byte)
  453.          AE    sngl  enable keyboard  (resets bit 4 of commmand byte)
  454.          AF    AWARD Enhanced Command: read keyboard version
  455.          C0    read  read input port
  456.               Compaq  Places status of input port in output buffer. use
  457.                   this command only when the output buffer is empty
  458.          C1    AWARD Enhanced Command: poll input port Low nibble
  459.          C2    AWARD Enhanced Command: poll input port High nibble
  460.          D0    read  read output port
  461.               Compaq  Places byte in output port in output buffer. use
  462.                   this command only when the output buffer is empty
  463.          D1    dbl   write output port. next byte written  to 0060
  464.                   will be written to the 8041 output port
  465.               Compaq  The system speed bits are not set by this command
  466.                   use commands A1-A6 (!) for speed functions.
  467.          D2    AWARD Enhanced Command: write keyboard output buffer
  468.          D3    AWARD Enhanced Command: write pointing device out.buf.
  469.          D4    AWARD Enhanced Command: write to auxiliary device
  470.          DD    sngl  disable address line A20. default in Real Mode
  471.          DF    sngl  enable address line A20
  472.          E0    read  read test inputs. bit0 = T0 and bit1 = T1
  473.          Exx    AWARD Enhanced Command: active output port
  474.          ED   Compaq  This is a two part command to control the state
  475.                   of the NumLock CpasLock and ScrollLock LEDs
  476.                   The second byte contains the state to set LEDs.
  477.                 bit 7-3       reserved. should be set to 0.
  478.                 bit 2 = 0  Caps Lock LED off
  479.                 bit 1 = 0  Num Lock LED off
  480.                 bit 0 = 0  Scroll Lock LED off
  481.          F0-FF    sngl  pulse output port low for 6 microseconds.
  482.                   bits 0-3 contain the mask for the bits to be
  483.                   pulsed. a bit is pulsed if its mask bit is zero.
  484.                   bit0=system reset. Don't set to zero. Pulse only!
  485.  
  486. general note:     Keyboard controllers are widely different from each other.
  487.          You cannot generally exchange them between different machines.
  488. note on Award:     Derived from Award's Enhanced KB controller advertising sheet.
  489. note on Compaq:     Derived from the Compaq Deskpro 386 Tech. Ref. Guide.
  490.  
  491. 0065    r    communications port (Olivetti M24)
  492.  
  493. 0068    w    HP-Vectra  control buffer (HP commands)
  494. 0069    r    HP-Vectra  SVC (keyboard request SerViCe port)
  495. 006A    w    HP-Vectra  clear processing, done
  496.  
  497. 006C-006F    HP-HIL    (Human Interface Link = async. serial inputs 0-7)
  498.  
  499. -------------------------------------------------------------------------------
  500. 0070-007F ----    CMOS RAM/RTC (Real Time Clock  MC146818)
  501.  
  502. 0070    w    CMOS RAM index register port (ISA, EISA)
  503.          bit 7     = 1  NMI disabled
  504.              = 0  NMI enabled
  505.          bit 6-0      CMOS RAM index (64 bytes, sometimes 128 bytes)
  506.  
  507.         any write to 0070 should be followed by an action to 0071
  508.         or the RTC wil be left in an unknown state.
  509.  
  510. 0071    r/w    CMOS RAM data port (ISA, EISA)
  511.         RTC registers:
  512.         00    current second in BCD
  513.         01    alarm second   in BCD
  514.         02    current minute in BCD
  515.         03    alarm minute   in BCD
  516.         04    current hour in BCD
  517.         05    alarm hour   in BCD
  518.         06    day of week  in BCD
  519.         07    day of month in BCD
  520.         08    month in BCD
  521.         09    year  in BCD (00-99)
  522.         0A    status register A
  523.                bit 7 = 1  update in progress
  524.                bit 6-4 divider that identifies the time-based
  525.                 frequency
  526.                bit 3-0 rate selection output  frequency and int. rate
  527.         0B    status register B
  528.                bit 7 = 0  run
  529.                  = 1  halt
  530.                bit 6 = 1  enable periodic interrupt
  531.                bit 5 = 1  enable alarm interrupt
  532.                bit 4 = 1  enable update-ended interrupt
  533.                bit 3 = 1  enable square wave interrupt
  534.                bit 2 = 1  calendar is in binary format
  535.                  = 0  calendar is in BCD format
  536.                bit 1 = 1  24-hour mode
  537.                  = 0  12-hour mode
  538.                bit 0 = 1  enable daylight savings time. only in USA.
  539.                   useless in Europe. Some DOS versions clear
  540.                   this bit when you use the DAT/TIME command.
  541.         0C    status register C
  542.                bit 7 =      interrupt request flag
  543.                bit 6 =      peridoc interrupt flag
  544.                bit 5 =      alarm interrupt flag
  545.                bit 4 =      update interrupt flag
  546.                bit 3-0      reserved
  547.         0D    status register D
  548.                bit 7 = 1  Real-Time Clock has power
  549.                bit 6-0      reserved
  550.         0E    diagnostics status byte
  551.                bit 7 = 0  RTC lost power
  552.                bit 6 = 1  CMOS RAM checksum bad
  553.                bit 5 = 1  invalid configuration information at POST
  554.                bit 4 = 1  memory size error at POST
  555.                bit 3 = 1  fixed disk/adapter failed initialization
  556.                bit 2 = 1  CMOS RAM time found invalid
  557.                bit 1 = 1  adapters do not match configuration (EISA)
  558.                bit 0 = 1  time out reading an adapter ID (EISA)
  559.         0F    shutdown status byte
  560.                00 = normal execution of POST
  561.                01 = chip set initialization for real mode reentry
  562.                04 = jump to bootstrap code
  563.                05 = issue an EOI an JMP to Dword ptr at 40:67
  564.                06 = JMP to Dword ptrv at 40:67 without EOI
  565.                07 = return to INT15/87 (block move)
  566.                08 = return to POST memory test
  567.                09 = return to INT15/87 (block move)
  568.                0A = JMP to Dword ptr at 40:67 without EOI
  569.                0B = return IRETS through 40:67
  570.         10    diskette drive type for A: and B:
  571.                bit 7-4    drive type of drive 0
  572.                bit 3-0    drive type of drive 1
  573.                    = 0000       no drive
  574.                    = 0001       360K
  575.                    = 0010       1M2
  576.                    = 0011       720K
  577.                    = 0100       1M44
  578.                    = 0101-1111 reserved
  579.         11    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  580.                bit 7   = 1     Typematic Rate Programming
  581.                bit 6-5 = 00    Typematic Rate Delay 250 mSec
  582.                bit 4-0 = 00011 Typematic Rate 21.8 Chars/Sec
  583.         12    fixed disk drive type for drive 0 and drive 1
  584.                bit 7-4    drive type of drive 0
  585.                bit 3-0    drive type of drive 1
  586.                 if either of the nibbles equals 0F, then bytes
  587.                 19 an 1A are valid
  588.         13    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  589.                bit 7 = 1  Mouse Support Option
  590.                bit 6 = 1  Above 1 MB Memory Test disable
  591.                bit 5 = 1  Memory Test Tick Sound disable
  592.                bit 4 = 1  Memory Parity Error Check enable
  593.                bit 3 = 1  Hit <ESC> Message Display disabled
  594.                bit 2 = 1  Hard Disk Type 47 Data Area at address 0:300
  595.                bit 1 = 1  Wait For <F1> If Any Error enabled
  596.                bit 0 = 1  System Boot Up Num Lock is On
  597.         14    equipment byte
  598.                bit 7-6     diskette drives installed
  599.                    = 00  1 drive installed
  600.                    = 01  2 drives installed
  601.                    = 10  reserved
  602.                    = 11  reserved
  603.                bit 5-4     primary display
  604.                    = 00  adapter card with option ROM 
  605.                    = 01  40*25 color
  606.                    = 10  80*25 color
  607.                    = 11  monochrome
  608.                bit 3-2     reserved
  609.                bit 1   = 1  coprocessor installed (non-Weitek)
  610.                bit 0        diskette drive avaliable for boot
  611.         15    LSB of systemn base memory in Kb
  612.         16    MSB of systemn base memory in Kb
  613.         17    LSB of total extended memory in Kb
  614.         18    MSB of total extended memory in Kb
  615.         19    drive C extension byte
  616.         1A    drive D extension byte
  617.         1B-27 reserved
  618.         1B/1C word to 82335 RC1 roll compare register at [24]
  619.             (Phoenix)
  620.         1D/1E word to 82335 RC2 roll compare register at [26]
  621.             (Phoenix)
  622.         28    HP-Vectra checksum over 29-2D
  623.         29-2D reserved
  624.         29/2A word to Intel 82335 CC0 compare register at
  625.             [28](Phoenix)
  626.         2B/2C word send to 82335 CC1 compare register at [2A]
  627.             (Phoenix)
  628.         2D    AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  629.               (Phoenix BIOS checks for the values AA or CC)
  630.                bit 7 = 1  Weitek Processor Absent
  631.                bit 6 = 1  Floppy Drive Seek At Boot disabled
  632.                bit 5 = 1  System Boot Up Sequence  C:, A:
  633.                bit 4 = 1  System Boot Up Speed is high
  634.                bit 3 = 1  Cache Memory enabled
  635.                bit 2 = 1  Internal Cache Memory     <1>
  636.                bit 1-0      reserved
  637.         2E    CMOS MSB checksum over 10-2D
  638.         2F    CMOS LSB checksum over 10-2D
  639.         30    LSB of extended memory found above 1Mb at POST
  640.         31    MSB of extended memory found above 1Mb at POST
  641.         32    date century in BCD
  642.         33    information flags
  643.                bit4 = bit4 from CPU register CR0   (Phoenix)
  644.                   this bit is only known as INTEL RESERVED
  645.         34-3F reserved    
  646.         34     bit4 bit5 (Phoenix BIOS)
  647.         3D/3E word to 82335 MCR memory config register at
  648.             [22](Phoenix)
  649.         3D     bit3     base memsize 512/640  (Phoenix)
  650.         3E     bit7 = 1     relocate enable       (Phoenix)
  651.                bit1 = 1     shadow video enable   (Phoenix)
  652.                bit0 = 1     shadow BIOS enable    (Phoenix)
  653.  
  654.  
  655.         User Definable Drive Parameters are also stored in CMOS RAM:
  656.  
  657.         AMI (386sx BIOS 1989) first user definable drive (type 47)
  658.          1B  L cylinders
  659.          1C  H cylinders
  660.          1D  heads
  661.          1E  L Write Precompensation Cylinder
  662.          1F  H Write Precompensation Cylinder
  663.          20  ??
  664.          21  L cylinders parking zone
  665.          22  H cylinders parking zone
  666.          23  sectors
  667.  
  668.         AMI (386sx BIOS 1989) second user definable drive (type 48)
  669.          24  L cylinders
  670.          25  H cylinders
  671.          26  heads
  672.          27  L Write Precompensation Cylinder
  673.          28  H Write Precompensation Cylinder
  674.          29  ??
  675.          2A  L cylinders parking zone
  676.          2B  H cylinders parking zone
  677.          2C  sectors
  678.  
  679.         Phoenix (386BIOS v1.10.03 1988) 1st user definable drv (type48)
  680.          20  L cylinders
  681.          21  H cylinders
  682.          22  heads
  683.          23  L Write Precompensation Cylinder
  684.          24  H Write Precompensation Cylinder
  685.          25  L cylinders parking zone
  686.          26  H cylinders parking zone
  687.          27  sectors
  688.  
  689.         Phoenix (386BIOS v1.10.03 1988) 2nd user definable drv (type49)
  690.         (when PS/2-style password option is not used)
  691.          35  L cylinders
  692.          36  H cylinders
  693.          37  heads
  694.          38  L Write Precompensation Cylinder
  695.          39  H Write Precompensation Cylinder
  696.          3A  L cylinders parking zone
  697.          3B  H cylinders parking zone
  698.          3C  sectors
  699.  
  700. 0078        HP-Vectra  Hard Reset: NMI enable/disable
  701.          bit 7 = 0  disable & clear hard reset from HP-HIL controller
  702.                = 1  enable hard reset from HP-HIL controller chip
  703.          bit 6-0    reserved
  704.  
  705. -------------------------------------------------------------------------------
  706. 0078-007F ----    PC radio by CoZet Info Systems
  707.         The I/O address range is dipswitch selectable from:
  708.            038-03F and 0B0-0BF
  709.            078-07F and 0F9-0FF
  710.            138-13F and 1B0-1BF
  711.            178-17F and 1F9-1FF
  712.            238-23F and 2B0-2BF
  713.            278-27F and 2F0-2FF
  714.            338-33F and 3B0-3BF
  715.            378-37F and 3F0-3FF
  716.         All of these addresses show a readout of FF in initial state.
  717.         Once started, all of the addresses show     FB, whatever might
  718.         happen.
  719.  
  720. -------------------------------------------------------------------------------
  721. 007C-007D ----    HP-Vectra  PIC 3   (Programmable Interrupt Controller 8259)
  722.         cascaded to first controller.
  723.         used for keyboard and input device interface.
  724. 007C    r/w    HP-Vectra  PIC 3  see at 0020  PIC 1
  725. 007D    r/w    HP-Vectra  PIC 3  see at 0021  PIC 1
  726.  
  727. -------------------------------------------------------------------------------
  728. 0080    w    Manufacturing Diagnostics port
  729.  
  730. -------------------------------------------------------------------------------
  731. 0080-008F ----    DMA page registers   (74612)
  732.  
  733. 0080    r/w    extra page register (temporary storage)
  734. 0081    r/w    DMA channel 2 address byte 2
  735. 0082    r/w    DMA channel 3 address byte 2
  736. 0083    r/w    DMA channel 1 address byte 2
  737. 0084    r/w    extra page register
  738. 0085    r/w    extra page register
  739. 0086    r/w    extra page register
  740. 0087    r/w    DMA channel 0 address byte 2
  741. 0088    r/w    extra page register
  742. 0089    r/w    DMA channel 6 address byte 2
  743. 0089    r/w    DMA channel 7 address byte 2
  744. 0089    r/w    DMA channel 5 address byte 2
  745. 008C    r/w    extra page register
  746. 008D    r/w    extra page register
  747. 008E    r/w    extra page register
  748. 008F    r/w    DMA refresh page register
  749.  
  750. -------------------------------------------------------------------------------
  751. 0090-009F ----    PS/2 POS (Programmable Option Select)
  752.  
  753. 0090        Central arbitration control port
  754. 0091        Card selection feedback
  755.  
  756. 0092    r/w    PS/2 system control port A  (port B is at 0061)
  757.          bit 7-6   any bit set to 1 turns activity light on
  758.          bit 5       reserved
  759.          bit 4 = 1 watchdog timout occurred 
  760.          bit 3 = 0 RTC/CMOS security lock (on password area) unlocked
  761.                = 1 CMOS locked (done by POST)
  762.          bit 2       reserved
  763.          bit 1 = 1 indicates A20 active
  764.          bit 0 = 0 system reset or write
  765.              1 pulse alternate reset pin (alternate CPU reset)
  766.  
  767. 0094    w    system board enable/setup register
  768.          bit 7 = 1  enable functions
  769.                = 0  setup functions
  770.          bit 5 = 1  enables VGA
  771.                = 0  setup VGA
  772.  
  773. 0095        reserved
  774.  
  775. 0096    w    adapter enable /setup register
  776.          bit 3 = 1  setup adapters
  777.                = 0  enable registers
  778.  
  779. 0097        reserved
  780.  
  781. -------------------------------------------------------------------------------
  782. 00A0-00AF ----    PIC 2    (Programmable Interrupt Controller 8259)
  783.  
  784. 00A0    r/w    NMI mask register (XT)
  785.  
  786. 00A0    r/w    PIC 2  same as 0020 for PIC 1
  787. 00A1    r/w    PIC 2  same as 0021 for PIC 1 except for OCW1:
  788.          bit 7 = 0  reserved
  789.          bit 6 = 0  enable fixed disk interrupt
  790.          bit 5 = 0  enable coprocessor exception interrupt
  791.          bit 4 = 0  enable mouse interrupt
  792.          bit 3 = 0  reserved
  793.          bit 2 = 0  reserved
  794.          bit 1 = 0  enable redirect cascade
  795.          bit 0 = 0  enable real-time clock interrupt
  796.  
  797. -------------------------------------------------------------------------------
  798. 00B0-00BF ----    PC radio by CoZet Info Systems
  799.         The I/O address range is dipswitch selectable from:
  800.            038-03F and 0B0-0BF
  801.            078-07F and 0F9-0FF
  802.            138-13F and 1B0-1BF
  803.            178-17F and 1F9-1FF
  804.            238-23F and 2B0-2BF
  805.            278-27F and 2F0-2FF
  806.            338-33F and 3B0-3BF
  807.            378-37F and 3F0-3FF
  808.         All of these addresses show a readout of FF in initial state.
  809.         Once started, all of the addresses show     FB, whatever might
  810.         happen.
  811.  
  812. -------------------------------------------------------------------------------
  813. 00C0      ----    TI  SN746496 programmable tone/noise generator    PCjr
  814.  
  815. -------------------------------------------------------------------------------
  816. 00C0-00DF ----    DMA 2    (second Direct Memory Access controller 8237)
  817.  
  818. 00C0    r/w    DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)
  819. 00C2    r/w    DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)
  820. 00C4    r/w    DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)
  821. 00C6    r/w    DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)
  822. 00C8    r/w    DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)
  823. 00CA    r/w    DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)
  824. 00CC    r/w    DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)
  825. 00CE    r/w    DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)
  826.  
  827. 00D0    r    DMA channel 4-7 status register (ISA, EISA)
  828.          bit 7 = 1  channel 7 request
  829.          bit 6 = 1  channel 6 request
  830.          bit 5 = 1  channel 5 request
  831.          bit 4 = 1  channel 4 request
  832.          bit 3 = 1  terminal count on channel 7
  833.          bit 2 = 1  terminal count on channel 6
  834.          bit 1 = 1  terminal count on channel 5
  835.          bit 0 = 1  terminal count on channel 4
  836.  
  837. 00D0    w    DMA channel 4-7 command register (ISA, EISA)
  838.          bit 7 = 1  DACK sense active high
  839.                = 0  DACK sense active low
  840.          bit 6 = 1  DREQ sense active high
  841.                = 0  DREQ sense active low
  842.          bit 5 = 1  extended write selection
  843.                = 0  late write selection
  844.          bit 4 = 1  rotating priority
  845.                = 0  fixed priority
  846.          bit 3 = 1  compressed timing
  847.                = 0  normal timing
  848.          bit 2 = 0  enable controller
  849.          bit 1 = 1  enable memory-to-memory transfer
  850.          bit 0        .....
  851.  
  852. 00D2    w    DMA channel 4-7 write request register (ISA, EISA)
  853.  
  854. 00D4    w    DMA channel 4-7 write single mask register (ISA, EISA)
  855.          bit 7-3      reserved
  856.          bit 2     = 0  clear mask bit
  857.              = 1  set mask bit
  858.          bit 1-0 = 00 channel 4 select
  859.              = 01 channel 5 select
  860.              = 10 channel 6 select
  861.              = 11 channel 7 select
  862.  
  863. 00D6    w    DMA channel 4-7 mode register (ISA, EISA)
  864.          bit 7-6 = 00  demand mode
  865.              = 01  single mode
  866.              = 10  block mode
  867.              = 11  cascade mode
  868.          bit 5     = 0   address increment select
  869.              = 1   address decrement select
  870.          bit 4     = 0   autoinitialisation disable
  871.              = 1   autoinitialisation enable
  872.          bit 3-2 = 00  verify operation
  873.              = 01  write to memory
  874.              = 10  read from memory
  875.              = 11  reserved
  876.          bit 1-0 = 00  channel 4 select
  877.              = 01  channel 5 select
  878.              = 10  channel 6 select
  879.              = 11  channel 7 select
  880.  
  881. 00D8    w    DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)
  882. 00DA    r    DMA channel 4-7 read temporary register (ISA, EISA)
  883. 00DA    w    DMA channel 4-7 master clear (ISA, EISA)
  884. 00DC    w    DMA channel 4-7 clear mask register (ISA, EISA)
  885. 00DE    w    DMA channel 4-7 write mask register (ISA, EISA)
  886.  
  887. 00E0        split address register, memory encoding registers PS/2m80 only
  888.  
  889. -------------------------------------------------------------------------------
  890. 00F0-00F5 ----    PCjr Disk Controller
  891.  
  892. 00F0        disk controller
  893. 00F2        disk controller control port
  894. 00F4        disk controller status register
  895. 00F5        disk controller data port
  896.  
  897. -------------------------------------------------------------------------------
  898. 00F0-00FF ----    coprocessor (8087..80387)
  899.  
  900. 00F0        math coprocessor clear busy latch
  901. 00F1        math coprocessor reset
  902. 00F8-00FF    math coprocessor
  903.  
  904. -------------------------------------------------------------------------------
  905. 00F9-00FF ----    PC radio by CoZet Info Systems
  906.         The I/O address range is dipswitch selectable from:
  907.            038-03F and 0B0-0BF
  908.            078-07F and 0F9-0FF
  909.            138-13F and 1B0-1BF
  910.            178-17F and 1F9-1FF
  911.            238-23F and 2B0-2BF
  912.            278-27F and 2F0-2FF
  913.            338-33F and 3B0-3BF
  914.            378-37F and 3F0-3FF
  915.         All of these addresses show a readout of FF in initial state.
  916.         Once started, all of the addresses show     FB, whatever might
  917.         happen.
  918.  
  919. -------------------------------------------------------------------------------
  920. 0100-010F ----    CompaQ Tape drive adapter. alternate address at 0300
  921.  
  922. -------------------------------------------------------------------------------
  923. 0100-0107 ----    PS/2 POS (Programmable Option Select)
  924.  
  925. 0100    r    POS register 0    Low adapter ID byte
  926. 0101    r    POS register 1    High adapter ID byte
  927.  
  928. 0102    r/w    POS register 2    option select data byte 1
  929.          bit 0 is card enable (CDEN)
  930.  
  931. 0103    r/w    POS register 3    option select data byte 2
  932. 0104    r/w    POS register 4    option select data byte 3
  933. 0105    r/w    POS register 5    option select data byte 4
  934.          bit 7    channel active (-CHCK)
  935.          bit 6    channel status
  936.  
  937. 0106    r/w    POS register 6    Low subaddress extension
  938. 0107    r/w    POS register 7    High subaddress extension
  939.  
  940. -------------------------------------------------------------------------------
  941. 0108-010F ----    8 digit LED info panel on IBM PS/2
  942.  
  943. 010F    w    leftmost character on display
  944. 010E    w    second character
  945. ....    w
  946. 0108    w    eighth character
  947.  
  948. -------------------------------------------------------------------------------
  949. 0130-013F ----    CompaQ SCSI adapter. alternate address at 0330
  950.  
  951. -------------------------------------------------------------------------------
  952. 0130-0133 ----    Adaptec 154xB/154xC SCSI adapter.
  953.         alternate address at 0134, 0230, 0234 ,0330 and 0334
  954.  
  955. -------------------------------------------------------------------------------
  956. 0134-0137 ----    Adaptec 154xB/154xC SCSI adapter.
  957.         alternate address at 0130, 0230, 0234 ,0330 and 0334
  958.  
  959. -------------------------------------------------------------------------------
  960. 0138-013F ----    PC radio by CoZet Info Systems
  961.         The I/O address range is dipswitch selectable from:
  962.            038-03F and 0B0-0BF
  963.            078-07F and 0F9-0FF
  964.            138-13F and 1B0-1BF
  965.            178-17F and 1F9-1FF
  966.            238-23F and 2B0-2BF
  967.            278-27F and 2F0-2FF
  968.            338-33F and 3B0-3BF
  969.            378-37F and 3F0-3FF
  970.         All of these addresses show a readout of FF in initial state.
  971.         Once started, all of the addresses show     FB, whatever might
  972.         happen.
  973.  
  974. -------------------------------------------------------------------------------
  975. 0140-014F ----    SCSI (alternate Small Computer System Interface) adapter
  976.         (1st at 0340-034F)
  977.  
  978. -------------------------------------------------------------------------------
  979. 0140-0157 ----    RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  980.  
  981. -------------------------------------------------------------------------------
  982. 0170-0177 ----    HDC 2    (2nd Fixed Disk Controller)   same as 01Fx (ISA, EISA)
  983.  
  984. -------------------------------------------------------------------------------
  985. 0178-017F ----    PC radio by CoZet Info Systems
  986.         The I/O address range is dipswitch selectable from:
  987.            038-03F and 0B0-0BF
  988.            078-07F and 0F9-0FF
  989.            138-13F and 1B0-1BF
  990.            178-17F and 1F9-1FF
  991.            238-23F and 2B0-2BF
  992.            278-27F and 2F0-2FF
  993.            338-33F and 3B0-3BF
  994.            378-37F and 3F0-3FF
  995.         All of these addresses show a readout of FF in initial state.
  996.         Once started, all of the addresses show     FB, whatever might
  997.         happen.
  998.  
  999. -------------------------------------------------------------------------------
  1000. 01E8-01EF ----    System Control. Laptop chipset: Headland HL21 & Acer M5105
  1001.  
  1002. 01ED    r/w    select internal register. Data to/from 01EF
  1003. 01EE    r
  1004. 01EF    r/w    reg.
  1005.         5  = 1000xxxx  for low CPU clock speed (4MHz on Morse/Mitac)
  1006.            = 0xxxxxxx  for high CPU clock speed (16MHz on Morse/Mitac)
  1007.  
  1008. -------------------------------------------------------------------------------
  1009. 01F0-01F7 ----    HDC 1    (1st Fixed Disk Controller)   same as 017x (ISA, EISA)
  1010.  
  1011. 01F0    r/w    data register
  1012.  
  1013. 01F1    r    error register
  1014.         diagnostic mode errors:
  1015.          bit 7-3    reserved
  1016.          bit 2-1 = 001    no error detected
  1017.              = 010    formatter device error
  1018.              = 011    sector buffer error
  1019.              = 100    ECC circuitry error
  1020.              = 101    controlling microprocessor error
  1021.          operation mode:
  1022.           bit 7     = 1  bad block detected
  1023.              = 0  block OK
  1024.           bit 6     = 1  uncorrectable ECC error
  1025.              = 0  no error
  1026.           bit 5          reserved
  1027.           bit 4     = 1  ID found
  1028.              = 0  ID not found
  1029.           bit 3          reserved
  1030.           bit 2     = 1  command completed
  1031.              = 0  command aborted
  1032.           bit 1     = 1  track 000 not found
  1033.              = 0  track 000 found
  1034.           bit 0     = 1  DAM not found
  1035.              = 0  DAM found (CP-3022 always 0)
  1036.  
  1037. 01F1    w    WPC/4  (Write Precompensation Cylinder divided by 4)
  1038.  
  1039. 01F2    r/w    sector count
  1040. 01F3    r/w    sector number
  1041. 01F4    r/w    cylinder low
  1042. 01F5    r/w    cylinder high
  1043.  
  1044. 01F6    r/w    drive/head
  1045.          bit 7     = 1
  1046.          bit 6     = 0
  1047.          bit 5     = 1
  1048.          bit 4     = 0  drive 0 select
  1049.              = 1  drive 1 select
  1050.          bit 3-0      head select bits
  1051.  
  1052. 01F7    r    status register
  1053.          bit 7 = 1  controller is executing a command
  1054.          bit 6 = 1  drive is ready
  1055.          bit 5 = 1  write fault
  1056.          bit 4 = 1  seek complete
  1057.          bit 3 = 1  sector buffer requires servicing
  1058.          bit 2 = 1  disk data read successfully corrected
  1059.          bit 1 = 1  index - set to 1 each disk revolution
  1060.          bit 0 = 1  previous command ended in an error
  1061.  
  1062. 01F7    w    command register
  1063.         commands:
  1064.          98 E5     check power mode    (IDE)
  1065.          90     execute drive diagnostics
  1066.          50     format track
  1067.          EC     identify drive        (IDE)
  1068.          97 E3     idle            (IDE)
  1069.          95 E1     idle immediatete    (IDE)
  1070.          91     initialize drive parameters
  1071.          1x     recalibrate
  1072.          E4     read buffer        (IDE)
  1073.          C8     read DMA with retry    (IDE)
  1074.          C9     read DMA without retry (IDE)
  1075.          C4     read multiplec        (IDE)
  1076.          20     read sectors with retry
  1077.          21     read sectors without retry
  1078.          22     read long with retry
  1079.          23     read long without retry
  1080.          40     read verify sectors with retry
  1081.          41     read verify sectors without retry
  1082.          7x     seek
  1083.          EF     set features        (IDE)
  1084.          C6     set multiple mode    (IDE)
  1085.          99 E6     set sleep mode        (IDE)
  1086.          96 E2     standby        (IDE)
  1087.          94 E0     standby immediate    (IDE)
  1088.          E8     write buffer        (IDE)
  1089.          CA     write DMA with retry    (IDE)
  1090.          CB     write DMA with retry    (IDE)
  1091.          C5     write multiple        (IDE)
  1092.          E9     write same        (IDE)
  1093.          30     write sectors with retry
  1094.          31     write sectors without retry
  1095.          32     write long with retry
  1096.          33     write long without retry
  1097.          3C     write verify        (IDE)
  1098.          9A     vendor unique        (IDE)
  1099.          C0-C3     vendor unique        (IDE)
  1100.          8x     vendor unique        (IDE)
  1101.          F0-F4     EATA standard        (IDE)
  1102.          F5-FF     vendor unique        (IDE)
  1103.  
  1104. -------------------------------------------------------------------------------
  1105. 01F9-01FF ----    PC radio by CoZet Info Systems
  1106.         The I/O address range is dipswitch selectable from:
  1107.            038-03F and 0B0-0BF
  1108.            078-07F and 0F9-0FF
  1109.            138-13F and 1B0-1BF
  1110.            178-17F and 1F9-1FF
  1111.            238-23F and 2B0-2BF
  1112.            278-27F and 2F0-2FF
  1113.            338-33F and 3B0-3BF
  1114.            378-37F and 3F0-3FF
  1115.         All of these addresses show a readout of FF in initial state.
  1116.         Once started, all of the addresses show     FB, whatever might
  1117.         happen.
  1118.  
  1119. -------------------------------------------------------------------------------
  1120. 0200-020F ----    Game port reserved I/O address space  
  1121. 0200-0207 ----    Game port, eight identical addresses on some boards
  1122.  
  1123. 0201    r    read joystick position and status
  1124.          bit 7    status B joystick button 2 / D paddle button
  1125.          bit 6    status B joystick button 1 / C paddle button
  1126.          bit 5    status A joystick button 2 / B paddle button
  1127.          bit 4    status A joystick button 1 / A paddle button
  1128.          bit 3    B joystick Y coordinate       / D paddle coordinate
  1129.          bit 2    B joystick X coordinate       / C paddle coordinate
  1130.          bit 1    A joystick Y coordinate       / B paddle coordinate
  1131.          bit 0    A joystick X coordinate       / A paddle coordinate
  1132.  
  1133.     w    fire joysticks four one-shots
  1134.  
  1135. -------------------------------------------------------------------------------
  1136. 0210-0217 ----    Expansion unit (XT)
  1137.  
  1138. 0210    w    latch expansion bus data
  1139.     r    verify expansion bus data
  1140. 0211    w    clear wait, test latch
  1141.     r    High byte data address
  1142. 0212    r    Low byte data address
  1143. 0213    w    0=enable,  1=disable expansion unit
  1144. 0214    w    latch data  (receiver card port)
  1145.     r    read data   (receiver card port)
  1146. 0215    r    High byte of address, then Low byte   (receiver card port)
  1147.  
  1148. -------------------------------------------------------------------------------
  1149. 0220-0227 ----    Soundblaster PRO and SSB 16 ASP
  1150.  
  1151. -------------------------------------------------------------------------------
  1152. 0220-022F ----    Soundblaster PRO 2.0
  1153.  
  1154. -------------------------------------------------------------------------------
  1155. 0220-022F ----    Soundblaster PRO 4.0
  1156. 0220    r    left FM status port
  1157. 0220    w    left FM music register address port (index)
  1158. 0221    r/w    left FM music data port
  1159. 0222    r    right FM status port
  1160. 0222    w    right FM music register address port (index)
  1161. 0223    r/w    right FM music data port
  1162. 0224    w    mixer register address port (index)
  1163. 0225    r/w    mixer data port
  1164. 0226    w    DSP reset
  1165. 0228    r    FM music status port
  1166. 0228    w    FM music register address port (index)
  1167. 0229    w    FM music data port
  1168. 022A    r    DSP read data (voice I/O and Midi)
  1169. 022C    w    DSP write data / write command
  1170. 022C    r    DSP write buffer status (bit 7)
  1171. 022E    r    DSP data available status (bit 7)
  1172.  
  1173.         The FM music is accessible on 0388/0389 for compatibility.
  1174.  
  1175. -------------------------------------------------------------------------------
  1176. 0230-0233 ----    Adaptec 154xB/154xC SCSI adapter.
  1177.         alternate address at 0130, 0134, 0230, 0330 and 0334
  1178.  
  1179. -------------------------------------------------------------------------------
  1180. 0234-0237 ----    Adaptec 154xB/154xC SCSI adapter.
  1181.         alternate address at 0130, 0134, 0230 ,0330 and 0334
  1182.  
  1183. -------------------------------------------------------------------------------
  1184. 0240-0257 ----    RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  1185.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  1186.  
  1187. -------------------------------------------------------------------------------
  1188. 0258-025F ----    Intel Above Board
  1189.  
  1190. -------------------------------------------------------------------------------
  1191. 0278-027E ----    parallel printer port, same as 0378 and 03BC
  1192.  
  1193. 0278    w    data port
  1194. 0279    r/w    status port
  1195. 027A    r/w    control port
  1196.  
  1197. -------------------------------------------------------------------------------
  1198. 02A2-02A3 ----    MSM58321RS clock
  1199.  
  1200. -------------------------------------------------------------------------------
  1201. 02B0-02BF ----    Trantor SCSI adapter
  1202.  
  1203. -------------------------------------------------------------------------------
  1204. 02B0-02DF ----    alternate EGA,    primary EGA at 03C0
  1205.  
  1206. -------------------------------------------------------------------------------
  1207. 02C0-02Cx ----    AST-clock
  1208.  
  1209. -------------------------------------------------------------------------------
  1210. 02E0-02EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1211.         (GAB 0 on XT)
  1212. 02E1        GPIB (adapter 0)
  1213. 02E2
  1214. 02E3
  1215.  
  1216. -------------------------------------------------------------------------------
  1217. 02E0-02EF ----    data aquisition     (AT)
  1218.  
  1219. 02E2        data aquisition (adapter 0)
  1220. 02E3        data aquisition (adapter 0)
  1221.  
  1222. -------------------------------------------------------------------------------
  1223. 02E8-02EF ----    serial port, same as 02F8, 03E8, and 03F8
  1224.  
  1225. -------------------------------------------------------------------------------
  1226. 02F8-02FF ----    serial port, same as 02E8, 02F8, and 03F8
  1227.  
  1228. 02F8    w    transmitter holding register
  1229. 02F8    r    receiver buffer register
  1230.     r/w    divisor latch, low byte      when DLAB=1
  1231. 02F9    r/w    divisor latch, high byte  when DLAB=1
  1232.     r/w    interrupt enable register when DLAB=0
  1233. 02FA    r    interrupt identification register
  1234. 02FB    r/w    line control register
  1235. 02FC    r/w    modem control register
  1236. 02FD    r    line status register
  1237. 02FF    r/w    scratch register
  1238.  
  1239. -------------------------------------------------------------------------------
  1240. 0300-0301 ---- Soundblaster 16 ASP MPU-Midi
  1241.  
  1242. -------------------------------------------------------------------------------
  1243. 0300-031F ----    prototype cards
  1244.         Periscope hardware debugger
  1245.  
  1246. -------------------------------------------------------------------------------
  1247. 0300-030F ----    Philips CD-ROM player CM50
  1248. 0310-031F ----    Philips CD-ROM player CM50
  1249.  
  1250. -------------------------------------------------------------------------------
  1251. 0320-0323 ----    XT HDC 1   (Hard Disk Controller)
  1252.  
  1253. 0320    r/w    data register
  1254.  
  1255. 0321    w    reset controller
  1256.     r    read controller hardware status
  1257.          bit 7-6 = 0
  1258.          bit 5          logical unit number
  1259.          bit 4-2 = 0
  1260.          bit 1     = 0  no error
  1261.          bit 0     = 0 
  1262.  
  1263. 0322    r    read DIPswitch setting on XT controller card
  1264.     w    generate controller-select pulse
  1265. 0323    w    write pattern to DMA and INT mask register
  1266.  
  1267. 0324-0327 ----    XT HDC 2   (Hard Disk Controller)
  1268. 0328-032B ----    XT HDC 3   (Hard Disk Controller)
  1269. 032C-032F ----    XT HDC 4   (Hard Disk Controller)
  1270.  
  1271. -------------------------------------------------------------------------------
  1272. 0330-0331 ----    MIDI interface
  1273.  
  1274. -------------------------------------------------------------------------------
  1275. 0330-0333 ----    Adaptec 154xB/154xC SCSI adapter. default address.
  1276.         alternate address at 0130, 0134, 0230, 0234 and 0334
  1277.  
  1278. -------------------------------------------------------------------------------
  1279. 0330-033F ----    CompaQ SCSI adapter. alternate address at 0130
  1280.  
  1281. -------------------------------------------------------------------------------
  1282. 0330-033F ----    Philips CD-ROM player CM50
  1283.  
  1284. -------------------------------------------------------------------------------
  1285. 0334-0337 ----    Adaptec 154xB/154xC SCSI adapter.
  1286.         alternate address at 0130, 0134, 0230 ,0234 and 0330
  1287.  
  1288. -------------------------------------------------------------------------------
  1289. 0338      ----    AdLib soundblaster card
  1290.  
  1291. -------------------------------------------------------------------------------
  1292. 0340-034F ----    Philips CD-ROM player CM50
  1293.  
  1294. -------------------------------------------------------------------------------
  1295. 0340-034F ----    SCSI (1st Small Computer System Interface) adapter
  1296.         (alternate at 0140-014F)
  1297.  
  1298. -------------------------------------------------------------------------------
  1299. 0340-0357 ----    RTC (1st Real Time Clock for XT), (alternate at 0240-0257)
  1300.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  1301.  
  1302. 0340    r/w    0.01 seconds  0-99
  1303. 0341    r/w    0.1 seconds   0-99
  1304. 0342    r/w    seconds          0-59
  1305. 0343    r/w    minutes          0-59
  1306. 0343    r/w    hours          0-23
  1307. 0345    r/w    day of week   1-7
  1308. 0346    r/w    day of month  1-31
  1309. 0347    r/w    month          1-12
  1310. 0348
  1311. 0349    r/w    year          0-99
  1312. 034A
  1313. 034B
  1314. 034C
  1315. 034D
  1316. 034E
  1317. 034F
  1318. 0350    r    status?
  1319. 0351    
  1320. 0352
  1321. 0353
  1322. 0354    r    status?
  1323. 0355
  1324. 0356
  1325. 0357
  1326.  
  1327. -------------------------------------------------------------------------------
  1328. 0348-0357 ----    DCA 3278
  1329.  
  1330. -------------------------------------------------------------------------------
  1331. 0360-036F ----    PC network (AT)
  1332. 0360-0367 ----    PC network (XT only)
  1333.  
  1334. -------------------------------------------------------------------------------
  1335. 0370-0377 ----    FDC 2  (2nd Floppy Disk Controller 8272)  same as 03F0
  1336.  
  1337. 0372    w    diskette controller DOR (Digital Output Register)
  1338. 0374    r    diskette controller status register
  1339. 0375    r/w    diskette controller data register
  1340. 0376    r/w    FIXED disk controller data register
  1341. 0377    r    diskette controller DIR (Digital Input Register)
  1342. 0377    w    select register for diskette data transfer rate
  1343.  
  1344. -------------------------------------------------------------------------------
  1345. 0378-037A ----    parallel printer port, same as 0278 and 03BC
  1346.  
  1347. 0378    w    data port
  1348. 0379    r/w    status port
  1349. 037A    r/w    control port
  1350.  
  1351. -------------------------------------------------------------------------------
  1352. 0380-038F ----    2nd Binary Synchronous Data Link Control adapter (see 03A0)
  1353.  
  1354. 0380    r/w     on board 8255 port A, internal/external sense
  1355. 0381    r/w     on board 8255 port B, external modem interface
  1356. 0382    r/w     on board 8255 port C, internal control and gating
  1357. 0383    r/w     on board 8255 mode register
  1358. 0384    r/w     on board 8253 channel square wave generator
  1359. 0385    r/w     on board 8253 channel 1 inactivity time-out
  1360. 0386    r/w     on board 8253 channel 2 inactivity time-out
  1361. 0387    r/w     on board 8253 mode register
  1362. 0388    r/w     on board 8273 read: status  write: command
  1363. 0389    r/w     on board 8273 read: response  write: parameter
  1364. 038A    r/w     on board 8273 transmit interrupt status
  1365. 038B    r/w     on board 8273 receiver interrupt status
  1366. 038C    r/w     on board 8273 data
  1367.  
  1368. -------------------------------------------------------------------------------
  1369. 0388-0389 ---- Soundblaster PRO FM-Chip
  1370. 0388-038B ---- Soundblaster 16 ASP FM-Chip
  1371.  
  1372. -------------------------------------------------------------------------------
  1373. 0390-039F ----    Cluster adapter (AT)
  1374.  
  1375. 0390-0393    (adapter 0)    (XT)
  1376.  
  1377. -------------------------------------------------------------------------------
  1378. 03A0-03AF ----    1st SDLC (Binary Synchronous Data Link Control adapter)
  1379.  
  1380. 0380    r/w     on board 8255 port A, internal/external sense
  1381. 0381    r/w     on board 8255 port B, external modem interface
  1382. 0382    r/w     on board 8255 port C, internal control and gating
  1383. 0383    r/w     on board 8255 mode register
  1384. 0384    r/w     on board 8253 counter 0 unused
  1385. 0385    r/w     on board 8253 channel 1 inactivity time-out
  1386. 0386    r/w     on board 8253 channel 2 inactivity time-out
  1387. 0387    r/w     on board 8253 mode register
  1388. 0388    r/w     on board 8251 data
  1389. 0389    r/w     on board 8251 command/mode/status register
  1390.  
  1391. -------------------------------------------------------------------------------
  1392. 03B0-03BF ----    MDA  (Monochrome Display Adapter based on 6845)
  1393.  
  1394. 03B0        same as 03B4
  1395. 03B1        same as 03B5
  1396. 03B2        same as 03B4
  1397. 03B3        same as 03B5
  1398. 03B4    w    MDA CRT index register     (EGA/VGA)
  1399.         selects which register (0-11h) is to be accessed through 3B5
  1400. 03B5    r/w    MDA CRT data register     (EGA/VGA)
  1401.         selected by port 3B4. registers C-F may be read
  1402.          00  horizontal total
  1403.          01  horizontal displayed
  1404.          02  horizontal sync position
  1405.          03  horizontal sync pulse width
  1406.          04  vertical total
  1407.          05  vertical displayed
  1408.          06  vertical sync position
  1409.          07  vertical sunc pulse width
  1410.          08  interlace mode
  1411.          09  maximum scan lines
  1412.          0A  cursor start
  1413.          0B  cursor end
  1414.          0C  start address high
  1415.          0D  start address low
  1416.          0E  cursor location high
  1417.          0F  cursor location low
  1418.          10  light pen high
  1419.          11  light pen low
  1420. 03B6        same as 03B4
  1421. 03B7        same as 03B5
  1422. 03B8    r/w    MDA mode control register
  1423.          bit 7 not used
  1424.          bit 6 not used
  1425.          bit 5 enable blink
  1426.          bit 4 not used
  1427.          bit 3 video enable
  1428.          bit 2 not used
  1429.          bit 1 not used
  1430.          bit 0 high resolution mode
  1431.  
  1432. 03B9        reserved for color select register on color adapter
  1433.  
  1434. 03BA    r    CRT status register     EGA/VGA: input status 1 register
  1435.          bit 7-4 reserved
  1436.          bit 3     black/white video
  1437.          bit 2-1 reserved
  1438.          bit 0     horizontal drive
  1439.  
  1440.          bit 7     (MSD says) if this bit changes within 8000h reads then
  1441.           bit 6-4 = 000 = adapter is Hercules or compatible
  1442.                 001 = adapter is Hercules+
  1443.                 101 = adapter is Hercules InColor
  1444.                   else: adapter is unknown
  1445.  
  1446. 03BA    w    EGA/VGA feature control register
  1447.  
  1448. 03BB        reserved for light pen strobe reset
  1449.  
  1450. -------------------------------------------------------------------------------
  1451. 03BC-03BF ----    parallel printer port, same as 0278 and 0378
  1452.  
  1453. 03BC    w    data port
  1454. 03BD    r/w    status port
  1455.          bit 7 = 0  busy
  1456.          bit 6 = 0  acknowledge
  1457.          bit 5 = 1  out of paper
  1458.          bit 4 = 1  printer is selected
  1459.          bit 3 = 0  error
  1460.          bit 2 = 0  IRQ has occurred
  1461.          bit 1-0    reserved
  1462.  
  1463. 03BE    r/w    control port
  1464.          bit 7-5    reserved
  1465.          bit 4 = 1  enable IRQ
  1466.          bit 3 = 1  select printer
  1467.          bit 2 = 0  initialize printer
  1468.          bit 1 = 1  automatic line feed
  1469.          bit 0 = 1  strobe
  1470.  
  1471. -------------------------------------------------------------------------------
  1472. 03BF    r/w    Hercules configuration switch register
  1473.          bit 7-2
  1474.          bit 1 = 0  disables upper 32K of graphics mode buffer
  1475.              1  enables upper 32K of graphics mode buffer
  1476.          bit 0 = 0  prevents graphics mode
  1477.              1  allows graphics mode
  1478.  
  1479. -------------------------------------------------------------------------------
  1480. 03C0-03CF ----    EGA  (1st Enhanced Graphics Adapter)    alternate at 02C0
  1481.  
  1482. 03C0    (r)/w    EGA VGA ATC index/data register
  1483. 03C1    r    VGA    other attribute register
  1484. 03C2    r    EGA VGA input status 0 register
  1485.     w    VGA    miscellaneous output register
  1486. 03C3    r/w    VGA    video subsystem enable
  1487. 03C4    w    EGA    TS index register
  1488.     r/w    VGA    sequencer index register
  1489. 03C5    w    EGA    TS data register
  1490.     r/w    VGA    other sequencer register
  1491. 03C6    r/w    VGA    PEL mask register
  1492. 03C7    r/w    VGA    PEL address read mode
  1493.     r    VGA    DAC state register
  1494. 03C8    r/w    VGA    PEL address write mode
  1495. 03C9    r/w    VGA    PEL data register
  1496. 03CA    w    EGA    graphics 2 position register
  1497.     r    VGA    feature control register
  1498. 03CC    w    EGA    graphics 1 position register
  1499.     r    VGA    miscellaneous output register
  1500. 03CE    w    EGA    GDC index register
  1501.     r/w    VGA    graphics address register
  1502. 03CF    w    EGA    GDC data register
  1503.     r/w    VGA    other graphics register
  1504.  
  1505. -------------------------------------------------------------------------------
  1506. 03D0-03DF ----    CGA   (Color Graphics Adapter)
  1507.  
  1508. 03D0        same as 03D4
  1509. 03D1        same as 03D5
  1510. 03D2        same as 03D4
  1511. 03D3        same as 03D5
  1512. 03D4    w    CRT (6845) index register   (EGA/VGA)
  1513.         selects which register (0-11h) is to be accessed through 3B5
  1514. 03D5    w    CRT (6845) data register    (EGA/VGA)
  1515.         selected by port 3B4. registers C-F may be read
  1516.          (for registers see at 3B5)
  1517. 03D6        same as 03D4
  1518. 03D7        same as 03D5
  1519. 03D8    r/w    CGA mode control register  (except PCjr)
  1520.          bit 7-6      not used
  1521.          bit 5     = 1  blink enabled
  1522.          bit 4     = 1  640*200 graphics mode
  1523.          bit 3     = 1  video enabled
  1524.          bit 2     = 1  monochrome signal
  1525.          bit 1     = 0  text mode
  1526.              = 1  320*200 graphics mode
  1527.          bit 0     = 0  40*25 text mode
  1528.              = 1  80*25 text mode
  1529.  
  1530. 03D9    r/w    CGA palette register
  1531.          bit 7-6      not used
  1532.          bit 5     = 0 active color set: red, green brown
  1533.              = 1 active color set: cyan, magenta, white
  1534.          bit 4         intense colors in graphics, background colors text
  1535.          bit 3         intense border in 40*25, intense background in
  1536.                  320*200, intense foreground in 640*200
  1537.          bit 2         red border in 40*25, red background in 320*200,
  1538.                  red foreground in 640*200
  1539.          bit 1         green border in 40*25, green background in
  1540.                  320*200, green foreground in 640*200
  1541.          bit 0         blue border in 40*25, blue background in 320*200,
  1542.                  blue foreground in 640*200
  1543.  
  1544. 03DA    r    CGA status register    EGA/VGA: input status 1 register
  1545.          bit 7-4     not used
  1546.          bit 3 = 1   in vertical retrace
  1547.          bit 2 = 1   light pen switch is off
  1548.          bit 1 = 1   positive edge from light pen has set trigger
  1549.          bit 0 = 0   do not use memory
  1550.                = 1   memory access without interfering with display
  1551.  
  1552. 03DA    w    EGA/VGA feature control register
  1553.  
  1554. 03DB    w    clear light pen latch
  1555. 03DC    r/w    preset licht pen latch
  1556.  
  1557. 03DF        CRT/CPU page register  PCjr only
  1558.  
  1559. -------------------------------------------------------------------------------
  1560. 03E8-03EF ----    serial port, same as 02E8, 02F8, and 03F8
  1561.  
  1562. -------------------------------------------------------------------------------
  1563. 03F0-03F7 ----    FDC 1  (1st Floppy Disk Controller 8272)  same as 0370
  1564.  
  1565. 03F0        diskette controller status A (PS/2)
  1566.          bit 7     interrupt pending
  1567.          bit 6     second drive installed
  1568.          bit 5     step
  1569.          bit 4     track 0
  1570.          bit 3     head 1 select
  1571.          bit 2     index
  1572.          bit 1     write protect
  1573.          bit 0     direction
  1574.  
  1575. 03F1    r    diskette controller status B (PS/2)
  1576.          bit 7-6  reserved
  1577.          bit 5      drive select (0=A:, 1=B:)
  1578.          bit 4      write data
  1579.          bit 3      read data
  1580.          bit 2      write enable
  1581.          bit 1      motor enable 1
  1582.          bit 0      motor enable 0
  1583.  
  1584. 03F2    w    diskette controller DOR (Digital Output Register)
  1585.          bit 7-6    reserved PS/2
  1586.          bit 7 = 1  drive 3 motor enable
  1587.          bit 6 = 1  drive 2 motor enable
  1588.          bit 5 = 1  drive 1 motor enable
  1589.          bit 4 = 1  drive 0 motor enable
  1590.          bit 3 = 1  diskette DMA enable (reserved PS/2)
  1591.          bit 2 = 1  FDC enable    (controller reset)
  1592.                = 0  hold FDC at reset
  1593.          bit 1-0    drive select (0=A 1=B ..)
  1594.  
  1595. 03F4    r    diskette controller status register
  1596.          bit 7 = 1  data register is ready
  1597.          bit 6 = 1  transfer is from controller to system
  1598.              0  transfer is from system to controller
  1599.          bit 5 = 1  non-DMA mode
  1600.          bit 4 = 1  diskette controller busy
  1601.          bit 3 = 1  drive 3 busy (reserved on PS/2)
  1602.          bit 2 = 1  drive 2 busy (reserved on PS/2)
  1603.          bit 1 = 1  drive 1 busy
  1604.          bit 0 = 1  drive 0 busy
  1605.  
  1606. 03F5    r    diskette command status register 0
  1607.          bit 7-6      last command status
  1608.              = 00  command terminated successfully
  1609.              = 01  command terminated abnormally
  1610.              = 10  invalid command
  1611.              = 11  terminated abnormally by change in ready signal
  1612.          bit 5     = 1   seek completed
  1613.          bit 4     = 1  equipment check occurred after error
  1614.          bit 3     = 1  not ready
  1615.          bit 2     = 1  head number at interrupt
  1616.          bit 1-0 = 1  unit select (0=A 1=B .. )
  1617.                   (on PS/2    01=A  10=B)
  1618.  
  1619.         status register 1
  1620.          bit 7        end of cylinder; sector# greater then sectors/track
  1621.          bit 6 = 0
  1622.          bit 5 = 1  CRC error in ID or data field
  1623.          bit 4 = 1  overrun
  1624.          bit 3 = 0
  1625.          bit 2 = 1  sector ID not found
  1626.          bit 1 = 1  write protect detected during write
  1627.          bit 0 = 1  ID address mark not found
  1628.  
  1629.         status register 2
  1630.          bit 7 = 0
  1631.          bit 6 = 1  deleted Data Eddress Mark detected
  1632.          bit 5 = 1  CRC error in data
  1633.          bit 4 = 1  wrong cylinder detected
  1634.          bit 3 = 1  scan command equal condition satisfied
  1635.          bit 2 = 1  scan command failed, sector not found
  1636.          bit 1 = 1  bad cylinder, ID not found
  1637.          bit 0 = 1  missing Data Address Mark 
  1638.  
  1639.         status register 3
  1640.          bit 7        fault status signal
  1641.          bit 6        write protect status
  1642.          bit 5        ready status
  1643.          bit 4        track zero status
  1644.          bit 3        two sided status signal
  1645.          bit 2        side select (head select)
  1646.          bit 1-0    unit select (0=A 1=B .. )
  1647.  
  1648. 03F6    r/w    FIXED disk controller data register
  1649.          bit 7-4    reserved
  1650.          bit 3 = 0  reduce write current
  1651.              1  head select 3 enable
  1652.          bit 2 = 1  disk reset enable
  1653.              0  disk reset disable
  1654.          bit 1 = 0  disk initialization enable
  1655.              1  disk initialization disable
  1656.          bit 0        reserved
  1657.  
  1658. 03F7    r    diskette controller DIR (Digital Input Register)
  1659.          bit 7 = 1 diskette change
  1660.  
  1661.          bit 6       FIXED DISK write gate
  1662.          bit 5       FIXED DISK head select 3 / reduced write current
  1663.          bit 4       FIXED DISK head select 2
  1664.          bit 3       FIXED DISK head select 1
  1665.          bit 2       FIXED DISK head select 0
  1666.          bit 1       FIXED DISK drive 1 select
  1667.          bit 0       FIXED DISK drive 0 select   conflicts with:
  1668.  
  1669.          bit 0       diskette high density select
  1670.  
  1671. 03F7    w    select register for diskette data transfer rate
  1672.          bit 7-2       reserved
  1673.          bit 1-0 = 00  500 Kb/S mode
  1674.              = 01  300 Kb/S mode
  1675.              = 10  250 Kb/S mode
  1676.              = 11  reserved
  1677.  
  1678. -------------------------------------------------------------------------------
  1679. 03F8-03FF ----    serial port (8250,8251,16450,16550), same as 02E8,02F8,and 03F8
  1680.  
  1681. 03F8    w    serial port, transmitter holding register, which contains the
  1682.         character to be sent. Bit 0 is sent first.
  1683.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  1684.     r    receiver buffer register, which contains the received character
  1685.         Bit 0 is received first
  1686.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  1687.     r/w    divisor latch low byte when DLAB=1
  1688.  
  1689. 03F9    r/w    divisor latch high byte when DLAB=1
  1690.     r/w    interrupt enable register when DLAB=0
  1691.          bits 7-4   reserved
  1692.          bit 3 = 1  modem-status interrupt enable
  1693.          bit 2 = 1  receiver-line-status interrupt enable
  1694.          bit 1 = 1  transmitter-holding-register empty interrupt enable
  1695.          bit 0 = 1  received-data-avail.int. enable (and 16550 timeout)
  1696.  
  1697.           - 16550 will interrupt if data exists in the FIFO and isn't read
  1698.         within the time it takes to receive four bytes or if no data is
  1699.         received within the time it takes to receive four bytes
  1700.  
  1701. 03FA    r    interrupt identification register. Information about a pending
  1702.         interrupt is stored here. When the ID register is addressed,
  1703.         the highest priority interrupt is held, and no other interrupts
  1704.         are acknowledged until the CPU services that interrupt.
  1705.          bit 7-6 = 00  reserved on 8250, 8251, 16450
  1706.              = 11  if FIFO queues are enabled (16550 only)
  1707.          bit 5-4 = 0 reserved
  1708.          bit 3     = 0 reserved  8250, 16450
  1709.              = 1 16550  timeout int. pending
  1710.          bit 2-1 identify pending interrupt with the highest priority
  1711.           = 11    receiver line status interrupt. priority=highest
  1712.           = 10    received data available register interrupt. pr.=second
  1713.           = 01    transmitter holding register empty interrupt. pr.=third
  1714.           = 00    modem status interrupt. priority=fourth
  1715.          bit 0 = 0  interrupt pending. contents of register can be used
  1716.                 as a pointer to the appropriate int.service routine
  1717.              1  no interrupt pending
  1718.  
  1719.           - interrupt pending flag uses reverse logic, 0=pending, 1=none
  1720.           - interrupt will occur if any of the line status bits are set
  1721.           - THRE bit is set when THRE register is emptied into the TSR
  1722.  
  1723.  
  1724. 03FA    w    16650 FCR  (FIFO Control Register)
  1725.          bit 7-6 = 00  1 byte
  1726.              = 01  4 bytes
  1727.              = 10  8 bytes
  1728.              = 11 14 bytes
  1729.          bit 5-4 = 00 reserved
  1730.          bit 3     = 1  change RXRDY  TXRDY pins from mode 0 to mode 1
  1731.          bit 2     = 1  clear XMIT FIFO
  1732.          bit 1     = 1  clear RCVR FIFO
  1733.          bit 0     = 1  enable clear XMIT and RCVR FIFO queues
  1734.  
  1735.           - bit 0 must be set in order to write to other FCR bits
  1736.           - bit 1 when set    the RCVR FIFO is cleared and this bit is reset
  1737.          the receiver shift register is not cleared
  1738.           - bit 2 when set    the XMIT FIFO is cleared and this bit is reset
  1739.          the transmit shift register is not cleared
  1740.  
  1741. 03FB    r/w    line control register
  1742.          bit 7 = 1  divisor latch access bit (DLAB)
  1743.              0  receiver buffer, transmitter holding, or interrupt
  1744.                 enable register access
  1745.          bit 6 = 1  set break enable. serial ouput is forced to spacing
  1746.                 state and remains there.
  1747.          bit 5 =    stick parity
  1748.          bit 4 = 1  even parity select
  1749.          bit 3 =    parity enable
  1750.              1  even number of ones are sent and checked in the 
  1751.                 data word bits and parity bit
  1752.              0  odd number of ones are sent and checked
  1753.          bit 2 = 0  one stop bit
  1754.              1  zero stop bit
  1755.          bit 1-0 00 word length is 5 bits
  1756.              01 word length is 6 bits
  1757.              10 word length is 7 bits
  1758.              11 word length is 8 bits
  1759.  
  1760. 03FC    r/w    modem control register
  1761.          bit 7-5 = 0  reserved
  1762.          bit 4 = 1  loopback mode for diagnostic testing of serial port
  1763.                 output of transmitter shift register is looped back
  1764.                 to receiver shift register input. In this mode
  1765.                 transmitted data is received immediately so that
  1766.                 the CPU can verify the transmit data/receive data
  1767.                 serial port paths.
  1768.          bit 3 = 1  auxiliary user-designated output 2
  1769.          bit 2 = 1  auxiliary user-designated output 1
  1770.          bit 1 = 1  force request-to-send active
  1771.          bit 0 = 1  force data-terminal-ready active
  1772.  
  1773. 03FD    r    line status register
  1774.          bit 7 = 0  reserved
  1775.          bit 6 = 1  transmitter shift and holding registers empty
  1776.          bit 5 = 1  transmitter holding register empty. Controller is
  1777.                 ready toaccept a new character to send.
  1778.          bit 4 = 1  break interrupt. the received data input is held in
  1779.                 in the zero bit state longer than the time of start
  1780.                 bit + data bits + parity bit + stop bits.
  1781.          bit 3 = 1  framing error. the stop bit that follows the last
  1782.                 parity or data bit is a zero bit.
  1783.          bit 2 = 1  parity error. Character has wrong parity
  1784.          bit 1 = 1  overrun error. a character was sent to the receiver
  1785.                 buffer before the previous character in the buffer
  1786.                 could be read. This destroys the previous
  1787.                 character.
  1788.          bit 0 = 1  data ready. a complete incoming character has been
  1789.                 received and sent to the receiver buffer register.
  1790.  
  1791. 03FE    r    modem status register
  1792.          bit 7 = 1  data carrier detect
  1793.          bit 6 = 1  ring indicator
  1794.          bit 5 = 1  data set ready
  1795.          bit 4 = 1  clear to send
  1796.          bit 3 = 1  delta data carrier detect
  1797.          bit 2 = 1  trailing edge ring indicator
  1798.          bit 1 = 1  delta data set ready
  1799.          bit 0 = 1  delta clear to send
  1800.  
  1801.           - bits 0-3 are reset when the CPU reads the MSR
  1802.           - bit 4 is the Modem Control Register RTS during loopback test
  1803.           - bit 5 is the Modem Control Register DTR during loopback test
  1804.           - bit 6 is the Modem Control Register OUT1 during loopback test
  1805.           - bit 7 is the Modem Control Register OUT2 during loopback test
  1806.  
  1807. 03FF    r/w    scratch register
  1808.  
  1809. -------------------------------------------------------------------------------
  1810.  
  1811.         Adresses above 03FF apply to EISA machines only !
  1812.  
  1813.              1000-1FFF    slot 1 EISA
  1814.              2000-2FFF    slot 2 EISA
  1815.              3000-3FFF    slot 3 EISA
  1816.              4000-4FFF    slot 4 EISA
  1817.              5000-5FFF    slot 5 EISA
  1818.              6000-6FFF    slot 6 EISA
  1819.              7000-7FFF    slot 7 EISA
  1820.  
  1821. -------------------------------------------------------------------------------
  1822. 0401-04D6 ----    used by EISA systems only
  1823.  
  1824. 0401    r/w    DMA channel 0 word count byte 2 (high)
  1825. 0403    r/w    DMA channel 1 word count byte 2 (high)
  1826. 0405    r/w    DMA channel 2 word count byte 2 (high)
  1827. 0407    r/w    DMA channel 3 word count byte 2 (high)
  1828.  
  1829. 040A    w    extended DMA chaining mode register, channels 0-3
  1830.          bit 7-5      reserved
  1831.          bit 4     = 0  generates IRQ13
  1832.              = 1  generates terminal count
  1833.          bit 3     = 0  do not start chaining
  1834.              = 1  programming complete
  1835.          bit 2     = 0  disable buffer chaining mode (default)
  1836.              = 1  enable buffer chaining mode
  1837.          bit 1-0      DMA channel select
  1838.  
  1839. 040A    r    channel interrupt (IRQ13) status register
  1840.          bit 7-5  interrupt on channels 7-5
  1841.          bit 4      reserved
  1842.          bit 3-0  interrupt on channels 3-0
  1843.  
  1844. 040B    w    DMA extended mode register for channels 3-0.
  1845.         bit settings same as 04D6
  1846.          bit 7     = 0  enable stop register
  1847.          bit 6     = 0  terminal count is an output for this channel
  1848. (default)
  1849.          bit 5-4      DMA cycle timing
  1850.              = 00 ISA-compatible (default)
  1851.              = 01 type A timing mode
  1852.              = 10 type B timing mode
  1853.              = 11 burst DMA mode
  1854.          bit 3-2      Address mode
  1855.              = 00 8-bit I/O, count by bytes (default)
  1856.              = 01 16-bit I/O, count by words, address shifted
  1857.              = 10 32-bit I/O, count by bytes
  1858.              = 11 16-bit I/O, count by bytes
  1859.          bit 1-0      DMA channel select
  1860.  
  1861. -------------------------------------------------------------------------------
  1862. 0461    r/w    Extended NMI status/control register
  1863.          bit 7 = 1  NMI pending from fail-safe timer (read only)
  1864.          bit 6 = 1  NMI pending from bus timeout NMI status (read
  1865. only)
  1866.          bit 5 = 1  NMI pending (read only)
  1867.          bit 4        reserved
  1868.          bit 3 = 1  bus timeout NMI enable (read/write)
  1869.          bit 2 = 1  fail-safe NMI enable (read/write)
  1870.          bit 1 = 1  NMI I/O port enable (read/write)
  1871.          bit 0        RSTDRV. bus reset (read/write)
  1872.                = 0  normal bus reset operation
  1873.                = 1  reset bus asserted
  1874.  
  1875. 0462    w    Software NMI register. writing to this register causes an NMI
  1876.         if NMI's are enabled
  1877.          bit 7 = 1  generates an NMI
  1878.  
  1879. 0464    r    bus master status latch register (slots 1-8). identifies the
  1880.         last bus master that had control of the bus
  1881.          bit 7 = 0  slot 8 had control last
  1882.          bit 6 = 0  slot 7 had control last
  1883.          bit 5 = 0  slot 6 had control last
  1884.          bit 4 = 0  slot 5 had control last
  1885.          bit 3 = 0  slot 4 had control last
  1886.          bit 2 = 0  slot 3 had control last
  1887.          bit 1 = 0  slot 2 had control last
  1888.          bit 0 = 0  slot 1 had control last
  1889.  
  1890. 0465    r    bus master status latch register (slots 9-16)
  1891.          bit 7 = 0  slot 16 had control last
  1892.          bit 6 = 0  slot 15 had control last
  1893.          bit 5 = 0  slot 14 had control last
  1894.          bit 4 = 0  slot 13 had control last
  1895.          bit 3 = 0  slot 12 had control last
  1896.          bit 2 = 0  slot 11 had control last
  1897.          bit 1 = 0  slot 10 had control last
  1898.          bit 0 = 0  slot 9  had control last
  1899.  
  1900. -------------------------------------------------------------------------------
  1901. 0481    r/w    DMA channel 2 address byte 3 (high)
  1902. 0482    r/w    DMA channel 3 address byte 3 (high)
  1903. 0483    r/w    DMA channel 1 address byte 3 (high)
  1904. 0487    r/w    DMA channel 0 address byte 3 (high)
  1905. 0489    r/w    DMA channel 6 address byte 3 (high)
  1906. 048A    r/w    DMA channel 7 address byte 3 (high)
  1907. 048B    r/w    DMA channel 5 address byte 3 (high)
  1908.  
  1909. 04C6    r/w    DMA channel 5 word count byte 2 (high)
  1910. 04CA    r/w    DMA channel 6 word count byte 2 (high)
  1911. 04CE    r/w    DMA channel 7 word count byte 2 (high)
  1912.  
  1913. -------------------------------------------------------------------------------
  1914. 04D0    w    IRQ 0-7 interrupt edge/level registers
  1915.          bit 7 = 1  IRQ 7 is level sensitive
  1916.          bit 6 = 1  IRQ 6 is level sensitive
  1917.          bit 5 = 1  IRQ 5 is level sensitive
  1918.          bit 4 = 1  IRQ 4 is level sensitive
  1919.          bit 3 = 1  IRQ 3 is level sensitive
  1920.          bit 2-0    reserved
  1921.  
  1922. 04D1    w    IRQ 8-15 interrupt edge/level registers
  1923.          bit 7 = 1  IRQ 15 is level sensitive
  1924.          bit 6 = 1  IRQ 14 is level sensitive
  1925.          bit 5 = 1  reserved
  1926.          bit 4 = 1  IRQ 12 is level sensitive
  1927.          bit 3 = 1  IRQ 11 is level sensitive
  1928.          bit 2 = 1  IRQ 10 is level sensitive
  1929.          bit 1 = 1  IRQ 9  is level sensitive
  1930.          bit 0        reserved
  1931.  
  1932. 04D4    w    extended DMA chaining mode register, channels 4-7
  1933.          bit 7-5 = 0  reserved
  1934.          bit 4     = 0  generates IRQ 13
  1935.              = 1  generates terminal count
  1936.          bit 3     = 0  do not start chaining
  1937.              = 1  programming complete
  1938.          bit 2     = 0  disable buffer chaining mode (default)
  1939.              = 1  enable buffer chaining mode
  1940.          bit 1-0      DMA channel select
  1941.  
  1942. 04D6    w    DMA extended mode register for channels 4-7
  1943.         bit settings same as 04B
  1944.          bit 7     = 0  enable stop register
  1945.          bit 6     = 0  terminal count is an output for this channel
  1946. (default)
  1947.          bit 5-4      DMA cycle timing
  1948.              = 00 ISA-compatible (default)
  1949.              = 01 type A timing mode
  1950.              = 10 type B timing mode
  1951.              = 11 burst DMA mode
  1952.          bit 3-2      Address mode
  1953.              = 00 8-bit I/O, count by bytes (default)
  1954.              = 01 16-bit I/O, count by words, address shifted
  1955.              = 10 32-bit I/O, count by bytes
  1956.              = 11 16-bit I/O, count by bytes
  1957.          bit 1-0      DMA channel select
  1958.  
  1959. -------------------------------------------------------------------------------
  1960. 0601    w    System control. Laptop chipset: Headland HL21 & Acer M5105
  1961.          bit 7 = 1  power led on
  1962.          bit 6 = 1  LCD backlight off
  1963.          bit 5
  1964.          bit 4
  1965.          bit 3
  1966.          bit 2 = 1  video chips disabled, screen blanked.
  1967.          bit 1
  1968.          bit 0 = 1  will lock up your machine!
  1969.  
  1970.     r     =04        (always reads back this value)
  1971.  
  1972. -------------------------------------------------------------------------------
  1973. 0620-0627 ----    PC network (adapter 1)
  1974. 0628-062F ----    PC network (adapter 2)
  1975.  
  1976. -------------------------------------------------------------------------------
  1977. 06E2-06E3 ----    data aquisition (adapter 1)
  1978.  
  1979. -------------------------------------------------------------------------------
  1980. 0790-0793 ----    cluster (adapter 1)
  1981.  
  1982. -------------------------------------------------------------------------------
  1983. 0800-08FF ----    I/O port access registers for extended CMOS RAM or SRAM
  1984.         (256 bytes at a time)
  1985.         Sometimes plain text can be seen here.
  1986.  
  1987. -------------------------------------------------------------------------------
  1988. 0A20-0A23 ----    Token Ring (adapter 1)
  1989. 0A24-0A27 ----    Token Ring (adapter 2)
  1990.  
  1991. -------------------------------------------------------------------------------
  1992. 0AE2-0AE3 ----    cluster (adapter 2)
  1993. 0B90-0B93 ----    cluster (adapter 2)
  1994.  
  1995. -------------------------------------------------------------------------------
  1996. 0C00    r/w    page register to write to SRAM or I/O
  1997.  
  1998. -------------------------------------------------------------------------------
  1999. 0C80-0C83 ----    system board ID registers
  2000.  
  2001. -------------------------------------------------------------------------------
  2002. 1390-1393 ----    cluster (adapter 3)
  2003.  
  2004. -------------------------------------------------------------------------------
  2005. 2100-210F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  2006. 2110-211F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  2007. 2120-212F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  2008. 2130-213F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  2009. 2140-214F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  2010. 2150-215F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  2011. 2160-216F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  2012. 2170-217F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  2013.  
  2014. -------------------------------------------------------------------------------
  2015. 2390-2393 ----    cluster (adapter 4)
  2016.  
  2017. -------------------------------------------------------------------------------
  2018. 3220-3227 ----    serial port 3, description same as 03F8
  2019. 3228-322F ----    serial port 4, description same as 03F8
  2020.  
  2021. -------------------------------------------------------------------------------
  2022. 3540-354F ----    IBM SCSI (Small Computer System Interface) adapter
  2023. 3550-355F ----    IBM SCSI (Small Computer System Interface) adapter
  2024. 3560-356F ----    IBM SCSI (Small Computer System Interface) adapter
  2025. 3570-357F ----    IBM SCSI (Small Computer System Interface) adapter
  2026.  
  2027. -------------------------------------------------------------------------------
  2028. 4220-4227 ----    serial port, description same as 03F8
  2029. 4228-422F ----    serial port, description same as 03F8
  2030.  
  2031. -------------------------------------------------------------------------------
  2032. 42E0-42EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2033.  
  2034. 42E1    r/w    GPIB (adapter 2)
  2035.  
  2036. -------------------------------------------------------------------------------
  2037. 5220-5227 ----    serial port, description same as 03F8
  2038. 5228-522F ----    serial port, description same as 03F8
  2039.  
  2040. -------------------------------------------------------------------------------
  2041. 62E0-62EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2042.  
  2043. 62E1    r/w    GPIB (adapter 3)
  2044.  
  2045. -------------------------------------------------------------------------------
  2046. 82E0-82EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2047.  
  2048. 82E1    r/w    GPIB (adapter 4)
  2049.  
  2050. -------------------------------------------------------------------------------
  2051. 82F8-82FF ----    serial port, description same as 03F8
  2052. 83F8-83FF ----    serial port, description same as 03F8
  2053.  
  2054. -------------------------------------------------------------------------------
  2055. A220      ????    soundblaster support in AMI Hi-Flex BIOS  ????
  2056.  
  2057. -------------------------------------------------------------------------------
  2058. A2E0-A2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2059.  
  2060. A2E1    r/w    GPIB (adapter 5)
  2061.  
  2062. -------------------------------------------------------------------------------
  2063. AFFF    r/w    plane 0-3 system latch (video register)
  2064.  
  2065. -------------------------------------------------------------------------------
  2066. B220-B227 ----    serial port, description same as 03F8
  2067. B228-B22F ----    serial port, description same as 03F8
  2068.  
  2069. -------------------------------------------------------------------------------
  2070. C220-C227 ----    serial port, description same as 03F8
  2071. C228-C22F ----    serial port, description same as 03F8
  2072.  
  2073. -------------------------------------------------------------------------------
  2074. D220-D227 ----    serial port, description same as 03F8
  2075. D228-D22F ----    serial port, description same as 03F8
  2076.  
  2077. -------------------------------------------------------------------------------
  2078. C2E0-C2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2079.  
  2080. C2E1    r/w    GPIB (adapter 6)
  2081.  
  2082. -------------------------------------------------------------------------------
  2083. E2E0-E2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  2084.  
  2085. E2E1    r/w    GPIB (adapter 7)
  2086.  
  2087.  
  2088. -------------------------------------------------------------------------------
  2089.  
  2090. MEMORY-MAPPED ADDRESSES
  2091.  
  2092. -------------------------------------------------------------------------------
  2093. 80C00000  Compaq Deskpro 386 system memory board register
  2094.  
  2095. 80C00000 w    RAM relocation register
  2096.         bit 7-2       Reserved, always write 1's.
  2097.         bit 1 = 0  Write-protect 128-Kbyte RAM at FE0000.
  2098.               = 1  Do not write-protect RAM at FE0000.
  2099.         bit 0 = 0  Relocate 128-Kbyte block at FE0000 to address 0E0000
  2100.               = 1  128-Kbyte RAM is addressed only at FE0000.
  2101.  
  2102. 80C00000 r    Diagnostics register
  2103.         bit 7    = 0  memory expansion board is installed
  2104.         bit 6    = 0  second 1 MB of system memory board is installed
  2105.         bit 5-4 = 00 base memory set to 640 KB
  2106.               01 invalid
  2107.               10 base memory set to 512 KB
  2108.               11 base memory set to 256 KB
  2109.         bit 3    = 0  parity error in byte 3
  2110.         bit 2    = 0  parity error in byte 2
  2111.         bit 1    = 0  parity error in byte 1
  2112.         bit 0    = 0  parity error in byte 0 (in 32-bit double word)
  2113.  
  2114. -------------------------------------------------------------------------------
  2115.