home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 32 / hot34.iso / ficheros / DTOOL / INTER57D.ZIP / PORTS.A < prev    next >
Text File  |  1998-03-22  |  342KB  |  9,373 lines

  1. PORTS LIST            Release 57        Last change 22mar98
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998 Ralf Brown
  3. [This file originally by Wim Osterholt <wim@djo.wtm.tudelft.nl>,
  4.  though it has grown considerably since.]
  5.  
  6.         XT, AT and PS/2     I/O port addresses
  7.  
  8. Do NOT consider this information to be complete and accurate.  If you want
  9. to do hardware programming ALWAYS check the appropriate data sheets (but
  10. even they are sometimes in error!).  Be aware that erroneous port programming
  11. can put your data or even your hardware at risk.
  12.  
  13. There are a number of memory-mapped addresses in use for I/O; see MEMORY.LST
  14. for details on memory-mapped I/O.
  15.  
  16. --------!---Note-----------------------------
  17. Note: the port description format is:
  18.  
  19. PPPPw RW  description
  20.  
  21. where:    PPPP    is the four-digit hex port number or a plus sign and three hex
  22.         digits to indicate an offset from a base port address
  23.     w    is blank for byte-size port, 'w' for word, and 'd' for dword
  24.     R    is blank or dash if not readable, 'r' if sometimes readable,
  25.         'R' if "always" readable, '?' if readability unknown
  26.     W    is blank or dash if not writable, 'w' if sometimes writable,
  27.         'W' if "always" writable, 'C' if write-clear, and
  28.         '?' if writability unknown
  29. ----------P0000001F--------------------------
  30. PORT 0000-001F - DMA 1 - FIRST DIRECT MEMORY ACCESS CONTROLLER (8237)
  31. SeeAlso: PORT 0080h-008Fh"DMA",PORT 00C0h-00DFh
  32.  
  33. 0000  R-  DMA channel 0    current address        byte  0, then byte 1
  34. 0000  -W  DMA channel 0    base address        byte  0, then byte 1
  35. 0001  RW  DMA channel 0 word count        byte 0, then byte 1
  36. 0002  R-  DMA channel 1    current address        byte  0, then byte 1
  37. 0002  -W  DMA channel 1    base address        byte  0, then byte 1
  38. 0003  RW  DMA channel 1 word count        byte 0, then byte 1
  39. 0004  R-  DMA channel 2    current address        byte  0, then byte 1
  40. 0004  -W  DMA channel 2    base address        byte  0, then byte 1
  41. 0005  RW  DMA channel 2 word count        byte 0, then byte 1
  42. 0006  R-  DMA channel 3    current address        byte  0, then byte 1
  43. 0006  -W  DMA channel 3    base address        byte  0, then byte 1
  44. 0007  RW  DMA channel 3 word count        byte 0, then byte 1
  45.  
  46. 0008  R-  DMA channel 0-3 status register (see #P001)
  47. 0008  -W  DMA channel 0-3 command register (see #P002)
  48. 0009  -W  DMA channel 0-3 write request register (see #P003)
  49. 000A  RW  DMA channel 0-3 mask register (see #P004)
  50. 000B  -W  DMA channel 0-3 mode register (see #P005)
  51.  
  52. 000C  -W  DMA channel 0-3 clear byte pointer flip-flop register
  53.       any write clears LSB/MSB flip-flop of address and counter registers
  54. 000D  R-  DMA channel 0-3 temporary register
  55. 000D  -W  DMA channel 0-3 master clear register
  56.       any write causes reset of 8237
  57. 000E  -W  DMA channel 0-3 clear mask register
  58.       any write clears masks for all channels
  59. 000F  rW  DMA channel 0-3 write mask register (see #P006)
  60. Notes:    the temporary register is used as holding register in memory-to-memory
  61.       DMA transfers; it holds the last transferred byte
  62.     channel 2 is used by the floppy disk controller
  63.     on the IBM PC/XT channel 0 was used for the memory refresh and
  64.       channel 3 was used by the hard disk controller
  65.     on AT and later machines with two DMA controllers, channel 4 is used
  66.       as a cascade for channels 0-3
  67.     command and request registers do not exist on a PS/2 DMA controller
  68.  
  69. Bitfields for DMA channel 0-3 status register:
  70. Bit(s)    Description    (Table P001)
  71.  7    channel 3 request active
  72.  6    channel 2 request active
  73.  5    channel 1 request active
  74.  4    channel 0 request active
  75.  3    channel terminal count on channel 3
  76.  2    channel terminal count on channel 2
  77.  1    channel terminal count on channel 1
  78.  0    channel terminal count on channel 0
  79. SeeAlso: #P002,#P125
  80.  
  81. Bitfields for DMA channel 0-3 command register:
  82. Bit(s)    Description    (Table P002)
  83.  7    DACK sense active high
  84.  6    DREQ sense active high
  85.  5    =1 extended write selection
  86.     =0 late write selection
  87.  4    rotating priority instead of fixed priority
  88.  3    compressed timing (two clocks instead of four per transfer)
  89.     =1 normal timing (default)
  90.     =0 compressed timing
  91.  2    =1 enable controller
  92.     =0 enable memory-to-memory
  93.  1-0    channel number
  94. SeeAlso: #P001,#P004,#P005,#P126
  95.  
  96. Bitfields for DMA channel 0-3 request register:
  97. Bit(s)    Description    (Table P003)
  98.  7-3    reserved (0)
  99.  2    =0 clear request bit
  100.     =1 set request bit
  101.  1-0    channel number
  102.     00 channel 0 select
  103.     01 channel 1 select
  104.     10 channel 2 select
  105.     11 channel 3 select
  106. SeeAlso: #P004
  107.  
  108. Bitfields for DMA channel 0-3 mask register:
  109. Bit(s)    Description    (Table P004)
  110.  7-3    reserved (0)
  111.  2    =0 clear mask bit
  112.     =1 set mask bit
  113.  1-0    channel number
  114.     00 channel 0 select
  115.     01 channel 1 select
  116.     10 channel 2 select
  117.     11 channel 3 select
  118. SeeAlso: #P001,#P002,#P003,#P128
  119.  
  120. Bitfields for DMA channel 0-3 mode register:
  121. Bit(s)    Description    (Table P005)
  122.  7-6    transfer mode
  123.     00 demand mode
  124.     01 single mode
  125.     10 block mode
  126.     11 cascade mode
  127.  5    direction
  128.     =0 increment address after each transfer
  129.     =1 decrement address
  130.  3-2    operation
  131.     00 verify operation
  132.     01 write to memory
  133.     10 read from memory
  134.     11 reserved
  135.  1-0    channel number
  136.     00 channel 0 select
  137.     01 channel 1 select
  138.     10 channel 2 select
  139.     11 channel 3 select
  140. SeeAlso: #P002,#P129
  141.  
  142. Bitfields for DMA channel 0-3 write mask register:
  143. Bit(s)    Description    (Table P006)
  144.  7-4    reserved
  145.  3    channel 3 mask bit
  146.  2    channel 2 mask bit
  147.  1    channel 1 mask bit
  148.  0    channel 0 mask bit
  149. Note:    each mask bit is automatically set when the corresponding channel
  150.       reaches terminal count or an extenal EOP sigmal is received
  151. SeeAlso: #P004,#P130
  152. ----------P0010001F--------------------------
  153. PORT 0010-001F - DMA CONTROLLER (8237) ON PS/2 MODEL 60 & 80
  154. SeeAlso: PORT 0000h-001Fh,PORT 0080h-008Fh"DMA",PORT 00C0h-00DFh
  155.  
  156. 0018  -W  extended function register (see #P007)
  157. 001A  -W  extended function execute register
  158.  
  159. Bitfields for DMA extended function register:
  160. Bit(s)    Description    (Table P007)
  161.  7-4    function code (see #P008)
  162.  3    reserved (0)
  163.  2-0    channel number
  164.     000 channel 0 select
  165.     001 channel 1 select
  166.     010 channel 2 select
  167.     011 channel 3 select
  168.     100 channel 4 select
  169.     101 channel 5 select
  170.     110 channel 6 select
  171.     111 channel 7 select
  172.  
  173. (Table P008)
  174. Values for DMA extended function codes (data go to/from PORT 001Ah):
  175. Value    Description          Parameters  Results
  176.  00h    current address register      -          CA0,CA1
  177.  02h    write address              -          A0,A1,P
  178.  03h    read  address           A0,A1,P     -
  179.  04h    write word count register   C0,C1     -
  180.  05h    read  word count register     -           C0,C1
  181.  06h    read status register          -         S
  182.  07h    mode register              -         M
  183.  09h    mask channel              -         -
  184.  0Ah    unmask channel              -         -
  185.  0Dh    master clear              -         -
  186. Note:    CA0/CA1      LSB/MSB of the current address register
  187.     A0/A1      LSB/MSB of the base address register
  188.     P      DMA page address
  189.     C0/C1      LSB/MSB of the word count register
  190.     S      status register value (see #P001, #P125)
  191.     M      mode register value (see #P005, #P129)
  192.     first, the extended function register is written, then the extended
  193.       function register execute register is read/written if the function
  194.       being executing requires
  195.  
  196. Bitfields for DMA extended mode register:
  197. Bit(s)    Description    (Table P009)
  198.  7    reserved (0)
  199.  6    =0 8-bit transfer
  200.     =1 16-bit transfer
  201.  5-4    reserved (0)
  202.  3    transfer type
  203.     =0 read from memory
  204.     =1 write to memory
  205.  2    =0 disable memory write
  206.     =1 enable  memory write
  207.  1    reserved (0)
  208.  0    address select
  209.     =0 use 0 as base address
  210.     =1 use a value from base address register
  211. Note:    the IBM PS/2 model 80 technical reference doesn't seem to mention this
  212.       register's address
  213. ----------P0020003F--------------------------
  214. PORT 0020-003F - PIC 1 - PROGRAMMABLE INTERRUPT CONTROLLER (8259A)
  215. SeeAlso: PORT 00A0h-00AFh"PIC 2",INT 08"IRQ0",INT 0F"IRQ7"
  216.  
  217. 0020  -W  PIC initialization command word ICW1 (see #P010)
  218. 0020  -W  PIC output control word OCW2 (see #P015)
  219. 0020  -W  PIC output control word OCW3 (see #P016)
  220. 0020  R-  PIC  interrupt request/in-service registers after OCW3
  221.         request register:
  222.          bit 7-0 = 0  no active request for the corresponding int. line
  223.              = 1  active request for corresponding interrupt line
  224.         in-service register:
  225.          bit 7-0 = 0  corresponding line not currently being serviced
  226.              = 1  corresponding int. line currently being serviced
  227.  
  228. 0021  -W  PIC ICW2,ICW3,ICW4 immed after ICW1 to 0020 (see #P011,#P012,#P013)
  229. 0021  RW  PIC master interrupt mask register OCW1 (see #P014)
  230.  
  231. Bitfields for PIC initialization command word ICW1:
  232. Bit(s)    Description    (Table P010)
  233.  7-5    0 (only used in 8080/8085 mode)
  234.  4    ICW1 is being issued
  235.  3    (LTIM)
  236.     =0  edge triggered mode
  237.     =1  level triggered mode
  238.  2    interrupt vector size
  239.     =0 successive interrupt vectors use 8 bytes (8080/8085)
  240.     =1 successive interrupt vectors use 4 bytes (80x86)
  241.  1    (SNGL)
  242.     =0  cascade mode
  243.     =1  single mode, no ICW3 needed
  244.  0    ICW4 needed
  245. SeeAlso: #P011,#P012,#P013
  246.  
  247. Bitfields for PIC initialization command word ICW2:
  248. Bit(s)    Description    (Table P011)
  249.  7-3    address lines A0-A3 of base vector address for PIC
  250.  2-0    reserved
  251. SeeAlso: #P010,#P012,#P013
  252.  
  253. Bitfields for PIC initialization command word ICW3:
  254. Bit(s)    Description    (Table P012)
  255.  7-0    =0 slave controller not attached to corresponding interrupt pin
  256.     =1 slave controller attached to corresponding interrupt pin
  257. SeeAlso: #P010,#P011,#P013
  258.  
  259. Bitfields for PIC initialization command word ICW4:
  260. Bit(s)    Description    (Table P013)
  261.  7-5    reserved (0)
  262.  4    running in special fully-nested mode
  263.  3-2    mode
  264.     0x nonbuffered mode
  265.     10 buffered mode/slave
  266.     11 buffered mode/master
  267.  1    Auto EOI
  268.  0    =0  8085 mode
  269.     =1  8086/8088 mode
  270. SeeAlso: #P010,#P011,#P012
  271.  
  272. Bitfields for PIC output control word OCW1:
  273. Bit(s)    Description    (Table P014)
  274.  7    disable IRQ7 (parallel printer interrupt)
  275.  6    disable IRQ6 (diskette interrupt)
  276.  5    disable IRQ5 (fixed disk interrupt)
  277.  4    disable IRQ4 (serial port 1 interrupt)
  278.  3    disable IRQ3 (serial port 2 interrupt)
  279.  2    disable IRQ2 (video interrupt)
  280.  1    disable IRQ1 (keyboard, mouse, RTC interrupt)
  281.  0    disable IRQ0 (timer interrupt)
  282. SeeAlso: #P015,#P016,#P124
  283.  
  284. Bitfields for PIC output control word OCW2:
  285. Bit(s)    Description    (Table P015)
  286.  7-5    operation
  287.     000 rotate in auto EOI mode (clear)
  288.     001 (WORD_A) nonspecific EOI
  289.     010 (WORD_H) no operation
  290.     011 (WORD_B) specific EOI
  291.     100 (WORD_F) rotate in auto EOI mode (set)
  292.     101 (WORD_C) rotate on nonspecific EOI command
  293.     110 (WORD_E) set priority command
  294.     111 (WORD_D) rotate on specific EOI command
  295.  4-3    reserved (00 - signals OCW2)
  296.  2-0    interrupt request to which the command applies
  297.     (only used by WORD_B, WORD_D, and WORD_E)
  298. SeeAlso: #P014,#P016
  299.  
  300. Bitfields for PIC output control word OCW3:
  301. Bit(s)    Description    (Table P016)
  302.  7    reserved (0)
  303.  6-5    special mask
  304.     0x  no operation
  305.     10  reset special mask
  306.     11  set special mask mode
  307.  4-3    reserved (01 - signals OCW3)
  308.  2    poll command
  309.  1-0    function
  310.     0x  no operation
  311.     10  read interrupt request register on next read from PORT 0020h
  312.     11  read interrupt in-service register on next read from PORT 0020h
  313. Note:    the special mask mode permits all other interrupts (even those with
  314.       lower priority) to be processed while an interrupt is already in
  315.       service, but will not re-issue an interrupt for a particular IRQ
  316.       while it remains in service
  317. SeeAlso: #P014,#P015
  318. ----------P00220023--------------------------
  319. PORT 0022-0023 - CHIP SET DATA
  320. Note:    These two ports are used by numerous chipsets.    Various chipsets are
  321.       detailed below.
  322.  
  323. 0022  -W  index for accesses to data port
  324. 0023  RW  chip set data
  325. ----------P00220023--------------------------
  326. PORT 0022-0023 - Cyrix Cx486SLC/DLC PROCESSOR - CACHE CONFIGURATION REGISTERS
  327. SeeAlso: PORT 0022h"5x86",PORT 0022h"6x86"
  328.  
  329. 0022  -W  index for accesses to next port (see #P017)
  330. 0023  RW  cache configuration register array (indexed by PORT 0022h)
  331.     Note:    the index must be written to PORT 0022h before every access
  332.           to PORT 0023h; out-of-sequence accesses or index values
  333.           not supported by the processor generate external I/O cycles
  334.  
  335. (Table P017)
  336. Values for Cyrix Cx486SLC/DLC Cache Configuration register number:
  337.  C0h    CR0 (see #P019)
  338.  C1h    CR1 (see #P020)
  339.  C4h    non-cacheable region 1, start address bits 31-24
  340.  C5h    non-cacheable region 1, start address bits 23-16
  341.  C6h    non-cacheable region 1, start addr 15-12, size (low nibble) (see #P018)
  342.  C7h    non-cacheable region 2, start address bits 31-24
  343.  C8h    non-cacheable region 2, start address bits 23-16
  344.  C9h    non-cacheable region 2, start addr 15-12, size (low nibble) (see #P018)
  345.  CAh    non-cacheable region 3, start address bits 31-24
  346.  CBh    non-cacheable region 3, start address bits 23-16
  347.  CCh    non-cacheable region 3, start addr 15-12, size (low nibble) (see #P018)
  348.  CDh    non-cacheable region 4, start address bits 31-24
  349.  CEh    non-cacheable region 4, start address bits 23-16
  350.  CFh    non-cacheable region 4, start addr 15-12, size (low nibble) (see #P018)
  351. SeeAlso: #P023,#P021
  352.  
  353. (Table P018)
  354. Values for Cyrix Cx486SLC/DLC non-cacheable region sizes:
  355.  00h    disabled
  356.  01h    4K
  357.  02h    8K
  358.  03h    16K
  359.  04h    32K
  360.  05h    64K
  361.  06h    128K
  362.  07h    256K
  363.  08h    512K
  364.  09h    1M
  365.  0Ah    2M
  366.  0Bh    4M
  367.  0Ch    8M
  368.  0Dh    16M
  369.  0Eh    32M
  370.  0Fh    4G
  371. SeeAlso: #P017
  372.  
  373. Bitfields for Cyrix Cx486SLC/DLC Configuration Register 0:
  374. Bit(s)    Description    (Table P019)
  375.  0    "NC0" first 64K of each 1M noncacheable in real/V86
  376.  1    "NC1" 640K-1M noncacheable
  377.  2    "A20M" enables A20M# input pin
  378.  3    "KEN"  enables KEN# input pin
  379.  4    "FLUSH" enables FLUSH input pin
  380.  5    "BARB" enables internal cache flushing on bus holds
  381.  6    "C0" cache direct-mapped instead of 2-way associative
  382.  7    "SUSPEND" enables SUSP# input and SUSPA# output pins
  383. SeeAlso: #P017,#P020,#P032
  384.  
  385. Bitfields for Cyrix Cx486SLC/DLC Configuration Register 1:
  386. Bit(s)    Description    (Table P020)
  387.  0    "RPL" enables output pins RPLSET and RPLVAL#
  388. SeeAlso: #P017,#P019,#P024
  389. ----------P00220023--------------------------
  390. PORT 0022-0023 - Cyrix 486S2/D2/DX/DX2/DX4 PROCESSOR - CONFIGURATION REGISTERS
  391. SeeAlso: PORT 0022h"Cx486SLC",PORT 0022h"5x86",PORT 0022h"6x86"
  392.  
  393. 0022  -W  index for accesses to next port (see #P021)
  394. 0023  RW  cache configuration register array (indexed by PORT 0022h)
  395.     Note:    the index must be written to PORT 0022h before every access
  396.           to PORT 0023h; out-of-sequence accesses or index values
  397.           not supported by the processor generate external I/O cycles
  398.  
  399. (Table P021)
  400. Values for Cyrix 486S2/D2/DX/DX2/DX4 configuration register number:
  401.  C2h    CR2 (see #P025)
  402.  C3h    CR3 (see #P026)
  403.  CDh    SMM region, start address bits 31-24
  404.  CEh    SMM region, start address bits 23-16
  405.  CFh    SMM region, start addr 15-12, size (low nibble) (see #P018)
  406.  FEh R    Device Identification #0 (see #P022)
  407.     CPU device ID
  408.  FFh R    Device Identification #1
  409.     bits 3-0: revision
  410.     bits 7-4: stepping
  411. SeeAlso: #P017,#P023,#P031
  412.  
  413. (Table P022)
  414. Values for Cyrix device identification:
  415. (#0 /#1)
  416.  00h    Cx486SLC
  417.  01h    Cx486DlC
  418.  02h    Cx486SLC2
  419.  03h    Cx486DLC2
  420.  04h    Cx486SRx
  421.  05h    Cx486DRx
  422.  06h    Cx486SRx2
  423.  07h    Cx486DRx2
  424.  10h    Cx486S (B-step)
  425.  11h    Cx486S2 (B-step)
  426.  12h    Cx486Se (B-step)
  427.  13h    Cx486S2e (B-step)
  428. 1Ah/05h    Cx486DX-40
  429. 1Bh/08h    Cx486DX2-50
  430. 1Bh/0Bh    Cx486DX2-66
  431. 1Bh/31h    Cx486DX2-v80
  432. 1Fh/36h    Cx486DX4-v100
  433.  28h    5x86 1xs
  434.  29h    5x86 2xs
  435.  2Ah    5x86 1xp
  436.  2Bh    5x86 2xp
  437.  2Ch    5x86 4xs
  438.  2Dh    5x86 3xs
  439.  2Eh    5x86 4xp
  440.  2Fh    5x86 3xp
  441.  30h    6x86 1xs
  442.  31h    6x86 2xs
  443.  32h    6x86 1xp
  444.  33h    6x86 2xp
  445.  34h    6x86 4xs
  446.  35h    6x86 3xs
  447.  36h    6x86 4xp
  448.  37h    6x86 3xp
  449. Note:    #0 is the value in configuration register FEh, while #1 is the value
  450.       in configuration register FFh
  451. SeeAlso: #P021
  452. ----------P00220023--------------------------
  453. PORT 0022-0023 - Cyrix 5x86 PROCESSOR - CONFIGURATION CONTROL REGISTERS
  454. SeeAlso: PORT 0022h"Cx486SLC",PORT 0022h"486S2",PORT 0022h"6x86"
  455.  
  456. 0022  -W  index for accesses to next port (see #P023)
  457. 0023  RW  configuration control register array (indexed by PORT 0022h)
  458.     Note:    the index must be written to PORT 0022h before every access
  459.           to PORT 0023h; out-of-sequence accesses or index values
  460.           not supported by the processor generate external I/O cycles
  461.  
  462. (Table P023)
  463. Values for Cyrix 5x86 configuration registers:
  464.  20h    Performance Control (see #P028)
  465.  C1h    Configuration Control #1 (CCR1) (see #P024)
  466.  C2h    Configuration Control #2 (CCR2) (see #P025)
  467.  C3h    Configuration Control #3 (CCR3) (see #P026)
  468.  CDh    System Memory Management address region #0 (smar0) (see #P029)
  469.  CEh    System Memory Management address region #1 (smar1)
  470.  CFh    System Memory Management address region #2 (smar2)
  471.  E8h    Configuration Control Register 4
  472.  F0h    Power Management (see #P030)
  473.  FEh R    Device Identification #0 (see #P022)
  474.     CPU device ID
  475.  FFh R    Device Identification #1
  476.     bits 3-0: revision
  477.     bits 7-4: stepping
  478. SeeAlso: #P017,#P021,#P031
  479.  
  480. Bitfields for Cyrix 5x86,6x86 Configuration Control Register 1 (CCR1):
  481. Bit(s)    Description    (Table P024)
  482.  0    reserved
  483.  1    enable SMM pins
  484.  2    system management memory access
  485.  3    main memory access
  486.  4    (6x86) no LOCK during bus cycles
  487.  6-5    reserved
  488.  7    (6x86) use address region 3 as SMM space
  489. Note:    bits 1,2,7 may only be written when CCR3 bit 0 is enabled
  490. SeeAlso: #P020,#P025,#P026,#P027
  491.  
  492. Bitfields for Cyrix 5x86,6x86 Configuration Control Register 2 (CCR2):
  493. Bit(s)    Description    (Table P025)
  494.  0    reserved
  495.  1    enable write-back cache interface pins
  496.  2    lock NW bit
  497.  3    suspend on HLT instruction
  498.  4    write-through region 1
  499.  5    reserved
  500.  6    enable burst write cycles
  501.  7    enable suspend pins
  502. SeeAlso: #P024,#P026,#P027
  503.  
  504. Bitfields for Cyrix 5x86,6x86 Configuration Control Register 3 (CCR3):
  505. Bit(s)    Description    (Table P026)
  506.  0    SMM register lock (can only be cleared in SMM mode or by CPU reset)
  507.  1    NMI enable
  508.  2    linear address burst cycles (5x86,6x86 only)
  509.     =0 Pentium-compatible
  510.     =1 linear sequencing
  511.  3    SMM mode (5x86 only)
  512.     =0 486SL
  513.     =1 Cyrix
  514.  7-4    map enable (5x86,6x86 only)
  515.     0000 only allow access to configuration registers C0h-CFh,FEh,FFh
  516.     0001 enable access to all configuration registers
  517. SeeAlso: #P024,#P025,#P027,#P028,#P030
  518.  
  519. Bitfields for Cyrix 5x86,6x86 Configuration Control Register 4 (CCR4):
  520. Bit(s)    Description    (Table P027)
  521.  2-0    I/O recovery time (000 = none, else 2^N clocks)
  522.  3    enable memory-read bypassing (5x86 only)
  523.  4    enable directory table entry cache
  524.  6-5    reserved
  525.  7    enable CPUID instruction (stepping 1+ and Cx6x86)
  526. Note:    this register is only accessible when bits 7-4 of CCR3 are 0001
  527. SeeAlso: #P024,#P025,#P026
  528.  
  529. Bitfields for Cyrix 5x86 Performance Control register:
  530. Bit(s)    Description    (Table P028)
  531.  0    return stack enabled (speculatively execute code after current CALL)
  532.  1    branch-target buffer enabled
  533.  2    loop enable
  534.  6-3    reserved (0)
  535.  7    load-store serialization enabled
  536.     (memory reads and writes may be reorganized into optimum order)
  537. Note:    this register is only accessible when bits 7-4 of CCR3 are 0001
  538. SeeAlso: #P030,#P024
  539.  
  540. Bitfields for Cyrix 5x86 SMM Address Region register:
  541. Bit(s)    Description    (Table P029)
  542.  3-0    block size
  543.  23-4    starting address
  544.  
  545. Bitfields for Cyrix 5x86 Power Management register:
  546. Bit(s)    Description    (Table P030)
  547.  1-0    core clock to bus clock ratio
  548.     00 1:1
  549.     01 2:1
  550.     10 reserved
  551.     11 3:1
  552.  2    CPU running at half bus speed, ignore bits 1-0
  553. Note:    this register is only accessible when bits 7-4 of CCR3 are 0001
  554. ----------P00220023--------------------------
  555. PORT 0022-0023 - Cyrix 6x86 PROCESSOR - CONFIGURATION CONTROL REGISTERS
  556. SeeAlso: PORT 0022h"Cx486",PORT 0022h"5x86"
  557.  
  558. 0022  -W  index for accesses to next port (see #P023)
  559. 0023  RW  configuration control register array (indexed by PORT 0022h)
  560.     Note:    the index must be written to PORT 0022h before every access
  561.           to PORT 0023h; out-of-sequence accesses or index values
  562.           not supported by the processor generate external I/O cycles
  563.  
  564. (Table P031)
  565. Values for Cyrix 6x86 configuration registers:
  566.  C0h    Configuration Control Register 0 (CCR0) (see #P032)
  567.  C1h    Configuration Control #1 (CCR1) (see #P024)
  568.  C2h    Configuration Control #2 (CCR2) (see #P025)
  569.  C3h    Configuration Control #3 (CCR3) (see #P026)
  570.  C4h    Address region 0 (bits 31-24)
  571.  C5h    Address region 0 (bits 23-16)
  572.  C6h    Address region 0 (bits 15-12 and size)
  573.  C7h    Address region 1 (bits 31-24)
  574.  C8h    Address region 1 (bits 23-16)
  575.  C9h    Address region 1 (bits 15-12 and size)
  576.  CAh    Address region 2 (bits 31-24)
  577.  CBh    Address region 2 (bits 23-16)
  578.  CCh    Address region 2 (bits 15-12 and size)
  579.  CDh    Address region 3 (bits 31-24)
  580.  CEh    Address region 3 (bits 23-16)
  581.  CFh    Address region 3 (bits 15-12 and size)
  582.  D0h    Address region 4 (bits 31-24)
  583.  D1h    Address region 4 (bits 23-16)
  584.  D2h    Address region 4 (bits 15-12 and size)
  585.  D3h    Address region 5 (bits 31-24)
  586.  D4h    Address region 5 (bits 23-16)
  587.  D5h    Address region 5 (bits 15-12 and size)
  588.  D6h    Address region 6 (bits 31-24)
  589.  D7h    Address region 6 (bits 23-16)
  590.  D8h    Address region 6 (bits 15-12 and size)
  591.  D9h    Address region 7 (bits 31-24)
  592.  DAh    Address region 7 (bits 23-16)
  593.  DBh    Address region 7 (bits 15-12 and size)
  594.  DCh    Region Control 0
  595.  DDh    Region Control 1
  596.  DEh    Region Control 2
  597.  DFh    Region Control 3
  598.  E0h    Region Control 4
  599.  E1h    Region Control 5
  600.  E2h    Region Control 6
  601.  E3h    Region Control 7
  602.  E8h    Configuration Control Register 4 (see #P027)
  603.  E9h    Configuration Control Register 5 (see #P033)
  604.  FEh R    Device Identification #0 (see #P022)
  605.     CPU device ID
  606.  FFh R    Device Identification #1
  607.     bits 3-0: revision
  608.     bits 7-4: stepping
  609. SeeAlso: #P017,#P023
  610.  
  611. Bitfields for Cyrix 6x86 Configuration Control Register 0:
  612. Bit(s)    Description    (Table P032)
  613.  7-2    ???
  614.  1    address region 640K-1M is noncacheable
  615.  0    ???
  616. SeeAlso: #P019
  617.  
  618. Bitfields for Cyrix 6x86 Configuration Control Register 5:
  619. Bit(s)    Description    (Table P033)
  620.  7-6    reserved
  621.  5    enable all address-region registers (control registers C4h-DBh)
  622.  4    assert LBA# pin on all accesses to 640K-1M
  623.  3-1    reserved
  624.  0    allocate new cache lines only on read misses
  625. SeeAlso: #P032,#P027,#P031
  626. --------X-P00220023--------------------------
  627. PORT 0022-0023 - Intel 82358DT 'Mongoose' EISA CHIPSET - 82359 DRAM CONTROLLER
  628. Notes:    this chip uses a chip ID of 01
  629.     the LIM register herein use a chip ID of 1A
  630. Index: Intel 82351
  631.  
  632. 0022  -W  index for accesses to data port (see #P035,#P036,#P037)
  633. 0023  RW  chip set data
  634.  
  635. (Table P034)
  636. Values for Intel 82351/82359 chip ID:
  637.  01h    82359 DRAM controller, general registers
  638.  02h    82351 EISA local I/O support
  639.  A1h    82359 DRAM controller, EMS registers
  640.  FFh    no chip accessible (default)
  641. SeeAlso: #P035,#P036,#P037
  642.  
  643. (Table P035)
  644. Values for 82359 DRAM controller general register index:
  645.  00h    DRAM bank 0 type
  646.     bit 7    unknown
  647.     bit 6-4    000 DRAM in bank 0 (standard)
  648.         001 bank 1
  649.         010 bank 2
  650.         011 bank 3
  651.         100 banks 0,1
  652.         101 banks 2,3
  653.         110 banks 0,1,2,3
  654.         111 empty (standard for 1,2,3)
  655.     bit 3-2    unknown
  656.     bit 1-0    00 64K chips used
  657.         01 256K
  658.         10 1M
  659.         11 4M
  660.  01h    DRAM bank 1 type
  661.  02h    DRAM bank 2 type
  662.  03h    DRAM bank 3 type
  663.  04h    DRAM speed detection/selection
  664.  05h    DRAM interleave control
  665.  06h    RAS line mode
  666.  07h    cache-enable selection
  667.  08h    mode register A (DRAM, cache)
  668.  09h    mode register B (cache, burst modes, BIOS size)
  669.  0Ah    mode register C (concurrency control, burst/cycle speed)
  670.  10h    host timing
  671.  11h    host-system delay timing
  672.  12h    system timing
  673.  13h    DRAM row precharge time
  674.  14h    DRAM row timing
  675.  15h    DRAM column timing
  676.  16h    CAS pulse width
  677.  17h    CAS-to-MDS delay
  678.  21h    chip ID register -- selects which chip responds on these ports
  679.     (see #P034)
  680.  28h-2Ch    parity-error trap address
  681.  30h    page hit cycle length (read)
  682.  31h    page miss cycle length (read)
  683.  32h    row miss cycle length (read)
  684.  33h    page hit cycle length (write)
  685.  34h    page miss cycle length (write)
  686.  35h    row miss cycle length (write)
  687.  40h    memory enable 00000h-7FFFFh
  688.  41h    memory enable 80000h-9FFFFh
  689.  42h    memory enable A0000h-AFFFFh
  690.  43h    memory enable B0000h-BFFFFh
  691.  44h    memory enable C0000h-CFFFFh
  692.  45h    memory enable D0000h-DFFFFh
  693.  46h    memory enable E0000h-EFFFFh
  694.  47h    memory enable F0000h-FFFFFh
  695.  4Eh    remap 80000h-FFFFFh to extended memory
  696.  50h-53h    programmable attribute map 1
  697.  54h-57h    programmable attribute map 2
  698.  58h-5Bh    programmable attribute map 3
  699.  5Ch-5Fh    programmable attribute map 4
  700.  83h-84h    split address register (address bits A31-A20)
  701.  85h    cache control
  702.  8Bh    system throttle
  703.  8Ch    host throttle
  704.  8Dh    host memory throttle watchdog
  705.  8Eh    host system throttle
  706.  8Fh    host system throttle watchdog
  707.  90h    RAM enable
  708.  91h    RAM disable
  709.  92h-93h    elapsed-time registers
  710.  94h-95h    host memory ownership request
  711.  96h-97h    system memory ownership request
  712.  98h-99h    host memory ownership
  713.  9Ah-9Bh    system bus ownership
  714.  9Ch-9Dh    host system bus request
  715.  9Eh-9Fh    memory ownership transfer
  716. SeeAlso: #P036,#P037
  717.  
  718. (Table P036)
  719. Values for Intel 82359 DRAM controller EMS register index:
  720.  00h    EMS cotnrol
  721.  21h    chip ID register -- selects which chip responds on these ports
  722.     (see #P034)
  723.  80h-8Fh    EMS page registers, pages 0-7
  724. SeeAlso: #P035,#P037
  725.  
  726. (Table P037)
  727. Values for Intel 82351 EISA Local I/O register index:
  728.  21h    chip ID register -- selects which chip responds on these ports
  729.     (see #P034)
  730.  C0h    peripheral enable register A
  731.  C1h    peripheral enable register B
  732.  C2h    parallel configuration register
  733.  C3h    serial configuration register A
  734.  C4h    floppy disk controller configuration register
  735.  C5h    serial configuration register B
  736.  C6h    COM3 port address (low)
  737.  C7h    COM3 port address (high)
  738.  C8h    COM4 port address (low)
  739.  C9h    COM4 port address (high)
  740.  D0h-D3h    general chip select lines 0-3 (mask registers)
  741.  D4h-D7h    general chip select line addresses 0-3 (low bytes)
  742.  D8h-DBh    general chip select line addresses 0-3 (high bytes)
  743.  DCh    extended CMOS RAM page port address (low)
  744.  DDh    extended CMOS RAM page port address (high)
  745.  DFh    extended CMOS RAM access select address (high byte)
  746.  E8h-EBh    EISA ID configuration registers (reflect at PORT 0C80h)
  747. SeeAlso: #P035,#P036
  748. --------X-P00220023--------------------------
  749. PORT 0022-0023 - Intel 82374EB/SB EISA CHIPSET
  750. Index: Intel 82374EB;Intel 82374SB
  751.  
  752. 0022  -W  index for accesses to data port (see #P038)
  753. 0023  RW  chip set data
  754.  
  755. (Table P038)
  756. Values for Intel 82374 register index:
  757.  02h    ESC identification register
  758.     (82374 will only respond to ports 0022h and 0023h after an 0Fh
  759.      is written to this register)
  760. !!!29047604.pdf pg. 36
  761.  08h    revision ID register
  762.  40h    mode select
  763.  42h    BIOS Chip Select A
  764.  43h    BIOS Chip Select B
  765.  4Dh    EISA clock divisor
  766.  4Eh    peripheral Chip Select A
  767.  4Fh    peripheral Chip Select B
  768.  50h-53h EISA ID registers
  769.  57h    scatter/gather relocate base address (see also #0871)
  770.     (specifies bits 15-0 if S/G port addresses [low byte always 10h-3Fh])
  771.  59h    APIC base address relocation
  772.  60h-63h PCI IRQn# route control (see also #0872)
  773.  64h    general-purpose chip select low address 0
  774.  65h    general-purpose chip select high address 0
  775.  66h    general-purpose chip select mask register 0
  776.  68h    general-purpose chip select low address 1
  777.  69h    general-purpose chip select high address 1
  778.  6Ah    general-purpose chip select mask register 1
  779.  6Ch    general-purpose chip select low address 2
  780.  6Dh    general-purpose chip select high address 2
  781.  6Eh    general-purpose chip select mask register 2
  782.  6Fh    general-purpose peripheral X-Bus control
  783. ---SB only---
  784.  70h    PCI/APIC control
  785.  88h    test control
  786.  A2h-A3h  SMI enable
  787.  A4h-A7h  System Event Enable
  788.  A8h    Fast-Off timer
  789.  AAh-ABh SMI Request
  790.  ACh    Clock Scale STPCLK# low timer
  791.  AEh    Clock Scale STPCLK# high timer
  792. ----------P00220023--------------------------
  793. PORT 0022-0023 - CHIPSET FROM ETEC CHEETAH ET6000 (SINGLE CHIP)
  794.  
  795. 0022  RW  chip set data
  796. 0023  ?W  index for accesses to data port (see #P039)
  797.  
  798. (Table P039)
  799. Values for Etec Cheetah ET6000 chip set register index:
  800.  10h    system configuration register (see #P040)
  801.  11h    cache configuration & non-cacheable block size register (see #P041)
  802.  12h    non-cacheable block address register
  803.     bit 7-1    non-cacheable address, A25-A19
  804.     bit 0    reserved
  805.  13h    DRAM bank & type configuration register (see #P042)
  806.  14h    DRAM configuration register (see #P043)
  807.  15h    shadow RAM configuration register (see #P044)
  808.  
  809. Bitfields for Etec Cheetah ET6000 system configuration register:
  810. Bit(s)    Description    (Table P040)
  811.  7-6    00 turbo/non-turbo
  812.     01 local device supported
  813.     10 suspend mode
  814.     11 illegal
  815.  5    reserved
  816.  4    refresh selection
  817.     0 = AT type refresh
  818.     1 = concurrent refresh
  819.  3    slow refresh  95mSec enabled
  820.  2    fast reset delay
  821.     0 = do not use delay
  822.     1 = wait for 2mSec delay
  823.  1    wait for HALT after KBDRST
  824.  0    RAM at A0000-BFFFF
  825.     0 = AT bus cycle
  826.     1 = local bus cycle
  827. SeeAlso: #P039
  828.  
  829. Bitfields for Etec Cheetah ET6000 cache configuration register:
  830. Bit(s)    Description    (Table P041)
  831.  7-5    000 disabled
  832.     001 512K
  833.     010 1M
  834.     011 2M
  835.     100 4M
  836.     101 8M
  837.     110 16M
  838.     111 32M
  839.  4    DRAM banks
  840.     0 = 2-bank DRAM
  841.     1 = 4-bank DRAM
  842.  3-0    reserved
  843. SeeAlso: #P039
  844.  
  845. Bitfields for Etec Cheetah ET6000 DRAM bank & type configuration register:
  846. Bit(s)    Description    (Table P042)
  847.  7-6    bank 3 DRAM type
  848.     00 none
  849.     01 256K
  850.     10 1M
  851.     11 4M
  852.  5-4    bank 2 DRAM type
  853.  3-2    bank 1 DRAM type
  854.  1-0    bank 0 DRAM type
  855. SeeAlso: #P039
  856.  
  857. Bitfields for Etec Cheetah ET6000 DRAM configuration register:
  858. Bit(s)    Description    (Table P043)
  859.  7    on-board memory range 15M to 16M disabled
  860.  6    on-board memory range 512K-640K disabled
  861.  5    ROM chip select at C0000-DFFFF enabled
  862.  4    RAS to CAS time
  863.     0 = 1 SYSCLCK,    not for R0WS
  864.     1 = 2 SYSCLCK
  865.  3    RAS precharge time
  866.     0 = 1.5 SYSCLCK
  867.     1 = 2.5 SYSCLCK
  868.  2-1    read cycle wait state
  869.     00 = 0 wait state
  870.     01 = 1 ws
  871.     10 = 2 ws
  872.     11 = 3 ws
  873.  0    write cycle wait state
  874.     0 = 0 ws
  875.     1 = 1 ws
  876. SeeAlso: #P039
  877.  
  878. Bitfields for Etec Cheetah ET6000 shadow RAM configuration register:
  879. Bit(s)    Description    (Table P044)
  880.  7    shadow at C0000-FFFFF
  881.     0 = non-cacheable
  882.     1 = cacheable and cache-write-proteced
  883.  6    access ROM/RAM at F0000-FFFFF
  884.     0 = read from ROM, write to RAM
  885.     1 = read from shadow, write is protected
  886.  5    access ROM/RAM at E0000-EFFFF
  887.     0 = access on-board ROM, AT bus cycle
  888.     1 = access shadow E0000-EFFFF enabled
  889.  4    RAM at E0000-EFFFF is read-only
  890.  3    access ROM/RAM at D0000-DFFFF
  891.     0 = access on-board ROM, AT bus cycle
  892.     1 = access shadow D0000-DFFFF enabled
  893.  2    RAM at D0000-DFFFF is read-only
  894.  1    access ROM/RAM at C0000-CFFFF
  895.     0 = access on-board ROM, AT bus cycle
  896.     1 = access shadow C0000-CFFFF enabled
  897.  0    RAM at C0000-CFFFF is read-only
  898. SeeAlso: #P039
  899. ----------P00220023--------------------------
  900. PORT 0022-0023 - Hewlett-Packard Hornet chipset (HP 100LX/200LX)
  901.  
  902. 0022  RW  index for accesses to data port (see Table P189)
  903. 0023  RW  chip set data
  904.  
  905. (Table P045)
  906. Values for HP Hornet chipset register index:
  907.  1Eh    buzzer volume/clock oscillator speed
  908.     bit 7-6: buzzer volume
  909.     bit 5-4: system oscillator speed
  910.         00: 10.738636MHz
  911.         01: 15.836773MHz(HP 100/200LX has oscillator with this speed)
  912.         10: 21.477272MHz
  913.         11: 31.673550MHz
  914.  21h    display timing???
  915.  23h    LCD contrast (see INT15h AH=62h)
  916.     valid values: 00h-1fh (1fh is the darkest)
  917.  51h    power adapter status
  918.     bit 7-1: ???
  919.     bit 0: power adapter status(0=inactive/1=active)
  920.  52h    nicad charge status
  921.     bit 7-3: ???
  922.     bit 2: battery charging status(0=???/1=slow charge)
  923.     bit 1-0: ???
  924.  53h    nicad charge status
  925.     bit 7-1: ???
  926.     bit 0: battery charging status(0=???/1=fast charge)
  927.  80h    memory wait for internal ROM
  928.     valid values: 00h-07h
  929.  81h    memory wait for internal RAM
  930.     valid values: 00h-03h
  931.  82h    memory wait for external RAM
  932.     valid values: 00h-0fh
  933.  87h    battery status???
  934. ---------------------------------------------
  935. PORT 0022-0023 - Chips&Technologies 82C100/110 - CONFIGURATION REGISTERS
  936. Note:    each access to PORT 0023h must immediately follow a write to
  937.       PORT 0022h (this is to avoid accidental accesses)
  938.  
  939. 0022  -W  configuration register index (see #P450)
  940. 0023  RW  configuration register data
  941.  
  942. (Table P450)
  943. Values for Chips&Technologies 82C100/110 configuration register index:
  944.  40h    clock mode/size (see #P451)
  945.  41h    system configuration (see #P452)
  946.  42h    configuration valid (see #P453)
  947.  43h    DIP switch emulation (see #P458)
  948.  44h-47h substitute NMI vector, bytes 0-3
  949.     (these specify the vector to be substituted at the INT 02 vector's
  950.       memory address whenever an NMI occurs, preventing application
  951.       software from modifying the NMI handler)
  952.  48h    refresh timer counter (see #P454)
  953.  49h    wait state select, refresh enable, keyboard type (see #P455)
  954.  4Ah    reserved
  955.  4Bh    sleep/memory configuration (see #P456)
  956.  4Ch    EMS configuration (see #P457)
  957.  4Dh-4Fh reserved
  958.  
  959. Bitfields for Chips&Technologies 82C100 clock mode/size register:
  960. Bit(s)    Description    (Table P451)
  961.  !!!
  962. !!!chips\82c110.pdf p.35
  963. SeeAlso: #P450
  964.  
  965. Bitfields for Chips&Technologies 82C100 system configuration register:
  966. Bit(s)    Description    (Table P452)
  967.  !!!
  968. SeeAlso: #P450
  969.  
  970. Bitfields for Chips&Technologies 82C100 configuration valid register:
  971. Bit(s)    Description    (Table P453)
  972.  !!!
  973. SeeAlso: #P450
  974.  
  975. Bitfields for Chips&Technologies 82C110 DIP Switch Emulation register:
  976. Bit(s)    Description    (Table P458)
  977.  !!!chips\82c110.pdf p.36
  978. SeeAlso: #P450
  979.  
  980. Bitfields for Chips&Technologies 82C100 refresh timer count register:
  981. Bit(s)    Description    (Table P454)
  982.  !!!
  983. SeeAlso: #P450
  984.  
  985. Bitfields for Chips&Technologies 82C100 wait state select register:
  986. Bit(s)    Description    (Table P455)
  987.  !!!
  988. SeeAlso: #P450
  989.  
  990. Bitfields for Chips&Technologies 82C100 sleep/memory configuration:
  991. Bit(s)    Description    (Table P456)
  992.  !!!
  993. SeeAlso: #P450
  994.  
  995. Bitfields for Chips&Technologies 82C100 EMS configuration register:
  996. Bit(s)    Description    (Table P457)
  997.  !!!
  998. SeeAlso: #P450
  999. ----------P00220023--------------------------
  1000. PORT 0022-0023 - Chips&Technologies 82C235 "SCAT" - CONFIGURATION REGISTERS
  1001. Note:    each access to PORT 0023h must immediately follow a write to
  1002.       PORT 0022h (this is to avoid accidental accesses)
  1003.  
  1004. 0022  -W  configuration register index (see #P459)
  1005. 0023  RW  configuration register data
  1006.  
  1007. (Table P459)
  1008. Values for Chips&Technologies 82C235 configuration register index:
  1009.  01h    DMA wait-state control
  1010.  40h    version (read-only)
  1011.  41h    clock control
  1012.  42h-43h reserved (but listed as read-write in docs)
  1013.  44h    peripheral control
  1014.  45h    miscellaneous status
  1015.  46h    power management
  1016.  47h    reserved
  1017.  48h    ROM enable
  1018.  49h    RAM write-protect control
  1019.  4Ah    shadow RAM enable 1
  1020.  4Bh    shadow RAM enable 2
  1021.  4Ch    shadow RAM enable 3
  1022.  4Dh    DRAM configuration
  1023.  4Eh    extended boundary
  1024.  4Fh    EMS control
  1025.  !!!chips\82c235.pdf p.87, p.140
  1026. ----------P00220023--------------------------
  1027. PORT 0022-0023 - Chips&Technologies 82C311 - CONFIGURATION REGISTERS
  1028. Note:    each access to PORT 0023h must immediately follow a write to
  1029.       PORT 0022h (this is to avoid accidental accesses)
  1030.  
  1031. 0022  -W  configuration register index (see #P460)
  1032. 0023  RW  configuration register data
  1033.  
  1034. (Table P460)
  1035. Values for Chips&Technologies 82C311 configuration register index:
  1036.  04h    version (read-only)   !!!chips\82c311.pdf p.65
  1037.  05h    AT-bus command delay
  1038.  06h    AT-bus wait-state control
  1039.  08h    identification
  1040.  09h    low RAM/ROM configuration
  1041.  0Ch    memory enable map (80000h-9FFFFh)
  1042.  0Dh    memory enable map (A0000h-BFFFFh)
  1043.  0Eh    memory enable map (C0000h-DFFFFh)
  1044.  0Fh    memory enable map (E0000h-FFFFFh)
  1045.  10h    block 0 type and start address
  1046.  11h    block 0 DRAM timing
  1047.  12h    block 1 type and start address
  1048.  13h    block 1 DRAM timing
  1049.  14h    block 2 type and start address
  1050.  15h    block 2 DRAM timing
  1051.  16h    block 3 type and start address
  1052.  17h    block 3 DRAM timing
  1053.  18h    memory block types
  1054.  20h    cache control
  1055.  21h    directory RAM control 1
  1056.  22h    tag RAM directory address (low)
  1057.  23h    reference location
  1058.  24h    SRAM configuration/direct access address
  1059.  25h    directory RAM control 2
  1060.  26h    READY timeout
  1061.  28h    error source/address
  1062.  29h    error address (bits 23-16)
  1063.  2Ah    memory enable map (00000h-7FFFFh)
  1064.  2Bh    miscellaneous control
  1065.  2Ch    middle RAM/ROM configuration
  1066.  2Fh    page mode posted-write control (82C311 rev. C only)
  1067.  30h    block 0 non-cacheable address (bits 23-16)
  1068.  31h    block 0 non-cacheable address (bits 15-12) and size
  1069.  32h    block 1 non-cacheable address (bits 23-16)
  1070.  33h    block 1 non-cacheable address (bits 15-12) and size
  1071.  34h    block 2 non-cacheable address (bits 23-16)
  1072.  35h    block 2 non-cacheable address (bits 15-12) and size
  1073.  36h    block 3 non-cacheable address (bits 23-16)
  1074.  37h    block 3 non-cacheable address (bits 15-12) and size
  1075.  38h    block 0/1 non-cacheable addresses (bits 26-24)
  1076.  39h    block 2/3 non-cacheable addresses (bits 26-24)
  1077.  60h    fast reset control
  1078. !!!chips\82c311.pdf p.76, p.115
  1079. ----------P00220023--------------------------
  1080. PORT 0022-0023 - Chips&Technologies 82C315 - CONFIGURATION REGISTERS
  1081. Note:    each access to PORT 0023h must immediately follow a write to
  1082.       PORT 0022h (this is to avoid accidental accesses)
  1083. SeeAlso: PORT 0022h"82C311",PORT 0022h"82C316"
  1084.  
  1085. 0022  -W  configuration register index (see #P461)
  1086. 0023  RW  configuration register data
  1087.  
  1088. (Table P461)
  1089. Values for Chips&Technologies 82C315 configuration register index:
  1090.  07h    processor and bus clock source selection (see #P462)
  1091.  
  1092. Bitfields for C&T 82C315 clock source selection register:
  1093. Bit(s)    Description    (Table P462)
  1094.  7-5    reserved (0)
  1095.  4    80387 is present
  1096.  3    processor clock select
  1097.     =0 CLK2IN
  1098.     =1 AT bus state machine clock
  1099.  2-0    bus clock source select
  1100.     000 CLK2IN/5
  1101.     001 CLK2IN/4
  1102.     010 CLK2IN/3
  1103.     011 CLK2IN/2
  1104.     100 ATCLK
  1105. SeeAlso: #P461
  1106. ----------P00220023--------------------------
  1107. PORT 0022-0023 - Chips&Technologies 82C316 - CONFIGURATION REGISTERS
  1108. Note:    each access to PORT 0023h must immediately follow a write to
  1109.       PORT 0022h (this is to avoid accidental accesses)
  1110. SeeAlso: PORT 0022h"82C311",PORT 0022h"82C315",PORT 0022h"82C811"
  1111.  
  1112. 0022  -W  configuration register index (see #P463)
  1113. 0023  RW  configuration register data
  1114.  
  1115. (Table P463)
  1116. Values for Chips&Technologies 82C316 configuration register index:
  1117.  01h    clock/wait-state control    !!!chips\cs8233.pdf p.178
  1118.  26h    RTC/NMI/Coprocessor reset    !!!chips\cs8233.pdf p.231
  1119.  71h    programmable I/O port 1 address, bits 15-8
  1120.  72h    programmable I/O port 1 address, bits 7-0
  1121.  73h    programmable I/O port 1 enable
  1122.  74h    programmable I/O port 2 address, bits 15-8
  1123.  75h    programmable I/O port 2 address, bits 7-0
  1124.  76h    programmable I/O port 2 enable
  1125.  77h    programmable I/O port 3 address, bits 15-8
  1126.  78h    programmable I/O port 3 address, bits 7-0
  1127.  79h    programmable I/O port 3 enable
  1128. SeeAlso: #P461
  1129. --------h-P00220023--------------------------
  1130. PORT 0022-0023 - Chips&Technologies 82C811/82C812 - CONFIGURATION REGISTERS
  1131. Note:    each access to PORT 0023h must immediately follow a write to
  1132.       PORT 0022h (this is to avoid accidental accesses)
  1133. SeeAlso: PORT 0022h"82C311",PORT 0022h"82C315"
  1134.  
  1135. 0022  -W  configuration register index (see #P467)
  1136. 0023  RW  configuration register data
  1137.  
  1138. (Table P467)
  1139. Values for Chips&Technologies 82C811/812 configuration register index:
  1140.  60h    (82C811) processor clock select (see #P468)
  1141.  61h    (82C811) command delay (see #P469)
  1142.  62h    (82C811) wait states (see #P470)
  1143. ---82C812---
  1144.  64h    version (see #P471)
  1145.  65h    ROM configuration
  1146.  66h    memory enable 1
  1147.  67h    memory enable 2
  1148.  68h    memory enable 3
  1149.  69h    memory enable 4
  1150.  6Ah    bank 0/1 enable
  1151.  6Bh    memory configuration
  1152.  6Ch    bank 2/3 enable
  1153.  6Dh    EMS base address
  1154.  6Eh    EMS address extension
  1155.  6Fh    miscellaneous
  1156. !!!chips\cs8281.pdf p.48
  1157.  
  1158. Bitfields for C&T 82C811 processor clock select:
  1159. Bit(s)    Description    (Table P468)
  1160.  7-6    82C811 release number (00 = initial release)
  1161.  5    fast CPU reset initiated by changing this bit from 0 to 1
  1162.  4    processor clock
  1163.     0 CLK2IN (default)
  1164.     1 BCLK
  1165.  3    reserved
  1166.  2    enable NMI generate on timeout of local-bus READY# signal
  1167.  1    reserved
  1168.  0    local-bus READY# signal timed out (128 clock cycles0
  1169. SeeAlso: #P467,#P469,#P470
  1170.  
  1171. Bitfields for C&T 82C811 command delay register:
  1172. Bit(s)    Description    (Table P469)
  1173.  7    enable additional address bus hold time
  1174.  6    reserved (1)
  1175.  5-4    AT-bus 16-bit memory access delay, in BCLK cycles (default = 0)
  1176.  3-2    AT-bus 8-bit memory access delay, in BCLK cycles (default = 1)
  1177.  1-0    I/O command delay, in BCLK cycles (default = 1)
  1178. SeeAlso: #P467,#P468,#P470
  1179.  
  1180. Bitfields for C&T 82C811 wait states register:
  1181. Bit(s)    Description    (Table P470)
  1182.  7    80387sx is present
  1183.  6    coprocessor is ready
  1184.  5-4    AT-bus 16-bit cycle wait states (default = 3)
  1185.  3-2    AT-bus 8-bit cycle wait states (00=two ... 11=five [default])
  1186.  1-0    bus clock (BCLK)
  1187.     00 CLK2IN/2 (default)
  1188.     01 CLK2IN/3
  1189.     10 ATCLK
  1190.     11 reserved
  1191. SeeAlso: #P467,#P468,#P469
  1192.  
  1193. Bitfields for C&T 82C812 version register:
  1194. Bit(s)    Description    (Table P471)
  1195.  7    NEATsx memory controller (0 = 82C812)
  1196.  6-5    82C812 revision (00 = initial release)
  1197.  4-0    reserved
  1198. SeeAlso: #P467
  1199. --------h-P00220023--------------------------
  1200. PORT 0022-0023 - Chips&Technologies 84031/84035 - CONFIGURATION REGISTERS
  1201. Note:    each access to PORT 0023h must immediately follow a write to
  1202.       PORT 0022h (this is to avoid accidental accesses)
  1203. SeeAlso: PORT 0022h"82C311",PORT 0022h"82C315"
  1204.  
  1205. 0022  -W  configuration register index (see #P464)
  1206. 0023  RW  configuration register data
  1207.  
  1208. (Table P464)
  1209. Values for Chips&Technologies 84031/84035 configuration register index:
  1210.  01h    (84035) IPC DMA controller wait states and clock (see #P477)
  1211. !!!chips\82310.pdf p.71
  1212. !!!chips\api22.pdf p.33
  1213.  05h    (84031) ISA-bus command delays (see #P478)
  1214.  06h    (84031) ISA-bus wait states (see #P479)
  1215.  07h    (84031) ISA-bus clock select (see #P480)
  1216.  08h    (84035) performance control (see #P481)
  1217.  09h    (84035) miscellaneous control (see #P482)
  1218.  0Ah    (84035) DMA clock select (see #P483)
  1219.  10h    (84031) DRAM timing (see #P484)
  1220. !!!chips\api22.pdf p.49
  1221.  11h    (84031) DRAM setup
  1222.  12h    (84031) block 0/1 DRAM configuration
  1223.  13h    (84031) block 2/3 DRAM configuration
  1224.  14h    (84031) DRAM block 0 start address
  1225.  15h    (84031) DRAM block 1 start address
  1226.  16h    (84031) DRAM block 2 start address
  1227.  17h    (84031) DRAM block 3 start address
  1228.  18h    (84031) video shadow / local bus control
  1229.  19h    (84031) shadow RAM read enable
  1230.  1Ah    (84031) shadow RAM write enable
  1231.  1Bh    (84031) ROMCS enable
  1232.  1Ch    (84031) soft reset / GATEA20
  1233.  
  1234. Bitfields for C&T 84035 IPC DMA controller configuration:
  1235. Bit(s)    Description    (Table P477)
  1236.  7-6    reserved
  1237.  5-4    wait states for 16-bit DMA
  1238.     00 one (default)
  1239.     01 two
  1240.     10 three
  1241.     11 four
  1242.  3-2    wait states for 8-bit DMA (settings same as bits 5-4)
  1243.  1    disable one-cycle delay of MEMR# signal    after IOR#
  1244.  0    DMA clock (0 = BUSCLK/2 [default], 1 = BUSCLK)
  1245. SeeAlso: #P464,#P481
  1246.  
  1247. Bitfields for C&T 84031 ISA-bus command delays:
  1248. Bit(s)    Description    (Table P478)
  1249.  !!!
  1250. SeeAlso: #P464,#P479,#P480
  1251.  
  1252. Bitfields for C&T 84031 ISA-bus wait states:
  1253. Bit(s)    Description    (Table P479)
  1254.  !!!
  1255. SeeAlso: #P464,#P478,#P480
  1256.  
  1257. Bitfields for C&T 84031 ISA-bus clock select:
  1258. Bit(s)    Description    (Table P480)
  1259.  !!!
  1260. SeeAlso: #P464,#P478,#P479
  1261.  
  1262. Bitfields for C&T 84035 performance control:
  1263. Bit(s)    Description    (Table P481)
  1264.  7    flush 486 cache during every slow-mode hold (keeps CPU from running out
  1265.       of L1 cache during holds)
  1266.  6-0    width of CPU hold pulse in BUSCLKs (0-127)
  1267. SeeAlso: #P464,#P477,#P482
  1268.  
  1269. Bitfields for C&T 84035 miscellaneous control:
  1270. Bit(s)    Description    (Table P482)
  1271.  7    floating-point error mode
  1272.     =0 generate IRQ13 internally on FERR#
  1273.     =1 use external logic to generate IRQ13
  1274.  6    keyboard interrupt mode
  1275.     =0 receive IRQ1 directly on IRQ1 pin
  1276.     =1 receive IRQ1 over control link
  1277.  5    disable GATEA20 emulation
  1278.     =0 A20 controlled solely by PORT 0092h
  1279.     =1 A20 is OR of PORT 0092h and emulated 8042 A20 control
  1280.  4    A20M#/TEST# function
  1281.     =0 pin is TEST# input
  1282.     =1 pin is A29M# output
  1283.  3    reserved
  1284.  2    enable 8254 Timer 1 refresh requests
  1285.     clearing this bit prevents problems that may be caused by a refresh
  1286.       request which occurs during a reset sequence
  1287.  1    use VL-bus-compatible preemptive arbitration for LGNT#
  1288.  0    deturbo mode (enable CPU holds as specified by performance-control
  1289.       register) (see #P481)
  1290. Note:    the documentation says that bit 6 should remain clear
  1291. SeeAlso: #P464,#P481
  1292.  
  1293. Bitfields for C&T 84035 DMA clock select:
  1294. Bit(s)    Description    (Table P483)
  1295.  7    disable internal real-time clock
  1296.  6-4    reserved (0)
  1297.  3-0    DMA clock
  1298.     0000 SCLK/10
  1299.     0001 SCLK/8
  1300.     0010 SCLK/6
  1301.     1000 SCLK/5 (use with 40 MHz SCLK)
  1302.     1001 SCLK/4 (use with 33 MHz SCLK)
  1303.     1010 SCLK/3 (use with 25 MHz SCLK)
  1304.     1011 SCLK/2.5 (for 20 MHz SCLK)
  1305.     1100 SCLK/2 (for 16 MHz SCLK)
  1306.     1101 SCLK/1.5
  1307.     else reserved
  1308. Note:    bits 3-0 should normally be set the same as register 07h bits 3-0
  1309. SeeAlso: #P464
  1310.  
  1311. Bitfields for C&T 84031 DRAM timing:
  1312. Bit(s)    Description    (Table P484)
  1313.  7-6    reserved (0)
  1314.  5
  1315.  4
  1316.  3
  1317.  2    !!!
  1318.  1    reserved (0)
  1319.  0    read timing
  1320.     0 = 3-2-2-2
  1321.     1 = 4-3-3-3
  1322. SeeAlso: #P464,#P485
  1323.  
  1324. Bitfields for C&T 84031 DRAM setup:
  1325. Bit(s)    Description    (Table P485)
  1326.  7    enable DRAM parity
  1327.     (PORT 0061h bits 7 and 2 must also both be clear to enable parity)
  1328.  6-4    reserved (0)
  1329.  3-0    enable interleave for banks 3-0
  1330.     (enabling interleave doubles address range for bank; banks 0/2 and 1/3
  1331.       may be interleaved with each other)
  1332. SeeAlso: #P464,#P484
  1333. ----------P00220023--------------------------
  1334. PORT 0022-0023 - OPTi 82C206 chipset - CONFIGURATION REGISTERS
  1335. Note:    many other OPTi chipsets integrate the functionality of the 82C206, and
  1336.       thus support the 82C206's configuration register (e.g. the
  1337.       82C558 from the Viper chipset)
  1338.  
  1339. 0022  ?W  index for accesses to data port (set to 01h)
  1340. 0023  RW  chip set data
  1341.  
  1342. Bitfields for OPTi 82C206 configuration register 01h:
  1343. Bit(s)    Description    (Table P046)
  1344.  7-6    82C206 wait states
  1345.     00 1 SYSCLK
  1346.     01 2 SYSCLKs
  1347.     10 3 SYSCLKs
  1348.     11 4 SYSCLKs (default)
  1349.  5-4    number of wait states for 16-bit DMA cycles
  1350.     00 1 wait state (default)
  1351.     01 2 wait states
  1352.     10 3 wait states
  1353.     11 4 wait states
  1354.  3-2    number of wait states for 8-bit DMA cycles
  1355.     00 1 wait state (default)
  1356.     01 2 wait states
  1357.     10 3 wait states
  1358.     11 4 wait states
  1359.  1    enable early DMAMEMR#
  1360.  0    DMA speed
  1361.     0 SYSCLK/2
  1362.     1 SYSCLK
  1363. ----------P00220023--------------------------
  1364. PORT 0022-0023 - Intel 82091AA Advanced Integrated Peripheral
  1365. Range:    PORT 0022h (X-Bus), PORT 0024h (X-Bus), PORT 026Eh (ISA), or
  1366.       PORT 0398h (ISA)
  1367. SeeAlso: PORT 0024h"82091AA",PORT 026Eh"82091AA",PORT 0398h"82091AA"
  1368.  
  1369. 0022  ?W  configuration register index (see #P649)
  1370. 0023  RW  configuration register data
  1371.  
  1372. (Table P649)
  1373. Values for Intel 82091AA configuration register index:
  1374.  00h    product ID (read-only)
  1375.     A0h Intel 82091AA
  1376.  01h    product revision (read-only) (see #P650)
  1377.  02h    configuration 1 (see #P651)
  1378.  03h    configuration 2 (see #P652)
  1379.  04h-0Fh reserved
  1380.  10h    floppy-disk controller configuration (see #P653)
  1381.  11h    floppy-disk controller power management/status (see #P654)
  1382.  12h-1Fh reserved
  1383.  20h    parallel port configuration (see #P655)
  1384.  21h    parallel port power management/status (see #P656)
  1385.  22h-2Fh reserved
  1386.  30h    serial port A configuration (see #P657)
  1387.  31h    serial port A power management/status (see #P658)
  1388.  32h-3Fh reserved
  1389.  40h    serial port B configuration (see #P657)
  1390.  41h    serial port B power management/status (see #P658)
  1391.  42h-4Fh reserved
  1392.  50h    IDE configuration (see #P659)
  1393.  51h-FFh reserved
  1394.  
  1395. Bitfields for Intel 82091AA product revision register:
  1396. Bit(s)    Description    (Table P650)
  1397.  7-4    stepping number 
  1398.  3-0    "dash"-number
  1399. SeeAlso: #P649
  1400.  
  1401. Bitfields for Intel 82091AA configuration register 1:
  1402. Bit(s)    Description    (Table P651)
  1403.  7    unused (0)
  1404.  6    supply voltage (read-only) (1 = 3.3V, 0 = 5.0V)
  1405.  5-4    configuration mode
  1406.     00 software motherboard
  1407.     01 software add-in
  1408.     10 extended hardware
  1409.     11 basic hardware
  1410.  3    configuration address (read-only)
  1411.     0 primary address (PORT 0022h for X-Bus, PORT 026Eh for ISA)
  1412.     1 secondary address (PORT 0024h for X-Bus, PORT 0398h for ISA)
  1413.  2-1    reserved
  1414.  0    power-down AIP's main clock circuitry
  1415. SeeAlso: #P649,#P652
  1416.  
  1417. Bitfields for Intel 82091AA configuration register 2:
  1418. Bit(s)    Description    (Table P652)
  1419.  7-3    IRQ7-IRQ3 mode select
  1420.     0 = active high (ISA-compatible tri-state drive)
  1421.     1 = active low (EISA-compatible open-collector drive)
  1422.  2-0    reserved
  1423. SeeAlso: #P649,#P651
  1424.  
  1425. Bitfields for Intel 82091AA floppy-disk controller configuration register:
  1426. Bit(s)    Description    (Table P653)
  1427.  7    four floppy drive support enabled (with external decoder)
  1428.  6-2    reserved
  1429.  1    FDC address
  1430.     0 = primary (03F0h)
  1431.     1 = secondary (0370h)
  1432.  0    enable FDC
  1433. SeeAlso: #P649,#P654
  1434.  
  1435. Bitfields for Intel 82091AA floppy-disk controller power management register:
  1436. Bit(s)    Description    (Table P654)
  1437.  7-4    reserved
  1438.  3    enable FDC auto-powerdown on idle
  1439.  2    reset FDC
  1440.     (this bit must be pulsed, remaining high for at least 1.2 us)
  1441.  1    (read-only) FDC is idle
  1442.  0    power-down FDC
  1443. Note:    to restore FDC from explicit powerdown via bit 0, clear bit 0, then
  1444.       reset the FDC using bit 2 (hardware reset) or using a software reset
  1445.       (FDC's DOR bit 2 or DSR bit 7)
  1446. SeeAlso: #P649,#P653
  1447.  
  1448. Bitfields for Intel 82091AA parallel port configuration:
  1449. Bit(s)    Description    (Table P655)
  1450.  7    FIFO threshold
  1451.     0 = 8 slots in each direction
  1452.     1 = one slot forward, 15 reverse
  1453.  6-5    parallel-port hardware mode
  1454.     00 ISA-compatible
  1455.     01 PS/2-compatible
  1456.     10 EPP
  1457.     11 ECP (read only -- ECP mode must be set via ECP Extended Control Reg)
  1458.  4    reserved
  1459.  3    IRQ select
  1460.     0 = IRQ5
  1461.     1 = IRQ7
  1462.  2-1    address select
  1463.     00 PORT 0378h-037Bh
  1464.     01 PORT 0278h-027Bh
  1465.     10 PORT 03BCh-03BEh (not for EPP mode)
  1466.     11 reserved
  1467.  0    enable parallel port
  1468. SeeAlso: #P649,#P656,#P663,PORT 0678h"ECP"
  1469.  
  1470. Bitfields for Intel 82091AA parallel port power managment register:
  1471. Bit(s)    Description    (Table P656)
  1472.  7-6    reserved
  1473.  5    FIFO overrun or underrun has occurred
  1474.     this bit is cleared by resetting the port via bit 2
  1475.  4    reserved
  1476.  3    enable auto-powerdown
  1477.  2    reset parallel port (pulse this bit; must remain high for 1.13 us)
  1478.  1    (read-only) parallel port is idle
  1479.  0    power-down parallel port
  1480. Note:    an explicit power-down may be canceled by either clearing bit 0 or
  1481.       pulsing bit 2 to reset the port
  1482. SeeAlso: #P649,#P655
  1483.  
  1484. Bitfields for Intel 82091AA serial port configuration:
  1485. Bit(s)    Description    (Table P657)
  1486.  7    enable 2MHz MIDI clock for MIDI baud rate
  1487.  6-5    reserved
  1488.  4    IRQ select
  1489.     0 = IRQ3
  1490.     1 = IRQ4
  1491.  3-1    address select
  1492.     000 PORT 03F8h-03FFh
  1493.     001 PORT 02F8h-02FFh
  1494.     010 PORT 0220h-0227h
  1495.     011 PORT 0228h-022Fh
  1496.     100 PORT 0238h-023Fh
  1497.     101 PORT 02E8h-02EFh
  1498.     110 PORT 0338h-033Fh
  1499.     111 PORT 03E8h-03EFh
  1500.  0    enable serial port
  1501. Note:    although it is possible to configure both serial ports at the same
  1502.       address, this is not recommended because the 82091AA disables serial
  1503.       port B without placing it into powerdown mode
  1504. SeeAlso: #P649,#P658
  1505.  
  1506. Bitfields for Intel 82091AA serial port power management register:
  1507. Bit(s)    Description    (Table P658)
  1508.  7-5    reserved
  1509.  4    enable test mode
  1510.     when enabled, and DLAB bit in LCR is set, the baud rate clock is output
  1511.       on the SOUTA pin
  1512.  3    enable auto-powerdown on idle
  1513.  2    reset serial port (should be pulsed, high for at least 1.13 us)
  1514.  1    (read-only) serial port is idle
  1515.  0    power-down serial port
  1516. Notes:    setting powerdown mode via bit 0 resets both receiver and transmitter,
  1517.       including the FIFOs, so software should check that port is idle
  1518.       before powering it down
  1519.     the serial port may be brought out of an explicit powerdown by either
  1520.       clearing bit 0 or pulsing bit 2
  1521. SeeAlso: #P649,#P657
  1522.  
  1523. Bitfields for Intel 82091AA IDE configuration:
  1524. Bit(s)    Description    (Table P659)
  1525.  7-3    reserved
  1526.  2    enable both primary and secondary addresses
  1527.  1    address select (when bit 2 is clear)
  1528.     0 PORT 01F0h-01F7h and 03F6h (primary)
  1529.     1 PORT 0170h-0177h and 0376h (secondary)
  1530.  0    enable IDE interface
  1531.  !!!intel\29048603.pdf p.45
  1532. SeeAlso: #P649,#P653
  1533. ----------P00220024--------------------------
  1534. PORT 0022-0024 - CHIPSET FROM PICO POWER, UMC or PCChips
  1535.  
  1536. 0022  ?W  index for accesses to data port
  1537. 0024  RW  chip set data
  1538. ----------P00220024--------------------------
  1539. PORT 0022-0024 - OPTi 82C281/282/283 CHIPSETS - CONFIGURATION REGISTERS
  1540. Note:    every access to PORT 0024h must be preceded by a write to PORT 0022h,
  1541.       even if the same register is being accessed a second time
  1542. SeeAlso: PORT 0022h"82C206"
  1543.  
  1544. 0022  ?W  index for accesses to data port (see #P047)
  1545. 0024  RW  chip set data
  1546.  
  1547. (Table P047)
  1548. Values for OPTi 82C281/82C282/82C283 configuration register index:
  1549.  10h    DRAM configuration register (see #P048)
  1550.  11h    Shadow RAM control register (see #P049)
  1551.  12h    Shadow RAM control register 2 (see #P050)
  1552.  13h    Shadow RAM control register 3 (see #P051)
  1553.  14h    miscellaneous control register (see #P052)
  1554.  15h    cache control register (see #P053)
  1555.  16h    cache control register 2 (see #P054)
  1556.  
  1557. Bitfields for OPTi 82C281/282/283 DRAM configuration register:
  1558. Bit(s)    Description    (Table P048)
  1559.  7-6    82C281/2 revision number (read-only)
  1560.  7    82C283 revision (0 = A, 1 = B)
  1561.  6    82C283A: reserved
  1562.     82C283B: DRAM is pipelined
  1563.  5    local DRAM read wait states
  1564.     82C281/2: 0=one, 1=two      82C283: 0=none, 1=one
  1565.  4    local DRAM write wait states
  1566.     82C281/2: 0=one, 1=two      82C283: 0=none, 1=one
  1567.  3-0    local DRAM memory configuration
  1568.     (val)    Bank0    Bank1    Bank2    Bank3
  1569.     0001    256K    256K    256K    256K
  1570.     0010    256K    256K    1M    -
  1571.     0011    256K    256K    1M    1M
  1572.     0100    256K    256K    4M    -
  1573.     0101    1M    -    -    -
  1574.     0110    1M    1M    -    -
  1575.     0111    1M    1M    1M    -
  1576.     1000    1M    1M    1M    1M
  1577.     1001    1M    4M    -    -
  1578.     1010    1M    1M    4M    -
  1579.     1011    4M    4M    -    -
  1580.     1100    4M    -    -    -  (82C283B only)
  1581.     1111    256K    256K    -    -
  1582. SeeAlso: #P047
  1583.  
  1584. Bitfields for OPTi 82C281 shadow RAM control register:
  1585. Bit(s)    Description    (Table P049)
  1586.  7    BIOS ROM F000-FFFF shadowing
  1587.     0 read-only from shadow RAM
  1588.     1 read from ROM, write to shadow RAM
  1589.  6    adapter ROM at E000-EFFF
  1590.     0 disable shadow RAM
  1591.     1 shadow RAM selectively enabled by configuration register 12h
  1592.       (see #P050)
  1593.  5    adapter ROM at D000-DFFF
  1594.     0 disable shadow RAM
  1595.     1 shadow RAM selectively enabled by configuration register 12h
  1596.  4    adapter ROM at C000-CFFF
  1597.     0 disable shadow RAM
  1598.     1 shadow RAM selectively enabled by configuration register 13h
  1599.       (see #P051)
  1600.  3    shadow RAM Copy Enable control (C000-EFFF)
  1601.     0 write to expansion bus
  1602.     1 write to local DRAM
  1603.  2    shadow RAM E000-EFFF writeability
  1604.     0 read/write
  1605.     1 read-only
  1606.  1    shadow RAM D000-DFFF writeability
  1607.     0 read/write
  1608.     1 read-only
  1609.  0    shadow RAM C000-CFFF writeability
  1610.     0 read/write
  1611.     1 read-only
  1612. SeeAlso: #P047,#P050
  1613.  
  1614. Bitfields for OPTi 82C281 shadow RAM control register 2:
  1615. Bit(s)    Description    (Table P050)
  1616.  7    enable EC00-EFFF
  1617.  6    enable E800-EBFF
  1618.  5    enable E400-E7FF
  1619.  4    enable E000-E3FF
  1620.  3    enable DC00-DFFF
  1621.  2    enable D800-DBFF
  1622.  1    enable D400-D7FF
  1623.  0    enable D000-D3FF
  1624. Note:    bits 7-4 are only in effect when register 11h bit 6 is set; bits 3-0
  1625.       are only in effect when register 11h bit 5 is set
  1626. SeeAlso: #P047,#P049,#P051
  1627.  
  1628. Bitfields for OPTi 82C281 shadow RAM control register 3:
  1629. Bit(s)    Description    (Table P051)
  1630.  7    enable CC00-CFFF
  1631.  6    enable C800-CBFF
  1632.  5    enable C400-C7FF
  1633.  4    enable C000-C3FF
  1634.  3-0    unused shadow RAM remap address; supplies bits 23-20 of
  1635.       address at which to map A000-BFFFF and D000-EFFF is not used
  1636.       for shadowing (except if this field is set to 0, the remapping
  1637.       is disabled)
  1638. SeeAlso: #P047,#P049,#P050
  1639.  
  1640. Bitfields for OPTi 82C281 miscellaneous control register:
  1641. Bit(s)    Description    (Table P052)
  1642.  7    allow F0000-F0FFF to be written even while F0000-FFFFF is
  1643.       write-protected ("Zenith mode")
  1644.  6    keyboard reset control
  1645.     =1 HLT must be executed before 82C281 generates CPU reset from
  1646.         keyboard controller Reset command
  1647.  5    master byte swap enable
  1648.  4    82C281/2: fast NMI request
  1649.     82C283A: reserved (0)
  1650.     82C283B: ATCLK setting (=0 from register 14h bit 0; =1 CLK/8)
  1651.  3    82C281/2/3A: reserved
  1652.     82C283B: on-board DRAM parity error enable
  1653.  2    enable slow refresh mode
  1654.     (every 95.5 us (281/282) or 63.6 us (283) instead of 15.9 us)
  1655.  1    enable turbo switch function
  1656.  0    clock select
  1657.     =0 ATCLK2 = CPUCLK2 / 6
  1658.     =1 ATCLK2 = CPUCLK2 / 4
  1659. SeeAlso: #P047
  1660.  
  1661. Bitfields for OPTi 82C281/82C282 cache control register:
  1662. Bit(s)    Description    (Table P053)
  1663.  7    enable cache
  1664.  6    reserved (0)
  1665.  5    enable posted write (82C281 only)
  1666.  4    ALL accesses are non-cacheable
  1667.  3    reserved (0)
  1668.  2-0    non-cacheable region size (see also #P054)
  1669.     000  64K
  1670.     001 128K
  1671.     ...
  1672.     101  4M
  1673.     110  8M
  1674.     111 disabled
  1675. SeeAlso: #P047,#P054
  1676.  
  1677. Bitfields for OPTi 82C281/82C282 cache control register 2:
  1678. Bit(s)    Description    (Table P054)
  1679.  7-0    starting address bits 23-16 of non-cacheable region
  1680. Note:    the specified starting address must be a multiple of the region size
  1681. SeeAlso: #P047,#P053
  1682. ----------P00220024--------------------------
  1683. PORT 0022-0024 - OPTi 82C291/82C295 CHIPSETS - CONFIGURATION REGISTERS
  1684. Note:    every access to PORT 0024h must be preceded by a write to PORT 0022h,
  1685.       even if the same register is being accessed a second time
  1686. SeeAlso: PORT 0022h"82C206"
  1687.  
  1688. 0022  ?W  index for accesses to data port (see #P055)
  1689. 0024  RW  chip set data
  1690.  
  1691. (Table P055)
  1692. Values for OPTi 82C291/82C295 configuration register index:
  1693.  20h    Revision/AT Bus configuration register (see #P056)
  1694.  21h    System Control register (see #P057)
  1695.  22h    DRAM configuration register (see #P775)
  1696.  23h    ROM Chip Select Control register (see #P776)
  1697.  24h    Shadow RAM control register E (see #P777)
  1698.  25h    Shadow RAM control register D (see #P778)
  1699.  26h    Shadow RAM control register C (see #P779)
  1700.  27h    Shadow RAM Write Protect/Remap Area (see #P780)
  1701.  28h    Cache Control register (see #P781)
  1702.  29h    Cacheable Upper Bound register (see #P782)
  1703.  2Ah    Non-Cacheable Segments register 1 (see #P783)
  1704.  2Bh    Non-Cacheable Segments register 2 (see #P784)
  1705.  2Ch    Non-Cacheable Segments register 3 (see #P785)
  1706.  
  1707. Bitfields for OPTi 82C291/82C295 AT Bus configuration register:
  1708. Bit(s)    Description    (Table P056)
  1709.  7-6    82C291/295 revision (read-only)
  1710.  5-4    back-to-back I/O recovery time
  1711.     00-11 = 3-6 ATCLKs between I/O accesses
  1712.  3    enable slow refresh mode
  1713.  2    enable hidden refresh
  1714.  1-0    AT clock selection
  1715.     00 ATCLK = CLK2 / 10
  1716.     01 ATCLK = CLK2 / 8
  1717.     10 ATCLK = CLK2 / 6
  1718.     11 ATCLK = CLK2 / 4
  1719. SeeAlso: #P055
  1720.  
  1721. Bitfields for OPTi 82C291/82C295 System Control register:
  1722. Bit(s)    Description    (Table P057)
  1723.  7    AT bus master byte swap enabled
  1724.  6    ALE generation for each AT cycle
  1725.     0 a new ALE will be generated during bus conversion cycles
  1726.     1 multiple ALEs will be generated during bus conversion cycles
  1727.  5    keyboard fast reset emulation control
  1728.     0 enable, a "Halt" is required before a fast CPU reset is generated
  1729.     1 disable, fast CPU reset is generated directly after the "FE" I/O
  1730.       command to port 64h is decoded
  1731.  4    AT cycle additional wait state
  1732.     0 disable, standard AT cycle
  1733.     1 enable, inserts one extra wait state in standard AT bus cycle
  1734.  3-2    reserved
  1735.  1    local device ready control
  1736.     0 RDYI# input to the 82C291 will be synchronized and set as RDY# to
  1737.       the CPU one T-state delayed
  1738.     1 RDYI# input to the 82C291 will not be output to the CPU. RDY# from
  1739.       the local device must be directed to the 82C291 and the CPU
  1740.  0    system memory parity checking
  1741.     0 disable, no parity checking         
  1742.     1 enable, will check parity
  1743. SeeAlso: #P055
  1744.  
  1745. Bitfields for OPTi 82C291/82C295 DRAM Configuration register:
  1746. Bit(s)    Description    (Table P775)
  1747.  7-6    number of DRAM read cycle wait states
  1748.  5-4    number of DRAM write cycle wait states
  1749.  3-0    Banks 0 thru 3 DRAM configuration
  1750.     (val)    Bank0    Bank1    Bank2    Bank3
  1751.     0000    256K    256KB    -    -
  1752.     0001    256K    256K    256K    256K
  1753.     0010    256K    256K    1M    -
  1754.     0011    256K    256K    1M    1M
  1755.     0100    256K    256K    4M    -
  1756.     0101    1M    -    -    -
  1757.     0110    1M    1M    -    -
  1758.     0111    1M    1M    1M    -
  1759.     1000    1M    1M    1M    1M
  1760.     1001    1M    4M    -    -
  1761.     1010    1M    1M    4M    -
  1762.     1011    4M    -    -    -
  1763.     1100    4M    4M    -    -
  1764.     1101    reserved
  1765.     1110    reserved
  1766.     1111    reserved
  1767. SeeAlso: #P055
  1768.  
  1769. Bitfields for OPTi 82C291/82C295 ROM Chip Select Control register:
  1770. Bit(s)    Description    (Table P776)
  1771.  7    enable ROM Chip Select for write cycles (to support flash ROMs)
  1772.  6    enable ROMCS# for 0F0000-0FFFFF segments
  1773.  5    enable ROMCS# for 0E8000-0EFFFF segments
  1774.  4    enable ROMCS# for 0E0000-0E7FFF segments
  1775.  3    enable ROMCS# for 0D8000-0DFFFF segments
  1776.  2    enable ROMCS# for 0D0000-0D7FFF segments
  1777.  1    enable ROMCS# for 0C8000-0CFFFF segments
  1778.  0    enable ROMCS# for 0C0000-0C7FFF segments
  1779. SeeAlso: #P055
  1780.  
  1781. Bitfields for OPTi 82C291/82C295 Shadow RAM control register E:
  1782. Bit(s)    Description    (Table P777)
  1783.  7    enable shadow RAM reads for EC000-EFFFF segments
  1784.  6    enable shadow RAM reads for E8000-EBFFF segments
  1785.  5    enable shadow RAM reads for E4000-E7FFF segments
  1786.  4    enable shadow RAM reads for E0000-E3FFF segments
  1787.  3    enable shadow RAM writes for EC000-EFFFF segments
  1788.  2    enable shadow RAM writes for E8000-EBFFF segments
  1789.  1    enable shadow RAM writes for E4000-E7FFF segments
  1790.  0    enable shadow RAM writes for E0000-E3FFF segments
  1791. Note:    OPTi documentation incorrectly states the segment range for bits 5
  1792.       and 1 as E4000-E7000.
  1793. SeeAlso: #P055
  1794.  
  1795. Bitfields for OPTi 82C291/82C295 Shadow RAM control register D:
  1796. Bit(s)    Description    (Table P778)
  1797.  7    enable shadow RAM reads for DC000-DFFFF segments
  1798.  6    enable shadow RAM reads for D8000-DBFFF segments
  1799.  5    enable shadow RAM reads for D4000-D7FFF segments
  1800.  4    enable shadow RAM reads for D0000-D3FFF segments
  1801.  3    enable shadow RAM writes for DC000-DFFFF segments
  1802.  2    enable shadow RAM writes for D8000-DBFFF segments
  1803.  1    enable shadow RAM writes for D4000-D7FFF segments
  1804.  0    enable shadow RAM writes for D0000-D3FFF segments
  1805. Note:    OPTi documentation incorrectly states the segment range for bits 5
  1806.       and 1 as D4000-D7000.
  1807. SeeAlso: #P055
  1808.  
  1809. Bitfields for OPTi 82C291/82C295 Shadow RAM control register C:
  1810. Bit(s)    Description    (Table P779)
  1811.  7    enable shadow RAM reads for CC000-CFFFF segments
  1812.  6    enable shadow RAM reads for C8000-CBFFF segments
  1813.  5    enable shadow RAM reads for C4000-C7FFF segments
  1814.  4    enable shadow RAM reads for C0000-C3FFF segments
  1815.  3    enable shadow RAM writes for CC000-CFFFF segments
  1816.  2    enable shadow RAM writes for C8000-CBFFF segments
  1817.  1    enable shadow RAM writes for C4000-C7FFF segments
  1818.  0    enable shadow RAM writes for C0000-C3FFF segments
  1819. Note:    OPTi documentation incorrectly states the segment range for bits 5
  1820.       and 1 as C4000-C7000.
  1821. SeeAlso: #P055
  1822.  
  1823. Bitfields for OPTi 82C291/82C295 Shadow RAM Write Protect/Remap Area:
  1824. Bit(s)    Description    (Table P780)
  1825.  7    enable Write Protect for F0000-FFFFF segments
  1826.  6    enable Write Protect for E0000-EFFFF segments
  1827.  5    enable Write Protect for D0000-DFFFF segments
  1828.  4    enable Write Protect for C0000-CFFFF segments
  1829.  3-0    DRAM remap starting address, bits 23-20
  1830.     0000  disabled, no mapping
  1831.     0001  1M
  1832.     0010  2M
  1833.     ...
  1834.     1111 15M
  1835. SeeAlso: #P055
  1836.  
  1837. Bitfields for OPTi 82C291/82C295 Cache Control register:
  1838. Bit(s)    Description    (Table P781)
  1839.  7    enable write-back cache controller operation
  1840.  6    enable DRAM performance mode
  1841.     this bit should not be enabled unless external cache is disabled
  1842.       (intended to optimize DRAM performance)
  1843.  5    enable all memory accesses no-cacheable mode
  1844.  4    enable 640K-1M area no-cacheable mode
  1845.  3-2    cache timing control bits
  1846.     00 invalid
  1847.     01 0 wait state cache write w/o CAWE# extended, use when 8K*8 SRAMs
  1848.     10 1 wait state cache write hit
  1849.     11 0 wait state cache write hit with CAWE# extended when 32K*8 SRAMs
  1850.  1-0    cache size/cacheable DRAM
  1851.     00  16K /  2M
  1852.     01  32K /  4M
  1853.     10  64K /  8M
  1854.     11 128K / 16M
  1855. SeeAlso: #P055
  1856.  
  1857. Bitfields for OPTi 82C291/82C295 Cacheable Upper Bound register:
  1858. Bit(s)    Description    (Table P782)
  1859.  7-4    reserved
  1860.  3-0    cacheable upper bound address, bits 23-20
  1861.     0000  feature disabled
  1862.     0001  1M
  1863.     0010  2M
  1864.     ...
  1865.     1111 15M
  1866. SeeAlso: #P055
  1867.  
  1868. Bitfields for OPTi 82C291/82C295 Non-Cacheable Segments register 1:
  1869. Bit(s)    Description    (Table P783)
  1870.  7    enable non-cacheable segment A
  1871.  6-4    size of no-cacheable memory segment A
  1872.     000  64K
  1873.     001 128K
  1874.     010 256K
  1875.     011 512K
  1876.     100   1M
  1877.     101   2M
  1878.     110   4M
  1879.     111   8M
  1880.  3    enable non-cacheable segment B
  1881.  2-0    size of no-cacheable memory segment B (same values as bits 6-4)
  1882. SeeAlso: #P055,#P784
  1883.     
  1884. Bitfields for OPTi 82C291/82C295 Non-Cacheable Segments register 2:
  1885. Bit(s)    Description    (Table P784)
  1886.  7-0    address bits 23-16 for starting address of non-cacheable memory
  1887.       segment A
  1888. SeeAlso: #P055,#P783,#P785
  1889.  
  1890. Bitfields for OPTi 82C291/82C295 Non-Cacheable Segments register 3:
  1891. Bit(s)    Description    (Table P785)
  1892.  7-0    address bits 23-16 for starting address of non-cacheable memory
  1893.       segment B
  1894. SeeAlso: #P055,#P783,#P784
  1895. ----------P00220024--------------------------
  1896. PORT 0022-0024 - OPTi 82C381/82C382 CHIPSETS - CONFIGURATION REGISTERS
  1897. Note:    every access to PORT 0024h must be preceded by a write to PORT 0022h,
  1898.       even if the same register is being accessed a second time
  1899. SeeAlso: PORT 0022h"82C206"
  1900.  
  1901. 0022  ?W  index for accesses to data port (see #P058)
  1902. 0024  RW  chip set data
  1903.  
  1904. (Table P058)
  1905. Values for OPTi 82C381/82C382 configuration register index:
  1906.  00h    clock selects (see #P059)
  1907.  01h    reset control (see #P060)
  1908.  10h    remapping address (see #P061)
  1909.  11h    shadow RAM (see #P062)
  1910.  12h    memory enable (see #P063)
  1911.  13h    bank configuration (see #P064)
  1912.  14h    DRAM configuration (see #P065)
  1913.  15h    video adapter shadow (see #P066)
  1914.  16h    fast GateA20 (see #P067)
  1915.  17h    cache configuration (see #P068)
  1916.  18h    non-cacheable block 1 size (see #P069)
  1917.  19h    non-cacheable block 1 address (see #P070)
  1918.  1Ah    non-cacheable block 2 size (see #P069)
  1919.  1Bh    non-cacheable block 2 address (see #P070)
  1920.  1Ch    cacheable area (see #P071)
  1921. Note:    registers 00h and 01h address the 82C381, the remaining registers
  1922.       address the 82C382
  1923. SeeAlso: #P073
  1924.  
  1925. Bitfields for OPTi 82C381/82C382 clock selects:
  1926. Bit(s)    Description    (Table P059)
  1927.  7-6    cache controller enable
  1928.     00 cache controller disabled (default)
  1929.     01 cache controller disabled; PPCS#, SPCS#, NPCS# signals are
  1930.           active if selected
  1931.     10 external cache controller installed
  1932.     11 on-chip cache controller installed
  1933.  5    hot CPU reset (low->high transition generates reset)
  1934.  4    enable ATCLK stretch
  1935.  3    turbo clock
  1936.     =0 CLKIN is CPU clock
  1937.     =1 HIGH pin selected clock (HIGH=0: CLKIN, HIGH=1: ICLK)
  1938.  2-1    ICLK clock select
  1939.     00 CLKIN/4 (default)
  1940.     01 CLKIN/3
  1941.     10 CLKIN/2
  1942.     11 reserved
  1943.  0    master byte swap enable (default = 0)
  1944. SeeAlso: #P058,#P060
  1945.  
  1946. Bitfields for OPTi 82C381/82C382 reset control:
  1947. Bit(s)    Description    (Table P060)
  1948.  7-2    reserved
  1949.  1    RESET3 control
  1950.     =1 generate RESET3 on RESET2 only after a HLT instruction
  1951.     =0 generate RESET3 immediately on RESET2 (default)
  1952.  0    activate cache controller FLUSH# pin (default = 1)
  1953. SeeAlso: #P058,#P059,#P061
  1954.  
  1955. Bitfields for OPTi 82C381/82C382 remapping address:
  1956. Bit(s)    Description    (Table P061)
  1957.  7-5    reserved
  1958.  4    enable remapping
  1959.  3-0    remap address range, bits 23-20
  1960.     0000  no mapping
  1961.     0001  1M
  1962.     0010  2M
  1963.     ...
  1964.     1111 15M
  1965. SeeAlso: #P058
  1966.  
  1967. Bitfields for OPTi 82C381/82C382 shadow RAM control:
  1968. Bit(s)    Description    (Table P062)
  1969.  7    BIOS ROM at F0000-FFFFF Shadowing
  1970.     0 read only from shadow RAM
  1971.     1 read from ROM, write to shadow RAM
  1972.  6    ROM at D0000-DFFFF
  1973.     0 disable shadow RAM
  1974.     1 shadow RAM selectively enabled by configuration register 12h
  1975.  5    Adaptor ROM at E0000-EFFFF
  1976.     0 disable shadow RAM
  1977.     1 shadow RAM selectively enabled by configuration register 12h
  1978.  4    write-protect shadow RAM at D0000h-DFFFFh (default = not protected)
  1979.  3    write-protect shadow RAM at E0000h-EFFFFh
  1980.  2    enable Timeout precharge counter 
  1981.  1-0    reserved
  1982. SeeAlso: #P058
  1983.  
  1984. Bitfields for OPTi 82C381/82C382 memory enable:
  1985. Bit(s)    Description    (Table P063)
  1986.  7    enable EC000-EFFFF
  1987.  6    enable E8000-EBFFF
  1988.  5    enable E4000-E7FFF
  1989.  4    enable E0000-E3FFF
  1990.  3    enable DC000-DFFFF
  1991.  2    enable D8000-DBFFF
  1992.  1    enable D4000-D7FFF
  1993.  0    enable D0000-D3FFF
  1994. Note:    0 = disable Shadow RAM (default), 1 = enable Shadow RAM
  1995. SeeAlso: #P058
  1996.  
  1997. Bitfields for OPTi 82C381/82C382 memory bank configuration:
  1998. Bit(s)    Description    (Table P064)
  1999.  7    Reserved
  2000.  6-4    Bank0 and Bank1 configuration
  2001.     (val)    Bank0    Bank1 
  2002.     000     256K     -  
  2003.     001     256K     256K
  2004.     010     256K     1M  
  2005.     011     1M       256K
  2006.     100     1M       -  
  2007.     101     1M       1M 
  2008.     110     -        -  
  2009.     111     256K     - 
  2010.  3    reserved
  2011.  2-0    Bank2 and Bank3 configuration
  2012.     (val)   Bank2    Bank3 
  2013.     000     256K     -  
  2014.     001     256K     256K
  2015.     010     -        -  
  2016.     011     1M       256K
  2017.     100     1M       -  
  2018.     101     1M       1M 
  2019.     11X     -        -  
  2020. SeeAlso: #P058,#P065
  2021.  
  2022. Bitfields for OPTi 82C381/82C382 DRAM configuration:
  2023. Bit(s)    Description    (Table P065)
  2024.  7,6    number of read cycle wait states (default = 01)
  2025.  5    write cycle wait state
  2026.     0 = 0 wait 
  2027.     1 = 1 wait (default)      
  2028.  4-0    reserved    
  2029. SeeAlso: #P058
  2030.  
  2031. Bitfields for OPTi 82C381/82C382 video adapter shadow:
  2032. Bit(s)    Description    (Table P066)
  2033.  7    reserved
  2034.  6    copy enable for C0000-EFFFF
  2035.     0 write to AT Channel (default) 
  2036.     1 write to local DRAM
  2037.  5    Shadow RAM at C0000-CFFFF writability
  2038.     0 read/write (default)
  2039.     1 read only
  2040.  4    ROM at C0000-CFFFF
  2041.     0 disable shadow RAM
  2042.     1 shadow RAM selectively enabled by Bits<0:3> (default)
  2043.  3    enable Shadow RAM at CC000-CFFFF
  2044.  2    enable Shadow RAM at C8000-CbFFF
  2045.  1    enable Shadow RAM at C4000-C7FFF
  2046.  0    enable Shadow RAM at C0000-C3FFF
  2047. SeeAlso: #P058
  2048.  
  2049. Bitfields for OPTi 82C381/82C382 fast GateA20 control:
  2050. Bit(s)    Description    (Table P067)
  2051.  7-4    Reserved
  2052.  3    Fast GateA20 Control  
  2053.     0 Signal controled by GATEA20 signal from Keyboard Controler
  2054.     1 CPUA20 enabled onto GA20
  2055.  2-0    reserved      
  2056. SeeAlso: #P058
  2057.  
  2058. Bitfields for OPTi 82C381/82C382 cache configuration:
  2059. Bit(s)    Description    (Table P068)
  2060.  7    force NCA* Output Pin low
  2061.     if this bit is clear, it has no effect on NCA* Output Pin
  2062.  6    enable Cache
  2063.  5    write-through cache (Note: this bit must be set)
  2064.  4-3    line size
  2065.     00  4 bytes 
  2066.     01  8 bytes
  2067.     10  16 bytes
  2068.     11  reserved
  2069.  2-0    reserved      
  2070. SeeAlso: #P058
  2071.  
  2072. Bitfields for OPTi 82C381/82C382 non-cacheable block size:
  2073. Bit(s)    Description    (Table P069)
  2074.  7-5    block size
  2075.     000 64K
  2076.     001 128K
  2077.     010 256K
  2078.     011 512K
  2079.     100 1M
  2080.     101 4M (block 1 only)
  2081.     101 reserved (block 2 only)
  2082.     110 8M (block 1 only)
  2083.     110 reserved (block 2 only)
  2084.     111 disabled (default)
  2085.  4-0    reserved (0)
  2086. SeeAlso: #P058,#P068,#P070
  2087.  
  2088. Bitfields for OPTi 82C381/82C382 non-cacheable block address:
  2089. Bit(s)    Description    (Table P070)
  2090.  7-0    bits 23-16 of non-cacheable block's address
  2091. Note:    the selected address must be a multiple of the block size
  2092.       selected by register 18h/1Ah
  2093. SeeAlso: #P058,#P069,#P071
  2094.  
  2095. Bitfields for OPTi 82C381/82C382 cacheable area:
  2096. Bit(s)    Description    (Table P071)
  2097.  7-4    cacheable address range
  2098.     0000 16M
  2099.     0001 1M
  2100.     0010 2M
  2101.     0011 3M
  2102.     ...
  2103.     1111 15M
  2104.  3    256K remapped area is cacheable
  2105.  2-0    reserved
  2106. SeeAlso: #P058
  2107. ----------P00220024--------------------------
  2108. PORT 0022-0024 - OPTi 82C463MV CHIPSET - CONFIGURATION REGISTERS
  2109. Desc:    the 82C463MV contains a memory control unit (MCU), an AT Bus
  2110.       Control Unit (BCU), a Power Management Unit (PMU), data
  2111.       buffers and a 82C206 type IPC (without real time clock)
  2112. Note:    every access to PORT 0024h must be preceded by a write to PORT 0022h,
  2113.       even if the same register is being accessed a second time
  2114. SeeAlso: PORT 0022h"82C206"
  2115.  
  2116. 0022  ?W  index for accesses to data port (see #P072)
  2117. 0024  RW  chip set data
  2118.  
  2119. (Table P072)
  2120. Values for OPTi 82C463MV configuration register index:
  2121.  30h    general control 1 (see #P525)
  2122.  31h    general control 2 (see #P526)
  2123.  32h    shadow RAM control 1 (see #P527)
  2124.  33h    shadow RAM control 2 (see #P528)
  2125.  34h    DRAM size (see #P529)
  2126.  35h    DRAM timing and caching control (see #P530)
  2127.  36h    shadow RAM control 3 (see #P531)
  2128.  37h    D000h and E000h segment access control (see #P532)
  2129.  38h    non-cacheable block 1 size, controls and address bit A24 (see #P533)
  2130.  39h    non-cacheable block 1 address bits A23-A16
  2131.  3Ah    non-cacheable block 2 size and address bit A24 (see #P534)
  2132.  3Bh    non-cacheable block 2 address bits A23-A16
  2133.  3Ch-3Fh    reserved
  2134.  40h    PMU control 1 (see #P535)
  2135.  41h    PMU control 2: doze timer (see #P536)
  2136.  42h    PMU control 3: other timers (see #P537)
  2137.  43h    PMU control 4 (see #P538)
  2138.  44h    LCD timer count (should not be loaded with a value <5)
  2139.  45h    disk timer count (should not be loaded with a value <5)
  2140.  46h    keyboard timer count (should not be loaded with a value <5)
  2141.  47h    GNR_ACCESS timer count (should not be loaded with a value <5)
  2142.  48h    GNR_ACCESS I/O base address (lines A8-A1, A0 is a "don't care")
  2143.  49h    GNR_ACCESS control and I/O base address line A9 (see #P539)
  2144.  4Ah    CSG0# base address (lines A8-A1, A0 is a "don't care")
  2145.  4Bh    CSG0# control and base address line A9 (see #P540)
  2146.  4Ch    CSG1# base address (lines A8-A1, A0 is a "don't care")
  2147.  4Dh    CSG1# control and base address line A9 (see #P541)
  2148.  4Eh    idle timer control (see #P542)
  2149.  4Fh    idle timer count (should not be loaded with a value <5)
  2150.  50h    suspend/resume control (see #P543)
  2151.  51h    beeper/sequencer control (see #P544)
  2152.  52h    PMU general-purpose storage 1
  2153.  53h    PMU general-purpose storage 2
  2154.  54h    PMU Periferal Power (PPWR) control 1 (see #P545)
  2155.  55h    PMU Periferal Power (PPWR) control 2 (see #P546)
  2156.  56h    PIO control 1 (see #P547)
  2157.  57h    PIO control 2 (see #P548)
  2158.  58h    PMU event control 1 (see #P549)
  2159.  59h    PMU event control 2 (see #P550)
  2160.  5Ah    PMU event control 3 (see #P551)
  2161.  5Bh    PMU event control 4 (see #P552)
  2162.  5Ch    SMI source (low) (see #P553)
  2163.  5Dh    SMI source (high) (see #P554)
  2164.  5Eh    clock stretching control (see #P555)
  2165.  5Fh    resume interrupt control (see #P556)
  2166.  60h    software sequencer address (write only)
  2167.  61h    debounce control (see #P557)
  2168.  62h    doze-mode IRQ selects (see #P558)
  2169.  63h    idle timer IRQ selects (see #P559)
  2170.  64h    PMI#6 IRQ select (see #P560)
  2171.  65h    doze-mode configuration (see #P561)
  2172.  66h    suspend control (see #P562)
  2173.  67h    CPU frequency (see #P563)
  2174.  68h    timer clock source (see #P564)
  2175.  69h    R_TIMER count (should not be loaded with a value <5)
  2176.  6Ah    resume IRQ selects (see #P565)
  2177.  6Bh    resume sources (see #P566)
  2178.  6Ch-6Fh    TMP0 - TMP3
  2179.  
  2180. Bitfields for 82C463MV general control 1 (register 30h):
  2181. Bit(s)    Description    (Table P525)
  2182.  7-6    chipset revision number (read only)
  2183.  5    MASTER#/RI pin function (RI = modem Ring Indicator)
  2184.     =1 RI (default)
  2185.     =0 MASTER#
  2186.  4    enable turbo VGA
  2187.  3    enable global relocation/translation for SMI addresses (see also
  2188.       register 31h bit 4 at #P526)
  2189.  2    enable extra wait state in AT cycle
  2190.  1    fast reset control
  2191.       =1 does not require Halt instruction
  2192.       =0 requires Halt instruction before generation of CPURST (SRESET
  2193.            if Intel SL Enhanced or Cyrix Cx486S/S2 CPUs
  2194.  0    reserved (0)
  2195. SeeAlso: #P072
  2196.  
  2197. Bitfields for 82C463MV general control 2 (register 31h):
  2198. Bit(s)    Description    (Table P526)
  2199.  7    enable master byte swap
  2200.  6    reserved, read-only (1)
  2201.  5    disable parity check
  2202.  4    Dynamic SMI relocation
  2203.       if no SMI sequence is running
  2204.         =1 allow relocation of addresses from the CPU in the 3000h/4000h
  2205.            segment to the B000h/A000h SMI memory space
  2206.         =0 disable relocation
  2207.       if SMI sequence is running (qualified by SMIACT#)
  2208.         =1 allow data accesses to the 3000h and 4000h segments
  2209.         =0 relocate all accesses in the 3000h/4000h segment to the
  2210.            B000h/A000h SMI segment (normal operation)
  2211.       if SMI sequence is running (qualified by SMIADS#)
  2212.         =1 not allowed
  2213.         =0 for a SMIADS# cycle, relocate all accesses in the 6000h/7000h
  2214.            segment to the A000h/B000h SMI segment
  2215.            for a normal ADS# operation, there is no relocation
  2216.  3    EC000h-EFFFFh access control
  2217.     if register 36h bit 6=0
  2218.       =1 R/W from ROMCS#
  2219.       =0 R/W from AT-Bus
  2220.     if register 36h bit 6=1
  2221.       =1 Read from ROMCS# if not shadowed (see register 33h bits 7-4),
  2222.         write to DRAM
  2223.       =0 Read from AT-Bus if not shadowed (see register 33h bits 7-4),
  2224.         write to DRAM
  2225.  2    E8000h-EBFFFh access control (see bit 3)
  2226.  1    E4000h-E7FFFh access control (see bit 3)
  2227.  0    E0000h-E3FFFh access control (see bit 3)
  2228. SeeAlso: #P072,#P528,#P531
  2229.  
  2230. Bitfields for 82C463MV shadow RAM control 1 (register 32h):
  2231. Bit(s)    Description    (Table P527)
  2232.  7    segment F000h access control
  2233.       =1 read from ROMCS#, write to ROMCS# (if register 36h bit 7=1)
  2234.          or DRAM (if register 36h bit 7=0)
  2235.       =0 read from DRAM and write protect (enable shadowing)
  2236.  6-5    reserved (1)
  2237.  4    write protect segment D000h
  2238.  3    write protect segment E000h
  2239.  2    reserved, read-only (1)
  2240.  1    reserved (0)
  2241.  0    ALE control
  2242.       =1 single ALE during bus conversion
  2243.       =0 multiple ALE
  2244. SeeAlso: #P072,#P531,#P528
  2245.  
  2246. Bitfields for 82C463MV shadow RAM control 2 (register 33h):
  2247. Bit(s)    Description    (Table P528)
  2248.  7    enable shadowing for EC000h-EFFFFh
  2249.  6    enable shadowing for E8000h-EBFFFh
  2250.  5    enable shadowing for E4000h-E7FFFh
  2251.  4    enable shadowing for E0000h-E3FFFh
  2252.  3    enable shadowing for DC000h-DFFFFh
  2253.  2    enable shadowing for D8000h-DBFFFh
  2254.  1    enable shadowing for D4000h-D7FFFh
  2255.  0    enable shadowing for D0000h-D3FFFh
  2256. SeeAlso: #P072,#P527
  2257.  
  2258. Bitfields for 82C463MV DRAM size (register 34h):
  2259. Bit(s)    Description    (Table P529)
  2260.  7-4    DRAM Bank 0 and 1 Size
  2261.     0000 256K, unused
  2262.     0001 256K, 256K
  2263.     0010 256K, 1M
  2264.     0011 256K, 4M
  2265.     0100 512K, unused
  2266.     0101 512K, 512K
  2267.     0110 512K, 1M
  2268.     0111 512K, 4M
  2269.     1000 1M, unused
  2270.     1001 1M, 1M
  2271.     1010 1M, 4M
  2272.     1011 4M, 1M
  2273.     1100 4M, unused
  2274.     1101 4M, 4M
  2275.     1110 1M, 2M
  2276.     1111 both unused
  2277.  3-0    DRAM Bank 2 and 3 Size
  2278.     0000 1M, unused
  2279.     0001 1M, 1M
  2280.     0010 1M, 4M
  2281.     0011 4M, 4M
  2282.     0100 4M, unused
  2283.     0101 both unused
  2284.     0110 1M, 2M
  2285.     0111 512K, 512K
  2286.     10xx both unused
  2287.     110x both unused
  2288.     1110 2M, unused
  2289.     1111 2M, 2M (default)
  2290. SeeAlso: #P072
  2291.  
  2292. Bitfields for 82C463MV DRAM timing and caching control (register 35h):
  2293. Bit(s)    Description    (Table P530)
  2294.  7-6    DRAM read wait states
  2295.     00 = 0 wait states, burst mode 2-1-1-1
  2296.     01 = 1 wait state, burst mode 3-1-1-1
  2297.     10 = 1 wait state, burst mode 3-2-2-2
  2298.     11 = 2 wait states, burst mode 4-3-3-3 (default)
  2299.  5-4    DRAM write wait states
  2300.     00 = 0 wait states
  2301.     01 = 1 wait state
  2302.     10 = 2 wait states
  2303.     11 = reserved (default)
  2304.  3    MP2/STRAP2 status (read-only)
  2305.     =1 1X Clock
  2306.     =0 2X Clock
  2307.  2    disable caching of F000h segment (this bit is effective only when
  2308.       register 32h bit 7 =0)
  2309.  1    global DRAM cache control (1=disable, default)
  2310.  0    disable caching of C0000h-C7FFFh (default)
  2311. SeeAlso: #P072,#P527
  2312.  
  2313. Bitfields for 82C463MV shadow RAM control 3 (register 36h):
  2314. Bit    Description    (Table P531)
  2315.  7    segment F000h write control
  2316.     =1 write to ROMCS#
  2317.     =0 write to DRAM
  2318.     don't care if register 32h bit 7=0
  2319.  6    C0000h-EFFFFh control
  2320.     =1 read from AT-Bus or ROMCS# (if ROMCS# is enabled to that block),
  2321.       write to DRAM
  2322.     =0 R/W from AT bus or ROMCS# (if ROMCS# is enabled to that block)
  2323.  5    write protect segment C000h
  2324.  4    reserved (1)
  2325.  3    enable shadowing for CC000h-CFFFFh
  2326.  2    enable shadowing for C8000h-CBFFFh
  2327.  1    enable shadowing for C4000h-C7FFFh
  2328.  0    enable shadowing for C0000h-C3FFFh
  2329. SeeAlso: #P072,#P527
  2330.  
  2331. Bitfields for 82C463MV D000h and E000h segments access control (register 37h):
  2332. Bit    Description    (Table P532)
  2333.  7    DC000h-DFFFFh access control
  2334.     if register 36h bit 6=1
  2335.         =1 read from ROMCS# if not shadowed, write to DRAM
  2336.         =0 read from AT-Bus if not shadowed, write to DRAM
  2337.     if register 36h bit 6=0
  2338.         =1 R/W from ROMCS#
  2339.         =0 R/W from AT-Bus
  2340.  6    D8000h-DBFFFh access control (see bit 7)
  2341.  5    D4000h-D7FFFh access control (see bit 7)
  2342.  4    D0000h-D3FFFh access control (see bit 7)
  2343.  3    disable caching for EC000h-EFFFFh (default)
  2344.  2    disable caching for E8000h-EBFFFh (default)
  2345.  1    disable caching for E4000h-E7FFFh (default)
  2346.  0    disable caching for E0000h-E3FFFh (default)
  2347. SeeAlso: #P072,#P531
  2348.  
  2349. Bitfields for non-cacheable block 1 size, control and A24 (register 38h):
  2350. Bit(s)    Description    (Table P533)
  2351.  7-5    size of non-cacheable memory block 1
  2352.     000 64K
  2353.     001 128K
  2354.     010 256K
  2355.     011 1M
  2356.     1xx disabled (default)
  2357.  4    CC000h-CFFFFh access control
  2358.     if register 36h bit 6=1
  2359.         =1 read from ROMCS# if not shadowed, write to DRAM
  2360.         =0 read from AT-Bus if not shadowed, write to DRAM
  2361.     if register 36h bit 6=0
  2362.         =1 R/W from ROMCS#
  2363.         =0 R/W from AT-Bus
  2364.  3    C8000h-CBFFFh access control (see bit 4)
  2365.  2    C4000h-C7FFFh access control (see bit 4)
  2366.  1    C0000h-C3FFFh access control (see bit 4)
  2367.  0    address bit A24 of non-cacheable memory block 1
  2368. SeeAlso: #P072,#P531
  2369.  
  2370. Bitfields for non-cacheable block 2 size and A24 (register 3Ah):
  2371. Bit(s)    Description    (Table P534)
  2372.  7-5    size of non-cacheable memory block 2
  2373.     000 64K
  2374.     001 128K
  2375.     010 256K
  2376.     011 1M
  2377.     1xx disabled (default)
  2378.  4    unused
  2379.  3    enable internal HLDA latch during stop clock (must be disabled
  2380.       before DMA transfers are performed)
  2381.  2    reserved (1)
  2382.  1    unused
  2383.  0    address bit A24 of non-cacheable memory block 2
  2384. SeeAlso: #P072
  2385.  
  2386. Bitfields for 82C463MV PMU control 1 (register 40h):
  2387. Bit    Description    (Table P535)
  2388.  7    Reset/SMI indication (read-only)
  2389.     =1 the last read or fetch from address XXXFFFF0h was a SMIADS#
  2390.          cycle
  2391.     =0 the last read or fetch from address XXXFFFF0h was a regular
  2392.          ADS# cycle
  2393.  6    divide global timer by 4
  2394.  5    LLOWBAT polarity selector
  2395.     =1 low active
  2396.     =0 high active
  2397.  4    LOWBAT polarity selector (see bit 5)
  2398.  3    SQWIN input clock frequency
  2399.     =1 128KHz
  2400.     =0 32KHz
  2401.  2    external EPMI2 pin polarity
  2402.     =1 active low
  2403.     =0 active high
  2404.  1    external EPMI1 pin polarity (see bit 2)
  2405.  0    send reset pulse during resume
  2406. Note:    for 1X clock with Intel SL Enhanced CPU, bit 6 must be =1
  2407. SeeAlso: #P072,#P536,#P537
  2408.  
  2409. Bitfields for 82C463MV PMU control 2 (doze timer, register 41h):
  2410. Bit(s)    Description    (Table P536)
  2411.  7-5    hardware doze time-out selector
  2412.     101 512 ms
  2413.     110 2 sec
  2414.     111 8 sec
  2415.  4-2    hardware doze-mode CPU clock selector
  2416.     000 CPUCLK/1
  2417.     001 CPUCLK/2
  2418.     010 CPUCLK/4
  2419.     011 CPUCLK/8 (should be used during CPU stop clock only)
  2420.     100 CPUCLK/16 (should be used during CPU stop clock only)
  2421.     101 CPUCLK/3
  2422.     110 reserved
  2423.     111 reserved
  2424.  1    enable LCD_ACCESS, KBD_ACCESS, DSK_ACCESS access to auto trigger
  2425.       the hardware doze timer
  2426.  0    disable hardware doze-mode (enable APM doze-mode support)
  2427. SeeAlso: #P072,#P535,#P537
  2428.  
  2429. Bitfields for 82C463MV PMU control 3 (timers other than doze, register 42h):
  2430. Bit(s)    Description    (Table P537)
  2431.  7-6    clock source for general-purpose timer
  2432.     00 SQW0
  2433.     01 SQW1
  2434.     10 SQW2
  2435.     11 SQW3
  2436.  5-4    clock source for keyboard timer (see bits 7-6)
  2437.  3-2    clock source for disk timer (see bits 7-6)
  2438.  1-0    clock source for LCD timer (see bits 7-6)
  2439. SeeAlso: #P072,#P536,#P538
  2440.  
  2441. Bitfields for 82C463MV PMU control 4 (register 43h):
  2442. Bit(s)    Description    (Table P538)
  2443.  7    disable monitoring of PORT 3B0h-3DFh
  2444.  6    disable monitoring of memory range A0000h-BFFFFh
  2445.  5-4    LOWBAT pin sample rate
  2446.     if register 40h bit 6 =1
  2447.         00 32 seconds
  2448.         01 64 seconds
  2449.         10 128 seconds
  2450.         11 reserved
  2451.     if register 40h bit 6     =0
  2452.         00 8 seconds
  2453.         01 16 seconds
  2454.         10 32 seconds
  2455.         11 reserved
  2456.  3    reserved (0)
  2457.  2-0    AT clock select
  2458.     000 OSCCLK2/8
  2459.     001 OSCCLK2/6
  2460.     010 OSCCLK2/4
  2461.     011 OSCCLK2/3
  2462.     100 OSC14/2 (7.2 MHz)
  2463.     111 stop
  2464. SeeAlso: #P072,#P535,#P538,#P539
  2465.  
  2466. Bitfields for 82C463MV GNR_ACCESS control, I/O base address line A9 (reg. 49h):
  2467. Bit(s)    Description    (Table P539)
  2468.  7    GNR_ACCESS I/O base address bit A9
  2469.  6    enable compare in WRITE cycle
  2470.  5    enable compare in READ cycle
  2471.  4-0    I/O address A5-A1 mask bits. For each bit =1, the corresponding bit
  2472.       in register 48h is not compared (this is used to determine I/O
  2473.       address block size)
  2474. SeeAlso: #P072,#P538
  2475.  
  2476. Bitfields for 82C463MV CSG0# control and base address line A9 (register 4Bh):
  2477. Bit(s)    Description    (Table P540)
  2478.  7    Programmable Chip Select 0 (CSG0#) - I/O base address line A9
  2479.  6    enable CSG0# for I/O write cycles
  2480.  5    enable CSG0# for I/O read cycles
  2481.  4    =1 CSG0# active before ALE
  2482.     =0 CSG0# active just like I/O command pulse
  2483.  3-0    I/O address A4-A1 mask bits. For each bit =1, the corresponding bit
  2484.       in register 4Ah (bits 4-1) is not compared (this is used to
  2485.       determine I/O address block size)
  2486. SeeAlso: #P072,#P541
  2487.  
  2488. Bitfields for 82C463MV CSG1# control and base address line A9 (register 4Dh):
  2489. Bit(s)    Description    (Table P541)
  2490.  7    Programmable Chip Select 1 (CSG1#) - I/O base address line A9
  2491.  6    enable CSG1# for I/O write cycles
  2492.  5    enable CSG1# for I/O read cycles
  2493.  4    =1 CSG1# active before ALE
  2494.     =0 CSG1# active just like I/O command pulse
  2495.  3-0    I/O address A4-A1 mask bits. For each bit =1, the corresponding bit
  2496.     in register 4Ch (bits 4-1) is not compared (this is used to
  2497.     determine I/O address block size)
  2498. SeeAlso: #P072,#P540
  2499.  
  2500. Bitfields for OPTi 82C463MV idle timer control (register 4Eh):
  2501. Bit    Description    (Table P542)
  2502.  7    CSG1 access
  2503.  6    CSG0 access
  2504.  5    LPT access (it refers to PORT 378h-37Fh, PORT 278h-27Fh and
  2505.       PORT 3BCh-3BFh)
  2506.  4    COM access (it refers to PORT 3F8h-3FFh and PORT 2F8h-2FFh)
  2507.  3    GNR_ACCESS
  2508.  2    KBD_ACCESS
  2509.  1    DSK_ACCESS
  2510.  0    LCD_ACCESS
  2511. Note:    If a bit is =1, the corresponding access will reload IDLE_TIMER
  2512.       otherwise not.
  2513. SeeAlso: #P072
  2514.  
  2515. Bitfields for 82C463MV suspend/resume control (register 50h):
  2516. Bit    Description    (Table P543)
  2517.  7    software generation of SMI (enabled by bit 7 of register 59h)
  2518.       writing 1 asserts SMI to CPU to start SMM operation
  2519.       writing 0 clears the SMI (the SMI routine must clear this bit)
  2520.  6    reserved (0)
  2521.  5    IRQ8 active level
  2522.     =1 high active
  2523.     =0 low active
  2524.  4    disable the internal 14.3MHz clock (to conserve power)
  2525.  3    start doze-mode / read DOZE_TIMER status
  2526.     write: start APM doze-mode
  2527.         =1 start doze-mode (if register 40h bit 0 =1)
  2528.         =0 no effect
  2529.     read: hardware DOZE_TIMER time-out status bit
  2530.         =1 hardware DOZE_TIMER has timed out
  2531.         =0 hardware DOZE_TIMER still counting
  2532.  2    Ready To Resume (RTR), read-only
  2533.  1    PMU mode (read-only)
  2534.     =1 suspend-mode still active
  2535.     =0 all other modes
  2536.  0    start suspend-mode (write only)
  2537.     =1 start suspend-mode
  2538.     =0 no effect
  2539. SeeAlso: #P072,#P535,#P550
  2540.  
  2541. Bitfields for 82C463MV beeper/sequencer control (register 51h):
  2542. Bit(s)    Description    (Table P544)
  2543.  7-2    sequencer base address translated-to A17-A12 (A19-A18 are always 1
  2544.       during this operation)
  2545.  1-0    beeper control (independent from PORT 61h)
  2546.     if register 40h bit 6 =1
  2547.         00 no action
  2548.         01 1KHz
  2549.         10 off
  2550.         11 2KHz
  2551.     if register 40h bit 6 =0
  2552.         00 no action
  2553.         01 4KHz
  2554.         10 off
  2555.         11 8KHz
  2556. SeeAlso: #P072,#P535
  2557.  
  2558. Bitfields for 82C463MV PMU Periferal Power (PPWR) control 1 (register 54h):
  2559. Bit(s)    Description    (Table P545)
  2560.  7-4    write mask of PPWR low nibble
  2561.     =1 enable write on corresponding bit
  2562.     =0 write disable
  2563.  3-0    read/write data bits for PPWR (low nibble)
  2564. SeeAlso: #P072,#P546
  2565.  
  2566. Bitfields for 82C463MV PMU Periferal Power (PPWR) control 2 (register 55h):
  2567. Bit(s)    Description    (Table P546)
  2568.  7-4    write mask of PPWR high nibble
  2569.     =1 enable write on corresponding bit
  2570.     =0 write disable
  2571.  3-0    read/write data bits for PPWR (high nibble) (default =1)
  2572. SeeAlso: #P072,#P545
  2573.  
  2574. Bitfields for OPTi 82C463MV PIO control 1 (register 56h):
  2575. Bit(s)    Description    (Table P547)
  2576.  7-4    write mask of PIO bits 3-0
  2577.     =1 enable write on corresponding bit
  2578.     =0 write disable
  2579.  3-0    read/write data bits for PIO
  2580. SeeAlso: #P072,#P548,#P562
  2581.  
  2582. Bitfields for OPTi 82C463MV PIO control 2 (register 57h):
  2583. Bit    Description    (Table P548)
  2584.  7    enable refresh (BIOS must set this bit to 1 after power up)
  2585.  6    enable interrupts to generate PMI #6 (see also #P556,#P560)
  2586.  5    disable monitoring floppy drive accesses
  2587.  4    disable monitoring hard drive accesses
  2588.  3    PIO3/STPGNT# pin direction
  2589.     =1 output
  2590.     =0 input
  2591.  2    PIO2/CPUSPD pin direction (see bit 3)
  2592.  1    PIO1/NOWS# pin direction (see bit 3)
  2593.  0    PIO0 pin direction (see bit 3)
  2594. SeeAlso: #P072,#P547
  2595.  
  2596. Bitfields for OPTi 82C463MV PMU event control 1 (register 58h):
  2597. Bit(s)    Description    (Table P549)
  2598.  7-6    LOWBAT PMI #3 configuration
  2599.     00 disable
  2600.     01 sequencer
  2601.     10 reserved
  2602.     11 SMI
  2603.  5-4    EPMI2 PMI #2 configuration (see bits 7-6)
  2604.  3-2    EPMI1 PMI #1 configuration (see bits 7-6)
  2605.  1-0    LLOWBAT PMI #0 configuration (see bits 7-6)
  2606. SeeAlso: #P072
  2607.  
  2608. Bitfields for OPTi 82C463MV PMU event control 2 (register 59h):
  2609. Bit(s)    Description    (Table P550)
  2610.  7    global software SMI enable (see also bit 7 of register 50h at #P543)
  2611.  6    reload timers during a resume sequence
  2612.  5-4    resume or INTR PMI #6 and Suspend PMI #7 configuration
  2613.     00 disable
  2614.     01 sequencer
  2615.     10 reserved
  2616.     11 SMI
  2617.  3-2    R_TIMER PMI #5 configuration (see bits 5-4)
  2618.  1-0    IDLE_TIMER PMI #4 configuration (see bits 5-4)
  2619. SeeAlso: #P072
  2620.  
  2621. Bitfields for OPTi 82C463MV PMU event control 3 (register 5Ah):
  2622. Bit(s)    Description    (Table P551)
  2623.  7-6    GNR_TIMER time out PMI #11 and access PMI #15 configuration
  2624.     00 disable
  2625.     01 sequencer
  2626.     10 reserved
  2627.     11 SMI
  2628.  5-4    KBD_TIMER time out PMI #10 and access PMI #14 cfg (see bits 7-6)
  2629.  3-2    DSK_TIMER time out PMI #9 and access PMI #13 cfg (see bits 7-6)
  2630.  1-0    LCD_TIMER time out PMI #8 and access PMI #12 cfg (see bits 7-6)
  2631. SeeAlso: #P072,#P552
  2632.  
  2633. Bitfields for OPTi 82C463MV PMU event control 4 (register 5Bh):
  2634. Bit    Description    (Table P552)
  2635.  7    IRQ15 SMI select
  2636.     =1 enable SMI select (SMI internally connected to IRQ15) and
  2637.       disable IRQ15 hardware pin function
  2638.     =0 disable SMI select (enable IRQ15 pin function as normal)
  2639.  6    disable all SMI
  2640.  5    enable sequencer
  2641.  4    SMI Type
  2642.     =0 Intel style SMI (SMM identified by SMIACT#)
  2643.     =1 AMD DXLV or Cyrix style SMI (SMM identified by SMIADS#)
  2644.     Note:    for Intel-style SMI, the 3000h/4000h segments will relocate to
  2645.           B000h/A000h when in SMM; for AMD/Cyrix, the 7000h/6000h
  2646.           segments will relocate to B000h/A000h when in SMM
  2647.  3    enable PMI source #15
  2648.  2    enable PMI source #14
  2649.  1    enable PMI source #13
  2650.  0    enable PMI source #12
  2651. SeeAlso: #P072,#P551,#P553
  2652.  
  2653. Bitfields for OPTi 82C463MV SMI source (low) (register 5Ch):
  2654. Bit    Description    (Table P553)
  2655.  7    PMI #7 - SUSPEND
  2656.  6    PMI #6 - RESUME or INTR
  2657.  5    PMI #5 - R_TIMER time out
  2658.  4    PMI #4 - IDLE_TIMER time out
  2659.  3    PMI #3 - LOWBAT pin
  2660.  2    PMI #2 - EPMI2 pin (external PMI source)
  2661.  1    PMI #1 - EPMI1 pin (external PMI source)
  2662.  0    PMI #0 - LLOWBAT pin
  2663. SeeAlso: #P072,#P554
  2664.  
  2665. Bitfields for OPTi 82C463MV SMI source (high) (register 5Dh):
  2666. Bit    Description    (Table P554)
  2667.  7    PMI #15 - GNR_ACCESS
  2668.  6    PMI #14 - KBD_ACCESS
  2669.  5    PMI #13 - DSK_ACCESS
  2670.  4    PMI #12 - LCD_ACCESS
  2671.  3    PMI #11 - GNR_TIMER
  2672.  2    PMI #10 - KBD_TIMER
  2673.  1    PMI #9 - DSK_TIMER
  2674.  0    PMI #8 - LCD_TIMER
  2675. SeeAlso: #P072,#P553
  2676.  
  2677. Bitfields for OPTi 82C463MV clock stretching control (register 5Eh):
  2678. Bit    Description    (Table P555)
  2679.  7    enable CPU clock stretch memory code cycle
  2680.  6    enable CPU clock stretch write cycle
  2681.  5    enable CPU clock stretch read cycle
  2682.  4    enable CPU clock stretch I/O cycle
  2683.  3    enable CPU clock stretch memory data cycle
  2684.  2    enable stop ATCLK when not in AT bus cycle
  2685.  1    ATCLK stretch
  2686.     =1 synchronous
  2687.     =0 asynchronous
  2688.  0    reserved (0)
  2689. SeeAlso: #P072
  2690.  
  2691. Bitfields for OPTi 82C463MV resume interrupt control (register 5Fh):
  2692. Bit(s)    Description    (Table P556)
  2693.  7    LCD_ACCESS includes AT bus video access
  2694.  6    LCD_ACCESS includes Local bus video access
  2695.  5    enable all resume sources of register 6Ah (see also #P565,#P548)
  2696.  4    RI counter count out will generate resume
  2697.  3-0    number of RI counts
  2698. SeeAlso: #P072
  2699.  
  2700. Bitfields for OPTi 82C463MV debounce control (register 61h):
  2701. Bit(s)    Description    (Table P557)
  2702.  7-6    LOWBAT and LLOWBAT pin debounce rate select
  2703.     if register 40h bit 6 =1
  2704.         00 no debounce
  2705.         01 250 microseconds
  2706.         10 8ms
  2707.         11 500ms
  2708.     if register 40h bit 6 =0
  2709.         00 no debounce
  2710.         01 62.5 microseconds
  2711.         10 2 ms
  2712.         11 125 ms
  2713.  5-4    SUSP/RSM pin debounce rate select
  2714.     if register 40h bit 6 =1
  2715.         00 reserved
  2716.         01 latch high to low edge
  2717.         10 4 ms (low to high)
  2718.         11 8 ms (low to high)
  2719.     if register 40h bit 6 =0
  2720.         00 reserved
  2721.         01 latch high to low edge
  2722.         10 1 ms (low to high)
  2723.         11 2 ms (low to high)
  2724.  3    reserved (0)
  2725.  2    enable STPCLK protocol for switching CPU clock frequencies
  2726.  1-0    STPCLK# delay (for use when STPCLK protocol is enabled)
  2727.     00 no delay
  2728.     01 120 microseconds
  2729.     10 240 microseconds
  2730.     11 1ms, if register 40h bit 6 set; 240 microseconds if clear
  2731. SeeAlso: #P072,#P535
  2732.  
  2733. Bitfields for OPTi 82C463MV doze-mode IRQ selects (register 62h):
  2734. Bit    Description    (Table P558)
  2735.  7    enable IRQ13
  2736.  6    enable IRQ8
  2737.  5    enable IRQ7
  2738.  4    enable IRQ12
  2739.  3    enable IRQ5
  2740.  2    enable IRQ4
  2741.  1    enable IRQ3
  2742.  0    enable IRQ0
  2743. Notes:    in hardware doze-mode the selected interrupts will be used to re-load
  2744.       the hardware DOZE_TIMER and/or trigger the system out of doze-mode
  2745.     in APM doze-mode the selected interrupts will be used to trigger the
  2746.       system out of doze-mode only
  2747. SeeAlso: #P072,#P561,#P559
  2748.  
  2749. Bitfields for OPTi 82C463MV idle timer IRQ selects (register 63h):
  2750. Bit    Description    (Table P559)
  2751.  7    enable EPMI1 (level trigger)
  2752.  6    enable IRQ13
  2753.  5    enable IRQ8
  2754.  4    enable IRQ7
  2755.  3    enable IRQ5
  2756.  2    enable IRQ4
  2757.  1    enable IRQ3
  2758.  0    enable IRQ0
  2759. SeeAlso: #P072,#P558,#P560
  2760.  
  2761. Bitfields for OPTi 82C463MV PMI#6 IRQ selects (register 64h):
  2762. Bit    Description    (Table P560)
  2763.  7    enable IRQ14
  2764.  6    enable IRQ8
  2765.  5    enable IRQ7
  2766.  4    enable IRQ6
  2767.  3    enable IRQ5
  2768.  2    enable IRQ4
  2769.  1    enable IRQ3
  2770.  0    enable IRQ1
  2771. Note:    the value written into this register selects which IRQs generate
  2772.       PMI#6 in normal mode, the value read from this register indicates
  2773.       active IRQs at the time of the read
  2774. SeeAlso: #P072,#P548,#P559
  2775.  
  2776. Bitfields for OPTi 82C463MV doze-mode configuration (register 65h):
  2777. Bit    Description    (Table P561)
  2778.  7    enable monitoring all interrupt signals during hw or sw doze-mode
  2779.  6    doze-mode STPCLK protocol selector (see also #P557)
  2780.     =1 STPCLK will latch for stopping the CPU clock (APM)
  2781.          The delay is determined by register 61h bits 1-0
  2782.     =0 STPCLK will pulse for changing the frequency of the CPU clock
  2783.       (hw doze-mode).
  2784.          The pulse width is determined by register 61h bits 1-0
  2785.  5    enable EPMI1 to reload hardware DOZE_TIMER and exit from hardware or
  2786.       software doze-mode
  2787.  4    enable recognition of SMI during APM stop clock
  2788.  3    allow IRQ1 to exit from hw or sw doze-mode (write-only)
  2789.     (see also #P558)
  2790.  2-0    reserved (0)
  2791. SeeAlso: #P072,#P562
  2792.  
  2793. Bitfields for OPTi 82C463MV suspend control (register 66h):
  2794. Bit    Description    (Table P562)
  2795.  7    refresh type during suspend
  2796.     =1 self refresh
  2797.     =0 normal refresh (refresh rate selected by register 67h bit 6)
  2798.  6    KBCLK during suspend
  2799.     =1 16 KHz
  2800.     =0 7.16 MHz (14.318 MHz /2)
  2801.  5    software (APM) CPU stop-clock control
  2802.     =1 the CPU clock can be stopped by entering APM doze-mode (that is
  2803.       setting register 50h bit 3 to 1)
  2804.     =0 APM doze-mode will use the hw doze-mode clock selected by
  2805.       bits 4-2 of register 41h
  2806.  4    avoid asserting HOLD before stopping the clock
  2807.  3    PIO3/STPGNT# pin selector
  2808.     =1 STPGNT# function (set register 57h bit 3 to input mode)
  2809.         This is for use with CPUs that use the hw stop grant signal
  2810.           to acknowledge stop request
  2811.     =0 PIO3 function (set register 57h bit 3 to determine input or
  2812.       output mode)
  2813.  2    PIO2/CPUSPD pin selector
  2814.     =1 CPUSPD function, CPU speed indicator output (set register 57h
  2815.       bit 2 to output mode)
  2816.     =0 PIO2 function (set register 57h bit 2 to determine input or
  2817.       output mode)
  2818.  1    PIO1/NOWS# pin selector
  2819.     =1 NOWS# function (set register 57h bit 1 to input mode)
  2820.     =0 PIO1 function (set register 57h bit 1 to determine input or
  2821.       output mode)
  2822.  0    enable CPU clock change request protocol
  2823. Note:    for hardware doze mode, bit 5 must be 0
  2824. SeeAlso: #P072,#P536,#P543,#P548,#P563
  2825.  
  2826. Bitfields for OPTi 82C463MV CPU frequency (register 67h):
  2827. Bit(s)    Description    (Table P563)
  2828.  7    CPU clock control during suspend
  2829.     =1 dynamic CPU (in suspend-mode, bits 2-0 select the CPU clock)
  2830.     =0 static CPU (in suspend-mode, 82C463MV stops the CPU clock)
  2831.  6    refresh control
  2832.     =1 slow refresh (128 ms)
  2833.     =0 normal refresh (15 ms for normal operation, 30 ms for suspend mode)
  2834.  5    PMU global enabler
  2835.  4    reserved (1)
  2836.  3    reserved (0)
  2837.  2-0    CPU clock frequency
  2838.     000 CPUCLK/1
  2839.     001 CPUCLK/2
  2840.     010 CPUCLK/4
  2841.     101 CPUCLK/3
  2842.     else reserved
  2843. SeeAlso: #P072
  2844.  
  2845. Bitfields for OPTi 82C463MV timer clock source (register 68h):
  2846. Bit(s)    Description    (Table P564)
  2847.  7-6    R_TIMER clock source selector
  2848.     00 SQW0
  2849.     01 SQW1
  2850.     10 SQW2
  2851.     11 SQW3
  2852.  5-4    IDLE_TIMER clock source selector (see bits 7-6)
  2853.  3-2    resume recovery time
  2854.     if register 40h bit 6 =1
  2855.         00 8 ms
  2856.         01 32 ms
  2857.         10 128 ms
  2858.         11 256 ms
  2859.     if register 40h bit 6 =0
  2860.         00 2 ms
  2861.         01 8 ms
  2862.         10 32 ms
  2863.         11 64 ms
  2864.  1    enable PPWR bit 1 suspend auto toggle (see also #P545)
  2865.  0    enable PPWR bit 0 suspend auto toggle (see also #P545)
  2866. Note:    bits 1 and 0 are not influenced by mask bits 5 and 4 of register 54h
  2867. SeeAlso: #P072,#P535
  2868.  
  2869. Bitfields for OPTi 82C463MV resume IRQ selects (register 6Ah):
  2870. Bit    Description    (Table P565)
  2871.  7    enable EPMI2 (resume on a rising edge)
  2872.  6    enable EPMI1 (resume on a rising edge)
  2873.  5    enable IRQ8 (resume on a falling edge)
  2874.  4    enable IRQ7 (resume on a rising edge)
  2875.  3    enable IRQ5 (resume on a rising edge)
  2876.  2    enable IRQ4 (resume on a rising edge)
  2877.  1    enable IRQ3 (resume on a rising edge)
  2878.  0    enable IRQ1 (resume on a rising edge)
  2879. SeeAlso: #P072
  2880.  
  2881. Bitfields for OPTi 82C463MV resume sources (register 6Bh):
  2882. Bit(s)    Description    (Table P566)
  2883.  7    refresh pulse width during sequencer operation
  2884.     =1 6 AT clocks
  2885.     =0 4 AT clocks
  2886.  6-3    reserved (0)
  2887.  2-0    resume sources (read-only)
  2888.     001 RI
  2889.     010 INTR (as selected in register 6Ah)
  2890.     100 SUSP/RSM pin
  2891.     else reserved
  2892. SeeAlso: #P072,#P565
  2893. ----------P00220024--------------------------
  2894. PORT 0022-0024 - OPTi "Viper" (82C557) CHIPSET - SYSTEM CONTROL REGISTERS
  2895. Note:    every access to PORT 0024h must be preceded by a write to PORT 0022h,
  2896.       even if the same register is being accessed a second time
  2897. SeeAlso: PORT 0022h"82C206"
  2898.  
  2899. 0022  ?W  index for accesses to data port (see #P073)
  2900. 0023  RW  DMA clock select (see #P046)
  2901. 0024  RW  chip set data
  2902.  
  2903. (Table P073)
  2904. Values for OPTi "Viper" (82C557) system control registers:
  2905.  00h    Byte Merge/Prefetch and Sony Cache Module Control register (see #P786)
  2906.  00h    Compatible DRAM Configuration register 1 (see #P787) (refer to note)
  2907.  01h    DRAM Control register 1 (see #P788)
  2908.  02h    Cache Control register 1 (see #P789)
  2909.  03h    Cache Control register 2 (see #P790)
  2910.  04h    Shadow RAM Control register 1 (see #P791)
  2911.  05h    Shadow RAM Control register 2 (see #P792)
  2912.  06h    Shadow RAM Control register 3 (see #P793)
  2913.  07h    Tag Test register (see #P794)
  2914.  08h    CPU Cache Control register (see #P795)
  2915.  09h    System Memory Function register (see #P796)
  2916.  0Ah    DRAM Hole A Address Decode register 1 (see #P797)
  2917.  0Bh    DRAM Hole B Address Decode register 2 (see #P798)
  2918.  0Ch    Extended DMA register (see #P799)
  2919.  0Dh    Clock Control register (see #P800)
  2920.  0Eh    Cycle Control register 1 (see #P801)
  2921.  0Fh    Cycle Control register 2 (see #P802)
  2922.  10h    Miscellaneous Control register 1 (see #P803)
  2923.  11h    Miscellaneous Control register 2 (see #P804)
  2924.  12h    Refresh Control register (see #P805)
  2925.  13h    Memory Decode Control register 1 (see #P806)
  2926.  14h    Memory Decode Control register 2 (see #P807)
  2927.  15h    PCI Cycle Control register 1 (see #P808)
  2928.  16h    Dirty/Tag RAM Control register (see #P809)
  2929.  17h    PCI Cycle Control register 2 (see #P810)
  2930.  18h    Tristate Control register (see #P811)
  2931.  19h    Memory Decode Control register 3 (see #P812)
  2932.  1Ah-1Fh reserved
  2933. Note:    Byte Merge/Prefetch and Sony Cache Module Control register is accessed
  2934.       through register 00h when bit 7 of register 13h is set, otherwise
  2935.       Compatible DRAM Configuration register 1 is accessed as register 00h
  2936.     reserved registers 1Ah-1Fh must be written to 0
  2937. SeeAlso: #P058,#P806
  2938.  
  2939. Bitfields for OPTi "Viper" Byte Merge / Sony Cache Module Control register:
  2940. Bit(s)    Description    (Table P786)
  2941.  7    enable pipelining of single CPU cycles to memory
  2942.  6    enable video memory byte/word read prefetch. Enables the prefetching
  2943.       of bytes/words from PCI video memory to the CPU
  2944.  5    enable Sony SONIC-2WP support. If set, the ensure that the L2 cache
  2945.       has been disabled (register 02h bits 3-2)
  2946.  4    enable byte/word merge support
  2947.  3    enable byte/word merging with CPU pipelining (NA# generation) support
  2948.  2-1    time-out counter for byte/word merge. Determines the maximum time
  2949.       difference between two consecutive PCI bye/word writes to allow
  2950.       merging
  2951.     00  4 CPU CLKs
  2952.     01  8 CPU CLKs
  2953.     10 12 CPU CLKs
  2954.     11 16 CPU CLKs
  2955.  0    enable internal hold requests to be blocked while performing byte merge
  2956. SeeAlso: #P073
  2957.  
  2958. Bitfields for OPTi "Viper" Compatible DRAM Configuration register 1:
  2959. Bit(s)    Description    (Table P787)
  2960.  7    enable pipelining of single CPU cycles to memory
  2961.  6    second bank SIMM selection. SIMMs need to be single sided
  2962.     0 single sided SIMM not installed in bank 0
  2963.     1 single sided SIMM installed in bank 0
  2964.  5    first bank SIMM selection. SIMMs need to be single sided
  2965.     0 single sided SIMM not installed in bank 0
  2966.     1 single sided SIMM installed in bank 0
  2967.  4-0    banks 0 thru 3 DRAM configuration
  2968.     (val)    Bank0    Bank1    Bank2    Bank3
  2969.     00000    256K    256KB    -    -
  2970.     00001    512K    512K    -    -
  2971.     00010    1M    1M    -    -
  2972.     00011    2M    2M    -    -
  2973.     00100    4M    4M    -    -
  2974.     00101    8M    8M    -    -
  2975.     00110    256K    256K    256K    256K
  2976.     00111    256K    256K    512K    512K
  2977.     01000    512K    512K    512K    512K
  2978.     01001    256K    256K    1M    1M
  2979.     01010    512K    512K    1M    1M
  2980.     01011    1M    1M    1M    1M
  2981.     01100    256K    256K    2M    2M
  2982.     01101    512K    512K    2M    2M
  2983.     01110    1M    1M    2M    2M
  2984.     01111    2M    2M    2M    2M
  2985.     10000    256K    256K    4M    4M
  2986.     10001    512K    512K    4M    4M
  2987.     10010    1M    1M    4M    4M
  2988.     10011    2M    2M    4M    4M
  2989.     10100    4M    4M    4M    4M
  2990.     10101    256K    256K    8M    8M
  2991.     10110    512K    512K    8M    8M
  2992.     10111    1M    1M    8M    8M
  2993.     11000    2M    2M    8M    8M
  2994.     11001    4M    4M    8M    8M
  2995.     11010    8M    8M    8M    8M
  2996. Note:    these settings maintain backward compatibility with the "Python"
  2997.       (82C546/82C547) chipset, and they do not allow for much flexibility
  2998. SeeAlso: #P073
  2999.  
  3000. Bitfields for OPTi "Viper" (82C557) DRAM Control register 1:
  3001. Bit(s)    Description    (Table P788)
  3002.  7    row address hold after RAS# active in CLKs
  3003.     0 2 CLKs
  3004.     1 1 CLK
  3005.  6    RAS# active/inactive on entering master mode
  3006.     0 normal page mode when starting a master cycle, RAS# will remain
  3007.     1 RAS# inactive when starting a master cycle
  3008.  5-4    RAS pulse width used during refresh
  3009.     00 7 CLKs
  3010.     01 6 CLKs
  3011.     10 5 CLKs
  3012.     11 4 CLKs
  3013.  3    CAS pulse width during reads
  3014.     0 3 CLKs
  3015.     1 2 CLKs
  3016.  2    CAS pulse width during writes 
  3017.     0 3 CLKs
  3018.     1 2 CLKs
  3019.  1-0    RAS precharge time
  3020.     00 6 CLKs
  3021.     01 5 CLKs
  3022.     10 4 CLKs
  3023.     11 3 CLKs
  3024. SeeAlso: #P073,#P789
  3025.  
  3026. Bitfields for OPTi "Viper" (82C557) Cache Control register 1:
  3027. Bit(s)    Description    (Table P789)
  3028.  7-6    cache size selection; determines size of the L2 cache, along with
  3029.       register 0Fh bit 0. When set, it works as a *16 multiplier
  3030.     00  64K (1M when register 0Fh bit 0 set)
  3031.     01 128K (2M when register 0Fh bit 0 set)
  3032.     10 256K (reserved when register 0Fh bit 0 set)
  3033.     11 512K (reserved when register 0Fh bit 0 set)
  3034.  5-4    cache write policy; determines the write policy for the L2 cache
  3035.     00 L2 cache write-through
  3036.     01 Adaptive Write-back Mode 1
  3037.     10 Adaptive Write-back Mode 2
  3038.     11 L2 cache write-back
  3039.  3-2    cache mode select; determines the operating mode of the L2 cache
  3040.     00 disable
  3041.     01 Test Mode 1, External Tag Write (Tag data write-through reg. 07h)
  3042.     10 Test Mode 2, External Tag Read (Tag data read from register 07h)
  3043.     11 enable L2 cache
  3044.  1    enable DRAM posted write
  3045.  0    CAS precharge time
  3046.     0 2 CLKs
  3047.     1 1 CLK
  3048. SeeAlso: #P073,#P794,#P802,#P790
  3049.  
  3050. Bitfields for OPTi "Viper" (82C557) Cache Control register 2
  3051. Bit(s)    Description    (Table P790)
  3052.  7-6    L2 cache write burst mode timings
  3053.     00 X-4-4-4
  3054.     01 X-3-3-3
  3055.     10 X-2-2-2
  3056.     11 X-1-1-1
  3057.  5-4    L2 cache write lead-off cycle timings
  3058.     00 5-X-X-X
  3059.     01 4-X-X-X
  3060.     10 3-X-X-X
  3061.     11 2-X-X-X
  3062.  3-2    L2 cache read burst mode timings
  3063.     00 X-4-4-4
  3064.     01 X-3-3-3
  3065.     10 X-2-2-2
  3066.     11 X-1-1-1
  3067.  1-0    L2 cache read lead-off cycle timings
  3068.     00 5-X-X-X
  3069.     01 4-X-X-X
  3070.     10 3-X-X-X
  3071.     11 2-X-X-X
  3072. Note:    SRAM double bank implementation does not support lead-off timing
  3073. SeeAlso: #P073,#P789
  3074.  
  3075. Bitfields for OPTi "Viper" (82C557) Shadow RAM Control register 1:
  3076. Bit(s)    Description    (Table P791)
  3077.  7-6    CC000-CFFFF read/write control; determines the R/W control for these
  3078.       segments of the shadow RAM (see #P813)
  3079.  5-4    C8000-CBFFF read/write control; determines the R/W control for these
  3080.       segments of the shadow RAM (see #P813)
  3081.  3    enable synchronous SRAM pipelined read cycle 1-1-1-1
  3082.  2    E0000-EFFFF range selection
  3083.     0 area will always be non-cacheable
  3084.     1 are will be treated like the F0000h BIOS area
  3085.  1-0    C0000-C7FFF read/write control; determines the R/W control for these
  3086.       segments of the shadow RAM (see #P813)
  3087. Note:    bit 3 will act only when register 11h bit 3 and register 03h bits 3-2
  3088.       are all set
  3089.     when bit 2 is set, register 06h bits 3-0 should be set identically
  3090. SeeAlso: #P073,#P792
  3091.  
  3092. (Table P813)
  3093. Values for OPTi "Viper" (82C557) Shadow RAM Control setting:
  3094.  00    read/write PCI bus
  3095.  01    read from DRAM/write to PCI
  3096.  10    read from PCI/write to DRAM
  3097.  11    read from/write to DRAM
  3098. SeeAlso: #P791,#P792,#P793
  3099.  
  3100. Bitfields for OPTi "Viper" (82C557) Shadow RAM Control register 2:
  3101. Bit(s)    Description    (Table P792)
  3102.  7-6    DC000-DFFFF read/write control; determines the R/W control for these
  3103.       segments of the shadow RAM (see #P813)
  3104.  5-4    D8000-DBFFF read/write control; determines the R/W control for these
  3105.       segments of the shadow RAM (see #P813)
  3106.  3-2    D4000-D7FFF read/write control; determines the R/W control for these
  3107.       segments of the shadow RAM (see #P813)
  3108.  1-0    D0000-D3FFF read/write control; determines the R/W control for these
  3109.       segments of the shadow RAM (see #P813)
  3110. SeeAlso: #P073,#P791,#P793
  3111.  
  3112. Bitfields for OPTi "Viper" (82C557) Shadow RAM Control register 3:
  3113. Bit(s)    Description    (Table P793)
  3114.  7    DRAM hole in system memory from 80000-9FFFF; gives the user the option
  3115.       to have some other device in this address range instead of system
  3116.       memory. When set, the SYSC will not start the system DRAM controller
  3117.       for accesses to this particular address range
  3118.     0 no memory hole
  3119.     1 enable memory hole
  3120.  6    wait state addition for PCI master snooping
  3121.     0 do not add a wait state
  3122.     1 add a wait state for the cycle access to finish and then do snooping
  3123.  5    enable C0000-C7FFF cacheability in L1 and L2 cache memory
  3124.  4    enable F0000-FFFFF cacheability in L1 and L2 cache memory
  3125.  3-2    F0000-FFFFF read/write control; determines the R/W control for these
  3126.       segments of the shadow RAM (see #P813)
  3127.  1-0    E0000-EFFFF read/write control; determines the R/W control for these
  3128.       segments of the shadow RAM (see #P813)
  3129. Note:    L1 cacheability can be disabled thru register 08h bit 0
  3130.     If register 04h bit 2 is set, then F0000-FFFFF and E0000-EFFFF R/W
  3131.     control settings should have similar values
  3132. SeeAlso: #P073,#P792
  3133.  
  3134. Bitfields for OPTi "Viper" (82C557) Tag Test register:
  3135. Bit(s)    Description    (Table P794)
  3136.  7-0    Tag Test register; when in cache Test Mode, data is read from/written
  3137.       to this register
  3138. SeeAlso: #P073,#P789
  3139.  
  3140. Bitfields for OPTi "Viper" (82C557) CPU Cache Control register:
  3141. Bit(s)    Description    (Table P795)
  3142.  7    L2 cache single/double bank select
  3143.     0 two banks of L2 cache
  3144.     1 single bank of L2 cache (non-interleaved)
  3145.  6    enable snoop filtering for bus masters
  3146.  5    CPU HITM# pin sample timing
  3147.     0 delay one clock, therefore HITM# sampled on the third rising edge
  3148.       of LCLK after EADS# has been asserted
  3149.     1 do not delay, therefore HITM# sampled on the second rising edge
  3150.  4    enable parity checking
  3151.  3    Tag/Dirty RAM implementation
  3152.     0 Tag and Dirty are on separate chips
  3153.     1 Tag and Dirty are on the same chip
  3154.  2    enable CPU address pipelining
  3155.  1    enable L1 cache write-back and write-through control
  3156.     0 write-through only
  3157.     1 write-back enabled
  3158.  0    disable BIOS and Video BIOS areas cacheability in L1 cache
  3159. Note:    If asynchronous SRAM, then cache memory banks (when two are present)
  3160.       are interleaved, otherwise, they are not
  3161.     When register 04h bit 2 is set, bit 0 affects BIOS area E0000-EFFFF;
  3162.       when clear, bit 0 affects are F0000-FFFFF
  3163. SeeAlso: #P073,#P796
  3164.  
  3165. Bitfields for OPTi "Viper" (82C557) System Memory Function register:
  3166. Bit(s)    Description    (Table P796)
  3167.  7-6    DRAM Hole B size
  3168.     (address specified by register 0Bh, and register 0Ch bits 3-2)
  3169.     00 512K
  3170.     01   1M
  3171.     10   2M
  3172.     11   4M
  3173.  5-4    DRAM Hole B control mode
  3174.     00 disable
  3175.     01 write-through for L1 and L2 cache
  3176.     10 non-cacheable for L1 and L2 cache
  3177.     11 enable hole in DRAM
  3178.  3-2    DRAM Hole A size (settings same as bits 7-6)
  3179.     (address specified by register 0Ah, and register 0Ch bits 1-0)
  3180.  1-0    DRAM Hole A control mode (settings same as bits 5-4)
  3181. SeeAlso: #P073,#P798,#P799
  3182.  
  3183. Bitfields for OPTi "Viper" (82C557) DRAM Hole A Address Decode register 1:
  3184. Bit(s)    Description    (Table P797)
  3185.  7-0    DRAM Hole A address, bits 26-19
  3186.     (bits 1-0 of register 0Ch map onto bits 28-27 of HA lines)
  3187. SeeAlso: #P073,#P799,#P798
  3188.  
  3189. Bitfields for OPTi "Viper" (82C557) DRAM Hole B Address Decode register 2:
  3190. Bit(s)    Description    (Table P798)
  3191.  7-0    DRAM Hole B address, bits 26-19
  3192.     (bits 3-2 of register 0Ch map onto bits 28-27 of HA lines)
  3193. SeeAlso: #P073,#P799,#P797
  3194.  
  3195. Bitfields for OPTi "Viper" (82C557) Extended DMA register:
  3196. Bit(s)    Description    (Table P799)
  3197.  7    reserved (0)
  3198.  6    Fast BRDY# generation for DRAM write page hits
  3199.     0 BRDY# for DRAM writes generated on the fourth clock
  3200.     1 BRDY# for DRAM writes generated on the third clock
  3201.  5    HACALE one-half a clock cycle earlier
  3202.     0 HACALE normal timing
  3203.     1 HACALE one-half a clock cycle early enabled
  3204.  4    wider cache WE# pulse
  3205.     0 cache WE# pulse width is normal (~15ns)
  3206.     1 cache WE# pulse is wider (~17.5ns)
  3207.  3-2    DRAM Hole B starting address, bits 28-27 (see also #P797)
  3208.  1-0    DRAM Hole A starting address, bits 28-27 (see also #P798)
  3209. Note:    bits 26-19 of memory holes A and B are mapped from Indices 0Ah and 0Bh
  3210. SeeAlso: #P073
  3211.  
  3212. Bitfields for OPTi "Viper" (82C557) Clock Control register:
  3213. Bit(s)    Description    (Table P800)
  3214.  7    clock source for generation the syncronous SRAM timing
  3215.     0 CPU clock is the source for the timing and control signals
  3216.     1 ECLK is the source for the timing and control signals
  3217.  6    this bit is set if the skew between ECLK and CPU clock is too large
  3218.       (read-only bit, set by the 82C557 chip)
  3219.  5    enable auto skew detect; when this bit is set, bit 4 will be set
  3220.       automatically if the skew between CLK and ECLK is too large
  3221.  4    ECLK - CLK skew, activated when synchronou SRAMs are being used
  3222.     0 skew between CLK and ECLK is not too large
  3223.     1 skew is too large
  3224.  3    enable A0000-BFFFF as system memory
  3225.  2    wait state addition for PCI master doing address toggling as a 486
  3226.     0 linear burst mode style address toggling - no wait state addition
  3227.     1 i486 burst style address toggling - one wait state needs to be added
  3228.  1    PCI cycle claimed by the 82C557 during PCI pre-snoop cycle
  3229.     0 82C557 does not claim the PCI cycle after it asserts STOP#
  3230.     1 82C557 claims the PCI cycle after it asserts STOP#
  3231.  0    slow CPU clock; should be set if the CPU clock frequency has been
  3232.       reduced
  3233.     0 CPU clock frequency is normal
  3234.     1 CPU clock has been slowed down
  3235. SeeAlso: #P073
  3236.  
  3237. Bitfields for OPTi "Viper" (82C557) Cycle Control register 1:
  3238. Bit(s)    Description    (Table P801)
  3239.  7-6    PCI master read burst wait state control
  3240.     00 4 cycles
  3241.     01 3 cycles
  3242.     10 2 cycles
  3243.     11 reserved
  3244.  5-4    PCI master write burst wait state control (same settings as bits 7-6)
  3245.  3    master cycle parity enable; this bit becomes applicable when bit 4 of
  3246.       register 08h is set
  3247.     0 enable parity check during master cycles
  3248.     1 disable parity check during master cycles
  3249.  2    HACALE timing control
  3250.     0 HACALE high during HITM# before CPU ADS#
  3251.     1 HACALE low and CA4 always enabled during HITM cycle
  3252.  1    enable write protection for L1 BIOS
  3253.  0    PCI line comparator; this bit is only valid when bit 6 of register 08h
  3254.       is set
  3255.     0 use line comparator in PCI master
  3256.     1 generate inquire cycle for every new FRAME#
  3257. SeeAlso: #P073
  3258.  
  3259. Bitfields for OPTi "Viper" (82C557) Cycle Control register 2:
  3260. Bit(s)    Description    (Table P802)
  3261.  7    enable PCI pre-snooping feature
  3262.  6    AT master wait state control
  3263.     0 do not add any wait states for AT master cycles
  3264.     1 add wait wait states for AT master cycles
  3265.  5    wait state addition for synchronous SRAM even byte access
  3266.     0 do not add a wait state for a synchronous SRAM even byte access
  3267.     1 add one wait state for a synchronous SRAM even byte access
  3268.  4    PCI wait state addition for synchronous SRAM L2 cache implementation
  3269.     0 master does not wait for end of current cycle + CPU-PCI clock to
  3270.       become synchronous
  3271.     1 master waits for end of current cycle + wait for CPU-PCI clock to
  3272.       become synchronous
  3273.  3    reserved
  3274.  2    ADSC# generation for synchronous SRAM read cycle
  3275.     0 generate ADSC# immediately after CPU ADS# goes active
  3276.     1 generate ADSC# one clock after CPU ADS# goes active
  3277.  1    reserved
  3278.  0    L2 cache size selector; works along with bits 1-0 of register 02h
  3279.     0 below 1M
  3280.     1 1M and above
  3281. SeeAlso: #P073,#P789
  3282.  
  3283. Bitfields for OPTi "Viper" (82C557) Miscellaneous Control register 1:
  3284. Bit(s)    Description    (Table P803)
  3285.  7    early decode of PCI/VL/AT cycle
  3286.     0 CPU to PCI/VL/AT slave cycle triggered after second T2
  3287.     1 CPU to PCI/VL/AT slave cycle triggered after first T2
  3288.  6    cache modified write cycle timing
  3289.     0 use the old address changing method, as in the 82C546/82C547
  3290.     1 two bank cache, CA4 delayed one-half a clock for write cycles
  3291.  5    pipelined read cycle timing; determines the lead-off cycle
  3292.     0 3-X-X-X read followed by a 3-X-X-X piped read cycle
  3293.     1 3-X-X-X read followed by a 2-X-X-X piped read cycle
  3294.  4    enable write hit pipelined
  3295.     0 do not enable 2-X-X-X pipelined write hit cycles
  3296.     1 enable 2-X-X-X pipelined write hit cycles
  3297.  3    write pulse timing control for cache write hit cycles
  3298.     0 do not change the write pulse timing during X-2-2-2 write hit cycles
  3299.     1 move the write pulse one-half a clock later in X-2-2-2 write hit
  3300.       cycles
  3301.  2    write pulse timing control for cache write hit cycles
  3302.     0 do not change the write pulse timing during 3-X-X-X write hit cycles
  3303.     1 move the write pulse one-half a clock later in 3-X-X-X write hit
  3304.       cycles
  3305.  1    external 74F126 select
  3306.     0 an external 74F126 is installed for CA3 and CA4
  3307.     1 an external 74F126 is not installed for CA3 and CA4
  3308.  0    LCLK select control; when this bit is set, the timing constraints
  3309.       between the LCLK and the CPUCLK inputs to the SYSC need to be met.
  3310.       This constraints are: LCLK <= 1/2 CPUCLK period before CPUCLK, and
  3311.       LCLK <= 0.5ns after CPUCLK
  3312.     0 LCLK is asynchronous to the CPUCLK
  3313.     1 LCLK is synchronous to the CPUCLK; LCLK = CPUCLK/2
  3314. Note:    bit 1 should always be set to 1
  3315. SeeAlso: #P073
  3316.  
  3317. Bitfields for OPTi "Viper" (82C557) Miscellaneous Control register 2:
  3318. Bit(s)    Description    (Table P804)
  3319.  7-6    reserved; must be set to 0
  3320.  5    cache inactive during Idle state control
  3321.     0 SRAM always active
  3322.     1 SRAM inactive during Idle state
  3323.  4    next address (NA#) mode control
  3324.     0 normal NA# timing used with asynchronous SRAMs
  3325.     1 new NA# timing for synchronous SRAMs; used only when CPU operating
  3326.       at 50MHz
  3327.  3    SRAM type
  3328.     0 asynchronous SRAM
  3329.     1 synchronous SRAM
  3330.  2    enable page miss posted write
  3331.  1    ISA/DMA IOCHRDY control
  3332.     0 old mode, no IOCHRDY during line hit
  3333.     1 drive IOCHRDY low until cycle is finished
  3334.  0    delay start
  3335.     0 old mode, do not delay internal master cycle after an inquire cycle
  3336.     1 delay internal master cycles by one LCLK after an inquire cycle
  3337. SeeAlso: #P073
  3338.  
  3339. Bitfields for OPTi "Viper" (82C557) Refresh Control register:
  3340. Bit(s)    Description    (Table P805)
  3341.  7    REFRESH#/32KHz source selection
  3342.     0 REFRESH# source is REFRESH# pulse from the 82C558 or the ISA master
  3343.     1 REFRESH# pulse source is a 32KHz clock
  3344.  6    reserved; must be written to 0
  3345.  5-4    suspend mode refresh
  3346.     00 from CLK state machine
  3347.     01 slef refresh based on 32KHz only
  3348.     10 normal refresh based on 32KHz only
  3349.     11 undefined
  3350.  3-2    slow refresh
  3351.     00 refresh on every REFRESH#/32KHz falling edge
  3352.     01 refresh on alternate REFRESH#/32KHz falling edge
  3353.     10 refresh on one in four REFRESH#/32KHz falling edge
  3354.     1 refresh on every REFRESH#/32KHz toggle
  3355.  1    enable bits 23-17 of LA from Refresh Page register (8Fh) during refresh
  3356.  0    enable output of bits 7-4 of DBC MP during master write
  3357.     0 disable the DBC from generation the MP[7:4] lines during PCI master
  3358.       writes; there must be a pull-up on MP0
  3359.     1 enable the DBC to generate the MP[7:4] lines during PIC master
  3360.       writes; there must be a pull-down on MP0
  3361. SeeAlso: #P073,#P806
  3362.  
  3363. Bitfields for OPTi "Viper" (82C557) Memory Decode Control register 1:
  3364. Bit(s)    Description    (Table P806)
  3365.  7    memory decode select
  3366.     0 Byte Merge/Prefetch and Sony Cache Module Control register is
  3367.       available in register 00h; compatible to 82C547 DRAM configurations
  3368.     1 Compatible DRAM Configuration register is available in register 00h;
  3369.       full decode option; this gives the user maximum flexibility in
  3370.       choosing different DRAM configurations
  3371.  6-4    full decode for logical bank 1 (RAS#1), if bit 7 set. This settings
  3372.       apply to 36-pin banks only (see #P814)
  3373.  3    enable SMRAM
  3374.  2-0    full decode for logical bank 0 (RAS#0), if bit 7 set. This settings
  3375.       apply to 36-pin banks only (see #P814)
  3376. SeeAlso: #P073,#P786,#P787
  3377.  
  3378. (Table P814)
  3379. Values for OPTi "Viper" (82C557) Memory Bank Decode Control registers:
  3380.  000      0K
  3381.  001    256K
  3382.  010    512K
  3383.  011      1M
  3384.  100      2M
  3385.  101      4M
  3386.  110      8M
  3387.  111     16M
  3388. SeeAlso: #P806,#P807,#P810
  3389.  
  3390. Bitfields for OPTi "Viper" (82C557) Memory Decode Control register 2:
  3391. Bit(s)    Description    (Table P807)
  3392.  7    reserved; must be written to 0
  3393.  6-4    full decode for logical bank 3 (RAS#3), if register 13h bit 7 is set
  3394.       (see #P814)
  3395.  3    SMRAM control
  3396.     0 disable SMRAM (enable SMRAM for both Code and Data if SMIACT# is
  3397.       active and register 13h bit 3 is set)
  3398.     1 enable SMRAM (enable SMRAM for Code only if SMIACT# is active and
  3399.       register 13h bit 3 is set)
  3400.  2-0    full decode for logical bank 2 (RAS#2), if register 13h bit 7 is set
  3401.       (see #P814)
  3402. SeeAlso: #P073
  3403.  
  3404. Bitfields for OPTi "Viper" (82C557) PCI Cycle Control register 1:
  3405. Bit(s)    Description    (Table P808)
  3406.  7-6    CPU master to PCI memory slave, write IRDY# control
  3407.     00 3 LCLKs after end of address phase
  3408.     01 2 LCLKs after end of address phase
  3409.     10 1 LCLK after end of address phase
  3410.     11 0 LCLK after end of address phase
  3411.  5-4    CPU master to PCI slave write posting, bursting control
  3412.     00 PCI slave write, no posting, no bursting
  3413.     01 PCI slave write, posting enabled, no bursting
  3414.     10 PCI slave write, posting enabled, conservative bursting
  3415.     11 PCI slave write, posting enabled, aggressive bursting
  3416.  3-2    master retry timer
  3417.     00 retries unmasked after 10 PCICLKs
  3418.     01 retries unmasked after 18 PCICLKs
  3419.     10 retries unmasked after 34 PCICLKs
  3420.     11 retries unmasked after 66 PCICLKs
  3421.  1    reserved; must be written to 0
  3422.  0    PCI cycle, FRAME# timing control for pipelined cycles
  3423.     0 PCI cycle FRAME# assertion is done in the conservative mode style
  3424.     1 PCI cycle FRAME# assertion is done in the aggressive mode style
  3425. SeeAlso: #P073,#P810
  3426.  
  3427. Bitfields for OPTi "Viper" (82C557) Dirty/Tag RAM Control register:
  3428. Bit(s)    Description    (Table P809)
  3429.  7    Dirty pin selection; reflects the kind of SRAM chosen to implement the
  3430.       Dirty RAM; it also determines the functionality of the DIRTYI pin of
  3431.       the 82C557
  3432.     0 DIRTYI pin is input-only
  3433.     1 DIRTYI pin is bidirectional
  3434.  6    reserved; must be written to 0
  3435.  5    Tag RAM size
  3436.     0 = 8-bit Tag
  3437.     1 = 7-bit Tag
  3438.  4    write hit cycle lead-off time when combining Dirty/Tag RAM
  3439.     0 single write hit lead-off cycle = 5 cycles
  3440.     1 single write hit lead-off cycle = 4 cycles
  3441.  3    pre-snoop control
  3442.     0 pre-snoop for starting address 0 only
  3443.     1 pre-snoop for all addresses except those on the line boundary
  3444.  2    reserved; must be written to 0
  3445.  1    CPU to VL read access, DBC DLE# bits 1-0 timing
  3446.     0 LCLK high
  3447.     1 LCLK low
  3448.  0    HDOE# timing control
  3449.     0 HDOE# is negated normally
  3450.     1 HDOE# is negated one clock before the cycle finishes
  3451. SeeAlso: #P073
  3452.  
  3453. Bitfields for OPTi "Viper" (82C557) PCI Cycle Control register 2:
  3454. Bit(s)    Description    (Table P810)
  3455.  7    NA# assertion control for PCI slave accesses when synchronous PCI clock
  3456.       is used
  3457.     0 no pipelining for accesses to PCI slave
  3458.     1 pipelining enabled for accesses to PCI slave for both synchronous and
  3459.       asynchronous PCI solutions; if set, overrides bit 6
  3460.  6    NA# assertion control for PCI slave accesses when asynchronous PCI
  3461.       clock is used
  3462.     0 no pipelining for accesses to PCI slave
  3463.     1 pipelining enabled for accesses to PCI slave for an asynchronous PCI
  3464.       implementation; this bit is overridden if bit 7 is set
  3465.  5    enable support for Intel standard BSRAM
  3466.     0 no support for Intel standard BSRAM
  3467.     1 support for Intel standard BSRAM; should be set only if using two
  3468.       banks of synchronous SRAM
  3469.  4    enable fast BRDY# generation for PCI cycles
  3470.  3    enable fast FRAME# generation for PCI cycles        
  3471.  2    byte merging/piping control
  3472.     0 no pipelining when byte merging is on
  3473.     1 pipelining enabled along with byte merging
  3474.  1    pipelined synchronous SRAM support; this bit is applicable only if
  3475.       register 11h bit 3 is set
  3476.     0 standard synchronous SRAM installed
  3477.     1 pipelined synchronous SRAM installed
  3478.  0    Cyrix linear burst mode support
  3479.     0 normal Intel standard burst mode
  3480.     1 support for Cyrix linear burst mode
  3481. SeeAlso: #P073,#P808
  3482.  
  3483. Bitfields for OPTi "Viper" (82C557) Tristate Control register:
  3484. Bit(s)    Description    (Table P811)
  3485.  7-6    reserved; must be written to 0
  3486.  5    voltage selection for the CAS# lines 7-0
  3487.     0 CAS# lines 7-0 are driven out at 5.0V logic level
  3488.     1 CAS# lines 7-0 are driven out at 3.3V logic level
  3489.  4    programmable current drive for the MA[X], RAS[X]# and the DWE# lines
  3490.     0 driving capability on these lines is 4mA
  3491.     1 driving capability on these lines is 16mA
  3492.  3    enable tristate CPU interface during Suspend and during CPU power-off
  3493.  2    enable tristate PCI interface during Suspend and during PCI power-off
  3494.  1    enable tristate cache interface during Suspend and cache power-off
  3495.  0    enable the pull-up/pull-down resistors during Suspend and power-off
  3496. SeeAlso: #P073
  3497.  
  3498. Bitfields for OPTi "Viper" (82C557) Memory Decode Control register 3:
  3499. Bit(s)    Description    (Table P812)
  3500.  7    DIRTYWE# RAS5# selection; if six DRAM banks are chosen, then the line
  3501.       will become RAS#5, if this bit is set
  3502.     0 DIRTYWE# functions as DIRTYWE# (six banks of DRAM are not chosen)
  3503.     1 DIRTYWE# functions as RAS#5 (six banks of DRAM are chosen)
  3504.  6-4    full decode for logical bank 5 (RAS#5) if register 13h bit 7 and
  3505.       register 19h bit 7 are set (see #P814)
  3506.  3    MA11/RAS#4 selection; if five DRAM banks are chosen, then the MA11 line
  3507.       will become RAS#4, if this bit is set
  3508.     0 MA11 functions as MA11 (the fifth bank of DRAM is not chosen)
  3509.     1 MA11 functions as RAS#4 (five banks of DRAM have been chosen)
  3510.  2-0    full decode for logical bank 4 /RAS#4) if register 13h bit 7 and
  3511.       register 19h bit 3 are set (see #P814)
  3512. Note:    if bit 7 is set, then a combined Dirty/Tag SRAM solution must be
  3513.       implemented or else it will not have a Dirty RAM
  3514.     if bit 3 is set, then none of the DRAM banks will support the 8M*36
  3515.       or 16M*36 options
  3516. SeeAlso: #P073
  3517. ----------P00220025--------------------------
  3518. PORT 0022-0025 - INTEL 82360SL CHIPSET (FOR 386SL)
  3519.  
  3520. 0022  -W  CPU write mode register
  3521. 0023  R-  configuration status register
  3522.         bit 7: 82360 configuration is open
  3523. 0024  -W  82360 configuration index
  3524. 0025  RW  82360 configuration data
  3525.  
  3526. Bitfields for Intel 82360SL CPU write mode register:
  3527. Bit(s)    Description    (Table P074)
  3528.  0    unlock configuration space
  3529.  1    enable selected unit
  3530.  3-2    unit
  3531.     00 memory configuration
  3532.     01 cache
  3533.     10 internal bus
  3534.     11 external bus
  3535. ----------P0022002B--------------------------
  3536. PORT 0022-002B - INTEL 82355, PART OF CHIPSET FOR 386sx
  3537. Note:    initialisation in POST will disable these addresses, only a hard
  3538.       reset will enable them again.
  3539.  
  3540. 0022w RW  82335 MCR memory configuration register (if LOCK=0) (see #P075)
  3541. 0024w RW  82335 RC1 roll compare register (if LOCK=0) (see #P076)
  3542. 0026w RW  82335 RC2 roll compare register (if LOCK=0) (see #P076)
  3543. 0028w RW  82335 CC0 address range compare register (if LOCK=0) (see #P077)
  3544. 002Aw RW  82335 CC1 address range compare register (if LOCK=0) (see #P077)
  3545.  
  3546. Bitfields for 82335 MCR memory configuration register:
  3547. Bit(s)    Description    (Table P075)
  3548.  15-12    reserved
  3549.  11    "VRO"    video read only (0=r/w, 1=r/o)
  3550.  10    "EN#"
  3551.     0=enable video RAM accesses (A0000h-8FFFFh)
  3552.     1=disable accesses
  3553.  9    "ENADP#"
  3554.     0=enable adapter ROM accesses (C0000h-8FFFFh)
  3555.     1=disable adapter ROM accesses, shadow enabled
  3556.  8    "ROMSIZE" 0=256KB ROM, 1=512KB ROM
  3557.  7-6    "INTERL" memory interleaving
  3558.     00 = 1 memory bank installed (no interleave)
  3559.     01 = 2 memory banks installed
  3560.     10 = 3 memory banks installed
  3561.     11 = 4 memory banks installed
  3562.  5    reserved
  3563.  4    "DSIZE"     0=1MBx1DRAMs, 1=256KBx1 or 256KBx4 DRAMs
  3564.  3    "S640"     base memory size is 0=512KB, 1=640KB
  3565.  2-1    reserved
  3566.  0    "ROMEN#" ROM enable
  3567.     0 enable BIOS ROM accesses (E0000h-FFFFFh)
  3568.     1 disable BIOS ROM accesses, enable shadow
  3569. Note:    One of the remaining reserved bits is the LOCK bit, which will be set
  3570.       during power on, disabling access to the 82335s registers.
  3571.  
  3572. Bitfields for 82335 roll compare register:
  3573. Bit(s)    Description    (Table P076)
  3574.  15-9    selects address range to be remapped (C23-C17)
  3575.  8    reserved
  3576.  7-1    selects address bits to be included in re-mapping comparision (M23-M17)
  3577.  0    "EN" enables roll address mapping
  3578.  
  3579. Bitfields for 82335 address range compare register:
  3580. Bit(s)    Description    (Table P077)
  3581.  15-11    specifies top of address range (C23-C19)
  3582.  10-8    reserved
  3583.  7-3    selects address bits to be included in address range comparision
  3584.       (M23-M19)
  3585.  2-1    reserved
  3586.  0    "EN" enable address range comparision
  3587. ----------P00240025--------------------------
  3588. PORT 0024-0025 - Intel 82091AA Advanced Integrated Peripheral
  3589. Range:    PORT 0022h (X-Bus), PORT 0024h (X-Bus), PORT 026Eh (ISA), or
  3590.       PORT 0398h (ISA)
  3591. SeeAlso: PORT 0022h"82091AA",PORT 026Eh"82091AA",PORT 0398h"82091AA"
  3592.  
  3593. 0024  ?W  configuration register index
  3594. 0025  RW  configuration register data
  3595. ----------P00240027--------------------------
  3596. PORT 0024-0026 - PicoPower Vesuvius - V3-LS
  3597. Note:    software must use 8-bit accesses to these ports; 16-bit accesses will
  3598.       be directed to the V1-LS chip in the chipset instead of the V3-LS
  3599. SeeAlso: PORT 0024h"V1-LS"
  3600.  
  3601. 0024b  ?W  V3-LS register index (see #P446)
  3602. 0026b  RW  V3-LS register data
  3603.  
  3604. (Table P446)
  3605. Values for PicoPower Vesuvius V3-LS register index:
  3606.  00h    Revision ID
  3607.  01h
  3608.  ...
  3609.  26h    PMI Trigger Source Register 2
  3610. details to follow (!!!natsemi\pt86c521-vc-b.pdf p.323)
  3611. SeeAlso: #P445
  3612. ----------P00240027--------------------------
  3613. PORT 0024-0027 - PicoPower Vesuvius - V1-LS
  3614. Note:    software must use 16-bit accesses to these ports; 8-bit accesses will
  3615.       be directed to the V3-LS chip in the chipset instead of the V1-LS
  3616. SeeAlso: PORT 0024h"V3-LS"
  3617.  
  3618. 0024w  ?W  V1-LS register index (see #P445)
  3619. 0026w  RW  V1-LS register data
  3620.  
  3621. (Table P445)
  3622. Values for PicoPower Vesuvius V1-LS register index:
  3623.  01xxh    (reset sampling and miscellaneous)
  3624.  0100h 
  3625.  ...
  3626.  011Fh    Docking Control
  3627.  02xxh    (DRAM registers)
  3628.  0200h
  3629.  ...
  3630.  0212h    Burst EDO control
  3631.  03xxh    (Power Management control)
  3632.  0300h
  3633.  ...
  3634.  0354h    Edge Detect Control
  3635.  04xxh    (Level-2 Cache)
  3636.  0400h    L2 Cache Configuration
  3637.  0401h    L2 Cache Timing
  3638.  0402h    L2 Cache Miscellaneous
  3639. details to follow (!!!natsemi\pt86c521-vc-b.pdf p.78, p.281)
  3640. SeeAlso: #P446
  3641. ----------P00240028--------------------------
  3642. PORT 0024-0029 - HEADLAND HTK340 SHASTA 386/486 CHIPSET
  3643.  
  3644. 0024  Rw  data port
  3645. 0028  ?W  index port to chipset registers (see #P078,#P079)
  3646.  
  3647. (Table P078)
  3648. Values for Headland HT321 register index:
  3649.  00h R    chip/revision,read-only
  3650.       bit7-4: reserved (=0)
  3651.       bit3-0: chip revision, 0=A, 1=B, 3=D
  3652.  01h RW system clocking (default=00h)
  3653.       bit7-4: reserved (=0)
  3654.       bit3-0: ISA speed set
  3655.  02h RW system parameters (default=00h) (see #P080)
  3656.  04h RW co-processor (default=00h)
  3657.       bit7-3: reserved (=0)
  3658.       bit2=1: soft-NPU reset blocked (386 only)
  3659.       bit1=1: weitek installed
  3660.       bit0=1: 387 installed
  3661.  06h RW DMA (default=00h) (see #P081)
  3662.  07h RW EPROM (default=00h) (see #P082)
  3663.  08h RW I/O and memory map holes (default=00h)
  3664.       bit7-4: reserved (=0)
  3665.       bit3    : 0/1 I/O map hole-A
  3666.       bit2    : reserved (=0)
  3667.       bit1    : 0/1 memory map hole-B
  3668.       bit0    : reserved (=0)
  3669.  10h RW hole-A low address (default=00h)
  3670.  11h RW hole-A high address (default=00h)
  3671.  19h RW mem hole-B start address, lower (default=00h)
  3672.  1Ah RW mem hole-B start address, higher (default=00h)
  3673.       bit7-6: reserved (=0)
  3674.       bit5-0: address of mem hole-B start
  3675.  1Ch RW mem hole-B end address, lower (default=00h)
  3676.  1Dh RW mem hole-B end address, higher (default=00h)
  3677.       bit7-6: reserved (=0)
  3678.       bit5-0: address of mem hole-B end
  3679. SeeAlso: #P079
  3680.  
  3681. (Table P079)
  3682. Values for Headland HT342 register index:
  3683.  20h R    identifier port read
  3684.       bit7-4: DRAM controller identifier (0010b)
  3685.       bit3-0: revision number (0=A)
  3686.  21h R    feature port read    (default=00h)
  3687.  24h RW DRAM options port #1 (default=00h)
  3688.       bit7    : 0/1 staggered refresh
  3689.       bit6    : refresh type
  3690.       bit5    : 0/1 DRAM paging
  3691.       bit4-2: CAS interleave
  3692.       bit1-0: banks
  3693.  25h    DRAM options port #2 (default=00h)
  3694.       bit7-6: DRAM bank 1 type
  3695.       bit5-4: DRAM bank 2 type
  3696.       bit3-2: DRAM bank 1?? type
  3697.       bit1-0: DRAM bank 0 type
  3698.  26h RW DRAM options port #3 (default=FFh) (see #P083)
  3699.  27h RW DRAM options port #4 (default=FFh) (see #P084)
  3700.  28h RW data transfer control port (default=00h)
  3701.     doubled indexed registers (28h-2Ah)
  3702.       bit7    : initiate transfer
  3703.       bit6    : read/write transfer
  3704.       bit5-4: reserved
  3705.       bit3-0: transfer/destination
  3706.  29h RW RAM address register (default=00h)
  3707.     doubled indexed registers (28h-2Ah)
  3708.       bit7-5: reserved
  3709.       bit4-0: RAM address registers contents
  3710.  2Ah RW data transfer port   (default=00h)
  3711.     doubled indexed registers (28h-2Ah)
  3712.       bit7-6: reserved
  3713.       bit5    : EMS translation
  3714.       bit4    : reserved
  3715.       bit3    : 0/1 cacheing
  3716.       bit2    : 0/1 write
  3717.       bit1    : 0/1 read
  3718.       bit0    : 0/1 shadow
  3719.  2Bh RW other options          (default=00h) (see #P085)
  3720.  2Dh RW DRAM options port #5 (default=03h)
  3721.       bit7-5: reserved
  3722.       bit4    : 0/1 10µs RAS timeout
  3723.       bit3-2: BUS speed
  3724.       bit1-0: BUS recovery for DRAM cycles
  3725.            00b=0: 4-1-1-1    10b=0.5
  3726.            01b=1: 4-2-2-2    11b=1??
  3727.  82h    read transfer
  3728.  C2h    write transfer
  3729. SeeAlso: #P078
  3730.  
  3731. Bitfields for Headland HT321 register 02h (system parameters):
  3732. Bit(s)    Description    (Table P080)
  3733.  7-6    IO recovery time (rev. D+)
  3734.  5    parity override
  3735.  4-3    cycle-width
  3736.  2    0/1 PORT 0092h functionality
  3737.  1    IO decode
  3738.  0    0/1 posted backplane MEMWN cycles
  3739. SeeAlso: #P078
  3740.  
  3741. Bitfields for Headland HT321 register 06h (DMA control):
  3742. Bit(s)    Description    (Table P081)
  3743.  7    reserved (=0)
  3744.  6    1/0 IOCHRDY during master cycle (rev. C+)
  3745.  5    0/1 fast sample DMA
  3746.  4-3    DMA waitstate 00b=3 .. 11b=0
  3747.  2    0/1 DMA flow-through mode
  3748.  1    0/1 extended DMA page register
  3749.  0    DMA clock
  3750. SeeAlso: #P078
  3751.  
  3752. Bitfields for Headland HT321 register 07h (EPROM control):
  3753. Bit(s)    Description    (Table P082)
  3754.  7-6    reserved (=0)
  3755.  5    0/1 EADS CACHE invalidation for EPROM writes (rev. D+)
  3756.  4    0/1 ROMEN for EPROM writes (rev. C+)
  3757.  3    0/1 middle BIOS region of 64KB space below 16MB
  3758.  2    ROM-size (0=64KB, 1=128KB)
  3759.  1    V-BIOS-add (0=separate, 1=same device)
  3760.  0    ROM-access time (0=250ns, 1=125ns)
  3761. SeeAlso: #P078
  3762.  
  3763. Bitfields for Headland HT342 register 26h (DRAM CAS control):
  3764. Bit(s)    Description    (Table P083)
  3765.  7    CAS hold on RAS (CAS before RAS refresh)
  3766.  6    CAS precharge
  3767.  5    CAS burst delay
  3768.  4    CAS delay (writes)
  3769.  3    CAS delay (reads)
  3770.  2    CAS active time (writes)
  3771.  1-0    CAS active time (reads)
  3772. SeeAlso: #P079,#P084
  3773.  
  3774. Bitfields for Headland HT342 register 27h (DRAM RAS control):
  3775. Bit(s)    Description    (Table P084)
  3776.  7    RAS delay
  3777.  6-5    RAS active (writes)
  3778.  4-2    RAS active (reads)
  3779.  1-0    RAS precharge
  3780. SeeAlso: #P079,#P083
  3781.  
  3782. Bitfields for Headland HT342 register 2Bh (other options):
  3783. Bit(s)    Description    (Table P085)
  3784.  7    reserved
  3785.  6    0/1 middle BIOS
  3786.  5    0/1 data pipeline
  3787.  4    0/1 data pipeline
  3788.  3    IO-decode
  3789.  2    reserved
  3790.  1    16bit DMA bridge
  3791.  0    0/1 write buffering
  3792. SeeAlso: #P079
  3793. ----------P00260027--------------------------
  3794. PORT 0026-0027 - INTEL 82347 POWER MANAGEMENT PERIPHERAL
  3795. SeeAlso: PORT 0178h-0179h
  3796.  
  3797. 0026  -W  index for data port (see #P086)
  3798. 0027  RW  power management data
  3799.  
  3800. (Table P086)
  3801. Values for Intel 82437 Power Management Peripheral register index:
  3802.  C0h    suspend/wakeup status, system state
  3803.  C1h    power supply and activity status, general-purpose output/control
  3804.  C2h    control bits
  3805.  C3h    activity mask
  3806.  C4h    NMI mask
  3807.  C5h    I/O range for activity monitor
  3808.  C6h    power output control bits, ON state
  3809.  C7h    power output control bits, Doze state
  3810.  C8h    power output control bits, Sleep state
  3811.  C9h    power output control bits, Suspend state
  3812.  CAh    power control bits polarity control
  3813.  CBh    current output bits
  3814.  CCh    Doze timeout
  3815.  CDh    Sleep timeout
  3816.  CEh    Suspend timeout
  3817.  CFh    LCD display power timeout
  3818.  D0h    EL display power timeout
  3819. ----------P00260027--------------------------
  3820. PORT 0026-0027 - Chips&Technologies CS4021 - "SuperState V" ALTERNATE CONFIG
  3821. Desc:    alternate copy of the configuration register access at PORT 0022h/0023h
  3822.       which may be used by system software in "SuperState V" to configure
  3823.       the chipset without disturbing accesses to PORT 0022h by user code
  3824. Notes:    SuperState V is an early version of system management mode
  3825.     these ports can only be accessed while the system is in SuperState V;
  3826.       similarly, some configuration registers are read-only via PORT 0022h
  3827.       and others can optionally be made read-only
  3828. SeeAlso: PORT 0022h"Chips&Technologies"
  3829. !!!chips\cs4021.pdf p.149
  3830.  
  3831. 0026  -W  configuration register index
  3832. 0027  RW  configuration register data
  3833. ----------P0028002A--------------------------
  3834. PORT 0028-002A - 80486 "Deep Green" motherboard - ???
  3835.  
  3836. 0028  ?W  index for data port
  3837. 002A  RW  ??? data port
  3838.  
  3839. Note:    in order to access to the registers available through PORT 002A,
  3840.       an unlocking sequence must be written via PORT 0028:    write
  3841.       A0h, 05h, index to PORT 0028, then read/write PORT 002A, then
  3842.       write A5h to PORT 0028
  3843. ----------P002E002F--------------------------
  3844. PORT 002E-002F - DELL ENHANCED PARALLEL PORT
  3845. SeeAlso: PORT 015Ch,PORT 026Eh,PORT 0398h
  3846.  
  3847. 002E  -W  index for data port (see #P087)
  3848. 002F  RW  EPP command data
  3849.  
  3850. (Table P087)
  3851. Values for Dell Enhanced Parallel Port register index:
  3852.  00h    bit 0: ???
  3853.  02h    bit 7: port in bidirectional mode
  3854.  04h    bits 0 and 2: ECP/EPP mode control
  3855. ----------P002E002F--------------------------
  3856. PORT 002E-002F - Intel "Nonolet" Motherboard - POWER MANAGEMENT
  3857.  
  3858. 002E  ?W  index for data port
  3859. 002F  ?W  data port
  3860.  
  3861. code sequence posted in fido7.nice.sources by Konstantin Mohorea:
  3862.      out 2Eh,0Ch
  3863.      out 2Fh,75h
  3864.      out 2Eh,11h
  3865.      out 2Fh,00h
  3866.      out 2Eh,0Dh
  3867.      out 2Fh,A0h
  3868. ----------P002E002F--------------------------
  3869. PORT 002E-002F - NS PC87306 SuperI/O - CONFIGURATION REGISTERS
  3870. InstallCheck: after a hardware reset, the first read of the index port returns
  3871.       88h, and a second consecutive read always returns 00h (while
  3872.       read-after-write always returns the written value)
  3873. Range:    PORT 002Eh, PORT 015Ch, PORT 026Eh, or PORT 0398h, depending on
  3874.       external strapping
  3875. Note:    to set a register, the data port must be written twice in a row; the
  3876.       value is latched on the second write
  3877.  
  3878. 002E  RW  configuration register index
  3879. 002F  RW  configuration register data
  3880. ----------P0038003F--------------------------
  3881. PORT 0038-003F - PC radio by CoZet Info Systems
  3882. Notes:    The I/O address range is dipswitch selectable from:
  3883.        038-03F and 0B0-0BF
  3884.        078-07F and 0F0-0FF
  3885.        138-13F and 1B0-1BF
  3886.        178-17F and 1F0-1FF
  3887.        238-23F and 2B0-2BF
  3888.        278-27F and 2F0-2FF
  3889.        338-33F and 3B0-3BF
  3890.        378-37F and 3F0-3FF
  3891.     All of these addresses show a readout of FF in initial state.
  3892.     Once started, all of the addresses show     FB, whatever might happen.
  3893. ----------P0040005F--------------------------
  3894. PORT 0040-005F - PIT - PROGRAMMABLE INTERVAL TIMER (8253, 8254)
  3895. Note:    XT & AT use ports 40h-43h; PS/2 uses ports 40h, 42h-44h, and 47h
  3896. SeeAlso: PORT 0044h,PORT 0048h
  3897.  
  3898. 0040  RW  PIT  counter 0, counter divisor          (XT, AT, PS/2)
  3899. 0041  RW  PIT  counter 1, RAM refresh counter    (XT, AT)
  3900.             don't set below 3 on PCs (default 12h)
  3901. 0042  RW  PIT  counter 2, cassette & speaker    (XT, AT, PS/2)
  3902.     During normal operation mode (8253) 40h-42h set the counter values on
  3903.     write and get the current counter value on read. In 16bit modes two
  3904.     consequtive writes/reads must be issued, first with the low byte,
  3905.     followed by the high byte. In 8254 read back modes, all selected
  3906.     counters and status are latched and must be read out completely
  3907.     before normal operation is valid again.     Each counter switches back
  3908.     to normal operation after read out.  In 'get status and counter'
  3909.     mode the first byte read is the status, followed by one or two
  3910.     counter values. (see #P088)
  3911. 0043  RW  PIT  mode port, control word register for counters 0-2 (see #P089)
  3912.     Once a control word has been written (43h), it must be followed
  3913.     immediately by performing the corresponding action to the counter
  3914.     registers (40h-42h), else the system may hang!!
  3915.  
  3916. Bitfields for 8254 PIT counter status byte:
  3917. Bit(s)    Description    (Table P088)
  3918.  7    PIN status of OUTx Pins (1=high, 0=low)
  3919.  6    counter start value loaded
  3920.     =0: yes, so counter latch is valid to be read
  3921.     =1: no, wait for counter latch to be set (may last a while)
  3922. 5-0    counter mode, same as bit5-0 at 43h
  3923. SeeAlso: #P089
  3924.  
  3925. Bitfields for 8253/8254 PIT mode control word:
  3926. Bit(s)    Description    (Table P089)
  3927.  7-6    counter select
  3928.     00  counter 0 select
  3929.     01  counter 1 select      (not PS/2)
  3930.     10  counter 2 select
  3931.     11  (8253) reserved
  3932.         (8254) read back counter (see #P088)
  3933. ---if counter select---
  3934.  5-4    counter access
  3935.     00  counter latch command
  3936.         BUG:    Intel Neptune/Mercury/Aries Chipset 8237IB (SIO) needs
  3937.               a short delay after issuing this command, else the
  3938.               MSB may be outdated concerning the LSB, resulting
  3939.               in large measuring errors.
  3940.             Workaround: Check for this condition by comparing
  3941.               results with last results and don't use erroneous
  3942.               results.
  3943.     01  read/write counter bits 0-7 only
  3944.     10  read/write counter bits 8-15 only
  3945.     11  read/write counter bits 0-7 first, then 8-15
  3946.  3-1    counter mode
  3947.     000 mode 0 select - zero detection interrupt
  3948.     001 mode 1 select - programmable one shot
  3949.     x10 mode 2 select - rate generator
  3950.     x11 mode 3 select - square wave generator
  3951.         counts down twice by two at a time; latch status and check
  3952.           value of OUT pin to determine which half-cycle is active
  3953.         divisor factor 3 not allowed!
  3954.     100 mode 4 select - software triggered strobe
  3955.     101 mode 5 select - hardware triggered strobe
  3956.  0    counting style
  3957.     0  binary counter 16 bits
  3958.     1  BCD counter (4 decades)
  3959. ---if read back---
  3960.  5-4    what to read
  3961.     00 counter status, then value
  3962.     01 counter value
  3963.     10 counter status
  3964.     11 reserved
  3965.  3    select counter 2
  3966.  2    select counter 1
  3967.  1    select counter 0
  3968.  0    reserved (0)
  3969. Note:    after issuing a read back 'get status' command, any new read back
  3970.       command is ignored until the status is read from all selected
  3971.       counters.
  3972. ----------P00440047--------------------------
  3973. PORT 0044-0047 - Microchannel - PROGRAMMABLE INTERVAL TIMER 2
  3974. SeeAlso: PORT 0040h,PORT 0048h
  3975.  
  3976. 0044  RW  PIT  counter 3 (PS/2)
  3977.         used as fail-safe timer. generates an NMI on time out.
  3978.         for user generated NMI see at 0462.
  3979. 0047  -W  PIT  control word register counter 3 (PS/2, EISA)
  3980.     bit 7-6 = 00  counter 3 select
  3981.         = 01  reserved
  3982.         = 10  reserved
  3983.         = 11  reserved
  3984.     bit 5-4 = 00  counter latch command counter 3
  3985.         = 01  read/write counter bits 0-7 only
  3986.         = 1x  reserved
  3987.     bit 3-0 = 00
  3988. ----------P0048004B--------------------------
  3989. PORT 0048-004B - EISA - PROGRAMMABLE INTERVAL TIMER 2
  3990. Note:    this second timer is also supported by many Intel chipsets
  3991. SeeAlso: PORT 0040h,PORT 0044h
  3992.  
  3993. 0048  RW  EISA PIT2 counter 3 (Watchdog Timer)
  3994. 0049  ??  EISA 8254 timer 2, not used (counter 4)
  3995. 004A  RW  EISA PIT2 counter 5 (CPU speed control)
  3996. 004B  -W  EISA PIT2 control word
  3997. --------K-P0060006F--------------------------
  3998. PORT 0060-006F - KEYBOARD CONTROLLER 804x (8041, 8042) (or PPI (8255) on PC,XT)
  3999. Note:    XT uses ports 60h-63h, AT uses ports 60h-64h
  4000.  
  4001. 0060  RW  KB controller data port or keyboard input buffer (ISA, EISA)
  4002.         should only be read from after status port bit0 = 1
  4003.         should only be written to if status port bit1 = 0
  4004. 0060  R-  KeyBoard or KB controller data output buffer (via PPI on XT)
  4005.         PC: input from port A of 8255, if bit7 in 61h set (see #P105)
  4006.         get scancodes, special codes (in PC: with bit7 in 61h cleared)
  4007.           (see #P099)
  4008.  
  4009. 0061  R-  KB controller port B control register (ISA, EISA)
  4010.         system control port for compatibility with 8255 (see #P102)
  4011. 0061  -W  KB controller port B (ISA, EISA)   (PS/2 port A is at 0092)
  4012.         system control port for compatibility with 8255 (see #P101)
  4013. 0061  -W  PPI Programmable Peripheral Interface 8255 (XT only)
  4014.         system control port (see #P103)
  4015. 0062  RW  PPI (XT only) data port C (see #P104)
  4016. 0063  RW  PPI (XT only) command mode register (see #P106)
  4017.  
  4018. 0064  R-  keyboard controller read status (see #P107,#P108,#P109)
  4019. 0064  -W  keyboard controller input buffer (ISA, EISA) (see #P110)
  4020.  
  4021. 0064  -W  (Amstrad/Schneider PC1512) set 'DIP switch S1' setting
  4022.       stored in CMOS RAM that PPI should report for compatibility
  4023. 0065  -W  (Amstrad/Schneider PC1512) set 'DIP switch S2' RAM size setting
  4024.       stored in CMOS RAM, that PPI port C (PORT 0064h) should report for
  4025.       compatibility
  4026.  
  4027. 0065  R-  communications port (Olivetti M24)
  4028.  
  4029. Bitfields for AT keyboard controller input port:
  4030. Bit(s)    Description    (Table P090)
  4031.  7    keyboard enabled
  4032.  6    =0  CGA, else MDA
  4033.  5    =0  manufacturing jumper installed
  4034.  4    =0  system RAM 512K, else 640K
  4035.  3-0    reserved
  4036. SeeAlso: #P091,#P093
  4037.  
  4038. Bitfields for AT keyboard controller input port (Compaq):
  4039. Bit(s)    Description    (Table P091)
  4040.  7    security lock is unlocked
  4041.  6    =0  Compaq dual-scan display, 1=non-Compaq display
  4042.  5    system board dip switch 5 is OFF
  4043.  4    =0  auto speed selected, 1=high speed selected
  4044.  3    =0  slow (4MHz), 1 = fast (8MHz)
  4045.  2    no math coprocessor installed
  4046.  1-0    reserved
  4047. SeeAlso: #P092
  4048.  
  4049. Bitfields for AT keyboard controller output port:
  4050. Bit(s)    Description    (Table P092)
  4051.  7    keyboard data output
  4052.  6    keyboard clock output
  4053.  5    input buffer NOT full
  4054.  4    output buffer NOT empty
  4055.  3    reserved (see note)
  4056.  2    reserved (see note)
  4057.  1    gate A20
  4058.  0    system reset
  4059. Note:    bits 2 and 3 are the turbo speed switch or password lock on
  4060.       Award/AMI/Phoenix BIOSes.  These bits make use of nonstandard
  4061.       keyboard controller BIOS functionality to manipulate
  4062.         pin 23 (8041 port 22) as turbo switch for AWARD
  4063.         pin 35 (8041 port 15) as turbo switch/pw lock for Phoenix
  4064. SeeAlso: #P090,#P093
  4065.  
  4066. Bitfields for HP Vectra keyboard controller output port:
  4067. Bit(s)    Description    (Table P093)
  4068.  7-5    reserved
  4069.  4    output buffer full (OBF) interrupt
  4070.  3    HP SVC interrupt
  4071.  2    HP-HIL controller AutoPoll
  4072.  1    A20 gate
  4073.  0    system reset
  4074. SeeAlso: #P092,#P094
  4075.  
  4076. Bitfields for HP Vectra command byte:
  4077. Bit(s)    Description    (Table P094)
  4078.  7    reserved (0)
  4079.  6    scancode conversion mode (1 = PC/XT, 0 = PC/AT)
  4080.  5    unused
  4081.  4    disable keyboard (unless bit 3 set)
  4082.  3    override keyboard disable
  4083.  2    System Flag (may be read from PORT 0060h)
  4084.  1    reserved
  4085.  0    OBF interrupt enable
  4086. SeeAlso: #P093
  4087.  
  4088. (Table P095)
  4089. Values for keyboard commands (data also goes to PORT 0060h):
  4090. Value    Count    Description
  4091.  EDh    double    set/reset mode indicators Caps Num Scrl
  4092.         bit 2 = CapsLk, bit 1 = NumLk, bit 0 = ScrlLk
  4093.         all other bits must be zero.
  4094.  EEh    sngl    diagnostic echo. returns EEh.
  4095.  EFh    sngl    NOP (No OPeration). reserved for future use
  4096.  EF+26h    double    [Cherry MF2 G80-1501HAD] read 256 bytes of chipcard data
  4097.         keyboard must be disabled before this and has to
  4098.         be enabled after finished.
  4099.  F0h    double    get/set scan code set
  4100.         00h get current set
  4101.         01h scancode set 1 (PCs and PS/2 mod 30, except Type 2 ctrlr)
  4102.         02h scancode set 2 (ATs, PS/2, default)
  4103.         03h scancode set 3
  4104.  F2h    sngl    read keyboard ID (read two ID bytes)
  4105.         AT keyboards returns FA (ACK)
  4106.         MF2 returns AB 41 (translation) or
  4107.                 AB 83 (pass through)
  4108.  F3h    double    set typematic rate/delay
  4109.         format of the second byte:
  4110.         bit7=0 : reserved
  4111.         bit6-5 : typemativ delay
  4112.              00b=250ms     10b= 750ms
  4113.              01b=500ms     11b=1000ms
  4114.         bit4-0 : typematic rate (see #P100)
  4115.  F4h    sngl    enable keyboard
  4116.  F5h    sngl    disable keyboard. set default parameters (no keyboard scanning)
  4117.  F6h    sngl    set default parameters
  4118.  F7h    sngl    [MCA] set all keys to typematic (scancode set 3)
  4119.  F8h    sngl    [MCA] set all keys to make/release
  4120.  F9h    sngl    [MCA] set all keys to make only
  4121.  FAh    sngl    [MCA] set all keys to typematic/make/release
  4122.  FBh    sngl    [MCA] set al keys to typematic
  4123.  FCh    double    [MCA] set specific key to make/release
  4124.  FDh    double    [MCA] set specific key to make only
  4125.  FEh    sngl    resend last scancode
  4126.  FFh    sngl    perform internal power-on reset function
  4127. Note:    each command is acknowledged by FAh (ACK), if not mentioned otherwise.
  4128.       See PORT 0060h-R for details.
  4129. SeeAlso: #P096
  4130.  
  4131. (Table P096)
  4132. Values for Mouse functions (for PS/2-like pointing devices):
  4133. Value    Count    Description
  4134.  E6h    sngl    set mouse scaling to 1:1
  4135.  E7h    sngl    set mouse scaling to 2:1
  4136.  E8h    double    set mouse resolution
  4137.         (00h=1/mm, 01h=2/mm, 02h=4/mm, 03h=8/mm)
  4138.  E9h    sngl    get mouse information
  4139.         read two status bytes:
  4140.           byte 0: flags (see #P097)
  4141.           byte 1: resolution
  4142.  EAh    sngl    set mouse to stream mode (mouse sends data on any changes)
  4143.  EBh    sngl    get mouse data (from mouse to controller) (see #P098)
  4144.         on reading, each data packet consists of 8 bytes:
  4145.  ECh    sngl    reset mouse wrap mode (to normal mode)
  4146.  EEh    sngl    set wrap mode
  4147.  F0h    sngl    set remote mode (instead of stream mode), mouse sends data
  4148.           only on issueing command EBh.
  4149.  F2h    sngl    read mouse ID (read one, two?? ID bytes)
  4150.         00h=mouse
  4151.  F3h    double    set mouse sample rate in reports per second
  4152.         0Ah=10/s       50h= 80/s
  4153.         14h=20/s       64h=100/s
  4154.         28h=40/s       C8h=200/s
  4155.         3Ch=60/s
  4156.  F4h    sngl    enable mouse (in stream mode)
  4157.  F5h    sngl    disable mouse (in steam mode), set default parameters
  4158.  F6h    sngl    reset to defaults: 100/s, scaling 1:1, stream-mode, 4/mm,
  4159.           disabled
  4160.  FEh    sngl    resend last mouse data (8 bytes, see EBh)
  4161.  FFh    sngl    reset mouse
  4162. Notes:     must issue command D4h to PORT 0064h first to access mouse functions
  4163.      all commands except ECh and FFh are acknowledged by FAh (ACK) or
  4164.        FEh (Resend); get mouse ID (F2h) returns mouse ID.
  4165. SeeAlso: #P095
  4166.  
  4167. Bitfields for mouse status byte 0:
  4168. Bit(s)    Description    (Table P097)
  4169.  7    unused
  4170.  6    remote rather than stream mode
  4171.  5    mouse enabled
  4172.  4    scaling set to 2:1
  4173.  3    unused
  4174.  2    left button pressed
  4175.  1    unused
  4176.  0    right button pressed
  4177. SeeAlso: #P096,#P098
  4178.  
  4179. Format of mouse data packet:
  4180. Offset    Size    Description    (Table P098)
  4181.  00h    BYTE    status
  4182.         bit7    : y-data overrun
  4183.         bit6    : x-data overrun
  4184.         bit5    : y-data negative
  4185.         bit4    : x-data negative
  4186.         bit3-2=0: reserved
  4187.         bit1    : right button pressed
  4188.         bit0    : left button pressed
  4189.  01h    BYTE    reserved
  4190.  02h    BYTE    x-data
  4191.  03h    BYTE    reserved
  4192.  04h    BYTE    y-data
  4193.  05h    BYTE    reserved
  4194.  06h    BYTE    z-data (0)
  4195.  07h    BYTE    reserved
  4196. SeeAlso: #P096,#P097
  4197.  
  4198. (Table P099)
  4199. Values for keyboard special codes:
  4200.  00h    (MF2 in codeset2&3 or AT keyboards) keydetection/overrun error
  4201.  00h    (mouse) ID
  4202.  AAh    BAT completion code (sent after errorfree Basic Assurance Test)
  4203.  ABh    first byte of general MF2 keyboard ID
  4204.  EEh    Echo command return
  4205.  FAh    Acknowledge (all general commands except Resend and Echo)
  4206.  FAh    (mouse) Acknowledge (all commands except commands ECh,F2h,FFh)
  4207.  FCh    (MF2) BAT Failure Code (error in second half of the power on self test)
  4208.  FDh    (AT-keyboard) BAT Failure Code (error in the second half of the
  4209.       power-on self test)
  4210.  FEh    Resend: CPU to controller should resend last keyboard-command
  4211.  FEh    (mouse) CPU to controller should resend last mouse-command
  4212.  FFh    (MF2 in codeset1) keydetection/overrun error
  4213. Note:    keyboard stops scanning and waits for next command after returning
  4214.       code FCh or FDh
  4215. SeeAlso: PORT 0060h-R
  4216.  
  4217. (Table P100)
  4218. Values for keyboard typematic rate:
  4219.  00000b=30.0   10000b=7.5
  4220.  00001b=26.7   10001b=6.7
  4221.  00010b=24.0   10010b=6.0
  4222.  00011b=21.8   10011b=5.5
  4223.  00100b=20.0   10100b=5.0
  4224.  00101b=18.5   10101b=4.6
  4225.  00110b=17.1   10110b=4.3
  4226.  00111b=16.0   10111b=4.0
  4227.  01000b=15.0   11000b=3.7
  4228.  01001b=13.3   11001b=3.3
  4229.  01010b=12.0   11010b=3.0
  4230.  01011b=10.9   11011b=2.7
  4231.  01100b=10.0   11100b=2.5
  4232.  01101b= 9.2   11101b=2.3
  4233.  01110b= 8.5   11110b=2.1
  4234.  01111b= 8.0   11111b=2.0
  4235. SeeAlso: #P095
  4236.  
  4237. Bitfields for KB controller port B (system control port) [output]:
  4238. Bit(s)    Description    (Table P101)
  4239.  7    pulse to 1 for IRQ1 reset (PC,XT)
  4240.  6-4    reserved
  4241.  3    I/O channel parity check disable
  4242.  2    RAM parity check disable
  4243.  1    speaker data enable
  4244.  0    timer 2 gate to speaker enable
  4245. SeeAlso: PORT 0061h-W,#P102
  4246.  
  4247. Bitfields for KB ctrller port B control register (system control port) [input]:
  4248. Bit(s)    Description    (Table P102)
  4249.  7    RAM parity error occurred
  4250.  6    I/O channel parity error occurred
  4251.  5    mirrors timer 2 output condition
  4252.  4    toggles with each refresh request
  4253.  3    NMI I/O channel check status
  4254.  2    NMI parity check status
  4255.  1    speaker data status
  4256.  0    timer 2 clock gate to speaker status
  4257. SeeAlso: PORT 0061h-R,#P101
  4258.  
  4259. Bitfields for Progr. Peripheral Interface (8255) system control port [output]:
  4260. Bit(s)    Description    (Table P103)
  4261.  7    clear keyboard (only pulse, normally kept at 0)
  4262.  6    =0  hold keyboard clock low
  4263.  5    NMI I/O parity check disable
  4264.  4    NMI RAM parity check disable
  4265.  3    =0 read low nybble of switches S2
  4266.     =1 read high nybble of switches S2
  4267.  2    reserved, often used as turbo switch
  4268.     original PC: cassette motor off
  4269.  1    speaker data enable
  4270.  0    timer 2 gate to speaker enable
  4271. Note:    bits 2 and 3 are sometimes used as turbo switch
  4272. SeeAlso: PORT 0061h-W,#P0051,#P104,#P105,#P106
  4273.  
  4274. Bitfields for PPI (XT only) data port C:
  4275. Bit(s)    Description    (Table P104)
  4276.  7    RAM parity error occurred
  4277.  6    I/O channel parity error occurred
  4278.  5    timer 2 channel out
  4279.  4    reserved
  4280.     original PC: cassette data input
  4281. ---
  4282.  3    system board RAM size type 1
  4283.  2    system board RAM size type 2
  4284.  1    coprocessor installed
  4285.  0    loop in POST
  4286. ---
  4287.  3-0    DIL switch S2 high/low nybble (depending on PORT 0061h bit 3)
  4288. SeeAlso: PORT 0062h-RW,#P103,#P105,#P106
  4289.  
  4290. Bitfields for PPI (PC,XT only) equipment switches [input]:
  4291. Bit(s)    Description    (Table P105)
  4292.  7-6    number of disk drives
  4293.     00  1 diskette drive
  4294.     01  2 diskette drives
  4295.     10  3 diskette drives
  4296.     11  4 diskette drives
  4297.  5-4    initial video
  4298.     00  reserved (video adapter has on-board BIOS)
  4299.     01  40*25 color (mono mode)
  4300.     10  80*25 color (mono mode)
  4301.     11  MDA 80*25
  4302.  3-2    memory size (using 256K chips)
  4303.     00  256K
  4304.     01  512K
  4305.     10  576K
  4306.     11  640K
  4307.  3-2    memory size (using 64K chips)
  4308.     00  64K
  4309.     01  128K
  4310.     10  192K
  4311.     11  256K
  4312.  3-2    memory size (original PC)
  4313.     00  16K
  4314.     01  32K
  4315.     10  48K
  4316.     11  64K
  4317.  1-0    reserved
  4318.  1    NPU (math coprocessor) present
  4319.  0    boot from floppy
  4320. SeeAlso: #P104,#P106,PORT 0060h-R
  4321.  
  4322. Bitfields for PPI (8255) command mode register:
  4323. Bit(s)    Description    (Table P106)
  4324.  7    activation function (0 = bit set/reset, 1 = mode set function)
  4325.  6,5    port A mode: 00 = mode0, 01 = mode1, 1x = mode2
  4326.  4    port A direction: 0 = output, 1 = input
  4327.  3    port C bits 7-4 direction: 0 = output, 1 = input
  4328.  2    port B mode: 0 = mode0, 1 = mode1
  4329.  1    port B direction: 0 = output, 1 = input
  4330.  0    port C bits 3-0 direction: 0 = output, 1 = input
  4331. Note:    Attention: Never write anything other than 99h to this port
  4332.       (better: never write anything to this port, only during BIOS
  4333.       init), as other values may connect multiple output drivers
  4334.       and will cause hardware damage in PC/XTs!  By setting command
  4335.       word to 99h, PPI will be set in input/output modes as it is
  4336.       necessary to support the commonly known IO-ports 60, 61, 62
  4337.       as desired.
  4338. SeeAlso: #P103,#P104,#P105
  4339.  
  4340. Bitfields for keyboard controller read status (ISA, EISA):
  4341. Bit(s)    Description    (Table P107)
  4342.  7    parity error on transmission from keyboard
  4343.  6    receive timeout
  4344.  5    transmit timeout
  4345.  4    keyboard interface inhibited by keyboard lock
  4346.  3    =1 data written to input register is command (PORT 0064h)
  4347.     =0 data written to input register is data (PORT 0060h)
  4348.  2    system flag status: 0=power up or reset     1=selftest OK
  4349.  1    input buffer full (input 60/64 has data for 8042)
  4350.     no write access allowed until bit clears
  4351.  0    output buffer full (output 60 has data for system)
  4352.     bit is cleared after read access
  4353. SeeAlso: PORT 0064h-R,#P108,#P109,#P110
  4354.  
  4355. Bitfields for keyboard controller read status (MCA):
  4356. Bit(s)    Description    (Table P108)
  4357.  7    parity error on transmission from keyboard
  4358.  6    general timeout
  4359.  5    mouse output buffer full
  4360.  4    keyboard interface inhibited by keyboard lock
  4361.  3    =1 data written to input register is command (PORT 0064h)
  4362.     =0 data written to input register is data (PORT 0060h)
  4363.  2    system flag status: 0=power up or reset     1=selftest OK
  4364.  1    input buffer full (60/64 has data for 804x)
  4365.     no write access allowed until bit clears
  4366.  0    output buffer full (output 60 has data for system)
  4367.     bit is cleared after read access
  4368. SeeAlso: #P107,#P109,#P110
  4369.  
  4370. Bitfields for keyboard controller read status (Compaq):
  4371. Bit(s)    Description    (Table P109)
  4372.  7    parity error detected (11-bit format only). If an
  4373.       error is detected, a Resend command is sent to the
  4374.       keyboard once only, as an attempt to recover.
  4375.  6    receive timeout. transmission didn't finish in 2mS.
  4376.  5    transmission timeout error
  4377.     bit 5,6,7  cause
  4378.         1 0 0  No clock
  4379.         1 1 0  Clock OK, no response
  4380.         1 0 1  Clock OK, parity error
  4381.  4    =0 security lock engaged
  4382.  3    =1 data in OUTPUT register is command
  4383.     =0 data in OUTPUT register is data
  4384.  2    system flag status: 0=power up or reset     1=soft reset
  4385.  1    input buffer full (60/64 has data for 804x)
  4386.     no write access allowed until bit clears
  4387.  0    output buffer full (PORT 0060h has data for system)
  4388.     bit is cleared after read access
  4389. SeeAlso: #P107,#P108,#P110
  4390.  
  4391. (Table P110)
  4392. Values for keyboard controller commands (data goes to PORT 0060h):
  4393. Value        Description
  4394.  20h    read    read byte zero of internal RAM, this is the last KB command
  4395.           sent to the 8041/8042
  4396.     Compaq    put current command byte on PORT 0060h (see #P111,#P112)
  4397.  21-3F    read    reads the byte specified in the lower 5 bits of the command
  4398.           in the 804x's internal RAM (see #P115)
  4399.  60-7F    double    writes the data byte to the address specified in the 5 lower
  4400.           bits of the command
  4401.  60h    Compaq    Load new command (60 to [64], command to [60]) (see #P112)
  4402.         (also general AT-class machines)
  4403.  A0h    AMI    get ASCIZ copyright message on PORT 0060h
  4404.  A1h    AMI    get controller version byte on PORT 0060h
  4405.  A1h    Compaq    unknown speedfunction ??
  4406.  A1h    C&T    CHIPS extensions (see #P466)
  4407.  A2h    Compaq    unknown speedfunction ??
  4408.  A2h    AMI    set keyboard controller pins 22 and 23 low
  4409.  A2h    C&T    turn on turbo LED
  4410.  A3h    Compaq    Enable system speed control
  4411.  A3h    AMI    set keyboard controller pins 22 and 23 high
  4412.  A3h    C&T    turn off turbo LED
  4413.  A4h    MCA    check if password installed
  4414.         returns PORT 0060h code F1h if no password, FAh if installed
  4415.  A4h    Compaq    Toggle speed
  4416.  A4h    AMI    set internal system speed flag to low
  4417.  A5h    MCA    load password
  4418.         write successive scan codes to PORT 0060h, terminate with 00h
  4419.  A5h    AMI    set internal system speed flag to high
  4420.  A5h    Compaq    Special read. the 8042 places the real values of port 2
  4421.           except for bits 4 and 5 wich are given a new definition in
  4422.           the output buffer. No output buffer full is generated.
  4423.             if bit 5 = 0, a 9-bit keyboard is in use
  4424.             if bit 5 = 1, an 11-bit keyboard is in use
  4425.             if bit 4 = 0, output-buff-full interrupt disabled
  4426.             if bit 4 = 1, output-buffer-full interrupt enabled
  4427.  A6h    MCA    check password
  4428.  A6h    AMI    get internal system speed flag on PORT 0060h
  4429.  A6h    Compaq    unknown speedfunction ??
  4430.  A7h    MCA    disable mouse port
  4431.  A7h    AMI    set internal flag indicating bad write cache
  4432.  A8h    MCA    enable mouse port
  4433.  A8h    AMI    set internal flag indicating good write cache
  4434.  A9h    MCA    test mouse port, return test result on PORT 0060h (see #P114)
  4435.  A9h    AMI    get internal flag indicating cache OK to PORT 0060h
  4436.  AAh    sngl    initiate self-test. will return 55h to data port if self-test
  4437.           successful, FCh if failed
  4438.  AAh    Compaq    initializes ports 1 and 2, disables the keyboard and clears
  4439.           the buffer pointers. It then places 55h in the output buffer.
  4440.  ABh    sngl    initiate interface test, return result value on PORT 0060h
  4441.           (see #P114)
  4442.  ACh    read    diagnostic dump. the contents of the 804x RAM, output port,
  4443.           input port, status word are sent to PORT 0060h in scan-code
  4444.           format; Chips&Technologies 8042's append "CHIPS Vxxx" where
  4445.           "xxx" is the controller version number
  4446.  ADh    sngl    disable keyboard (sets bit 4 of commmand byte)
  4447.  ADh    Vectra    HP Vectra diagnostic dump
  4448.  AEh    sngl    enable keyboard     (resets bit 4 of commmand byte)
  4449.  AFh    AWARD    Enhanced Command: read keyboard version
  4450.  AFh    AMI    set extended controller RAM
  4451.         write address to PORT 0060h, wait for controller ready, then
  4452.           write value to PORT 0060h
  4453.  B1h    AMI    set keyboard controller P11 line low
  4454.  B2h    AMI    set keyboard controller P12 line low
  4455.  B3h    AMI    set keyboard controller P13 line low
  4456.  B4h    AMI    set keyboard controller P22 line low
  4457.  B5h    AMI    set keyboard controller P23 line low
  4458.  B8h    AMI    set keyboard controller P10 line high
  4459.  B9h    AMI    set keyboard controller P11 line high
  4460.  BAh    AMI    set keyboard controller P12 line high
  4461.  BBh    AMI    set keyboard controller P13 line high
  4462.  BCh    AMI    set keyboard controller P22 line high
  4463.  BDh    AMI    set keyboard controller P23 line high
  4464.  C0h    read    read input port and place on PORT 0060h
  4465.         bit 7    keyboard NOT locked
  4466.         bit 6    =0 first video is CGA
  4467.             =1 first video is MDA
  4468.         bit 5    =0 factory testmode
  4469.             =1 normal
  4470.         bit 4    =0 256KB RAM, 1=512KB
  4471.         bit 5,3-0 are used in Intel chipset 386sx machines with
  4472.             AMI/Phoenix BIOSes for BIOS specific hardware settings
  4473.         bit 2    (MCA) no keyboard power
  4474.         bit 1    (MCA) current mouse serial data input state
  4475.         bit 0    (MCA) current keyboard serial input state
  4476.  C0h    Compaq    places status of input port in output buffer.  Use this
  4477.           command only when the output buffer is empty
  4478.  C1h    MCA    Enhanced Command: poll input port Low nibble, continuously
  4479.           place in PORT 0064h bits 7-4 until next command
  4480.  C2h    MCA    Enhanced Command: poll input port High nibble, continuously
  4481.           place in PORT 0064h bits 7-4 until next command
  4482.  C8h    AMI    unblock keyboard controller lines P22 and P23
  4483.  C9h    AMI    block keyboard controller lines P22 and P23
  4484.  CAh    AMI    read keyboard mode, return in 0060 bit 0
  4485.           (bit clear if ISA mode, set if PS/2 mode)
  4486.  CBh    AMI    set keyboard mode (write back mode byte returned by CAh,
  4487.           modifying only bit 0)
  4488.  CCh    AMI    ??? (used by AMI BIOS v1.00.12.AX1T APM code)
  4489.  D0h    read    read output port and place on PORT 0060h (see #P113)
  4490.  D0h    Compaq    places byte in output port in output buffer. Use this command
  4491.           only when the output buffer is empty
  4492.  D1h    double    write output port.  The next byte written to PORT 0060h will
  4493.           be written to the 804x output port; the original IBM AT and
  4494.           many compatibles use bit 1 of the output port to control
  4495.           the A20 gate.
  4496.         Important: bit 0 (system reset) should always be set here, as
  4497.               the system may hang constantly, use pulse output port
  4498.               (FEh) instead.
  4499.  D1h    Compaq    the system speed bits are not set by this command use
  4500.           commands A1-A6 (!) for speed functions.
  4501.  D2h    MCA    Enhanced Command: write keyboard output buffer
  4502.  D3h    MCA    Enhanced Command: write pointing device out.buf.
  4503.  D4h    MCA    write to mouse/pointing device instead of to keyboard; this
  4504.           controller command must precede every PORT 0060h command
  4505.           directed to the mouse, otherwise it will be sent to the
  4506.           keyboard
  4507.  D4h    AWARD    Enhanced Command: write to auxiliary device
  4508.  DDh    sngl    disable address line A20 (HP Vectra only???)
  4509.         default in Real Mode
  4510.  DFh    sngl    enable address line A20 (HP Vectra only???)
  4511.  E0h    read    read test inputs, and place in PORT 0060h
  4512.         bit0 = kbd clock, bit1 = kbd data
  4513.  Exxx    AWARD    Enhanced Command: active output port
  4514.  EDh    double    this is a two part command to control the state of the
  4515.           NumLock, CpasLock and ScrollLock LEDs
  4516.         The second byte contains the state to set LEDs.
  4517.             bit 7-3    reserved. should be set to 0.
  4518.             bit 2 = 0    Caps Lock LED off
  4519.             bit 1 = 0    Num Lock LED off
  4520.             bit 0 = 0    Scroll Lock LED off
  4521.  F0-FF    sngl    pulse output port low for 6 microseconds.
  4522.         bits 0-3 contain the mask for the bits to be pulsed.  A bit is
  4523.           pulsed if its mask bit is zero
  4524.         bit0=system reset. Don't set to zero. Pulse only!
  4525. Note:     keyboard controllers are widely different from each other.  You
  4526.        cannot generally exchange them between different machines.
  4527.      (Award) Derived from Award's Enhanced KB controller advertising sheet.
  4528.      (Compaq) Derived from the Compaq Deskpro 386 Tech. Ref. Guide.
  4529.  
  4530. (Table P466)
  4531. Values for Chips&Technologies extension commands:
  4532.  00h    return ID - returns A6h for a C&T controller, part # N93N8042/A
  4533.  02h    write input port
  4534.     next data byte to PORT 0060h is written to the controller's input port
  4535.     Warning: the system must be designed to support output devices
  4536.           connected to the input port to avoid potential damage
  4537.  04h    select turbo switch input
  4538.     next byte selects input:
  4539.         bit 7: switch polarity
  4540.         (=0 input low = high speed, =1 input low = low speed)
  4541.         bits 6-0: one bit set selects corresponding bit in Port1 as turbo
  4542.  05h    select turbo LED output
  4543.     next byte selects output:
  4544.         bit 7: LED polarity    (=0 output low=LED on, =1 output low=LED off)
  4545.         bit 6: LED port (=0 Port1, =1 Port2)
  4546.         bits 5-0: one bit set selects corresponding bit in Port1/Port2 as
  4547.         LED output
  4548. Note:    these commands and any arguments are sent to PORT 0060h after writing
  4549.       command A1h to PORT 0064h
  4550. SeeAlso: #P110
  4551.  
  4552. Bitfields for Compaq keyboard command byte:
  4553. Bit(s)    Description    (Table P111)
  4554.  7    reserved
  4555.  6    =1 convert KB codes to 8086 scan codes
  4556.  5    =0 use 11-bit codes, 1=use 8086 codes
  4557.  4    =0 enable keyboard, 1=disable keyboard
  4558.  3    ignore security lock state
  4559.  2    this bit goes into bit2 status reg.
  4560.  1    reserved (0)
  4561.  0    generate interrupt (IRQ1) when output buffer full
  4562. SeeAlso: #P112
  4563.  
  4564. Bitfields for keyboard command byte (alternate description):
  4565. Bit(s)    Description    (Table P112)
  4566.  7    reserved (0)
  4567.  6    IBM PC compatibility mode
  4568.  5    IBM PC mode
  4569.     no parity, no stop bits, no translation
  4570.     (PS/2) force mouse clock low
  4571.  4    disable keyboard (clock)
  4572.  3    (AT) inhibit override -- ignore keyboard lock switch
  4573.     (PS/2) reserved
  4574.  2    system flag
  4575.  1    (AT) reserved (0)
  4576.     (PS/2) enable mouse output buffer full interrupt (IRQ12)
  4577.  0    enable output buffer full interrupt (IRQ1)
  4578. SeeAlso: #P111,#P113
  4579.  
  4580. Bitfields for keyboard controller output port:
  4581. Bit(s)    Description    (Table P113)
  4582.  7    keyboard data (output)
  4583.  6    keyboard clock (output)
  4584.  5    (AT) =0 input buffer empty
  4585.     (MCA) outptu buffer full with mouse byte (connected to IRQ12)
  4586.  4    output buffer full with keyboard byte (connected to IRQ1)
  4587.  3    (MCA) mouse data (output)
  4588.  2    (MCA) mouse clock (output)
  4589.     used by Intel 386sx Chipset with AMI/Phoenix BIOSes for BIOS-specific
  4590.       configuration of turbo switch
  4591.  1    gate address A20
  4592.  0    system reset
  4593. Note:    bit 0 (system reset) should always be set when writing the output
  4594.       port, as the system may hang constantly; use pulse output port
  4595.       (command FEh) instead.
  4596. SeeAlso: #P112
  4597.  
  4598. (Table P114)
  4599. Values for keyboard/mouse test result on PORT 0060h:
  4600.  00h    no error
  4601.  01h    keyboard clock line stuck low
  4602.  02h    keyboard clock line stuck high
  4603.  03h    keyboard data line is stuck low
  4604.  04h    keyboard data line stuck high
  4605.  05h    (Compaq only) diagnostic feature
  4606. SeeAlso: #P110
  4607.  
  4608. (Table P115)
  4609. Values for keyboard controller RAM location:
  4610.  00h    command byte (see #P111,#P112)
  4611. ---MCA systems---
  4612.  13h    security on
  4613.     nonzero if password enabled
  4614.  14h    security off
  4615.     nonzero if password matched
  4616.  16h    password discard scancode 1
  4617.  17h    password discard scancode 2
  4618. Note:    make codes matching either discard scancode are ignored during password
  4619.       entry
  4620. ----------P0065------------------------------
  4621. PORT 0065 - AT&T 6300+ - HIGH/LOW CHIP SELECT
  4622. ----------P0065------------------------------
  4623. PORT 0065 - ???
  4624.  
  4625. 0065  RW  ???
  4626.         bit 2: A20 gate control (set = A20 enabled, clear = disabled)
  4627. ----------P00660067--------------------------
  4628. PORT 0066-0067 - AT&T 6300+ - SYSTEM CONFIGURATION SWITCHES
  4629. ----------P0066------------------------------
  4630. PORT 0066 - IBM 4717 Magnetic Stripe Reader - ???
  4631. SeeAlso: PORT 0069h"Magnetic Stripe"
  4632. ----------P0068------------------------------
  4633. PORT 0068 - C&T CHIPSETS - TURBO MODE CONTROL
  4634.  
  4635. Note:      on Micronics 386-25/386-33/486-25 motherboards, setting this port to
  4636.         00h enables full speed; setting it to C0h slows the system down by
  4637.         a factor corresponding to the value programmed into the EISA
  4638.         interval timer 2 at ports 004Ah and 004Bh
  4639. --------K-P0068006F--------------------------
  4640. PORT 0068-006F - HP Vectra Human Interface Link
  4641. SeeAlso: PORT 0060h"KEYBOARD"
  4642.  
  4643. 0068  -W  (HP-Vectra) control buffer (HP commands) (see #P116)
  4644. 0069  R-  (HP-Vectra) SVC (keyboard request SerViCe port)
  4645. 006A  -W  (HP-Vectra) Acknowledge (clear processing, done)
  4646. 006C-006F    HP-HIL    (Human Interface Link = async. serial inputs 0-7)
  4647.  
  4648. (Table P116)
  4649. Values for HP Vectra control buffer command code:
  4650.  00h-54h insert standard key make code into 8041 scancode buf
  4651.  55h-77h insert HP key make code into 8041 scancode buffer
  4652.  7Ah    pass through next data byte
  4653.  7Bh    set RAM Switch to 0
  4654.  7Ch    set RAM Switch to 1 (default)
  4655.  7Dh    set CRT Switch to 0
  4656.  7Eh    set CRT Switch to 1 (default)
  4657.  7Fh    reserved
  4658.  80h-D4h insert standard key break code into scancode buffer
  4659.  D5h-F7h insert HP key break code into scancode buffer
  4660.  F8h    enable AutoPoll
  4661.  F9h    disable AutoPoll
  4662.  FAh-FEh reserved
  4663.  FFh    keyboard overrun
  4664. ----------P0069------------------------------
  4665. PORT 0069 - IBM 4717 Magnetic Stripe Reader - ???
  4666. SeeAlso: PORT 0066h"Magnetic Stripe"
  4667. ----------P006B006F--------------------------
  4668. PORT 006B-006F - SSGA CONTROL REGISTERS
  4669.  
  4670. 006B  ??  RAM enable/remap
  4671. 006C  ??  undocumented
  4672. 006D  ??  undocumented
  4673. 006E  ??  undocumented
  4674. 006F  ??  undocumented
  4675. ----------P0070007F--------------------------
  4676. PORT 0070-007F - CMOS RAM/RTC (REAL TIME CLOCK)
  4677. Note:    the real-time clock may be either a discrete MC146814, MC146818, or
  4678.       an emulation thereof built into the motherboard chipset
  4679. SeeAlso: PORT 00A0h"XT"
  4680.  
  4681. 0070  -W  CMOS RAM index register port (ISA, EISA)
  4682.          bit 7    = 1  NMI disabled from reaching CPU
  4683.             = 0  NMI enabled
  4684.          bit 6-0     CMOS RAM index
  4685.             (64 bytes in early systems, now usually 128 bytes)
  4686.     Note:    any write to PORT 0070h should be followed by an action to
  4687.           PORT 0071h or the RTC wil be left in an unknown state.
  4688. 0071  RW  CMOS RAM data port (ISA, EISA) (see #P117)
  4689.  
  4690. (Table P117)
  4691. Values for Real-Time Clock register number (see also CMOS.LST):
  4692.  00h-0Dh clock registers
  4693.  0Eh    diagnostics status byte
  4694.  0Fh    shutdown status byte
  4695.  10h    diskette drive type for A: and B:
  4696.  11h    reserved / IBM fixed disk / setup options
  4697.  12h    fixed disk drive type for drive 0 and drive 1
  4698.  13h    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  4699.  14h    equipment byte
  4700.  15h    LSB of system base memory in Kb
  4701.  16h    MSB of system base memory in Kb
  4702.  17h    LSB of total extended memory in Kb
  4703.  18h    MSB of total extended memory in Kb
  4704.  19h    drive C extension byte
  4705.  1Ah    drive D extension byte
  4706.  1Bh-2Dh reserved
  4707.  20h-27h commonly used for first user-configurable drive type
  4708.  2Eh    CMOS MSB checksum over 10-2D
  4709.  2Fh    CMOS LSB checksum over 10-2D
  4710.  30h    LSB of extended memory found above 1Mb at POST
  4711.  31h    MSB of extended memory found above 1Mb at POST
  4712.  32h    date century in BCD
  4713.  33h    information flags
  4714.  34h-3Fh    reserved
  4715.  35h-3Ch commonly used for second user-configurable drive type
  4716.  3Dh-3Eh word to 82335 MCR memory config register at [22] (Phoenix)
  4717.  42h-4Ch AMI 1990 Hyundai super-NB368S notebook
  4718.     ???
  4719.  54h-57h AMI 1990 Hyundai super-NB368S notebook
  4720.     ???
  4721.  5Ch-5Dh AMI 1990 Hyundai super-NB368S notebook
  4722.     ???
  4723.  60h-61h AMI 1990 Hyundai super-NB368S notebook
  4724.     ???
  4725. ----------P0072------------------------------
  4726. PORT 0072 - Chips&Technologies 82C100 - NMI CONTROL
  4727.  
  4728. !!!chips\82c100.pdf p.41
  4729. ----------P00720075--------------------------
  4730. PORT 0072-0075 - AMD-645 Peripheral Bus Controller - EXTENDED CMOS ACCESS
  4731. SeeAlso: PORT 0070h
  4732.  
  4733. 0072  RW  CMOS memory address, region 2 (256 bytes)
  4734. 0073  RW  CMOS memory data, region 2
  4735. 0074  RW  CMOS memory address, region 3 (256 bytes)
  4736. 0075  RW  CMOS memory data, region 3
  4737. Note:    on the AMD-645, ports 0072h and 0073h allow access to a full 256 bytes
  4738.       of RAM, including the standard 128 bytes available through ports
  4739.       0070h and 0071h
  4740. ----------P0073------------------------------
  4741. PORT 0073 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - MBOARD CONFIGURATION
  4742. SeeAlso: PORT 0075h
  4743.  
  4744. 0073  RW  ???
  4745.     bit 7: ???
  4746.     bit 6: disable ROM shadowing
  4747.     bit 5: ??? (related to IDE controller)
  4748.     bit 4: ???
  4749.     bit 3: ???
  4750. ----------P00740076--------------------------
  4751. PORT 0074-0076 - SECONDARY CMOS (Compaq), NVRAM (IBM) ACCESS
  4752. Note:    NVRAM may be 2K, 8K, or 16K
  4753. SeeAlso: PORT 0070h-007Fh,CMOS.LST
  4754.  
  4755. 0074  -W  secondary CMOS RAM (IBM NVRAM) index, low byte
  4756. 0075  -W  secondary CMOS RAM (IBM NVRAM) index, high (in bits 2-0)
  4757. 0076  RW  secondary CMOS RAM (IBM NVRAM) data byte
  4758. ----------P0075------------------------------
  4759. PORT 0075 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - MBOARD CONFIGURATION
  4760. SeeAlso: PORT 0073h,PORT 0078h"82378IB"
  4761.  
  4762. 0075  R-  ???
  4763.       bits 3-2: external bus speed
  4764.            00  50 MHz
  4765.            01  66 MHz
  4766.            10  60 MHz
  4767.            11  40 MHz
  4768. ----------P0078------------------------------
  4769. PORT 0078 - HP-Vectra - HARD RESET: NMI ENABLE/DISABLE
  4770.  
  4771. 0078  ?W  NMI enable/disable
  4772.         bit 7 = 0  disable & clear hard reset from HP-HIL controller
  4773.               = 1  enable hard reset from HP-HIL controller chip
  4774.         bit 6-0       reserved
  4775. ----------P0078------------------------------
  4776. PORT 0078 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - BIOS COUNT-DOWN TIMER
  4777. Notes:    the BIOS uses this port for certain fine timings; presumably it is
  4778.       independent of processor speed (it appears to decrement at 1 MHz)
  4779.     the address at which this port appears may be set via the 82378's
  4780.       PCI configuration space word at offset 0080h (see #0860), or the
  4781.       timer may be disabled entirely
  4782. SeeAlso: PORT 0075h
  4783.  
  4784. 0078w -W  set count-down timer
  4785. 0078w R-  get current count (timer stops when it reaches 0000h)
  4786. ----------P0078007F--------------------------
  4787. PORT 0078-007F - PC radio by CoZet Info Systems
  4788. Range:    The I/O address range is dipswitch selectable from:
  4789.        038-03F and 0B0-0BF
  4790.        078-07F and 0F0-0FF
  4791.        138-13F and 1B0-1BF
  4792.        178-17F and 1F0-1FF
  4793.        238-23F and 2B0-2BF
  4794.        278-27F and 2F0-2FF
  4795.        338-33F and 3B0-3BF
  4796.        378-37F and 3F0-3FF
  4797. Note:    All of these addresses show a readout of FFh in initial state.
  4798.     Once started, all of the addresses show FBh, whatever might happen.
  4799. ----------P007C007D--------------------------
  4800. PORT 007C-007D - HP-Vectra - PIC 3 - PROGRAMMABLE INTERRUPT CONTROLLER (8259)
  4801. Notes:    cascaded to first controller.
  4802.     used for keyboard and input device interface.
  4803. SeeAlso: PORT 0020h-0021h,INT 68"Vectra",INT 6E"Vectra"
  4804.  
  4805. 007C  RW  HP-Vectra  PIC 3  see at 0020     PIC 1
  4806. 007D  RW  HP-Vectra  PIC 3  see at 0021     PIC 1
  4807. ----------P0072------------------------------
  4808. PORT 007E - Chips&Technologies 82C100/110 - NMI STATUS
  4809. SeeAlso: PORT 0072h"82C100",PORT 007Fh"82C100"
  4810. !!!chips\82c100.pdf p.42
  4811. !!!chips\82c110.pdf p.39
  4812. ----------P0072------------------------------
  4813. PORT 007F - Chips&Technologies 82C100/110 - POWER CONTROL AND RESET
  4814. SeeAlso: PORT 0072h"82C100",PORT 007Eh"82C100"
  4815. ----------P0080------------------------------
  4816. PORT 0080 - MANUFACTURING DIAGNOSTICS PORT
  4817. Note:    sometimes used for a POST hex display
  4818.  
  4819. 0080  -W  Manufacturing Diagnostics port
  4820. 0080  R-  ???
  4821.  
  4822. (Table P118)
  4823. Values for AMI BIOS diagnostics codes:
  4824.  00h    system boot completed, control passed to INT 19 bootstrap loader
  4825.  01h    register test
  4826.  02h    video initialization; NMIs disabled
  4827.  03h    power-on delay complete
  4828.  04h    pre-keyboard-test initializations complete
  4829.  05h    soft-reset/power-on setting determined
  4830.  06h    ROM enabled
  4831.  07h    ROM BIOS checksum test passed
  4832.  08h    keyboard BAT command issued
  4833.  09h    keyboard controller BAT result verified
  4834.  0Ah    keyboard controller command code issued
  4835.  0Bh    keyboard controller command byte written
  4836.  0Ch    keyboard controller pins 23/24 blocked and unblocked
  4837.  0Dh    keyboard controller NOP processing in progress
  4838.  0Eh    CMOS RAM shutdown register read/write test passed
  4839.  0Fh    CMOS RAM checksum calculation complete
  4840.  10h    CMOS RAM initialization complete
  4841.  11h    CMOS RAM status register initialized
  4842.  12h    DMA controllers 1/2 and interrupt controllers 1/2 disabled
  4843.  13h    video display disabled, port B initialized
  4844.  14h    chipset initialization, auto memory detection
  4845.  15h    8254 channel 2 test half complete
  4846.  16h    8254 channel 2 test completed
  4847.  17h    8254 channel 1 test completed
  4848.  18h    8254 channel 0 test completed
  4849.  19h    memory refresh started
  4850.  1Ah    memory refresh line is toggling
  4851.  1Bh    memory refresh test completed
  4852.  20h    base 64K memory test started
  4853.  21h    address line test passed
  4854.  22h    parity toggle complete
  4855.  23h    base 64K sequential read/write test passed
  4856.  24h    pre-interrupt-vector-initialization configuration complete
  4857.  25h    interrupt vectors initialized
  4858.  26h    8042 input port read
  4859.  27h    global data initialization complete
  4860.  28h    post-interrupt-vector-initialization initialization complete
  4861.  29h    monochrome mode set
  4862.  2Ah    color mode set
  4863.  2Bh    parity toggle on option video ROM test complete
  4864.  2Ch    initialization before video ROM control complete
  4865.  2Dh    video ROM check complete
  4866.  2Eh    !!!
  4867.  A9h    returned from E0000h adapter ROM
  4868.  AAh    final initializations after adapter ROM initializations complete
  4869. SeeAlso: #P119,#P120,#P465
  4870.  
  4871. (Table P119)
  4872. Values for AWARD (non-PnP) diagnostic code:
  4873.  01h    Processor Test 1
  4874.  02h    Processor Test 2
  4875.  03h    initialize chips
  4876.  04h    test memory refresh toggle
  4877.  05h    blank video, initialize keyboard
  4878.  06h    reserved
  4879.  07h    test CMOS and CMOS batter status
  4880.  08h    setup low memory
  4881.  09h    early cache initialization
  4882.  0Ah    interrupt vector initialization
  4883.  0Bh    test CMOS RAM checksum
  4884.  0Ch    initialize keyboard
  4885.  0Dh    initialize video interface
  4886.  0Eh    test video memory
  4887.  0Fh    test DMA channel 0
  4888.  10h    test DMA channel 1
  4889.  11h    test DMA page registers
  4890.  12h    reserved
  4891.  13h    reserved
  4892.  14h    test timer channel 2
  4893.  15h    test master PIC mask bits
  4894.  16h    test slave PIC mask bits
  4895.  17h    test 8259 stuck interrupt bits
  4896.  18h    test 8259 interrupt functionality
  4897.  19h    test for stuck NMI
  4898.  1Ah    display CPU clock
  4899.  1Bh-1Eh reserved
  4900.  1Fh    set EISA mode
  4901.  20h    enable Slot 0 (system board)
  4902.  21h-2Fh enable Slots 1-15
  4903.  30h    get base and extended memory size
  4904.  31h    test base and extended memory
  4905.  32h    test EISA memory
  4906.  33h-3Bh reserved
  4907.  3Ch    set allow-setup flag
  4908.  3Dh    initialize / install mouse
  4909.  3Eh    initialize cache controller
  4910.  3Fh    reserved
  4911.  41h    initialize floppy controller and drives
  4912.  42h    initialize hard disk controller and drives
  4913.  43h    detect / initialize serial and parallel ports
  4914.  44h    reserved
  4915.  45h    initialize math coprocessor
  4916.  46h-4Dh reserved
  4917.  4Eh    Manufacturing Post loop / or / display any error messages
  4918.  4Fh    ask for password, if enabled
  4919.  50h    update CMOS RAM
  4920.  51h    pre-boot enable of parity, NMI, cache
  4921.  52h    initialize option ROMs
  4922.  53h    initialize BIOS time from RTC
  4923.  60h    setup boot-sector protection
  4924.  61h    set boot CPU speed
  4925.  62h    setup NumLock
  4926.  63h    attempt to boot via INT 19h
  4927.  B0h    spurious interrupt while in protected mode
  4928.  B1h    unclaimed NMI
  4929.  BEh    chipset default initialization
  4930.  BFh    chipset initialization
  4931.  C0h    turn off chipset cache
  4932.  C1h    check on-board memory size
  4933.  C5h    early shadow-RAM enable for faster boot
  4934.  C6h    detect external cache size
  4935.  E1h-EFh setup utility pages 1-15
  4936.  FFh    system booting operating system
  4937. SeeAlso: #P118,#P120,#P465
  4938.  
  4939. (Table P120)
  4940. Values for AWARD (Plug-and-Play) POST code:
  4941.  01h-02h reserved
  4942.  03h    initialize EISA register (if applicable)
  4943.  04h    reserved
  4944.  05h    keyboard controller test, initialize keyboard
  4945.  06h    reserved
  4946.  07h    test CMOS and CMOS batter status
  4947.  09h    program Cyrix CPU configuration; OEM-specific cache initialization
  4948.  0Ah    initialize interrupt vectors; early power management initialization
  4949.  0Bh    check CMOS RAM; assign I/O and memory to PCI devices
  4950.  0Ch    initialize BIOS data area
  4951.  0Dh    early chipset setup; measure CPU speed; video initialization
  4952.  0Eh    display Award logo, OEM-specific sign-on messages
  4953.  0Fh    test DMA channel 0
  4954.  10h    test DMA channel 1
  4955.  11h    test DMA page registers
  4956.  12h-13h reserved
  4957.  14h    test timer channel 2
  4958.  15h    test master PIC mask bits
  4959.  16h    test slave PIC mask bits
  4960.  17h    reserved
  4961.  19h    test 8259 functionality
  4962.  1Ah-1Dh reserved
  4963.  1Eh    EISA initialization (if applicable and EISA NVRAM checksum is good)
  4964.  1Fh-29h reserved
  4965.  30h    get base and extended memory size
  4966.  31h    test base and extended memory
  4967.  32h    program on-board serial/parallel ports, floppy controller
  4968.  33h-3Bh reserved
  4969.  3Ch    set allow-setup flag
  4970.  3Dh    initialize keyboard, install PS/2 mouse if attached
  4971.  3Eh    try to turn on L2 cache
  4972.  3Fh-40h reserved
  4973.  41h    initialize floppy controller, drives
  4974.  42h    initialize hard disk controller, drives
  4975.  43h    initialize serial/parallel ports (if PnP)
  4976.  44h    reserved
  4977.  45h    initialize math coprocessor
  4978.  46h-4Dh reserved
  4979.  4Eh    display any error messages
  4980.  4Fh    ask for password, if required
  4981.  50h    update CMOS RAM
  4982.  51h    reserved
  4983.  52h    initialize expansion ROMs, PCI, PnP, shadow RAM, power management
  4984.  53h    if not PnP, initialize serial/parallel ports; set BIOS time
  4985.  54h-5Fh reserved
  4986.  60h    set boot-sector protection
  4987.  61h    turn on L2 cache; set boot speed; final chipset/PM initialization
  4988.  62h    setup daylight savings time; set NumLock, typematic
  4989.  63h    update ESCD (PnP only) if changes; boot system via INT 19h
  4990.  B0h    spurious interrupt while in protected mode
  4991.  B1h    unclaimed NMI
  4992.  BEh    chipset default initialization
  4993.  BFh    chipset initialization
  4994.  C0h    turn off chipset cache, init DMA/PIC/timer/RTC with default values
  4995.  C1h    check on-board DRAM and cache size
  4996.  C3h    test first 256K DRAM, expand compressed BIOS image into DRAM
  4997.  C5h    early shadow-RAM enable for faster boot
  4998.  FFh    system is booting operating system
  4999. SeeAlso: #P118,#P119,#P465
  5000.  
  5001. (Table P465)
  5002. Values for Chips&Technologies 82C100/82C235 POST code:
  5003.  01h    flags register failed
  5004.  02h    a CPU register failed
  5005.  03h    incorrect ROM checksum
  5006.  04h    DMA controller failed
  5007.  05h    system timer failed
  5008.  06h    first 64K of RAM failed address test
  5009.  07h    first 64K of RAM failed RAM test
  5010.  08h    interrupt controller failed
  5011.  09h    "Hot Interrupt" occurred
  5012.  0Ah    reserved
  5013.  0Bh    CPU still in protected mode
  5014.  0Ch    DMA page register failed
  5015.  0Dh    no RAM refresh
  5016.  0Eh    no response from keyboard controller
  5017.  0Fh    unable to enter protected mode
  5018.  10h    GDT or IDT register failed
  5019.  11h    LDT register failed
  5020.  12h    task register failed
  5021.  13h    LSL instruction failed
  5022.  14h    LAR instruction failed
  5023.  15h    VERR or VERW instruction failed
  5024.  16h    keyboard controller A20 gate failed
  5025.  17h    exception failed, or shutduwon on unexpected exception
  5026.  18h    shutdown during memory test
  5027.  19h    checksum error in copyright string
  5028.  1Ah    BMS checksum error
  5029. ---POST progress codes---
  5030.  50h    initialize hardware
  5031.  51h    initialize timer
  5032.  52h    initialize DMA controller
  5033.  53h    initialize 8259
  5034.  54h    initialize chipset
  5035.  55h    reserved
  5036.  56h    first entry into protected mode
  5037.  57h    memory-chip sizing
  5038.  58h    reserved
  5039.  59h    first exit from protected mode
  5040.  5Ah    system-board memory size determination
  5041.  5Bh    shadow RAM relocation
  5042.  5Ch    configure possible EMS
  5043.  5Dh    reserved
  5044.  5Eh    re-test lowest 64K of RAM
  5045.  5Fh    test shadow RAM
  5046.  60h    test CMOS RAM
  5047.  61h    test video
  5048.  63h    test protected mode interrupts
  5049.  64h    test A20
  5050.  65h    memory address line tests
  5051.  66h    test base memory
  5052.  67h    test extended memory
  5053.  68h    test timer interrupt
  5054.  69h    test real-time clock
  5055.  6Ah    test keyboard controller
  5056.  6Bh    test 80287
  5057.  6Ch    test RS232
  5058.  6Dh    test parallel port
  5059.  6Eh    reserved
  5060.  6Fh    test floppy disk controller
  5061.  70h    test fixed disk controller
  5062.  71h    test keylock
  5063.  72h    test mouse / pointing device
  5064.  73h-8Fh reserved
  5065.  90h    setup RAM
  5066.  91h    determine CPU speed
  5067.  92h    configuration check
  5068.  93h    initialize BIOS
  5069.  94h    POD bootstrap
  5070.  95h    reset ICs
  5071.  96h    setup cache controller
  5072. SeeAlso: #P118,#P119,#P120
  5073. ----------P0080008F--------------------------
  5074. PORT 0080-008F - DMA PAGE REGISTERS (74612)
  5075.  
  5076. 0080  RW  extra page register (temporary storage)
  5077. 0081  RW  DMA channel 2 address byte 2
  5078. 0082  RW  DMA channel 3 address byte 2
  5079. 0083  RW  DMA channel 1 address byte 2
  5080. 0084  RW  extra page register
  5081. 0085  RW  extra page register
  5082. 0086  RW  extra page register
  5083. 0087  RW  DMA channel 0 address byte 2
  5084. 0088  RW  extra page register
  5085. 0089  RW  DMA channel 6 address byte 2
  5086. 008A  RW  DMA channel 7 address byte 2
  5087. 008B  RW  DMA channel 5 address byte 2
  5088. 008C  RW  extra page register
  5089. 008D  RW  extra page register
  5090. 008E  RW  extra page register
  5091. 008F  RW  DMA refresh page register
  5092. ----------P0080009F--------------------------
  5093. PORT 0080-009F - Intel386sx CHIPSET 82231
  5094. Note:    includes the DMA controller functionality on PORT 0080h to PORT 008Fh
  5095. ----------P0084------------------------------
  5096. PORT 0084 - Compaq POST Diagnostic
  5097. --------X-P0084------------------------------
  5098. PORT 0084 - EISA - SYNCHRONIZE BUS CYCLE
  5099. ----------P00850086--------------------------
  5100. PORT 0085-0086 - Intel "Triton" chipset - ???
  5101. SeeAlso: PORT 00EBh"Triton"
  5102.  
  5103. 0085  ?W  ???
  5104. 0086  ?W  ???
  5105. ----------P0090009F--------------------------
  5106. PORT 0090-009F - PS/2 - POS (PROGRAMMABLE OPTION SELECT)
  5107.  
  5108. 0090  ??  Central arbitration control port
  5109. 0090  RW  POST diagnostic code (most PS/2 with ISA bus)
  5110. 0091  R-  Card selection feedback
  5111.         bit 0 set when adapter addressed and responds, cleared on read
  5112. 0092  RW  PS/2 system control port A  (port B is at PORT 0061h) (see #P121)
  5113. 0094  -W  system board enable/setup register (see #P122)
  5114. 0095  --  reserved
  5115. 0096  -W  adapter enable / setup register (see #P123)
  5116. 0097  --  reserved
  5117.  
  5118. Bitfields for PS/2 system control port A:
  5119. Bit(s)    Description    (Table P121)
  5120.  7-6    any bit set to 1 turns activity light on
  5121.  5    unused
  5122.  4    watchdog timout occurred
  5123.  3    =0 RTC/CMOS security lock (on password area) unlocked
  5124.     =1 CMOS locked (done by POST)
  5125.  2    unused
  5126.  1    A20 is active
  5127.  0    =0 system reset or write
  5128.     =1 pulse alternate reset pin (high-speed alternate CPU reset)
  5129. Notes:    once set, bit 3 may only be cleared by a power-on reset
  5130.     on at least the C&T 82C235, bit 0 remains set through a CPU reset to
  5131.       allow the BIOS to determine the reset method
  5132. SeeAlso: #P122,#P123,MSR 00001000h
  5133.  
  5134. Bitfields for PS/2 system board enable/setup register:
  5135. Bit(s)    Description    (Table P122)
  5136.  7    =1  enable functions
  5137.     =0  setup functions
  5138.  5    =1  enables VGA
  5139.     =0  setup VGA
  5140.  2    =1  enable integrated SCSI (PS/2 M77)
  5141.     =0  setup integrated SCSI
  5142. SeeAlso: #P121,#P123
  5143.  
  5144. Bitfields for PS/2 adapter enable/setup register:
  5145. Bit(s)    Description    (Table P123)
  5146.  7    activate Channel Reset on all slots
  5147.  6-4    unused (1)
  5148.  3    =1  setup adapter specified by bits 2-0
  5149.     =0  enable registers
  5150.  2-0    adapter slot select (000 = slot 1 ... 111 = slot 8)
  5151. SeeAlso: #P122
  5152. ----------P00A000AF--------------------------
  5153. PORT 00A0-00AF - PIC 2 - PROGRAMMABLE INTERRUPT CONTROLLER (8259A)
  5154. SeeAlso: PORT 0020h-003Fh"PIC 1",INT 70"IRQ8",INT 77"IRQ15"
  5155.  
  5156. 00A0  RW  PIC 2     same as 0020 for PIC 1
  5157. 00A1  RW  PIC 2     same as 0021 for PIC 1 except for OCW1 (see #P124)
  5158.  
  5159. Bitfields for PIC2 output control word OCW1:
  5160. Bit(s)    Description    (Table P124)
  5161.  7    disable IRQ15 (reserved)
  5162.  6    disable IRQ14 (fixed disk interrupt)
  5163.  5    disable IRQ13 (coprocessor exception interrupt)
  5164.  4    disable IRQ12 (mouse interrupt)
  5165.  3    disable IRQ11 (reserved)
  5166.  2    disable IRQ10 (reserved)
  5167.  1    disable IRQ9  (redirect cascade)
  5168.  0    disable IRQ8  (real-time clock interrupt)
  5169. SeeAlso: #P014
  5170. ----------P00A0------------------------------
  5171. PORT 00A0 - XT - NMI MASK REGISTER
  5172. SeeAlso: PORT 0070h,INT 02
  5173.  
  5174. 00A0  RW  NMI mask register (XT only)
  5175.      bit 7 = 0 NMI signal disabled from reaching CPU
  5176.            = 1 NMI signal enabled
  5177. ----------P00A000AF--------------------------
  5178. PORT 00A0-00AF - Chips&Technologies 82C100/110 - NMI CONTROL
  5179. SeeAlso: PORT 0072h"82C100",PORT 007Fh"82C100"
  5180.  
  5181. 00A0  RW  NMI mask register (XT only)
  5182.      bit 7 = 0 NMI signal disabled from reaching CPU
  5183.            = 1 NMI signal enabled
  5184. 00Ax  RW  mirrors of PORT 00A0h
  5185. ----------P00A800A9--------------------------
  5186. PORT 00A8-00A9 - Via VT82C496G - CONFIGURATION REGISTERS
  5187.  
  5188. 00A8  ?W  configuration register index
  5189. 00A9  RW  configuration register data
  5190. ----------P00A800A9--------------------------
  5191. PORT 00A8-00A9 - Via VT82C570M - CONFIGURATION REGISTERS
  5192.  
  5193. 00A8  ?W  configuration register index
  5194. 00A9  RW  configuration register data
  5195. ----------P00A800A9--------------------------
  5196. PORT 00A8-00A9 - Via VT82C586A - GPIO
  5197.  
  5198. 00A8  ?W  configuration register index
  5199. 00A9  RW  configuration register data
  5200. ----------P00B000BF--------------------------
  5201. PORT 00B0-00BF - PC radio by CoZet Info Systems
  5202. Range:    The I/O address range is dipswitch selectable from:
  5203.        038-03F and 0B0-0BF
  5204.        078-07F and 0F0-0FF
  5205.        138-13F and 1B0-1BF
  5206.        178-17F and 1F0-1FF
  5207.        238-23F and 2B0-2BF
  5208.        278-27F and 2F0-2FF
  5209.        338-33F and 3B0-3BF
  5210.        378-37F and 3F0-3FF
  5211. Notes:    All of these addresses show a readout of FFh in initial state.
  5212.     Once started, all of the addresses show    FBh, whatever might happen.
  5213. ----------P00B2------------------------------
  5214. PORT 00B2 - Intel chipsets - Advanced Power Management Control
  5215. Notes:    used to pass data between the operating system and the System
  5216.       Management Interrupt (SMI) handler
  5217.     writes to this port can cause an SMI; reads can cause STPCLK# to be
  5218.       asserted (putting the CPU in sleep mode)
  5219.     supported by 82420EX, 82371, and other Intel chipsets
  5220. SeeAlso: PORT 00B3h,#0875
  5221.  
  5222. 00B2  RW  control
  5223. ----------P00B3------------------------------
  5224. PORT 00B3 - Intel chipsets - Advanced Power Management Status
  5225. Notes:    used to pass data between the operating system and the System
  5226.       Management Interrupt (SMI) handler
  5227.     supported by 82420EX, 82371, and other Intel chipsets
  5228. SeeAlso: PORT 00B2h
  5229.  
  5230. 00B3  RW  status
  5231. ----------P00C0------------------------------
  5232. PORT 00C0 - TI SN746496 programmable tone/noise generator (PCjr)
  5233. ----------P00C000DF--------------------------
  5234. PORT 00C0-00DF - DMA 2 - SECOND DIRECT MEMORY ACCESS CONTROLLER (8237)
  5235.  
  5236. 00C0  RW  DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)
  5237. 00C2  RW  DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)
  5238. 00C4  RW  DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)
  5239. 00C6  RW  DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)
  5240. 00C8  RW  DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)
  5241. 00CA  RW  DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)
  5242. 00CC  RW  DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)
  5243. 00CE  RW  DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)
  5244.  
  5245. 00D0  R-  DMA channel 4-7 status register (ISA, EISA) (see #P125)
  5246. 00D0  -W  DMA channel 4-7 command register (ISA, EISA) (see #P126)
  5247. 00D2  -W  DMA channel 4-7 write request register (ISA, EISA)
  5248. 00D4  -W  DMA channel 4-7 write single mask register (ISA, EISA) (see #P128)
  5249. 00D6  -W  DMA channel 4-7 mode register (ISA, EISA) (see #P129)
  5250. 00D8  -W  DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)
  5251.  
  5252. 00DA  R-  DMA channel 4-7 read temporary register (ISA, EISA)
  5253. 00DA  -W  DMA channel 4-7 master clear (ISA, EISA)
  5254. 00DC  -W  DMA channel 4-7 clear mask register (ISA, EISA)
  5255. 00DE  -W  DMA channel 4-7 write mask register (ISA, EISA) (see #P130)
  5256. Notes:    the temporary register is used as holding register in memory-to-memory
  5257.       DMA transfers; it holds the last transferred byte
  5258.     channel 4 is used for cascading the first (8-bit) DMA controller
  5259.     base/current address registers can only address the memory in 16-bit
  5260.       words (i.e. they contain lines A1-A16 of the address bus with line
  5261.       A0 always equal to 0); base/current word count registers contain the
  5262.       number of 16-bit words
  5263.     command and request registers do not exist on PS/2 DMA controller
  5264.  
  5265. Bitfields for DMA channel 4-7 status register:
  5266. Bit(s)    Description    (Table P125)
  5267.  7 = 1    channel 7 request
  5268.  6 = 1    channel 6 request
  5269.  5 = 1    channel 5 request
  5270.  4 = 1    channel 4 request
  5271.  3 = 1    terminal count on channel 7
  5272.  2 = 1    terminal count on channel 6
  5273.  1 = 1    terminal count on channel 5
  5274.  0 = 1    terminal count on channel 4
  5275. SeeAlso: #P001,#P126
  5276.  
  5277. Bitfields for DMA channel 4-7 command register:
  5278. Bit(s)    Description    (Table P126)
  5279.  7    DACK sense active high
  5280.  6    DREQ sense active high
  5281.  5    =1  extended write selection
  5282.     =0  late write selection
  5283.  4    rotating priority instead of fixed priority
  5284.  3    compressed timing
  5285.  2    =1  enable controller
  5286.     =0  enable memory-to-memory transfer
  5287.  1-0    channel number (00 = 4 to 11 = 7)
  5288. SeeAlso: #P002,#P125,#P128
  5289.  
  5290. Bitfields for DMA channel 4-7 request register:
  5291. Bit(s)    Description    (Table P127)
  5292.  7-3    reserved (0)
  5293.  2    =0 clear request bit
  5294.     =1 set request bit
  5295.  1-0    channel number
  5296.     00 channel 4 select
  5297.     01 channel 5 select
  5298.     10 channel 6 select
  5299.     11 channel 7 select
  5300. SeeAlso: #P003,#P128
  5301.  
  5302. Bitfields for DMA channel 4-7 write single mask register:
  5303. Bit(s)    Description    (Table P128)
  5304.  7-3    reserved
  5305.  2    =0  clear mask bit
  5306.     =1  set mask bit
  5307.  1-0    channel select
  5308.     00 channel 4 select
  5309.     01 channel 5 select
  5310.     10 channel 6 select
  5311.     11 channel 7 select
  5312. SeeAlso: #P004,#P126
  5313.  
  5314. Bitfields for DMA channel 4-7 mode register:
  5315. Bit(s)    Description    (Table P129)
  5316.  7-6    transfer mode
  5317.     00  demand mode
  5318.     01  single mode
  5319.     10  block mode
  5320.     11  cascade mode
  5321.  5    direction
  5322.     0  address increment select
  5323.     1  address decrement select
  5324.  4    autoinitialisation enabled
  5325.  3-2    operation
  5326.     00  verify operation
  5327.     01  write to memory
  5328.     10  read from memory
  5329.     11  reserved
  5330.  1-0    channel number
  5331.     00  channel 4 select
  5332.     01  channel 5 select
  5333.     10  channel 6 select
  5334.     11  channel 7 select
  5335. SeeAlso: #P005,#P128
  5336.  
  5337. Bitfields for DMA channel 4-7 write mask register:
  5338. Bit(s)    Description    (Table P130)
  5339.  7-4    reserved
  5340.  3    channel 7 mask bit
  5341.  2    channel 6 mask bit
  5342.  1    channel 5 mask bit
  5343.  0    channel 4 mask bit
  5344. Note:    each mask bit is automatically set when the corresponding channel
  5345.       reaches terminal count or an extenal EOP sigmal is received
  5346. SeeAlso: #P128,#P006
  5347. ----------P00E000E1--------------------------
  5348. PORT 00E0-00E1 - CHIPSET FROM ACT
  5349.  
  5350. 00E0  ?W  index for accesses to data port
  5351. 00E1  R?  chip set data
  5352. ----------P00E000E7--------------------------
  5353. PORT 00E0-00E7 - MICROCHANNEL
  5354.  
  5355. 00E0  RW  split address register, memory encoding registers PS/2m80 only
  5356.     (see #P131)
  5357. 00E1  RW  memory register (see #P132,#P133)
  5358. 00E3  RW  error trace (bits 23-16 of address on last rising edge of ERS line)
  5359. 00E4  RW  error trace (bits 15-8 of address on last rising edge of ERS line)
  5360. 00E5  RW  error trace (see #P134)
  5361. 00E7  RW  error trace (see #P135)
  5362.  
  5363. Bitfields for Microchannel Split Address Register:
  5364. Bit(s)    Description    (Table P131)
  5365.  7-6    unused
  5366.  5-4    2MB memory for connector 2 on Type2 motherboard
  5367.     bit 5: second MB disabled or not present
  5368.     bit 4: first MB disabled or not present
  5369.  3-0    address at which to place leftover from split in first MB, in MB
  5370.     (1-15, 0 is invalid when split is active)
  5371. SeeAlso: #P132,#P133
  5372.  
  5373. Bitfields for Microchanel Memory Register, Type1 motherboard:
  5374. Bit(s)    Description    (Table P132)
  5375.  7-6    1 MB memory for connector 2
  5376.     10 installed
  5377.     11 not installed
  5378.  5-4    1 MB memory for connector 1
  5379.     10 installed
  5380.     11 not installed
  5381.  3-1    split memory select
  5382.         ROM   convmem    over1M
  5383.     001    ON    640K    384K
  5384.     011    ON    512K    512K
  5385.     100    shadow    640K    0K
  5386.     101    ON    640K    0K
  5387.     110    shadow    512K    0K
  5388.     111    ON    512K    0K
  5389.  0    parity checking
  5390.     =0 enable
  5391.     =1 clear parity error (write 0 to re-enable parity checking)
  5392. SeeAlso: #P131,#P133
  5393.  
  5394. Bitfields for Microchannel Memory Register, Type2 motherboard:
  5395. Bit(s)    Description    (Table P133)
  5396.  7-6    unused
  5397.  5-4    memory connector 1
  5398.     bit 5: second MB disabled or not present
  5399.     bit 4: first MB disabled or not present
  5400.  3-1    split memory select
  5401.         ROM   convmem    over1M
  5402.     000    shadow    640K    256K
  5403.     001    ON    640K    384K
  5404.     010    shadow    512K    384K
  5405.     011    ON    512K    512K
  5406.     100    shadow    640K    0K
  5407.     101    ON    640K    0K
  5408.     110    shadow    512K    0K
  5409.     111    ON    512K    0K
  5410.  0    parity checking
  5411.     =0 enable
  5412.     =1 clear parity error (write 0 to re-enable parity checking)
  5413. SeeAlso: #P131,#P132
  5414.  
  5415. Bitfields for Microchannel Error Trace register E5h:
  5416. Bit(s)    Description    (Table P134)
  5417.  7-2    bits 7-2 of address on last rising edge of ERS line
  5418.  1    address space (0=I/O, 1=memory)
  5419.  0    =1 bus-master arbitration cycle
  5420. SeeAlso: #P135
  5421.  
  5422. Bitfields for Microchannel Error Trace register E7h:
  5423. Bit(s)    Description    (Table P135)
  5424.  7-1    unused
  5425.  0    bus cycle type
  5426.     =0 control (instruction fetch, halt, interrupt acknowledge)
  5427.     =1 data
  5428. SeeAlso: #P134
  5429. ----------P00E000EF--------------------------
  5430. PORT 00E0-00EF - IBM PS/1 CLOCK
  5431. ----------P00E1------------------------------
  5432. PORT 00E1 - STB PowerMEG - ???
  5433. Desc:    the STB PowerMEG is a memory expansion card capable of providing EMS
  5434.  
  5435. 00E1  RW  ???
  5436.       bit 0: ???
  5437. --------X-P00E2------------------------------
  5438. PORT 00E2 - S3 Trio64V+ - I2C PORT
  5439. Range:    PORT 00E2h or PORT 00E8h; default depends on external pin, but can
  5440.       be reprogrammed via chip's CR6F
  5441. SeeAlso: PORT 00E8h,#M098
  5442. --------X-P00E8------------------------------
  5443. PORT 00E8 - S3 Trio64V+ - I2C PORT
  5444. Range:    PORT 00E2h or PORT 00E8h; default depends on external pin, but can
  5445.       be reprogrammed via chip's CR6F
  5446. SeeAlso: PORT 00E2h,#M098
  5447. ----------P00EB------------------------------
  5448. PORT 00EB - Intel "Triton" chipset - ???
  5449. SeeAlso: PORT 0085h"Triton"
  5450.  
  5451. 00EB  ?W  ???
  5452. ----------P00EB------------------------------
  5453. PORT 00EB - DUMMY PORT FOR DELAY???
  5454. Note:    on a number of machines, the BIOS appears to write a copy of any
  5455.       data sent to numerous other ports to this port as well; it seems
  5456.       to be a dummy port used for short delays between writes to other
  5457.       ports (used instead of JMP $+2, which no longer delays on Pentium+)
  5458. SeeAlso: PORT 00ED"DUMMY"
  5459.  
  5460. 00EB  ?W  ???
  5461. ----------P00EC00ED--------------------------
  5462. PORT 00EC-00ED - Compaq LTE Elite
  5463. ----------P00ED------------------------------
  5464. PORT 00ED - DUMMY PORT FOR DELAY???
  5465. Note:    on a number of machines, the BIOS appears to write a copy of any
  5466.       data sent to numerous other ports to this port as well; it seems
  5467.       to be a dummy port used for short delays between writes to other
  5468.       ports (used instead of JMP $+2, which no longer delays on Pentium+)
  5469. SeeAlso: PORT 00EB"DUMMY"
  5470.  
  5471. 00EDw  ?W  ???
  5472. ----------P00EF------------------------------
  5473. PORT 00EF - Hyunday Super-NB386S (AMD386sx with Intel chipset)
  5474. Warning: any access to this port causes a cold reset on this machine!
  5475. ----------P00F000F5--------------------------
  5476. PORT 00F0-00F5 - PCjr Disk Controller
  5477.  
  5478. 00F0  ??  disk controller
  5479. 00F2  ??  disk controller control port
  5480. 00F4  ??  disk controller status register
  5481. 00F5  ??  disk controller data port
  5482. ----------P00F000FF--------------------------
  5483. PORT 00F0-00FF - MATH COPROCESSOR (8087..80387)
  5484.  
  5485. 00F0  -W  math coprocessor clear busy latch (write 00h)
  5486. 00F1  -W  math coprocessor reset (write 00h)
  5487. 00F8  RW  opcode transfer (CPU-coprocessor communication)
  5488. 00FA  RW  opcode transfer
  5489. 00FC  RW  opcode transfer
  5490. ----------P00F9------------------------------
  5491. PORT 00F9 - Compaq LTE Elite
  5492. ----------P00FB------------------------------
  5493. PORT 00FB - Compaq LTE Elite
  5494. ----------P00F900FF--------------------------
  5495. PORT 00F9-00FF - PC radio by CoZet Info Systems
  5496. Range:    The I/O address range is dipswitch selectable from:
  5497.        038-03F and 0B0-0BF
  5498.        078-07F and 0F0-0FF
  5499.        138-13F and 1B0-1BF
  5500.        178-17F and 1F0-1FF
  5501.        238-23F and 2B0-2BF
  5502.        278-27F and 2F0-2FF
  5503.        338-33F and 3B0-3BF
  5504.        378-37F and 3F0-3FF
  5505. Notes:    All of these addresses show a readout of FFh in initial state.
  5506.     Once started, all of the addresses show    FBh, whatever might happen.
  5507. ----------P0100------------------------------
  5508. PORT 0100 - 3COM 3C509 Ethernet card - ID port
  5509. Note: this port is present only on the 3C509, not on any other 3COM card
  5510. SeeAlso: PORT 0110h,PORT 0120h
  5511. ----------P01000107--------------------------
  5512. PORT 0100-0107 - PS/2 POS (Programmable Option Select)
  5513. Note:    the default value for PORT 0102h is stored in CMOS 31h
  5514.  
  5515. 0100  R      POS register 0    Low adapter ID byte
  5516. 0101  R      POS register 1    High adapter ID byte
  5517. 0102  RW  POS register 2    option select data byte 1 (see #P136)
  5518. 0103  RW  POS register 3    option select data byte 2 (see #P496)
  5519. 0104  RW  POS register 4    option select data byte 3
  5520. 0105  RW  POS register 5    option select data byte 4
  5521.          bit 7    channel active (-CHCK)
  5522.          bit 6    channel status
  5523. 0106  RW  POS register 6    Low subaddress extension
  5524. 0107  RW  POS register 7    High subaddress extension
  5525.  
  5526. Bitfields for PS/2 POS register 2, option select data byte 1:
  5527. Bit(s)    Description    (Table P136)
  5528.  7      0  = unidirectional LPT port
  5529.       1  = bidirectional LPT port
  5530.  6-5    PS/2 Model 50 and higher
  5531.      00b = default LPT port at 3BCh
  5532.      01b = ""           378h
  5533.      10b = ""           278h
  5534.      11b = reserved
  5535.  4    enable parallel port
  5536.  3    serial port address
  5537.     =0 COM2 (02F8h, IRQ3)
  5538.     =1 COM1 (03F8h, IRQ4)
  5539.  2    enable serial port
  5540.  1    enable diskette controller
  5541.  0    (MCA) =0 override bits 1,2,4 and disable devices
  5542.  0    card enable (CDEN)
  5543.  0    =1 VGA sleep bit, disconnects output drivers from VGA (usage for VGA
  5544.       without monitor)
  5545. ---ET4000---
  5546.  7-4    reserved???
  5547.  3    video RAM wait enable
  5548.  2    ET4000: ROM BIOS wait enable
  5549.  1    ET4000: I/O wait enable
  5550. Note:    access to this port is only possible when PORT 0094h bit 7 is low.
  5551. SeeAlso: #P496
  5552.  
  5553. Bitfields for Chips&Technologies 64200 "Wingine" setup register:
  5554. Bit(s)    Description    (Table P496)
  5555.  7    enable access to extended registers (see #P449)
  5556. Note:    on some C&T graphics chips, this register can be made read-only
  5557.       via XR70 (see #P449)
  5558. SeeAlso: #P136
  5559. ----------P0100010F--------------------------
  5560. PORT 0100-010F - CompaQ Tape drive adapter. alternate address at 0300
  5561. ----------P0108010F--------------------------
  5562. PORT 0108-010F - IBM PS/2 - 8 digit LED info panel
  5563.  
  5564. 010F  -W  leftmost character on display
  5565. 010E  -W  second character
  5566.  ...
  5567. 0108  -W  eighth character
  5568. ----------P0110------------------------------
  5569. PORT 0110 - 3COM 3C509 Ethernet card - ID port (alternate address)
  5570. Note:    this port is present only on the 3C509, not on any other 3COM card
  5571. SeeAlso: PORT 0100h"3COM",PORT 0120h"3COM"
  5572. ----------P0120------------------------------
  5573. PORT 0120 - 3COM 3C509 Ethernet card - ID port (alternate address)
  5574. Note:    this port is present only on the 3C509, not on any other 3COM card
  5575. SeeAlso: PORT 0100h"3COM",PORT 0110h"3COM"
  5576. ----------P0130013F--------------------------
  5577. PORT 0130-013F - CompaQ SCSI adapter. alternate address at 0330
  5578. ----------P01300133--------------------------
  5579. PORT 0130-0133 - Adaptec 154xB/154xC SCSI adapter.
  5580. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  5581. ----------P01340137--------------------------
  5582. PORT 0134-0137 - Adaptec 154xB/154xC SCSI adapter.
  5583. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  5584. ----------P0138013F--------------------------
  5585. PORT 0138-013F - PC radio by CoZet Info Systems
  5586. Range:    The I/O address range is dipswitch selectable from:
  5587.        038-03F and 0B0-0BF
  5588.        078-07F and 0F0-0FF
  5589.        138-13F and 1B0-1BF
  5590.        178-17F and 1F0-1FF
  5591.        238-23F and 2B0-2BF
  5592.        278-27F and 2F0-2FF
  5593.        338-33F and 3B0-3BF
  5594.        378-37F and 3F0-3FF
  5595. Notes:    All of these addresses show a readout of FFh in initial state.
  5596.     Once started, all of the addresses show    FBh, whatever might happen.
  5597. ----------P0140014F--------------------------
  5598. PORT 0140-014F - SCSI (alternate Small Computer System Interface) adapter
  5599. Note:    first adapter is at 0340-034F
  5600. ----------P0140014F--------------------------
  5601. PORT 0140-014F - Xirlink/Relialogic XL-220/221 SCSI adapter
  5602. Range:    alternate address at 0150, 0160, 0170
  5603. Notes:    XL-220/221 are based on LOGIC Devices L53C80JC4 SCSI controller which
  5604.       is compatible with Symbios Logic (formaerly NCR) 53C80
  5605.     each SCSI data pin is inverted and compared with correcponding bit
  5606.       in the ID select register; if any matches are found while a bus free
  5607.       condition exists and SEL is active, SCSI controller will genarate an
  5608.       interrupt to indicate a selection or reselection
  5609.     pseudo-DMA register is provided by some on-card PLM, and decodes any
  5610.       address in the range 01x8-01xF; it should be accessed with 16-bit
  5611.       I/O instructions only causing 2 SCSI REQ/ACK hanshakes (8-bit I/O
  5612.       is treated as 16-bit, and second byte is lost); delayed assertion of
  5613.       the REQ signal or bus free condition on the SCSI bus causes the
  5614.       pseudo-DMA register to prolong ISA I/O cycle not asserting IOCHRDY
  5615.       signal (SCSI phase mismatch doesn't), and so may cause ISA bus to
  5616.       hang in not ready state!
  5617.     SCSI BIOS is an 8K ROM located at C8000-CBFFF if I/O port range
  5618.       0140-014F is selected, at CC000-CFFFF if I/O port range 0150-015F
  5619.       is selected, at D8000-DBFFF if I/O port range 0160-016F is selected,
  5620.       and at DC000-DFFFF if I/O port range 0170-017F is selected
  5621.  
  5622. 0140  R-  current SCSI data bus register
  5623. 0140  -W  output data register
  5624. 0141  RW  initiator command register (see #P137)
  5625. 0142  RW  mode register (see #P138)
  5626. 0143  RW  target command register (see #P139)
  5627. 0144  R-  current SCSI control register (see #P140)
  5628. 0144  -W  ID select register
  5629. 0145  R-  DMA status register (see #P141)
  5630. 0145  -W  start DMA send register
  5631.       any write starts DMA send
  5632. 0146  R-  input data register
  5633.       temporarily holds data byte received from the SCSI bus in DMA mode
  5634. 0146  -W  start DMA target receive register
  5635.       any write starts target mode DMA receive
  5636. 0147  R-  reset error/interrupt register
  5637.       any read resets the interrupt request latch and the error latches
  5638. 0147  -W  start DMA initiator mode receive register
  5639.       any write starts initiator mode DMA receive
  5640. 0148w RW  pseudo-DMA register
  5641.  
  5642. Bitfields for initiator command register:
  5643. Bit(s)    Description    (Table P137)
  5644.  7    assert RST
  5645.  6    (read) arbitration in progress
  5646.     (write) test mode
  5647.  5    (read) lost arbitration
  5648.  4    assert ACK
  5649.  3    assert BSY
  5650.  2    assert SEL
  5651.  1    assert ATN
  5652.  0    assert data bus
  5653. SeeAlso: #P138,#P139,#P140,#P141
  5654.  
  5655. Bitfields for mode register:
  5656. Bit(s)    Description    (Table P138)
  5657.  7    block mode
  5658.  6    target mode
  5659.  5    enable parity check
  5660.  4    enable parity interrupt
  5661.  3    enable end of DMA interrupt
  5662.  2    monitor BSY
  5663.  1    DMA mode
  5664.  0    arbitrate
  5665. SeeAlso: #P137
  5666.  
  5667. Bitfields for target command register:
  5668. Bit(s)    Description    (Table P139)
  5669.  7    (read) last byte sent
  5670.  6-4    reserved
  5671.  3    assert REQ
  5672.  2    assert MSG
  5673.  1    assert C/D
  5674.  0    assert I/O
  5675. SeeAlso: #P137
  5676.  
  5677. Bitfields for current SCSI control register:
  5678. Bit(s)    Description    (Table P140)
  5679.  7    RST
  5680.  6    BSY
  5681.  5    REQ
  5682.  4    MSG
  5683.  3    C/D
  5684.  2    I/O
  5685.  1    SEL
  5686.  0    parity
  5687. SeeAlso: #P137
  5688.  
  5689. Bitfields for DMA status register:
  5690. Bit(s)    Description    (Table P141)
  5691.  7    end of DMA
  5692.  6    DMA request
  5693.  5    parity error
  5694.  4    interrupt request
  5695.  3    phase match
  5696.  2    BSY error
  5697.  1    ATN
  5698.  0    ACK
  5699. SeeAlso: #P137
  5700. ----------P0140014F--------------------------
  5701. PORT 0140-014F - Future Domain TMC-16x0 SCSI adapter
  5702. Range:    alternate address at 0150, 0160, 0170
  5703. Notes:    TMC-1650/1670 have a 25-pin external connector, whereas the 1660 and
  5704.       1680 have a SCSI-2 50-pin high-density external connector
  5705.     TMC-1670/1680 have floppy disk controller built in
  5706.     BIOS versions prior to 3.2 assigned SCSI ID 6 to SCSI adapter,
  5707.       versions 3.2 and greater use SCSI ID 7
  5708.     the drive ordering implemented in BIOS versions 3.4 and 3.5 is the
  5709.       opposite of the order (currently) used by the rest of the SCSI
  5710.       industry--for example, under DOS SCSI ID 0 will be D: and SCSI ID 1
  5711.       will be C:
  5712.     Future Domain TMC-16x0 SCSI adapter series are based upon Future Domain
  5713.       TMC-1800/18C50/18C30 SCSI controllers
  5714.     TMC-1800/18C50/18C30 are ISA SCSI controllers, TMC-36C70 is a PCI
  5715.       version of TMC-18C30
  5716.     TMC-1800/18C50 have 8K FIFO, TMC-18C30/36C70 have 2K FIFO
  5717.     Future Domain TMC-1650/1660/1670/1680/1610M/1610MER/1610MEX SCSI
  5718.       adapters are based on TMC-1800/18C50/18C30
  5719.     Quantum ISA-200S/250MG SCSI adapters are based on TMC-18C50 (?)
  5720.     Future Domain TMC-3260 and Adaptec AHA-2920 PCI SCSI adapters are
  5721.       based on TMC-36C70
  5722.  
  5723. 0140  R-  read SCSI data register
  5724. 0140  -W  write SCSI data register
  5725. 0141  R-  SCSI status register (see #P142)
  5726. 0141  -W  SCSI control register (see #P143)
  5727. 0142  R-  TMC status register (see #P144)
  5728. 0142  -W  interrupt control register (see #P145)
  5729. 0143  R-  FIFO status register, TMC-18C50/18C30/36C70 chips only
  5730. 0143  -W  SCSI mode control register (see #P146)
  5731. 0144  R-  interrupt condition register, TMC-18C50/18C30/36C70 only (see #P147)
  5732. 0144  -W  TMC control register (see #P148)
  5733. 0145  R-  ID code LSB register
  5734.       27h for TMC-1800 chip
  5735.       E9h for TMC-18C50/18C30/36C70 chips
  5736. 0145  -W  memory control register, TMC-18C50/18C30/36C70 only
  5737. 0146  R-  ID code MSB register
  5738.       60h for TMC-18C50/18C30 chips
  5739.       61h for TMC-1800 chip
  5740. 0147  R-  read loopback register
  5741. 0147  -W  write loopback register
  5742. 0148  RW  SCSI data no ACK register
  5743. 0149  R-  interrupt status register (see #P149)
  5744. 014A  R-  configuration register 1 (see #P150)
  5745. 014B  R-  configuration register 2, TMC-18C50/18C30/36C70 only (see #P151)
  5746. 014B  -W  I/O control register, TMC-18C30/36C70 only (see #P152)
  5747. 014Cw R-  read FIFO data register
  5748. 014Cw -W  write FIFO data register
  5749. 014Ew R-  FIFO data count register
  5750. Notes:    any value written into the write loopback register can be read back
  5751.       from the read loopback register unchanged (this is used by the BIOS
  5752.       to test the controller)
  5753.     reading from read SCSI data register and writing to write SCSI data
  5754.       register causes REQ/ACK handshake to occur automatically, reading
  5755.       and writing the SCSI data no ACK register doesn't
  5756.     SCSI FIFO may be used only for DATA IN / DATA OUT phase transfers on
  5757.       TMC-1800; on TMC-18C50/18C30 it may also be used for COMMAND phase
  5758.       transfers
  5759.  
  5760. Bitfields for SCSI status register:
  5761. Bit(s)    Description    (Table P142)
  5762.  7    not BSY
  5763.  6    not MSG
  5764.  5    not I/O
  5765.  4    not C/D
  5766.  3    not REQ
  5767.  2    not SEL
  5768.  1    parity error???
  5769.  0    not ATN
  5770. SeeAlso: #P143,#P152
  5771.  
  5772. Bitfields for SCSI control register:
  5773. Bit(s)    Description    (Table P143)
  5774.  7    RST
  5775.  6    SEL
  5776.  5    BSY
  5777.  4    ATN
  5778.  3    I/O
  5779.  2    C/D
  5780.  1    MSG
  5781.  0    bus enable
  5782. SeeAlso: #P142,#P144,#P145
  5783.  
  5784. Bitfields for TMC status register:
  5785. Bit(s)    Description    (Table P144)
  5786.  7    bus enabled
  5787.  6    parity enabled
  5788.  5    FIFO enabled
  5789.  4    =1 data are expected to flow out from FIFO to SCSI bus
  5790.     =0 data are expected to flow from SCSI bus into FIFO
  5791.  3    SCSI reset
  5792.  2    ???
  5793.  1    arbitration complete
  5794.  0    interrupt request
  5795. SeeAlso: #P143
  5796.  
  5797. Bitfields for interrupt control register:
  5798. Bit(s)    Description    (Table P145)
  5799.  7    enable interrupt on REQ
  5800.  6    enable interrupt on SEL
  5801.  5    enable arbitration interrupt
  5802.  4    enable interrupt on ???
  5803.  0-3    FIFO threshold (how many 512 byte blocks in FIFO should be
  5804.       full/empty for interrupt to be generated)
  5805. SeeAlso: #P143
  5806.  
  5807. Bitfields for SCSI mode control register:
  5808. Bit(s)    Description    (Table P146)
  5809.  7    synchronous mode
  5810.  6    fast SCSI
  5811.  5-4    reserved?
  5812.  3-0    synchronous transfer period in 25 ns units
  5813. SeeAlso: #P143
  5814.  
  5815. Bitfields for interrupt condition register:
  5816. Bit(s)    Description    (Table P147)
  5817.  7    FIFO error interrupt
  5818.  6    forced interrupt???
  5819.  5    interrupt on RST
  5820.  4    arbitration interrupt
  5821.  3    interrupt on SEL
  5822.  2    interrupt on REQ
  5823.  1    interrupt on ???
  5824.  0    ???
  5825. SeeAlso: #P143
  5826.  
  5827. Bitfields for TMC control register:
  5828. Bit(s)    Description    (Table P148)
  5829.  7    enable FIFO
  5830.  6    =1 data are expected to flow out from FIFO to SCSI bus
  5831.     =0 data are expected to flow from SCSI bus into FIFO
  5832.  5    clear forced interrupt, TMC-18C50/18C30/36C70 only
  5833.  4    enable interrupt
  5834.  3    enable parity
  5835.  2    arbitrate
  5836.  1    force interrupt???
  5837.  0    clear SCSI reset flag???
  5838. SeeAlso: #P143
  5839. Note:    on the TMC-1800 the FIFO must be enabled and bit 6 must be set
  5840.       according to the expected data direction before a data phase will
  5841.       occur (the TMC-1800 probably doesn't generate interrupts on REQ in
  5842.       DATA IN / DATA OUT phases); on the TMC-18C50/18C30 it may be done
  5843.       when the interrupt on REQ occurs and the SCSI phase is
  5844.       DATA IN, DATA OUT or COMMAND
  5845.  
  5846. Bitfields for interrupt status register:
  5847. Bit(s)    Description    (Table P149)
  5848.  7    interrupt on REQ enabled
  5849.  6    interrupt on SEL enabled
  5850.  5    arbitration interrupt enabled
  5851.  4    interrupt on ??? enabled
  5852.  3    interrupt enabled
  5853.  2    ???
  5854.  1    always set???
  5855.  0    ???
  5856. SeeAlso: #P143
  5857.  
  5858. Bitfields for configuration register 1:
  5859. Bit(s)    Description    (Table P150)
  5860.  7-6    BIOS address range
  5861.     00 C8000h-C9FFFh
  5862.     01 CA000h-CBFFFh
  5863.     10 CE000h-CFFFFh
  5864.     11 DE000h-DFFFFh
  5865.  5-4    I/O address range
  5866.     00 140h-14Fh
  5867.     01 150h-15Fh
  5868.     10 160h-16Fh
  5869.     11 170h-17Fh
  5870.  3-1    interrupt select
  5871.     000 IRQ3
  5872.     001 IRQ5
  5873.     010 IRQ10
  5874.     011 IRQ11
  5875.     100 IRQ12
  5876.     101 IRQ14
  5877.     110 IRQ15
  5878.     111 no IRQ
  5879.  0    reserved???
  5880. Note:    the seven on-board configuration jumpers are read through this register
  5881. SeeAlso: #P143,#P151
  5882.  
  5883. Bitfields for configuration register 2:
  5884. Bit(s)    Description    (Table P151)
  5885.  7    32-bit mode enabled (TMC-18C30/36C70 only???)
  5886.  6-2    ???
  5887.  1    RAM disabled (TMC-18C30/36C70 only???)
  5888.  0    ???
  5889. Note:    256 byte on-chip RAM is mapped at offset 1F00h within the BIOS segment
  5890. SeeAlso: #P143,#P150
  5891.  
  5892. Bitfields for TMC control register:
  5893. Bit(s)    Description    (Table P152)
  5894.  7    enable 32-bit mode
  5895.  6-0    ???
  5896. SeeAlso: #P143
  5897. --------d-P0140014F--------------------------
  5898. PORT 0140-014F - Quantum ISA-200S/250MG SCSI adapter
  5899. Range:    alternate address at 0150, 0160, 0170
  5900. Note:    Quantum ISA-200S/250MG SCSI adapters are based upon Future Domain
  5901.       TMC-18C50 SCSI controller (???)
  5902. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  5903. ----------P01400157--------------------------
  5904. PORT 0140-0157 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  5905. ----------P0150015F--------------------------
  5906. PORT 0150-015F - Xirlink/Relialogic XL-220/221 SCSI adapter
  5907. Range:    alternate address at 0140, 0160, 0170
  5908. ----------P0150015F--------------------------
  5909. PORT 0150-015F - Future Domain TMC-16x0 SCSI adapter
  5910. Range:    alternate address at 0140, 0160, 0170
  5911. --------d-P0150015F--------------------------
  5912. PORT 0150-015F - Quantum ISA-200S/250MG SCSI adapter
  5913. Range:    alternate address at 0140, 0160, 0170
  5914. Note:    Quantum ISA-200S/250MG SCSI adapters are based upon Future Domain
  5915.       TMC-18C50 SCSI controller (???)
  5916. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  5917. ----------P015C015D--------------------------
  5918. PORT 015C-015D - Dell Enhanced Parallel Port
  5919. SeeAlso: PORT 002Eh,PORT 026Eh,PORT 0398h
  5920.  
  5921. 015C  -W  index for data port
  5922. 015D  RW  EPP command data
  5923. ----------P015F------------------------------
  5924. PORT 015F - ARTEC Handyscanner A400Z.  alternate address at 35F.
  5925. ----------P0160016F--------------------------
  5926. PORT 0160-016F - Xirlink/Relialogic XL-220/221 SCSI adapter
  5927. Range:    alternate address at 0140, 0150, 0170
  5928. ----------P0160016F--------------------------
  5929. PORT 0160-016F - Future Domain TMC-16x0 SCSI adapter
  5930. Range:    alternate address at 0140, 0150, 0170
  5931. --------d-P0160016F--------------------------
  5932. PORT 0160-016F - Quantum ISA-200S/250MG SCSI adapter
  5933. Range:    alternate address at 0140, 0150, 0170
  5934. Note:    Quantum ISA-200S/250MG SCSI adapters are based upon Future Domain
  5935.       TMC-18C50 SCSI controller (???)
  5936. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  5937. ----------P0168016F--------------------------
  5938. PORT 0168-016F - 4th (Quaternary) EIDE Controller
  5939. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  5940. SeeAlso: PORT 0170h-0177h,PORT 01E8h-01EFh,PORT 01F0h-01F7h
  5941. ----------P01700177--------------------------
  5942. PORT 0170-0177 - HDC 2    (2nd Fixed Disk Controller) (ISA, EISA)
  5943. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  5944. SeeAlso: PORT 0168h-016Fh,PORT 01E8h-01EFh,PORT 01F0h-01F7h
  5945. ----------P0170017F--------------------------
  5946. PORT 0170-017F - Xirlink/Relialogic XL-220/221 SCSI adapter
  5947. Range:    alternate address at 0140, 0150, 0160
  5948. ----------P0170017F--------------------------
  5949. PORT 0170-017F - Future Domain TMC-16x0 SCSI adapter
  5950. Range:    alternate address at 0140, 0150, 0160
  5951. --------d-P0170017F--------------------------
  5952. PORT 0170-017F - Quantum ISA-200S/250MG SCSI adapter
  5953. Range:    alternate address at 0140, 0150, 0160
  5954. Note:    Quantum ISA-200S/250MG SCSI adapters are based upon Future Domain
  5955.       TMC-18C50 SCSI controller (???)
  5956. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  5957. ----------P01780179--------------------------
  5958. PORT 0178-0179 - Power Management
  5959. SeeAlso: PORT 0026h,#P086
  5960.  
  5961. 0178  -W  index selection for data port
  5962. 0179  RW  power management data
  5963. ----------P0178017F--------------------------
  5964. PORT 0178-017F - PC radio by CoZet Info Systems
  5965. Range:    The I/O address range is dipswitch selectable from:
  5966.        038-03F and 0B0-0BF
  5967.        078-07F and 0F0-0FF
  5968.        138-13F and 1B0-1BF
  5969.        178-17F and 1F0-1FF
  5970.        238-23F and 2B0-2BF
  5971.        278-27F and 2F0-2FF
  5972.        338-33F and 3B0-3BF
  5973.        378-37F and 3F0-3FF
  5974. Notes:    All of these addresses show a readout of FFh in initial state.
  5975.     Once started, all of the addresses show    FBh, whatever might happen.
  5976. ----------P01CE01CF--------------------------
  5977. PORT 01CE-01CF - ATI Mach32 video chipset - ???
  5978.  
  5979. 01CE  -W  index register
  5980. 01CF  RW  data register
  5981. ----------P01E801EF--------------------------
  5982. PORT 01E8-01EF - Headland HL21 & Acer M5105 chipsets - SYSTEM CONTROL
  5983.  
  5984. 01ED  RW  select internal register. Data to/from 01EF
  5985. 01EE  R-  ???
  5986. 01EF  RW  register value
  5987.     05h  = 1000xxxx for low CPU clock speed (4MHz on Morse/Mitac)
  5988.          = 0xxxxxxx for high CPU clock speed (16MHz on Morse/Mitac)
  5989.     10h memory size
  5990.        bits 2-0 = size
  5991.            (undefined,512K,640K,1024K,2560K,2048K,4096K,undef.)
  5992.     14h ???
  5993.        bit 2: 384K RAM of first 1024K relocated to top of memory
  5994. ----------P01E801EF--------------------------
  5995. PORT 01E8-01EF - 3rd (Tertiary) EIDE Controller
  5996. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  5997. SeeAlso: PORT 0168h-016Fh,PORT 0170h-0177h,PORT 01F0h-01F7h
  5998. ----------P01F001F7--------------------------
  5999. PORT 01F0-01F7 - HDC 1    (1st Fixed Disk Controller) (ISA, EISA)
  6000. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  6001. SeeAlso: PORT 0170h-0177h,PORT 3510h-3513h
  6002.  
  6003. 01F0  RW  data register
  6004. 01F1  R-  error register (see #P153)
  6005. 01F1  -W  WPC/4     (Write Precompensation Cylinder divided by 4)
  6006. 01F2  RW  sector count
  6007. 01F3  RW  sector number (CHS mode)
  6008.       logical block address, bits 0-7 (LBA mode)
  6009. 01F4  RW  cylinder low (CHS mode)
  6010.       logical block address, bits 15-8 (LBA mode)
  6011. 01F5  RW  cylinder high (CHS mode)
  6012.       logical block address, bits 23-16 (LBA mode)
  6013. 01F6  RW  drive/head (see #P154)
  6014. 01F7  R-  status register (see #P155)
  6015. 01F7  -W  command register (see #P156)
  6016.  
  6017. Bitfields for Hard Disk Controller error register:
  6018. Bit(s)    Description    (Table P153)
  6019. ---diagnostic mode errors---
  6020.  7    which drive failed (0 = master, 1 = slave)
  6021.  6-3    reserved
  6022.  2-0    error code
  6023.     001    no error detected
  6024.     010    formatter device error
  6025.     011    sector buffer error
  6026.     100    ECC circuitry error
  6027.     101    controlling microprocessor error
  6028. ---operation mode---
  6029.  7    bad block detected
  6030.  6    uncorrectable ECC error
  6031.  5    reserved
  6032.  4    ID found
  6033.  3    reserved
  6034.  2    command aborted prematurely
  6035.  1    track 000 not found
  6036.  0    DAM not found (always 0 for CP-3022)
  6037. SeeAlso: #P154,#P155
  6038.  
  6039. Bitfields for hard disk controller drive/head specifier:
  6040. Bit(s)    Description    (Table P154)
  6041.  7    =1
  6042.  6    LBA mode enabled, rather than default CHS mode
  6043.  5    =1
  6044.  4    drive select (0 = drive 0, 1 = drive 1)
  6045.  3-0    head select bits (CHS mode)
  6046.     logical block address, bits 27-24 (LBA mode)
  6047. SeeAlso: #P153,#P155
  6048.  
  6049. Bitfields for hard disk controller status register:
  6050. Bit(s)    Description    (Table P155)
  6051.  7    controller is executing a command
  6052.  6    drive is ready
  6053.  5    write fault
  6054.  4    seek complete
  6055.  3    sector buffer requires servicing
  6056.  2    disk data read successfully corrected
  6057.  1    index - set to 1 each disk revolution
  6058.  0    previous command ended in an error
  6059. SeeAlso: #P153,#P156
  6060.  
  6061. (Table P156)
  6062. Values for hard disk controller command codes:
  6063. Command     Spec    Type    Proto    Description            class:
  6064.  00h        opt    nondata    NOP
  6065.  08h                device reset
  6066.  1xh        opt    nondata    recalibrate              1
  6067.  20h        req    PIOin    read sectors with retry          1
  6068.  21h        req    PIOin    read sectors without retry      1
  6069.  22h        req    PIOin    read long with retry          1
  6070.  23h        req    PIOin    read long without retry          1
  6071.  30h        req    PIOout    write sectors with retry      2
  6072.  31h        req    PIOout    write sectors without retry      2
  6073.  32h        req    PIOout    write long with retry          2
  6074.  33h        req    PIOout    write long without retry      2
  6075.  3Ch     IDE    opt    PIOout    write verify              3
  6076.  40h        req    nondata    read verify sectors with retry      1
  6077.  41h        req    nondata    read verify sectors without retry 1
  6078.  50h        req    vend    format track              2
  6079.  7xh        req    nondata    seek                  1
  6080.  8xh     IDE    vendor    vend    vendor unique 3
  6081.  90h        req    nondata    execute drive diagnostics      1
  6082.  91h        req    nondata    initialize drive parameters      1
  6083.  92h        opt    PIOout    download microcode
  6084.  94h E0h IDE    opt    nondata    standby immediate          1
  6085.  95h E1h IDE    opt    nondata    idle immediate              1
  6086.  96h E2h IDE    opt    nondata    standby                  1
  6087.  97h E3h IDE    opt    nondata    idle                  1
  6088.  98h E5h IDE    opt    nondata    check power mode          1
  6089.  99h E6h IDE    opt    nondata    set sleep mode              1
  6090.  9Ah     IDE    vendor    vend    vendor unique 1
  6091.  A0h     ATAPI            packet command
  6092.  A1h     ATAPI    opt    PIOin    ATAPI Identify            (see #P165)
  6093.  B0h     SMART    opt        Self Mon., Analysis, Rept. Tech. (see #P167)
  6094.  C0h-C3h IDE    vendor    vend    vendor unique 2
  6095.  C4h     IDE    opt    PIOin    read multiple              1
  6096.  C5h     IDE    opt    PIOout    write multiple              3
  6097.  C6h     IDE    opt    nondata    set multiple mode          1
  6098.  C7h     ATA-4            Read DMA O/Q
  6099.  C8h     IDE    opt    DMA    read DMA with retry          1
  6100.  C9h     IDE    opt    DMA    read DMA without retry          1
  6101.  CAh     IDE    opt    DMA    write DMA with retry          3
  6102.  CBh     IDE    opt    DMA    write DMA w/out retry          3
  6103.  CCh     ATA-4            Write DMA O/Q
  6104.  DAh                get media status
  6105.  DBh     ATA-2    opt    vend    acknowledge media chng        [Removable]
  6106.  DCh     ATA-2    opt    vend    Boot / Post-Boot        [Removable]
  6107.  DDh     ATA-2    opt    vend    Boot / Pre-Boot    (ATA-2)        [Removable]
  6108.  DEh     ATA-2    opt    vend    door lock            [Removable]
  6109.  DFh     ATA-2    opt    vend    door unlock            [Removable]
  6110.  E0h-E3h            (second half of commands 94h-96h)
  6111.  E4h     IDE    opt    PIOin    read buffer              1
  6112.  E5h-E6h            (second half of commands 98h-99h)
  6113.  E8h     IDE    opt    PIOout    write buffer              2
  6114.  E9h     IDE    opt    PIOout    write same              3
  6115.  EAh     ATA-3    opt        Secure Disable            [Security Mode]
  6116.  EAh     ATA-3    opt        Secure Lock            [Security Mode]
  6117.  EAh     ATA-3    opt        Secure State            [Security Mode]
  6118.  EAh     ATA-3    opt        Secure Enable WriteProt        [Security Mode]
  6119.  EBh     ATA-3    opt        Secure Enable            [Security Mode]
  6120.  EBh     ATA-3    opt        Secure Unlock            [Security Mode]
  6121.  ECh     IDE    req    PIOin    identify drive              1 (see #P157)
  6122.  EDh     ATA-2    opt    nondata    media eject            [Removable]
  6123.  EEh     ATA-3    opt        identify device DMA            (see #P157)
  6124.  EFh     IDE    opt    nondata    set features              1 (see #P175)
  6125.  F0h-F4h IDE        vend    EATA standard
  6126.  F1h                Security Set Password
  6127.  F2h                Security Unlock
  6128.  F3h                Security Erase Prepare
  6129.  F4h                Security Erase Unit
  6130.  F5h-FFh IDE    vendor    vend    vendor unique 4
  6131.  F5h                Security Freeze Lock
  6132.  F6h                Security Disable Password
  6133. SeeAlso: #P153,#P155
  6134.  
  6135. Format of IDE/ATA Identify Drive information:
  6136. Offset    Size    Description    (Table P157)
  6137.  00h    WORD    general configuration (see #P158)
  6138.  02h    WORD    number of logical cylinders
  6139.  04h    WORD    reserved
  6140.  06h    WORD    number of logical heads
  6141.  08h    WORD    vendor-specific (obsolete: unformatted bytes per track)
  6142.  0Ah    WORD    vendor-specific (obsolete: unformatted bytes per sector)
  6143.  0Ch    WORD    number of logical sectors
  6144.  0Eh    WORD    vendor-specific
  6145.  10h    WORD    vendor-specific
  6146.  12h    WORD    vendor-specific
  6147.  14h 10 WORDs    serial number
  6148.         no serial number if first word is 0000h
  6149.         else blank-padded ASCII serial number
  6150.  28h    WORD    vendor-specific
  6151.         [buffer type: 01h single-sector, 02h multisector,
  6152.           03h multisector with read cache]
  6153.  2Ah    WORD    controller buffer size in 512-byte sectors
  6154.         0000h = unspecified
  6155.  2Ch    WORD    number of vendor-specific (usually ECC) bytes on
  6156.           Read/Write Long; 0000h = unspecified
  6157.  2Eh  4    WORDs    firmware revision
  6158.         no revision number if first word is 0000h
  6159.         else blank-padded ASCII revision number
  6160.  36h 20    WORDs    model number
  6161.         no model number if first word is 0000h
  6162.         else blank-padded ASCII model string
  6163.  5Eh    WORD    read/write multiple support
  6164.         bits 7-0: maximum number of sectors per block supported
  6165.             00h if read/write multiple not supported
  6166.         bits 15-8: vendor-specified
  6167.  60h    WORD    able to do doubleword transfers if nonzero
  6168.  62h    WORD    capabilities (see #P159)
  6169.  64h    WORD    security mode
  6170.         bit 15: security-mode feature set supported
  6171.         bits 14-8: maximum number of passwords supported
  6172.  66h    WORD    PIO data transfer cycle timing
  6173.  68h    WORD    single-word DMA data transfer cycle timing
  6174.  6Ah    WORD    field validity
  6175.         bit 0: offsets 6Ch-75h valid
  6176.         bit 1: offsets 80h-8Dh valid
  6177.  6Ch    WORD    logical cylinders in current translation mode
  6178.  6Eh    WORD    logical heads in current translation mode
  6179.  70h    WORD    logical sectors per track in current translation mode
  6180.  72h    DWORD    current capacity in sectors (excluding device-specific uses)
  6181.  76h    WORD    multiple-sector support
  6182.         bits 7-0: count for read/write multiple command
  6183.         bit 8:    multiple-sector setting is valid
  6184.  78h    DWORD    total number of user-addressable sectors (LBA mode)
  6185.         00000000h if LBA mode not supported
  6186.  7Ch    WORD    single-word DMA transfer modes
  6187.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  6188.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  6189.  7Eh    WORD    multiword DMA transfer
  6190.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  6191.         high byte is bitmap of active mode (bit 8 = mode 0, etc.)
  6192.  80h    WORD    supported flow control PIO transfer modes
  6193.  82h    WORD    minimum multiword DMA transfer cycle time in ns
  6194.  84h    WORD    recommended multiword DMA cycle time in ns
  6195.  86h    WORD    minimum non-flow-control PIO transfer cycle time in ns
  6196.  88h    WORD    minimum PIO transfer cycle time with IORDY in ns
  6197.  8Ah  2 WORDs    reserved for future PIO modes (0)
  6198.  8Eh  2 WORDs    reserved (0)
  6199.  92h    WORD    command queueing/overlapped operation (see #P164)
  6200.  94h  6 WORDs    reserved (0)
  6201.  A0h    WORD    major revision number of specification to which device conforms
  6202.         01h = ATA-1, 02h = ATA-2, etc.    0000h/FFFFh = not reported
  6203.  A2h    WORD    minor revision number of specification to which device conforms
  6204.         0000h/FFFFh = not reported
  6205.  A4h    WORD    feature set support 1 (see #P160)
  6206.         (only valid if revision reported in A0h/A2h)
  6207.  A6h    WORD    feature set support 2 (see #P161)
  6208.         (only valid if revision reported in A0h/A2h)
  6209.  A8h    WORD    (ATA/ATAPI-4) feature set support extension (see #P162)
  6210.  AAh    WORD    feature set enabled 1 (see #P163)
  6211.         (only valid if revision reported in A0h/A2h)
  6212.  ACh    WORD    feature set enabled 2 (see #P161)
  6213.         (only valid if revision reported in A0h/A2h)
  6214.  AEh    WORD    (ATA/ATAPI-4) feature set enabled extension (see #P162)
  6215.  B0h 42 WORDs    reserved (0)
  6216. 100h 32 WORDs    vendor-specific
  6217. 100h    WORD    security status
  6218. 140h 96 WORDs    reserved (0)
  6219. SeeAlso: #P165,#0199
  6220.  
  6221. Bitfields for IDE general configuration:
  6222. Bit(s)    Description    (Table P158)
  6223.  15    device class
  6224.     =0 ATA device
  6225.     =1 ATAPI device
  6226.  14    requires format speed tolerance gap
  6227.  13    supports track offset option
  6228.  12    supports data strobe offset
  6229.  11    disk rotational sped tolerance > 0.5%
  6230.  10-8    disk transfer rate
  6231.     001 <= 5Mbit/sec
  6232.     010 5-10 Mbit/sec
  6233.     100 > 10Mbit/sec
  6234.  7-6    drive type
  6235.     01 fixed media
  6236.     10 removable media
  6237.  5    synchronized drive motor option enabled
  6238.  4    head-switching time > 15 microseconds
  6239.  3    encoding
  6240.     =0 MFM
  6241.  2-1    sector type
  6242.     01 hard-sectored
  6243.     10 soft-sectored
  6244.  0    unused (0)
  6245. SeeAlso: #P157
  6246.  
  6247. Bitfields for IDE capabilities:
  6248. Bit(s)    Description    (Table P159)
  6249.  13    Standby Timer values used according to ATA standard
  6250.  11    IORDY supported
  6251.  10    device can disable use of IORDY
  6252.  9    LBA mode supported
  6253.  8    DMA supported
  6254. SeeAlso: #P157
  6255.  
  6256. Bitfields for ATA feature set support 1:
  6257. Bit(s)    Description    (Table P160)
  6258.  15    Identify Device DMA command is supported
  6259.  14    NOP (00h) command is supported
  6260.  13    Read Buffer command is supported
  6261.  12    Write Buffer command is supported
  6262.  11    Write Verify command is supported
  6263.  10    host protected area feature set is supported
  6264.  9    Device Reset (08h) command is supported
  6265.  8    Service interrupt is supported
  6266.  7    release interrupt is supported
  6267.  6    device supports look-ahead
  6268.  5    device supports write cache
  6269.  4    PACKET command feature set is supported
  6270.  3    power management is supported
  6271.  2    removable-media feature set is supported
  6272.  1    security feature set is supported
  6273.  0    SMART feature set is supported
  6274. Note:    values of 0000h and FFFFh indicate that this field is not supported
  6275. SeeAlso: #P157,#P161,#P162
  6276.  
  6277. Bitfields for ATA feature set support/enabled 2:
  6278. Bit(s)    Description    (Table P161)
  6279.  15    must be 0 if this field is supported
  6280.  14    must be 1 if this field is supported
  6281.  13-2    reserved
  6282.  1    Read DMA O/Q (C7h) and Write DMA O/Q (CCh) commands supported/enabled
  6283.  0    Download Microcode (92h) command is supported/enabled
  6284. SeeAlso: #P157,#P163,#P160,#P162
  6285.  
  6286. Bitfields for ATA feature set support extension:
  6287. Bit(s)    Description    (Table P162)
  6288.  15    must be 0 if this field is supported
  6289.  14    must be 1 if this field is supported
  6290.  13-0    reserved
  6291. SeeAlso: #P157,#P160,#P161
  6292.  
  6293. Bitfields for ATA feature set enabled 1:
  6294. Bit(s)    Description    (Table P163)
  6295.  15    Identify Device DMA command is supported
  6296.  14    NOP (00h) command is supported
  6297.  13    Read Buffer command is supported
  6298.  12    Write Buffer command is supported
  6299.  11    Write Verify command is supported
  6300.  10    host protected area feature set is supported
  6301.  9    Device Reset (08h) command is supported
  6302.  8    Service interrupt is enabled
  6303.  7    release interrupt is enabled
  6304.  6    look-ahead is enabled
  6305.  5    write cache is enabled
  6306.  4    PACKET command feature set is enabled
  6307.  3    power management is enabled
  6308.  2    removable-media feature set is enabled
  6309.  1    security feature set is enabled
  6310.  0    SMART feature set is enabled
  6311. SeeAlso: #P157,#P161
  6312.  
  6313. Bitfields for ATA/ATAPI-4 command queueing/overlapped operation support:
  6314. Bit(s)    Description    (Table P164)
  6315.  15    reserved
  6316.  14    device supports command queueing
  6317.  13    device supports overlapped operation
  6318.  12-5    reserved
  6319.  4-0    maximum depth of queued commands supported (0 if bit 14 clear)
  6320. SeeAlso: #P157
  6321.  
  6322. Format of ATAPI Identify Information:
  6323. Offset    Size    Description    (Table P165)
  6324.  00h    WORD    general configuration (see #P166)
  6325.  02h  9 WORDs    ???
  6326.  14h 10 WORDs    serial number
  6327.         no serial number if first word is 0000h
  6328.         else blank-padded ASCII serial number
  6329.  28h  3 WORDs    vendor-specific
  6330.  2Eh  4    WORDs    firmware revision
  6331.         no revision number if first word is 0000h
  6332.         else blank-padded ASCII revision number
  6333.  36h 20    WORDs    model number
  6334.         no model number if first word is 0000h
  6335.         else blank-padded ASCII model string
  6336.  5Eh    WORD    vendor-specific
  6337.  60h    WORD    reserved (0)
  6338.  62h    WORD    capabilities (see #P159)
  6339.  64h    WORD    security mode???
  6340.  66h    WORD    PIO data transfer cycle timing
  6341.  68h    WORD    single-word DMA data transfer cycle timing
  6342.  6Ah    WORD    field validity
  6343.         bit 0: offsets 6Ch-73h valid
  6344.         bit 1: offsets 80h-8Dh valid
  6345.  6Ch    WORD    ??? logical cylinders in current translation mode
  6346.  6Eh    WORD    ??? logical heads in current translation mode
  6347.  70h    WORD    ??? logical sectors per track in current translation mode
  6348.  72h  2    WORDs    ??? current capacity in sectors
  6349.  76h    WORD    ??? multiple-sector count for read/write multiple command
  6350.  78h  2    WORDs    ??? total number of user-addressable sectors (LBA mode)
  6351.  7Ch    WORD    single-word DMA transfer modes
  6352.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  6353.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  6354.  7Eh    WORD    multiword DMA transfer
  6355.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  6356.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  6357.  80h    WORD    supported flow control PIO transfer modes
  6358.  82h    WORD    minimum multiword DMA transfer cycle time
  6359.  84h    WORD    recommended multiword DMA cycle time
  6360.  86h    WORD    minimum non-flow-control PIO transfer cycle time
  6361.  88h    WORD    minimum PIO transfer cycle time with IORDY
  6362.  8Ah  2 WORDs    reserved for future PIO modes (0)
  6363.  8Eh    WORD    typical time for release when processing overlapped CMD in
  6364.           microseconds
  6365.  90h    WORD    ???
  6366.  92h    WORD    major ATAPI version number
  6367.  94h    WORD    minor ATAPI version number
  6368.  96h 54 WORDs    reserved (0)
  6369. 100h 32 WORDs    vendor-specific
  6370. 140h 96 WORDs    reserved (0)
  6371. SeeAlso: #P157
  6372.  
  6373. Bitfields for ATAPI General Configuration:
  6374. Bit(s)    Description    (Table P166)
  6375.  15-14    device type
  6376.     0x not ATAPI
  6377.     10 ATAPI
  6378.     11 reserved
  6379.  13    reserved
  6380.  12    device present (non-ATAPI)
  6381.  12-8    ATAPI device type (see #P669)
  6382.  7    device is removable
  6383.  6-5    CMD DMA Request type
  6384.     00 microprocessor DRQ
  6385.     01 interrupt DRQ
  6386.     10 accelerated DRQ
  6387.     11 reserved
  6388.  4-2    reserved
  6389.  1-0    CMD packet size (00 = 12 bytes, 01 = 16 bytes)
  6390. SeeAlso: #P165
  6391.  
  6392. (Table P669)
  6393. Values for ATAPI device type:
  6394.  00h    direct-access device (i.e. disk drive)
  6395.  01h    sequential-access device (i.e. tape drive)
  6396.  02h    printer
  6397.  03h    processor
  6398.  04h    write-once device
  6399.  05h    CD-ROM
  6400.  06h    scanner
  6401.  07h    optical memory
  6402.  08h    medium changer
  6403.  09h    communications device
  6404.  0Ah    reserved for ACS IT8
  6405.  0Bh    reserved for ACS IT8
  6406.  0Ch    array controller device (i.e. RAID)
  6407.  0Dh-1Eh reserved
  6408.  1Fh    unknown type or no device
  6409. SeeAlso: #P166
  6410.  
  6411. (Table P167)
  6412. Values for Self-Monitoring, Analysis, Reporting Technology (SMART) subcommand:
  6413.  D0h    Read Attribute Values (optional) (see #P169)
  6414.     results returned in 512-byte sector read from controller
  6415.  D1h    Read Attribute Thresholds (optional) (see #P168)
  6416.     results returned in 512-byte sector read from controller
  6417.  D2h    Disable Attribute Autosave (optional)
  6418.     sector-count register set to 0000h
  6419.  D2h    Enable Attribute Autosave
  6420.     sector-count register set to 00F1h
  6421.  D3h    Save Attribute Values (optional)
  6422.  D4h    execute off-line tests immediately (optional)
  6423.  D5h-D6h reserved
  6424.  D7h    vendor-specific
  6425.  D8h    Enable SMART Operations
  6426.  D9h    Disable SMART Operations
  6427.  DAh    Return SMART Status
  6428.     if any threshold(s) exceeded, CylinderLow set to F4h and CylinderHigh
  6429.       set to 2Ch
  6430.  DBh    Enable/Disable Automatic Off-Line Data Collection
  6431.     sector-count register set to 0000h to disable, 00F8h to enable
  6432.  DCh-DFh reserved
  6433.  E0h-EFh vendor-specific
  6434. Note:    to access SMART commands, the Cylinder Low register must be set to
  6435.       004Fh and the Cylinder High register must be set to 00C2h before
  6436.       invoking the SMART command with the SMART command number in the
  6437.       Features register
  6438. SeeAlso: #P156
  6439.  
  6440. Format of S.M.A.R.T. attribute thresholds sector:
  6441. Offset    Size    Description    (Table P168)
  6442.  00h    WORD    data structure revision number (0005h for SMART Revision 2.0)
  6443.  02h 12 BYTEs    attribute threshold data 1 (see #P171)
  6444.  ...
  6445. 14Eh 12 BYTEs    attribute threshold data 30 (see #P171)
  6446. 16Ah 18 BYTEs    reserved (0)
  6447. 17Ch 131 BYTEs    vendor-specific
  6448. 1FFh    BYTE    checksum (two's complement of eight-bit sum of first 511 bytes)
  6449. Note:    if the drive provides fewer than 30 attributes, all remaining attribute
  6450.       records are filled with NUL (00h) bytes
  6451. SeeAlso: #P167,#P169
  6452.  
  6453. Format of S.M.A.R.T. attribute values sector:
  6454. Offset    Size    Description    (Table P169)
  6455.  00h    WORD
  6456.  02h 12 BYTEs    attribute value data 1 (see #P172)
  6457.  ...
  6458. 14Eh 12 BYTEs    attribute value data 30 (see #P172)
  6459. 16Ah    BYTE    off-line data collection status (see #P173)
  6460. 16Bh    BYTE    vendor-specific
  6461. 16Ch    WORD    time to complete off-line data collection, in seconds
  6462.         0001h-FFFFh
  6463. 16Eh    BYTE    vendor-sepcific
  6464. 16Fh    BYTE    off-line data collection capability (see #P174)
  6465. 170h    WORD    S.M.A.R.T. capabilities (see #P170)
  6466. 172h 16 BYTEs    reserved (0)
  6467. 182h 125 BYTEs    vendor-specific
  6468. 1FFh    BYTE    checksum (two's complement of eight-bit sum of first 511 bytes)
  6469. Note:    if the drive provides fewer than 30 attributes, all remaining attribute
  6470.       records are filled with NUL (00h) bytes
  6471. SeeAlso: #P167,#P168
  6472.  
  6473. Bitfields for S.M.A.R.T capabilities:
  6474. Bit(s)    Description    (Table P170)
  6475.  0    attributes saved on going into power-saving mode
  6476.  1    Enable/Disable Attribute Autosave subcommands are supported
  6477.  2-15    reserved
  6478. SeeAlso: #P169
  6479.  
  6480. Format of S.M.A.R.T. attribute threshold:
  6481. Offset    Size    Description    (Table P171)
  6482.  00h    BYTE    attribute ID (01h-FFh)
  6483.  01h    BYTE    attribute threshold
  6484.         00h always passing
  6485.         01h minimum threshold value
  6486.         FDh maximum threshold value
  6487.         FEh invalid (do not use)
  6488.         FFh always failing (for testing)
  6489.  02h 10 BYTEs    reserved (0)
  6490. Note:    the attribute ID and actual threshold values are vendor-specific
  6491. SeeAlso: #P168,#P172
  6492.  
  6493. Format of S.M.A.R.T attribute value:
  6494. Offset    Size    Description    (Table P172)
  6495.  00h    BYTE    attribute ID (01h-FFh)
  6496.  01h    WORD    status flags
  6497.         bit 0: pre-failure/advisory
  6498.             =0 value < threshold indicates usage/age exceeding
  6499.                   design life
  6500.             =1 value < threshold indicates pre-failure condition
  6501.         bit 1: on-line data collection
  6502.         bits 2-5 vendor-specific
  6503.         bits 6-15 reserved
  6504.  03h    BYTE    attribute value (01h-FDh)
  6505.         initial value prior to data collection is 64h
  6506.  04h  8 BYTEs    vendor-specific
  6507. SeeAlso: #P169,#P171
  6508.  
  6509. (Table P173)
  6510. Values for S.M.A.R.T. off-line data collection status:
  6511.  00h    off-line collection never started
  6512.  01h    reserved
  6513.  02h    off-line data collection completed successfully
  6514.  03h    reserved
  6515.  04h    off-line data collection suspended by command from host
  6516.  05h    off-line data collection aborted by command from host
  6517.  06h    off-line data collection aborted due to fatal error
  6518.  07h-3Fh reserved
  6519.  40h-7Fh vendor-specific
  6520.  80h    off-line collection never started (auto-offline feature enabled)
  6521.  81h    reserved
  6522.  82h    off-line data collection completed successfully (auto-offline feature
  6523.       enabled)
  6524.  83h    reserved
  6525.  84h    off-line data collection suspended by command from host (auto-offline
  6526.       feature enabled)
  6527.  85h    off-line data collection aborted by command from host (auto-offline
  6528.       feature enabled)
  6529.  86h    off-line data collection aborted due to fatal error (auto-offline
  6530.       feature enabled)
  6531.  87h-BFh reserved
  6532.  C0h-FFh vendor-specific
  6533. SeeAlso: #P169,#P174
  6534.  
  6535. Bitfields for S.M.A.R.T. off-line data collection capabilities:
  6536. Bit(s)    Description    (Table P174)
  6537.  0    Execute Off-Line Immediate (D4h) subcommand is implemented
  6538.  1    Enable/Disable Automatic Off-Line subcommand is implemented
  6539.  2    abort/resume on interrupting command
  6540.     =0 off-line resumes automatically after an interrupting command
  6541.     =1 off-line collection is aborted by an interrupting command
  6542.  3-7    reserved
  6543. SeeAlso: #P167
  6544.  
  6545. (Table P175)
  6546. Values for Feature Code:
  6547.  01h    [opt] 8-bit instead of 16-bit data transfers
  6548.  02h    [opt] enable write cache
  6549.  03h          set transfer mode as specified by Sector Count register
  6550.  04h    [opt] enable all automatic defect reassignment
  6551.  22h    [opt] Write Same, user-specified area
  6552.  33h    [opt] disable retries
  6553.  44h          specify length of ECC bytes used by Read Long and Write Long
  6554.  54h    [opt] set cache segments (value in Sector Count register)
  6555.  55h          disable look-ahead
  6556.  66h          disable reverting to power-on defaults
  6557.  77h    [opt] disable ECC
  6558.  81h    [opt] 16-bit instead of 8-bit data transfers
  6559.  82h    [opt] disable write cache
  6560.  84h    [opt] disable all automatic defect reassignment
  6561.  88h    [opt] enable ECC
  6562.  99h    [opt] enable retries
  6563.  9Ah    [opt] set device maximum average current
  6564.  AAh          enable look-ahead
  6565.  ABh    [opt] set maximum prefecth (value in Sector Count register)
  6566.  BBh          use four bytes of ECC on Read Long and Write Long (for compat.)
  6567.  CCh          enable reverting to power-on defaults
  6568.  DDh    [opt] Write Same, entire disk
  6569. SeeAlso: #0198
  6570. ----------P01F8------------------------------
  6571. PORT 01F8 - ???
  6572.  
  6573. 01F8  RW  ???
  6574.         bit 0: A20 gate control (set = A20 enabled, clear = disabled)
  6575. ----------P01F901FF--------------------------
  6576. PORT 01F9-01FF - PC radio by CoZet Info Systems
  6577. Range:    The I/O address range is dipswitch selectable from:
  6578.        038-03F and 0B0-0BF
  6579.        078-07F and 0F0-0FF
  6580.        138-13F and 1B0-1BF
  6581.        178-17F and 1F0-1FF
  6582.        238-23F and 2B0-2BF
  6583.        278-27F and 2F0-2FF
  6584.        338-33F and 3B0-3BF
  6585.        378-37F and 3F0-3FF
  6586. Notes:    All of these addresses show a readout of FFh in initial state.
  6587.     Once started, all of the addresses show    FBh, whatever might happen.
  6588. --------d-P0200------------------------------
  6589. PORT 0200 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  6590. SeeAlso: PORT 0300h"Digidesign"
  6591. ----------P0200020F--------------------------
  6592. PORT 0200-020F - Game port reserved I/O address space
  6593. 0200-0207 - Game port, eight identical addresses on some boards
  6594.  
  6595. 0201  R-  read joystick position and status (see #P176)
  6596. 0201  -W  fire joystick's four one-shots
  6597. 0201  RW  gameport on mc-soundmachine, mc 03-04/1992: Adlib-compatible,
  6598.         Covox 'voice master' & 'speech thing' compatible soundcard.
  6599.         (enabled if bit1=1 in PORT 038Fh. Because it is disabled on
  6600.         power-on, it cannot be found by BIOS) (see PORT 0388h-038Fh)
  6601.  
  6602. Bitfields for joystick position and status:
  6603. Bit(s)    Description    (Table P176)
  6604.  7    status B joystick button 2 / D paddle button
  6605.  6    status B joystick button 1 / C paddle button
  6606.  5    status A joystick button 2 / B paddle button
  6607.  4    status A joystick button 1 / A paddle button
  6608.  3    B joystick Y coordinate       / D paddle coordinate
  6609.  2    B joystick X coordinate       / C paddle coordinate
  6610.  1    A joystick Y coordinate       / B paddle coordinate
  6611.  0    A joystick X coordinate       / A paddle coordinate
  6612. ----------P020002FF--------------------------
  6613. PORT 0200-02FF - Sunshine uPW48, programmer for EPROM version CPU's 8748/8749
  6614. Range:    4 bit DIP switch installable in the range 20x-2Fx
  6615.  
  6616. 0200-0203    adresses of the 8255 on the uPW48
  6617. 0208-020B    adresses of ??? on the uPW48 (all showing zeros)
  6618. ----------P02080209--------------------------
  6619. PORT 0208-0209 - Intel 82C212B "Neat" chipset - EMS emulation control
  6620. Range:    may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, 02E8
  6621. ----------P0208020A--------------------------
  6622. PORT 0208-020A - Chips&Technologies 82C235 "SCAT" chipset - EMS PAGE REGISTERS
  6623. Range:    PORT 0208h or PORT 0218h, depending on configuration register 4Fh
  6624.       (see #P459)
  6625. SeeAlso: PORT 0022h"82C235"
  6626.  
  6627. 0208  RW  EMS page register
  6628. 0209  RW  EMS page register
  6629. 020A  RW  EMS page register
  6630. ----------P020C020F--------------------------
  6631. PORT 020C-020F - AIMS LAB PC Radio
  6632. Range:    configurable to PORT 020Ch or PORT 030Ch
  6633. Notes:    writing a value with bit 3 set to one of these ports turns on the
  6634.       radio; writing a value with bit 3 clear turns it off
  6635.     PORT 020Eh bits 1 indicates status of some kind
  6636. ----------P02100217--------------------------
  6637. PORT 0210-0217 - Expansion unit (XT)
  6638.  
  6639. 0210  -W  latch expansion bus data
  6640. 0210  R-  verify expansion bus data
  6641. 0211  -W  clear wait, test latch
  6642. 0211  R-  High byte data address
  6643. 0212  R-  Low byte data address
  6644. 0213  -W  0=enable,  1=disable expansion unit
  6645. 0214  -W  latch data  (receiver card port)
  6646. 0214  R-  read data   (receiver card port)
  6647. 0215  R-  High byte of address, then Low byte    (receiver card port)
  6648. ----------P02100211--------------------------
  6649. PORT 0210-0211 - Game Blaster
  6650. Range:    PORT 02x0h-02x1h, x=1,2,...
  6651.  
  6652. 0210  -W  register index
  6653. 0211  ?W  register data
  6654. ----------P02180219--------------------------
  6655. PORT 0218-0219 - Intel 82C212B "Neat" chipset - EMS emulation control
  6656. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  6657. ----------P0208020A--------------------------
  6658. PORT 0218-021A - Chips&Technologies 82C235 "SCAT" chipset - EMS PAGE REGISTERS
  6659. Range:    PORT 0208h or PORT 0218h, depending on configuration register 4Fh
  6660.       (see #P459)
  6661. SeeAlso: PORT 0022h"82C235"
  6662.  
  6663. 0218  RW  EMS page register
  6664. 0219  RW  EMS page register
  6665. 021A  RW  EMS page register
  6666. ----------P02200223--------------------------
  6667. PORT 0220-0223 - Sound Blaster / Adlib port (Stereo)
  6668. SeeAlso: PORT 0388h-0389h
  6669.  
  6670. 0220  R-  Left speaker -- Status port
  6671. 0220  -W  Left speaker -- Address port
  6672. 0221  -W  Left speaker -- Data port
  6673. 0222  R-  Right speaker -- Status port
  6674. 0222  -W  Right speaker -- Address port
  6675. 0223  -W  Right speaker -- Data port
  6676. ----------P02200227--------------------------
  6677. PORT 0220-0227 - Soundblaster PRO and SSB 16 ASP
  6678. ----------P02200228--------------------------
  6679. PORT 0220-0228 - C&T 82C570 CHIPSlink '3270' Protocol Controller
  6680. !!!chips\82c570.pdf p.7
  6681. ----------P0220022F--------------------------
  6682. PORT 0220-022F - Soundblaster PRO 2.0
  6683. ----------P0220022F--------------------------
  6684. PORT 0220-022F - Soundblaster PRO 4.0
  6685. Note:    the FM music is accessible on 0388/0389 for compatibility.
  6686.  
  6687. 0220  R-  left FM status port
  6688. 0220  -W  left FM music register address port (index)
  6689. 0221  RW  left FM music data port
  6690. 0222  R-  right FM status port
  6691. 0222  -W  right FM music register address port (index)
  6692. 0223  RW  right FM music data port
  6693. 0224  -W  mixer register address port (index) (see #P667)
  6694. 0225  RW  mixer data port
  6695. 0226  -W  DSP reset
  6696. 0228  R-  FM music status port
  6697. 0228  -W  FM music register address port (index)
  6698. 0229  -W  FM music data port
  6699. 022A  R-  DSP read data (voice I/O and Midi)
  6700. 022C  -W  DSP write data / write command
  6701. 022C  R-  DSP write buffer status (bit 7)
  6702. 022E  R-  DSP data available status (bit 7)
  6703.  
  6704. (Table P667)
  6705. Values for SB Mixer register index:
  6706.  Index    Description        PORT 0225h data
  6707.  00h    reset            00h = zero all mixer controls
  6708.  04h    voice select        high nybble = left, low nybble = right
  6709.  0Ah    microphone gain        bits 2-0 = gain
  6710.  22h    master gain        high nybble = left, low nybble = right
  6711.  26h    MIDI gain        high nybble = left, low nybble = right
  6712.  28h    CD gain            high nybble = left, low nybble = right
  6713.  2Eh    Line In            high nybble = left, low nybble = right
  6714.  30h    Master Left        bits 7-3 = volume
  6715.  31h    Master Right        bits 7-3 = volume
  6716.  32h    Voice Left        bits 7-3 = volume
  6717.  33h    Voice Right        bits 7-3 = volume
  6718.  34h    MIDI Left        bits 7-3 = volume
  6719.  35h    MIDI Right        bits 7-3 = volume
  6720.  36h    CD Left            bits 7-3 = volume
  6721.  37h    CD Right        bits 7-3 = volume
  6722.  38h    LineIn Left        bits 7-3 = volume
  6723.  39h    LineIn Right        bits 7-3 = volume
  6724.  3Ah    Microphone        bits 7-3 = gain
  6725.  3Bh    PC speaker        bits 7-3 = volume
  6726.  3Ch    Sound Output        highest set bit is enabled source (see #P668)
  6727.  3Dh    Sound Source (left)    highest set bit is enabled source (see #P668)
  6728.  3Eh    Sound Source (right)    highest set bit is enabled source (see #P668)
  6729.  40h    In gain            bits 7-6 = gain
  6730.                    (00 = x1, 01 = x2, 10 = x4, 11 = x8)
  6731.  41h    Out gain (left)        bits 7-6 = gain (as for In)
  6732.  42h    Out gain (right)    bits 7-6 = gain (as for In)
  6733.  43h    Automatic Gain Control    bit 0 = enable
  6734.  44h    Treble (left)        bits 7-3 = volume
  6735.  45h    Treble (right)        bits 7-3 = volume
  6736.  46h    Bass (left)        bits 7-3 = volume
  6737.  47h    Bass (right)        bits 7-3 = volume
  6738.  
  6739. Bitfields for SB Mixer sound source:
  6740. Bit(s)    Description    (Table P668)
  6741.  7    PC speaker???
  6742.  6    MIDI left
  6743.  5    MIDI right
  6744.  4    LineIn left
  6745.  3    LineIn right
  6746.  2    CD left
  6747.  1    CD right
  6748.  0    microphone        
  6749. Note:    bits 7-5 are ignored for Sound Output register
  6750. SeeAlso: #P667
  6751. ----------P022B------------------------------
  6752. PORT 022B - GI1904 Scanner Interface Adapter
  6753. Range:    PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  6754. Range:    PORT 03ABh, PORT 03EBh
  6755. ----------P022C------------------------------
  6756. PORT 022C - GS-IF Scanner Interface adapter
  6757. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  6758.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  6759. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  6760.       others use this interface
  6761. ----------P022F------------------------------
  6762. PORT 022F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  6763. Note:    An Adlib-compatible Covox 'voice master' & 'speech thing' compatible
  6764.       soundcard
  6765. SeeAlso: PORT 0378h"Covox",PORT 0388h-038Fh"soundmachine"
  6766.  
  6767. 022F  RW  Covox compatible speech I/O  (via internal A/D converter,
  6768.         each read access starts a new conversion cycle)
  6769.         register enabled if bit7=1 in PORT 038Fh
  6770. ----------P02300233--------------------------
  6771. PORT 0230-0233 - Adaptec 154xB/154xC SCSI adapter.
  6772. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  6773. ----------P02340237--------------------------
  6774. PORT 0234-0237 - Adaptec 154xB/154xC SCSI adapter.
  6775. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  6776. ----------P0238023F--------------------------
  6777. PORT 0238-023F - COM port addresses on UniRAM card by German magazine c't
  6778.         selectable from 238, 2E8, 2F8, 338, 3E0, 3E8, 3F8
  6779. ----------P0238023x--------------------------
  6780. PORT 0238-023B - Bus Mouse Port (secondary address)
  6781. Note:    secondary address for bus mice from MS and Logitech, and the ATI
  6782.       video adapter mouse
  6783. SeeAlso: PORT 023Ch"Mouse"
  6784. ----------P023C023x--------------------------
  6785. PORT 023C-023F - Bus Mouse Port (primary address)
  6786. Note:    primary address for bus mice from MS and Logitech, the ATI video
  6787.       adapter mouse, and the Commodore PC30III bus mouse
  6788. SeeAlso: PORT 0238h"Mouse"
  6789. ----------P0240024F--------------------------
  6790. PORT 0240-024F - Gravis Ultra Sound by Advanced Gravis
  6791. Range:    The I/O address range is dipswitch selectable from:
  6792.        0200-020F and 0300-030F
  6793.        0210-021F and 0310-031F
  6794.        0220-022F and 0320-032F
  6795.        0230-023F and 0330-033F
  6796.        0240-024F and 0340-034F
  6797.        0250-025F and 0350-035F
  6798.        0260-026F and 0360-036F
  6799.        0270-027F and 0370-037F
  6800. SeeAlso: PORT 0340h-034Fh,PORT 0746h
  6801.  
  6802. 0240  -W  Mix Control register (see #P177)
  6803. 0241  R-  Read Data
  6804. 0241  -W  Trigger Timer
  6805. 0246  R-  IRQ Status Register (see #P178)
  6806. 0248  RW  Timer Control Reg
  6807.       Same as ADLIB Board (see PORT 0200h)
  6808. 0249  -W  Timer Data (see #P179)
  6809. 024B  -W  IRQ Control Register (0240 bit 6 = 1) (see #P180)
  6810. 024B  -W  DMA Control Register (0240 bit 6 = 0) (see #P181)
  6811. 024F  RW  Register Controls (rev 3.4+)
  6812.  
  6813. Bitfields for Gravis Ultra Sound mix control register:
  6814. Bit(s)    Description    (Table P177)
  6815.  6       Control Register Select (see 024B)
  6816.  5       Enable MIDI Loopback
  6817.  4       Combine GF1 IRQ with MIDI IRQ
  6818.  3       Enable Latches
  6819.  2       Enable MIC IN
  6820.  1       Disable LINE OUT
  6821.  0       Disable LINE IN
  6822. SeeAlso: #P178
  6823.  
  6824. Bitfields for Gravis Ultra Sound IRQ status register:
  6825. Bit(s)    Description    (Table P178)
  6826.  7       DMA TC IRQ
  6827.  6       Volume Ramp IRQ
  6828.  5       WaveTable IRQ
  6829.  3       Timer 2 IRQ
  6830.  2       Timer 1 IRQ
  6831.  1       MIDI Receive IRQ
  6832.  0       MIDI Transmit IRQ
  6833. SeeAlso: #P177,#P180,#P181
  6834.  
  6835. Bitfields for Gravis Ultra Sound timer data:
  6836. Bit(s)    Description    (Table P179)
  6837.  7       Reset Timr IRQ
  6838.  6       Mask Timer 1
  6839.  5       Mask Timer 2
  6840.  1       Timer 2 Start
  6841.  0       Timer 1 Start
  6842. SeeAlso: #P178,#P180
  6843.  
  6844. Bitfields for Gravis Ultra Sound IRQ control register:
  6845. Bit(s)    Description    (Table P180)
  6846.  6    Combine Both IRQ
  6847.  5-3    MIDI IRQ Selector
  6848.     000  No IRQ
  6849.     001  IRQ 2
  6850.     010  IRQ 5
  6851.     011  IRQ 3
  6852.     100  IRQ 7
  6853.     101  IRQ 11
  6854.     110  IRQ 12
  6855.     111  IRQ 15
  6856.  2-0    GF1 IRQ Selector
  6857.     000  No IRQ
  6858.     001  IRQ 2
  6859.     010  IRQ 5
  6860.     011  IRQ 3
  6861.     100  IRQ 7
  6862.     101  IRQ 11
  6863.     110  IRQ 12
  6864.     111  IRQ 15
  6865. SeeAlso: #P178,#P181
  6866.  
  6867. Bitfields for Gravis Ultra Sound DMA Control Register:
  6868. Bit(s)    Description    (Table P181)
  6869.  6    Combine Both DMA
  6870.  5-3    DMA Select Register 2
  6871.     000  No DMA
  6872.     001  DMA 1
  6873.     010  DMA 3
  6874.     011  DMA 5
  6875.     100  DMA 6
  6876.     101  DMA 7
  6877.  2-0    DMA Select Register 1
  6878.     000  No DMA
  6879.     001  DMA 1
  6880.     010  DMA 3
  6881.     011  DMA 5
  6882.     100  DMA 6
  6883.     101  DMA 7
  6884. SeeAlso: #P178,#P180,#P221
  6885. ----------P02400257--------------------------
  6886. PORT 0240-0257 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  6887.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  6888. ----------P02580259--------------------------
  6889. PORT 0258-0259 - Intel 82C212B "Neat" chipset - EMS emulation control
  6890. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  6891. ----------P02580259--------------------------
  6892. PORT 0258-0259 - AT RAMBANK Memory Expansion Board - EXT MEMORY AND EMS-SUPPORT
  6893. Range:    base address may be set to 0218h, 0228h, 0238h, 0258h, 0268h, 0298h,
  6894.       or 02A8h
  6895. ----------P0258025F--------------------------
  6896. PORT 0258-025F - Intel Above Board
  6897. ----------P02600268--------------------------
  6898. PORT 0260-0268    -  LPT port address on the UniRAM card by German magazine c't
  6899.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  6900. ----------P02680269--------------------------
  6901. PORT 0268-0269 - Intel 82C212B "Neat" chipset - EMS emulation control
  6902. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  6903. ----------P026B------------------------------
  6904. PORT 026B - GI1904 Scanner Interface Adapter
  6905. Range:    PORT 022Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  6906. Range:    PORT 03ABh, PORT 03EBh
  6907. ----------P026C------------------------------
  6908. PORT 026C - GS-IF Scanner Interface adapter
  6909. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  6910.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  6911. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  6912.       others use this interface
  6913. ----------P026E026F--------------------------
  6914. PORT 026E-026F - Dell Enhanced Parallel Port
  6915. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 0398h
  6916.  
  6917. 026E  -W  index for data port
  6918. 026F  RW  EPP command data
  6919. ----------P03980399--------------------------
  6920. PORT 026E-026F - Intel 82091AA Advanced Integrated Peripheral
  6921. Range:    PORT 0022h (X-Bus), PORT 0024h (X-Bus), PORT 026Eh (ISA), or
  6922.       PORT 0398h (ISA)
  6923. SeeAlso: PORT 0022h"82091AA",PORT 0024h"82091AA",PORT 0398h"82091AA"
  6924.  
  6925. 026E  ?W  configuration register index
  6926. 026F  RW  configuration register data
  6927. ----------P0278------------------------------
  6928. PORT 0278 - Covox 'Speech Thing' COMPATIBLES
  6929. SeeAlso: PORT 022Fh"Covox",PORT 0388h-038Fh"soundmachine"
  6930.  
  6931. 0278  -W  speech data output via printer data port
  6932.         (with mc-soundmachine, enabled if bit5=1 in 38F)
  6933. ----------P0278027A--------------------------
  6934. PORT 0278-027A - PARALLEL PRINTER PORT (usually LPT1, sometimes LPT2)
  6935. Range:    usually PORT 03BCh, PORT 0278h, or PORT 0378h
  6936. SeeAlso: PORT 0278h"EPP",MEM 0040h:0008h,INT 17/AH=00h
  6937.  
  6938. 0278  -W  data port
  6939. 0279  R-  status port (see #P263 at PORT 03BCh)
  6940. 027A  RW  control port (see #P264 at PORT 03BCh)
  6941. ----------P0278027F--------------------------
  6942. PORT 0278-027F - Intel 82360SL/82091AA - EPP-mode PARALLEL PORT
  6943. Range:    PORT 0278h or PORT 0378h
  6944. SeeAlso: PORT 0278h"LPT1",PORT 0678h"ECP"
  6945.  
  6946. 0278-027A    as for standard parallel port
  6947. 027B  RW  address strobe
  6948. 027C  RW  data strobe 0
  6949. 027D  RW  data strobe 1
  6950. 027E  RW  data strobe 2
  6951. 027F  RW  data strobe 3
  6952. ----------P0279------------------------------
  6953. PORT 0279 - Plug-and-Play - CONFIGURATION REGISTER
  6954. SeeAlso: PORT 0A79h
  6955.  
  6956. 0279  -W  index into Plug-and-Play register set for Read Data Port and
  6957.       Write Data Port I/O (see #P182,#P183)
  6958.  
  6959. (Table P182)
  6960. Values for Plug-and-Play Card-Level Registers:
  6961.  00h    set Read Port address
  6962.     bits 9-2 of Read Data port address (bits 15-10 are always 0, bits 1-0
  6963.       are always 11); valid Read Port addresses are 0203h-03FFh
  6964.  01h    serial isolation
  6965.  02h    configuration control
  6966.  03h    Wake command
  6967.     (specifies which card is accessed through configuration registers)
  6968.  04h    resource data
  6969.  05h    status
  6970.  06h    Card Select Number (CSN)
  6971.  07h    logical device number
  6972.     (selects which logical device on card is accessed at locations 30h-FFh)
  6973.     (see #P183)
  6974.  08h-1Fh reserved
  6975.  20h-2Fh vendor-specific
  6976. Note:    there is one set of these registers per installed card
  6977. SeeAlso: #P183
  6978.  
  6979. (Table P183)
  6980. Values for Plug-and-Play Logical Device Registers:
  6981.  30h    activate
  6982.     bit 0: device is active on ISA bus
  6983.     bits 7-1: reserved (0)
  6984.  31h    I/O range check
  6985.     bit 0: I/O Read Pattern select (if bit 1 set, then I/O reads return
  6986.         55h if this bit is set, AAh if this bit is clear)
  6987.     bit 1: I/O Range Check Enable: if set, all reads from device I/O
  6988.           registers return 55h or AAh, depending on bit 0
  6989.     bits 7-2: reserved (0)
  6990.  32h-37h reserved
  6991.  38h-3Fh vendor-specific
  6992.  40h-44h 24-bit ISA memory descriptor 0
  6993.  45h-47h reserved
  6994.  48h-4Ch 24-bit ISA memory descriptor 1
  6995.  4Dh-4Fh reserved
  6996.  50h-54h 24-bit ISA memory descriptor 2
  6997.  55h-57h reserved
  6998.  58h-5Ch 24-bit ISA memory descriptor 3
  6999.  5Dh-5Fh reserved
  7000.  60h-6Fh I/O configuration registers 0-7
  7001.  70h-71h IRQ channel select 0
  7002.  72h-73h IRQ channel select 1
  7003.  74h-75h DMA configuration registers 0-1
  7004.  76h-7Eh 32-bit memory range configuration register 0
  7005.  7Fh     reserved
  7006.  80h-88h 32-bit memory range configuration register 1
  7007.  89h-8Fh reserved
  7008.  90h-98h 32-bit memory range configuration register 2
  7009.  99h-9Fh reserved
  7010.  A0h-A8h 32-bit memory range configuration register 3
  7011.  A9h-EFh reserved for logical device configuration
  7012.  F0h-FEh vendor-specific
  7013.  FFh    reserved
  7014. Note:    there is one set of these registers per logical device
  7015. SeeAlso: #P182
  7016. ----------P0280------------------------------
  7017. PORT 0280 - LCD display on Wyse 2108 PC
  7018. ----------P02800288--------------------------
  7019. PORT 0280-0288    - non-standard COM port addresses (V20-XT by German magazine c't)
  7020.         selectable from 0280, 0288, 0290, 0298, 6A0, 6A8
  7021. --------s-P02800283--------------------------
  7022. PORT 0280-0283 - Pro Audio Spectrum 16 (PAS16)
  7023. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  7024.       PORT 0388h (default), or PORT 038Ch
  7025. ----------P0288028F--------------------------
  7026. PORT 0288-028F    - non-standard COM port addresses (V20-XT by German magazine c't)
  7027. 0280-0288    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  7028. 0290-0298
  7029. 0298-029F
  7030. --------s-P02840287--------------------------
  7031. PORT 0284-0287 - Pro Audio Spectrum 16 (PAS16)
  7032. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  7033.       PORT 0388h (default), or PORT 038Ch
  7034. --------s-P0288028F--------------------------
  7035. PORT 0288-028F - Pro Audio Spectrum 16 (PAS16)
  7036. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  7037.       PORT 0388h (default), or PORT 038Ch
  7038. --------s-P028C028F--------------------------
  7039. PORT 028C-028F - Pro Audio Spectrum 16 (PAS16)
  7040. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  7041.       PORT 0388h (default), or PORT 038Ch
  7042. ----------P02A002A7--------------------------
  7043. PORT 02A0-02A7 - Sunshine EW-901BN, EW-904BN
  7044.         EPROM writer card (release 1986) for EPROMs up to 27512
  7045. 02A0-02A3    adresses of the 8255 on the EW-90xBN
  7046. ----------P02A202A3--------------------------
  7047. PORT 02A2-02A3 - MSM58321RS clock
  7048. ----------P02A802A9--------------------------
  7049. PORT 02A8-02A9 - Intel 82C212B "Neat" chipset - EMS emulation control
  7050. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  7051. ----------P02AB------------------------------
  7052. PORT 02AB - GI1904 Scanner Interface Adapter (default)
  7053. Range:    PORT 022Bh, PORT 026Bh, PORT 02EBh, PORT 032Bh, PORT 036Bh
  7054. Range:    PORT 03ABh, PORT 03EBh
  7055. Note:    the GI1904 is used by many SPI 400/800dpi gray/halftone/color handy
  7056.       scanners by Marstek, Mustek, Conrad, Völkner and others
  7057. ----------P02AC------------------------------
  7058. PORT 02AC - GS-IF Scanner Interface adapter
  7059. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  7060.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  7061. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  7062.       others use this interface
  7063. ----------P02B002BF--------------------------
  7064. PORT 02B0-02BF - Trantor SCSI adapter
  7065. ----------P02B002DF--------------------------
  7066. PORT 02B0-02DF - alternate EGA,    primary EGA at 03C0
  7067. ----------P02B802B9--------------------------
  7068. PORT 02B8-02B9 - Intel 82C212B "Neat" chipset - EMS emulation control
  7069. Range: base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  7070. ----------P02C002Cx--------------------------
  7071. PORT 02C0-02Cx - AST-clock
  7072. ----------P02C002DF--------------------------
  7073. PORT 02C0-02DF - XT-Real Time Clock 2 (default jumpered address)
  7074. ---------------------------------------------
  7075. PORT 02C0-02CF - EGA (2nd adapter)
  7076. SeeAlso: PORT 03C0h
  7077. --------V-P03C603C9--------------------------
  7078. PORT 02C6-02C9 - VGA/MCGA - DAC REGISTERS (alternate address)
  7079. Range:    PORT 03C6h or PORT 02C6h (alternate)
  7080. SeeAlso: PORT 03C6h
  7081. ----------P02D002DA--------------------------
  7082. PORT 02D0-02DA - C&T 82C570 CHIPSlink '3270' Protocol Controller
  7083. !!!chips\82c570.pdf p.12
  7084. ----------P02E002E8--------------------------
  7085. PORT 02E0-02E8 - LPT port address on the UniRAM card by German magazine c't
  7086. Range:    base address selectable from 0260, 02E0, 02E8, 02F0, 03E0, and 03E8.
  7087. ----------P02E002EF--------------------------
  7088. PORT 02E0-02EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  7089.         (GAB 0 on XT)
  7090. 02E1  ??  GPIB (adapter 0)
  7091. 02E2
  7092. 02E3
  7093. ----------P02E002EF--------------------------
  7094. PORT 02E0-02EF - data aquisition     (AT)
  7095.  
  7096. 02E2  ??  data aquisition (adapter 0)
  7097. 02E3  ??  data aquisition (adapter 0)
  7098. ----------P02E8------------------------------
  7099. PORT 02E8 - S3 86C928 video controller (ELSA Winner 1000)
  7100. ----------P02E802E9--------------------------
  7101. PORT 02E8-02E9 - Intel 82C212B "Neat" chipset - EMS emulation control
  7102. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  7103. ----------P02E802EF--------------------------
  7104. PORT 02E8-02EF - serial port, same as 02F8, 03E8 and 03F8 (COM4)
  7105. ----------P02E802EF--------------------------
  7106. PORT 02E8-02EF - 8514/A and compatible (e.g. ATI Graphics Ultra)
  7107.  
  7108. 02E8  R-  display status
  7109. 02E8  -W  horizontal total
  7110. 02EA  RW  Lookup: DAC mask
  7111. 02EB  -W  Lookup: DAC read index
  7112. 02EC  -W  Lookup: DAC write index
  7113. 02ED  RW  Lookup: DAC data
  7114. ----------P02EA------------------------------
  7115. PORT 02EA - S3 86C928 video controller (ELSA Winner 1000)
  7116. ----------P02EB------------------------------
  7117. PORT 02EB - GI1904 Scanner Interface Adapter
  7118. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 032Bh, PORT 036Bh,
  7119.       PORT 03ABh, PORT 03EBh
  7120. ----------P02EC------------------------------
  7121. PORT 02EC - GS-IF Scanner Interface adapter
  7122. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  7123.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  7124. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  7125.       others use this interface
  7126. ----------P02F002F8--------------------------
  7127. PORT 02F0-02F8 - LPT port address on the UniRAM card by German magazine c't
  7128.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  7129. ----------P02F802FF--------------------------
  7130. PORT 02F8-02FF - serial port, same as 02E8, 03E8 and 03F8 (COM2)
  7131.  
  7132. 02F8  -W  transmitter holding register
  7133. 02F8  R-  receiver buffer register
  7134. 02F8  RW  divisor latch, low byte    when DLAB=1
  7135. 02F9  RW  divisor latch, high byte    when DLAB=1
  7136. 02F9  RW  interrupt enable register when DLAB=0
  7137. 02FA  R-  interrupt identification register
  7138. 02FB  RW  line control register
  7139. 02FC  RW  modem control register
  7140. 02FD  R-  line status register
  7141. 02FF  RW  scratch register
  7142. ----------P0300------------------------------
  7143. PORT 0300 - Award POST Diagnostic
  7144. SeeAlso: PORT 0080h
  7145. --------d-P0300------------------------------
  7146. PORT 0300 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  7147. SeeAlso: PORT 0200h"Digidesign"
  7148. --------s-P03000301--------------------------
  7149. PORT 0300-0301 - MPU-401 MIDI UART
  7150. Range:    alternate address at PORT 0330h, occasionally at PORT 0310h or
  7151.       PORT 0320h
  7152. ----------P03000301--------------------------
  7153. PORT 0300-0301 - Soundblaster 16 ASP MPU-Midi EMULATION
  7154. ----------P0300????--------------------------
  7155. PORT 0300-???? - HP IEC/HP-IB adapter (e.g. for use with tape streamer HP9142)
  7156. ----------P03000303--------------------------
  7157. PORT 0300-0303 - Panasonic 52x CD-ROM SCSI Miniport
  7158. Range:    PORT 0300h-0303h,PORT 0320h-0323h,PORT 0340h-0343h,PORT 0360h-0363h,
  7159.       and PORT 0380h-0383h
  7160. ----------P0300030F--------------------------
  7161. PORT 0300-030F - Philips CD-ROM player CM50
  7162. ----------P0300030F--------------------------
  7163. PORT 0300-030F - CompaQ Tape drive adapter. alternate address at 0100
  7164. --------N-P0300031F--------------------------
  7165. PORT 0300-031F - 3com Ethernet adapters (default address)
  7166. --------N-P0300031F--------------------------
  7167. PORT 0300-031F - NE2000 compatible Ethernet adapters
  7168. Range:    may be placed at 0300h, 0320h, 0340h, or 0360h
  7169. SeeAlso: PORT 0300h"PCnet"
  7170. --------N-P0300031F--------------------------
  7171. PORT 0300-031F - AMD PCnet - NE2100-compatible Ethernet adapters
  7172. Range:    may be placed at 0300h, 0320h, 0340h, or 0360h, with the card's ROM
  7173.       appearing at segment C800h, CC00h, D000h, or D400h, respectively
  7174. Note:    for the PCnet-FAST chip, the I/O address may be read from the PCI
  7175.       configuration space at offset 10h (see #0798 at INT 1A/AX=B10Ah)
  7176. SeeAlso: PORT 0300h"NE2000",#0798
  7177.  
  7178. 0300-030F  R-  address PROM (used to store Ethernet address, etc.)
  7179. 0310w RW  Register Data Port (RDP) (see #P184,#P185)
  7180. 0312w ?W  Register Access Port (RAP) (selects register index for RDP and IDP)
  7181.       (see #P202)
  7182. 0314w ?W  Reset
  7183. 0316w RW  ISA Bus Data Port (IDP)
  7184. 0318w      reserved for vendor-specific use
  7185. 031A-031F      reserved
  7186.  
  7187. (Table P184)
  7188. Values for AMD PCnet-ISA Register Data Port index:
  7189.  00h    "CSR0" status and control flags (see #P186)
  7190.  01h    "CSR1" low half of IADR (appears at PORT 0316h)
  7191.  02h    "CSR2" high half of IADR (appears at PORT 0317h)
  7192.  03h    "CSR3" interrupt masks (see #P187)
  7193.  04h    "CSR4" interrupt masks and status bits (see #P188)
  7194.  08h-0Bh logical address filter
  7195.  0Ch-0Eh physical address register
  7196.  0Fh    "CSR15" mode (see #P192)
  7197.  4Ch    "CSR76" receive descriptor ring length
  7198.  4Eh    "CSR78" transmit descriptor ring length
  7199.  50h    "CSR80" FIFO threshold / DMA burst control (see #P196)
  7200.  52h    "CSR82" DMA bus timer
  7201.  58h    "CSR88" chip ID
  7202.  70h    "CSR112" number of missed packets
  7203.  72h    "CSR114" number of receive collisions
  7204.  7Ch    "CSR124" BMU test register
  7205.         bit 4: accept runt packets
  7206. SeeAlso: #P202,#P185
  7207.  
  7208. (Table P185)
  7209. Values for AMD PCnet-SCSI/PCnet-FAST Register Data Port index:
  7210.  00h    "CSR0" status and control flags (see #P186)
  7211.  01h    "CSR1" low half of IADR (appears at PORT 0316h)
  7212.  02h    "CSR2" high half of IADR (appears at PORT 0317h)
  7213.  03h    "CSR3" interrupt masks (see #P187)
  7214.  04h    "CSR4" interrupt masks and status bits (see #P188)
  7215.  05h    "CSR5" (PCnet-FAST) extended control and interrupt 1 (see #P189)
  7216.  06h    "CSR6" receive/transmit descriptor table lengths (see #P190)
  7217.  07h    "CSR7" (PCnet-FAST) extended control and interrupt 2 (see #P191)
  7218.  08h-0Bh logical address filter
  7219.  0Ch-0Eh physical address register
  7220.  0Fh    "CSR15" mode (see #P192)
  7221.  10h    "CSR16"    alias of CSR1
  7222.  11h    "CSR17"    alias of CSR2
  7223.  12h    "CSR18" low half of current receive buffer address
  7224.  13h    "CSR19" high half of current receive buffer address
  7225.  14h    "CSR20" low half of current transmit buffer address
  7226.  15h    "CSR21" high half of current transmit buffer address
  7227.  16h    "CSR22" low half of next receive buffer address
  7228.  17h    "CSR23" high half of next receive buffer address
  7229.  18h    "CSR24" low half of receive-ring base address
  7230.  19h    "CSR25" high half of receive-ring base address
  7231.  1Ah    "CSR26" low half of next receive descriptor address
  7232.  1Bh    "CSR27" high half of next receive descriptor address
  7233.  1Ch    "CSR28" low half of current receive descriptor address
  7234.  1Dh    "CSR29" high half of current receive descriptor address
  7235.  1Eh    "CSR30" low half of transmit ring base address
  7236.  1Fh    "CSR31" high half of transmit ring base address
  7237.  20h    "CSR32" low half of next transmit descriptor address
  7238.  21h    "CSR33" high half of next transmit descriptor address
  7239.  22h    "CSR34" low half of current transmit descriptor address
  7240.  23h    "CSR35" high half of current transmit descriptor address
  7241.  24h    "CSR36" low half of next next receive descriptor address
  7242.  25h    "CSR37" high half of next next receive descriptor address
  7243.  26h    "CSR38" low half of next next transmit descriptor address
  7244.  27h    "CSR39" high half of next next transmit descriptor address
  7245.  28h    "CSR40" current receive byte count (see #P193)
  7246.  29h    "CSR41" current receive status
  7247.  2Ah    "CSR42" current transmit byte count (see #P194)
  7248.  2Bh    "CSR43" current transmit status
  7249.  2Ch    "CSR44" next receive byte count (bits 11-0; bits 15-12=0)
  7250.  2Dh    "CSR45" next receive status
  7251.  2Eh    "CSR46" transmit poll time counter
  7252.  2Fh    "CSR47" transmit polling interval
  7253.  30h    "CSR48" receive poll time counter
  7254.  31h    "CSR49" receive polling interval
  7255.  32h-39h reserved
  7256.  3Ah    "CSR58" software style (see #P195)
  7257.  3Bh    reserved
  7258.  3Ch    "CSR60" previous transmit descriptor address (low)
  7259.  3Dh    "CSR61" previous transmit descriptor address (high)
  7260.  3Eh    "CSR62" previous transmit byte count (bits 11-0; bits 15-12=0)
  7261.  3Fh    "CSR63" previous transmit status
  7262.  40h    "CSR64" next transmit buffer address (low)
  7263.  41h    "CSR65" next transmit buffer address (high)
  7264.  42h    "CSR66" next transmit byte count (bits 11-0; bits 15-12=0)
  7265.  43h    "CSR67" next transmit status
  7266.  44h-47h reserved
  7267.  48h    "CSR72" receive ring counter
  7268.  49h    reserved
  7269.  4Ah    "CSR74" transmit ring counter
  7270.  4Bh    reserved
  7271.  4Ch    "CSR76" receive descriptor ring length
  7272.  4Dh    reserved
  7273.  4Eh    "CSR78" transmit descriptor ring length
  7274.  4Fh    reserved
  7275.  50h    "CSR80" FIFO threshold / DMA burst control (see #P196)
  7276.  51h    reserved
  7277.  52h    "CSR82" (PCnet-SCSI) DMA bus timer
  7278.         (PCnet-FAST) transmit descriptor address (low)
  7279.  53h    reserved
  7280.  54h    "CSR84" DMA address register (low)
  7281.  55h    "CSR85" DMA address register (high)
  7282.  56h    "CSR86" buffer byte counter (bits 11-0; bits 15-12=0)
  7283.  57h    reserved
  7284.  58h    "CSR88" chip ID (low 16 bits) (see #P197)
  7285.  59h    "CSR89" chip ID (high 16 bits) (see #P197)
  7286.  5Ah    "CSR90" (PCnet-SCSI)
  7287.  5Bh    reserved
  7288.  5Ch    "CSR92" ring length conversion
  7289.  5Dh    reserved
  7290.  5Eh    "CSR94" (PCnet-SCSI)
  7291.  5Fh-63h reserved
  7292.  64h    "CSR100" bus timeout
  7293.  65h-6Fh reserved
  7294.  70h    "CSR112" number of missed packets
  7295.  71h    reserved
  7296.  72h    "CSR114" number of receive collisions
  7297.  73h-79h reserved
  7298.  7Ah    "CSR122" advanced feature control (see #P198)
  7299.  7Bh    reserved
  7300.  7Ch    "CSR124" BMU test register (see #P199)
  7301.  7Dh    "CSR125" (PCnet-FAST) MAC Enhanced Configuration Control (see #P200)
  7302.  7Eh-7Fh reserved
  7303. SeeAlso: #P184,#P224
  7304.  
  7305. Bitfields for AMD PCnet CSR0 status and control flags:
  7306. Bit(s)    Description    (Table P186)
  7307.  15    "ERR"    error; set if BABL, CERR, MISS, or MESS set
  7308.  14    "BABL"    network babbling control
  7309.  13    "CERR"    collision error
  7310.  12    "MISS"    missed frame
  7311.  11    "MERR"    memory error
  7312.  10    "RINT"    receive interrupt
  7313.  9    "TINT"    transmit interrupt
  7314.  8    "IDON"    initialization done
  7315.  7    "INTR"    interrupt flag
  7316.  6    "IENA"    interrupt enable
  7317.  5    "RXON"    recieve ON
  7318.  4    "TXON"    transmit ON
  7319.  3    "TDMD"    transmit demand
  7320.  2    "STOP"    stop -- disable all external activity
  7321.  1    "STRT"    start -- enable extrnal activity
  7322.  0    "INIT"    begin initialization procedure
  7323. SeeAlso: #P184,#P187
  7324.  
  7325. Bitfields for AMD PCnet CSR3 interrupt masks:
  7326. Bit(s)    Description    (Table P187)
  7327.  15    reserved
  7328.  14    "BABLM"    disable babble interrupt
  7329.  13    reserved
  7330.  12    "MISSM" disable missed-frame interrupt
  7331.  11    "MERM"    disable memory-error interrupt
  7332.  10    "RINTM"    disable receive interrupt
  7333.  9    "TINTM" disable transmit interrupt
  7334.  8    "IDONM" disable initialization-done interrupt
  7335.  7-5    reserved
  7336.  4    "DXMT2PD" disable Transmit Two Part Deferral
  7337.  3    "EMBA"    enable modified back-off algorithm
  7338.  2-0    reserved
  7339. Note:    other bits are reserved
  7340. SeeAlso: #P184,#P186,#P188
  7341.  
  7342. Bitfields for AMD PCnet CSR4 interrupt masks and status bits:
  7343. Bit(s)    Description    (Table P188)
  7344.  15    "ENTST"       enable Test Mode / CSR124 access
  7345.  14    "DMAPLUS"  disable CSR80 burst transaction counter
  7346.  13    "TIMER"       enable Bus Timer register
  7347.  12    "DPOLL"       disable transmit polling
  7348.  11    "APADXMT"  Auto-Pad Transmit
  7349.  10    "ASTRPRCV" enable automatic pad stripping
  7350.  9    "MFCO"       missed frame counter has overflowed
  7351.  8    "MFCOM"       disable interrupt on MFCO
  7352.  7    "UINTCMD"  (PCnet-FAST) user interrupt command
  7353.  6    "UINT"       (PCnet-FAST) user interrupt pending
  7354.             write 1 to clear
  7355.  5    "RCVCCO"   receive collision counter has overflowed
  7356.  4    "RCVCCOM"  disable interrupt on RCVCCO
  7357.  3    "TXSTRT"   Transmit Start
  7358.  2    "TXSTRTM"  disable interrupt on TXSTRT
  7359.  1    "JAB"       Jabber error
  7360.  0    "JABM"       disable interrupt on JAB
  7361. SeeAlso: #P184,#P187,#P185
  7362.  
  7363. Bitfields for AMD PCnet-FAST CSR5 extended control and interrupt 1:
  7364. Bit(s)    Description    (Table P189)
  7365.  31-16    reserved
  7366.  15    "TOKINTD"  disable Transmit OK interrupt
  7367.  14    "LTINTEN"  enable Last Transmit interrupt
  7368.  13-12    reserved
  7369.  11    "SINT"       System Interrupt (write 1 to clear)
  7370.  10    "SINTE"       enable System Interrupt
  7371.  9    "SLPINT"   Sleep Interrupt (write 1 to clear)
  7372.  8    "SLPINTE"  enable Sleep Interrupt
  7373.  7    "EXDINT"   Excessive Deferral Interrupt (write 1 to clear)
  7374.  6    "EXDINTE"  enable Excessive Deferral Interrupt
  7375.  5    "MPPLBA"   Magic Packet Physical Logical Broadcast Accept
  7376.  4    "MPINT"       Magic Packet Interrupt (write 1 to clear)
  7377.  3    "MPINTE"   enable Magic Packet Interrupt
  7378.  2    "MPEN"       enable Magic Packet mode
  7379.  1    "MPMODE"   Magic Packet mode active
  7380.  0    "SPND"       Suspend
  7381. SeeAlso: #P185,#P188,#P191
  7382.  
  7383. Bitfields for AMD PCnet CSR6 Descriptor Table Length register:
  7384. Bit(s)    Description    (Table P190)
  7385.  15-12    transmit encoded ring length
  7386.  11-8    receive encoded ring length
  7387.  7-0    reserved
  7388. SeeAlso: #P185,#P189
  7389.  
  7390. Bitfields for AMD PCnet CSR7 Extended Control and Interrupt 2:
  7391. Bit(s)    Description    (Table P191)
  7392.  15    "FASTSPNDE"  enable Fast Suspend
  7393.  14    "RXFRTG"     Receive Frame Tag
  7394.  13    "RDMD"         Receive Demand
  7395.  12    "RXDPOL"     disable receive polling
  7396.  11    "STINT"         Software Timer Interrupt (write 1 to clear)
  7397.  10    "STINTE"     enable Software Timer Interrupt
  7398.  9    "MREINT"     MII Management Read Error Interrupt (write 1 to clear)
  7399.  8    "MREINTE"    enable MII Management Read Error Interrupt
  7400.  7    "MAPINT"     MII Management Auto-Poll Interrupt (write 1 to clear)
  7401.  6    "MAPINTE"    enable MII Management Auto-Poll Interrupt
  7402.  5    "MCCINT"     MII Management Command Complete Interrupt (write 1 to clr)
  7403.  4    "MCCINTE"    enable MII Management Command Complete Interrupt
  7404.  3    "MCCIINT"    MII Management Command Complete Internal Interrupt
  7405.             (write 1 to clear)
  7406.  2    "MCCIINTE"   enable MII Manamagement Command Complete Internal Int.
  7407.  1    "MIIPDTINT"  MII PHY Detect Transition Interrupt (write 1 to clear)
  7408.  0    "MIIPDTINTE" enable MII PHY Detect Transition Interrupt
  7409. SeeAlso: #P185,#P189
  7410.  
  7411. Bitfields for AMD PCnet CSR15 mode flags:
  7412. Bit(s)    Description    (Table P192)
  7413.  15    "PROM"       promiscuous mode
  7414.  14    "DRCVBC"   disable Receive Broadcast
  7415.  13    "DRCVPA"   disable Receive Physical Address
  7416.  12    "DLNKTST"  disable Link Status
  7417.  11    "DAPC"       disable Automatic Polarity Correction
  7418.  10    "MENDECL"  MENDEC loopback mode
  7419.  9    "LRT/TSEL" Low Receive Threshold
  7420.  8-7    "PORTSEL"  Port Select
  7421.         00  AUI
  7422.         01  10Base-T
  7423.         10  GPSI
  7424.         11  reserved
  7425.  6    "INTL"       internal loopback
  7426.  5    "DRTY"       disable retry
  7427.  4    "FCOLL"       force collision
  7428.  3    "DXMTFCS"  disable Transmit CRC
  7429.  2    "LOOP"       enable Loopback
  7430.  1    "DTX"       disable transmitter
  7431.  0    "DRX"       disable receiver
  7432. SeeAlso: #P184,#P188,#P196
  7433.  
  7434. Bitfields for AMD PCnet CSR40 Current Receive Byte Count register:
  7435. Bit(s)    Description    (Table P193)
  7436.  15-12    reserved (0)
  7437.  11-0    current receive byte count (copy of BCNT field of current receive
  7438.       descriptor's RMD1)
  7439. SeeAlso: #P185,#P194
  7440.  
  7441. Bitfields for AMD PCnet CSR42 Current Transmit Byte Count register:
  7442. Bit(s)    Description    (Table P194)
  7443.  15-12    reserved (0)
  7444.  11-0    current transmit byte count (copy of BCNT field of current receive
  7445.       descriptor's TMD1)
  7446. SeeAlso: #P185,#P193
  7447.  
  7448. Bitfields for AMD PCnet CSR58 Software Style register:
  7449. Bit(s)    Description    (Table P195)
  7450.  15-11    reserved (undefined)
  7451.  10    "APERREN"    enabled advanced parity error handling
  7452.  9    "CSRPCNET"    PCnet-ISA compatibility (read-only)
  7453.  8    "SSIZE32"    32-bit software structures for data blocks
  7454.  7-0    "SWSTYLE"    software style
  7455.         00h LANCE/PCnet-ISA (16-bit software structures)
  7456.         01h reserved
  7457.         02h PCnet-PCI (32-bit software)
  7458.         03h PCnet-PCI (32-bit software)
  7459. SeeAlso: #P185
  7460.  
  7461. Bitfields for AMD PCnet CSR80 FIFO threshold and DMA burst control:
  7462. Bit(s)    Description    (Table P196)
  7463.  15-14    reserved
  7464.  13-12    receive FIFO high-water mark; request DMA when N byte available
  7465.     00 = 16 bytes
  7466.     01 = 32 bytes
  7467.     10 = 64 bytes
  7468.  11-10    transmit starting point; start transmission after N bytes written
  7469.     00 = 4 bytes
  7470.     01 = 16 bytes
  7471.     10 = 64 bytes
  7472.     11 = 112 bytes
  7473.  9-8    transmit FIFO low-water mark; start DMA when room for N bytes
  7474.     00 = 8 bytes
  7475.     01 = 16 bytes
  7476.     10 = 32 bytes
  7477.  7-0    DMA burst register
  7478. SeeAlso: #P184,#P192
  7479.  
  7480. Bitfields for AMD PCnet Chip ID register (read-only):
  7481. Bit(s)    Description    (Table P197)
  7482.  31-28    hardware version
  7483.  27-12    part number
  7484.     2623h = Am79C971
  7485.  11-1    manufacturer ID (0001h = AMD)
  7486.  0    reserved (1)
  7487. SeeAlso: #P185
  7488.  
  7489. Bitfields for AMD PCnet CSR122 Advanced Feature Control register:
  7490. Bit(s)    Description    (Table P198)
  7491.  15-1    reserved
  7492.  0    "RCVALGN"    DWORD-align received packets
  7493. SeeAlso: #P185,#P199
  7494.  
  7495. Bitfields for AMD PCnet CSR124 Test Register 1:
  7496. Bit(s)    Description    (Table P199)
  7497.  15-5    reserved
  7498.  4    (PCnet-SCSI) accept runt packets
  7499.  3    (PCnet-FAST) accept runt packets
  7500.  2-0    reserved
  7501. SeeAlso: #P185,#P198
  7502.  
  7503. Bitfields for AMD PCnet-FAST CSR125 MAC Enhanced Configuration Control reg:
  7504. Bit(s)    Description    (Table P200)
  7505.  15-8    inter-packet gap (reducing from default 96 can disrupt network)
  7506.  7-0    inter-frame spacing, part 1
  7507. SeeAlso: #P185
  7508.  
  7509. (Table P201)
  7510. Values for AMD PCnet-ISA ISA Bus Configuration Register index:
  7511.  00h    "MSRDA" width of DMA read signal
  7512.  01h    "MSWRA" width of DMA write signal
  7513.  02h    "MC"    ISA bus configuration (see #P204)
  7514.  05h    "LED1"    LED1 signal control (see #P205)
  7515.  06h    "LED2"    LED2 signal control (see #P205)
  7516.  07h    "LED3"    LED3 signal control (see #P205)
  7517. SeeAlso: #P184,#P224,#P202
  7518.  
  7519. (Table P202)
  7520. Values for AMD PCnet-SCSI Bus Configuration Register index:
  7521.  00h    "MSRDA" width of DMA read signal (reserved)
  7522.  01h    "MSWRA" width of DMA write signal (reserved)
  7523.  02h    "MC"    miscellaneous configuration (see #P204)
  7524.  03h    reserved
  7525.  04h    "LINKST" link status
  7526.  05h    "LED1"    LED1 signal control (see #P205) -- receive status
  7527.  06h    "LED2"    LED2 signal control (see #P205)
  7528.  07h    "LED3"    LED3 signal control (see #P205) -- transmit status
  7529.  08h-0Fh reserved
  7530.  10h    "IOBASEL"
  7531.  11h    "IOBASEU"
  7532.  12h    "BSBC"    burst size and bus control
  7533.  13h    "EECAS" EEPROM Control and Status
  7534.  14h    "SWS"    software style
  7535.  15h    "INTCON" reserved
  7536. SeeAlso: #P185,#P201,#P203
  7537.  
  7538. (Table P203)
  7539. Values for AMD PCnet-FAST Bus Configuration Register index:
  7540.  00h    "MSRDA"        width of DMA read signal (reserved)
  7541.  01h    "MSWRA"        width of DMA write signal (reserved)
  7542.  02h    "MC"        miscellaneous configuration (see #P204)
  7543.  03h    reserved    !!!p.154
  7544.  04h    "LED0"    LED0 status
  7545.  05h    "LED1"    LED1 signal control (see #P205) -- receive status
  7546.  06h    "LED2"    LED2 signal control (see #P205)
  7547.  07h    "LED3"    LED3 signal control (see #P205) -- transmit status
  7548.  08h    reserved
  7549.  09h    "FDC"        full-duplex control
  7550.  0Ah-0Fh reserved
  7551.  10h    "IOBASEL"    I/O base select (lo) -- reserved
  7552.  11h    "IOBASEU"    I/O base select (hi) -- reserved
  7553.  12h    "BSBC"        burst size and bus control
  7554.  13h    "EECAS"        EEPROM Control and Status
  7555.  14h    "SWS"        software style
  7556.  15h    "INTCON"    reserved
  7557.  16h    "PCILAT"    PCI-bus latency
  7558.  17h    "PCISID"    PCI subsystem ID
  7559.  18h    "PCISVID"    PCI subsystem vendor ID
  7560.  19h    "SRAMSIZ"    SRAM size
  7561.  1Ah    "SRAMB"        SRAM boundary
  7562.  1Bh    "SRAMIC"    SRAM interface control
  7563.  1Ch    "EBADDRL"    expansion bus address (low)
  7564.  1Dh    "EBADDRU"    expansion bus address (high)
  7565.  1Eh    "EBD"        expansion bus data port
  7566.  1Fh    "STVAL"        software timer value
  7567.  20h    "MIICAS"    MII control and status
  7568.  21h    "MIIADDR"    MII address
  7569.  22h    "MIIMDR"    MII management data
  7570.  23h    "PCIVID"    PCI vendor ID
  7571. SeeAlso: #P185,#P201,#P202
  7572.  
  7573. Bitfields for AMD PCnet ISA bus configuration:
  7574. Bit(s)    Description    (Table P204)
  7575.  3    EADISEL
  7576.  2    AWAKE
  7577.  1    ASEL
  7578.  0    XMAUSEL
  7579. SeeAlso: #P202,#P205
  7580.  
  7581. Bitfields for AMD PCnet LEDn signal control:
  7582. Bit(s)    Description    (Table P205)
  7583.  15    LEDOUT
  7584.  14-8    reserved
  7585.  7    PSE
  7586.  6-5    reserved
  7587.  4    XMTE
  7588.  3    RVPE
  7589.  2    RCVE
  7590.  1    JABE
  7591.  0    COLE
  7592. SeeAlso: #P202
  7593. ----------P0300031F--------------------------
  7594. PORT 0300-031F - prototype cards
  7595.         Periscope hardware debugger
  7596. ----------P030C030F--------------------------
  7597. PORT 030C-030F - AIMS LAB PC Radio
  7598. Range:    configurable to PORT 020Ch or PORT 030Ch
  7599. Notes:    writing a value with bit 3 set to one of these ports turns on the
  7600.       radio; writing a value with bit 3 clear turns it off
  7601.     PORT 020Eh bits 1 indicates status of some kind
  7602. --------s-P03100311--------------------------
  7603. PORT 0310-0311 - MPU-401 MIDI UART
  7604. Range:    alternate address at PORT 0300h or PORT 0330h, occasionally at
  7605.       PORT 0320h
  7606. ----------P0310031F--------------------------
  7607. PORT 0310-031F - Philips CD-ROM player CM50
  7608. --------s-P03200321--------------------------
  7609. PORT 0320-0321 - MPU-401 MIDI UART
  7610. Range:    alternate address at PORT 0300h or PORT 0330h, occasionally at
  7611.       PORT 0310h
  7612. ----------P03200323--------------------------
  7613. PORT 0320-0323 - XT HDC 1   (Hard Disk Controller)
  7614. SeeAlso: PORT 01F0h-01F7h
  7615.  
  7616. 0320  RW  data register
  7617. 0321  -W  reset controller
  7618. 0321  R-  read controller hardware status (see #P206)
  7619. 0322  R-  read DIPswitch setting on XT controller card
  7620. 0322  -W  generate controller-select pulse
  7621. 0323  -W  write pattern to DMA and INT mask register
  7622.  
  7623. Bitfields for XT hard disk controller hardware status:
  7624. Bit(s)    Description    (Table P206)
  7625.  7-6    always 0
  7626.  5    logical unit number
  7627.  4-2    always 0
  7628.  1    error occurred
  7629.  0    always 0
  7630. ----------P03240327--------------------------
  7631. PORT 0324-0327 - XT HDC 2   (Hard Disk Controller)
  7632. ----------P0328032B--------------------------
  7633. PORT 0328-032B - XT HDC 3   (Hard Disk Controller)
  7634. ----------P032B------------------------------
  7635. PORT 032B - GI1904 Scanner Interface Adapter
  7636. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 036Bh,
  7637.       PORT 03ABh, PORT 03EBh
  7638. ----------P032C------------------------------
  7639. PORT 032C - GS-IF Scanner Interface adapter
  7640. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  7641.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  7642. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  7643.       others use this interface
  7644. ----------P032C032F--------------------------
  7645. PORT 032C-032F - XT HDC 4   (Hard Disk Controller)
  7646. ----------P03300331--------------------------
  7647. PORT 0330-0331 - MPU-401 MIDI UART
  7648. Range:    alternate address at PORT 0300h, occasionally at PORT 0310h or
  7649.       PORT 0320h
  7650.  
  7651. 0330  RW  data register
  7652. 0331  R-  status register (see #P207)
  7653. 0331  -W  command register (see #P208)
  7654. Note:    MPU-401 genarates an interrupt when MIDI code is ready; by reading
  7655.       MIDI code from the data register this interrupt is cleared
  7656.  
  7657. Bitfields for MPU-401 status register:
  7658. Bit(s)    Description    (Table P207)
  7659.  7    input ready
  7660.     =1 no data is available for reading
  7661.     =0 data is available for reading
  7662.  6    output ready
  7663.     =1 not ready to receive command/data byte
  7664.     =0 ready to receive command/data byte
  7665.  5-0    reserved
  7666. Note:    pending input seems to block the output
  7667. SeeAlso: #P208
  7668.  
  7669. (Table P208)
  7670. Values for MPU-401 commands (data go to/from PORT 0330h):
  7671. Command    Description         Results  Parameter
  7672.  01h    send MIDI stop           ACK          -
  7673.  02h    send MIDI start           ACK          -
  7674.  03h    send MIDI continue       ACK          -
  7675.  15h    stop all (recording,       ACK          -
  7676.       playback and MIDI)
  7677.  34h    return timing bytes       ACK          -
  7678.       in stop mode
  7679.  35h    enable mode messages       ACK          -
  7680.       to PC
  7681.  38h    enable system common       ACK          -
  7682.       messages to PC
  7683.  39h    enable real time       ACK          -
  7684.       messages to PC
  7685.  3Ch    use CLS sync           ACK          -
  7686.  3Dh    use SMPTE sync           ACK          -
  7687.  3Fh    enter UART mode           ACK          -
  7688.  80h    use MIDI sync           ACK          -
  7689.  81h    use FSK sync           ACK          -
  7690.  82h    use MIDI sync           ACK          -
  7691.  83h    enable metronome       ACK          -
  7692.  84h    disable metronome       ACK          -
  7693.  87h    enable pitch and       ACK          -
  7694.       controller
  7695.  8Ah    disable data in stopped       ACK          -
  7696.       mode
  7697.  8Bh    enable data in stop mode   ACK          -
  7698.  8Ch    disable measure end       ACK          -
  7699.       messages to host
  7700.  91h    enable ext MIDI control       ACK          -
  7701.  94h    disable clock to host       ACK          -
  7702.  95h    enable clock to host       ACK          -
  7703.  97h    enable system exclusive       ACK          -
  7704.       messages to PC
  7705.  ACh    get MIDI version     ACK,VER      -
  7706.  ADh    get revision         ACK,REV      -
  7707.  Cxh    set timebase to x*24       ACK          -
  7708.       ppqn (x>1)
  7709.  D0h    ???               ACK          -
  7710.  DFh    ???               ACK          -
  7711.  E0h    set tempo           ACK         BPS
  7712.  E4h    set clocks per click       ACK         CPC
  7713.  E6h    set beats per measure       ACK         BPM
  7714.  E7h    send all clocks to host       ACK        1 byte
  7715.                       (04h is sent)
  7716.  FFh    reset               ACK          -
  7717. Notes:    after receiving a command byte MPU-401 must reply with command
  7718.       acknowledge byte FEh in data register
  7719.     command parameters are sent, and response bytes are received through
  7720.       the data register
  7721.     no commands (except reset) can be issued in UART mode, and MPU-401
  7722.       must be reset to leave UART mode
  7723.     Key:
  7724.         ACK    command acknowledge byte (FEh)
  7725.         VER    MIDI version number
  7726.             bits 7-4: major version
  7727.             bits 0-3: minor version
  7728.         REV    revision number
  7729.         BPS    beats per second (8..250)
  7730.         CPC    clocks per click
  7731.         BPM    beats per measure
  7732. SeeAlso: #P208
  7733. ----------P03300333--------------------------
  7734. PORT 0330-0333 - Adaptec 154xB/154xC SCSI adapter (default address)
  7735. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  7736. Note:    BusLogic BT-545S and DTC 3290 seem to be "almost" compatible with
  7737.       the Adaptec AHA-154x
  7738.  
  7739. 0330  R-  status register (see #P209)
  7740. 0330  -W  control register (see #P210)
  7741. 0331  R-  data in register
  7742. 0331  -W  command / data out register (see #P212)
  7743. 0332  R-  interrupt status register (see #P211)
  7744.  
  7745. Bitfields for AHA-154x status register:
  7746. Bit(s)    Description    (Table P209)
  7747.  7    self-test in progress (STST)
  7748.  6    diagnostic failure (DIAGF)
  7749.  5    mailbox initialization required (INIT)
  7750.  4    adapter idle (IDLE)
  7751.  3    command register full (CDF)
  7752.  2    data register full (DF)
  7753.  1    reserved
  7754.  0    invalid command (INVDCMD)
  7755. Note:    data in register should only be read if bit 2 is set
  7756.     command / data out register should only be written if bit 3 is zero
  7757. SeeAlso: #P210,#P211,#P212
  7758.  
  7759. Bitfields for AHA-154x control register:
  7760. Bit(s)    Description    (Table P210)
  7761.  7    hardware reset (HRST)
  7762.  6    software reset (SRST)
  7763.  5    interrupt reset (IRST)
  7764.  4    SCSI bus reset (SCRST)
  7765.  0-3    reserved
  7766. SeeAlso: #P209
  7767.  
  7768. Bitfields for AHA-154x interrupt status register:
  7769. Bit(s)    Description    (Table P211)
  7770.  7    any interrupt (ANYINTR)
  7771.  4-6    reserved
  7772.  3    SCSI reset detected (SCRD)
  7773.  2    host adapter command complete (HACC)
  7774.  1    mailbox out available (MBOA)
  7775.  0    mailbox in full (MBIF)
  7776. SeeAlso: #P209
  7777.  
  7778. (Table P212)
  7779. Values for AHA-154x host adapter commands:
  7780. Command    Description         Parameters              Results
  7781.  00h    no operation         -             -
  7782.  01h    mailbox initializa-  NMB,MBA0,MBA1,MBA2         -
  7783.       tion
  7784.  02h    start SCSI command     -             -
  7785.  03h    start BIOS command   BFN,TRG,CH,CLHH,HL,SN,SC,     -
  7786.                  BA0,BA1,BA2
  7787.  04h    adapter inquiry         -              BT,SOID,RC0,RC1
  7788.  05h    enable mailbox out     1 byte             -
  7789.       interrupt
  7790.  06h    set selection          4    bytes             -
  7791.       timeout
  7792.  07h    set bus on time        BON             -
  7793.  08h    set bus off time    BOFF             -
  7794.  09h    set AT bus transfer    ATBS             -
  7795.       speed
  7796.  0Ah    return installed     -              ID0,ID1,ID2,ID3,
  7797.       devices                      ID4,ID5,ID6,ID7
  7798.  0Bh    return configuration     -              DRQ,IRQ,SID
  7799.       data
  7800.  0Ch    enable target mode    2 bytes             -
  7801.  0Dh    return setup data    NSD              OPT,ATBS,
  7802.                               BON,BOFF,
  7803.                               NMB,MBA0,MBA1,MBA2,
  7804.                               S0,S1,S2,S3,S4,S5,S6,S7,
  7805.                               DS
  7806.  1Ah    write channel 2          3 bytes             -
  7807.       buffer
  7808.  1Bh    read channel 2          3    bytes             -
  7809.       buffer
  7810.  1Ch    write FIFO buffer     3    bytes             -
  7811.  1Dh    read FIFO buffer      3    bytes             -
  7812.  1Fh    echo command data     D             D
  7813.  20h    run adapter         -             -
  7814.       diagnostics
  7815.  21h    set adapter options   ESG,DS             -
  7816.  22h    program EEPROM          35 bytes             -
  7817.       (AHA-1542C)
  7818.  23h    return EEPROM data   ???,NED,EA              EEPROM data
  7819.       (AHA-1542C)                       bytes
  7820.  24h    set shadow RAM           1 byte             -
  7821.       parameters
  7822.       (AHA-1542C???)
  7823.  25h    BIOS mailbox          NMB,MBA0,MBA1,MBA2     -
  7824.       initialization
  7825.       (since AHA-1540B
  7826.       rev. 1.4???)
  7827.  26h    set BIOS bank 1         -             -
  7828.       (AHA-1542C???)
  7829.  27h    set BIOS bank 2         -             -
  7830.       (AHA-1542C???)
  7831.  28h    return extended BIOS     -               F,MBLC
  7832.       information (since
  7833.       AHA-1540B rev.
  7834.       1.4???)
  7835.  29h    enable mailbox          EMB,MBLC             -
  7836.       interface (since
  7837.       AHA-1540B rev.
  7838.       1.4???)
  7839.  82h    start BIOS SCSI         -             -
  7840.       command (since
  7841.       AHA-1540B rev.
  7842.       1.4???)
  7843. Note:    NMB       number of "in" and "out" mailboxes
  7844.     MBA0..MBA2 MSB..LSB of the physical address of the array of mailboxes
  7845.            (see #P213)
  7846.     BFN       BIOS function number
  7847.     TRG       bits 7-5: target ID
  7848.            bits 4-0: reserved
  7849.     CH       bits 7-4: reserved
  7850.            bits 3-0: bits 9-6 of cylinder number
  7851.     CLHH       bits 7-2: bits 5-0 of cylinder number
  7852.            bits 1-0: bits 5-4 of head number
  7853.     HL       bits 7-4: reserved
  7854.            bits 3-0: bits 3-0 of head number
  7855.     SN       sector number - 1
  7856.     SC       sector count
  7857.     BA0..BA2   MSB..LSB of the physical address of data buffer
  7858.     BT       board type
  7859.            20h BusLogic BT-545S
  7860.            31h Adaptec AHA-1540
  7861.            41h Adaptec AHA-1540A/1542A/1542B
  7862.            42h Adaptec AHA-1640
  7863.            43h Adaptec AHA-1542C
  7864.            44h Adaptec AHA-1542CF
  7865.            45h=Adaptec AHA-1542CF with BIOS v2.01
  7866.     SOID       special options ID
  7867.            30h ???
  7868.            41h standard model
  7869.     RC0/RC1       alphanumeric revision code
  7870.     BON       bus on time (time in microseconds adapter stays on the AT
  7871.              bus when transferring data: 2..15, default is 11)
  7872.     BOFF       bus off time (time in microseconds adapter stays off the AT
  7873.              bus when transferring data: 1..64, default is 4)
  7874.     ATBS       AT bus transfer speed
  7875.            00h,AAh 5.0    MB/s
  7876.            01h,99h 6.7    Mb/s
  7877.            02h       8.0    Mb/s
  7878.            03h,88h 10.0 Mb/s
  7879.            04h       5.7    Mb/s
  7880.            BBh       4.0    Mb/s???
  7881.            CCh       3.3    Mb/s???
  7882.            DDh       2.9    Mb/s???
  7883.            EEh       2.5    Mb/s???
  7884.            FFh       2.2    Mb/s???
  7885.     ID0..ID7   bit m in byte IDn is set if SCSI ID n LUN m is online
  7886.     DRQ       DRQ select
  7887.            bit 7:   DRQ7
  7888.            bit 6:   DRQ6
  7889.            bit 5:   DRQ5
  7890.            bit 4-1: reserved
  7891.            bit 0:   DRQ0
  7892.     IRQ       IRQ select
  7893.            bit 7: reserved
  7894.            bit 6: IRQ15
  7895.            bit 5: IRQ14
  7896.            bit 4: IRQ13
  7897.            bit 3: IRQ12
  7898.            bit 2: IRQ11
  7899.            bit 1: IRQ10
  7900.            bit 0: IRQ9
  7901.     SID       host adapter SCSI ID
  7902.     NSD       number of setup data bytes to return
  7903.     OPT       options
  7904.            bit 0: synchronous negotiation
  7905.            bit 1: SCSI parity
  7906.     S0..S7       synchronous transfer timings for target IDs 0..7
  7907.            each byte laid out as follows
  7908.            bit 7:    synchronous timing valid
  7909.            bits 6-4: synchronous transfer period
  7910.            bits 3-0: synchronous offset
  7911.     DS       disconnect status
  7912.            bit n is set if target ID n is unable to disconnect???
  7913.     D       any data byte (it must be echoed back)
  7914.     ESG       enable scatter/gather???
  7915.     NED       number of EEPROM data bytes to return
  7916.     EA       EEPROM address to read data from
  7917.     F       flags
  7918.            bit 3: extended BIOS enabled
  7919.     MBLC       mailbox lock code
  7920.            bit 0: BIOS uses 256 heads 63 sectors LBA to CHS
  7921.               translation???
  7922.     EMB       0 to enable mailbox interface???
  7923. Note:    all commands except 01h, 02h should only be issued if the host adapter
  7924.       is idle (bit 4 in PORT 0330h set)
  7925.     command 02h can be issued even if the command / data out register is
  7926.       full (bit 3 in PORT 0330h may be set)
  7927.     command 02h causes host adapter to scan both its SCSI and BIOS
  7928.       mailboxes; command 82h causes host adapter to scan its BIOS mailboxes
  7929.     all host adapter commands except 02h cause host adapter command
  7930.       complete interrupt (bit 2 in PORT 332h) after their completetion
  7931.     return setup data command (0Dh) returns the number of bytes requested
  7932.       with NSD parameter
  7933.     BusLogic BT-545S gets the adapter inquiry command (04h) wrong returning
  7934.       only one byte instead of four; DTC 3290 gets this command wrong too
  7935. SeeAlso: #P209,#P211
  7936.  
  7937. Format of AHA-154x mailbox array:
  7938. Offset    Size    Description    (Table P213)
  7939.  00h  N*4 BYTEs    array of N "out" mailboxes (see #P214)
  7940.  N*4  N*4 BYTEs    array of N "in" mailboxes (see #P214)
  7941. Notes:    the "out" mailboxes are scanned by the host adapter in a round-robin
  7942.       fashion, i.e. the host adapter first looks into an "out" mailbox
  7943.       which follows one least recently used (and wraps around if it was
  7944.       the last one in the array)
  7945.     array of "in" mailboxes is absent in the case of BIOS mailboxes
  7946. SeeAlso: #P209,#P215,#P216
  7947.  
  7948. Format of AHA-154x mailbox:
  7949. Offset    Size    Description    (Table P214)
  7950.  00h    BYTE    mailbox command/status code (see #P215,#P216)
  7951.  01h  3 BYTEs    address of the command control block (CCB) (see #P217)
  7952.         physical address in big-endian format
  7953. SeeAlso: #P209,#P213
  7954.  
  7955. (Table P215)
  7956. Values for mailbox out command codes:
  7957.  00h    CCB is free
  7958.  01h    start CCB
  7959.  02h    abort CCB
  7960. SeeAlso: #P209,#P213,#P216
  7961.  
  7962. (Table P216)
  7963. Values for mailbox in status codes:
  7964.  00h    command in progress
  7965.  01h    CCB completed
  7966.  02h    CCB aborted
  7967.  03h    CCB abort failed
  7968.  04h    CCB completed with error
  7969. SeeAlso: #P209,#P213,#P215
  7970.  
  7971. Format of AHA-154x command control block (CCB):
  7972. Offset    Size    Description    (Table P217)
  7973.  00h    BYTE    CCB operation code (see #P218)
  7974.  01h    BYTE    address and control
  7975.         bits 5-7: target/initiator ID
  7976.         bit 4:      outbound data
  7977.         bit 3:      inbound data
  7978.         bits 0-2: LUN
  7979.  02h    BYTE    SCSI command length
  7980.  03h    BYTE    request sense allocation length
  7981.         write 0 to disable auto-sense
  7982.  04h  3 BYTEs    data length
  7983.         in big-endian format
  7984.  07h  3 BYTEs    data pointer
  7985.         physical address in big-endian format
  7986.  0Ah  3 BYTEs    link pointer (link to the next CCB for linked commands)
  7987.         physical address in big-endian format
  7988.  0Dh    BYTE    command linking ID (for linked commands)
  7989.         mailbox status code (if this is a CCB in a BIOS mailbox,
  7990.         see #P216)
  7991.  0Eh    BYTE    host adapter status (see #P219)
  7992.  0Fh    BYTE    target device status
  7993.         SCSI status byte
  7994.  10h  2 BYTEs    reserved
  7995.  12h  N BYTEs    SCSI command descriptor block (CDB)
  7996.  12h+N M BYTEs    auto-sense data
  7997. SeeAlso: #P209
  7998.  
  7999. (Table P218)
  8000. Values for CCB type:
  8001.  00h    initiator CCB
  8002.  01h    target CCB
  8003.  02h    initiator CCB with scatter/gather (see #P220)
  8004.  03h    initiator CCB with residual length
  8005.  04h    initiator CCB with scatter/gather and residual length (see #P220)
  8006.  81h    bus device reset CCB
  8007. Note:    residual length is returned in the data length field of CCB
  8008.     initiator CCB with scatter/gather cannot have a zero data length
  8009. SeeAlso: #P209
  8010.  
  8011. (Table P219)
  8012. Values for host adapter status:
  8013.  00h    command complete
  8014.  0Ah    linked command complete (linked CCBs only)
  8015.  0Bh    linked command complete with flag (linked CCBs only)
  8016.  11h    selection time out
  8017.  12h    data overrun/underrun
  8018.  13h    unexpected bus free
  8019.  14h    target bus phase sequence failure
  8020.  15h    invalid mailbox out command
  8021.  16h    invalid CCB operation code
  8022.  17h    linked CCB does not have the same LUN
  8023.  18h    invalid target direction received from host (target mode only)
  8024.  19h    dupilcate CCB received in target mode
  8025.  1Ah    invalid CCB or segment list parameter
  8026. Note:    in the case of target bus sequence failure host adapter will generate
  8027.        a SCSI reset condition, notifying the host with a SCRD interrupt
  8028. SeeAlso: #P209
  8029.  
  8030. Format of AHA-154x scatter/gather segment:
  8031. Offset    Size    Description    (Table P220)
  8032.  00h  3 BYTEs    data length
  8033.         in big-endian format
  8034.  03h  3 BYTEs    data pointer
  8035.         physical address in big-endian format
  8036. SeeAlso: #P209
  8037. ----------P0330033F--------------------------
  8038. PORT 0330-033F - CompaQ SCSI adapter. alternate address at 0130
  8039. --------d-P0330033F--------------------------
  8040. PORT 0330-033F - Philips CD-ROM player CM50
  8041. --------d-P03340337--------------------------
  8042. PORT 0334-0337 - Adaptec 154xB/154xC SCSI adapter.
  8043. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  8044. --------s-P0338------------------------------
  8045. PORT 0338 - AdLib soundblaster card
  8046. --------S-P0338033F--------------------------
  8047. PORT 0338-033F - COM port addresses on UniRAM card by German magazine c't
  8048. Range:    selectable from 0238, 02E8, 02F8, 0338, 03E0, 03E8, 03F8
  8049. ----------P0340034F--------------------------
  8050. PORT 0340-034F - Philips CD-ROM player CM50
  8051. ----------P0340034F--------------------------
  8052. PORT 0340-034F - SCSI (1st Small Computer System Interface) adapter
  8053. Range:    alternate address at 0140-014F
  8054. --------s-P0340------------------------------
  8055. PORT 0340 - Crystal Semiconductor CDB4922 evaluation board
  8056. Desc:    the CDB4922 is an evaluation board for the CS4922 MPEG audio
  8057.       decoder (see I2C xxh"CS4922")
  8058. --------s-P0340034F--------------------------
  8059. PORT 0340-034F - Gravis Ultra Sound by Advanced Gravis
  8060. Range: The I/O address range is dipswitch selectable from:
  8061.        0200-020F and 0300-030F
  8062.        0210-021F and 0310-031F
  8063.        0220-022F and 0320-032F
  8064.        0230-023F and 0330-033F
  8065.        0240-024F and 0340-034F
  8066.        0250-025F and 0350-035F
  8067.        0260-026F and 0360-036F
  8068.        0270-027F and 0370-037F
  8069. Note:    the AMD InterWave chip provides a superset of the UltraSound's
  8070.       functionality, including these ports
  8071. SeeAlso: PORT 0240h-024Fh,PORT 0746h
  8072.  
  8073. 0340  -W  MIDI Control (see #P221)
  8074. 0340  R-  MIDI Status (see #P222)
  8075. 0341  -W  MIDI Transmit Data
  8076. 0341  R-  MIDI Receive Data
  8077. 0342  RW  GF1 Page Register / Voice Select
  8078. 0343  RW  GF1/Global Register Select (see #P223)
  8079. 0344  RW  GF1/Global Data Low Byte (16 bits)
  8080. 0345  RW  GF1/Global Data High Byte (8 bits)
  8081. 0346  -W  Mixer Data Port
  8082. 0347  RW  GF1 DRAM
  8083.          Direct Read Write at Loction pointed with regs 43 and 44
  8084.  
  8085. Bitfields for Gravis Ultra Sound MIDI control register:
  8086. Bit(s)    Description    (Table P221)
  8087.  7       Receive IRQ (1 = enabled)
  8088.  5-6   Xmit IRQ
  8089.  0-1   Master Reset (1 = enabled)
  8090. SeeAlso: #P178,#P180,#P222
  8091.  
  8092. Bitfields for Gravis Ultra Sound MIDI status register:
  8093. Bit(s)    Description    (Table P222)
  8094.  7    Interrupt pending
  8095.  5    Overrun Error
  8096.  4    Framing Error
  8097.  1    Transmit Register Empty
  8098.  0    Receive Register Empty
  8099. SeeAlso: #P221,#P223
  8100.  
  8101. (Table P223)
  8102. Values for Gravis Ultra Sound GF1/Global Registers:
  8103. ---Voice specific registers---
  8104.  00h  w        Voice Control (see #P225)
  8105.  01h  w        Frequency Control
  8106.          bit 15-10     Integer Portion
  8107.          bit 9-1     Fractional Portion
  8108.  02h  w        Start Address HIGH
  8109.          bit 12-0     Address Lines 19-7
  8110.  03h  w        Start Address LOW
  8111.          bit 15-9     Address Lines 6-0
  8112.          bit 8-5     Fractional Part of Start Address
  8113.  04h  w        End Address HIGH
  8114.          bit 12-0     Address Lines 19-7
  8115.  05h  w        End Address LOW
  8116.          bit 15-9     Address Lines 6-0
  8117.          bit 8-5     Fractional Part of End Address
  8118.  06h  w        Volume Ramp Rate
  8119.          bit 5-0     Amount added
  8120.          bit 7-6     Rate
  8121.  07h  w        Volume Ramp Start
  8122.          bit 7-4     Exponent
  8123.          bit 3-0     Mantissa
  8124.  08h  w        Volume Ramp End
  8125.          bit 7-4     Exponent
  8126.          bit 3-0     Mantissa
  8127.  09h  w        Current Volume
  8128.          bit 15-12     Exponent
  8129.          bit 11-4     Mantissa
  8130.  0Ah  w        Current Address HIGH
  8131.          bit 12-0     Address Lines 19-7
  8132.  0Bh  w        Current Address LOW
  8133.          bit 15-9     Address Lines 6-0
  8134.          bit 8-0     Fractional Position
  8135.  0Ch  w        Pan Position
  8136.          bit 3-0     Pan Postion
  8137.  0Dh  w        Volume Control (see #P226)
  8138.  0Eh  w        Active Voices
  8139.          bit 5-0     #Voices -1  (allowed 13 - 31)
  8140.  0Fh  w        IRQ Source Register (see #P227)
  8141. ---NOT voice specific---
  8142.  41h  r/w   DRAM DMA Control (see #P228)
  8143.  42h  w        DMA Start Address
  8144.          bits 15-0     DMA Address Lines 19-4
  8145.  43h  w        DRAM I/O Address LOW
  8146.  44h  w        DRAM I/O Address HIGH
  8147.          bits 0-3     Upper 4 Address Lines
  8148.  45h  r/w   Timer Control
  8149.          bit 3     Enable Timer 2
  8150.          bit 2     Enable Timer 1
  8151.  46h  w        Timer 1 Count (granularity of 80 micro sec)
  8152.  47h  w        Timer 2 Count (granulatity of 320 micro sec)
  8153.  48h  w        Sampling Frequency
  8154.          rate = 9878400 / (16 * (FREQ + 2))
  8155.  49h  r/w   Sampling Control (see #P229)
  8156.  4Bh  w        Joystick Trim DAC
  8157.  4Ch  r/w   RESET
  8158.          bit 2     GF1 Master IRQ Enable
  8159.          bit 1     DAC Enable
  8160.          bit 0     Master Reset
  8161. ---Voice specific registers---
  8162.  80h  r        Voice Control (see 00h)
  8163.  81h  r        Frequency Control (see 01h)
  8164.  82h  r        Start Address HIGH (see 02h)
  8165.  83h  r        Start Address LOW (see 03h)
  8166.  84h  r        End Address HIGH (see 04h)
  8167.  85h  r        End Address LOW (see 05h)
  8168.  86h  r        Volume Ramp Rate (see 06h)
  8169.  87h  r        Volume Ramp Start (see 07h)
  8170.  88h  r        Volume Ramp End (see 08h)
  8171.  89h  r        Current Volume (see 09h)
  8172.  8Ah  r        Current Address HIGH (see 0Ah)
  8173.  8Bh  r        Current Address LOW (see 0Bh)
  8174.  8Ch  r        Pan Position (see 0Ch)
  8175.  8Dh  r        Volume Control (see 0Dh)
  8176.  8Eh  r        Active Voices (see 0Eh)
  8177.  8Fh  r        IRQ Status (see 0Fh)
  8178. SeeAlso: #P222,#P224
  8179.  
  8180. (Table P224)
  8181. Values for InterWave synthesizer registers:
  8182. ---voice-specific registers---
  8183.  10h  w        synthesizer     upper address
  8184.  11h  w        synthesizer effects address high (16 bits)
  8185.  12h  w        synthesizer effects address low (16 bits)
  8186.  13h  w        synthesizer left offset (16 bits)
  8187.  14h  w        synthesizer effects output accumulator select
  8188.  15h  w        synthesizer mode select
  8189.  16h  w        synthesizer effects volume (16 bits)
  8190.  17h  w        synthesizer frequency LFO
  8191.  18h  w        synthesizer volume LFO
  8192. ---NOT voice-specific---
  8193.  19h  w        synthesizer global mode
  8194.  1Ah  w        synthesizer LFO base address (16 bits)
  8195. ---voice-specific registers---
  8196.  1Bh  w        synthesizer right offset (16 bits)
  8197.  1Ch  w        synthesizer left offset (16 bits)
  8198.  1Dh  w        synthesizer effect volume final (16 bits)
  8199. ---NOT voice-specific---
  8200.  41h  r/w   local memory control: DMA control
  8201.  42h  r/w   local memory control: DMA start address bits 19-4 (16 bits)
  8202.  43h  w        local memory control: I/O address low (16 bits)
  8203.  44h  w        local memory control: I/O address high (16 bits)
  8204.  45h  r/w   AdLib/SoundBlaster control
  8205.  46h  r/w   AdLib timer 1
  8206.  47h  r/w   AdLib timer 2
  8207.  49h  r/w   ADC sample control
  8208.  4Bh  r/w   joystick trim
  8209.  4Ch  w        GUS reset
  8210.  50h  r/w   local memory control: DMA start address bits 23-20/3-0 (16 bits)
  8211.  51h  r/w   local memory control: 16-bit access
  8212.  52h  r/w   local memory control: configuration
  8213.  53h  r/w   local memory control: control
  8214.  54h  r/w   local memory control: record FIFO base address bits 23-8 (16-bit)
  8215.  55h  r/w   local memory control: playback FIFO base address bits 23-8 (16-bit)
  8216.  56h  r/w   local memory control: FIFO size (16-bit)
  8217.  57h  r/w   local memory control: DMA interleave control (16-bit)
  8218.  58h  r/w   local memory control: DMA interleaev base address bits 23-8
  8219.  59h  r/w   compatibility control
  8220.  5Ah  r/w   decode control
  8221.  5Bh  r/w   version number
  8222.  5Ch  r/w   MPU-401 emulation control A
  8223.  5Dh  r/w   MPU-401 emulation control B
  8224.  5Eh  w        MIDI receive FIFO access
  8225.  5Fh  -        reserved
  8226.  60h  r/w   emulation IRQ
  8227. ---voice-specific registers---
  8228.  90h  r        synthesizer     upper address
  8229.  91h  r        synthesizer effects address high (16 bits)
  8230.  92h  r        synthesizer effects address low (16 bits)
  8231.  93h  r        synthesizer left offset (16 bits)
  8232.  94h  r        synthesizer effects output accumulator select
  8233.  95h  r        synthesizer mode select
  8234.  96h  r        synthesizer effects volume (16 bits)
  8235.  97h  r        synthesizer frequency LFO
  8236.  98h  r        synthesizer volume LFO
  8237. ---NOT voice-specific---
  8238.  99h  r        synthesizer global mode
  8239.  9Ah  r        synthesizer LFO base address (16 bits)
  8240. ---voice-specific registers---
  8241.  9Bh  r        synthesizer right offset (16 bits)
  8242.  9Ch  r        synthesizer left offset (16 bits)
  8243.  9Dh  r        synthesizer effect volume final (16 bits)
  8244. ---NOT voice-specific---
  8245.  9Fh  r        synthesizer voices IRQ
  8246. Note:    these registers are *in*addition* to the Gravis UltraSound registers
  8247. SeeAlso: #P223
  8248.  
  8249. Bitfields for Gravis Ultra Sound voice control global register:
  8250. Bit(s)    Description    (Table P225)
  8251.  7     IRQ pending
  8252.  6     Direction
  8253.  5     Enable WAVE IRQ
  8254.  4     Enable bi-directional Looping
  8255.  3     Enable Looping
  8256.  2     Size data (8/16 bits)
  8257.  1     Stop Voice
  8258.  0     Voice Stopped
  8259. SeeAlso: #P223,#P226
  8260.  
  8261. Bitfields for Gravis Ultra Sound volume control global register:
  8262. Bit(s)    Description    (Table P226)
  8263.  7     IRQ Pending
  8264.  6     Direction
  8265.  5     Enable Volume Ramp IRQ
  8266.  4     Enable bi-directional Looping
  8267.  3     Enable Looping
  8268.  2     Rollover Condition
  8269.  1     Stop Ramp
  8270.  0     Ramp Stopped
  8271. SeeAlso: #P223,#P225
  8272.  
  8273. Bitfields for Gravis Ultra Sound IRQ source register:
  8274. Bit(s)    Description    (Table P227)
  8275.  7     WaveTable IRQ pending
  8276.  6     Volume Ramp IRQ pending
  8277.  4-0     Voice Number
  8278. SeeAlso: #P223,#P225,#P228
  8279.  
  8280. Bitfields for Gravis Ultra Sound DRAM DMA control register:
  8281. Bit(s)    Description    (Table P228)
  8282.  7     Invert MSB
  8283.  6     Data Size (8/16 bits)
  8284.  5     DMA Pending
  8285.  3-4     DMA Rate Divider
  8286.  2     DMA Channel Width (8/16 bits)
  8287.  1     DMA Direction (1 = read)
  8288.  0     DMA Enable
  8289. SeeAlso: #P223,#P227
  8290.  
  8291. Bitfields for Gravis Ultra Sound sampling control register:
  8292. Bit(s)    Description    (Table P229)
  8293.  7     Invert MSB
  8294.  6     DMA IRQ pending
  8295.  5     DMA IRQ enable
  8296.  2     DMA width (8/16 bits)
  8297.  1     Mode (mone/stereo)
  8298.  0     Start Sampling
  8299. SeeAlso: #P223
  8300. ----------P03400357--------------------------
  8301. PORT 0340-0357 - RTC (1st Real Time Clock for XT)
  8302.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  8303. Range:    alternate at 0240-0257
  8304. SeeAlso:  PORT 0240h-0257h
  8305.  
  8306. 0340  RW  0.001 seconds        0-99
  8307. 0341  RW  0.1 and 0.01 seconds    0-99
  8308. 0342  RW  seconds        0-59
  8309. 0343  RW  minutes        0-59
  8310. 0343  RW  hours            0-23
  8311. 0345  RW  day of week        1-7
  8312. 0346  RW  day of month        1-31
  8313. 0347  RW  month            1-12
  8314. 0348  RW  RAM (upper nybble only)
  8315. 0349  RW  year            0-99
  8316. 034A  RW  RAM last month storage
  8317. 034B  RW  RAM year storage (-80)
  8318. 034C  RW  RAM reserved
  8319. 034D  RW  RAM not used
  8320. 034E  RW  RAM not used
  8321. 034F  RW  RAM not used
  8322. 0350  R-  interrupt status register
  8323. 0351  -W  interrupt control register
  8324. 0352  -W  counter reset
  8325. 0353  -W  RAM reset
  8326. 0354  R-  status bit
  8327. 0355  -W  GO command
  8328. 0356  ??  standby interrupt
  8329. 0357  ??  test mode
  8330. ----------P03480357--------------------------
  8331. PORT 0348-0357 - DCA 3278
  8332. ----------P034C034F--------------------------
  8333. PORT 034C-034F - Gravis UltraMax by Advanced Gravis
  8334. Range:    The I/O address range is dipswitch selectable from:
  8335.        0200-020F and 0300-030F
  8336.        0210-021F and 0310-031F
  8337.        0220-022F and 0320-032F
  8338.        0230-023F and 0330-033F
  8339.        0240-024F and 0340-034F
  8340.        0250-025F and 0350-035F
  8341.        0260-026F and 0360-036F
  8342.        0270-027F and 0370-037F
  8343. ----------P035A035B--------------------------
  8344. PORT 035A-035B - Adaptec AH1520 jumper settings
  8345.  
  8346. 035A  R      I/O channel setup (see #P230)
  8347. 035B  R      transfer mode setup (see #P231)
  8348.  
  8349. Bitfields for Adaptec AH1520 channel setup jumper settings:
  8350. Bit(s)    Description    (Table P230)
  8351.  7    SCSI parity disabled
  8352.  6-5    DMA channel (00 = channel 0, 01 = 5, 10 = 6, 11 = 7)
  8353.  4-3    IRQ number (00 = IRQ9, 01 = IRQ10, 10 = IRQ11, 11 = IRQ12)
  8354.  2-0    SCSI ID
  8355. SeeAlso: #P231
  8356.  
  8357. Bitfields for Adaptec AH1520 transfer mode setup jumper settings:
  8358. Bit(s)    Description    (Table P231)
  8359.  7    DMA transfer mode (clear for PIO)
  8360.  6    boot enabled
  8361.  5-4    boot type
  8362.     00 ???
  8363.     01 boot from floppy
  8364.     10 print configured options
  8365.     11 boot from hard disk
  8366.  3    enable sync negotiation
  8367.  2    enable target disconnection
  8368.  1-0    unused???
  8369. SeeAlso: #P230
  8370. ----------P035F------------------------------
  8371. PORT 035F - ARTEC Handyscanner A400Z.  alternate address at 15F.
  8372. ----------P03600367--------------------------
  8373. PORT 0360-0367 - PC network (XT only)
  8374. ----------P0360036F--------------------------
  8375. PORT 0360-036F - PC network (AT)
  8376. ----------P0360036F--------------------------
  8377. PORT 0360-036F - National Semiconductor DP8390(1)C/NS3249C network chipset
  8378. Note:    cards based on this IEEE 802.3 networking chipset can use any range
  8379.       of 16 consecutive addresses, and provide a total of four pages of
  8380.       sixteen registers (see #P232,#P233,#P234,#P299)
  8381.  
  8382. (Table P232)
  8383. Values for NS DP8390C/NS3249C network chipset Page 0 registers:
  8384. Number    Read Register                Write Register
  8385.  00h    Command reg. (see #P236)    CR    Command reg.        CR
  8386.  01h    current local DMA address 0    CLDA0    page start reg.        PSTART
  8387.  02h    current local DMA address 1    CLDA1    page stop reg.        PSTOP
  8388.  03h    boundary pointer        BNRY    boundary pointer    BNRY
  8389.  04h    transmit status reg.        TSR    Tx page start address    TPSR
  8390.  05h    number of collisions reg.    NCR    Tx byte count reg.0    TBCR0
  8391.  06h    FIFO                    Tx byte count reg.1    TBCR1
  8392.  07h    interrupt status reg.        ISR    interrupt status reg.    ISR
  8393.  08h    current remote DMA address 0    CRDA0    remote start addr.reg.0 RSAR0
  8394.  09h    current remote DMA address 1    CRDA1    remote start addr.reg.1 RSAR1
  8395.  0Ah    reserved                remote byte count reg.0 RBCR0
  8396.  0Bh    reserved                remote byte count reg.1 RBCR1
  8397.  0Ch    receive status reg.        RSR    Rx configuration reg.    RCR
  8398.  0Dh    tally counter 0 (frame errors)    CNTR0    Tx configuration reg.    TCR
  8399.  0Eh    tally counter 1 (CRC errors)    CNTR1    data configuration reg. DCR
  8400.  0Fh    tally counter 2 (missed pkt)    CNTR2    interrupt mask reg.    IMR
  8401. SeeAlso: #P233,#P234,#P235
  8402.  
  8403. (Table P233)
  8404. Values for NS DP8390C/NS3249C network chipset Page 1 registers:
  8405. Number    Read/Write
  8406.  00h    Command            CR (see #P236)
  8407.  01h    physical address reg.0    PAR0
  8408.  02h    physical address reg.1    PAR1
  8409.  03h    physical address reg.2    PAR2
  8410.  04h    physical address reg.3    PAR3
  8411.  05h    physical address reg.4    PAR4
  8412.  06h    physical address reg.5    PAR5
  8413.  07h    current page reg.    CURR
  8414.  08h    multicast address reg.0 MAR0
  8415.  09h    multicast address reg.1 MAR1
  8416.  0Ah    multicast address reg.2 MAR2
  8417.  0Bh    multicast address reg.3 MAR3
  8418.  0Ch    multicast address reg.4 MAR4
  8419.  0Dh    multicast address reg.5 MAR5
  8420.  0Eh    multicast address reg.6 MAR6
  8421.  0Fh    multicast address reg.7 MAR7
  8422. SeeAlso: #P232,#P234,#P235
  8423.  
  8424. (Table P234)
  8425. Values for NS DP8390C/NS3249C network chipset Page 2 registers:
  8426. Number    Read Register                Write Register
  8427.  00h    Command                CR    Command             CR
  8428.  01h    page start reg.            PSTART    current local DMA addr.0 CLDA0
  8429.  02h    page stop reg.            BPSTOP    current local DMA addr.1 CLDA1
  8430.  03h    remote next packet pointer        remote next packet pointer
  8431.  04h    Tx page start address        TPSR    reserved
  8432.  05h    local next packet pointer        local next packet pointer
  8433.  06h    address counter (upper)            address counter (upper)
  8434.  07h    address counter (lower)            address counter (lower)
  8435.  08h    reserved                reserved
  8436.  09h    reserved                reserved
  8437.  0Ah    reserved                reserved
  8438.  0Bh    reserved                reserved
  8439.  0Ch    Rx configuration reg.        RCR    reserved
  8440.  0Dh    Tx configuration reg.        TCR    reserved
  8441.  0Eh    data configuration reg.        DCR    reserved
  8442.  0Fh    interrupt mask reg.        IMR    reserved
  8443. Note:    this is a diagnostics page, and should never be modfied under normal
  8444.       operation.
  8445. SeeAlso: #P232,#P233,#P235
  8446.  
  8447. (Table P235)
  8448. Values for NS DP8390C/NS3249C network chipset Page 3 registers:
  8449. Number    Read Register                Write Register
  8450.  00h    Command CR (see #P236)            Command CR
  8451. Note:    Test Page - should never be modified!
  8452. SeeAlso: #P232,#P233,#P234
  8453.  
  8454. Bitfields for NS DP8390C/NS3249C network chipset command register (00h):
  8455. Bit(s)    Description    (Table P236)
  8456.  0    software reset command (1=offline, 0=online)
  8457.  1    do not activate NIC after reset command
  8458.  2    start transmision of a packet
  8459.  3-5    remote DMA command
  8460.     000 not allowed
  8461.     001 remote read
  8462.     010 remote write
  8463.     011 send packet
  8464.     1xx abort/complete rmote DMA
  8465.  6-7    page select
  8466.     00 register page 0
  8467.     01 register page 1
  8468.     10 register page 2
  8469.     11 register page 3
  8470. SeeAlso: #P235
  8471. ----------P036B------------------------------
  8472. PORT 036B - GI1904 Scanner Interface Adapter
  8473. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  8474.       PORT 03ABh, PORT 03EBh
  8475. ----------P036C------------------------------
  8476. PORT 036C - GS-IF Scanner Interface adapter
  8477. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  8478.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  8479. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  8480.       others use this interface
  8481. ----------P03700377--------------------------
  8482. PORT 0370-0377 - FDC 2    (2nd Floppy Disk Controller)    first FDC at 03F0
  8483. Note:    floppy disk controller is usually an 8272, 8272A, NEC765 (or
  8484.       compatible), or an 82072 or 82077AA for perpendicular recording at
  8485.       2.88M
  8486. SeeAlso: PORT 03F0h-03F7h
  8487.  
  8488. 0370  R-  diskette Extra High Density controller board jumpers (AT)
  8489. 0370  R-  diskette controller status A (PS/2, PS/2 model 30)
  8490. 0371  R-  diskette controller status B (PS/2, PS/2 model 30)
  8491. 0372  -W  diskette controller DOR (Digital Output Register)
  8492. 0374  R-  diskette controller main status register
  8493. 0374  -W  diskette controller datarate select register
  8494. 0375  RW  diskette controller command/data register
  8495. 0376  RW  (2nd FIXED disk controller status/data register)
  8496. 0377  RW  (2nd FIXED disk controller drive address register)
  8497. 0377  R-  diskette controller DIR (Digital Input Register)
  8498. 0377  -W  select register for diskette data transfer rate
  8499. ----------P0378------------------------------
  8500. PORT 0378 - Covox 'Speech Thing' COMPATIBLE SPEECH OUTPUT
  8501. SeeAlso: PORT 022Fh"mc-soundmachine",PORT 0388h-038Fh"soundmachine"
  8502.  
  8503. 0378  -W  speech output via printer port
  8504.       (with mc-soundmachine, enabled if bit4=1 in 38F)
  8505. ----------P0378037A--------------------------
  8506. PORT 0378-037A - PARALLEL PRINTER PORT (usually LPT2, sometimes LPT3)
  8507. Range:    usually PORT 03BCh, PORT 0278h, or PORT 0378h
  8508. SeeAlso: MEM 0040h:000Ah,INT 17/AH=00h
  8509.  
  8510. 0378  -W  data port
  8511. 0379  R-  status port (see #P263 at PORT 03BCh)
  8512. 037A  RW  control port (see #P264 at PORT 03BCh)
  8513.  
  8514. 037B  ??  bit 7: shadow RAM on/off (UniRAM adapter,according to c't 7/90)
  8515. ----------P0378037F--------------------------
  8516. PORT 0378-037F - Intel 82360SL/82091AA - EPP-mode PARALLEL PORT
  8517. Range:    PORT 0278h or PORT 0378h
  8518. SeeAlso: PORT 0278h"LPT1",PORT 0778h"ECP"
  8519.  
  8520. 0378-037A    as for standard parallel port
  8521. 037B  RW  address strobe
  8522. 037C  RW  data strobe 0
  8523. 037D  RW  data strobe 1
  8524. 037E  RW  data strobe 2
  8525. 037F  RW  data strobe 3
  8526. ----------P037C037F--------------------------
  8527. PORT 037C-037F - C&T F87000 Multi-Mode Peripheral Chip - OUTPUT PORTS
  8528.  
  8529. 037C  -W  outputs driven to keyboard outputs COL7-COL0
  8530. 037C  R-  inputs driven by keyboard pins ROW7-ROW0
  8531. 037D  -W  outputs driven to keyboard outputs COL15-COL8
  8532. 037E  -W  outputs driven to pins P2[7-1]; bit 0 enables UART clock when low
  8533. 037F  -W  external output port
  8534. ----------P0380038F--------------------------
  8535. PORT 0380-038F - 2nd BSC (Binary Synchronous Communication) adapter
  8536. SeeAlso:  PORT 03A0h"BSC"
  8537. ----------P0380038C--------------------------
  8538. PORT 0380-038C - 2nd SDLC (Synchronous Data Link Control) adapter
  8539. Notes:    Initialization of the SDLC adapter is performed in a typical
  8540.       sequence like this: Setup 8255 port A-C configuration by writing
  8541.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  8542.       to 382h. Reset 8273 internal registers by pulsing 8255 port B4.
  8543.       After this the 8253 has to be programmed to the desired values
  8544.       (counter 0 in mode 3). Now the 8273 is ready to be configured for
  8545.       the operating mode that defines the communication environment in
  8546.       which it will be used.
  8547.     Note on 8273: Each 8273 protocol controllers internal register is
  8548.       programmed by individual set/reset commands (via 388h) in
  8549.       conjunction with a parameter (via 389h) that give an OR/AND mask
  8550.       to the internal register value.
  8551.       Although the 8273 is a full duplex device, there is only one
  8552.       command register. Thus, the command register must be used for
  8553.       only one command sequence at a time and the transmitter and
  8554.       receiver may never be simultaneously in a command phase.
  8555.       The system software starts the command phase by writing a command
  8556.       byte into the command register. If further information is required
  8557.       by the 8273 prior to execution of the command, the system software
  8558.       must write the list of parameters into the parameter register.
  8559. SeeAlso: PORT 03A0h"SDLC"
  8560.  
  8561. 0380  R-   on adapter 8255(A5) port A: internal/external sensing (see #P237)
  8562. 0381  -W   on adapter 8255(A5) port B: external modem interface (see #P238)
  8563. 0382  RW   on adapter 8255(A5) port C: internal control (see #P239)
  8564. 0383  ?W   on adapter 8255(A5) mode initialization
  8565. 0384  RW   on adapter 8253 (programmable counter) counter 0:
  8566.         LSB / MSB square wave generator (input for timer 2, connected
  8567.           to 8255 bitC5)
  8568. 0385  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  8569.         (connected to 8255 bitA7, IRQ4 level)
  8570. 0386  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  8571.         (connected to 8255 bitA6, IRQ4 level)
  8572. 0387  ?W   on adapter 8253 mode register (see #P240)
  8573. 0388  R-   on adapter 8273 status register (see #P241)
  8574. 0388  -W   on adapter 8273 command register (see #P242)
  8575. 0389  R-   on adapter 8273 (immediate) result register (see #P249)
  8576. 0389  -W   on adapter 8273 parameter register
  8577.         Commands issued via PORT 0388h may need additional parameters,
  8578.           which have to be passed through this port (see table).
  8579. 038A  R-   on adapter 8273 transmit INT status (DMA/INT)
  8580. 038A  -W   on adapter 8274 reset
  8581. 038B  R-   on adapter 8273 receive INT status (DMA/INT)
  8582. 038C  -W   on adapter 8273 data: direct program control (DPC)
  8583.       scratch-pad
  8584.  
  8585. Bitfields for SDLC 8255 port A:
  8586. Bit(s)    Description    (Table P237)
  8587.  7    =1 timer 1 output active
  8588.  6    =1 timer 2 output active
  8589.  5    =1 modem status changed
  8590.  4    receive clock active (if pulsing)
  8591.  3    =0 clear to send is on from interface
  8592.  2    transmit clock active (if pulsing)
  8593.  1    =0 data carrier detect is on from interface
  8594.  0    =0 ring indicator is on from interface
  8595. SeeAlso: #P238,#P239
  8596.  
  8597. Bitfields for SDLC 8255 port B:
  8598. Bit(s)    Description    (Table P238)
  8599.  7    enable IRQ 4 level interrupt
  8600.  6    =1 gate timer 1
  8601.  5    =1 gate timer 2
  8602.  4    =1 reset 8273
  8603.  3    =1 reset modem status changed logic
  8604.  2    =0 turn on test
  8605.  1    =0 turn on select standby at modem interface
  8606.  0    =0 turn on data signal rate select at modem interface
  8607. SeeAlso: #P237,#P239
  8608.  
  8609. Bitfields for SDLC 8255 port C:
  8610. Bit(s)    Description    (Table P239)
  8611.  7 R-    =? not used (detection: =1 SDLC, =0 may be SDLC or BSC??)
  8612.  6 R-    =0 test indicate active
  8613.  5 R-    timer 0 output (if pulsing)
  8614.  4 R-    receive data (if pulsing)
  8615.  3 -W    =0 gate interrupts 3 and 4
  8616.  2 -W    =1 electronic wrap
  8617.  1 -W    =1 gate external clock
  8618.  0 -W    =1 gate internal clock
  8619. SeeAlso: #P237,#P238
  8620.  
  8621. Bitfields for SDLC 8253 mode register:
  8622. Bit(s)    Description    (Table P240)
  8623.  7-6    SC1-SC0     00, 01, 10= select counter 0,1,2; 11=illegal
  8624.  5-4    RL1-RL0     00= couner latching operation
  8625.          01= read/load most significant byte (MSB)
  8626.          10= read/load least significant byte (LSB)
  8627.          11= read/load LSB first, then MSB
  8628.  3-1    M2-M0     000= mode 0
  8629.          001= mode 1
  8630.          x10= mode 2
  8631.          x11= mode 3
  8632.          100= mode 4
  8633.          101= mode 5
  8634.  0    BCD     0= binary counter 16bits
  8635.          1= BCD counter 4 decades
  8636.  
  8637. Bitfields for SDLC 8273 status register:
  8638. Bit(s)    Description    (Table P241)
  8639.  7    =1 command busy (CBSY)
  8640.  6    =1 command buffer full (CBF)
  8641.  5    =1 command parameter buffer full (CPBF)
  8642.  4    =1 command result buffer full (CRBF)
  8643.  3    =1 Rx interupt (RxINT)
  8644.  2    =1 Tx interupt (TxINT)
  8645.  1    =1 RxINT result available (RxIRA)
  8646.  0    =1 TxINT result available (TxIRA)
  8647. SeeAlso: #P242
  8648.  
  8649. (Table P242)
  8650. Values for SDCL 8273 command register:
  8651.  commands:           parameters:    results:   result port: int:
  8652.   A4: set one-bit delay        set mask     -           -    no
  8653.   64: reset one-bit delay   reset mask     -           -    no
  8654.   97: set data transfer        set mask     -           -    no
  8655.   57: reset data transfer   reset mask     -           -    no
  8656.   91: set operating mode    set mask     -           -    no
  8657.   51: reset operating mode  reset mask     -           -    no
  8658.   A0: set serial I/O mode   set mask     -           -    no
  8659.   60: reset serial I/O mode reset mask     -           -    no
  8660.   C0: general receive        B0,B1     RIC,R0,R1,A,C RXI/R   yes
  8661.   C1: selective receive        B0,B1,A1,A2     RIC,RD,R1,A,C RXI/R   yes
  8662.   C5: receive disable        -         -           -    no
  8663.   C8: transmit frame        L0, L1, A, C TIC           TXI/R   yes
  8664.   C9: transmit transparent  L0, L1     TIC           TXI/R   yes
  8665.   CC: abort transmit frame  -         TIC           TXI/R   yes
  8666.   CD: abort transmit        -         TIC           TXI/R   yes
  8667.   22: read 8273 port A        -         port value    result    no
  8668.   23: read 8273 port B        -         port value    result    no
  8669.   A3: set 8273 port A bit   set mask     -           -    no
  8670.   63: set 8273 port B bit   reset mask     -           -    no
  8671. Notes:    B0/B1 LSB/MSB of the receiver buffer length
  8672.     L0/L1 LSB/MSB of the Tx buffer length
  8673.     A1/A2 receive frame address match field one/two
  8674.     A     address fieldof received frame. In non-buffered mode, this
  8675.           result is not provided.
  8676.     C     control field of received frame. In non-buffered mode, this
  8677.           result is not provided.
  8678.     RXI/R TXI/R receive/transmit interrupt result register
  8679.     R0/R1 LBS/MSB of the length of the frame received
  8680.     RIC/TIC receiver/transmitter interrupt result code
  8681. SeeAlso: #P243,#P244,#P245,#P246,#P247,#P248
  8682.  
  8683. Bitfields for SDLC 8273 interal port A: Modem Control Input Port:
  8684. Bit(s)    Description    (Table P243)
  8685.  7-5    not used
  8686.  4    DSR change (PA4)
  8687.  3    CTS change (PA3)
  8688.  2    Data Set Ready (PA2)
  8689.  1    Carrier Detect (PA1)
  8690.  0    Clear to Send (PA0)
  8691. SeeAlso: #P242
  8692.  
  8693. Bitfields for SDLC 8273 interal port B: Modem Control Output Port:
  8694. Bit(s)    Description    (Table P244)
  8695.  7-6    not used
  8696.  5    Flag Detect (PB5)
  8697.  4-3    reserved
  8698.  2    Data Terminal Ready (PB2)
  8699.  1    reserved (PB1)
  8700.  0    Request to Send (PB0)
  8701. SeeAlso: #P242
  8702.  
  8703. Bitfields for SDLC 8273 internal: Operating Mode Register:
  8704. Bit(s)    Description    (Table P245)
  8705.  7-6    not used
  8706.  5    =1 HDLC abort enable
  8707.  4    =1 EOP interrupt enable
  8708.  3    =1 enable early Tx interrupt
  8709.  2    =1 Buffered Mode
  8710.  1    =1 Two Preframe Sync Characters
  8711.  0    =1 Flag Stream Mode
  8712. SeeAlso: #P242
  8713.  
  8714. Bitfields for SDLC 8273 internal: Serial I/O Register:
  8715. Bit(s)    Description    (Table P246)
  8716.  7-3    not used
  8717.  2    =1 Data Loopback
  8718.  1    =1 Clock Loopback
  8719.  0    =1 NRZI Mode
  8720. SeeAlso: #P242
  8721.  
  8722. Bitfields for SDLC 8273 internal: Data Transfer Mode Register:
  8723. Bit(s)    Description    (Table P247)
  8724.  7-1    not used
  8725.  0    =1 Interrupt Data Transfers
  8726. SeeAlso: #P242
  8727.  
  8728. Bitfields for SDLC 8273 internal: One-Bit Delay Mode Register:
  8729. Bit(s)    Description    (Table P248)
  8730.  7 =1    One-Bit Delay Enable
  8731.  6-0    not used
  8732. SeeAlso: #P242
  8733.  
  8734. (Table P249)
  8735. Values for SDLC 8273 result register:
  8736.  transmit result codes:         status after interrupt:
  8737.   0C: early transmit interrupt      transmitter active
  8738.   0D: frame transmit complete      idle or flags
  8739.   0E: DMA underrun          abort
  8740.   0F: clear to send error      abort
  8741.   10: abort complete          idle or flags
  8742.  receive result codes:
  8743.   X0: A1 match / general receive  active
  8744.   X1: A2 match              active
  8745.   03: CRC error              active
  8746.   04: abort detected          active
  8747.   05: idle detected          disabled
  8748.   06: EOP detected          disabled
  8749.   07: frame less than 32 bits      active
  8750.   08: DMA overrun          disabled
  8751.   09: memory buffer overflow      disabled
  8752.   0A: carrier detect failure      disabled
  8753.   0B: receiver interrupt overrun  disabled
  8754.  X bits received inlast byte:
  8755.    E: all eight bits of last byte (bit7-0)
  8756.    0: bit0 only
  8757.    8: bit1-0
  8758.    4: bit2-0
  8759.    C: bit3-0
  8760.    2: bit4-0
  8761.    A: bit5-0
  8762.    6: bit6-0
  8763. --------s-P03840387--------------------------
  8764. PORT 0384-0387 - Pro Audio Spectrum 16 (PAS16)
  8765. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  8766.       PORT 0388h (default), or PORT 038Ch
  8767. ----------P03880389--------------------------
  8768. PORT 0388-0389 - AdLib - MONO SOUND OUTPUT
  8769. Note:    also supported by SoundBlaster and compatibles
  8770. SeeAlso: PORT 0220h-0223h,PORT 0388h-038Fh"soundmachine"
  8771.  
  8772. 0388  R-  both speakers -- Status
  8773.         bit7  : interrupt request (IRQ)
  8774.         bit6  : timer 1 overflow
  8775.         bit5  : timer 2 overflow
  8776.         bit4-0: reserved
  8777. 0388  -W  both speakers -- Address port (see #P250)
  8778.     index in OPL2 (YMF3812), OPL3 (YMF262), OPL4 (YF278-F)
  8779. 0389  -W  data port
  8780. Note:    the AdLib requires a delay of 3.3 microseconds between writing to
  8781.       PORT 0388h and writing to PORT 0389h, and a delay of 23 microseconds
  8782.       after a write to PORT 0389h before any other operation is allowed
  8783.  
  8784. (Table P250)
  8785. Values for AdLib address port index:
  8786.  01h    Enable waveform control
  8787.     bit 7-6: (OPL4, OPL3 in OPL2 mode only) lsi test
  8788.     bit 5: (OPL2 only) wave select enable (WS)
  8789.            (OPL4, OPL3) lsi test
  8790.     bit 4-0: lsi test
  8791.  02h    Timer #1 data (OPL2 and OPL3 in OPL2 mode only)
  8792.  03h    Timer #2 data (OPL2 and OPL3 in OPL2 mode only)
  8793.  04h    Timer control flags (OPL2 and OPL3 in OPL2 mode only)
  8794.     bit 7  : reset interrupt (RST)
  8795.     bit 6  : timer 1 mask (MASK1)
  8796.     bit 5  : timer 2 mask (MASK2)
  8797.     bit 4-2: reserved
  8798.     bit 1  : start timer 2 (ST2)
  8799.     bit 0  : start timer 1 (ST1)
  8800.  04h    (OPL3 in OPL3 mode only) connection select
  8801.     bit 7-6: reserved
  8802.     bit 5-0: connection selection
  8803.  05h    (OPL3) compatibility register
  8804.     bit 7-1: reserved
  8805.     bit 0: enable OPL3 mode (NEW), default disabled
  8806.  08h    Speech synthesis mode
  8807.     bit 7: (OPL2 only) speech synthesis or FM music mode (CSM)
  8808.     bit 6: select keyboard split point (SEL/NTS)
  8809.     bit 5-0: reserved
  8810.  20h-35h Amplitude Modulation / Vibrato
  8811.     bit 7: AM modulation (AM)
  8812.     bit 6: vibrato (VIB)
  8813.     bit 5: sustain (EG)
  8814.     bit 4: keyboard scaling rate (KSR)
  8815.     bit 3-0: multi (MF)
  8816.  40h-55h Level key scaling / Total level
  8817.     bit 7-6: key scale level (KSL)
  8818.     bit 5-0: total level (TL)
  8819.  60h-75h Attack / Decay rate
  8820.     bit 7-4: attack rate
  8821.     bit 3-0: decay rate
  8822.  80h-95h Sustain / Release rate
  8823.     bit 7-4: sustain level
  8824.     bit 3-0: release rate
  8825.  A0h-A8h Octave / Frequency (LSB)
  8826.  A9h-AFh ???
  8827.  B0h-B8h Octave / Frequency Number
  8828.     bit 7-6: reserved
  8829.     bit 5  : key on, mute
  8830.     bit 4-2: block, octave
  8831.     bit 1-0: f-number (MSB)
  8832.  BDh    percussion, vibrato, AM    (OPL2, OPL3 in OPL2 mode only)
  8833.     bit 7: amplitude modulation (AM)
  8834.     bit 6: vibrato (VIB)
  8835.     bit 5: ryhthm, percussion on/off (R)
  8836.     bit 4: bass drum on/off (BD)
  8837.     bit 3: snare drum on/off (SD)
  8838.     bit 2: tom-tom on/off (TOM)
  8839.     bit 1: top cymbal on/off (TC)
  8840.     bit 0: hi hat on/off (HH)
  8841.  C0h-C8h Feedback / Algorithm
  8842.     bit 7-4: OPL3: channel D-A
  8843.     bit 3-1: feedback
  8844.     bit 0: connection
  8845.  E0h-F5h Waveform Selection
  8846.     bit 7-3: reserved
  8847.     bit 2  : (OPL3) waveform bit2
  8848.     bit 1-0: waveform
  8849. SeeAlso: #P251
  8850.  
  8851. (Table P251)
  8852. Values for Sound Blaster registers inside groups:
  8853. Offset
  8854.  +00..+02: operators 1-3    modulator channel 1-3
  8855.  +03..+05: operators 4-6    carrier channel 1-3
  8856.  +08..+0A: operators 7-9    modulator channel 4-6
  8857.  +0B..+0D: operators 10-12  carrier channel 4-6
  8858.  +10..+12: operators 13-15  modulator channel 7-9
  8859.  +13..+15: operators 16-18  carrier channel 7-9
  8860.  +06, +07, +0E, +0F: reserved
  8861. SeeAlso: #P250
  8862. ----------P03880389--------------------------
  8863. PORT 0388-0389 - Soundblaster PRO FM-Chip
  8864. ----------P0388038B--------------------------
  8865. PORT 0388-038B - Soundblaster 16 ASP FM-Chip
  8866. --------s-P0388038B--------------------------
  8867. PORT 0388-038B - Pro Audio Spectrum 16 (PAS16)
  8868. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  8869.       PORT 0388h (default), or PORT 038Ch
  8870. ----------P0388038F--------------------------
  8871. PORT 0388-038F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  8872. Note:    Adlib-compatible, Covox 'voice master' & 'speech thing' compatible
  8873.       soundcard
  8874. SeeAlso: PORT 022Fh"soundmachine",PORT 0278h"Covox"
  8875.  
  8876. 0388  -W  Covox 'speech thing' compatible speech output via printer port?
  8877.         enabled if bit 6 set in PORT 038Fh
  8878. 0388  RW  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  8879.         (see PORT 0388h-0389h"Sound Blaster")
  8880. 0389  -W  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  8881.         (see PORT 0388h-0389h"Sound Blaster")
  8882. 038A  -W  I²C control for TDA7302 NF-MUX and X24C04 EEPROM
  8883.         bit 7: I²C bus SDA out (data),  enabled if bit2=1 in PORT 038Fh
  8884.         bit 0: I²C bus SCL out (clock), enabled if bit2=1 in PORT 038Fh
  8885. 038B  R-  I²C status for TDA7302 NF-MUX and X24C04 EEPROM
  8886.         bit 7: I²C bus SDA in (data),  enabled if bit2=1 in PORT 038Fh
  8887.         bit 0: I²C bus SCL in (clock), enabled if bit2=1 in PORT 038Fh
  8888. 038F  RW  configuration port (power on default=0, all features disabled)
  8889.     (see #P252)
  8890.  
  8891. Bitfields for mc-soundmachine configuration port:
  8892. Bit(s)    Description    (Table P252)
  8893.  7    Covox 'voice master' enabled at PORT 022Fh
  8894.  6     ""   'speech thing' enabled at PORT 03BCh
  8895.  5     ""             enabled at PORT 0278h
  8896.  4     ""             enabled at PORT 0378h
  8897.  3    not used (0388???)
  8898.  2    I²C bus enabled (see PORT 038Ah,PORT 038Bh)
  8899.  1    gameport enabled (see PORT 0201h)
  8900.  0    AdLib registers (see PORT 0388h,PORT 0389h) enabled
  8901. --------s-P038C038F--------------------------
  8902. PORT 038C-038F - Pro Audio Spectrum 16 (PAS16)
  8903. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  8904.       PORT 0388h (default), or PORT 038Ch
  8905. ----------P03900397--------------------------
  8906. PORT 0390-0397 - Sunshine EW-901B, EW-904B
  8907.         EPROM writer card for EPROMs up to 27512
  8908. 0390-0393  ??  adresses of the 8255 on the EW-90xB
  8909. ----------P0390039F--------------------------
  8910. PORT 0390-039F - Cluster adapter (AT)
  8911.  
  8912. 0390  ??  (adapter 0)    (XT)
  8913. 0391  ??  (adapter 0)    (XT)
  8914. 0392  ??  (adapter 0)    (XT)
  8915. 0393  ??  (adapter 0)    (XT)
  8916. ----------P03980399--------------------------
  8917. PORT 0398-0399 - Dell Enhanced Parallel Port
  8918. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 026Eh
  8919.  
  8920. 0398  -W  index for data port
  8921. 0399  RW  EPP command data
  8922. ----------P03980399--------------------------
  8923. PORT 0398-0399 - Intel 82091AA Advanced Integrated Peripheral
  8924. Range:    PORT 0022h (X-Bus), PORT 0024h (X-Bus), PORT 026Eh (ISA), or
  8925.       PORT 0398h (ISA)
  8926. SeeAlso: PORT 0022h"82091AA",PORT 0024h"82091AA",PORT 026Eh"82091AA"
  8927.  
  8928. 0398  ?W  configuration register index
  8929. 0399  RW  configuration register data
  8930. ----------P03A003AC--------------------------
  8931. PORT 03A0-03AC - 1st SDLC (Binary Synchronous Data Link Control adapter)
  8932. SeeAlso: PORT 0380h"SDLC"
  8933. ----------P03A003AF--------------------------
  8934. PORT 03A0-03AF - 1st BSC (Binary Synchronous Communication) adapter
  8935. Notes:    Initialization of the BSC adapter is performed in a typical
  8936.       sequence like this: Setup 8255 port A-C configuration by writing
  8937.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  8938.       to 382h. Reset 8251A internal registers by pulsing 8255 port B4.
  8939.       After this the 8253 has to be programmed to the desired values
  8940.       (counter 0 not used, counters 1 and 2 to mode 0). Now, the 8251A
  8941.       is ready to be loaded with a set of control words that define the
  8942.       communication environment.
  8943.     8251A: The control words are split into two formats, mode
  8944.       instruction and command instruction. The mode instruction must
  8945.       be inserted immediately after a reset operation (via 8255 port B4
  8946.       or setting command instruction bit6 to 'internal reset').
  8947.       The required synchronization characters are next loaded into the
  8948.       8251A (usually 32h for BSC). All control words written to the
  8949.       8251A after this will load the command instruction.
  8950.          reset -> mode instruction
  8951.               SYNC character 1
  8952.               SYNC character 2
  8953.               command instruction
  8954.               data ...
  8955.               command instruction
  8956.               data ...
  8957.               command instruction
  8958.               ...
  8959. SeeAlso: PORT 0380h"BSC"
  8960.  
  8961. 03A0  R-   on adapter 8255(A5) port A: internal/external sensing (see #P253)
  8962. 03A1  -W   on adapter 8255(A5) port B: external modem interface (see #P254)
  8963. 03A2  RW   on adapter 8255(A5) port C: internal control (see #P255)
  8964. 03A3  ?W   on adapter 8255(A5) mode initialization
  8965. 03A4  RW   on adapter 8253 (programmable counter) counter 0:
  8966.         LSB / MSB square wave generator (unused in sync mode)
  8967. 03A5  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  8968.         (connected to 8255 bitA7, IRQ4 level)
  8969. 03A6  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  8970.         (connected to 8255 bitA6, IRQ4 level)
  8971. 03A7  ?W   on adapter 8253 mode register (see #P256)
  8972. 03A8  RW   on adapter 8251: data (see #P257)
  8973. 03A9  R-   on adapter 8251: command/mode/USART status register (see #P258)
  8974.  
  8975. Bitfields for BSC 8255 port A:
  8976. Bit(s)    Description    (Table P253)
  8977.  7    =1 timer 1 output active
  8978.  6    =1 timer 2 output active
  8979.  5    =1 TxRDY active
  8980.  4    receive clock active (if pulsing)
  8981.  3    =0 clear to send is on from interface
  8982.  2    transmit clock active (if pulsing)
  8983.  1    =0 data carrier detect is on from interface
  8984.  0    =0 ring indicator is on from interface
  8985. SeeAlso: #P254
  8986.  
  8987. Bitfields for BSC 8255 port B:
  8988. Bit(s)    Description    (Table P254)
  8989.  7    =1 enable IRQ 4 level interrupt (timer 1 and 2)
  8990.  6    =1 gate timer 1
  8991.  5    =1 gate timer 2
  8992.  4    =1 reset 8251A
  8993.  3    =1 not used
  8994.  2    =0 turn on test
  8995.  1    =0 turn on select standby
  8996.  0    =0 turn on data signal rate select
  8997. SeeAlso: #P253,#P255
  8998.  
  8999. Bitfields for BSC 8255 port C:
  9000. Bit(s)    Description    (Table P255)
  9001.  7 R-    =0 BSC adapter (=1 may be used to detect SDLC??)
  9002.  6 R-    =0 test indicate active
  9003.  5 R-    timer 0 output (if pulsing)
  9004.  4 R-    receive data (if pulsing)
  9005.  3 -W    =0 enable timer 1 and 2 IRQ4 and receive IRQ 4
  9006.  2 -W    =1 electronic wrap
  9007.  1 -W    =1 gate external clock
  9008.  0 -W    =1 gate internal clock
  9009. SeeAlso: #P253,#P254
  9010.  
  9011. Bitfields for BSC 8253 mode register:
  9012. Bit(s)    Description    (Table P256)
  9013.  7-6    SC1-SC0     00, 01, 10= select counter 0,1,2; 11=illegal
  9014.  5-4    RL1-RL0     00= couner latching operation
  9015.          01= read/load most significant byte (MSB)
  9016.          10= read/load least significant byte (LSB)
  9017.          11= read/load LSB first, then MSB
  9018.  3-1    M2-M0     000= mode 0 (for counter 1 and 2)
  9019.          001= mode 1 (not used for BSC)
  9020.          x10= mode 2 (not used for BSC)
  9021.          x11= mode 3 (not used for BSC)
  9022.          100= mode 4 (not used for BSC)
  9023.          101= mode 5 (not used for BSC)
  9024.  0    BCD       0= binary counter 16bits
  9025.            1= BCD counter 4 decades
  9026.  
  9027. Bitfields for BSC 8251 data:
  9028. Bit(s)    Description    (Table P257)
  9029. ---mode instruction (W)---
  9030.  7    =0 Double SYNC Character
  9031.  6    =1 SYNDET is an Input
  9032.  5    =1 Even Parity
  9033.  4    =1 Parity Enable
  9034.  3-2    Character Length 00=5bits, 01=6bits, 10=7bits, 11=8bits
  9035.  1-0    not used (always 0)
  9036. ---SYNC character 1/2 (W)---
  9037.  string of two characters to be sync'ed at (in hunt mode).
  9038. ---command instruction (W)---
  9039.  7    Enter Hunt Mode
  9040.  6    Internal Reset
  9041.  5    Request to Send
  9042.  4    Error Reset
  9043.  3    Send Break Character
  9044.  2    Receive Enable
  9045.  1    Data Terminal Ready
  9046.  0    Transmit Enable
  9047. ---data (RW)---
  9048.     any data
  9049. SeeAlso: #P256,#P258
  9050.  
  9051. Bitfields for BSC 8251 command/mode/USART status:
  9052. Bit(s)    Description    (Table P258)
  9053.  7    Data Set Ready (indicated that DSR is at 0 level)
  9054.  6    SYNDET
  9055.  5    Framing Error (not used for synchronous communications)
  9056.  4    Overrun Error (OE flag on when Overrun Error occurs)
  9057.  3    Parity Error (PE flag on when a parity error occurs)
  9058.  2    TxEmpty
  9059.  1    RxRDY (causing IRQ 3 level)
  9060.  0    TxRDY (has not the same meaning as 8251A TxRDY output pin).
  9061.       THIS one is NOT conditioned by CTS and TxEnable (causing IRQ 4 level)
  9062. SeeAlso: #P257
  9063. ----------P03AB------------------------------
  9064. PORT 03AB - GI1904 Scanner Interface Adapter
  9065. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  9066.       PORT 036Bh, PORT 03ABh, PORT 03EBh
  9067. ----------P03AC------------------------------
  9068. PORT 03AC - GS-IF Scanner Interface adapter
  9069. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  9070.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  9071. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  9072.       others use this interface
  9073. --------V-P03B003BF--------------------------
  9074. PORT 03B0-03BF - MDA  (Monochrome Display Adapter based on 6845)
  9075.  
  9076. 03B0  -W  same as 03B4
  9077. 03B1  RW  same as 03B5
  9078. 03B2  -W  same as 03B4
  9079. 03B3  RW  same as 03B5
  9080. 03B4  -W  MDA CRT index register     (MDA/mono EGA/mono VGA)
  9081.         selects which register (0-11h) is to be accessed through 03B5h
  9082.         Note: this port is read/write on some VGAs
  9083.         bit7-6: (VGA) reserved (0)
  9084.         bit5  : (VGA) reserved for testing (0)
  9085.         bit4-0: selects which register is to be accessed through 03B5h
  9086. 03B5  RW  MDA CRT data register     (MDA/mono EGA/mono VGA) (see #P259,#P286)
  9087.         selected by PORT 03B4h. registers 0C-0F may be read
  9088.         Color adapters are at 3D4/3D5, but are mentioned here for
  9089.           better overview.
  9090.         There are differences in names and some bits functionality
  9091.           on EGA, VGA in their native modes, but clones in their
  9092.           emulation modes emulate the original 6845 at bit level. The
  9093.           default values are for MDA, HGC, CGA only, if not otherwise
  9094.           mentioned.
  9095. 03B6  -W  same as 03B4h
  9096. 03B7  RW  same as 03B5h
  9097. 03B8  rW  MDA mode control register (see #P260)
  9098. 03B9  ?W  reserved for color select register on color adapter
  9099. 03B9  -W  MDA/HGC: set lightpen flipflop (value written is ignored)
  9100.         cannot be found on native mono EGA, mono VGA (without
  9101.           translation ROM)
  9102. 03BA  R-  CRT status register (see #P261)
  9103.         (EGA/VGA) input status 1 register
  9104. 03BA  -W  (mono EGA/mono VGA) feature control register
  9105.         (see PORT 03DAh-W for details; VGA, see PORT 03CAh-R)
  9106. 03BB  -W  light pen strobe reset (on any value)
  9107.  
  9108. (Table P259)
  9109. Values for mono video adapter CRT data register index:
  9110.                   defaults:    MDA/HGC    HGC   CGA   CGA      CGA
  9111.                          text  graph text1 text2 graph
  9112.                            7  720x348  1     3      5,6
  9113.  00h    horizontal total              61h    35h   38h   71h      38h
  9114.           ET4000: in VGA mode scanlines-5
  9115.               in EGA mode scanlines-2
  9116.  01h    horizontal displayed              50h    2Dh   28h   50h      28h
  9117.           horizontal display end-1 (EGA,VGA)
  9118.  02h    horizontal sync position          52h    2Eh   2Dh 5Ah/5Ch 2Dh
  9119.  03h    sync pulse width              0Fh 07h/0Fh 0Ah   0Ah      0Ah
  9120.            bit7-4 vsync, bit3-0 hsync
  9121.           end horizontal blanking (EGA,VGA)
  9122.            VGA    : bit7=1      : enable read access to regs
  9123.                     10h, 11h (otherwise VGA clones
  9124.                     may show lightpen values)
  9125.            EGA,VGA: bit6-5=0-3: display enable skew control
  9126.             bit4-0      : end blanking
  9127.  04h    vertical total (vcycle-1)          19h    5Bh   1Fh   1Fh      7Fh
  9128.            bit7 only used on MCGA
  9129.           start horizontal retrace (EGA, VGA)
  9130.           Genoa SuperEGA only???:
  9131.            bit7  : start at odd memory address
  9132.            bit6-5: horizontal sync skew
  9133.            bit4-0: start retrace+ retrace width
  9134.  05h    vertical total adjust              06h    02h   06h   06h      06h
  9135.            bit7-5 only used on MCGA
  9136.           end horizontal retrace (EGA, VGA)
  9137.            bit7  : (EGA) start at odd memory address
  9138.                (VGA) bit5 of end horizontal retrace
  9139.            bit6-5: horizontal sync skew
  9140.            bit4-0: end horizontal retrace
  9141.  06h    vertical displayed              19h    57h   19h   19h      64h
  9142.            bit7 only used on MCGA
  9143.           (EGA) vertical total-1
  9144.           (VGA) vertical total-2
  9145.  07h    vertical sync pulse width-1          19h    57h   1Ch   1Ch 70h/66h
  9146.            bit7  only used on MCGA
  9147.           controller overflow (EGA,VGA)
  9148.            bit7: (VGA) bit9 of start vertical retrace (10h)
  9149.            bit6: (VGA) bit9 of vertical display end (12h)
  9150.            bit5: (VGA) bit9 of vertical total (06h)
  9151.              (EGA) bit5 of cursor-position (0Ah)
  9152.            bit4: bit8 of line compare (18h)
  9153.            bit3: bit8 of start vertical blanking (15h)
  9154.            bit2: bit8 of vertical retrace start (10h)
  9155.            bit1: bit8 of vertical display end (12h)
  9156.            bit0: bit8 of vertical total (06h)
  9157.  08h    interlace mode (not MCGA)          02h    02h   02h   02h      02h
  9158.            bit7-2: reserved
  9159.            bit1  : delay
  9160.            bit0=1: interlace on
  9161.           preset row scan (EGA, VGA)
  9162.            bit7  : reserved
  9163.            bit6-5: (VGA) byte panning (low-order bits of display start addr
  9164.           in odd/even and quad modes
  9165.            bit4-0: start row scan after retrace
  9166.  09h    maximum scan lines              0Dh    03h   07h   07h      01h
  9167.            bit7  : (VGA) double scan active
  9168.            bit6  : (VGA) bit9 of line compare (18h)
  9169.            bit5  : (VGA) bit9 of start vertical blanking (15h)
  9170.            bit4-0: maximum scan line 00..31 (height-1)
  9171.  0Ah    cursor start                  0Bh    00h   06h   06h 06h/00h
  9172.            bit7  : reserved
  9173.            bit6-5: original 6845: cursor on/off, blink interval
  9174.                (not on all adapters, as original MDA, CGA have
  9175.                extra circuitrity to avoid this!!)
  9176.            bit6-5: native EGA: not used
  9177.            bit6  : (VGA) not used
  9178.            bit5=0: (VGA) cursor on
  9179.            bit4-0: first cursor scanline
  9180.  0Bh    cursor end                  0Ch    00h   07h   07h 07h/00h
  9181.            bit7  : reserved
  9182.            bit6-5: EGA, VGA: cursor skew control
  9183.            bit4-0: end cursor row
  9184.  0Ch RW    start address high              00h    00h   00h   00h      00h
  9185.            bit7-6 not used by original 6845 (MDA,HGC,CGA)
  9186.  0Dh RW    start address low              00h    00h   00h   00h      00h
  9187.  0Eh RW    cursor location high              00h    00h   00h   00h      00h
  9188.            bit7-4 not used by original 6845 (MDA,HGC,CGA)
  9189.            bit5-4 reserved on MCGA
  9190.  0Fh RW cursor location low              00h    00h   00h   00h      00h
  9191.  10h R-    light pen high (MDA/CGA/EGA only, some HGC, few VGA
  9192.            clones in emulation, not with ET4000)
  9193.  10h R- MCGA at 3D5h only: mode control status register (see #P288)
  9194.  11h R- light pen low (MDA/CGA/EGA only, some HGC, few VGA
  9195.            clones in emulation, not with ET4000)
  9196.  14h -W HGC+,InColor: xMode register
  9197.  15h -W HGC+,InColor: underscore register
  9198.  16h -W HGC+,InColor: overstrike register
  9199.  17h -W    InColor: exception register
  9200.  18h -W    InColor: plane mask register
  9201.  19h -W    InColor: read/write control register
  9202.  1Ah -W    InColor: read/write color register
  9203.  1Bh -W    InColor: Latch Protect register
  9204.  1Ch RW    InColor: palette register
  9205. Notes:    registers 10h and 11h have varying uses on VGA (see #P286) and
  9206.       MCGA (see #P287)
  9207.     MDA, HGC, CGA: 6845 registers 00h-0Dh are write only, 0Eh, 0Fh
  9208.            are r/w, and 10h-11h are read only.
  9209.            The alternative initial defaults may be used
  9210.            sometimes on modern adapters.
  9211.     HGC+(RamFont): as with HGC, but 3 additional registers for font control
  9212.     emulations   : more registers may be r/w, but most often it's the
  9213.            same as with native 6845.
  9214.     MCGA (CGA+)  : Though this is a mixture of CGA and VGA, most
  9215.            registers are same as with CGA, but with some
  9216.            enhancements and incompatibilities to EGA, VGA.
  9217.     native EGA   : registers 00h-0Bh are write only, 0Ch-0Fh are
  9218.            r/w, 10h-11h are read/write, 12h-18h are write
  9219.            only. More regs may be r/w on enhanced clones.
  9220.     GenoaSuperEGA: adapter with chips SEQCRT GN006001 and GRAT
  9221.            GN006002, e.g. c't Super-EGA adapter. Is EGA
  9222.            clone with up to 800x600 and full 6845 emulation.
  9223.     native VGA   : all registers 00-18h are r/w, but 00h-07h are
  9224.            write-locked if bit7 in 11h is set.
  9225.     ET4000         : same as VGA, but with additional r/w registers
  9226.            32h-37h, protected by 'key' except 33h, 35h
  9227.            (see 3BFh for details). 35h is protected by
  9228.            bit7 in 11h. The 'key' must be issued at least
  9229.            after each power on or synchronous reset.
  9230. SeeAlso: #P286,#P287,#P260,#P261,#P287
  9231.  
  9232. Bitfields for mono video adapter mode control register:
  9233. Bit(s)    Description    (Table P260)
  9234.  7 not used by MDA, page number on HGC
  9235.  6    not used
  9236.  6  R-O    (mono ET4000 only) report status of bit 1 (enable 2nd page) of
  9237.       Hercules compatibility register (PORT 03BFh)
  9238.  5    enable blink (0 = intense background, 1 = blink)
  9239.  4    not used
  9240.  3    video enable
  9241.  2    not used
  9242.  1    (MDA) not used
  9243.     (HGC) graphics enable
  9244.     the 6845 has to be reprogrammed completely, if this bit is
  9245.       changed, otherwise the TTL-monitor may be damaged by wrong
  9246.       sync impulses!
  9247.  0    high resolution mode (always set on MDA)
  9248. ---mono ET4000 only, W-O ---
  9249.  7-0    =A0h: second part of 'key', see Hercules compatibility register
  9250.       (PORT 03BFh) for details
  9251. Note:    this port might be completely or partially readable on very few MDA,
  9252.       HGC clones or emulations (e.g. Genoa SuperEGA), but not with the
  9253.       majority of original and clone chips.     It cannot be found on
  9254.       native mono EGA, mono VGA, but on most clones, where it is usually
  9255.       R/W.
  9256. SeeAlso: #P259,#P261
  9257.  
  9258. Bitfields for mono video adapter CRT status register:
  9259. Bit(s)    Description    (Table P261)
  9260.  7    HGC: vertical sync pulse in progress
  9261.  6-4    adapter identification
  9262.     (MSD says) if bit 7 changes within 8000h reads then
  9263.         =000 adapter is Hercules or compatible
  9264.         =001 adapter is Hercules+
  9265.         =101 adapter is Hercules InColor
  9266.         else: adapter is unknown
  9267.  6-4    =111 on MDA and some HGC clones
  9268.  5-4    (mono EGA, mono ET4000) diagnose video display feedback
  9269.     select from color plane enable
  9270.  3    (MDA,HGC) pixel stream (0=currently black, 1=currently white)
  9271.     (mono EGA, mono VGA) vertical retrace in progress
  9272.  2-1    (MDA) reserved
  9273.  2    (HGC, mono EGA) lightpen flipflop set
  9274.     (mono ET4000) reserved (0)
  9275.  1    (HGC) lightpen input stream (if set, current value to get from
  9276.       PORT 03B5h registers 10h-11h)
  9277.     (mono ET4000) reserved (0)
  9278.  0    horizontal drive enabled
  9279. SeeAlso: #P259,#P260
  9280.  
  9281. Bitfields for EGA,VGA mode control register:
  9282. Bit(s)    Description    (Table P262)
  9283.  7    0=CRTC reset and stop, 1=resume reset
  9284.  6    0=word-mode, 1=byte-mode (VGA: see 14h, bit6)
  9285.  5    0=14bit, 1=16bit address wrap
  9286.  4    (native VGA only) reserved (0)
  9287.  4    (EGA and most VGA clones) output control
  9288.     0: video driver active
  9289.     1: video driver not active
  9290.  3    linear address counter clock (0 = standard, 1 = clock/2)
  9291.     (VGA: see register 14h, bit 5)
  9292.  2    horizontal retrace clock (0 = standard, 1 = clock/2)
  9293.  1    row scan counter
  9294.     0: address bit 14 = scan bit 1
  9295.     1: address bit 14 not altered
  9296.  0    6845 compatibility mode
  9297.     0: address bit 13 = scan bit 0 (as with 6845)
  9298.     1: address bit 13 not altered
  9299. SeeAlso: #P259
  9300. --------P-P03BC03BF--------------------------
  9301. PORT 03BC-03BF - PARALLEL PRINTER PORT (MDA's LPT1)
  9302. Range:    PORT 0278h, PORT 0378h, or PORT 03BCh
  9303. SeeAlso: MEM 0040h:0008h
  9304.  
  9305. 03BC  -W  data port
  9306. 03BC  R-  bidirectional port: input from connector
  9307.       unidirectional port: last value written to port
  9308. 03BD  R-  status port (see #P263)
  9309. 03BE  RW  control port (see #P264)
  9310.  
  9311. Bitfields for parallel interface status port:
  9312. Bit(s)    Description    (Table P263)
  9313.  7    busy
  9314.  6    NOT acknowledge (approx. 5us low pulse)
  9315.  5    out of paper
  9316.  4    printer is selected
  9317.  3    *no* error
  9318.  2    IRQ has *not* occurred
  9319.     (PS/2) printer returned -ACK
  9320.  1-0    reserved
  9321. Note:    if bit 2 is clear (i.e. an interrupt has occurred), it is set again on
  9322.       reading the status register
  9323. SeeAlso: #P264
  9324.  
  9325. Bitfields for parallel interface control port:
  9326. Bit(s)    Description    (Table P264)
  9327.  7-6    reserved
  9328.  7    (see PORT 037Bh bit 7)
  9329.  5    (PS/2) enable bidirectional port
  9330.     (also requires enabling via PORT 0102h)
  9331.  4    enable IRQ (via -ACK)
  9332.  3    select printer (SLCT IN line)
  9333.  2    =0 initialize printer (-RESET line)
  9334.  1    automatic line feed
  9335.  0    strobe (must be set for minimum of 5 microseconds)
  9336. SeeAlso: #P263
  9337. --------V-P03BF------------------------------
  9338. PORT 03BF - Hercules configuration switch register
  9339. Note:    can also be found on EGA and VGA clones in Hercules emulation
  9340.  
  9341. 03BF  -W  configuration switch register (see #P265)
  9342. 03BF  -W  (ET4000) Hercules compatibility register (see #P266)
  9343. 03BF  RW  (Genoa SuperEGA) miscellaneous register
  9344.     Note: only available in MDA, HGC, and CGA emulation; should be
  9345.       compatible with Hercules configuration register, but may contain
  9346.       additional features
  9347.  
  9348. Bitfields for Hercules configuration switch register:
  9349. Bit(s)    Description    (Table P265)
  9350.  7-2    reserved
  9351.  1    =0  disables upper 32K of graphics mode buffer
  9352.     =1  enables upper 32K of graphics mode buffer
  9353.  0    =0  prevents graphics mode
  9354.     =1  allows graphics mode
  9355. SeeAlso: #P266
  9356.  
  9357. Bitfields for ET4000 compatibility register:
  9358. Bit(s)    Description    (Table P266)
  9359.  1    =0 disables upper 32K of graphics mode buffer
  9360.     =1 enables upper 32K of graphics mode buffer
  9361.  0    reserved (not needed for HGC graphics)
  9362.  7-0    =03h: first part of 'key' for access to some extra
  9363.          ET4000 regs. To issue the 'key', the following
  9364.          code must be executed:
  9365.           MOV DX, 3BFh
  9366.           MOV AL, 3
  9367.           OUT DX, AL
  9368.           MOV DX, 3D8h  (3B8h in mono mode)
  9369.           MOV AL, 0A0h
  9370.           OUT DX, AL
  9371. SeeAlso: #P265
  9372. ---------------------------------------------
  9373.