home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / INTER53D.ZIP / PORTS.LST < prev    next >
File List  |  1997-01-12  |  315KB  |  8,342 lines

  1. PORT LIST            Release 53        Last change 12jan97
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3. [This file originally by Wim Osterholt (2:512/56 or 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. ---------------------------------------------
  17. Note: the port description format is:
  18.  
  19. PPPPw RW  description
  20.  
  21. where:    PPPP    is the four-digit hex port number
  22.     w    is blank for byte-size port, 'w' for word, and 'd' for dword
  23.     R    is blank or dash if not readable, 'r' if sometimes readable,
  24.         'R' if "always" readable, '?' if readability unknown
  25.     W    is blank or dash if not writable, 'w' if sometimes writable,
  26.         'W' if "always" writable, '?' if writability unknown
  27. ----------P0000001F--------------------------
  28. PORT 0000-001F - DMA 1 - FIRST DIRECT MEMORY ACCESS CONTROLLER (8237)
  29.  
  30. 0000  RW  DMA channel 0     address byte  0, then byte 1
  31. 0001  RW  DMA channel 0 word count byte 0, then byte 1
  32. 0002  RW  DMA channel 1     address byte  0, then byte 1
  33. 0003  RW  DMA channel 1 word count byte 0, then byte 1
  34. 0004  RW  DMA channel 2     address byte  0, then byte 1
  35. 0005  RW  DMA channel 2 word count byte 0, then byte 1
  36. 0006  RW  DMA channel 3     address byte  0, then byte 1
  37. 0007  RW  DMA channel 3 word count byte 0, then byte 1
  38.  
  39. 0008  R-  DMA channel 0-3 status register (see #P001)
  40. 0008  -W  DMA channel 0-3 command register (see #P002)
  41. 0009  -W  DMA channel 0-3 write request register (see #P003)
  42. 000A  RW  DMA channel 0-3 mask register (see #P004)
  43. 000B  -W  DMA channel 0-3 mode register (see #P005)
  44.  
  45. 000C  -W  DMA clear byte pointer flip-flop
  46. 000D  R-  DMA read temporary register
  47. 000D  -W  DMA master clear
  48. 000E  -W  DMA clear mask register
  49. 000F  -W  DMA write mask register
  50.  
  51. Bitfields for DMA channel 0-3 status register:
  52. Bit(s)    Description    (Table P001)
  53.  7    channel 3 request active
  54.  6    channel 2 request active
  55.  5    channel 1 request active
  56.  4    channel 0 request active
  57.  3    channel terminal count on channel 3
  58.  2    channel terminal count on channel 2
  59.  1    channel terminal count on channel 1
  60.  0    channel terminal count on channel 0
  61. SeeAlso: #P002,#P078
  62.  
  63. Bitfields for DMA channel 0-3 command register:
  64. Bit(s)    Description    (Table P002)
  65.  7    DACK sense active high
  66.  6    DREQ sense active high
  67.  5    =1 extended write selection
  68.     =0 late write selection
  69.  4    rotating priority instead of fixed priority
  70.  3    compressed timing
  71.  2    =1 enable controller
  72.     =0 enable memory-to-memory
  73.  1-0    channel number
  74. SeeAlso: #P001,#P004,#P005,#P079
  75.  
  76. Bitfields for DMA channel 0-3 request register:
  77. Bit(s)    Description    (Table P003)
  78.  7-3    reserved (0)
  79.  2    =0 clear request bit
  80.     =1 set request bit
  81.  1-0    channel number
  82.     00 channel 0 select
  83.     01 channel 1 select
  84.     10 channel 2 select
  85.     11 channel 3 select
  86. SeeAlso: #P004
  87.  
  88. Bitfields for DMA channel 0-3 mask register:
  89. Bit(s)    Description    (Table P004)
  90.  7-3    reserved (0)
  91.  2    =0 clear mask bit
  92.     =1 set mask bit
  93.  1-0    channel number
  94.     00 channel 0 select
  95.     01 channel 1 select
  96.     10 channel 2 select
  97.     11 channel 3 select
  98. SeeAlso: #P001,#P002,#P003,#P080
  99.  
  100. Bitfields for DMA channel 0-3 mode register:
  101. Bit(s)    Description    (Table P005)
  102.  7-6    transfer mode
  103.     00 demand mode
  104.     01 single mode
  105.     10 block mode
  106.     11 cascade mode
  107.  5    direction
  108.     =0 address increment select
  109.     =1 address decrement select
  110.  3-2    operation
  111.     00 verify operation
  112.     01 write to memory
  113.     10 read from memory
  114.     11 reserved
  115.  1-0    channel number
  116.     00 channel 0 select
  117.     01 channel 1 select
  118.     10 channel 2 select
  119.     11 channel 3 select
  120. SeeAlso: #P002,#P081
  121. ----------P0010001F--------------------------
  122. PORT 0010-001F - DMA CONTROLLER (8237) ON PS/2 MODEL 60 & 80
  123. ----------P0018------------------------------
  124. PORT 0018 - PS/2 - EXTENDED FUNCTION REGISTER
  125.  
  126. 0018  -W  PS/2 extended function register
  127. ----------P001A------------------------------
  128. PORT 001A - PS/2 - EXTENDED FUNCTION EXECUTE
  129. ----------P0020003F--------------------------
  130. PORT 0020-003F - PIC 1 - PROGRAMMABLE INTERRUPT CONTROLLER (8259A)
  131. SeeAlso: PORT 00A0h-00AFh"PIC 2",INT 08"IRQ0",INT 0F"IRQ7"
  132.  
  133. 0020  -W  PIC initialization command word ICW1 (see #P006)
  134. 0020  -W  PIC output control word OCW2 (see #P011)
  135. 0020  -W  PIC output control word OCW3 (see #P012)
  136. 0020  R-  PIC  interrupt request/in-service registers after OCW3
  137.         request register:
  138.          bit 7-0 = 0  no active request for the corresponding int. line
  139.              = 1  active request for corresponding interrupt line
  140.         in-service register:
  141.          bit 7-0 = 0  corresponding line not currently being serviced
  142.              = 1  corresponding int. line currently being serviced
  143.  
  144. 0021  -W  PIC ICW2,ICW3,ICW4 immed after ICW1 to 0020 (see #P007,#P008,#P009)
  145. 0021  RW  PIC master interrupt mask register OCW1 (see #P010)
  146.  
  147. Bitfields for PIC initialization command word ICW1:
  148. Bit(s)    Description    (Table P006)
  149.  7-5    0 (only used in 8080/8085 mode)
  150.  4    ICW1 is being issued
  151.  3    (LTIM)
  152.     =0  edge triggered mode
  153.     =1  level triggered mode
  154.  2    interrupt vector size
  155.     =0 successive interrupt vectors use 8 bytes (8080/8085)
  156.     =1 successive interrupt vectors use 4 bytes (80x86)
  157.  1    (SNGL)
  158.     =0  cascade mode
  159.     =1  single mode, no ICW3 needed
  160.  0    ICW4 needed
  161. SeeAlso: #P007,#P008,#P009
  162.  
  163. Bitfields for PIC initialization command word ICW2:
  164. Bit(s)    Description    (Table P007)
  165.  7-3    address lines A0-A3 of base vector address for PIC
  166.  2-0    reserved
  167. SeeAlso: #P006,#P008,#P009
  168.  
  169. Bitfields for PIC initialization command word ICW3:
  170. Bit(s)    Description    (Table P008)
  171.  7-0    =0 slave controller not attached to corresponding interrupt pin
  172.     =1 slave controller attached to corresponding interrupt pin
  173. SeeAlso: #P006,#P007,#P009
  174.  
  175. Bitfields for PIC initialization command word ICW4:
  176. Bit(s)    Description    (Table P009)
  177.  7-5    reserved (0)
  178.  4    running in special fully-nested mode
  179.  3-2    mode
  180.     0x nonbuffered mode
  181.     10 buffered mode/slave
  182.     11 buffered mode/master
  183.  1    Auto EOI
  184.  0    =0  8085 mode
  185.     =1  8086/8088 mode
  186. SeeAlso: #P006,#P007,#P008
  187.  
  188. Bitfields for PIC output control word OCW1:
  189. Bit(s)    Description    (Table P010)
  190.  7    disable IRQ7 (parallel printer interrupt)
  191.  6    disable IRQ6 (diskette interrupt)
  192.  5    disable IRQ5 (fixed disk interrupt)
  193.  4    disable IRQ4 (serial port 1 interrupt)
  194.  3    disable IRQ3 (serial port 2 interrupt)
  195.  2    disable IRQ2 (video interrupt)
  196.  1    disable IRQ1 (keyboard, mouse, RTC interrupt)
  197.  0    disable IRQ0 (timer interrupt)
  198. SeeAlso: #P011,#P012,#P077
  199.  
  200. Bitfields for PIC output control word OCW2:
  201. Bit(s)    Description    (Table P011)
  202.  7-5    operation
  203.     000 rotate in auto EOI mode (clear)
  204.     001 (WORD_A) nonspecific EOI
  205.     010 (WORD_H) no operation
  206.     011 (WORD_B) specific EOI
  207.     100 (WORD_F) rotate in auto EOI mode (set)
  208.     101 (WORD_C) rotate on nonspecific EOI command
  209.     110 (WORD_E) set priority command
  210.     111 (WORD_D) rotate on specific EOI command
  211.  4-3    reserved (00 - signals OCW2)
  212.  2-0    interrupt request to which the command applies
  213.     (only used by WORD_B, WORD_D, and WORD_E)
  214. SeeAlso: #P010,#P012
  215.  
  216. Bitfields for PIC output control word OCW3:
  217. Bit(s)    Description    (Table P012)
  218.  7    reserved (0)
  219.  6-5    special mask
  220.     0x  no operation
  221.     10  reset special mask
  222.     11  set special mask mode
  223.  4-3    reserved (01 - signals OCW3)
  224.  2    poll command
  225.  1-0    function
  226.     0x  no operation
  227.     10  read interrupt request register on next read from PORT 0020h
  228.     11  read interrupt in-service register on next read from PORT 0020h
  229. Note:    the special mask mode permits all other interrupts (even those with
  230.       lower priority) to be processed while an interrupt is already in
  231.       service, but will not re-issue an interrupt for a particular IRQ
  232.       while it remains in service
  233. SeeAlso: #P010,#P011
  234. ----------P00220023--------------------------
  235. PORT 0022-0023 - CHIP SET DATA
  236.  
  237. 0022  -W  index for accesses to data port
  238. 0023  RW  chip set data
  239. ----------P00220023--------------------------
  240. PORT 0022-0023 - Cyrix Cx486SLC/DLC PROCESSOR - CACHE CONFIGURATION REGISTERS
  241. SeeAlso: PORT 0022h"5x86",PORT 0022h"6x86"
  242.  
  243. 0022  -W  index for accesses to next port (see #P013)
  244. 0023  RW  cache configuration register array (indexed by PORT 0022h)
  245.  
  246. (Table P013)
  247. Values for Cyrix Cx486SLC/DLC Cache Configuration register number:
  248.  C0h    CR0 (see #P015)
  249.  C1h    CR1 (see #P016)
  250.  C4h    non-cacheable region 1, start address bits 31-24
  251.  C5h    non-cacheable region 1, start address bits 23-16
  252.  C6h    non-cacheable region 1, start addr 15-12, size (low nibble) (see #P014)
  253.  C7h    non-cacheable region 2, start address bits 31-24
  254.  C8h    non-cacheable region 2, start address bits 23-16
  255.  C9h    non-cacheable region 2, start addr 15-12, size (low nibble) (see #P014)
  256.  CAh    non-cacheable region 3, start address bits 31-24
  257.  CBh    non-cacheable region 3, start address bits 23-16
  258.  CCh    non-cacheable region 3, start addr 15-12, size (low nibble) (see #P014)
  259.  CDh    non-cacheable region 4, start address bits 31-24
  260.  CEh    non-cacheable region 4, start address bits 23-16
  261.  CFh    non-cacheable region 4, start addr 15-12, size (low nibble) (see #P014)
  262. SeeAlso: #P017,#P283
  263.  
  264. (Table P014)
  265. Values for Cyrix Cx486SLC/DLC non-cacheable region sizes:
  266.  00h    disabled
  267.  01h    4K
  268.  02h    8K
  269.  03h    16K
  270.  04h    32K
  271.  05h    64K
  272.  06h    128K
  273.  07h    256K
  274.  08h    512K
  275.  09h    1M
  276.  0Ah    2M
  277.  0Bh    4M
  278.  0Ch    8M
  279.  0Dh    16M
  280.  0Eh    32M
  281.  0Fh    4G
  282. SeeAlso: #P013
  283.  
  284. Bitfields for Cyrix Cx486SLC/DLC Configuration Register 0:
  285. Bit(s)    Description    (Table P015)
  286.  0    "NC0" first 64K of each 1M noncacheable in real/V86
  287.  1    "NC1" 640K-1M noncacheable
  288.  2    "A20M" enables A20M# input pin
  289.  3    "KEN"  enables KEN# input pin
  290.  4    "FLUSH" enables KEN# input pin
  291.  5    "BARB" enables internal cache flushing on bus holds
  292.  6    "C0" cache direct-mapped instead of 2-way associative
  293.  7    "SUSPEND" enables SUSP# input and SUSPA# output pins
  294. SeeAlso: #P013,#P016
  295.  
  296. Bitfields for Cyrix Cx486SLC/DLC Configuration Register 1:
  297. Bit(s)    Description    (Table P016)
  298.  0    "RPL" enables output pins RPLSET and RPLVAL#
  299. SeeAlso: #P013,#P015
  300. ----------P00220023--------------------------
  301. PORT 0022-0023 - Cyrix 5x86 PROCESSOR - CONFIGURATION CONTROL REGISTERS
  302. SeeAlso: PORT 0022h"Cx486",PORT 0022h"6x86"
  303.  
  304. 0022  -W  index for accesses to next port (see #P017)
  305. 0023  RW  configuration control register array (indexed by PORT 0022h)
  306.  
  307. (Table P017)
  308. Values for Cyrix 5x86 configuration registers:
  309.  20h    Performance Control (see #P022)
  310.  C1h    Configuration Control #1 (CCR1) (see #P018)
  311.  C2h    Configuration Control #2 (CCR2) (see #P019)
  312.  C3h    Configuration Control #3 (CCR3) (see #P020)
  313.  CDh    System Memory Management address region #0 (smar0) (see #P023)
  314.  CEh    System Memory Management address region #1 (smar1)
  315.  CFh    System Memory Management address region #2 (smar2)
  316.  E8h    Configuration Control Register 4
  317.  F0h    Power Management (see #P024)
  318.  FEh R    Device Identification #0
  319.     CPU device ID
  320.  FFh R    Device Identification #1
  321.     bits 3-0: revision
  322.     bits 7-4: stepping
  323. Note:    accesses to indices other than 20h,C0h-CFh, or F0h-FFh generate
  324.       external I/O cycles 
  325. SeeAlso: #P013,#P283
  326.  
  327. Bitfields for Cyrix 5x86 Configuration Control Register 1 (CCR1):
  328. Bit(s)    Description    (Table P018)
  329.  0    reserved
  330.  1    enable SMM pins
  331.  2    system management memory access
  332.  3    main memory access
  333.  7-4    reserved
  334. SeeAlso: #P019,#P020,#P021
  335.  
  336. Bitfields for Cyrix 5x86 Configuration Control Register 2 (CCR2):
  337. Bit(s)    Description    (Table P019)
  338.  0    reserved
  339.  1    enable write-back cache interface pins
  340.  2    lock NW bit
  341.  3    suspend on HLT instruction
  342.  4    write-through region 1
  343.  5    reserved
  344.  6    enable burst write cycles
  345.  7    enable suspend pins
  346. SeeAlso: #P018,#P020,#P021
  347.  
  348. Bitfields for Cyrix 5x86 Configuration Control Register 3 (CCR3):
  349. Bit(s)    Description    (Table P020)
  350.  0    SMM register lock
  351.  1    NMI enable
  352.  2    linear address burst cycles
  353.  3    SMM mode
  354.  7-4    map enable (0001 to enable several configuration registers)
  355. SeeAlso: #P018,#P019,#P021,#P022,#P024
  356.  
  357. Bitfields for Cyrix 5x86 Configuration Control Register 4 (CCR4):
  358. Bit(s)    Description    (Table P021)
  359.  2-0    I/O recovery time
  360.  3    enable memory-read bypassing
  361.  4    enable directory table entry cache
  362.  6-5    reserved
  363.  7    enable CPUID instruction (stepping 1+ and Cx6x86) 
  364. Note:    this register is only accessible when bits 7-4 of CCR3 are 0001
  365. SeeAlso: #P018,#P019,#P020
  366.  
  367. Bitfields for Cyrix 5x86 Performance Control register:
  368. Bit(s)    Description    (Table P022)
  369.  0    return stack enabled
  370.  1    branch-target buffer enabled
  371.  2    loop enable
  372.  6-3    reserved (0)
  373.  7    load-store serialization enabled
  374. Note:    this register is only accessible when bits 7-4 of CCR3 are 0001
  375. SeeAlso: #P024,#P018
  376.  
  377. Bitfields for Cyrix 5x86 SMM Address Region register:
  378. Bit(s)    Description    (Table P023)
  379.  3-0    block size
  380.  23-4    starting address
  381.  
  382. Bitfields for Cyrix 5x86 Power Management register:
  383. Bit(s)    Description    (Table P024)
  384.  1-0    core clock to bus clock ratio
  385.  2    CPU running at half bus speed
  386. Note:    this register is only accessible when bits 7-4 of CCR3 are 0001
  387. ----------P00220023--------------------------
  388. PORT 0022-0023 - Cyrix 6x86 PROCESSOR - CONFIGURATION CONTROL REGISTERS
  389. SeeAlso: PORT 0022h"Cx486",PORT 0022h"5x86"
  390.  
  391. 0022  -W  index for accesses to next port (see #P017)
  392. 0023  RW  configuration control register array (indexed by PORT 0022h)
  393.  
  394. (Table P283)
  395. Values for Cyrix 6x86 configuration registers:
  396.  20h    Performance Control (see #P022)
  397.  C0h    Configuration Control Register 0 (CCR0)
  398.  C1h    Configuration Control #1 (CCR1) (see #P018)
  399.  C2h    Configuration Control #2 (CCR2) (see #P019)
  400.  C3h    Configuration Control #3 (CCR3) (see #P020)
  401.  C4h    Address region 0 (bits 31-24)
  402.  C5h    Address region 0 (bits 23-16)
  403.  C6h    Address region 0 (bits 15-12 and size)
  404.  C7h    Address region 1 (bits 31-24)
  405.  C8h    Address region 1 (bits 23-16)
  406.  C9h    Address region 1 (bits 15-12 and size)
  407.  CAh    Address region 2 (bits 31-24)
  408.  CBh    Address region 2 (bits 23-16)
  409.  CCh    Address region 2 (bits 15-12 and size)
  410.  CDh    Address region 3 (bits 31-24)
  411.  CEh    Address region 3 (bits 23-16)
  412.  CFh    Address region 3 (bits 15-12 and size)
  413.  D0h    Address region 4 (bits 31-24)
  414.  D1h    Address region 4 (bits 23-16)
  415.  D2h    Address region 4 (bits 15-12 and size)
  416.  D3h    Address region 5 (bits 31-24)
  417.  D4h    Address region 5 (bits 23-16)
  418.  D5h    Address region 5 (bits 15-12 and size)
  419.  D6h    Address region 6 (bits 31-24)
  420.  D7h    Address region 6 (bits 23-16)
  421.  D8h    Address region 6 (bits 15-12 and size)
  422.  D9h    Address region 7 (bits 31-24)
  423.  DAh    Address region 7 (bits 23-16)
  424.  DBh    Address region 7 (bits 15-12 and size)
  425.  DCh    Region Control 0
  426.  DDh    Region Control 1
  427.  DEh    Region Control 2
  428.  DFh    Region Control 3
  429.  E0h    Region Control 4
  430.  E1h    Region Control 5
  431.  E2h    Region Control 6
  432.  E3h    Region Control 7
  433.  E8h    Configuration Control Register 4
  434.  E9h    Configuration Control Register 5
  435.  FEh R    Device Identification #0
  436.     CPU device ID
  437.  FFh R    Device Identification #1
  438.     bits 3-0: revision
  439.     bits 7-4: stepping
  440. Note:    accesses to indices other than 20h,C0h-CFh, or F0h-FFh generate
  441.       external I/O cycles 
  442. SeeAlso: #P013,#P017
  443. --------X-P00220023--------------------------
  444. PORT 0022-0023 - Intel 82358DT 'Mongoose' EISA CHIPSET - 82359 DRAM CONTROLLER
  445. Notes:    this chip uses a chip ID of 01
  446.     the LIM register herein use a chip ID of 1A
  447. Index: Intel 82351
  448.  
  449. 0022  -W  index for accesses to data port (see #P025,#P276,#P277)
  450. 0023  RW  chip set data
  451.  
  452. (Table P278)
  453. Values for Intel 82351/82359 chip ID:
  454.  01h    82359 DRAM controller, general registers
  455.  02h    82351 EISA local I/O support
  456.  A1h    82359 DRAM controller, EMS registers
  457.  FFh    no chip accessible (default)
  458. SeeAlso: #P025,#P276,#P277
  459.  
  460. (Table P025)
  461. Values for 82359 DRAM controller general register index:
  462.  00h    DRAM bank 0 type
  463.     bit 7    unknown
  464.     bit 6-4    000 DRAM in bank 0 (standard)
  465.         001 bank 1
  466.         010 bank 2
  467.         011 bank 3
  468.         100 banks 0,1
  469.         101 banks 2,3
  470.         110 banks 0,1,2,3
  471.         111 empty (standard for 1,2,3)
  472.     bit 3-2    unknown
  473.     bit 1-0    00 64K chips used
  474.         01 256K
  475.         10 1M
  476.         11 4M
  477.  01h    DRAM bank 1 type
  478.  02h    DRAM bank 2 type
  479.  03h    DRAM bank 3 type
  480.  04h    DRAM speed detection/selection
  481.  05h    DRAM interleave control
  482.  06h    RAS line mode
  483.  07h    cache-enable selection
  484.  08h    mode register A (DRAM, cache)
  485.  09h    mode register B (cache, burst modes, BIOS size)
  486.  0Ah    mode register C (concurrency control, burst/cycle speed)
  487.  10h    host timing
  488.  11h    host-system delay timing
  489.  12h    system timing
  490.  13h    DRAM row precharge time
  491.  14h    DRAM row timing
  492.  15h    DRAM column timing
  493.  16h    CAS pulse width
  494.  17h    CAS-to-MDS delay
  495.  21h    chip ID register -- selects which chip responds on these ports
  496.     (see #P278)
  497.  28h-2Ch    parity-error trap address
  498.  30h    page hit cycle length (read)
  499.  31h    page miss cycle length (read)
  500.  32h    row miss cycle length (read)
  501.  33h    page hit cycle length (write)
  502.  34h    page miss cycle length (write)
  503.  35h    row miss cycle length (write)
  504.  40h    memory enable 00000h-7FFFFh
  505.  41h    memory enable 80000h-9FFFFh
  506.  42h    memory enable A0000h-AFFFFh
  507.  43h    memory enable B0000h-BFFFFh
  508.  44h    memory enable C0000h-CFFFFh
  509.  45h    memory enable D0000h-DFFFFh
  510.  46h    memory enable E0000h-EFFFFh
  511.  47h    memory enable F0000h-FFFFFh
  512.  4Eh    remap 80000h-FFFFFh to extended memory
  513.  50h-53h    programmable attribute map 1
  514.  54h-57h    programmable attribute map 2
  515.  58h-5Bh    programmable attribute map 3
  516.  5Ch-5Fh    programmable attribute map 4
  517.  83h-84h    split address register (address bits A31-A20)
  518.  85h    cache control
  519.  8Bh    system throttle
  520.  8Ch    host throttle
  521.  8Dh    host memory throttle watchdog
  522.  8Eh    host system throttle
  523.  8Fh    host system throttle watchdog
  524.  90h    RAM enable
  525.  91h    RAM disable
  526.  92h-93h    elapsed-time registers
  527.  94h-95h    host memory ownership request
  528.  96h-97h    system memory ownership request
  529.  98h-99h    host memory ownership
  530.  9Ah-9Bh    system bus ownership
  531.  9Ch-9Dh    host system bus request
  532.  9Eh-9Fh    memory ownership transfer
  533. SeeAlso: #P276,#P277
  534.  
  535. (Table P276)
  536. Values for Intel 82359 DRAM controller EMS register index:
  537.  00h    EMS cotnrol
  538.  21h    chip ID register -- selects which chip responds on these ports
  539.     (see #P278)
  540.  80h-8Fh    EMS page registers, pages 0-7
  541. SeeAlso: #P025,#P277
  542.  
  543. (Table P277)
  544. Values for Intel 82351 EISA Local I/O register index:
  545.  21h    chip ID register -- selects which chip responds on these ports
  546.     (see #P278)
  547.  C0h    peripheral enable register A
  548.  C1h    peripheral enable register B
  549.  C2h    parallel configuration register
  550.  C3h    serial configuration register A
  551.  C4h    floppy disk controller configuration register
  552.  C5h    serial configuration register B
  553.  C6h    COM3 port address (low)
  554.  C7h    COM3 port address (high)
  555.  C8h    COM4 port address (low)
  556.  C9h    COM4 port address (high)
  557.  D0h-D3h    general chip select lines 0-3 (mask registers)
  558.  D4h-D7h    general chip select line addresses 0-3 (low bytes)
  559.  D8h-DBh    general chip select line addresses 0-3 (high bytes)
  560.  DCh    extended CMOS RAM page port address (low)
  561.  DDh    extended CMOS RAM page port address (high)
  562.  DFh    extended CMOS RAM access select address (high byte)
  563.  E8h-EBh    EISA ID configuration registers (reflect at PORT 0C80h)
  564. SeeAlso: #P025,#P276
  565. ----------P00220023--------------------------
  566. PORT 0022-0023 - CHIPSET FROM ETEC CHEETAH ET6000 (SINGLE CHIP)
  567.  
  568. 0022  RW  chip set data
  569. 0023  ?W  index for accesses to data port (see #P026)
  570.  
  571. (Table P026)
  572. Values for Etec Cheetah ET6000 chip set register index:
  573.  10h    system configuration register (see #P027)
  574.  11h    cache configuration & non-cacheable block size register (see #P028)
  575.  12h    non-cacheable block address register
  576.     bit 7-1    non-cacheable address, A25-A19
  577.     bit 0    reserved
  578.  13h    DRAM bank & type configuration register (see #P029)
  579.  14h    DRAM configuration register (see #P030)
  580.  15h    shadow RAM configuration register (see #P031)
  581.  
  582. Bitfields for Etec Cheetah ET6000 system configuration register:
  583. Bit(s)    Description    (Table P027)
  584.  7-6    00 turbo/non-turbo
  585.     01 local device supported
  586.     10 suspend mode
  587.     11 illegal
  588.  5    reserved
  589.  4    refresh selection
  590.     0 = AT type refresh
  591.     1 = concurrent refresh
  592.  3    slow refresh  95mSec enabled
  593.  2    fast reset delay
  594.     0 = do not use delay
  595.     1 = wait for 2mSec delay
  596.  1    wait for HALT after KBDRST
  597.  0    RAM at A0000-BFFFF
  598.     0 = AT bus cycle
  599.     1 = local bus cycle
  600. SeeAlso: #P026
  601.  
  602. Bitfields for Etec Cheetah ET6000 cache configuration register:
  603. Bit(s)    Description    (Table P028)
  604.  7-5    000 disabled
  605.     001 512K
  606.     010 1M
  607.     011 2M
  608.     100 4M
  609.     101 8M
  610.     110 16M
  611.     111 32M
  612.  4    DRAM banks
  613.     0 = 2-bank DRAM
  614.     1 = 4-bank DRAM
  615.  3-0    reserved
  616. SeeAlso: #P026
  617.  
  618. Bitfields for Etec Cheetah ET6000 DRAM bank & type configuration register:
  619. Bit(s)    Description    (Table P029)
  620.  7-6    bank 3 DRAM type
  621.     00 none
  622.     01 256K
  623.     10 1M
  624.     11 4M
  625.  5-4    bank 2 DRAM type
  626.  3-2    bank 1 DRAM type
  627.  1-0    bank 0 DRAM type
  628. SeeAlso: #P026
  629.  
  630. Bitfields for Etec Cheetah ET6000 DRAM configuration register:
  631. Bit(s)    Description    (Table P030)
  632.  7    on-board memory range 15M to 16M disabled
  633.  6    on-board memory range 512K-640K disabled
  634.  5    ROM chip select at C0000-DFFFF enabled
  635.  4    RAS to CAS time
  636.     0 = 1 SYSCLCK,    not for R0WS
  637.     1 = 2 SYSCLCK
  638.  3    RAS precharge time
  639.     0 = 1.5 SYSCLCK
  640.     1 = 2.5 SYSCLCK
  641.  2-1    read cycle wait state
  642.     00 = 0 wait state
  643.     01 = 1 ws
  644.     10 = 2 ws
  645.     11 = 3 ws
  646.  0    write cycle wait state
  647.     0 = 0 ws
  648.     1 = 1 ws
  649. SeeAlso: #P026
  650.  
  651. Bitfields for Etec Cheetah ET6000 shadow RAM configuration register:
  652. Bit(s)    Description    (Table P031)
  653.  7    shadow at C0000-FFFFF
  654.     0 = non-cacheable
  655.     1 = cacheable and cache-write-proteced
  656.  6    access ROM/RAM at F0000-FFFFF
  657.     0 = read from ROM, write to RAM
  658.     1 = read from shadow, write is protected
  659.  5    access ROM/RAM at E0000-EFFFF
  660.     0 = access on-board ROM, AT bus cycle
  661.     1 = access shadow E0000-EFFFF enabled
  662.  4    RAM at E0000-EFFFF is read-only
  663.  3    access ROM/RAM at D0000-DFFFF
  664.     0 = access on-board ROM, AT bus cycle
  665.     1 = access shadow D0000-DFFFF enabled
  666.  2    RAM at D0000-DFFFF is read-only
  667.  1    access ROM/RAM at C0000-CFFFF
  668.     0 = access on-board ROM, AT bus cycle
  669.     1 = access shadow C0000-CFFFF enabled
  670.  0    RAM at C0000-CFFFF is read-only
  671. SeeAlso: #P026
  672. ----------P00220023--------------------------
  673. PORT 0022-0023 - Hewlett-Packard Hornet chipset (HP 100LX/200LX)
  674.  
  675. 0022  RW  index for accesses to data port (see Table P189)
  676. 0023  RW  chip set data
  677.  
  678. (Table P032)
  679. Values for HP Hornet chipset register index:
  680.  1Eh    buzzer volume/clock oscillator speed
  681.     bit 7-6: buzzer volume
  682.     bit 5-4: system oscillator speed
  683.         00: 10.738636MHz
  684.         01: 15.836773MHz(HP 100/200LX has oscillator with this speed)
  685.         10: 21.477272MHz
  686.         11: 31.673550MHz
  687.  21h    display timing???
  688.  23h    LCD contrast (see INT15h AH=62h)
  689.     valid values: 00h-1fh (1fh is the darkest)
  690.  51h    power adapter status
  691.     bit 7-1: ???
  692.     bit 0: power adapter status(0=inactive/1=active)
  693.  52h    nicad charge status
  694.     bit 7-3: ???
  695.     bit 2: battery charging status(0=???/1=slow charge)
  696.     bit 1-0: ???
  697.  53h    nicad charge status
  698.     bit 7-1: ???
  699.     bit 0: battery charging status(0=???/1=fast charge)
  700.  80h    memory wait for internal ROM
  701.     valid values: 00h-07h
  702.  81h    memory wait for internal RAM
  703.     valid values: 00h-03h
  704.  82h    memory wait for external RAM
  705.     valid values: 00h-0fh
  706.  87h    battery status???
  707. ----------P00220024--------------------------
  708. PORT 0022-0024 - CHIPSET FROM PICO POWER, UMC or PCChips
  709.  
  710. 0022  ?W  index for accesses to data port
  711. 0024  RW  chip set data
  712. ----------P00220025--------------------------
  713. PORT 0022-0025 - INTEL 82360SL CHIPSET (FOR 386SL)
  714.  
  715. 0022  -W  CPU write mode register
  716. 0023  R-  configuration status register
  717.         bit 7: 82360 configuration is open
  718. 0024  -W  82360 configuration index
  719. 0025  RW  82360 configuration data
  720.  
  721. Bitfields for Intel 82360SL CPU write mode register:
  722. Bit(s)    Description    (Table P033)
  723.  0    unlock configuration space
  724.  1    enable selected unit
  725.  3-2    unit
  726.     00 memory configuration
  727.     01 cache
  728.     10 internal bus
  729.     11 external bus
  730. ----------P0022002B--------------------------
  731. PORT 0022-002B - INTEL 82355, PART OF CHIPSET FOR 386sx
  732. Note:    initialisation in POST will disable these addresses, only a hard
  733.       reset will enable them again.
  734.  
  735. 0022w RW  82335 MCR memory configuration register (if LOCK=0) (see #P034)
  736. 0024w RW  82335 RC1 roll compare register (if LOCK=0) (see #P035)
  737. 0026w RW  82335 RC2 roll compare register (if LOCK=0) (see #P035)
  738. 0028w RW  82335 CC0 address range compare register (if LOCK=0) (see #P036)
  739. 002Aw RW  82335 CC1 address range compare register (if LOCK=0) (see #P036)
  740.  
  741. Bitfields for 82335 MCR memory configuration register:
  742. Bit(s)    Description    (Table P034)
  743.  15-12    reserved
  744.  11    "VRO"    video read only (0=r/w, 1=r/o)
  745.  10    "EN#"
  746.     0=enable video RAM accesses (A0000h-8FFFFh)
  747.     1=disable accesses
  748.  9    "ENADP#"
  749.     0=enable adapter ROM accesses (C0000h-8FFFFh)
  750.     1=disable adapter ROM accesses, shadow enabled
  751.  8    "ROMSIZE" 0=256KB ROM, 1=512KB ROM
  752.  7-6    "INTERL" memory interleaving
  753.     00 = 1 memory bank installed (no interleave)
  754.     01 = 2 memory banks installed
  755.     10 = 3 memory banks installed
  756.     11 = 4 memory banks installed
  757.  5    reserved
  758.  4    "DSIZE"     0=1MBx1DRAMs, 1=256KBx1 or 256KBx4 DRAMs
  759.  3    "S640"     base memory size is 0=512KB, 1=640KB
  760.  2-1    reserved
  761.  0    "ROMEN#" ROM enable
  762.     0 enable BIOS ROM accesses (E0000h-FFFFFh)
  763.     1 disable BIOS ROM accesses, enable shadow
  764. Note:    One of the remaining reserved bits is the LOCK bit, which will be set
  765.       during power on, disabling access to the 82335s registers.
  766.  
  767. Bitfields for 82335 roll compare register:
  768. Bit(s)    Description    (Table P035)
  769.  15-9    selects address range to be remapped (C23-C17)
  770.  8    reserved
  771.  7-1    selects address bits to be included in re-mapping comparision (M23-M17)
  772.  0    "EN" enables roll address mapping
  773.  
  774. Bitfields for 82335 address range compare register:
  775. Bit(s)    Description    (Table P036)
  776.  15-11    specifies top of address range (C23-C19)
  777.  10-8    reserved
  778.  7-3    selects address bits to be included in address range comparision
  779.       (M23-M19)
  780.  2-1    reserved
  781.  0    "EN" enable address range comparision
  782. ----------P00240028--------------------------
  783. PORT 0024-0028 - HEADLAND HTK340 SHASTA 386/486 CHIPSET
  784.  
  785. 0024  Rw  data port
  786. 0028  ?W  index port to chipset registers (see #P037,#P038)
  787.  
  788. (Table P037)
  789. Values for Headland HT321 register index:
  790.  00h R    chip/revision,read-only
  791.       bit7-4: reserved (=0)
  792.       bit3-0: chip revision, 0=A, 1=B, 3=D
  793.  01h RW system clocking (default=00h)
  794.       bit7-4: reserved (=0)
  795.       bit3-0: ISA speed set
  796.  02h RW system parameters (default=00h) (see #P039)
  797.  04h RW co-processor (default=00h)
  798.       bit7-3: reserved (=0)
  799.       bit2=1: soft-NPU reset blocked (386 only)
  800.       bit1=1: weitek installed
  801.       bit0=1: 387 installed
  802.  06h RW DMA (default=00h) (see #P040)
  803.  07h RW EPROM (default=00h) (see #P041)
  804.  08h RW I/O and memory map holes (default=00h)
  805.       bit7-4: reserved (=0)
  806.       bit3    : 0/1 I/O map hole-A
  807.       bit2    : reserved (=0)
  808.       bit1    : 0/1 memory map hole-B
  809.       bit0    : reserved (=0)
  810.  10h RW hole-A low address (default=00h)
  811.  11h RW hole-A high address (default=00h)
  812.  19h RW mem hole-B start address, lower (default=00h)
  813.  1Ah RW mem hole-B start address, higher (default=00h)
  814.       bit7-6: reserved (=0)
  815.       bit5-0: address of mem hole-B start
  816.  1Ch RW mem hole-B end address, lower (default=00h)
  817.  1Dh RW mem hole-B end address, higher (default=00h)
  818.       bit7-6: reserved (=0)
  819.       bit5-0: address of mem hole-B end
  820. SeeAlso: #P038
  821.  
  822. (Table P038)
  823. Values for Headland HT342 register index:
  824.  20h R    identifier port read
  825.       bit7-4: DRAM controller identifier (0010b)
  826.       bit3-0: revision number (0=A)
  827.  21h R    feature port read    (default=00h)
  828.  24h RW DRAM options port #1 (default=00h)
  829.       bit7    : 0/1 staggered refresh
  830.       bit6    : refresh type
  831.       bit5    : 0/1 DRAM paging
  832.       bit4-2: CAS interleave
  833.       bit1-0: banks
  834.  25h    DRAM options port #2 (default=00h)
  835.       bit7-6: DRAM bank 1 type
  836.       bit5-4: DRAM bank 2 type
  837.       bit3-2: DRAM bank 1?? type
  838.       bit1-0: DRAM bank 0 type
  839.  26h RW DRAM options port #3 (default=FFh) (see #P042)
  840.  27h RW DRAM options port #4 (default=FFh) (see #P043)
  841.  28h RW data transfer control port (default=00h)
  842.     doubled indexed registers (28h-2Ah)
  843.       bit7    : initiate transfer
  844.       bit6    : read/write transfer
  845.       bit5-4: reserved
  846.       bit3-0: transfer/destination
  847.  29h RW RAM address register (default=00h)
  848.     doubled indexed registers (28h-2Ah)
  849.       bit7-5: reserved
  850.       bit4-0: RAM address registers contents
  851.  2Ah RW data transfer port   (default=00h)
  852.     doubled indexed registers (28h-2Ah)
  853.       bit7-6: reserved
  854.       bit5    : EMS translation
  855.       bit4    : reserved
  856.       bit3    : 0/1 cacheing
  857.       bit2    : 0/1 write
  858.       bit1    : 0/1 read
  859.       bit0    : 0/1 shadow
  860.  2Bh RW other options          (default=00h) (see #P044)
  861.  2Dh RW DRAM options port #5 (default=03h)
  862.       bit7-5: reserved
  863.       bit4    : 0/1 10µs RAS timeout
  864.       bit3-2: BUS speed
  865.       bit1-0: BUS recovery for DRAM cycles
  866.            00b=0: 4-1-1-1    10b=0.5
  867.            01b=1: 4-2-2-2    11b=1??
  868.  82h    read transfer
  869.  C2h    write transfer
  870. SeeAlso: #P037
  871.  
  872. Bitfields for Headland HT321 register 02h (system parameters):
  873. Bit(s)    Description    (Table P039)
  874.  7-6    IO recovery time (rev. D+)
  875.  5    parity override
  876.  4-3    cycle-width
  877.  2    0/1 PORT 0092h functionality
  878.  1    IO decode
  879.  0    0/1 posted backplane MEMWN cycles
  880. SeeAlso: #P037
  881.  
  882. Bitfields for Headland HT321 register 06h (DMA control):
  883. Bit(s)    Description    (Table P040)
  884.  7    reserved (=0)
  885.  6    1/0 IOCHRDY during master cycle (rev. C+)
  886.  5    0/1 fast sample DMA
  887.  4-3    DMA waitstate 00b=3 .. 11b=0
  888.  2    0/1 DMA flow-through mode
  889.  1    0/1 extended DMA page register
  890.  0    DMA clock
  891. SeeAlso: #P037 
  892.  
  893. Bitfields for Headland HT321 register 07h (EPROM control):
  894. Bit(s)    Description    (Table P041)
  895.  7-6    reserved (=0)
  896.  5    0/1 EADS CACHE invalidation for EPROM writes (rev. D+)
  897.  4    0/1 ROMEN for EPROM writes (rev. C+)
  898.  3    0/1 middle BIOS region of 64KB space below 16MB
  899.  2    ROM-size (0=64KB, 1=128KB)
  900.  1    V-BIOS-add (0=separate, 1=same device)
  901.  0    ROM-access time (0=250ns, 1=125ns)
  902. SeeAlso: #P037
  903.  
  904. Bitfields for Headland HT342 register 26h (DRAM CAS control):
  905. Bit(s)    Description    (Table P042)
  906.  7    CAS hold on RAS (CAS before RAS refresh)
  907.  6    CAS precharge
  908.  5    CAS burst delay
  909.  4    CAS delay (writes)
  910.  3    CAS delay (reads)
  911.  2    CAS active time (writes)
  912.  1-0    CAS active time (reads)
  913. SeeAlso: #P038,#P043
  914.  
  915. Bitfields for Headland HT342 register 27h (DRAM RAS control):
  916. Bit(s)    Description    (Table P043)
  917.  7    RAS delay
  918.  6-5    RAS active (writes)
  919.  4-2    RAS active (reads)
  920.  1-0    RAS precharge
  921. SeeAlso: #P038,#P042
  922.  
  923. Bitfields for Headland HT342 register 2Bh (other options):
  924. Bit(s)    Description    (Table P044)
  925.  7    reserved
  926.  6    0/1 middle BIOS
  927.  5    0/1 data pipeline
  928.  4    0/1 data pipeline
  929.  3    IO-decode
  930.  2    reserved
  931.  1    16bit DMA bridge
  932.  0    0/1 write buffering
  933. SeeAlso: #P038
  934. ----------P00260027--------------------------
  935. PORT 0026-0027 - INTEL 82347 POWER MANAGEMENT PERIPHERAL
  936. SeeAlso: PORT 0178h-0179h
  937.  
  938. 0026  -W  index for data port (see #P279)
  939. 0027  RW  power management data
  940.  
  941. (Table P279)
  942. Values for Intel 82437 Power Management Peripheral register index:
  943.  C0h    suspend/wakeup status, system state
  944.  C1h    power supply and activity status, general-purpose output/control
  945.  C2h    control bits
  946.  C3h    activity mask
  947.  C4h    NMI mask
  948.  C5h    I/O range for activity monitor
  949.  C6h    power output control bits, ON state
  950.  C7h    power output control bits, Doze state
  951.  C8h    power output control bits, Sleep state
  952.  C9h    power output control bits, Suspend state
  953.  CAh    power control bits polarity control
  954.  CBh    current output bits
  955.  CCh    Doze timeout
  956.  CDh    Sleep timeout
  957.  CEh    Suspend timeout
  958.  CFh    LCD display power timeout
  959.  D0h    EL display power timeout
  960. ----------P002E002F--------------------------
  961. PORT 002E-002F - DELL ENHANCED PARALLEL PORT
  962. SeeAlso: PORT 015Ch,PORT 026Eh,PORT 0398h
  963.  
  964. 002E  -W  index for data port (see #P045)
  965. 002F  RW  EPP command data
  966.  
  967. (Table P045)
  968. Values for Dell Enhanced Parallel Port register index:
  969.  00h    bit 0: ???
  970.  02h    bit 7: port in bidirectional mode
  971.  04h    bits 0 and 2: ECP/EPP mode control
  972. ----------P002E002F--------------------------
  973. PORT 002E-002F - Intel "Nonolet" Motherboard - POWER MANAGEMENT
  974.  
  975. 002E  ?W  index for data port
  976. 002F  ?W  data port
  977.  
  978. code sequence posted in fido7.nice.sources by Konstantin Mohorea:
  979.      out 2Eh,0Ch
  980.      out 2Fh,75h
  981.      out 2Eh,11h
  982.      out 2Fh,00h
  983.      out 2Eh,0Dh
  984.      out 2Fh,A0h
  985. ----------P0038003F--------------------------
  986. PORT 0038-003F - PC radio by CoZet Info Systems
  987. Notes:    The I/O address range is dipswitch selectable from:
  988.        038-03F and 0B0-0BF
  989.        078-07F and 0F0-0FF
  990.        138-13F and 1B0-1BF
  991.        178-17F and 1F0-1FF
  992.        238-23F and 2B0-2BF
  993.        278-27F and 2F0-2FF
  994.        338-33F and 3B0-3BF
  995.        378-37F and 3F0-3FF
  996.     All of these addresses show a readout of FF in initial state.
  997.     Once started, all of the addresses show     FB, whatever might happen.
  998. ----------P0040005F--------------------------
  999. PORT 0040-005F - PIT - PROGRAMMABLE INTERVAL TIMER (8253, 8254)
  1000. Note:    XT & AT use ports 40h-43h; PS/2 uses ports 40h, 42h-44h, and 47h
  1001. SeeAlso: PORT 0044h,PORT 0048h
  1002.  
  1003. 0040  RW  PIT  counter 0, counter divisor          (XT, AT, PS/2)
  1004. 0041  RW  PIT  counter 1, RAM refresh counter    (XT, AT)
  1005.             don't set below 3 on PCs (default 12h)
  1006. 0042  RW  PIT  counter 2, cassette & speaker    (XT, AT, PS/2)
  1007.     During normal operation mode (8253) 40h-42h set the counter values on
  1008.     write and get the current counter value on read. In 16bit modes two
  1009.     consequtive writes/reads must be issued, first with the low byte,
  1010.     followed by the high byte. In 8254 read back modes, all selected
  1011.     counters and status are latched and must be read out completely
  1012.     before normal operation is valid again.     Each counter switches back
  1013.     to normal operation after read out.  In 'get status and counter'
  1014.     mode the first byte read is the status, followed by one or two
  1015.     counter values. (see #P046)
  1016. 0043  RW  PIT  mode port, control word register for counters 0-2 (see #P047)
  1017.     Once a control word has been written (43h), it must be followed
  1018.     immediately by performing the corresponding action to the counter
  1019.     registers (40h-42h), else the system may hang!!
  1020.  
  1021. Bitfields for 8254 PIT counter status byte:
  1022. Bit(s)    Description    (Table P046)
  1023.  7    PIN status of OUTx Pins (1=high, 0=low)
  1024.  6    counter start value loaded
  1025.     =0: yes, so counter latch is valid to be read
  1026.     =1: no, wait for counter latch to be set (may last a while)
  1027. 5-0    counter mode, same as bit5-0 at 43h
  1028. SeeAlso: #P047
  1029.  
  1030. Bitfields for 8253/8254 PIT mode control word:
  1031. Bit(s)    Description    (Table P047)
  1032.  7-6    counter select
  1033.     00  counter 0 select
  1034.     01  counter 1 select      (not PS/2)
  1035.     10  counter 2 select
  1036.     11  (8253) reserved
  1037.         (8254) read back counter (see #P046)
  1038. ---if counter select---
  1039.  5-4    counter access
  1040.     00  counter latch command
  1041.         BUG:    Intel Neptune/Mercury Chipset 8237IB (SIO) needs a
  1042.               short delay after issueing this command, else the
  1043.               MSB may be outdated concerning the LSB, resulting
  1044.               in large measuring errors.
  1045.             Workaround: Check for this condition by comparing
  1046.               results with last results and don't use errornous
  1047.               results.
  1048.     01  read/write counter bits 0-7 only
  1049.     10  read/write counter bits 8-15 only
  1050.     11  read/write counter bits 0-7 first, then 8-15
  1051.  3-1    counter mode
  1052.     000 mode 0 select - zero detection interrupt
  1053.     001 mode 1 select - programmable one shot
  1054.     x10 mode 2 select - rate generator
  1055.     x11 mode 3 select - square wave generator
  1056.         divisor factor 3 not allowed!
  1057.     100 mode 4 select - software triggered strobe
  1058.     101 mode 5 select - hardware triggered strobe
  1059.  0    counting style
  1060.     0  binary counter 16 bits
  1061.     1  BCD counter (4 decades)
  1062. ---if read back---
  1063.  5-4    what to read
  1064.     00 reserved
  1065.     01 counter status
  1066.     10 counter value
  1067.     11 counter status and value
  1068.  3    select counter 2
  1069.  2    select counter 1
  1070.  1    select counter 0
  1071.  0    reserved (0)
  1072. Note:    after issuing a read back 'get status' command, any new read back
  1073.       command is ignored until the status is read from all selected
  1074.       counters.
  1075. ----------P00430047--------------------------
  1076. PORT 0044-0047 - Microchannel - PROGRAMMABLE INTERVAL TIMER 2
  1077. SeeAlso: PORT 0040h,PORT 0048h
  1078.  
  1079. 0044  RW  PIT  counter 3 (PS/2)
  1080.         used as fail-safe timer. generates an NMI on time out.
  1081.         for user generated NMI see at 0462.
  1082. 0047  -W  PIT  control word register counter 3 (PS/2, EISA)
  1083.     bit 7-6 = 00  counter 3 select
  1084.         = 01  reserved
  1085.         = 10  reserved
  1086.         = 11  reserved
  1087.     bit 5-4 = 00  counter latch command counter 3
  1088.         = 01  read/write counter bits 0-7 only
  1089.         = 1x  reserved
  1090.     bit 3-0 = 00
  1091. ---------------------------------------------
  1092. PORT 0048-004B - EISA - PROGRAMMABLE INTERVAL TIMER 2
  1093. SeeAlso: PORT 0040h,PORT 0044h
  1094.  
  1095. 0048  RW  EISA PIT2 counter 3 (Watchdog Timer)
  1096. 0049  ??  EISA 8254 timer 2, not used (counter 4)
  1097. 004A  RW  EISA PIT2 counter 5 (CPU speed control)
  1098. 004B  -W  EISA PIT2 control word
  1099. ----------P0060006F--------------------------
  1100. PORT 0060-006F - KEYBOARD CONTROLLER 804x (8041, 8042) (or PPI (8255) on PC,XT)
  1101. Note:    XT uses ports 60h-63h, AT uses ports 60h-64h
  1102.  
  1103. 0060  RW  KB controller data port or keyboard input buffer (ISA, EISA)
  1104.         should only be read from after status port bit0 = 1
  1105.         should only be written to if status port bit1 = 0
  1106. 0060  R-  KeyBoard or KB controller data output buffer (via PPI on XT)
  1107.         PC: input from port A of 8255, if bit7 in 61h set (see #P063)
  1108.         get scancodes, special codes (in PC: with bit7 in 61h cleared)
  1109.           (see #P057)
  1110.  
  1111. 0061  R-  KB controller port B control register (ISA, EISA)
  1112.         system control port for compatibility with 8255 (see #P060)
  1113. 0061  -W  KB controller port B (ISA, EISA)   (PS/2 port A is at 0092)
  1114.         system control port for compatibility with 8255 (see #P059)
  1115. 0061  -W  PPI Programmable Peripheral Interface 8255 (XT only)
  1116.         system control port (see #P061)
  1117. 0062  RW  PPI (XT only) data port C (see #P062)
  1118. 0063  RW  PPI (XT only) command mode register (see #P064)
  1119.  
  1120. 0064  R-  keyboard controller read status (see #P065,#P066,#P067)
  1121. 0064  -W  keyboard controller input buffer (ISA, EISA) (see #P068)
  1122.  
  1123. 0064  -W  (Amstrad/Schneider PC1512) set 'DIP switch S1' setting
  1124.       stored in CMOS RAM that PPI should report for compatibility
  1125. 0065  -W  (Amstrad/Schneider PC1512) set 'DIP switch S2' RAM size setting
  1126.       stored in CMOS RAM, that PPI port C (PORT 0064h) should report for
  1127.       compatibility
  1128.  
  1129. 0065  R-  communications port (Olivetti M24)
  1130.  
  1131. 0068  -W  (HP-Vectra) control buffer (HP commands) (see #P069)
  1132. 0069  R-  (HP-Vectra) SVC (keyboard request SerViCe port)
  1133. 006A  -W  (HP-Vectra) Acknowledge (clear processing, done)
  1134. 006C-006F    HP-HIL    (Human Interface Link = async. serial inputs 0-7)
  1135.  
  1136. Bitfields for AT keyboard controller input port:
  1137. Bit(s)    Description    (Table P048)
  1138.  7    keyboard enabled
  1139.  6    =0  CGA, else MDA
  1140.  5    =0  manufacturing jumper installed
  1141.  4    =0  system RAM 512K, else 640K
  1142.  3-0    reserved
  1143. SeeAlso: #P049,#P051
  1144.  
  1145. Bitfields for AT keyboard controller input port (Compaq):
  1146. Bit(s)    Description    (Table P049)
  1147.  7    security lock is unlocked
  1148.  6    =0  Compaq dual-scan display, 1=non-Compaq display
  1149.  5    system board dip switch 5 is OFF
  1150.  4    =0  auto speed selected, 1=high speed selected
  1151.  3    =0  slow (4MHz), 1 = fast (8MHz)
  1152.  2    no math coprocessor installed
  1153.  1-0    reserved
  1154. SeeAlso: #P050
  1155.  
  1156. Bitfields for AT keyboard controller output port:
  1157. Bit(s)    Description    (Table P050)
  1158.  7    keyboard data output
  1159.  6    keyboard clock output
  1160.  5    input buffer NOT full
  1161.  4    output buffer NOT empty
  1162.  3    reserved (see note)
  1163.  2    reserved (see note)
  1164.  1    gate A20
  1165.  0    system reset
  1166. Note:    bits 2 and 3 are the turbo speed switch or password lock on
  1167.       Award/AMI/Phoenix BIOSes.  These bits make use of nonstandard
  1168.       keyboard controller BIOS functionality to manipulate
  1169.         pin 23 (8041 port 22) as turbo switch for AWARD
  1170.         pin 35 (8041 port 15) as turbo switch/pw lock for Phoenix
  1171. SeeAlso: #P048,#P051
  1172.  
  1173. Bitfields for HP Vectra keyboard controller output port:
  1174. Bit(s)    Description    (Table P051)
  1175.  7-5    reserved
  1176.  4    output buffer full (OBF) interrupt
  1177.  3    HP SVC interrupt
  1178.  2    HP-HIL controller AutoPoll
  1179.  1    A20 gate
  1180.  0    system reset
  1181. SeeAlso: #P050,#P052
  1182.  
  1183. Bitfields for HP Vectra command byte:
  1184. Bit(s)    Description    (Table P052)
  1185.  7    reserved (0)
  1186.  6    scancode conversion mode (1 = PC/XT, 0 = PC/AT)
  1187.  5    unused
  1188.  4    disable keyboard (unless bit 3 set)
  1189.  3    override keyboard disable
  1190.  2    System Flag (may be read from PORT 0060h)
  1191.  1    reserved
  1192.  0    OBF interrupt enable
  1193. SeeAlso: #P051
  1194.  
  1195. (Table P053)
  1196. Values for keyboard commands (data also goes to PORT 0060h):
  1197. Value    Count    Description
  1198.  EDh    double    set/reset mode indicators Caps Num Scrl
  1199.         bit 2 = CapsLk, bit 1 = NumLk, bit 0 = ScrlLk
  1200.         all other bits must be zero.
  1201.  EEh    sngl    diagnostic echo. returns EEh.
  1202.  EFh    sngl    NOP (No OPeration). reserved for future use
  1203.  EF+26h    double    [Cherry MF2 G80-1501HAD] read 256 bytes of chipcard data
  1204.         keyboard must be disabled before this and has to
  1205.         be enabled after finished.
  1206.  F0h    double    get/set scan code set
  1207.         00h get current set
  1208.         01h scancode set 1 (PCs and PS/2 mod 30, except Type 2 ctrlr)
  1209.         02h scancode set 2 (ATs, PS/2, default)
  1210.         03h scancode set 3
  1211.  F2h    sngl    read keyboard ID (read two ID bytes)
  1212.         AT keyboards returns FA (ACK)
  1213.         MF2 returns AB 41 (translation) or
  1214.                 AB 83 (pass through)
  1215.  F3h    double    set typematic rate/delay
  1216.         format of the second byte:
  1217.         bit7=0 : reserved
  1218.         bit6-5 : typemativ delay
  1219.              00b=250ms     10b= 750ms
  1220.              01b=500ms     11b=1000ms
  1221.         bit4-0 : typematic rate (see #P058)
  1222.  F4h    sngl    enable keyboard
  1223.  F5h    sngl    disable keyboard. set default parameters (no keyboard scanning)
  1224.  F6h    sngl    set default parameters
  1225.  F7h    sngl    [MCA] set all keys to typematic (scancode set 3)
  1226.  F8h    sngl    [MCA] set all keys to make/release
  1227.  F9h    sngl    [MCA] set all keys to make only
  1228.  FAh    sngl    [MCA] set all keys to typematic/make/release
  1229.  FBh    sngl    [MCA] set al keys to typematic
  1230.  FCh    double    [MCA] set specific key to make/release
  1231.  FDh    double    [MCA] set specific key to make only
  1232.  FEh    sngl    resend last scancode
  1233.  FFh    sngl    perform internal power-on reset function
  1234. Note:    each command is acknowledged by FAh (ACK), if not mentioned otherwise.
  1235.       See PORT 0060h-R for details.
  1236. SeeAlso: #P054
  1237.  
  1238. (Table P054)
  1239. Values for Mouse functions (for PS/2-like pointing devices):
  1240. Value    Count    Description
  1241.  E6h    sngl    set mouse scaling to 1:1
  1242.  E7h    sngl    set mouse scaling to 2:1
  1243.  E8h    double    set mouse resolution
  1244.         (00h=1/mm, 01h=2/mm, 02h=4/mm, 03h=8/mm)
  1245.  E9h    sngl    get mouse information
  1246.         read two status bytes:
  1247.           byte 0: flags (see #P055)
  1248.           byte 1: resolution
  1249.  EAh    sngl    set mouse to stream mode (mouse sends data on any changes)
  1250.  EBh    sngl    get mouse data (from mouse to controller) (see #P056)
  1251.         on reading, each data packet consists of 8 bytes:
  1252.  ECh    sngl    reset mouse wrap mode (to normal mode)
  1253.  EEh    sngl    set wrap mode
  1254.  F0h    sngl    set remote mode (instead of stream mode), mouse sends data
  1255.           only on issueing command EBh.
  1256.  F2h    sngl    read mouse ID (read one, two?? ID bytes)
  1257.         00h=mouse
  1258.  F3h    double    set mouse sample rate in reports per second
  1259.         0Ah=10/s       50h= 80/s
  1260.         14h=20/s       64h=100/s
  1261.         28h=40/s       C8h=200/s
  1262.         3Ch=60/s
  1263.  F4h    sngl    enable mouse (in stream mode)
  1264.  F5h    sngl    disable mouse (in steam mode), set default parameters
  1265.  F6h    sngl    reset to defaults: 100/s, scaling 1:1, stream-mode, 4/mm,
  1266.           disabled
  1267.  FEh    sngl    resend last mouse data (8 bytes, see EBh)
  1268.  FFh    sngl    reset mouse
  1269. Notes:     must issue command D4h to PORT 0064h first to access mouse functions
  1270.      all commands except ECh and FFh are acknowledged by FAh (ACK) or
  1271.        FEh (Resend); get mouse ID (F2h) returns mouse ID.
  1272. SeeAlso: #P053
  1273.  
  1274. Bitfields for mouse status byte 0:
  1275. Bit(s)    Description    (Table P055)
  1276.  7    unused
  1277.  6    remote rather than stream mode
  1278.  5    mouse enabled
  1279.  4    scaling set to 2:1
  1280.  3    unused
  1281.  2    left button pressed
  1282.  1    unused
  1283.  0    right button pressed
  1284. SeeAlso: #P054,#P056
  1285.  
  1286. Format of mouse data packet:
  1287. Offset    Size    Description    (Table P056)
  1288.  00h    BYTE    status
  1289.         bit7    : y-data overrun
  1290.         bit6    : x-data overrun
  1291.         bit5    : y-data negative
  1292.         bit4    : x-data negative
  1293.         bit3-2=0: reserved
  1294.         bit1    : right button pressed
  1295.         bit0    : left button pressed
  1296.  01h    BYTE    reserved
  1297.  02h    BYTE    x-data
  1298.  03h    BYTE    reserved
  1299.  04h    BYTE    y-data
  1300.  05h    BYTE    reserved
  1301.  06h    BYTE    z-data (0)
  1302.  07h    BYTE    reserved
  1303. SeeAlso: #P054,#P055
  1304.  
  1305. (Table P057)
  1306. Values for keyboard special codes:
  1307.  00h    (MF2 in codeset2&3 or AT keyboards) keydetection/overrun error
  1308.  00h    (mouse) ID
  1309.  AAh    BAT completion code (sent after errorfree Basic Assurance Test)
  1310.  ABh    first byte of general MF2 keyboard ID
  1311.  EEh    Echo command return
  1312.  FAh    Acknowledge (all general commands except Resend and Echo)
  1313.  FAh    (mouse) Acknowledge (all commands except commands ECh,F2h,FFh)
  1314.  FCh    (MF2) BAT Failure Code (error in second half of the power on self test)
  1315.  FDh    (AT-keyboard) BAT Failure Code (error in the second half of the
  1316.       power-on self test)
  1317.  FEh    Resend: CPU to controller should resend last keyboard-command
  1318.  FEh    (mouse) CPU to controller should resend last mouse-command
  1319.  FFh    (MF2 in codeset1) keydetection/overrun error
  1320. Note:    keyboard stops scanning and waits for next command after returning
  1321.       code FCh or FDh
  1322. SeeAlso: PORT 0060h-R
  1323.  
  1324. (Table P058)
  1325. Values for keyboard typematic rate:
  1326.  00000b=30.0   10000b=7.5
  1327.  00001b=26.7   10001b=6.7
  1328.  00010b=24.0   10010b=6.0
  1329.  00011b=21.8   10011b=5.5
  1330.  00100b=20.0   10100b=5.0
  1331.  00101b=18.5   10101b=4.6
  1332.  00110b=17.1   10110b=4.3
  1333.  00111b=16.0   10111b=4.0
  1334.  01000b=15.0   11000b=3.7
  1335.  01001b=13.3   11001b=3.3
  1336.  01010b=12.0   11010b=3.0
  1337.  01011b=10.9   11011b=2.7
  1338.  01100b=10.0   11100b=2.5
  1339.  01101b= 9.2   11101b=2.3
  1340.  01110b= 8.5   11110b=2.1
  1341.  01111b= 8.0   11111b=2.0
  1342. SeeAlso: #P053
  1343.  
  1344. Bitfields for KB controller port B (system control port) [output]:
  1345. Bit(s)    Description    (Table P059)
  1346.  7    pulse to 1 for IRQ1 reset (PC,XT)
  1347.  6-4    reserved
  1348.  3    I/O channel parity check disable
  1349.  2    RAM parity check disable
  1350.  1    speaker data enable
  1351.  0    timer 2 gate to speaker enable
  1352. SeeAlso: PORT 0061h-W,#P060
  1353.  
  1354. Bitfields for KB controller port B control register (system control port) [input]:
  1355. Bit(s)    Description    (Table P060)
  1356.  7    RAM parity error occurred
  1357.  6    I/O channel parity error occurred
  1358.  5    mirrors timer 2 output condition
  1359.  4    toggles with each refresh request
  1360.  3    NMI I/O channel check status
  1361.  2    NMI parity check status
  1362.  1    speaker data status
  1363.  0    timer 2 clock gate to speaker status
  1364. SeeAlso: PORT 0061h-R,#P059
  1365.  
  1366. Bitfields for Progr. Peripheral Interface (8255) system control port [output]:
  1367. Bit(s)    Description    (Table P061)
  1368.  7    clear keyboard (only pulse, normally kept at 0)
  1369.  6    =0  hold keyboard clock low
  1370.  5    NMI I/O parity check disable
  1371.  4    NMI RAM parity check disable
  1372.  3    =0 read low nybble of switches S2
  1373.     =1 read high nybble of switches S2
  1374.  2    reserved, often used as turbo switch
  1375.     original PC: cassette motor off
  1376.  1    speaker data enable
  1377.  0    timer 2 gate to speaker enable
  1378. Note:    bits 2 and 3 are sometimes used as turbo switch
  1379. SeeAlso: PORT 0061h-W,#P0051,#P062,#P063,#P064
  1380.  
  1381. Bitfields for PPI (XT only) data port C:
  1382. Bit(s)    Description    (Table P062)
  1383.  7    RAM parity error occurred
  1384.  6    I/O channel parity error occurred
  1385.  5    timer 2 channel out
  1386.  4    reserved 
  1387.     original PC: cassette data input
  1388. ---
  1389.  3    system board RAM size type 1
  1390.  2    system board RAM size type 2
  1391.  1    coprocessor installed
  1392.  0    loop in POST
  1393. ---
  1394.  3-0    DIL switch S2 high/low nybble (depending on PORT 0061h bit 3)
  1395. SeeAlso: PORT 0062h-RW,#P061,#P063,#P064
  1396.  
  1397. Bitfields for PPI (PC,XT only) equipment switches [input]:
  1398. Bit(s)    Description    (Table P063)
  1399.  7-6    number of disk drives
  1400.     00  1 diskette drive
  1401.     01  2 diskette drives
  1402.     10  3 diskette drives
  1403.     11  4 diskette drives
  1404.  5-4    initial video
  1405.     00  reserved (video adapter has on-board BIOS)
  1406.     01  40*25 color (mono mode)
  1407.     10  80*25 color (mono mode)
  1408.     11  MDA 80*25
  1409.  3-2    memory size (using 256K chips)
  1410.     00  256K
  1411.     01  512K
  1412.     10  576K
  1413.     11  640K
  1414.  3-2    memory size (using 64K chips)
  1415.     00  64K
  1416.     01  128K
  1417.     10  192K
  1418.     11  256K
  1419.  3-2    memory size (original PC)
  1420.     00  16K
  1421.     01  32K
  1422.     10  48K
  1423.     11  64K
  1424.  1-0    reserved
  1425.  1    NPU (math coprocessor) present
  1426.  0    boot from floppy
  1427. SeeAlso: #P062,#P064,PORT 0060h-R
  1428.  
  1429. Bitfields for PPI (8255) command mode register:
  1430. Bit(s)    Description    (Table P064)
  1431.  7    activation function (0 = bit set/reset, 1 = mode set function)
  1432.  6,5    port A mode: 00 = mode0, 01 = mode1, 1x = mode2
  1433.  4    port A direction: 0 = output, 1 = input
  1434.  3    port C bits 7-4 direction: 0 = output, 1 = input
  1435.  2    port B mode: 0 = mode0, 1 = mode1
  1436.  1    port B direction: 0 = output, 1 = input
  1437.  0    port C bits 3-0 direction: 0 = output, 1 = input
  1438. Note:    Attention: Never write anything other than 99h to this port
  1439.       (better: never write anything to this port, only during BIOS
  1440.       init), as other values may connect multiple output drivers
  1441.       and will cause hardware damage in PC/XTs!  By setting command
  1442.       word to 99h, PPI will be set in input/output modes as it is
  1443.       necessary to support the commonly known IO-ports 60, 61, 62
  1444.       as desired.
  1445. SeeAlso: #P061,#P062,#P063
  1446.  
  1447. Bitfields for keyboard controller read status (ISA, EISA):
  1448. Bit(s)    Description    (Table P065)
  1449.  7    parity error on transmission from keyboard
  1450.  6    receive timeout
  1451.  5    transmit timeout
  1452.  4    keyboard interface inhibited by keyboard lock
  1453.  3    =1 data written to input register is command (PORT 0064h)
  1454.     =0 data written to input register is data (PORT 0060h)
  1455.  2    system flag status: 0=power up or reset     1=selftest OK
  1456.  1    input buffer full (input 60/64 has data for 8042)
  1457.     no write access allowed until bit clears
  1458.  0    output buffer full (output 60 has data for system)
  1459.     bit is cleared after read access
  1460. SeeAlso: PORT 0064h-R,#P066,#P067,#P068
  1461.  
  1462. Bitfields for keyboard controller read status (MCA):
  1463. Bit(s)    Description    (Table P066)
  1464.  7    parity error on transmission from keyboard
  1465.  6    general timeout
  1466.  5    mouse output buffer full
  1467.  4    keyboard interface inhibited by keyboard lock
  1468.  3    =1 data written to input register is command (PORT 0064h)
  1469.     =0 data written to input register is data (PORT 0060h)
  1470.  2    system flag status: 0=power up or reset     1=selftest OK
  1471.  1    input buffer full (60/64 has data for 804x)
  1472.     no write access allowed until bit clears
  1473.  0    output buffer full (output 60 has data for system)
  1474.     bit is cleared after read access
  1475. SeeAlso: #P065,#P067,#P068
  1476.  
  1477. Bitfields for keyboard controller read status (Compaq):
  1478. Bit(s)    Description    (Table P067)
  1479.  7    parity error detected (11-bit format only). If an
  1480.       error is detected, a Resend command is sent to the
  1481.       keyboard once only, as an attempt to recover.
  1482.  6    receive timeout. transmission didn't finish in 2mS.
  1483.  5    transmission timeout error
  1484.     bit 5,6,7  cause
  1485.         1 0 0  No clock
  1486.         1 1 0  Clock OK, no response
  1487.         1 0 1  Clock OK, parity error
  1488.  4    =0 security lock engaged
  1489.  3    =1 data in OUTPUT register is command
  1490.     =0 data in OUTPUT register is data
  1491.  2    system flag status: 0=power up or reset     1=soft reset
  1492.  1    input buffer full (60/64 has data for 804x)
  1493.     no write access allowed until bit clears
  1494.  0    output buffer full (PORT 0060h has data for system)
  1495.     bit is cleared after read access
  1496. SeeAlso: #P065,#P066,#P068
  1497.  
  1498. (Table P068)
  1499. Values for keyboard controller commands (data goes to PORT 0060h):
  1500. Value        Description
  1501.  20h    read    read byte zero of internal RAM, this is the last KB command
  1502.           sent to the 8041/8042
  1503.     Compaq    put current command byte on PORT 0060h (see #P070,#P071)
  1504.  21-3F    read    reads the byte specified in the lower 5 bits of the command
  1505.           in the 804x's internal RAM
  1506.  60-7F    double    writes the data byte to the address specified in the 5 lower
  1507.           bits of the command
  1508.  60h    Compaq    Load new command (60 to [64], command to [60]) (see #P071)
  1509.         (also general AT-class machines)
  1510.  A0h    AMI    get ASCIZ copyright message on PORT 0060h
  1511.  A1h    AMI    get controller version byte on PORT 0060h
  1512.  A1h    Compaq    unknown speedfunction ??
  1513.  A2h    Compaq    unknown speedfunction ??
  1514.  A2h    AMI    set keyboard controller pins 22 and 23 low
  1515.  A3h    Compaq    Enable system speed control
  1516.  A3h    AMI    set keyboard controller pins 22 and 23 high
  1517.  A4h    MCA    check if password installed
  1518.  A4h    Compaq    Toggle speed
  1519.  A4h    AMI    set internal system speed flag to low
  1520.  A5h    MCA    load password
  1521.  A5h    AMI    set internal system speed flag to high
  1522.  A5h    Compaq    Special read. the 8042 places the real values of port 2
  1523.           except for bits 4 and 5 wich are given a new definition in
  1524.           the output buffer. No output buffer full is generated.
  1525.             if bit 5 = 0, a 9-bit keyboard is in use
  1526.             if bit 5 = 1, an 11-bit keyboard is in use
  1527.             if bit 4 = 0, output-buff-full interrupt disabled
  1528.             if bit 4 = 1, output-buffer-full interrupt enabled
  1529.  A6h    MCA    check password
  1530.  A6h    AMI    get internal system speed flag on PORT 0060h
  1531.  A6h    Compaq    unknown speedfunction ??
  1532.  A7h    MCA    disable mouse port
  1533.  A7h    AMI    set internal flag indicating bad write cache
  1534.  A8h    MCA    enable mouse port
  1535.  A8h    AMI    set internal flag indicating good write cache
  1536.  A9h    MCA    test mouse port
  1537.  A9h    AMI    get internal flag indicating cache OK to 0060
  1538.  AAh    sngl    initiate self-test. will return 55h to data port if self-test
  1539.           successful, FCh if failed
  1540.  AAh    Compaq    initializes ports 1 and 2, disables the keyboard and clears
  1541.           the buffer pointers. It then places 55h in the output buffer.
  1542.  ABh    sngl    initiate interface test. result values:
  1543.         00h no error
  1544.         01h keyboard clock line stuck low
  1545.         02h keyboard clock line stuck high
  1546.         03h keyboard data line is stuck low
  1547.         04h keyboard data line stuck high
  1548.         05h (Compaq only) diagnostic feature
  1549.  ACh    read    diagnostic dump. the contents of the 804x RAM, output port,
  1550.           input port, status word are sent.
  1551.  ADh    sngl    disable keyboard (sets bit 4 of commmand byte)
  1552.  ADh    Vectra    HP Vectra diagnostic dump
  1553.  AEh    sngl    enable keyboard     (resets bit 4 of commmand byte)
  1554.  AFh    AWARD    Enhanced Command: read keyboard version
  1555.  B1h    AMI    set keyboard controller P11 line low
  1556.  B2h    AMI    set keyboard controller P12 line low
  1557.  B3h    AMI    set keyboard controller P13 line low
  1558.  B4h    AMI    set keyboard controller P22 line low
  1559.  B5h    AMI    set keyboard controller P23 line low
  1560.  B8h    AMI    set keyboard controller P10 line high
  1561.  B9h    AMI    set keyboard controller P11 line high
  1562.  BAh    AMI    set keyboard controller P12 line high
  1563.  BBh    AMI    set keyboard controller P13 line high
  1564.  BCh    AMI    set keyboard controller P22 line high
  1565.  BDh    AMI    set keyboard controller P23 line high
  1566.  C0h    read    read input port and place on PORT 0060h
  1567.         bit 7    keyboard NOT locked
  1568.         bit 6    =0 first video is CGA
  1569.             =1 first video is MDA
  1570.         bit 5    =0 factory testmode
  1571.             =1 normal
  1572.         bit 4    =0 256KB RAM, 1=512KB
  1573.         bit 5,3-0 are used in Intel chipset 386sx machines with
  1574.             AMI/Phoenix BIOSes for BIOS specific hardware settings
  1575.  C0h    Compaq    places status of input port in output buffer.  Use this
  1576.           command only when the output buffer is empty
  1577.  C1h    MCA    Enhanced Command: poll input port Low nibble
  1578.  C2h    MCA    Enhanced Command: poll input port High nibble
  1579.  C8h    AMI    unblock keyboard controller lines P22 and P23
  1580.  C9h    AMI    block keyboard controller lines P22 and P23
  1581.  CAh    AMI    read keyboard mode, return in 0060 bit 0
  1582.           (bit clear if ISA mode, set if PS/2 mode)
  1583.  CBh    AMI    set keyboard mode (write back mode byte returned by CAh,
  1584.           modifying only bit 0)
  1585.  D0h    read    read output port and place on PORT 0060h (see #P072)
  1586.  D0h    Compaq    places byte in output port in output buffer. Use this command
  1587.           only when the output buffer is empty
  1588.  D1h    double    write output port.  The next byte written to PORT 0060h will
  1589.           be written to the 804x output port; the original IBM AT and
  1590.           many compatibles use bit 1 of the output port to control
  1591.           the A20 gate.
  1592.         Important: bit 0 (system reset) should always be set here, as
  1593.               the system may hang constantly, use pulse output port
  1594.               (FEh) instead.
  1595.  D1h    Compaq    the system speed bits are not set by this command use
  1596.           commands A1-A6 (!) for speed functions.
  1597.  D2h    MCA    Enhanced Command: write keyboard output buffer
  1598.  D3h    MCA    Enhanced Command: write pointing device out.buf.
  1599.  D4h    MCA    write to mouse/pointing device instead of to keyboard; this
  1600.           controller command must precede every PORT 0060h command
  1601.           directed to the mouse, otherwise it will be sent to the
  1602.           keyboard
  1603.  D4h    AWARD    Enhanced Command: write to auxiliary device
  1604.  DDh    sngl    disable address line A20 (HP Vectra only???)
  1605.         default in Real Mode
  1606.  DFh    sngl    enable address line A20 (HP Vectra only???)
  1607.  E0h    read    read test inputs.
  1608.         bit0 = kbd clock, bit1 = kbd data
  1609.  Exxx    AWARD    Enhanced Command: active output port
  1610.  EDh    double    this is a two part command to control the state of the
  1611.           NumLock, CpasLock and ScrollLock LEDs
  1612.         The second byte contains the state to set LEDs.
  1613.             bit 7-3    reserved. should be set to 0.
  1614.             bit 2 = 0    Caps Lock LED off
  1615.             bit 1 = 0    Num Lock LED off
  1616.             bit 0 = 0    Scroll Lock LED off
  1617.  F0-FF    sngl    pulse output port low for 6 microseconds.
  1618.         bits 0-3 contain the mask for the bits to be pulsed.  A bit is
  1619.           pulsed if its mask bit is zero
  1620.         bit0=system reset. Don't set to zero. Pulse only!
  1621. Note:     keyboard controllers are widely different from each other.  You
  1622.        cannot generally exchange them between different machines.
  1623.      (Award) Derived from Award's Enhanced KB controller advertising sheet.
  1624.      (Compaq) Derived from the Compaq Deskpro 386 Tech. Ref. Guide.
  1625.  
  1626. (Table P069)
  1627. Values for HP Vectra control buffer command code:
  1628.  00h-54h insert standard key make code into 8041 scancode buf
  1629.  55h-77h insert HP key make code into 8041 scancode buffer
  1630.  7Ah    pass through next data byte
  1631.  7Bh    set RAM Switch to 0
  1632.  7Ch    set RAM Switch to 1 (default)
  1633.  7Dh    set CRT Switch to 0
  1634.  7Eh    set CRT Switch to 1 (default)
  1635.  7Fh    reserved
  1636.  80h-D4h insert standard key break code into scancode buffer
  1637.  D5h-F7h insert HP key break code into scancode buffer
  1638.  F8h    enable AutoPoll
  1639.  F9h    disable AutoPoll
  1640.  FAh-FEh reserved
  1641.  FFh    keyboard overrun
  1642. SeeAlso: PORT 0068h-W
  1643.  
  1644. Bitfields for Compaq keyboard command byte:
  1645. Bit(s)    Description    (Table P070)
  1646.  7    reserved
  1647.  6    =1 convert KB codes to 8086 scan codes
  1648.  5    =0 use 11-bit codes, 1=use 8086 codes
  1649.  4    =0 enable keyboard, 1=disable keyboard
  1650.  3    ignore security lock state
  1651.  2    this bit goes into bit2 status reg.
  1652.  1    reserved (0)
  1653.  0    generate interrupt when output buffer full
  1654. SeeAlso: #P071
  1655.  
  1656. Bitfields for keyboard command byte (alternate description):
  1657. Bit(s)    Description    (Table P071)
  1658.  7    reserved (0)
  1659.  6    IBM PC compatibility mode
  1660.  5    IBM PC mode
  1661.     no parity, no stop bits, no translation
  1662.     (PS/2) force mouse clock low
  1663.  4    disable keyboard (clock)
  1664.  3    inhibit override
  1665.     (PS/2) reserved
  1666.  2    system flag
  1667.  1    reserved (0)
  1668.     (PS/2) enable mouse output buffer full interrupt
  1669.  0    enable output buffer full interrupt
  1670. SeeAlso: #P070,#P072
  1671.  
  1672. Bitfields for keyboard controller output port:
  1673. Bit(s)    Description    (Table P072)
  1674.  7    keyboard data (output)
  1675.  6    keyboard clock (output)
  1676.  5    input buffer empty
  1677.  4    output buffer empty
  1678.  3    undefined
  1679.  2    undefined
  1680.     used by Intel 386sx Chipset with AMI/Phoenix BIOSes for BIOS-specific
  1681.       configuration of turbo switch
  1682.  1    gate address A20
  1683.  0    system reset
  1684. Note:    bit 0 (system reset) should always be set when writing the output
  1685.       port, as the system may hang constantly; use pulse output port
  1686.       (command FEh) instead.
  1687. SeeAlso: #P071
  1688. ----------P0065------------------------------
  1689. PORT 0065 - AT&T 6300+ - HIGH/LOW CHIP SELECT
  1690. ----------P0065------------------------------
  1691. PORT 0065 - ???
  1692.  
  1693. 0065  RW  ???
  1694.         bit 2: A20 gate control (set = A20 enabled, clear = disabled)
  1695. ----------P00660067--------------------------
  1696. PORT 0066-0067 - AT&T 6300+ - SYSTEM CONFIGURATION SWITCHES
  1697. ----------P0066------------------------------
  1698. PORT 0066 - IBM 4717 Magnetic Stripe Reader - ???
  1699. SeeAlso: PORT 0069h"Magnetic Stripe"
  1700. ----------P0068------------------------------
  1701. PORT 0068 - C&T CHIPSETS - TURBO MODE CONTROL
  1702.  
  1703. Note:      on Micronics 386-25/386-33/486-25 motherboards, setting this port to
  1704.         00h enables full speed; setting it to C0h slows the system down by
  1705.         a factor corresponding to the value programmed into the EISA
  1706.         interval timer 2 at ports 004Ah and 004Bh
  1707. ----------P0069------------------------------
  1708. PORT 0069 - IBM 4717 Magnetic Stripe Reader - ???
  1709. SeeAlso: PORT 0066h"Magnetic Stripe"
  1710. ----------P006B006F--------------------------
  1711. PORT 006B-006F - SSGA CONTROL REGISTERS
  1712.  
  1713. 006B  ??  RAM enable/remap
  1714. 006C  ??  undocumented
  1715. 006D  ??  undocumented
  1716. 006E  ??  undocumented
  1717. 006F  ??  undocumented
  1718. ----------P0070007F--------------------------
  1719. PORT 0070-007F - CMOS RAM/RTC (REAL TIME CLOCK)
  1720. Note:    the real-time clock may be either a discrete MC146814, MC146818, or
  1721.       an emulation thereof built into the motherboard chipset
  1722.  
  1723. 0070  -W  CMOS RAM index register port (ISA, EISA)
  1724.          bit 7    = 1  NMI disabled
  1725.             = 0  NMI enabled
  1726.          bit 6-0     CMOS RAM index (64 bytes, sometimes 128 bytes)
  1727.  
  1728.         any write to 0070 should be followed by an action to 0071
  1729.         or the RTC wil be left in an unknown state.
  1730.  
  1731. 0071  RW  CMOS RAM data port (ISA, EISA) (see #P073)
  1732.  
  1733. (Table P073)
  1734. Values for Real-Time Clock register number (see also CMOS.LST):
  1735.  00h-0Dh clock registers
  1736.  0Eh    diagnostics status byte
  1737.  0Fh    shutdown status byte
  1738.  10h    diskette drive type for A: and B:
  1739.  11h    reserved / IBM fixed disk / setup options
  1740.  12h    fixed disk drive type for drive 0 and drive 1
  1741.  13h    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  1742.  14h    equipment byte
  1743.  15h    LSB of system base memory in Kb
  1744.  16h    MSB of system base memory in Kb
  1745.  17h    LSB of total extended memory in Kb
  1746.  18h    MSB of total extended memory in Kb
  1747.  19h    drive C extension byte
  1748.  1Ah    drive D extension byte
  1749.  1Bh-2Dh reserved
  1750.  20h-27h commonly used for first user-configurable drive type
  1751.  2Eh    CMOS MSB checksum over 10-2D
  1752.  2Fh    CMOS LSB checksum over 10-2D
  1753.  30h    LSB of extended memory found above 1Mb at POST
  1754.  31h    MSB of extended memory found above 1Mb at POST
  1755.  32h    date century in BCD
  1756.  33h    information flags
  1757.  34h-3Fh    reserved    
  1758.  35h-3Ch commonly used for second user-configurable drive type
  1759.  3Dh-3Eh word to 82335 MCR memory config register at [22] (Phoenix)
  1760.  42h-4Ch AMI 1990 Hyundai super-NB368S notebook
  1761.     ???
  1762.  54h-57h AMI 1990 Hyundai super-NB368S notebook
  1763.     ???
  1764.  5Ch-5Dh AMI 1990 Hyundai super-NB368S notebook
  1765.     ???
  1766.  60h-61h AMI 1990 Hyundai super-NB368S notebook
  1767.     ???
  1768. ----------P0073------------------------------
  1769. PORT 0073 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - MBOARD CONFIGURATION
  1770. SeeAlso: PORT 0075h
  1771.  
  1772. 0073  RW  ???
  1773.     bit 7: ???
  1774.     bit 6: disable ROM shadowing
  1775.     bit 5: ??? (related to IDE controller)
  1776.     bit 4: ???
  1777.     bit 3: ???
  1778. ----------P00740076--------------------------
  1779. PORT 0074-0076 - SECONDARY CMOS (Compaq), NVRAM (IBM) ACCESS
  1780. Note:    NVRAM may be 2K, 8K, or 16K
  1781. SeeAlso: PORT 0070h-007Fh,CMOS.LST
  1782.  
  1783. 0074  -W  secondary CMOS RAM (IBM NVRAM) index, low byte
  1784. 0075  -W  secondary CMOS RAM (IBM NVRAM) index, high (in bits 2-0)
  1785. 0076  RW  secondary CMOS RAM (IBM NVRAM) data byte
  1786. ----------P0075------------------------------
  1787. PORT 0075 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - MBOARD CONFIGURATION
  1788. SeeAlso: PORT 0073h,PORT 0078h"82378IB"
  1789.  
  1790. 0075  R-  ???
  1791.       bits 3-2: external bus speed???
  1792.            00  50 MHz
  1793.            01  66 MHz
  1794.            10  60 MHz
  1795.            11  40 MHz
  1796. ----------P0078------------------------------
  1797. PORT 0078 - HP-Vectra - HARD RESET: NMI ENABLE/DISABLE
  1798.  
  1799. 0078  ?W  NMI enable/disable
  1800.         bit 7 = 0  disable & clear hard reset from HP-HIL controller
  1801.               = 1  enable hard reset from HP-HIL controller chip
  1802.         bit 6-0       reserved
  1803. ----------P0078------------------------------
  1804. PORT 0078 - Intel 82378IB ("Saturn"/"Neptune" chipsets) - BIOS COUNT-DOWN TIMER
  1805. Notes:    the BIOS uses this port for certain fine timings; presumably it is
  1806.       independent of processor speed (it appears to decrement at 1 MHz)
  1807.     the address at which this port appears may be set via the 82378's
  1808.       PCI configuration space word at offset 0080h (see #0642), or the
  1809.       timer may be disabled entirely
  1810. SeeAlso: PORT 0075h
  1811.  
  1812. 0078w -W  set count-down timer
  1813. 0078w R-  get current count (timer stops when it reaches 0000h)
  1814. ----------P0078007F--------------------------
  1815. PORT 0078-007F - PC radio by CoZet Info Systems
  1816. Range:    The I/O address range is dipswitch selectable from:
  1817.        038-03F and 0B0-0BF
  1818.        078-07F and 0F0-0FF
  1819.        138-13F and 1B0-1BF
  1820.        178-17F and 1F0-1FF
  1821.        238-23F and 2B0-2BF
  1822.        278-27F and 2F0-2FF
  1823.        338-33F and 3B0-3BF
  1824.        378-37F and 3F0-3FF
  1825. Note:    All of these addresses show a readout of FFh in initial state.
  1826.     Once started, all of the addresses show FBh, whatever might happen.
  1827. ----------P007C007D--------------------------
  1828. PORT 007C-007D - HP-Vectra - PIC 3 - PROGRAMMABLE INTERRUPT CONTROLLER (8259)
  1829. Notes:    cascaded to first controller.
  1830.     used for keyboard and input device interface.
  1831. SeeAlso: PORT 0020h-0021h,INT 68"Vectra",INT 6E"Vectra"
  1832.  
  1833. 007C  RW  HP-Vectra  PIC 3  see at 0020     PIC 1
  1834. 007D  RW  HP-Vectra  PIC 3  see at 0021     PIC 1
  1835. ----------P0080------------------------------
  1836. PORT 0080 - MANUFACTURING DIAGNOSTICS PORT
  1837. Note:    sometimes used for a POST hex display
  1838.  
  1839. 0080  -W  Manufacturing Diagnostics port
  1840. 0080  R-  ???
  1841.  
  1842. (Table P074)
  1843. Values for AMI BIOS diagnostics codes:
  1844.  00h    system boot completed, control passed to INT 19 bootstrap loader
  1845.  01h    register test
  1846.  02h    video initialization; NMIs disabled
  1847.  03h    power-on delay complete
  1848.  04h    pre-keyboard-test initializations complete
  1849.  05h    soft-reset/power-on setting determined
  1850.  06h    ROM enabled
  1851.  07h    ROM BIOS checksum test passed
  1852.  08h    keyboard BAT command issued
  1853.  09h    keyboard controller BAT result verified
  1854.  0Ah    keyboard controller command code issued
  1855.  0Bh    keyboard controller command byte written
  1856.  0Ch    keyboard controller pins 23/24 blocked and unblocked
  1857.  0Dh    keyboard controller NOP processing in progress
  1858.  0Eh    CMOS RAM shutdown register read/write test passed
  1859.  0Fh    CMOS RAM checksum calculation complete
  1860.  10h    CMOS RAM initialization complete
  1861.  11h    CMOS RAM status register initialized
  1862.  12h    DMA controllers 1/2 and interrupt controllers 1/2 disabled
  1863.  13h    video display disabled, port B initialized
  1864.  14h    chipset initialization, auto memory detection
  1865.  15h    8254 channel 2 test half complete
  1866.  16h    8254 channel 2 test completed
  1867.  17h    8254 channel 1 test completed
  1868.  18h    8254 channel 0 test completed
  1869.  19h    memory refresh started
  1870.  1Ah    memory refresh line is toggling
  1871.  1Bh    memory refresh test completed
  1872.  20h    base 64K memory test started
  1873.  21h    address line test passed
  1874.  22h    parity toggle complete
  1875.  23h    base 64K sequential read/write test passed
  1876.  24h    pre-interrupt-vector-initialization configuration complete
  1877.  25h    interrupt vectors initialized
  1878.  26h    8042 input port read
  1879.  27h    global data initialization complete
  1880.  28h    post-interrupt-vector-initialization initialization complete
  1881.  29h    monochrome mode set
  1882.  2Ah    color mode set
  1883.  2Bh    parity toggle on option video ROM test complete
  1884.  2Ch    initialization before video ROM control complete
  1885.  2Dh    video ROM check complete
  1886.  2Eh    !!!
  1887.  A9h    returned from E0000h adapter ROM
  1888.  AAh    final initializations after adapter ROM initializations complete
  1889. ----------P0080008F--------------------------
  1890. PORT 0080-008F - DMA PAGE REGISTERS (74612)
  1891.  
  1892. 0080  RW  extra page register (temporary storage)
  1893. 0081  RW  DMA channel 2 address byte 2
  1894. 0082  RW  DMA channel 3 address byte 2
  1895. 0083  RW  DMA channel 1 address byte 2
  1896. 0084  RW  extra page register
  1897. 0085  RW  extra page register
  1898. 0086  RW  extra page register
  1899. 0087  RW  DMA channel 0 address byte 2
  1900. 0088  RW  extra page register
  1901. 0089  RW  DMA channel 6 address byte 2
  1902. 008A  RW  DMA channel 7 address byte 2
  1903. 008B  RW  DMA channel 5 address byte 2
  1904. 008C  RW  extra page register
  1905. 008D  RW  extra page register
  1906. 008E  RW  extra page register
  1907. 008F  RW  DMA refresh page register
  1908. ----------P0080009F--------------------------
  1909. PORT 0080-009F - Intel386sx CHIPSET 82231
  1910. Note:    includes the DMA controller functionality on PORT 0080h to PORT 008Fh
  1911. ----------P0084------------------------------
  1912. PORT 0084 - Compaq POST Diagnostic
  1913. --------X-P0084------------------------------
  1914. PORT 0084 - EISA - SYNCHRONIZE BUS CYCLE
  1915. ----------P00850086--------------------------
  1916. PORT 0085-0086 - Intel "Triton" chipset - ???
  1917. SeeAlso: PORT 00EBh"Triton"
  1918.  
  1919. 0085  ?W  ???
  1920. 0086  ?W  ???
  1921. ----------P0090009F--------------------------
  1922. PORT 0090-009F - PS/2 - POS (PROGRAMMABLE OPTION SELECT)
  1923.  
  1924. 0090  ??  Central arbitration control port
  1925. 0091  R-  Card selection feedback
  1926. 0092  RW  PS/2 system control port A  (port B is at 0061) (see #P075)
  1927. 0094  -W  system board enable/setup register (see #P076)
  1928. 0095  --  reserved
  1929. 0096  -W  adapter enable / setup register
  1930.          bit 3 = 1  setup adapters
  1931.                = 0  enable registers
  1932. 0097  --  reserved
  1933.  
  1934. Bitfields for PS/2 system control port A:
  1935. Bit(s)    Description    (Table P075)
  1936.  7-6    any bit set to 1 turns activity light on
  1937.  5    reserved
  1938.  4    watchdog timout occurred 
  1939.  3    =0 RTC/CMOS security lock (on password area) unlocked
  1940.     =1 CMOS locked (done by POST)
  1941.  2    reserved
  1942.  1    A20 is active
  1943.  0    =0 system reset or write
  1944.     =1 pulse alternate reset pin (alternate CPU reset)
  1945. SeeAlso: #P076,MSR 00001000h
  1946.  
  1947. Bitfields for PS/2 system board enable/setup register:
  1948. Bit(s)    Description    (Table P076)
  1949.  7    =1  enable functions
  1950.     =0  setup functions
  1951.  5    =1  enables VGA
  1952.     =0  setup VGA
  1953.  2    =1  enable integrated SCSI (PS/2 M77)
  1954.     =0  setup integrated SCSI
  1955. SeeAlso: #P075
  1956. ----------P00A000AF--------------------------
  1957. PORT 00A0-00AF - PIC 2 - PROGRAMMABLE INTERRUPT CONTROLLER (8259A)
  1958. SeeAlso: PORT 0020h-003Fh"PIC 1",INT 70"IRQ8",INT 77"IRQ15"
  1959.  
  1960. 00A0  RW  NMI mask register (XT)
  1961.          bit 7 = 0 disabled
  1962.                = 1 enabled
  1963. 00A0  RW  PIC 2     same as 0020 for PIC 1
  1964. 00A1  RW  PIC 2     same as 0021 for PIC 1 except for OCW1 (see #P077)
  1965.  
  1966. Bitfields for PIC2 output control word OCW2:
  1967. Bit(s)    Description    (Table P077)
  1968.  7    disable IRQ15 (reserved)
  1969.  6    disable IRQ14 (fixed disk interrupt)
  1970.  5    disable IRQ13 (coprocessor exception interrupt)
  1971.  4    disable IRQ12 (mouse interrupt)
  1972.  3    disable IRQ11 (reserved)
  1973.  2    disable IRQ10 (reserved)
  1974.  1    disable IRQ9  (redirect cascade)
  1975.  0    disable IRQ8  (real-time clock interrupt)
  1976. SeeAlso: #P010
  1977. ----------P00B000BF--------------------------
  1978. PORT 00B0-00BF - PC radio by CoZet Info Systems
  1979. Range:    The I/O address range is dipswitch selectable from:
  1980.        038-03F and 0B0-0BF
  1981.        078-07F and 0F0-0FF
  1982.        138-13F and 1B0-1BF
  1983.        178-17F and 1F0-1FF
  1984.        238-23F and 2B0-2BF
  1985.        278-27F and 2F0-2FF
  1986.        338-33F and 3B0-3BF
  1987.        378-37F and 3F0-3FF
  1988. Notes:    All of these addresses show a readout of FFh in initial state.
  1989.     Once started, all of the addresses show    FBh, whatever might happen.
  1990. ----------P00B2------------------------------
  1991. PORT 00B2 - Intel chipsets - Advanced Power Management Control
  1992. Notes:    used to pass data between the operating system and the System
  1993.       Management Interrupt (SMI) handler
  1994.     writes to this port can cause an SMI; reads can cause STPCLK# to be
  1995.       asserted (putting the CPU in sleep mode)
  1996.     supported by 82420EX, 82371, and other Intel chipsets
  1997. SeeAlso: PORT 00B3h,#3345
  1998.  
  1999. 00B2  RW  control
  2000. ----------P00B3------------------------------
  2001. PORT 00B3 - Intel chipsets - Advanced Power Management Status
  2002. Notes:    used to pass data between the operating system and the System
  2003.       Management Interrupt (SMI) handler
  2004.     supported by 82420EX, 82371, and other Intel chipsets
  2005. SeeAlso: PORT 00B2h
  2006.  
  2007. 00B3  RW  status
  2008. ----------P00C0------------------------------
  2009. PORT 00C0 - TI SN746496 programmable tone/noise generator (PCjr)
  2010. ----------P00C000DF--------------------------
  2011. PORT 00C0-00DF - DMA 2 - SECOND DIRECT MEMORY ACCESS CONTROLLER (8237)
  2012.  
  2013. 00C0  RW  DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)
  2014. 00C2  RW  DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)
  2015. 00C4  RW  DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)
  2016. 00C6  RW  DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)
  2017. 00C8  RW  DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)
  2018. 00CA  RW  DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)
  2019. 00CC  RW  DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)
  2020. 00CE  RW  DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)
  2021.  
  2022. 00D0  R-  DMA channel 4-7 status register (ISA, EISA) (see #P078)
  2023. 00D0  -W  DMA channel 4-7 command register (ISA, EISA) (see #P079)
  2024. 00D2  -W  DMA channel 4-7 write request register (ISA, EISA)
  2025. 00D4  -W  DMA channel 4-7 write single mask register (ISA, EISA) (see #P080)
  2026. 00D6  -W  DMA channel 4-7 mode register (ISA, EISA) (see #P081)
  2027. 00D8  -W  DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)
  2028.  
  2029. 00DA  R-  DMA channel 4-7 read temporary register (ISA, EISA)
  2030. 00DA  -W  DMA channel 4-7 master clear (ISA, EISA)
  2031. 00DC  -W  DMA channel 4-7 clear mask register (ISA, EISA)
  2032. 00DE  -W  DMA channel 4-7 write mask register (ISA, EISA)
  2033.  
  2034. Bitfields for DMA channel 4-7 status register:
  2035. Bit(s)    Description    (Table P078)
  2036.  7 = 1    channel 7 request
  2037.  6 = 1    channel 6 request
  2038.  5 = 1    channel 5 request
  2039.  4 = 1    channel 4 request
  2040.  3 = 1    terminal count on channel 7
  2041.  2 = 1    terminal count on channel 6
  2042.  1 = 1    terminal count on channel 5
  2043.  0 = 1    terminal count on channel 4
  2044. SeeAlso: #P001,#P079
  2045.  
  2046. Bitfields for DMA channel 4-7 command register:
  2047. Bit(s)    Description    (Table P079)
  2048.  7    DACK sense active high
  2049.  6    DREQ sense active high
  2050.  5    =1  extended write selection
  2051.     =0  late write selection
  2052.  4    rotating priority instead of fixed priority
  2053.  3    compressed timing
  2054.  2    =1  enable controller
  2055.     =0  enable memory-to-memory transfer
  2056.  1-0    channel number (00 = 4 to 11 = 7)
  2057. SeeAlso: #P002,#P078,#P080
  2058.  
  2059. Bitfields for DMA channel 4-7 write single mask register:
  2060. Bit(s)    Description    (Table P080)
  2061.  7-3    reserved
  2062.  2    =0  clear mask bit
  2063.     =1  set mask bit
  2064.  1-0    channel select
  2065.     00 channel 4 select
  2066.     01 channel 5 select
  2067.     10 channel 6 select
  2068.     11 channel 7 select
  2069. SeeAlso: #P004,#P079
  2070.  
  2071. Bitfields for DMA channel 4-7 mode register:
  2072. Bit(s)    Description    (Table P081)
  2073.  7-6    transfer mode
  2074.     00  demand mode
  2075.     01  single mode
  2076.     10  block mode
  2077.     11  cascade mode
  2078.  5    direction
  2079.     0  address increment select
  2080.     1  address decrement select
  2081.  4    autoinitialisation enabled
  2082.  3-2    operation
  2083.     00  verify operation
  2084.     01  write to memory
  2085.     10  read from memory
  2086.     11  reserved
  2087.  1-0    channel number
  2088.     00  channel 4 select
  2089.     01  channel 5 select
  2090.     10  channel 6 select
  2091.     11  channel 7 select
  2092. SeeAlso: #P005,#P080
  2093. ----------P00E000E1--------------------------
  2094. PORT 00E0-00E1 - CHIPSET FROM ACT
  2095.  
  2096. 00E0  ?W  index for accesses to data port
  2097. 00E1  R?  chip set data
  2098. ----------P00E000E7--------------------------
  2099. PORT 00E0-00E7 - MICROCHANNEL
  2100.  
  2101. 00E0  RW  split address register, memory encoding registers PS/2m80 only
  2102. 00E1  RW  memory register
  2103. 00E3  RW  error trace
  2104. 00E4  RW  error trace
  2105. 00E5  RW  error trace
  2106. 00E7  RW  error trace
  2107. ----------P00E000EF--------------------------
  2108. PORT 00E0-00EF - IBM PS/1 CLOCK
  2109. ----------P00E1------------------------------
  2110. PORT 00E1 - STB PowerMEG - ???
  2111. Desc:    the STB PowerMEG is a memory expansion card capable of providing EMS
  2112.  
  2113. 00E1  RW  ???
  2114.       bit 0: ???
  2115. ----------P00EB------------------------------
  2116. PORT 00EB - Intel "Triton" chipset - ???
  2117. SeeAlso: PORT 0085h"Triton"
  2118.  
  2119. 00EB  ?W  ???
  2120. ----------P00EC00ED--------------------------
  2121. PORT 00EC-00ED - Compaq LTE Elite
  2122. ----------P00ED------------------------------
  2123. PORT 00ED - ???
  2124. Note:    on a number of machines, the BIOS appears to write a copy of any
  2125.       data sent to numerous other ports to this port as well
  2126.  
  2127. 00EDw  ?W  ???
  2128. ----------P00EF------------------------------
  2129. PORT 00EF - Hyunday Super-NB386S (AMD386sx with Intel chipset)
  2130. Warning: any access to this port causes a cold reset on this machine!
  2131. ----------P00F000F5--------------------------
  2132. PORT 00F0-00F5 - PCjr Disk Controller
  2133.  
  2134. 00F0  ??  disk controller
  2135. 00F2  ??  disk controller control port
  2136. 00F4  ??  disk controller status register
  2137. 00F5  ??  disk controller data port
  2138. ----------P00F000FF--------------------------
  2139. PORT 00F0-00FF - MATH COPROCESSOR (8087..80387)
  2140.  
  2141. 00F0  -W  math coprocessor clear busy latch
  2142. 00F1  -W  math coprocessor reset
  2143. 00F8  RW  opcode transfer
  2144. 00FA  RW  opcode transfer
  2145. 00FC  RW  opcode transfer
  2146. ----------P00F9------------------------------
  2147. PORT 00F9 - Compaq LTE Elite
  2148. ----------P00FB------------------------------
  2149. PORT 00FB - Compaq LTE Elite
  2150. ----------P00F900FF--------------------------
  2151. PORT 00F9-00FF - PC radio by CoZet Info Systems
  2152. Range:    The I/O address range is dipswitch selectable from:
  2153.        038-03F and 0B0-0BF
  2154.        078-07F and 0F0-0FF
  2155.        138-13F and 1B0-1BF
  2156.        178-17F and 1F0-1FF
  2157.        238-23F and 2B0-2BF
  2158.        278-27F and 2F0-2FF
  2159.        338-33F and 3B0-3BF
  2160.        378-37F and 3F0-3FF
  2161. Notes:    All of these addresses show a readout of FFh in initial state.
  2162.     Once started, all of the addresses show    FBh, whatever might happen.
  2163. ----------P0100------------------------------
  2164. PORT 0100 - 3COM 3C509 Ethernet card - ID port
  2165. Note: this port is present only on the 3C509, not on any other 3COM card
  2166. SeeAlso: PORT 0110h,PORT 0120h
  2167. ----------P01000107--------------------------
  2168. PORT 0100-0107 - PS/2 POS (Programmable Option Select)
  2169. Note:    the default value for PORT 0102h is stored in CMOS 31h
  2170.  
  2171. 0100  R      POS register 0    Low adapter ID byte
  2172. 0101  R      POS register 1    High adapter ID byte
  2173. 0102  RW  POS register 2    option select data byte 1 (see #P082)
  2174. 0103  RW  POS register 3    option select data byte 2
  2175. 0104  RW  POS register 4    option select data byte 3
  2176. 0105  RW  POS register 5    option select data byte 4
  2177.          bit 7    channel active (-CHCK)
  2178.          bit 6    channel status
  2179. 0106  RW  POS register 6    Low subaddress extension
  2180. 0107  RW  POS register 7    High subaddress extension
  2181.  
  2182. Bitfields for PS/2 POS register 2, option select data byte 1:
  2183. Bit(s)    Description    (Table P082)
  2184.  7      0  = unidirectional LPT port
  2185.       1  = bidirectional LPT port
  2186.  6-5    PS/2 Model 50 and higher
  2187.      00b = default LPT port at 3BCh
  2188.      01b = ""           378h
  2189.      10b = ""           278h
  2190.      11b = reserved
  2191.  4    reserved
  2192.  0    card enable (CDEN)
  2193.  0    =1 VGA sleep bit, disconnects output drivers from VGA (usage for VGA
  2194.       without monitor)
  2195. ---ET4000---
  2196.  7-4    reserved???
  2197.  3    video RAM wait enable
  2198.  2    ET4000: ROM BIOS wait enable
  2199.  1    ET4000: I/O wait enable
  2200. Note:    access to this port is only possible when PORT 0094h bit 7 is low.
  2201. ----------P0100010F--------------------------
  2202. PORT 0100-010F - CompaQ Tape drive adapter. alternate address at 0300
  2203. ----------P0108010F--------------------------
  2204. PORT 0108-010F - IBM PS/2 - 8 digit LED info panel
  2205.  
  2206. 010F  -W  leftmost character on display
  2207. 010E  -W  second character
  2208.  ...
  2209. 0108  -W  eighth character
  2210. ----------P0110------------------------------
  2211. PORT 0110 - 3COM 3C509 Ethernet card - ID port (alternate address)
  2212. Note:    this port is present only on the 3C509, not on any other 3COM card
  2213. SeeAlso: PORT 0100h"3COM",PORT 0120h"3COM"
  2214. ----------P0120------------------------------
  2215. PORT 0120 - 3COM 3C509 Ethernet card - ID port (alternate address)
  2216. Note:    this port is present only on the 3C509, not on any other 3COM card
  2217. SeeAlso: PORT 0100h"3COM",PORT 0110h"3COM"
  2218. ----------P0130013F--------------------------
  2219. PORT 0130-013F - CompaQ SCSI adapter. alternate address at 0330
  2220. ----------P01300133--------------------------
  2221. PORT 0130-0133 - Adaptec 154xB/154xC SCSI adapter.
  2222. Range:    alternate address at 0134, 0230, 0234, 0330 and 0334
  2223. ----------P01340137--------------------------
  2224. PORT 0134-0137 - Adaptec 154xB/154xC SCSI adapter.
  2225. Range:    alternate address at 0130, 0230, 0234, 0330 and 0334
  2226. ----------P0138013F--------------------------
  2227. PORT 0138-013F - PC radio by CoZet Info Systems
  2228. Range:    The I/O address range is dipswitch selectable from:
  2229.        038-03F and 0B0-0BF
  2230.        078-07F and 0F0-0FF
  2231.        138-13F and 1B0-1BF
  2232.        178-17F and 1F0-1FF
  2233.        238-23F and 2B0-2BF
  2234.        278-27F and 2F0-2FF
  2235.        338-33F and 3B0-3BF
  2236.        378-37F and 3F0-3FF
  2237. Notes:    All of these addresses show a readout of FFh in initial state.
  2238.     Once started, all of the addresses show    FBh, whatever might happen.
  2239. ----------P0140014F--------------------------
  2240. PORT 0140-014F - SCSI (alternate Small Computer System Interface) adapter
  2241. Note:    first adapter is at 0340-034F
  2242. ----------P01400157--------------------------
  2243. PORT 0140-0157 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  2244. ----------P015C015D--------------------------
  2245. PORT 015C-015D - Dell Enhanced Parallel Port
  2246. SeeAlso: PORT 002Eh,PORT 026Eh,PORT 0398h
  2247.  
  2248. 015C  -W  index for data port
  2249. 015D  RW  EPP command data
  2250. ----------P015F------------------------------
  2251. PORT 015F - ARTEC Handyscanner A400Z.  alternate address at 35F.
  2252. ----------P0168016F--------------------------
  2253. PORT 0168-016F - 4th (Quaternary) EIDE Controller
  2254. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  2255. SeeAlso: PORT 0170h-0177h,PORT 01E8h-01EFh,PORT 01F0h-01F7h
  2256. ----------P01700177--------------------------
  2257. PORT 0170-0177 - HDC 2    (2nd Fixed Disk Controller) (ISA, EISA)
  2258. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  2259. SeeAlso: PORT 0168h-016Fh,PORT 01E8h-01EFh,PORT 01F0h-01F7h
  2260. ----------P01780179--------------------------
  2261. PORT 0178-0179 - Power Management
  2262. SeeAlso: PORT 0026h,#P279
  2263.  
  2264. 0178  -W  index selection for data port
  2265. 0179  RW  power management data
  2266. ----------P0178017F--------------------------
  2267. PORT 0178-017F - PC radio by CoZet Info Systems
  2268. Range:    The I/O address range is dipswitch selectable from:
  2269.        038-03F and 0B0-0BF
  2270.        078-07F and 0F0-0FF
  2271.        138-13F and 1B0-1BF
  2272.        178-17F and 1F0-1FF
  2273.        238-23F and 2B0-2BF
  2274.        278-27F and 2F0-2FF
  2275.        338-33F and 3B0-3BF
  2276.        378-37F and 3F0-3FF
  2277. Notes:    All of these addresses show a readout of FFh in initial state.
  2278.     Once started, all of the addresses show    FBh, whatever might happen.
  2279. ----------P01CE01CF--------------------------
  2280. PORT 01CE-01CF - ATI Mach32 video chipset - ???
  2281.  
  2282. 01CE  -W  index register
  2283. 01CF  RW  data register
  2284. ----------P01E801EF--------------------------
  2285. PORT 01E8-01EF - Headland HL21 & Acer M5105 chipsets - SYSTEM CONTROL
  2286.  
  2287. 01ED  RW  select internal register. Data to/from 01EF
  2288. 01EE  R-  ???
  2289. 01EF  RW  register value
  2290.     05h  = 1000xxxx for low CPU clock speed (4MHz on Morse/Mitac)
  2291.          = 0xxxxxxx for high CPU clock speed (16MHz on Morse/Mitac)
  2292.     10h memory size
  2293.        bits 2-0 = size
  2294.            (undefined,512K,640K,1024K,2560K,2048K,4096K,undef.)
  2295.     14h ???
  2296.        bit 2: 384K RAM of first 1024K relocated to top of memory
  2297. ----------P01E801EF--------------------------
  2298. PORT 01E8-01EF - 3rd (Tertiary) EIDE Controller
  2299. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  2300. SeeAlso: PORT 0168h-016Fh,PORT 0170h-0177h,PORT 01F0h-01F7h
  2301. ----------P01F001F7--------------------------
  2302. PORT 01F0-01F7 - HDC 1    (1st Fixed Disk Controller) (ISA, EISA)
  2303. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  2304. SeeAlso: PORT 0170h-0177h,PORT 3510h-3513h
  2305.  
  2306. 01F0  RW  data register
  2307. 01F1  R-  error register (see #P083)
  2308. 01F1  -W  WPC/4     (Write Precompensation Cylinder divided by 4)
  2309. 01F2  RW  sector count
  2310. 01F3  RW  sector number (CHS mode)
  2311.       logical block address, bits 0-7 (LBA mode)
  2312. 01F4  RW  cylinder low (CHS mode)
  2313.       logical block address, bits 15-8 (LBA mode)
  2314. 01F5  RW  cylinder high (CHS mode)
  2315.       logical block address, bits 23-16 (LBA mode)
  2316. 01F6  RW  drive/head (see #P084)
  2317. 01F7  R-  status register (see #P085)
  2318. 01F7  -W  command register (see #P086)
  2319.  
  2320. Bitfields for Hard Disk Controller error register:
  2321. Bit(s)    Description    (Table P083)
  2322. ---diagnostic mode errors---
  2323.  7    which drive failed (0 = master, 1 = slave)
  2324.  6-3    reserved
  2325.  2-0    error code
  2326.     001    no error detected
  2327.     010    formatter device error
  2328.     011    sector buffer error
  2329.     100    ECC circuitry error
  2330.     101    controlling microprocessor error
  2331. ---operation mode---
  2332.  7    bad block detected
  2333.  6    uncorrectable ECC error
  2334.  5    reserved
  2335.  4    ID found
  2336.  3    reserved
  2337.  2    command aborted prematurely
  2338.  1    track 000 not found
  2339.  0    DAM not found (always 0 for CP-3022)
  2340. SeeAlso: #P084,#P085
  2341.  
  2342. Bitfields for hard disk controller drive/head specifier:
  2343. Bit(s)    Description    (Table P084)
  2344.  7    =1
  2345.  6    LBA mode enabled, rather than default CHS mode
  2346.  5    =1
  2347.  4    drive select (0 = drive 0, 1 = drive 1)
  2348.  3-0    head select bits (CHS mode)
  2349.     logical block address, bits 27-24 (LBA mode)
  2350. SeeAlso: #P083,#P085
  2351.  
  2352. Bitfields for hard disk controller status register:
  2353. Bit(s)    Description    (Table P085)
  2354.  7    controller is executing a command
  2355.  6    drive is ready
  2356.  5    write fault
  2357.  4    seek complete
  2358.  3    sector buffer requires servicing
  2359.  2    disk data read successfully corrected
  2360.  1    index - set to 1 each disk revolution
  2361.  0    previous command ended in an error
  2362. SeeAlso: #P083,#P086
  2363.  
  2364. (Table P086)
  2365. Values for hard disk controller command codes:
  2366. Command     Spec    Type    Proto    Description            class:
  2367.  00h        opt    nondata    NOP                    
  2368.  1xh        opt    nondata    recalibrate              1
  2369.  20h        req    PIOin    read sectors with retry          1
  2370.  21h        req    PIOin    read sectors without retry      1
  2371.  22h        req    PIOin    read long with retry          1
  2372.  23h        req    PIOin    read long without retry          1
  2373.  30h        req    PIOout    write sectors with retry      2
  2374.  31h        req    PIOout    write sectors without retry      2
  2375.  32h        req    PIOout    write long with retry          2
  2376.  33h        req    PIOout    write long without retry      2
  2377.  3Ch     IDE    opt    PIOout    write verify              3
  2378.  40h        req    nondata    read verify sectors with retry      1
  2379.  41h        req    nondata    read verify sectors without retry 1
  2380.  50h        req    vend    format track              2
  2381.  7xh        req    nondata    seek                  1
  2382.  8xh     IDE    vendor    vend    vendor unique 3
  2383.  90h        req    nondata    execute drive diagnostics      1
  2384.  91h        req    nondata    initialize drive parameters      1
  2385.  92h        opt    PIOout    download microcode            
  2386.  94h E0h IDE    opt    nondata    standby immediate          1
  2387.  95h E1h IDE    opt    nondata    idle immediate              1
  2388.  96h E2h IDE    opt    nondata    standby                  1
  2389.  97h E3h IDE    opt    nondata    idle                  1
  2390.  98h E5h IDE    opt    nondata    check power mode          1
  2391.  99h E6h IDE    opt    nondata    set sleep mode              1
  2392.  9Ah     IDE    vendor    vend    vendor unique 1
  2393.  A1h     ATAPI    opt    PIOin    ATAPI Identify            (see #P089)
  2394.  B0h     SMART  opt        Self Mon., Analysis, Rept. Tech. (see #P280)
  2395.  C0h-C3h IDE    vendor    vend    vendor unique 2
  2396.  C4h     IDE    opt    PIOin    read multiple              1
  2397.  C5h     IDE    opt    PIOout    write multiple              3
  2398.  C6h     IDE    opt    nondata    set multiple mode          1
  2399.  C8h     IDE    opt    DMA    read DMA with retry          1
  2400.  C9h     IDE    opt    DMA    read DMA without retry          1
  2401.  CAh     IDE    opt    DMA    write DMA with retry          3
  2402.  CBh     IDE    opt    DMA    write DMA w/out retry          3
  2403.  DBh     ATA-2    opt    vend    acknowledge media chng        [Removable]
  2404.  DCh     ATA-2    opt    vend    Boot / Post-Boot        [Removable]
  2405.  DDh     ATA-2    opt    vend    Boot / Pre-Boot    (ATA-2)        [Removable]
  2406.  DEh     ATA-2    opt    vend    door lock            [Removable]
  2407.  DFh     ATA-2    opt    vend    door unlock            [Removable]
  2408.  E0h-E3h            (second half of commands 94h-96h)
  2409.  E4h     IDE    opt    PIOin    read buffer              1
  2410.  E5h-E6h            (second half of commands 98h-99h)
  2411.  E8h     IDE    opt    PIOout    write buffer              2
  2412.  E9h     IDE    opt    PIOout    write same              3
  2413.  EAh     ATA-3    opt        Secure Disable            [Security Mode]
  2414.  EAh     ATA-3    opt        Secure Lock            [Security Mode]
  2415.  EAh     ATA-3    opt        Secure State            [Security Mode]
  2416.  EAh     ATA-3    opt        Secure Enable WriteProt        [Security Mode]
  2417.  EBh     ATA-3    opt        Secure Enable            [Security Mode]
  2418.  EBh     ATA-3    opt        Secure Unlock            [Security Mode]
  2419.  ECh     IDE    req    PIOin    identify drive              1 (see #P087)
  2420.  EDh     ATA-2    opt    nondata    media eject            [Removable]
  2421.  EEh     ATA-3    opt        identify device DMA            (see #P087)
  2422.  EFh     IDE    opt    nondata    set features              1 (see #P281)
  2423.  F0h-F4h IDE        vend    EATA standard    
  2424.  F1h                Security Set Password
  2425.  F2h                Security Unlock
  2426.  F3h                Security Erase Prepare
  2427.  F4h                Security Erase Unit
  2428.  F5h-FFh IDE    vendor    vend    vendor unique 4
  2429.  F5h                Security Freeze Lock
  2430.  F6h                Security Disable Password
  2431. SeeAlso: #P083,#P085
  2432.  
  2433. Format of IDE Identify Drive information:
  2434. Offset    Size    Description    (Table P087)
  2435.  00h    WORD    general configuration (see #P282)
  2436.  02h    WORD    number of logical cylinders
  2437.  04h    WORD    reserved
  2438.  06h    WORD    number of logical heads
  2439.  08h    WORD    vendor-specific (obsolete: unformatted bytes per track)
  2440.  0Ah    WORD    vendor-specific (obsolete: unformatted bytes per sector)
  2441.  0Ch    WORD    number of logical sectors
  2442.  0Eh    WORD    vendor-specific
  2443.  10h    WORD    vendor-specific
  2444.  12h    WORD    vendor-specific
  2445.  14h 10 WORDs    serial number
  2446.         no serial number if first word is 0000h
  2447.         else blank-padded ASCII serial number
  2448.  28h    WORD    vendor-specific
  2449.         [buffer type: 01h single-sector, 02h multisector,
  2450.           03h multisector with read cache]
  2451.  2Ah    WORD    controller buffer size in 512-byte sectors
  2452.         0000h = unspecified
  2453.  2Ch    WORD    number of vendor-specific (usually ECC) bytes on
  2454.           Read/Write Long; 0000h = unspecified
  2455.  2Eh  4    WORDs    firmware revision
  2456.         no revision number if first word is 0000h
  2457.         else blank-padded ASCII revision number
  2458.  36h 20    WORDs    model number
  2459.         no model number if first word is 0000h
  2460.         else blank-padded ASCII model string
  2461.  5Eh    WORD    read/write multiple support
  2462.         bits 7-0: maximum number of sectors per block supported
  2463.             00h if read/write multiple not supported
  2464.         bits 15-8: vendor-specified
  2465.  60h    WORD    able to do doubleword transfers if nonzero
  2466.  62h    WORD    capabilities (see #P088)
  2467.  64h    WORD    security mode
  2468.         bit 15: security-mode feature set supported
  2469.         bits 14-8: maximum number of passwords supported
  2470.  66h    WORD    PIO data transfer cycle timing
  2471.  68h    WORD    single-word DMA data transfer cycle timing
  2472.  6Ah    WORD    field validity
  2473.         bit 0: offsets 6Ch-75h valid
  2474.         bit 1: offsets 80h-8Dh valid
  2475.  6Ch    WORD    logical cylinders in current translation mode
  2476.  6Eh    WORD    logical heads in current translation mode
  2477.  70h    WORD    logical sectors per track in current translation mode
  2478.  72h    DWORD    current capacity in sectors (excluding device-specific uses)
  2479.  76h    WORD    multiple-sector support
  2480.         bits 7-0: count for read/write multiple command
  2481.         bit 8:    multiple-sector setting is valid
  2482.  78h    DWORD    total number of user-addressable sectors (LBA mode)
  2483.         00000000h if LBA mode not supported
  2484.  7Ch    WORD    single-word DMA transfer modes
  2485.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2486.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  2487.  7Eh    WORD    multiword DMA transfer
  2488.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2489.         high byte is bitmap of active mode (bit 8 = mode 0, etc.)
  2490.  80h    WORD    supported flow control PIO transfer modes
  2491.  82h    WORD    minimum multiword DMA transfer cycle time in ns
  2492.  84h    WORD    recommended multiword DMA cycle time in ns
  2493.  86h    WORD    minimum non-flow-control PIO transfer cycle time in ns
  2494.  88h    WORD    minimum PIO transfer cycle time with IORDY in ns
  2495.  8Ah  2 WORDs    reserved for future PIO modes (0)
  2496.  8Eh  9 WORDs    reserved (0)
  2497.  A0h    WORD    major revision number of specification to which device conforms
  2498.         01h = ATA-1, 02h = ATA-2, etc.  0000h/FFFFh = not reported
  2499.  A2h    WORD    minor revision number of specification to which device conforms
  2500.         0000h/FFFFh = not reported
  2501.  A4h    WORD    feature set support
  2502.         (only valid if revision reported in A0h/A2h)
  2503.  A6h    WORD    feature set support
  2504.         (only valid if revision reported in A0h/A2h)
  2505.  A8h 45 WORDs    reserved (0)
  2506. 100h 32 WORDs    vendor-specific
  2507. 100h    WORD    security status
  2508. 140h 96 WORDs    reserved (0)
  2509. SeeAlso: #P089,#0177
  2510.  
  2511. Bitfields for IDE general configuration:
  2512. Bit(s)    Description    (Table P282)
  2513.  15    device class
  2514.     =0 ATA device
  2515.     =1 ATAPI device
  2516.  14    requires format speed tolerance gap
  2517.  13    supports track offset option
  2518.  12    supports data strobe offset
  2519.  11    disk rotational sped tolerance > 0.5%
  2520.  10-8    disk transfer rate
  2521.     001 <= 5Mbit/sec
  2522.     010 5-10 Mbit/sec
  2523.     100 > 10Mbit/sec
  2524.  7-6    drive type
  2525.     01 fixed media
  2526.     10 removable media
  2527.  5    synchronized drive motor option enabled
  2528.  4    head-switching time > 15 microseconds
  2529.  3    encoding
  2530.     =0 MFM
  2531.  2-1    sector type
  2532.     01 hard-sectored
  2533.     10 soft-sectored
  2534.  0    unused (0)
  2535. SeeAlso: #P087
  2536.  
  2537. Bitfields for IDE capabilities:
  2538. Bit(s)    Description    (Table P088)
  2539.  13    Standby Timer values used according to ATA standard
  2540.  11    IORDY supported
  2541.  10    device can disable use of IORDY
  2542.  9    LBA mode supported
  2543.  8    DMA supported
  2544. SeeAlso: #P087
  2545.  
  2546. Format of ATAPI Identify Information:
  2547. Offset    Size    Description    (Table P089)
  2548.  00h    WORD    general configuration (see #P090)
  2549.  14h 10 WORDs    serial number
  2550.         no serial number if first word is 0000h
  2551.         else blank-padded ASCII serial number
  2552.  28h  3 WORDs    vendor-specific
  2553.  2Eh  4    WORDs    firmware revision
  2554.         no revision number if first word is 0000h
  2555.         else blank-padded ASCII revision number
  2556.  36h 20    WORDs    model number
  2557.         no model number if first word is 0000h
  2558.         else blank-padded ASCII model string
  2559.  5Eh    WORD    vendor-specific
  2560.  60h    WORD    reserved (0)
  2561.  62h    WORD    capabilities (see #P088)
  2562.  64h    WORD    security mode???
  2563.  66h    WORD    PIO data transfer cycle timing
  2564.  68h    WORD    single-word DMA data transfer cycle timing
  2565.  6Ah    WORD    field validity
  2566.         bit 0: offsets 6Ch-73h valid
  2567.         bit 1: offsets 80h-8Dh valid
  2568.  6Ch    WORD    ??? logical cylinders in current translation mode
  2569.  6Eh    WORD    ??? logical heads in current translation mode
  2570.  70h    WORD    ??? logical sectors per track in current translation mode
  2571.  72h  2    WORDs    ??? current capacity in sectors
  2572.  76h    WORD    ??? multiple-sector count for read/write multiple command
  2573.  78h  2    WORDs    ??? total number of user-addressable sectors (LBA mode)
  2574.  7Ch    WORD    single-word DMA transfer modes
  2575.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2576.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  2577.  7Eh    WORD    multiword DMA transfer
  2578.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  2579.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  2580.  80h    WORD    supported flow control PIO transfer modes
  2581.  82h    WORD    minimum multiword DMA transfer cycle time
  2582.  84h    WORD    recommended multiword DMA cycle time
  2583.  86h    WORD    minimum non-flow-control PIO transfer cycle time
  2584.  88h    WORD    minimum PIO transfer cycle time with IORDY
  2585.  8Ah  2 WORDs    reserved for future PIO modes (0)
  2586.  8Eh    WORD    typical time for release when processing overlapped CMD in
  2587.           microseconds
  2588.  90h    WORD    ???
  2589.  92h    WORD    major ATAPI version number
  2590.  94h    WORD    minor ATAPI version number
  2591.  96h 54 WORDs    reserved (0)
  2592. 100h 32 WORDs    vendor-specific
  2593. 140h 96 WORDs    reserved (0)
  2594. SeeAlso: #P087
  2595.  
  2596. Bitfields for ATAPI General Configuration:
  2597. Bit(s)    Description    (Table P090)
  2598.  15-14    device type
  2599.  13    reserved
  2600.  12    device present
  2601.  7    device is removable
  2602.  6-5    CMD DMA Request type
  2603.     00 microprocessor DRQ
  2604.     01 interrupt DRQ
  2605.     10 accelerated DRQ
  2606.     11 reserved
  2607.  4-2    reserved
  2608.  1-0    CMD packet size (00 = 12 bytes, 01 = 16 bytes)
  2609. SeeAlso: #P089
  2610.  
  2611. (Table P280)
  2612. Values for Self-Monitoring, Analysis, Reporting Technology (SMART) command:
  2613.  D0h    Read Attribute Values (optional)
  2614.  D1h    Read Attribute Thresholds (optional)
  2615.  D2h    Disable Attribute Autosave (optional)
  2616.     sector-count register set to 0000h
  2617.  D2h    Enable Attribute Autosave
  2618.     sector-count register set to 00F1h
  2619.  D3h    Save Attribute Values (optional)
  2620.  D8h    Enable Operations
  2621.  D9h    Disable Operations
  2622.  DAh    Return Status
  2623. Note:    to access SMART commands, the Cylinder Low register must be set to
  2624.       004Fh and the Cylinder High register must be set to 00C2h before
  2625.       invoking the SMART command with the SMART command number in the
  2626.       Features register
  2627. SeeAlso: #P086
  2628.  
  2629. (Table P281)
  2630. Values for Feature Code:
  2631.  01h    [opt] 8-bit instead of 16-bit data transfers
  2632.  02h    [opt] enable write cache
  2633.  03h          set transfer mode as specified by Sector Count register
  2634.  04h    [opt] enable all automatic defect reassignment
  2635.  22h    [opt] Write Same, user-specified area
  2636.  33h    [opt] disable retries
  2637.  44h          specify length of ECC bytes used by Read Long and Write Long
  2638.  54h    [opt] set cache segments (value in Sector Count register)
  2639.  55h          disable look-ahead
  2640.  66h          disable reverting to power-on defaults
  2641.  77h    [opt] disable ECC
  2642.  81h    [opt] 16-bit instead of 8-bit data transfers
  2643.  82h    [opt] disable write cache
  2644.  84h    [opt] disable all automatic defect reassignment
  2645.  88h    [opt] enable ECC
  2646.  99h    [opt] enable retries
  2647.  9Ah    [opt] set device maximum average current
  2648.  AAh          enable look-ahead
  2649.  ABh    [opt] set maximum prefecth (value in Sector Count register)
  2650.  BBh          use four bytes of ECC on Read Long and Write Long (for compat.)
  2651.  CCh          enable reverting to power-on defaults
  2652.  DDh    [opt] Write Same, entire disk
  2653. SeeAlso: #0176
  2654. ----------P01F8------------------------------
  2655. PORT 01F8 - ???
  2656.  
  2657. 01F8  RW  ???
  2658.         bit 0: A20 gate control (set = A20 enabled, clear = disabled)
  2659. ----------P01F901FF--------------------------
  2660. PORT 01F9-01FF - PC radio by CoZet Info Systems
  2661. Range:    The I/O address range is dipswitch selectable from:
  2662.        038-03F and 0B0-0BF
  2663.        078-07F and 0F0-0FF
  2664.        138-13F and 1B0-1BF
  2665.        178-17F and 1F0-1FF
  2666.        238-23F and 2B0-2BF
  2667.        278-27F and 2F0-2FF
  2668.        338-33F and 3B0-3BF
  2669.        378-37F and 3F0-3FF
  2670. Notes:    All of these addresses show a readout of FFh in initial state.
  2671.     Once started, all of the addresses show    FBh, whatever might happen.
  2672. --------d-P0200------------------------------
  2673. PORT 0200 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  2674. SeeAlso: PORT 0300h"Digidesign"
  2675. ----------P0200020F--------------------------
  2676. PORT 0200-020F - Game port reserved I/O address space  
  2677. 0200-0207 - Game port, eight identical addresses on some boards
  2678.  
  2679. 0201  R-  read joystick position and status (see #P091)
  2680. 0201  -W  fire joystick's four one-shots
  2681. 0201  RW  gameport on mc-soundmachine, mc 03-04/1992: Adlib-compatible,
  2682.         Covox 'voice master' & 'speech thing' compatible soundcard.
  2683.         (enabled if bit1=1 in PORT 038Fh. Because it is disabled on
  2684.         power-on, it cannot be found by BIOS) (see PORT 0388h-038Fh)
  2685.  
  2686. Bitfields for joystick position and status:
  2687. Bit(s)    Description    (Table P091)
  2688.  7    status B joystick button 2 / D paddle button
  2689.  6    status B joystick button 1 / C paddle button
  2690.  5    status A joystick button 2 / B paddle button
  2691.  4    status A joystick button 1 / A paddle button
  2692.  3    B joystick Y coordinate       / D paddle coordinate
  2693.  2    B joystick X coordinate       / C paddle coordinate
  2694.  1    A joystick Y coordinate       / B paddle coordinate
  2695.  0    A joystick X coordinate       / A paddle coordinate
  2696. ----------P020002FF--------------------------
  2697. PORT 0200-02FF - Sunshine uPW48, programmer for EPROM version CPU's 8748/8749
  2698. Range:    4 bit DIP switch installable in the range 20x-2Fx
  2699.  
  2700. 0200-0203    adresses of the 8255 on the uPW48
  2701. 0208-020B    adresses of ??? on the uPW48 (all showing zeros)
  2702. ----------P02080209--------------------------
  2703. PORT 0208-0209 - Intel 82C212B "Neat" chipset - EMS emulation control
  2704. Range:    may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, 02E8
  2705. ----------P020C020F--------------------------
  2706. PORT 020C-020F - AIMS LAB PC Radio
  2707. Range:    configurable to 020C or 030C
  2708. ----------P02100217--------------------------
  2709. PORT 0210-0217 - Expansion unit (XT)
  2710.  
  2711. 0210  -W  latch expansion bus data
  2712. 0210  R-  verify expansion bus data
  2713. 0211  -W  clear wait, test latch
  2714. 0211  R-  High byte data address
  2715. 0212  R-  Low byte data address
  2716. 0213  -W  0=enable,  1=disable expansion unit
  2717. 0214  -W  latch data  (receiver card port)
  2718. 0214  R-  read data   (receiver card port)
  2719. 0215  R-  High byte of address, then Low byte    (receiver card port)
  2720. ----------P02100211--------------------------
  2721. PORT 0210-0211 - Game Blaster
  2722. Range:    PORT 02x0h-02x1h, x=1,2,...
  2723.  
  2724. 0210  -W  register index
  2725. 0211  ?W  register data
  2726. ----------P02180219--------------------------
  2727. PORT 0218-0219 - Intel 82C212B "Neat" chipset - EMS emulation control
  2728. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2729. ----------P02200223--------------------------
  2730. PORT 0220-0223 - Sound Blaster / Adlib port (Stereo)
  2731. SeeAlso: PORT 0388h-0389h
  2732.  
  2733. 0220  R-  Left speaker -- Status port
  2734. 0220  -W  Left speaker -- Address port
  2735. 0221  -W  Left speaker -- Data port
  2736. 0222  R-  Right speaker -- Status port
  2737. 0222  -W  Right speaker -- Address port
  2738. 0223  -W  Right speaker -- Data port
  2739. ----------P02200227--------------------------
  2740. PORT 0220-0227 - Soundblaster PRO and SSB 16 ASP
  2741. ----------P0220022F--------------------------
  2742. PORT 0220-022F - Soundblaster PRO 2.0
  2743. ----------P0220022F--------------------------
  2744. PORT 0220-022F - Soundblaster PRO 4.0
  2745. Note:    the FM music is accessible on 0388/0389 for compatibility.
  2746.  
  2747. 0220  R-  left FM status port
  2748. 0220  -W  left FM music register address port (index)
  2749. 0221  RW  left FM music data port
  2750. 0222  R-  right FM status port
  2751. 0222  -W  right FM music register address port (index)
  2752. 0223  RW  right FM music data port
  2753. 0224  -W  mixer register address port (index)
  2754. 0225  RW  mixer data port
  2755. 0226  -W  DSP reset
  2756. 0228  R-  FM music status port
  2757. 0228  -W  FM music register address port (index)
  2758. 0229  -W  FM music data port
  2759. 022A  R-  DSP read data (voice I/O and Midi)
  2760. 022C  -W  DSP write data / write command
  2761. 022C  R-  DSP write buffer status (bit 7)
  2762. 022E  R-  DSP data available status (bit 7)
  2763. ----------P022B------------------------------
  2764. PORT 022B - GI1904 Scanner Interface Adapter
  2765. Range:    PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  2766. Range:    PORT 03ABh, PORT 03EBh
  2767. ----------P022C------------------------------
  2768. PORT 022C - GS-IF Scanner Interface adapter
  2769. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  2770.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  2771. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  2772.       others use this interface
  2773. ----------P022F------------------------------
  2774. PORT 022F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  2775. Note:    An Adlib-compatible Covox 'voice master' & 'speech thing' compatible
  2776.       soundcard
  2777. SeeAlso: PORT 0378h"Covox",PORT 0388h-038Fh"soundmachine"
  2778.  
  2779. 022F  RW  Covox compatible speech I/O  (via internal A/D converter,
  2780.         each read access starts a new conversion cycle)
  2781.         register enabled if bit7=1 in PORT 038Fh
  2782. ----------P02300233--------------------------
  2783. PORT 0230-0233 - Adaptec 154xB/154xC SCSI adapter.
  2784.         alternate address at 0130, 0134, 0230, 0330 and 0334
  2785. ----------P02340237--------------------------
  2786. PORT 0234-0237 - Adaptec 154xB/154xC SCSI adapter.
  2787.         alternate address at 0130, 0134, 0230, 0330 and 0334
  2788. ----------P0238023F--------------------------
  2789. PORT 0238-023F - COM port addresses on UniRAM card by German magazine c't
  2790.         selectable from 238, 2E8, 2F8, 338, 3E0, 3E8, 3F8
  2791. ----------P0238023x--------------------------
  2792. PORT 0238-023x - Bus Mouse Port (secondary address)
  2793. Note:    secondary address for bus mice from MS and Logitech, and the ATI
  2794.       video adapter mouse
  2795. SeeAlso: PORT 023Ch"Mouse"
  2796. ----------P023C023x--------------------------
  2797. PORT 023C-023x - Bus Mouse Port (primary address)
  2798. Note:    primary address for bus mice from MS and Logitech, the ATI video
  2799.       adapter mouse, and the Commodore PC30III bus mouse
  2800. SeeAlso: PORT 0238h"Mouse"
  2801. ----------P0240024F--------------------------
  2802. PORT 0240-024F - Gravis Ultra Sound by Advanced Gravis
  2803. Range:    The I/O address range is dipswitch selectable from:
  2804.        0200-020F and 0300-030F
  2805.        0210-021F and 0310-031F
  2806.        0220-022F and 0320-032F
  2807.        0230-023F and 0330-033F
  2808.        0240-024F and 0340-034F
  2809.        0250-025F and 0350-035F
  2810.        0260-026F and 0360-036F
  2811.        0270-027F and 0370-037F
  2812. SeeAlso: PORT 0340h-034Fh,PORT 0746h
  2813.  
  2814. 0240  -W  Mix Control register (see #P092)
  2815. 0241  R-  Read Data
  2816. 0241  -W  Trigger Timer
  2817. 0246  R-  IRQ Status Register (see #P093)
  2818. 0248  RW  Timer Control Reg
  2819.       Same as ADLIB Board (see PORT 0200h)
  2820. 0249  -W  Timer Data (see #P094)
  2821. 024B  -W  IRQ Control Register (0240 bit 6 = 1) (see #P095)
  2822. 024B  -W  DMA Control Register (0240 bit 6 = 0) (see #P096)
  2823. 024F  RW  Register Controls (rev 3.4+)
  2824.  
  2825. Bitfields for Gravis Ultra Sound mix control register:
  2826. Bit(s)    Description    (Table P092)
  2827.  6       Control Register Select (see 024B)
  2828.  5       Enable MIDI Loopback
  2829.  4       Combine GF1 IRQ with MIDI IRQ
  2830.  3       Enable Latches
  2831.  2       Enable MIC IN
  2832.  1       Disable LINE OUT
  2833.  0       Disable LINE IN
  2834. SeeAlso: #P093
  2835.  
  2836. Bitfields for Gravis Ultra Sound IRQ status register:
  2837. Bit(s)    Description    (Table P093)
  2838.  7       DMA TC IRQ
  2839.  6       Volume Ramp IRQ
  2840.  5       WaveTable IRQ
  2841.  3       Timer 2 IRQ
  2842.  2       Timer 1 IRQ
  2843.  1       MIDI Receive IRQ
  2844.  0       MIDI Transmit IRQ
  2845. SeeAlso: #P092,#P095,#P096
  2846.  
  2847. Bitfields for Gravis Ultra Sound timer data:
  2848. Bit(s)    Description    (Table P094)
  2849.  7       Reset Timr IRQ
  2850.  6       Mask Timer 1
  2851.  5       Mask Timer 2
  2852.  1       Timer 2 Start
  2853.  0       Timer 1 Start
  2854. SeeAlso: #P093,#P095
  2855.  
  2856. Bitfields for Gravis Ultra Sound IRQ control register:
  2857. Bit(s)    Description    (Table P095)
  2858.  6    Combine Both IRQ
  2859.  5-3    MIDI IRQ Selector
  2860.     000  No IRQ
  2861.     001  IRQ 2
  2862.     010  IRQ 5
  2863.     011  IRQ 3
  2864.     100  IRQ 7
  2865.     101  IRQ 11
  2866.     110  IRQ 12
  2867.     111  IRQ 15
  2868.  2-0    GF1 IRQ Selector
  2869.     000  No IRQ
  2870.     001  IRQ 2
  2871.     010  IRQ 5
  2872.     011  IRQ 3
  2873.     100  IRQ 7
  2874.     101  IRQ 11
  2875.     110  IRQ 12
  2876.     111  IRQ 15
  2877. SeeAlso: #P093,#P096
  2878.  
  2879. Bitfields for Gravis Ultra Sound DMA Control Register:
  2880. Bit(s)    Description    (Table P096)
  2881.  6    Combine Both DMA
  2882.  5-3    DMA Select Register 2
  2883.     000  No DMA
  2884.     001  DMA 1
  2885.     010  DMA 3
  2886.     011  DMA 5
  2887.     100  DMA 6
  2888.     101  DMA 7 
  2889.  2-0    DMA Select Register 1
  2890.     000  No DMA
  2891.     001  DMA 1
  2892.     010  DMA 3
  2893.     011  DMA 5
  2894.     100  DMA 6
  2895.     101  DMA 7 
  2896. SeeAlso: #P093,#P095,#P100
  2897. ----------P02400257--------------------------
  2898. PORT 0240-0257 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  2899.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  2900. ----------P02580259--------------------------
  2901. PORT 0258-0259 - Intel 82C212B "Neat" chipset - EMS emulation control
  2902. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2903. ----------P02580259--------------------------
  2904. PORT 0258-0259 - AT RAMBANK Memory Expansion Board - EXT MEMORY AND EMS-SUPPORT
  2905. Range:    base address may be set to 0218h, 0228h, 0238h, 0258h, 0268h, 0298h,
  2906.       or 02A8h
  2907. ----------P0258025F--------------------------
  2908. PORT 0258-025F - Intel Above Board
  2909. ----------P02600268--------------------------
  2910. PORT 0260-0268    -  LPT port address on the UniRAM card by German magazine c't
  2911.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  2912. ----------P02680269--------------------------
  2913. PORT 0268-0269 - Intel 82C212B "Neat" chipset - EMS emulation control
  2914. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  2915. ----------P026B------------------------------
  2916. PORT 026B - GI1904 Scanner Interface Adapter
  2917. Range:    PORT 022Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  2918. Range:    PORT 03ABh, PORT 03EBh
  2919. ----------P026C------------------------------
  2920. PORT 026C - GS-IF Scanner Interface adapter
  2921. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  2922.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  2923. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  2924.       others use this interface
  2925. ----------P026E026F--------------------------
  2926. PORT 026E-026F - Dell Enhanced Parallel Port
  2927. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 0398h
  2928.  
  2929. 026E  -W  index for data port
  2930. 026F  RW  EPP command data
  2931. ----------P0278------------------------------
  2932. PORT 0278 - Covox 'Speech Thing' COMPATIBLES
  2933. SeeAlso: PORT 022Fh"Covox",PORT 0388h-038Fh"soundmachine"
  2934.  
  2935. 0278  -W  speech data output via printer data port
  2936.         (with mc-soundmachine, enabled if bit5=1 in 38F)
  2937. ----------P0278027E--------------------------
  2938. PORT 0278-027E - parallel printer port, same as 0378 and 03BC
  2939.  
  2940. 0278  -W  data port
  2941. 0279  Rw  status port
  2942. 027A  RW  control port
  2943. ----------P0279------------------------------
  2944. PORT 0279 - Plug-and-Play - CONFIGURATION REGISTER
  2945. SeeAlso: PORT 0A79h
  2946.  
  2947. 0279  -W  index into Plug-and-Play register set for Read Data Port and
  2948.       Write Data Port I/O (see #P097,#P098)
  2949.  
  2950. (Table P097)
  2951. Values for Plug-and-Play Card-Level Registers:
  2952.  00h    set Read Port address
  2953.     bits 9-2 of Read Data port address (bits 15-10 are always 0, bits 1-0
  2954.       are always 11); valid Read Port addresses are 0203h-03FFh
  2955.  01h    serial isolation
  2956.  02h    configuration control
  2957.  03h    Wake command
  2958.     (specifies which card is accessed through configuration registers)
  2959.  04h    resource data
  2960.  05h    status
  2961.  06h    Card Select Number (CSN)
  2962.  07h    logical device number
  2963.     (selects which logical device on card is accessed at locations 30h-FFh)
  2964.     (see #P098)
  2965.  08h-1Fh reserved
  2966.  20h-2Fh vendor-specific
  2967. Note:    there is one set of these registers per installed card
  2968. SeeAlso: #P098
  2969.  
  2970. (Table P098)
  2971. Values for Plug-and-Play Logical Device Registers:
  2972.  30h    activate
  2973.     bit 0: device is active on ISA bus
  2974.     bits 7-1: reserved (0)
  2975.  31h    I/O range check
  2976.     bit 0: I/O Read Pattern select (if bit 1 set, then I/O reads return
  2977.         55h if this bit is set, AAh if this bit is clear)
  2978.     bit 1: I/O Range Check Enable: if set, all reads from device I/O
  2979.           registers return 55h or AAh, depending on bit 0
  2980.     bits 7-2: reserved (0)
  2981.  32h-37h reserved
  2982.  38h-3Fh vendor-specific
  2983.  40h-44h 24-bit ISA memory descriptor 0
  2984.  45h-47h reserved
  2985.  48h-4Ch 24-bit ISA memory descriptor 1
  2986.  4Dh-4Fh reserved
  2987.  50h-54h 24-bit ISA memory descriptor 2
  2988.  55h-57h reserved
  2989.  58h-5Ch 24-bit ISA memory descriptor 3
  2990.  5Dh-5Fh reserved
  2991.  60h-6Fh I/O configuration registers 0-7
  2992.  70h-71h IRQ channel select 0
  2993.  72h-73h IRQ channel select 1
  2994.  74h-75h DMA configuration registers 0-1
  2995.  76h-7Eh 32-bit memory range configuration register 0
  2996.  7Fh     reserved
  2997.  80h-88h 32-bit memory range configuration register 1
  2998.  89h-8Fh reserved
  2999.  90h-98h 32-bit memory range configuration register 2
  3000.  99h-9Fh reserved
  3001.  A0h-A8h 32-bit memory range configuration register 3
  3002.  A9h-EFh reserved for logical device configuration
  3003.  F0h-FEh vendor-specific
  3004.  FFh    reserved
  3005. Note:    there is one set of these registers per logical device
  3006. SeeAlso: #P097
  3007. ----------P0280------------------------------
  3008. PORT 0280 - LCD display on Wyse 2108 PC
  3009. ----------P02800288--------------------------
  3010. PORT 0280-0288    - non-standard COM port addresses (V20-XT by German magazine c't)
  3011.         selectable from 0280, 0288, 0290, 0298, 6A0, 6A8
  3012. ----------P0288028F--------------------------
  3013. PORT 0288-028F    - non-standard COM port addresses (V20-XT by German magazine c't)
  3014. 0280-0288    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  3015. 0290-0298
  3016. 0298-029F
  3017. ----------P02A002A7--------------------------
  3018. PORT 02A0-02A7 - Sunshine EW-901BN, EW-904BN
  3019.         EPROM writer card (release 1986) for EPROMs up to 27512
  3020. 02A0-02A3    adresses of the 8255 on the EW-90xBN
  3021. ----------P02A202A3--------------------------
  3022. PORT 02A2-02A3 - MSM58321RS clock
  3023. ----------P02A802A9--------------------------
  3024. PORT 02A8-02A9 - Intel 82C212B "Neat" chipset - EMS emulation control
  3025. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  3026. ----------P02AB------------------------------
  3027. PORT 02AB - GI1904 Scanner Interface Adapter (default)
  3028. Range:    PORT 022Bh, PORT 026Bh, PORT 02EBh, PORT 032Bh, PORT 036Bh
  3029. Range:    PORT 03ABh, PORT 03EBh
  3030. Note:    the GI1904 is used by many SPI 400/800dpi gray/halftone/color handy
  3031.       scanners by Marstek, Mustek, Conrad, Völkner and others
  3032. ----------P02AC------------------------------
  3033. PORT 02AC - GS-IF Scanner Interface adapter
  3034. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  3035.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  3036. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  3037.       others use this interface
  3038. ----------P02B002BF--------------------------
  3039. PORT 02B0-02BF - Trantor SCSI adapter
  3040. ----------P02B002DF--------------------------
  3041. PORT 02B0-02DF - alternate EGA,    primary EGA at 03C0
  3042. ----------P02B802B9--------------------------
  3043. PORT 02B8-02B9 - Intel 82C212B "Neat" chipset - EMS emulation control
  3044. Range: base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  3045. ----------P02C002Cx--------------------------
  3046. PORT 02C0-02Cx - AST-clock
  3047. ----------P02C002DF--------------------------
  3048. PORT 02C0-02DF - XT-Real Time Clock 2 (default jumpered address)
  3049. ----------P02E002E8--------------------------
  3050. PORT 02E0-02E8 - LPT port address on the UniRAM card by German magazine c't
  3051. Range:    base address selectable from 0260, 02E0, 02E8, 02F0, 03E0, and 03E8.
  3052. ----------P02E002EF--------------------------
  3053. PORT 02E0-02EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  3054.         (GAB 0 on XT)
  3055. 02E1  ??  GPIB (adapter 0)
  3056. 02E2
  3057. 02E3
  3058. ----------P02E002EF--------------------------
  3059. PORT 02E0-02EF - data aquisition     (AT)
  3060.  
  3061. 02E2  ??  data aquisition (adapter 0)
  3062. 02E3  ??  data aquisition (adapter 0)
  3063. ----------P02E8------------------------------
  3064. PORT 02E8 - S3 86C928 video controller (ELSA Winner 1000)
  3065. ----------P02E802E9--------------------------
  3066. PORT 02E8-02E9 - Intel 82C212B "Neat" chipset - EMS emulation control
  3067. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  3068. ----------P02E802EF--------------------------
  3069. PORT 02E8-02EF - serial port, same as 02F8, 03E8 and 03F8 (COM4)
  3070. ----------P02E802EF--------------------------
  3071. PORT 02E8-02EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  3072.  
  3073. 02E8  R-  display status
  3074. 02E8  -W  horizontal total
  3075. 02EA  RW  Lookup: DAC mask
  3076. 02EB  -W  Lookup: DAC read index
  3077. 02EC  -W  Lookup: DAC write index
  3078. 02ED  RW  Lookup: DAC data
  3079. ----------P02EA------------------------------
  3080. PORT 02EA - S3 86C928 video controller (ELSA Winner 1000)
  3081. ----------P02EB------------------------------
  3082. PORT 02EB - GI1904 Scanner Interface Adapter
  3083. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 032Bh, PORT 036Bh,
  3084.       PORT 03ABh, PORT 03EBh
  3085. ----------P02EC------------------------------
  3086. PORT 02EC - GS-IF Scanner Interface adapter
  3087. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  3088.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  3089. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  3090.       others use this interface
  3091. ----------P02F002F8--------------------------
  3092. PORT 02F0-02F8 - LPT port address on the UniRAM card by German magazine c't
  3093.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  3094. ----------P02F802FF--------------------------
  3095. PORT 02F8-02FF - serial port, same as 02E8, 03E8 and 03F8 (COM2)
  3096.  
  3097. 02F8  -W  transmitter holding register
  3098. 02F8  R-  receiver buffer register
  3099. 02F8  RW  divisor latch, low byte    when DLAB=1
  3100. 02F9  RW  divisor latch, high byte    when DLAB=1
  3101. 02F9  RW  interrupt enable register when DLAB=0
  3102. 02FA  R-  interrupt identification register
  3103. 02FB  RW  line control register
  3104. 02FC  RW  modem control register
  3105. 02FD  R-  line status register
  3106. 02FF  RW  scratch register
  3107. ----------P0300------------------------------
  3108. PORT 0300 - Award POST Diagnostic
  3109. --------d-P0300------------------------------
  3110. PORT 0300 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  3111. SeeAlso: PORT 0200h"Digidesign"
  3112. ----------P03000301--------------------------
  3113. PORT 0300-0301 - Soundblaster 16 ASP MPU-Midi
  3114. ----------P0300????--------------------------
  3115. PORT 0300-???? - HP IEC/HP-IB adapter (e.g. for use with tape streamer HP9142)
  3116. ----------P03000303--------------------------
  3117. PORT 0300-0303 - Panasonic 52x CD-ROM SCSI Miniport
  3118. Range:    PORT 0300h-0303h,PORT 0320h-0323h,PORT 0340h-0343h,PORT 0360h-0363h,
  3119.       and PORT 0380h-0383h
  3120. ----------P0300030F--------------------------
  3121. PORT 0300-030F - Philips CD-ROM player CM50
  3122. ----------P0300030F--------------------------
  3123. PORT 0300-030F - CompaQ Tape drive adapter. alternate address at 0100
  3124. --------N-P0300031F--------------------------
  3125. PORT 0300-031F - 3com Ethernet adapters (default address)
  3126. --------N-P0300031F--------------------------
  3127. PORT 0300-031F - NE2000 compatible Ethernet adapters
  3128. Range:    may be placed at 0300h, 0320h, 0340h, or 0360h
  3129. SeeAlso: PORT 0300h"PCnet"
  3130. --------N-P0300031F--------------------------
  3131. PORT 0300-031F - AMD PCnet - NE2100-compatible Ethernet adapters
  3132. Range:    may be placed at 0300h, 0320h, 0340h, or 0360h, with the card's ROM
  3133.       appearing at segment C800h, CC00h, D000h, or D400h, respectively
  3134. Note:    for the PCnet-FAST chip, the I/O address may be read from the PCI
  3135.       configuration space at offset 10h (see #0628 at INT 1A/AX=B10Ah)
  3136. SeeAlso: PORT 0300h"NE2000",#0628
  3137.  
  3138. 0300-030F  R-  address PROM (used to store Ethernet address, etc.)
  3139. 0310w RW  Register Data Port (RDP) (see #P241,#P250)
  3140. 0312w ?W  Register Access Port (RAP) (selects register index for RDP and IDP)
  3141.       (see #P247)
  3142. 0314w ?W  Reset
  3143. 0316w RW  ISA Bus Data Port (IDP)
  3144. 0318w     reserved for vendor-specific use
  3145. 031A-031F      reserved
  3146.  
  3147. (Table P241)
  3148. Values for AMD PCnet-ISA Register Data Port index:
  3149.  00h    "CSR0" status and control flags (see #P242)
  3150.  01h    "CSR1" low half of IADR (appears at PORT 0316h)
  3151.  02h    "CSR2" high half of IADR (appears at PORT 0317h)
  3152.  03h    "CSR3" interrupt masks (see #P243)
  3153.  04h    "CSR4" interrupt masks and status bits (see #P244)
  3154.  08h-0Bh logical address filter
  3155.  0Ch-0Eh physical address register
  3156.  0Fh    "CSR15" mode (see #P245)
  3157.  4Ch    "CSR76" receive descriptor ring length
  3158.  4Eh    "CSR78" transmit descriptor ring length
  3159.  50h    "CSR80" FIFO threshold / DMA burst control (see #P246)
  3160.  52h    "CSR82" DMA bus timer
  3161.  58h    "CSR88" chip ID
  3162.  70h    "CSR112" number of missed packets
  3163.  72h    "CSR114" number of receive collisions
  3164.  7Ch    "CSR124" BMU test register
  3165.         bit 4: accept runt packets
  3166. SeeAlso: #P247,#P250
  3167.  
  3168. (Table P250)
  3169. Values for AMD PCnet-SCSI/PCnet-FAST Register Data Port index:
  3170.  00h    "CSR0" status and control flags (see #P242)
  3171.  01h    "CSR1" low half of IADR (appears at PORT 0316h)
  3172.  02h    "CSR2" high half of IADR (appears at PORT 0317h)
  3173.  03h    "CSR3" interrupt masks (see #P243)
  3174.  04h    "CSR4" interrupt masks and status bits (see #P244)
  3175.  05h    "CSR5" (PCnet-FAST) extended control and interrupt 1 (see #P261)
  3176.  06h    "CSR6" receive/transmit descriptor table lengths (see #P262)
  3177.  07h    "CSR7" (PCnet-FAST) extended control and interrupt 2 (see #P263)
  3178.  08h-0Bh logical address filter
  3179.  0Ch-0Eh physical address register
  3180.  0Fh    "CSR15" mode (see #P245)
  3181.  10h    "CSR16"    alias of CSR1
  3182.  11h    "CSR17"    alias of CSR2
  3183.  12h    "CSR18" low half of current receive buffer address
  3184.  13h    "CSR19" high half of current receive buffer address
  3185.  14h    "CSR20" low half of current transmit buffer address
  3186.  15h    "CSR21" high half of current transmit buffer address
  3187.  16h    "CSR22" low half of next receive buffer address
  3188.  17h    "CSR23" high half of next receive buffer address
  3189.  18h    "CSR24" low half of receive-ring base address
  3190.  19h    "CSR25" high half of receive-ring base address
  3191.  1Ah    "CSR26" low half of next receive descriptor address
  3192.  1Bh    "CSR27" high half of next receive descriptor address
  3193.  1Ch    "CSR28" low half of current receive descriptor address
  3194.  1Dh    "CSR29" high half of current receive descriptor address
  3195.  1Eh    "CSR30" low half of transmit ring base address
  3196.  1Fh    "CSR31" high half of transmit ring base address
  3197.  20h    "CSR32" low half of next transmit descriptor address
  3198.  21h    "CSR33" high half of next transmit descriptor address
  3199.  22h    "CSR34" low half of current transmit descriptor address
  3200.  23h    "CSR35" high half of current transmit descriptor address
  3201.  24h    "CSR36" low half of next next receive descriptor address
  3202.  25h    "CSR37" high half of next next receive descriptor address
  3203.  26h    "CSR38" low half of next next transmit descriptor address
  3204.  27h    "CSR39" high half of next next transmit descriptor address
  3205.  28h    "CSR40" current receive byte count (see #P264)
  3206.  29h    "CSR41" current receive status
  3207.  2Ah    "CSR42" current transmit byte count (see #P265)
  3208.  2Bh    "CSR43" current transmit status
  3209.  2Ch    "CSR44" next receive byte count (bits 11-0; bits 15-12=0)
  3210.  2Dh    "CSR45" next receive status
  3211.  2Eh    "CSR46" transmit poll time counter
  3212.  2Fh    "CSR47" transmit polling interval
  3213.  30h    "CSR48" receive poll time counter
  3214.  31h    "CSR49" receive polling interval
  3215.  32h-39h reserved
  3216.  3Ah    "CSR58" software style (see #P266)
  3217.  3Bh    reserved
  3218.  3Ch    "CSR60" previous transmit descriptor address (low)
  3219.  3Dh    "CSR61" previous transmit descriptor address (high)
  3220.  3Eh    "CSR62" previous transmit byte count (bits 11-0; bits 15-12=0)
  3221.  3Fh    "CSR63" previous transmit status
  3222.  40h    "CSR64" next transmit buffer address (low)
  3223.  41h    "CSR65" next transmit buffer address (high)
  3224.  42h    "CSR66" next transmit byte count (bits 11-0; bits 15-12=0)
  3225.  43h    "CSR67" next transmit status
  3226.  44h-47h reserved
  3227.  48h    "CSR72" receive ring counter
  3228.  49h    reserved
  3229.  4Ah    "CSR74" transmit ring counter
  3230.  4Bh    reserved
  3231.  4Ch    "CSR76" receive descriptor ring length
  3232.  4Dh    reserved
  3233.  4Eh    "CSR78" transmit descriptor ring length
  3234.  4Fh    reserved
  3235.  50h    "CSR80" FIFO threshold / DMA burst control (see #P246)
  3236.  51h    reserved
  3237.  52h    "CSR82" (PCnet-SCSI) DMA bus timer
  3238.         (PCnet-FAST) transmit descriptor address (low)
  3239.  53h    reserved
  3240.  54h    "CSR84" DMA address register (low)
  3241.  55h    "CSR85" DMA address register (high)
  3242.  56h    "CSR86" buffer byte counter (bits 11-0; bits 15-12=0)
  3243.  57h    reserved
  3244.  58h    "CSR88" chip ID (low 16 bits) (see #P267)
  3245.  59h    "CSR89" chip ID (high 16 bits) (see #P267)
  3246.  5Ah    "CSR90" (PCnet-SCSI)
  3247.  5Bh    reserved
  3248.  5Ch    "CSR92" ring length conversion
  3249.  5Dh    reserved
  3250.  5Eh    "CSR94" (PCnet-SCSI)
  3251.  5Fh-63h reserved
  3252.  64h    "CSR100" bus timeout
  3253.  65h-6Fh reserved    
  3254.  70h    "CSR112" number of missed packets
  3255.  71h    reserved
  3256.  72h    "CSR114" number of receive collisions
  3257.  73h-79h reserved
  3258.  7Ah    "CSR122" advanced feature control (see #P268)
  3259.  7Bh    reserved
  3260.  7Ch    "CSR124" BMU test register (see #P269)
  3261.  7Dh    "CSR125" (PCnet-FAST) MAC Enhanced Configuration Control (see #P270)
  3262.  7Eh-7Fh reserved
  3263. SeeAlso: #P241,#P251
  3264.  
  3265. Bitfields for AMD PCnet CSR0 status and control flags:
  3266. Bit(s)    Description    (Table P242)
  3267.  15    "ERR"    error; set if BABL, CERR, MISS, or MESS set
  3268.  14    "BABL"  network babbling control
  3269.  13    "CERR"    collision error
  3270.  12    "MISS"    missed frame
  3271.  11    "MERR"    memory error
  3272.  10    "RINT"    receive interrupt
  3273.  9    "TINT"    transmit interrupt
  3274.  8    "IDON"    initialization done
  3275.  7    "INTR"    interrupt flag
  3276.  6    "IENA"    interrupt enable
  3277.  5    "RXON"    recieve ON
  3278.  4    "TXON"    transmit ON
  3279.  3    "TDMD"    transmit demand
  3280.  2    "STOP"    stop -- disable all external activity
  3281.  1    "STRT"    start -- enable extrnal activity
  3282.  0    "INIT"    begin initialization procedure
  3283. SeeAlso: #P241,#P243
  3284.  
  3285. Bitfields for AMD PCnet CSR3 interrupt masks:
  3286. Bit(s)    Description    (Table P243)
  3287.  15    reserved
  3288.  14    "BABLM"    disable babble interrupt
  3289.  13    reserved
  3290.  12    "MISSM" disable missed-frame interrupt
  3291.  11    "MERM"    disable memory-error interrupt
  3292.  10    "RINTM"    disable receive interrupt
  3293.  9    "TINTM" disable transmit interrupt
  3294.  8    "IDONM" disable initialization-done interrupt
  3295.  7-5    reserved
  3296.  4    "DXMT2PD" disable Transmit Two Part Deferral
  3297.  3    "EMBA"    enable modified back-off algorithm
  3298.  2-0    reserved
  3299. Note:    other bits are reserved
  3300. SeeAlso: #P241,#P242,#P244
  3301.  
  3302. Bitfields for AMD PCnet CSR4 interrupt masks and status bits:
  3303. Bit(s)    Description    (Table P244)
  3304.  15    "ENTST"       enable Test Mode / CSR124 access
  3305.  14    "DMAPLUS"  disable CSR80 burst transaction counter
  3306.  13    "TIMER"       enable Bus Timer register
  3307.  12    "DPOLL"       disable transmit polling
  3308.  11    "APADXMT"  Auto-Pad Transmit
  3309.  10    "ASTRPRCV" enable automatic pad stripping
  3310.  9    "MFCO"       missed frame counter has overflowed
  3311.  8    "MFCOM"       disable interrupt on MFCO
  3312.  7    "UINTCMD"  (PCnet-FAST) user interrupt command
  3313.  6    "UINT"       (PCnet-FAST) user interrupt pending
  3314.             write 1 to clear
  3315.  5    "RCVCCO"   receive collision counter has overflowed
  3316.  4    "RCVCCOM"  disable interrupt on RCVCCO
  3317.  3    "TXSTRT"   Transmit Start
  3318.  2    "TXSTRTM"  disable interrupt on TXSTRT
  3319.  1    "JAB"       Jabber error
  3320.  0    "JABM"       disable interrupt on JAB
  3321. SeeAlso: #P241,#P243,#P250
  3322.  
  3323. Bitfields for AMD PCnet-FAST CSR5 extended control and interrupt 1:
  3324. Bit(s)    Description    (Table P261)
  3325.  31-16    reserved
  3326.  15    "TOKINTD"  disable Transmit OK interrupt
  3327.  14    "LTINTEN"  enable Last Transmit interrupt
  3328.  13-12    reserved
  3329.  11    "SINT"       System Interrupt (write 1 to clear)
  3330.  10    "SINTE"       enable System Interrupt
  3331.  9    "SLPINT"   Sleep Interrupt (write 1 to clear)
  3332.  8    "SLPINTE"  enable Sleep Interrupt
  3333.  7    "EXDINT"   Excessive Deferral Interrupt (write 1 to clear)
  3334.  6    "EXDINTE"  enable Excessive Deferral Interrupt
  3335.  5    "MPPLBA"   Magic Packet Physical Logical Broadcast Accept
  3336.  4    "MPINT"       Magic Packet Interrupt (write 1 to clear)
  3337.  3    "MPINTE"   enable Magic Packet Interrupt
  3338.  2    "MPEN"       enable Magic Packet mode
  3339.  1    "MPMODE"   Magic Packet mode active
  3340.  0    "SPND"       Suspend
  3341. SeeAlso: #P250,#P244,#P263
  3342.  
  3343. Bitfields for AMD PCnet CSR6 Descriptor Table Length register:
  3344. Bit(s)    Description    (Table P262)
  3345.  15-12    transmit encoded ring length
  3346.  11-8    receive encoded ring length
  3347.  7-0    reserved
  3348. SeeAlso: #P250,#P261
  3349.  
  3350. Bitfields for AMD PCnet CSR7 Extended Control and Interrupt 2:
  3351. Bit(s)    Description    (Table P263)
  3352.  15    "FASTSPNDE"  enable Fast Suspend
  3353.  14    "RXFRTG"     Receive Frame Tag
  3354.  13    "RDMD"         Receive Demand
  3355.  12    "RXDPOL"     disable receive polling
  3356.  11    "STINT"         Software Timer Interrupt (write 1 to clear)
  3357.  10    "STINTE"     enable Software Timer Interrupt
  3358.  9    "MREINT"     MII Management Read Error Interrupt (write 1 to clear)
  3359.  8    "MREINTE"    enable MII Management Read Error Interrupt
  3360.  7    "MAPINT"     MII Management Auto-Poll Interrupt (write 1 to clear)
  3361.  6    "MAPINTE"    enable MII Management Auto-Poll Interrupt
  3362.  5    "MCCINT"     MII Management Command Complete Interrupt (write 1 to clr)
  3363.  4    "MCCINTE"    enable MII Management Command Complete Interrupt
  3364.  3    "MCCIINT"    MII Management Command Complete Internal Interrupt
  3365.             (write 1 to clear)
  3366.  2    "MCCIINTE"   enable MII Manamagement Command Complete Internal Int.
  3367.  1    "MIIPDTINT"  MII PHY Detect Transition Interrupt (write 1 to clear)
  3368.  0    "MIIPDTINTE" enable MII PHY Detect Transition Interrupt
  3369. SeeAlso: #P250,#P261
  3370.  
  3371. Bitfields for AMD PCnet CSR15 mode flags:
  3372. Bit(s)    Description    (Table P245)
  3373.  15    "PROM"       promiscuous mode
  3374.  14    "DRCVBC"   disable Receive Broadcast
  3375.  13    "DRCVPA"   disable Receive Physical Address
  3376.  12    "DLNKTST"  disable Link Status
  3377.  11    "DAPC"       disable Automatic Polarity Correction
  3378.  10    "MENDECL"  MENDEC loopback mode
  3379.  9    "LRT/TSEL" Low Receive Threshold
  3380.  8-7    "PORTSEL"  Port Select
  3381.         00  AUI
  3382.         01  10Base-T
  3383.         10  GPSI
  3384.         11  reserved
  3385.  6    "INTL"       internal loopback
  3386.  5    "DRTY"       disable retry
  3387.  4    "FCOLL"       force collision
  3388.  3    "DXMTFCS"  disable Transmit CRC
  3389.  2    "LOOP"       enable Loopback
  3390.  1    "DTX"       disable transmitter
  3391.  0    "DRX"       disable receiver
  3392. SeeAlso: #P241,#P244,#P246
  3393.  
  3394. Bitfields for AMD PCnet CSR40 Current Receive Byte Count register:
  3395. Bit(s)    Description    (Table P264)
  3396.  15-12    reserved (0)
  3397.  11-0    current receive byte count (copy of BCNT field of current receive
  3398.       descriptor's RMD1)
  3399. SeeAlso: #P250,#P265
  3400.  
  3401. Bitfields for AMD PCnet CSR42 Current Transmit Byte Count register:
  3402. Bit(s)    Description    (Table P265)
  3403.  15-12    reserved (0)
  3404.  11-0    current transmit byte count (copy of BCNT field of current receive
  3405.       descriptor's TMD1)
  3406. SeeAlso: #P250,#P264
  3407.  
  3408. Bitfields for AMD PCnet CSR58 Software Style register:
  3409. Bit(s)    Description    (Table P266)
  3410.  15-11    reserved (undefined)
  3411.  10    "APERREN"    enabled advanced parity error handling
  3412.  9    "CSRPCNET"    PCnet-ISA compatibility (read-only)
  3413.  8    "SSIZE32"    32-bit software structures for data blocks
  3414.  7-0    "SWSTYLE"    software style
  3415.         00h LANCE/PCnet-ISA (16-bit software structures)
  3416.         01h reserved
  3417.         02h PCnet-PCI (32-bit software)
  3418.         03h PCnet-PCI (32-bit software)
  3419. SeeAlso: #P250
  3420.  
  3421. Bitfields for AMD PCnet CSR80 FIFO threshold and DMA burst control:
  3422. Bit(s)    Description    (Table P246)
  3423.  15-14    reserved
  3424.  13-12    receive FIFO high-water mark; request DMA when N byte available
  3425.     00 = 16 bytes
  3426.     01 = 32 bytes
  3427.     10 = 64 bytes
  3428.  11-10    transmit starting point; start transmission after N bytes written
  3429.     00 = 4 bytes
  3430.     01 = 16 bytes
  3431.     10 = 64 bytes
  3432.     11 = 112 bytes
  3433.  9-8    transmit FIFO low-water mark; start DMA when room for N bytes
  3434.     00 = 8 bytes
  3435.     01 = 16 bytes
  3436.     10 = 32 bytes
  3437.  7-0    DMA burst register
  3438. SeeAlso: #P241,#P245
  3439.  
  3440. Bitfields for AMD PCnet Chip ID register (read-only):
  3441. Bit(s)    Description    (Table P267)
  3442.  31-28    hardware version
  3443.  27-12    part number
  3444.     2623h = Am79C971
  3445.  11-1    manufacturer ID (0001h = AMD)
  3446.  0    reserved (1)
  3447. SeeAlso: #P250
  3448.  
  3449. Bitfields for AMD PCnet CSR122 Advanced Feature Control register:
  3450. Bit(s)    Description    (Table P268)
  3451.  15-1    reserved
  3452.  0    "RCVALGN"    DWORD-align received packets
  3453. SeeAlso: #P250,#P269
  3454.  
  3455. Bitfields for AMD PCnet CSR124 Test Register 1:
  3456. Bit(s)    Description    (Table P269)
  3457.  15-5    reserved
  3458.  4    (PCnet-SCSI) accept runt packets
  3459.  3    (PCnet-FAST) accept runt packets
  3460.  2-0    reserved
  3461. SeeAlso: #P250,#P268
  3462.  
  3463. Bitfields for AMD PCnet-FAST CSR125 MAC Enhanced Configuration Control reg:
  3464. Bit(s)    Description    (Table P270)
  3465.  15-8    inter-packet gap (reducing from default 96 can disrupt network)
  3466.  7-0    inter-frame spacing, part 1
  3467. SeeAlso: #P250
  3468.  
  3469. (Table P272)
  3470. Values for AMD PCnet-ISA ISA Bus Configuration Register index:
  3471.  00h    "MSRDA" width of DMA read signal
  3472.  01h    "MSWRA" width of DMA write signal
  3473.  02h    "MC"    ISA bus configuration (see #P248)
  3474.  05h    "LED1"    LED1 signal control (see #P249)
  3475.  06h    "LED2"    LED2 signal control (see #P249)
  3476.  07h    "LED3"    LED3 signal control (see #P249)
  3477. SeeAlso: #P241,#P251,#P247
  3478.  
  3479. (Table P247)
  3480. Values for AMD PCnet-SCSI Bus Configuration Register index:
  3481.  00h    "MSRDA" width of DMA read signal (reserved)
  3482.  01h    "MSWRA" width of DMA write signal (reserved)
  3483.  02h    "MC"    miscellaneous configuration (see #P248)
  3484.  03h    reserved
  3485.  04h    "LINKST" link status
  3486.  05h    "LED1"    LED1 signal control (see #P249) -- receive status
  3487.  06h    "LED2"    LED2 signal control (see #P249)
  3488.  07h    "LED3"    LED3 signal control (see #P249) -- transmit status
  3489.  08h-0Fh reserved
  3490.  10h    "IOBASEL"
  3491.  11h    "IOBASEU"
  3492.  12h    "BSBC"    burst size and bus control
  3493.  13h    "EECAS" EEPROM Control and Status
  3494.  14h    "SWS"    software style
  3495.  15h    "INTCON" reserved
  3496. SeeAlso: #P250,#P272,#P271
  3497.  
  3498. (Table P271)
  3499. Values for AMD PCnet-FAST Bus Configuration Register index:
  3500.  00h    "MSRDA"        width of DMA read signal (reserved)
  3501.  01h    "MSWRA"        width of DMA write signal (reserved)
  3502.  02h    "MC"        miscellaneous configuration (see #P248)
  3503.  03h    reserved    !!!p.154
  3504.  04h    "LED0"  LED0 status
  3505.  05h    "LED1"    LED1 signal control (see #P249) -- receive status
  3506.  06h    "LED2"    LED2 signal control (see #P249)
  3507.  07h    "LED3"    LED3 signal control (see #P249) -- transmit status
  3508.  08h    reserved
  3509.  09h    "FDC"        full-duplex control
  3510.  0Ah-0Fh reserved
  3511.  10h    "IOBASEL"    I/O base select (lo) -- reserved
  3512.  11h    "IOBASEU"    I/O base select (hi) -- reserved
  3513.  12h    "BSBC"        burst size and bus control
  3514.  13h    "EECAS"        EEPROM Control and Status
  3515.  14h    "SWS"        software style
  3516.  15h    "INTCON"    reserved
  3517.  16h    "PCILAT"    PCI-bus latency
  3518.  17h    "PCISID"    PCI subsystem ID
  3519.  18h    "PCISVID"    PCI subsystem vendor ID
  3520.  19h    "SRAMSIZ"    SRAM size
  3521.  1Ah    "SRAMB"        SRAM boundary
  3522.  1Bh    "SRAMIC"    SRAM interface control
  3523.  1Ch    "EBADDRL"    expansion bus address (low)
  3524.  1Dh    "EBADDRU"    expansion bus address (high)
  3525.  1Eh    "EBD"        expansion bus data port
  3526.  1Fh    "STVAL"        software timer value
  3527.  20h    "MIICAS"    MII control and status
  3528.  21h    "MIIADDR"    MII address
  3529.  22h    "MIIMDR"    MII management data
  3530.  23h    "PCIVID"    PCI vendor ID
  3531. SeeAlso: #P250,#P272,#P247
  3532.  
  3533. Bitfields for AMD PCnet ISA bus configuration:
  3534. Bit(s)    Description    (Table P248)
  3535.  3    EADISEL
  3536.  2    AWAKE
  3537.  1    ASEL
  3538.  0    XMAUSEL
  3539. SeeAlso: #P247,#P249
  3540.  
  3541. Bitfields for AMD PCnet LEDn signal control:
  3542. Bit(s)    Description    (Table P249)
  3543.  15    LEDOUT
  3544.  14-8    reserved
  3545.  7    PSE
  3546.  6-5    reserved
  3547.  4    XMTE
  3548.  3    RVPE
  3549.  2    RCVE
  3550.  1    JABE
  3551.  0    COLE
  3552. SeeAlso: #P247
  3553. ----------P0300031F--------------------------
  3554. PORT 0300-031F - prototype cards
  3555.         Periscope hardware debugger
  3556. ----------P030C030F--------------------------
  3557. PORT 030C-030F - AIMS LAB PC Radio
  3558.  
  3559.     configurable to 020C or 030C
  3560. ----------P0310031F--------------------------
  3561. PORT 0310-031F - Philips CD-ROM player CM50
  3562. ----------P03200323--------------------------
  3563. PORT 0320-0323 - XT HDC 1   (Hard Disk Controller)
  3564. SeeAlso: PORT 01F0h-01F7h
  3565.  
  3566. 0320  RW  data register
  3567. 0321  -W  reset controller
  3568. 0321  R-  read controller hardware status (see #P099)
  3569. 0322  R-  read DIPswitch setting on XT controller card
  3570. 0322  -W  generate controller-select pulse
  3571. 0323  -W  write pattern to DMA and INT mask register
  3572.  
  3573. Bitfields for XT hard disk controller hardware status:
  3574. Bit(s)    Description    (Table P099)
  3575.  7-6    always 0
  3576.  5    logical unit number
  3577.  4-2    always 0
  3578.  1    error occurred
  3579.  0    always 0 
  3580. ----------P03240327--------------------------
  3581. PORT 0324-0327 - XT HDC 2   (Hard Disk Controller)
  3582. ----------P0328032B--------------------------
  3583. PORT 0328-032B - XT HDC 3   (Hard Disk Controller)
  3584. ----------P032B------------------------------
  3585. PORT 032B - GI1904 Scanner Interface Adapter
  3586. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 036Bh,
  3587.       PORT 03ABh, PORT 03EBh
  3588. ----------P032C------------------------------
  3589. PORT 032C - GS-IF Scanner Interface adapter
  3590. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  3591.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  3592. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  3593.       others use this interface
  3594. ----------P032C032F--------------------------
  3595. PORT 032C-032F - XT HDC 4   (Hard Disk Controller)
  3596. ----------P03300331--------------------------
  3597. PORT 0330-0331 - MIDI interface
  3598. ----------P03300333--------------------------
  3599. PORT 0330-0333 - Adaptec 154xB/154xC SCSI adapter. default address.
  3600. Range:    alternate address at 0130, 0134, 0230, 0234 and 0334
  3601. ----------P0330033F--------------------------
  3602. PORT 0330-033F - CompaQ SCSI adapter. alternate address at 0130
  3603. ----------P0330033F--------------------------
  3604. PORT 0330-033F - Philips CD-ROM player CM50
  3605. ----------P03340337--------------------------
  3606. PORT 0334-0337 - Adaptec 154xB/154xC SCSI adapter.
  3607. Range:    alternate address at 0130, 0134, 0230, 0234 and 0330
  3608. ----------P0338------------------------------
  3609. PORT 0338 - AdLib soundblaster card
  3610. ----------P0338033F--------------------------
  3611. PORT 0338-033F - COM port addresses on UniRAM card by German magazine c't
  3612. Range:    selectable from 0238, 02E8, 02F8, 0338, 03E0, 03E8, 03F8
  3613. ----------P0340034F--------------------------
  3614. PORT 0340-034F - Philips CD-ROM player CM50
  3615. ----------P0340034F--------------------------
  3616. PORT 0340-034F - SCSI (1st Small Computer System Interface) adapter
  3617. Range:    alternate address at 0140-014F
  3618. ----------P0340034F--------------------------
  3619. PORT 0340-034F - Gravis Ultra Sound by Advanced Gravis
  3620. Range: The I/O address range is dipswitch selectable from:
  3621.        0200-020F and 0300-030F
  3622.        0210-021F and 0310-031F
  3623.        0220-022F and 0320-032F
  3624.        0230-023F and 0330-033F
  3625.        0240-024F and 0340-034F
  3626.        0250-025F and 0350-035F
  3627.        0260-026F and 0360-036F
  3628.        0270-027F and 0370-037F
  3629. Note:    the AMD InterWave chip provides a superset of the UltraSound's
  3630.       functionality, including these ports
  3631. SeeAlso: PORT 0240h-024Fh,PORT 0746h
  3632.    
  3633. 0340  -W  MIDI Control (see #P100)
  3634. 0340  R-  MIDI Status (see #P101)
  3635. 0341  -W  MIDI Transmit Data
  3636. 0341  R-  MIDI Receive Data
  3637. 0342  RW  GF1 Page Register / Voice Select
  3638. 0343  RW  GF1/Global Register Select (see #P102)
  3639. 0344  RW  GF1/Global Data Low Byte (16 bits)
  3640. 0345  RW  GF1/Global Data High Byte (8 bits)
  3641. 0346  -W  Mixer Data Port
  3642. 0347  RW  GF1 DRAM
  3643.          Direct Read Write at Loction pointed with regs 43 and 44
  3644.  
  3645. Bitfields for Gravis Ultra Sound MIDI control register:
  3646. Bit(s)    Description    (Table P100)
  3647.  7       Receive IRQ (1 = enabled)
  3648.  5-6   Xmit IRQ
  3649.  0-1   Master Reset (1 = enabled)
  3650. SeeAlso: #P093,#P095,#P101
  3651.  
  3652. Bitfields for Gravis Ultra Sound MIDI status register:
  3653. Bit(s)    Description    (Table P101)
  3654.  7    Interrupt pending
  3655.  5    Overrun Error
  3656.  4    Framing Error
  3657.  1    Transmit Register Empty
  3658.  0    Receive Register Empty
  3659. SeeAlso: #P100,#P102
  3660.    
  3661. (Table P102)
  3662. Values for Gravis Ultra Sound GF1/Global Registers:
  3663. ---Voice specific registers---
  3664.  00h  w        Voice Control (see #P103)
  3665.  01h  w        Frequency Control
  3666.          bit 15-10     Integer Portion
  3667.          bit 9-1     Fractional Portion
  3668.  02h  w        Start Address HIGH
  3669.          bit 12-0     Address Lines 19-7
  3670.  03h  w        Start Address LOW
  3671.          bit 15-9     Address Lines 6-0
  3672.          bit 8-5     Fractional Part of Start Address
  3673.  04h  w        End Address HIGH
  3674.          bit 12-0     Address Lines 19-7
  3675.  05h  w        End Address LOW
  3676.          bit 15-9     Address Lines 6-0
  3677.          bit 8-5     Fractional Part of End Address
  3678.  06h  w        Volume Ramp Rate
  3679.          bit 5-0     Amount added
  3680.          bit 7-6     Rate
  3681.  07h  w        Volume Ramp Start
  3682.          bit 7-4     Exponent
  3683.          bit 3-0     Mantissa
  3684.  08h  w        Volume Ramp End
  3685.          bit 7-4     Exponent
  3686.          bit 3-0     Mantissa
  3687.  09h  w        Current Volume
  3688.          bit 15-12     Exponent
  3689.          bit 11-4     Mantissa
  3690.  0Ah  w        Current Address HIGH
  3691.          bit 12-0     Address Lines 19-7
  3692.  0Bh  w        Current Address LOW
  3693.          bit 15-9     Address Lines 6-0
  3694.          bit 8-0     Fractional Position
  3695.  0Ch  w        Pan Position
  3696.          bit 3-0     Pan Postion
  3697.  0Dh  w        Volume Control (see #P104)
  3698.  0Eh  w        Active Voices
  3699.          bit 5-0     #Voices -1  (allowed 13 - 31)
  3700.  0Fh  w        IRQ Source Register (see #P105)
  3701. ---NOT voice specific---
  3702.  41h  r/w   DRAM DMA Control (see #P106)
  3703.  42h  w        DMA Start Address
  3704.          bits 15-0     DMA Address Lines 19-4
  3705.  43h  w        DRAM I/O Address LOW
  3706.  44h  w        DRAM I/O Address HIGH
  3707.          bits 0-3     Upper 4 Address Lines
  3708.  45h  r/w   Timer Control
  3709.          bit 3     Enable Timer 2
  3710.          bit 2     Enable Timer 1
  3711.  46h  w        Timer 1 Count (granularity of 80 micro sec)
  3712.  47h  w        Timer 2 Count (granulatity of 320 micro sec)
  3713.  48h  w        Sampling Frequency
  3714.          rate = 9878400 / (16 * (FREQ + 2))
  3715.  49h  r/w   Sampling Control (see #P107)
  3716.  4Bh  w        Joystick Trim DAC
  3717.  4Ch  r/w   RESET
  3718.          bit 2     GF1 Master IRQ Enable
  3719.          bit 1     DAC Enable
  3720.          bit 0     Master Reset
  3721. ---Voice specific registers---
  3722.  80h  r        Voice Control (see 00h)
  3723.  81h  r        Frequency Control (see 01h)
  3724.  82h  r        Start Address HIGH (see 02h)
  3725.  83h  r        Start Address LOW (see 03h)
  3726.  84h  r        End Address HIGH (see 04h)
  3727.  85h  r        End Address LOW (see 05h)
  3728.  86h  r        Volume Ramp Rate (see 06h)
  3729.  87h  r        Volume Ramp Start (see 07h)
  3730.  88h  r        Volume Ramp End (see 08h)
  3731.  89h  r        Current Volume (see 09h)
  3732.  8Ah  r        Current Address HIGH (see 0Ah)
  3733.  8Bh  r        Current Address LOW (see 0Bh)
  3734.  8Ch  r        Pan Position (see 0Ch)
  3735.  8Dh  r        Volume Control (see 0Dh)
  3736.  8Eh  r        Active Voices (see 0Eh)
  3737.  8Fh  r        IRQ Status (see 0Fh)
  3738. SeeAlso: #P101,#P251
  3739.  
  3740. (Table P251)
  3741. Values for InterWave synthesizer registers:
  3742. ---voice-specific registers---
  3743.  10h  w     synthesizer  upper address
  3744.  11h  w        synthesizer effects address high (16 bits)
  3745.  12h  w        synthesizer effects address low (16 bits)
  3746.  13h  w        synthesizer left offset (16 bits)
  3747.  14h  w        synthesizer effects output accumulator select
  3748.  15h  w     synthesizer mode select
  3749.  16h  w     synthesizer effects volume (16 bits)
  3750.  17h  w     synthesizer frequency LFO
  3751.  18h  w     synthesizer volume LFO
  3752. ---NOT voice-specific---
  3753.  19h  w     synthesizer global mode
  3754.  1Ah  w     synthesizer LFO base address (16 bits)
  3755. ---voice-specific registers---
  3756.  1Bh  w     synthesizer right offset (16 bits)
  3757.  1Ch  w        synthesizer left offset (16 bits)
  3758.  1Dh  w     synthesizer effect volume final (16 bits)
  3759. ---NOT voice-specific---
  3760.  41h  r/w   local memory control: DMA control
  3761.  42h  r/w   local memory control: DMA start address bits 19-4 (16 bits)
  3762.  43h  w     local memory control: I/O address low (16 bits)
  3763.  44h  w     local memory control: I/O address high (16 bits)
  3764.  45h  r/w   AdLib/SoundBlaster control
  3765.  46h  r/w   AdLib timer 1
  3766.  47h  r/w   AdLib timer 2
  3767.  49h  r/w   ADC sample control
  3768.  4Bh  r/w   joystick trim
  3769.  4Ch  w        GUS reset
  3770.  50h  r/w   local memory control: DMA start address bits 23-20/3-0 (16 bits)
  3771.  51h  r/w   local memory control: 16-bit access
  3772.  52h  r/w   local memory control: configuration
  3773.  53h  r/w   local memory control: control
  3774.  54h  r/w   local memory control: record FIFO base address bits 23-8 (16-bit)
  3775.  55h  r/w   local memory control: playback FIFO base address bits 23-8 (16-bit)
  3776.  56h  r/w   local memory control: FIFO size (16-bit)
  3777.  57h  r/w   local memory control: DMA interleave control (16-bit)
  3778.  58h  r/w   local memory control: DMA interleaev base address bits 23-8
  3779.  59h  r/w   compatibility control
  3780.  5Ah  r/w   decode control
  3781.  5Bh  r/w   version number
  3782.  5Ch  r/w   MPU-401 emulation control A
  3783.  5Dh  r/w   MPU-401 emulation control B
  3784.  5Eh  w     MIDI receive FIFO access
  3785.  5Fh  -        reserved
  3786.  60h  r/w   emulation IRQ
  3787. ---voice-specific registers---
  3788.  90h  r     synthesizer  upper address
  3789.  91h  r        synthesizer effects address high (16 bits)
  3790.  92h  r        synthesizer effects address low (16 bits)
  3791.  93h  r        synthesizer left offset (16 bits)
  3792.  94h  r        synthesizer effects output accumulator select
  3793.  95h  r     synthesizer mode select
  3794.  96h  r     synthesizer effects volume (16 bits)
  3795.  97h  r     synthesizer frequency LFO
  3796.  98h  r     synthesizer volume LFO
  3797. ---NOT voice-specific---
  3798.  99h  r     synthesizer global mode
  3799.  9Ah  r     synthesizer LFO base address (16 bits)
  3800. ---voice-specific registers---
  3801.  9Bh  r     synthesizer right offset (16 bits)
  3802.  9Ch  r        synthesizer left offset (16 bits)
  3803.  9Dh  r     synthesizer effect volume final (16 bits)
  3804. ---NOT voice-specific---
  3805.  9Fh  r        synthesizer voices IRQ
  3806. Note:    these registers are *in*addition* to the Gravis UltraSound registers
  3807. SeeAlso: #P102
  3808.  
  3809. Bitfields for Gravis Ultra Sound voice control global register:
  3810. Bit(s)    Description    (Table P103)
  3811.  7     IRQ pending
  3812.  6     Direction
  3813.  5     Enable WAVE IRQ
  3814.  4     Enable bi-directional Looping
  3815.  3     Enable Looping
  3816.  2     Size data (8/16 bits)
  3817.  1     Stop Voice
  3818.  0     Voice Stopped
  3819. SeeAlso: #P102,#P104
  3820.  
  3821. Bitfields for Gravis Ultra Sound volume control global register:
  3822. Bit(s)    Description    (Table P104)
  3823.  7     IRQ Pending
  3824.  6     Direction
  3825.  5     Enable Volume Ramp IRQ
  3826.  4     Enable bi-directional Looping
  3827.  3     Enable Looping
  3828.  2     Rollover Condition
  3829.  1     Stop Ramp
  3830.  0     Ramp Stopped
  3831. SeeAlso: #P102,#P103
  3832.  
  3833. Bitfields for Gravis Ultra Sound IRQ source register:
  3834. Bit(s)    Description    (Table P105)
  3835.  7     WaveTable IRQ pending
  3836.  6     Volume Ramp IRQ pending
  3837.  4-0     Voice Number
  3838. SeeAlso: #P102,#P103,#P106
  3839.  
  3840. Bitfields for Gravis Ultra Sound DRAM DMA control register:
  3841. Bit(s)    Description    (Table P106)
  3842.  7     Invert MSB
  3843.  6     Data Size (8/16 bits)
  3844.  5     DMA Pending
  3845.  3-4     DMA Rate Divider
  3846.  2     DMA Channel Width (8/16 bits)
  3847.  1     DMA Direction (1 = read)
  3848.  0     DMA Enable
  3849. SeeAlso: #P102,#P105
  3850.  
  3851. Bitfields for Gravis Ultra Sound sampling control register:
  3852. Bit(s)    Description    (Table P107)
  3853.  7     Invert MSB
  3854.  6     DMA IRQ pending
  3855.  5     DMA IRQ enable
  3856.  2     DMA width (8/16 bits)
  3857.  1     Mode (mone/stereo)
  3858.  0     Start Sampling
  3859. SeeAlso: #P102
  3860. ----------P03400357--------------------------
  3861. PORT 0340-0357 - RTC (1st Real Time Clock for XT)
  3862.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  3863. Range:    alternate at 0240-0257
  3864. SeeAlso:  PORT 0240h-0257h
  3865.  
  3866. 0340  RW  0.001 seconds        0-99
  3867. 0341  RW  0.1 and 0.01 seconds    0-99
  3868. 0342  RW  seconds        0-59
  3869. 0343  RW  minutes        0-59
  3870. 0343  RW  hours            0-23
  3871. 0345  RW  day of week        1-7
  3872. 0346  RW  day of month        1-31
  3873. 0347  RW  month            1-12
  3874. 0348  RW  RAM (upper nybble only)
  3875. 0349  RW  year            0-99
  3876. 034A  RW  RAM last month storage
  3877. 034B  RW  RAM year storage (-80)
  3878. 034C  RW  RAM reserved
  3879. 034D  RW  RAM not used
  3880. 034E  RW  RAM not used
  3881. 034F  RW  RAM not used
  3882. 0350  R-  interrupt status register
  3883. 0351  -W  interrupt control register
  3884. 0352  -W  counter reset
  3885. 0353  -W  RAM reset
  3886. 0354  R-  status bit
  3887. 0355  -W  GO command
  3888. 0356  ??  standby interrupt
  3889. 0357  ??  test mode
  3890. ----------P03480357--------------------------
  3891. PORT 0348-0357 - DCA 3278
  3892. ----------P034C034F--------------------------
  3893. PORT 034C-034F - Gravis UltraMax by Advanced Gravis
  3894. Range:    The I/O address range is dipswitch selectable from:
  3895.        0200-020F and 0300-030F
  3896.        0210-021F and 0310-031F
  3897.        0220-022F and 0320-032F
  3898.        0230-023F and 0330-033F
  3899.        0240-024F and 0340-034F
  3900.        0250-025F and 0350-035F
  3901.        0260-026F and 0360-036F
  3902.        0270-027F and 0370-037F
  3903. ----------P035A035B--------------------------
  3904. PORT 035A-035B - Adaptec AH1520 jumper settings
  3905.  
  3906. 035A  R      I/O channel setup (see #P108)
  3907. 035B  R      transfer mode setup (see #P109)
  3908.  
  3909. Bitfields for Adaptec AH1520 channel setup jumper settings:
  3910. Bit(s)    Description    (Table P108)
  3911.  7    SCSI parity disabled
  3912.  6-5    DMA channel (00 = channel 0, 01 = 5, 10 = 6, 11 = 7)
  3913.  4-3    IRQ number (00 = IRQ9, 01 = IRQ10, 10 = IRQ11, 11 = IRQ12)
  3914.  2-0    SCSI ID
  3915. SeeAlso: #P109
  3916.  
  3917. Bitfields for Adaptec AH1520 transfer mode setup jumper settings:
  3918. Bit(s)    Description    (Table P109)
  3919.  7    DMA transfer mode (clear for PIO)
  3920.  6    boot enabled
  3921.  5-4    boot type
  3922.     00 ???
  3923.     01 boot from floppy
  3924.     10 print configured options
  3925.     11 boot from hard disk
  3926.  3    enable sync negotiation
  3927.  2    enable target disconnection
  3928.  1-0    unused???
  3929. SeeAlso: #P108
  3930. ----------P035F------------------------------
  3931. PORT 035F - ARTEC Handyscanner A400Z.  alternate address at 15F.
  3932. ----------P03600367--------------------------
  3933. PORT 0360-0367 - PC network (XT only)
  3934. ----------P0360036F--------------------------
  3935. PORT 0360-036F - PC network (AT)
  3936. ----------P0360036F--------------------------
  3937. PORT 0360-036F - National Semiconductor DP8390(1)C/NS3249C network chipset
  3938. Note:    cards based on this IEEE 802.3 networking chipset can use any range
  3939.       of 16 consecutive addresses, and provide a total of four pages of
  3940.       sixteen registers (see #P110,#P111,#P112,#P143)
  3941.  
  3942. (Table P110)
  3943. Values for NS DP8390C/NS3249C network chipset Page 0 registers:
  3944. Number    Read Register                Write Register
  3945.  00h    Command reg. (see #P114)    CR    Command reg.        CR
  3946.  01h    current local DMA address 0    CLDA0    page start reg.        PSTART
  3947.  02h    current local DMA address 1    CLDA1    page stop reg.        PSTOP
  3948.  03h    boundary pointer        BNRY    boundary pointer    BNRY
  3949.  04h    transmit status reg.        TSR    Tx page start address    TPSR
  3950.  05h    number of collisions reg.    NCR    Tx byte count reg.0    TBCR0 
  3951.  06h    FIFO                    Tx byte count reg.1    TBCR1
  3952.  07h    interrupt status reg.        ISR    interrupt status reg.    ISR
  3953.  08h    current remote DMA address 0    CRDA0    remote start addr.reg.0 RSAR0
  3954.  09h    current remote DMA address 1    CRDA1    remote start addr.reg.1 RSAR1
  3955.  0Ah    reserved                remote byte count reg.0 RBCR0
  3956.  0Bh    reserved                remote byte count reg.1 RBCR1
  3957.  0Ch    receive status reg.        RSR    Rx configuration reg.    RCR
  3958.  0Dh    tally counter 0 (frame errors)    CNTR0    Tx configuration reg.    TCR
  3959.  0Eh    tally counter 1 (CRC errors)    CNTR1    data configuration reg. DCR
  3960.  0Fh    tally counter 2 (missed pkt)    CNTR2    interrupt mask reg.    IMR
  3961. SeeAlso: #P111,#P112,#P113
  3962.  
  3963. (Table P111)
  3964. Values for NS DP8390C/NS3249C network chipset Page 1 registers:
  3965. Number    Read/Write
  3966.  00h    Command            CR (see #P114)
  3967.  01h    physical address reg.0    PAR0
  3968.  02h    physical address reg.1    PAR1        
  3969.  03h    physical address reg.2    PAR2        
  3970.  04h    physical address reg.3    PAR3        
  3971.  05h    physical address reg.4    PAR4        
  3972.  06h    physical address reg.5    PAR5        
  3973.  07h    current page reg.    CURR            
  3974.  08h    multicast address reg.0 MAR0        
  3975.  09h    multicast address reg.1 MAR1        
  3976.  0Ah    multicast address reg.2 MAR2        
  3977.  0Bh    multicast address reg.3 MAR3        
  3978.  0Ch    multicast address reg.4 MAR4        
  3979.  0Dh    multicast address reg.5 MAR5        
  3980.  0Eh    multicast address reg.6 MAR6        
  3981.  0Fh    multicast address reg.7 MAR7        
  3982. SeeAlso: #P110,#P112,#P113
  3983.  
  3984. (Table P112)
  3985. Values for NS DP8390C/NS3249C network chipset Page 2 registers:
  3986. Number    Read Register                Write Register
  3987.  00h    Command                CR    Command             CR
  3988.  01h    page start reg.            PSTART    current local DMA addr.0 CLDA0
  3989.  02h    page stop reg.            BPSTOP    current local DMA addr.1 CLDA1
  3990.  03h    remote next packet pointer        remote next packet pointer
  3991.  04h    Tx page start address        TPSR    reserved
  3992.  05h    local next packet pointer        local next packet pointer
  3993.  06h    address counter (upper)            address counter (upper)
  3994.  07h    address counter (lower)            address counter (lower)
  3995.  08h    reserved                reserved
  3996.  09h    reserved                reserved
  3997.  0Ah    reserved                reserved
  3998.  0Bh    reserved                reserved
  3999.  0Ch    Rx configuration reg.        RCR    reserved
  4000.  0Dh    Tx configuration reg.        TCR    reserved
  4001.  0Eh    data configuration reg.        DCR    reserved
  4002.  0Fh    interrupt mask reg.        IMR    reserved
  4003. Note:    this is a diagnostics page, and should never be modfied under normal
  4004.       operation.
  4005. SeeAlso: #P110,#P111,#P113
  4006.  
  4007. (Table P113)
  4008. Values for NS DP8390C/NS3249C network chipset Page 3 registers:
  4009. Number    Read Register                Write Register
  4010.  00h    Command CR (see #P114)            Command CR
  4011. Note:    Test Page - should never be modified!
  4012. SeeAlso: #P110,#P111,#P112
  4013.  
  4014. Bitfields for NS DP8390C/NS3249C network chipset command register (00h):
  4015. Bit(s)    Description    (Table P114)
  4016.  0    software reset command (1=offline, 0=online)
  4017.  1    do not activate NIC after reset command
  4018.  2    start transmision of a packet
  4019.  3-5    remote DMA command
  4020.     000 not allowed
  4021.     001 remote read
  4022.     010 remote write
  4023.     011 send packet
  4024.     1xx abort/complete rmote DMA
  4025.  6-7    page select
  4026.     00 register page 0
  4027.     01 register page 1
  4028.     10 register page 2
  4029.     11 register page 3
  4030. SeeAlso: #P113 
  4031. ----------P036B------------------------------
  4032. PORT 036B - GI1904 Scanner Interface Adapter
  4033. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  4034.       PORT 03ABh, PORT 03EBh
  4035. ----------P036C------------------------------
  4036. PORT 036C - GS-IF Scanner Interface adapter
  4037. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  4038.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  4039. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  4040.       others use this interface
  4041. ----------P03700377--------------------------
  4042. PORT 0370-0377 - FDC 2    (2nd Floppy Disk Controller)    first FDC at 03F0
  4043. Note:    floppy disk controller is usually an 8272, 8272A, NEC765 (or
  4044.       compatible), or an 82072 or 82077AA for perpendicular recording at
  4045.       2.88M
  4046. SeeAlso: PORT 03F0h-03F7h
  4047.  
  4048. 0370  R-  diskette Extra High Density controller board jumpers (AT)
  4049. 0370  R-  diskette controller status A (PS/2, PS/2 model 30)
  4050. 0371  R-  diskette controller status B (PS/2, PS/2 model 30)
  4051. 0372  -W  diskette controller DOR (Digital Output Register)
  4052. 0374  R-  diskette controller main status register
  4053. 0374  -W  diskette controller datarate select register
  4054. 0375  RW  diskette controller command/data register
  4055. 0376  RW  (2nd FIXED disk controller status/data register)
  4056. 0377  RW  (2nd FIXED disk controller drive address register)
  4057. 0377  R-  diskette controller DIR (Digital Input Register)
  4058. 0377  -W  select register for diskette data transfer rate
  4059. ----------P0378------------------------------
  4060. PORT 0378 - Covox 'Speech Thing' COMPATIBLE SPEECH OUTPUT
  4061. SeeAlso: PORT 022Fh"mc-soundmachine",PORT 0388h-038Fh"soundmachine"
  4062.  
  4063. 0378  -W  speech output via printer port
  4064.       (with mc-soundmachine, enabled if bit4=1 in 38F)
  4065. ----------P0378037A--------------------------
  4066. PORT 0378-037A - parallel printer port, same as 0278 and 03BC
  4067.  
  4068. 0378  -W  data port
  4069. 0379  RW  status port
  4070. 037A  RW  control port
  4071.  
  4072. 037B  ??  bit 7: shadow RAM on/off (UniRAM adapter,according to c't 7/90)
  4073. ----------P0380038F--------------------------
  4074. PORT 0380-038F - 2nd BSC (Binary Synchronous Communication) adapter
  4075. SeeAlso:  PORT 03A0h"BSC"
  4076. ----------P0380038C--------------------------
  4077. PORT 0380-038C - 2nd SDLC (Synchronous Data Link Control) adapter
  4078. Notes:    Initialization of the SDLC adapter is performed in a typical 
  4079.       sequence like this: Setup 8255 port A-C configuration by writing
  4080.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  4081.       to 382h. Reset 8273 internal registers by pulsing 8255 port B4.
  4082.       After this the 8253 has to be programmed to the desired values
  4083.       (counter 0 in mode 3). Now the 8273 is ready to be configured for
  4084.       the operating mode that defines the communication environment in
  4085.       which it will be used.
  4086.     Note on 8273: Each 8273 protocol controllers internal register is
  4087.       programmed by individual set/reset commands (via 388h) in
  4088.       conjunction with a parameter (via 389h) that give an OR/AND mask
  4089.       to the internal register value.
  4090.       Although the 8273 is a full duplex device, there is only one
  4091.       command register. Thus, the command register must be used for
  4092.       only one command sequence at a time and the transmitter and
  4093.       receiver may never be simultaneously in a command phase.
  4094.       The system software starts the command phase by writing a command
  4095.       byte into the command register. If further information is required
  4096.       by the 8273 prior to execution of the command, the system software
  4097.       must write the list of parameters into the parameter register.
  4098. SeeAlso: PORT 03A0h"SDLC"
  4099.  
  4100. 0380  R-   on adapter 8255(A5) port A: internal/external sensing (see #P115)
  4101. 0381  -W   on adapter 8255(A5) port B: external modem interface (see #P116)
  4102. 0382  RW   on adapter 8255(A5) port C: internal control (see #P117)
  4103. 0383  ?W   on adapter 8255(A5) mode initialization
  4104. 0384  RW   on adapter 8253 (programmable counter) counter 0:
  4105.         LSB / MSB square wave generator (input for timer 2, connected
  4106.           to 8255 bitC5)
  4107. 0385  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  4108.         (connected to 8255 bitA7, IRQ4 level)
  4109. 0386  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  4110.         (connected to 8255 bitA6, IRQ4 level)
  4111. 0387  ?W   on adapter 8253 mode register (see #P118)
  4112. 0388  R-   on adapter 8273 status register (see #P119)
  4113. 0388  -W   on adapter 8273 command register (see #P120)
  4114. 0389  R-   on adapter 8273 (immediate) result register (see #P127)
  4115. 0389  -W   on adapter 8273 parameter register
  4116.         Commands issued via PORT 0388h may need additional parameters,
  4117.           which have to be passed through this port (see table).
  4118. 038A  R-   on adapter 8273 transmit INT status (DMA/INT)
  4119. 038A  -W   on adapter 8274 reset
  4120. 038B  R-   on adapter 8273 receive INT status (DMA/INT)
  4121. 038C  -W   on adapter 8273 data: direct program control (DPC)
  4122.       scratch-pad
  4123.  
  4124. Bitfields for SDLC 8255 port A:
  4125. Bit(s)    Description    (Table P115)
  4126.  7    =1 timer 1 output active
  4127.  6    =1 timer 2 output active
  4128.  5    =1 modem status changed
  4129.  4    receive clock active (if pulsing)
  4130.  3    =0 clear to send is on from interface
  4131.  2    transmit clock active (if pulsing)
  4132.  1    =0 data carrier detect is on from interface
  4133.  0    =0 ring indicator is on from interface
  4134. SeeAlso: #P116,#P117
  4135.  
  4136. Bitfields for SDLC 8255 port B:
  4137. Bit(s)    Description    (Table P116)
  4138.  7    enable IRQ 4 level interrupt
  4139.  6    =1 gate timer 1
  4140.  5    =1 gate timer 2
  4141.  4    =1 reset 8273
  4142.  3    =1 reset modem status changed logic
  4143.  2    =0 turn on test
  4144.  1    =0 turn on select standby at modem interface
  4145.  0    =0 turn on data signal rate select at modem interface
  4146. SeeAlso: #P115,#P117
  4147.  
  4148. Bitfields for SDLC 8255 port C:
  4149. Bit(s)    Description    (Table P117)
  4150.  7 R-    =? not used (detection: =1 SDLC, =0 may be SDLC or BSC??)
  4151.  6 R-    =0 test indicate active
  4152.  5 R-    timer 0 output (if pulsing)
  4153.  4 R-    receive data (if pulsing)
  4154.  3 -W    =0 gate interrupts 3 and 4
  4155.  2 -W    =1 electronic wrap
  4156.  1 -W    =1 gate external clock
  4157.  0 -W    =1 gate internal clock
  4158. SeeAlso: #P115,#P116
  4159.  
  4160. Bitfields for SDLC 8253 mode register:
  4161. Bit(s)    Description    (Table P118)
  4162.  7-6    SC1-SC0     00, 01, 10= select counter 0,1,2; 11=illegal
  4163.  5-4    RL1-RL0     00= couner latching operation
  4164.          01= read/load most significant byte (MSB)
  4165.          10= read/load least significant byte (LSB)
  4166.          11= read/load LSB first, then MSB
  4167.  3-1    M2-M0     000= mode 0
  4168.          001= mode 1
  4169.          x10= mode 2
  4170.          x11= mode 3
  4171.          100= mode 4
  4172.          101= mode 5
  4173.  0    BCD     0= binary counter 16bits
  4174.          1= BCD counter 4 decades
  4175.  
  4176. Bitfields for SDLC 8273 status register:
  4177. Bit(s)    Description    (Table P119)
  4178.  7    =1 command busy (CBSY)
  4179.  6    =1 command buffer full (CBF)
  4180.  5    =1 command parameter buffer full (CPBF)
  4181.  4    =1 command result buffer full (CRBF)
  4182.  3    =1 Rx interupt (RxINT)
  4183.  2    =1 Tx interupt (TxINT)
  4184.  1    =1 RxINT result available (RxIRA)
  4185.  0    =1 TxINT result available (TxIRA)
  4186. SeeAlso: #P120
  4187.  
  4188. (Table P120)
  4189. Values for SDCL 8273 command register:
  4190.  commands:           parameters:    results:   result port: int:
  4191.   A4: set one-bit delay        set mask     -           -    no
  4192.   64: reset one-bit delay   reset mask     -           -    no
  4193.   97: set data transfer        set mask     -           -    no
  4194.   57: reset data transfer   reset mask     -           -    no
  4195.   91: set operating mode    set mask     -           -    no
  4196.   51: reset operating mode  reset mask     -           -    no
  4197.   A0: set serial I/O mode   set mask     -           -    no
  4198.   60: reset serial I/O mode reset mask     -           -    no
  4199.   C0: general receive        B0,B1     RIC,R0,R1,A,C RXI/R   yes
  4200.   C1: selective receive        B0,B1,A1,A2     RIC,RD,R1,A,C RXI/R   yes
  4201.   C5: receive disable        -         -           -    no
  4202.   C8: transmit frame        L0, L1, A, C TIC           TXI/R   yes
  4203.   C9: transmit transparent  L0, L1     TIC           TXI/R   yes
  4204.   CC: abort transmit frame  -         TIC           TXI/R   yes
  4205.   CD: abort transmit        -         TIC           TXI/R   yes
  4206.   22: read 8273 port A        -         port value    result    no
  4207.   23: read 8273 port B        -         port value    result    no
  4208.   A3: set 8273 port A bit   set mask     -           -    no
  4209.   63: set 8273 port B bit   reset mask     -           -    no
  4210. Notes:    B0/B1 LSB/MSB of the receiver buffer length
  4211.     L0/L1 LSB/MSB of the Tx buffer length
  4212.     A1/A2 receive frame address match field one/two
  4213.     A     address fieldof received frame. In non-buffered mode, this
  4214.           result is not provided.
  4215.     C     control field of received frame. In non-buffered mode, this
  4216.           result is not provided.
  4217.     RXI/R TXI/R receive/transmit interrupt result register
  4218.     R0/R1 LBS/MSB of the length of the frame received
  4219.     RIC/TIC receiver/transmitter interrupt result code
  4220. SeeAlso: #P121,#P122,#P123,#P124,#P125,#P126
  4221.  
  4222. Bitfields for SDLC 8273 interal port A: Modem Control Input Port:
  4223. Bit(s)    Description    (Table P121)
  4224.  7-5    not used
  4225.  4    DSR change (PA4)
  4226.  3    CTS change (PA3)
  4227.  2    Data Set Ready (PA2)
  4228.  1    Carrier Detect (PA1)
  4229.  0    Clear to Send (PA0)
  4230. SeeAlso: #P120
  4231.  
  4232. Bitfields for SDLC 8273 interal port B: Modem Control Output Port:
  4233. Bit(s)    Description    (Table P122)
  4234.  7-6    not used
  4235.  5    Flag Detect (PB5)
  4236.  4-3    reserved
  4237.  2    Data Terminal Ready (PB2)
  4238.  1    reserved (PB1)
  4239.  0    Request to Send (PB0)
  4240. SeeAlso: #P120
  4241.  
  4242. Bitfields for SDLC 8273 internal: Operating Mode Register:
  4243. Bit(s)    Description    (Table P123)
  4244.  7-6    not used
  4245.  5    =1 HDLC abort enable
  4246.  4    =1 EOP interrupt enable
  4247.  3    =1 enable early Tx interrupt
  4248.  2    =1 Buffered Mode
  4249.  1    =1 Two Preframe Sync Characters
  4250.  0    =1 Flag Stream Mode
  4251. SeeAlso: #P120
  4252.  
  4253. Bitfields for SDLC 8273 internal: Serial I/O Register:
  4254. Bit(s)    Description    (Table P124)
  4255.  7-3    not used
  4256.  2    =1 Data Loopback
  4257.  1    =1 Clock Loopback
  4258.  0    =1 NRZI Mode
  4259. SeeAlso: #P120
  4260.  
  4261. Bitfields for SDLC 8273 internal: Data Transfer Mode Register:
  4262. Bit(s)    Description    (Table P125)
  4263.  7-1    not used
  4264.  0    =1 Interrupt Data Transfers
  4265. SeeAlso: #P120
  4266.  
  4267. Bitfields for SDLC 8273 internal: One-Bit Delay Mode Register:
  4268. Bit(s)    Description    (Table P126)
  4269.  7 =1    One-Bit Delay Enable
  4270.  6-0    not used
  4271. SeeAlso: #P120
  4272.  
  4273. (Table P127)
  4274. Values for SDLC 8273 result register:
  4275.  transmit result codes:         status after interrupt:
  4276.   0C: early transmit interrupt      transmitter active
  4277.   0D: frame transmit complete      idle or flags
  4278.   0E: DMA underrun          abort
  4279.   0F: clear to send error      abort
  4280.   10: abort complete          idle or flags
  4281.  receive result codes:
  4282.   X0: A1 match / general receive  active
  4283.   X1: A2 match              active
  4284.   03: CRC error              active
  4285.   04: abort detected          active
  4286.   05: idle detected          disabled
  4287.   06: EOP detected          disabled
  4288.   07: frame less than 32 bits      active
  4289.   08: DMA overrun          disabled
  4290.   09: memory buffer overflow      disabled
  4291.   0A: carrier detect failure      disabled
  4292.   0B: receiver interrupt overrun  disabled
  4293.  X bits received inlast byte:
  4294.    E: all eight bits of last byte (bit7-0)
  4295.    0: bit0 only
  4296.    8: bit1-0
  4297.    4: bit2-0
  4298.    C: bit3-0
  4299.    2: bit4-0
  4300.    A: bit5-0
  4301.    6: bit6-0
  4302. ----------P03880389--------------------------
  4303. PORT 0388-0389 - AdLib - MONO SOUND OUTPUT
  4304. Note:    also supported by SoundBlaster and compatibles
  4305. SeeAlso: PORT 0220h-0223h,PORT 0388h-038Fh"soundmachine"
  4306.  
  4307. 0388  R-  both speakers -- Status
  4308.         bit7  : interrupt request (IRQ)
  4309.         bit6  : timer 1 overflow
  4310.         bit5  : timer 2 overflow
  4311.         bit4-0: reserved
  4312. 0388  -W  both speakers -- Address port (see #P128)
  4313.     index in OPL2 (YMF3812), OPL3 (YMF262), OPL4 (YF278-F)
  4314. 0389  -W  data port
  4315. Note:    the AdLib requires a delay of 3.3 microseconds between writing to
  4316.       PORT 0388h and writing to PORT 0389h, and a delay of 23 microseconds
  4317.       after a write to PORT 0389h before any other operation is allowed
  4318.  
  4319. (Table P128)
  4320. Values for AdLib address port index:
  4321.  01h    Enable waveform control
  4322.     bit 7-6: (OPL4, OPL3 in OPL2 mode only) lsi test
  4323.     bit 5: (OPL2 only) wave select enable (WS)
  4324.            (OPL4, OPL3) lsi test
  4325.     bit 4-0: lsi test
  4326.  02h    Timer #1 data (OPL2 and OPL3 in OPL2 mode only)
  4327.  03h    Timer #2 data (OPL2 and OPL3 in OPL2 mode only)
  4328.  04h    Timer control flags (OPL2 and OPL3 in OPL2 mode only)
  4329.     bit 7  : reset interrupt (RST)
  4330.     bit 6  : timer 1 mask (MASK1)
  4331.     bit 5  : timer 2 mask (MASK2)
  4332.     bit 4-2: reserved
  4333.     bit 1  : start timer 2 (ST2)
  4334.     bit 0  : start timer 1 (ST1)
  4335.  04h    (OPL3 in OPL3 mode only) connection select
  4336.     bit 7-6: reserved
  4337.     bit 5-0: connection selection
  4338.  05h    (OPL3) compatibility register
  4339.     bit 7-1: reserved
  4340.     bit 0: enable OPL3 mode (NEW), default disabled
  4341.  08h    Speech synthesis mode
  4342.     bit 7: (OPL2 only) speech synthesis or FM music mode (CSM)
  4343.     bit 6: select keyboard split point (SEL/NTS)
  4344.     bit 5-0: reserved
  4345.  20h-35h Amplitude Modulation / Vibrato
  4346.     bit 7: AM modulation (AM)
  4347.     bit 6: vibrato (VIB)
  4348.     bit 5: sustain (EG)
  4349.     bit 4: keyboard scaling rate (KSR)
  4350.     bit 3-0: multi (MF)
  4351.  40h-55h Level key scaling / Total level
  4352.     bit 7-6: key scale level (KSL)
  4353.     bit 5-0: total level (TL)
  4354.  60h-75h Attack / Decay rate
  4355.     bit 7-4: attack rate
  4356.     bit 3-0: decay rate
  4357.  80h-95h Sustain / Release rate
  4358.     bit 7-4: sustain level
  4359.     bit 3-0: release rate
  4360.  A0h-A8h Octave / Frequency (LSB)
  4361.  A9h-AFh ???
  4362.  B0h-B8h Octave / Frequency Number
  4363.     bit 7-6: reserved
  4364.     bit 5  : key on, mute
  4365.     bit 4-2: block, octave
  4366.     bit 1-0: f-number (MSB)
  4367.  BDh    percussion, vibrato, AM    (OPL2, OPL3 in OPL2 mode only)
  4368.     bit 7: amplitude modulation (AM)
  4369.     bit 6: vibrato (VIB)
  4370.     bit 5: ryhthm, percussion on/off (R)
  4371.     bit 4: bass drum on/off (BD)
  4372.     bit 3: snare drum on/off (SD)
  4373.     bit 2: tom-tom on/off (TOM)
  4374.     bit 1: top cymbal on/off (TC)
  4375.     bit 0: hi hat on/off (HH)
  4376.  C0h-C8h Feedback / Algorithm
  4377.     bit 7-4: OPL3: channel D-A
  4378.     bit 3-1: feedback
  4379.     bit 0: connection
  4380.  E0h-F5h Waveform Selection
  4381.     bit 7-3: reserved
  4382.     bit 2  : (OPL3) waveform bit2
  4383.     bit 1-0: waveform
  4384. SeeAlso: #P129
  4385.  
  4386. (Table P129)
  4387. Values for Sound Blaster registers inside groups:
  4388. Offset
  4389.  +00..+02: operators 1-3    modulator channel 1-3
  4390.  +03..+05: operators 4-6    carrier channel 1-3
  4391.  +08..+0A: operators 7-9    modulator channel 4-6
  4392.  +0B..+0D: operators 10-12  carrier channel 4-6
  4393.  +10..+12: operators 13-15  modulator channel 7-9
  4394.  +13..+15: operators 16-18  carrier channel 7-9
  4395.  +06, +07, +0E, +0F: reserved
  4396. SeeAlso: #P128
  4397. ----------P03880389--------------------------
  4398. PORT 0388-0389 - Soundblaster PRO FM-Chip
  4399. ----------P0388038B--------------------------
  4400. PORT 0388-038B - Soundblaster 16 ASP FM-Chip
  4401. ----------P0388038F--------------------------
  4402. PORT 0388-038F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  4403. Note:    Adlib-compatible, Covox 'voice master' & 'speech thing' compatible
  4404.       soundcard
  4405. SeeAlso: PORT 022Fh"soundmachine",PORT 0278h"Covox"
  4406.  
  4407. 0388  -W  Covox 'speech thing' compatible speech output via printer port?
  4408.         enabled if bit 6 set in PORT 038Fh
  4409. 0388  RW  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  4410.         (see PORT 0388h-0389h"Sound Blaster")
  4411. 0389  -W  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  4412.         (see PORT 0388h-0389h"Sound Blaster")
  4413. 038A  -W  I²C control for TDA7302 NF-MUX and X24C04 EEPROM
  4414.         bit 7: I²C bus SDA out (data),  enabled if bit2=1 in PORT 038Fh
  4415.         bit 0: I²C bus SCL out (clock), enabled if bit2=1 in PORT 038Fh
  4416. 038B  R-  I²C status for TDA7302 NF-MUX and X24C04 EEPROM
  4417.         bit 7: I²C bus SDA in (data),  enabled if bit2=1 in PORT 038Fh
  4418.         bit 0: I²C bus SCL in (clock), enabled if bit2=1 in PORT 038Fh
  4419. 038F  RW  configuration port (power on default=0, all features disabled)
  4420.     (see #P130)
  4421.  
  4422. Bitfields for mc-soundmachine configuration port:
  4423. Bit(s)    Description    (Table P130)
  4424.  7    Covox 'voice master' enabled at PORT 022Fh
  4425.  6     ""   'speech thing' enabled at PORT 03BCh
  4426.  5     ""             enabled at PORT 0278h
  4427.  4     ""             enabled at PORT 0378h
  4428.  3    not used (0388???)
  4429.  2    I²C bus enabled (see PORT 038Ah,PORT 038Bh)
  4430.  1    gameport enabled (see PORT 0201h)
  4431.  0    AdLib registers (see PORT 0388h,PORT 0389h) enabled
  4432. ----------P03900397--------------------------
  4433. PORT 0390-0397 - Sunshine EW-901B, EW-904B
  4434.         EPROM writer card for EPROMs up to 27512
  4435. 0390-0393  ??  adresses of the 8255 on the EW-90xB
  4436. ----------P0390039F--------------------------
  4437. PORT 0390-039F - Cluster adapter (AT)
  4438.  
  4439. 0390  ??  (adapter 0)    (XT)
  4440. 0391  ??  (adapter 0)    (XT)
  4441. 0392  ??  (adapter 0)    (XT)
  4442. 0393  ??  (adapter 0)    (XT)
  4443. ----------P03980399--------------------------
  4444. PORT 0398-0399 - Dell Enhanced Parallel Port
  4445. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 026Eh
  4446.  
  4447. 0398  -W  index for data port
  4448. 0399  RW  EPP command data
  4449. ----------P03A003AC--------------------------
  4450. PORT 03A0-03AC - 1st SDLC (Binary Synchronous Data Link Control adapter)
  4451. SeeAlso: PORT 0380h"SDLC"
  4452. ----------P03A003AF--------------------------
  4453. PORT 03A0-03AF - 1st BSC (Binary Synchronous Communication) adapter
  4454. Notes:    Initialization of the BSC adapter is performed in a typical
  4455.       sequence like this: Setup 8255 port A-C configuration by writing
  4456.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  4457.       to 382h. Reset 8251A internal registers by pulsing 8255 port B4.
  4458.       After this the 8253 has to be programmed to the desired values
  4459.       (counter 0 not used, counters 1 and 2 to mode 0). Now, the 8251A
  4460.       is ready to be loaded with a set of control words that define the
  4461.       communication environment.
  4462.     8251A: The control words are split into two formats, mode
  4463.       instruction and command instruction. The mode instruction must
  4464.       be inserted immediately after a reset operation (via 8255 port B4
  4465.       or setting command instruction bit6 to 'internal reset').
  4466.       The required synchronization characters are next loaded into the
  4467.       8251A (usually 32h for BSC). All control words written to the
  4468.       8251A after this will load the command instruction.
  4469.          reset -> mode instruction
  4470.               SYNC character 1
  4471.               SYNC character 2
  4472.               command instruction
  4473.               data ...
  4474.               command instruction
  4475.               data ...
  4476.               command instruction
  4477.               ...
  4478. SeeAlso: PORT 0380h"BSC"
  4479.  
  4480. 03A0  R-   on adapter 8255(A5) port A: internal/external sensing (see #P131)
  4481. 03A1  -W   on adapter 8255(A5) port B: external modem interface (see #P132)
  4482. 03A2  RW   on adapter 8255(A5) port C: internal control (see #P133)
  4483. 03A3  ?W   on adapter 8255(A5) mode initialization
  4484. 03A4  RW   on adapter 8253 (programmable counter) counter 0:
  4485.         LSB / MSB square wave generator (unused in sync mode)
  4486. 03A5  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  4487.         (connected to 8255 bitA7, IRQ4 level)
  4488. 03A6  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  4489.         (connected to 8255 bitA6, IRQ4 level)
  4490. 03A7  ?W   on adapter 8253 mode register (see #P134)
  4491. 03A8  RW   on adapter 8251: data (see #P135)
  4492. 03A9  R-   on adapter 8251: command/mode/USART status register (see #P136)
  4493.  
  4494. Bitfields for BSC 8255 port A:
  4495. Bit(s)    Description    (Table P131)
  4496.  7    =1 timer 1 output active
  4497.  6    =1 timer 2 output active
  4498.  5    =1 TxRDY active
  4499.  4    receive clock active (if pulsing)
  4500.  3    =0 clear to send is on from interface
  4501.  2    transmit clock active (if pulsing)
  4502.  1    =0 data carrier detect is on from interface
  4503.  0    =0 ring indicator is on from interface
  4504. SeeAlso: #P132
  4505.  
  4506. Bitfields for BSC 8255 port B:
  4507. Bit(s)    Description    (Table P132)
  4508.  7    =1 enable IRQ 4 level interrupt (timer 1 and 2)
  4509.  6    =1 gate timer 1
  4510.  5    =1 gate timer 2
  4511.  4    =1 reset 8251A
  4512.  3    =1 not used
  4513.  2    =0 turn on test
  4514.  1    =0 turn on select standby
  4515.  0    =0 turn on data signal rate select
  4516. SeeAlso: #P131,#P133
  4517.  
  4518. Bitfields for BSC 8255 port C:
  4519. Bit(s)    Description    (Table P133)
  4520.  7 R-    =0 BSC adapter (=1 may be used to detect SDLC??)
  4521.  6 R-    =0 test indicate active
  4522.  5 R-    timer 0 output (if pulsing)
  4523.  4 R-    receive data (if pulsing)
  4524.  3 -W    =0 enable timer 1 and 2 IRQ4 and receive IRQ 4
  4525.  2 -W    =1 electronic wrap
  4526.  1 -W    =1 gate external clock
  4527.  0 -W    =1 gate internal clock
  4528. SeeAlso: #P131,#P132
  4529.  
  4530. Bitfields for BSC 8253 mode register:
  4531. Bit(s)    Description    (Table P134)
  4532.  7-6    SC1-SC0     00, 01, 10= select counter 0,1,2; 11=illegal
  4533.  5-4    RL1-RL0     00= couner latching operation
  4534.          01= read/load most significant byte (MSB)
  4535.          10= read/load least significant byte (LSB)
  4536.          11= read/load LSB first, then MSB
  4537.  3-1    M2-M0     000= mode 0 (for counter 1 and 2)
  4538.          001= mode 1 (not used for BSC)
  4539.          x10= mode 2 (not used for BSC)
  4540.          x11= mode 3 (not used for BSC)
  4541.          100= mode 4 (not used for BSC)
  4542.          101= mode 5 (not used for BSC)
  4543.  0    BCD       0= binary counter 16bits
  4544.            1= BCD counter 4 decades
  4545.  
  4546. Bitfields for BSC 8251 data:
  4547. Bit(s)    Description    (Table P135)
  4548. ---mode instruction (W)---
  4549.  7    =0 Double SYNC Character
  4550.  6    =1 SYNDET is an Input
  4551.  5    =1 Even Parity
  4552.  4    =1 Parity Enable
  4553.  3-2    Character Length 00=5bits, 01=6bits, 10=7bits, 11=8bits
  4554.  1-0    not used (always 0)
  4555. ---SYNC character 1/2 (W)---
  4556.  string of two characters to be sync'ed at (in hunt mode).
  4557. ---command instruction (W)---
  4558.  7    Enter Hunt Mode
  4559.  6    Internal Reset
  4560.  5    Request to Send
  4561.  4    Error Reset
  4562.  3    Send Break Character
  4563.  2    Receive Enable
  4564.  1    Data Terminal Ready
  4565.  0    Transmit Enable
  4566. ---data (RW)---
  4567.     any data
  4568. SeeAlso: #P134,#P136
  4569.  
  4570. Bitfields for BSC 8251 command/mode/USART status:
  4571. Bit(s)    Description    (Table P136)
  4572.  7    Data Set Ready (indicated that DSR is at 0 level)
  4573.  6    SYNDET
  4574.  5    Framing Error (not used for synchronous communications)
  4575.  4    Overrun Error (OE flag on when Overrun Error occurs)
  4576.  3    Parity Error (PE flag on when a parity error occurs)
  4577.  2    TxEmpty
  4578.  1    RxRDY (causing IRQ 3 level)
  4579.  0    TxRDY (has not the same meaning as 8251A TxRDY output pin).
  4580.       THIS one is NOT conditioned by CTS and TxEnable (causing IRQ 4 level)
  4581. SeeAlso: #P135
  4582. ----------P03AB------------------------------
  4583. PORT 03AB - GI1904 Scanner Interface Adapter
  4584. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  4585.       PORT 036Bh, PORT 03ABh, PORT 03EBh
  4586. ----------P03AC------------------------------
  4587. PORT 03AC - GS-IF Scanner Interface adapter
  4588. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  4589.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  4590. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  4591.       others use this interface
  4592. ----------P03B003BF--------------------------
  4593. PORT 03B0-03BF - MDA  (Monochrome Display Adapter based on 6845)
  4594.  
  4595. 03B0  -W  same as 03B4
  4596. 03B1  RW  same as 03B5
  4597. 03B2  -W  same as 03B4
  4598. 03B3  RW  same as 03B5
  4599. 03B4  -W  MDA CRT index register     (MDA/mono EGA/mono VGA)
  4600.         selects which register (0-11h) is to be accessed through 03B5h
  4601.         Note: this port is read/write on some VGAs
  4602.         bit7-6: (VGA) reserved (0)
  4603.         bit5  : (VGA) reserved for testing (0)
  4604.         bit4-0: selects which register is to be accessed through 03B5h
  4605. 03B5  RW  MDA CRT data register     (MDA/mono EGA/mono VGA) (see #P137)
  4606.         selected by PORT 03B4h. registers 0C-0F may be read
  4607.         Color adapters are at 3D4/3D5, but are mentioned here for
  4608.           better overview.
  4609.         There are differences in names and some bits functionality
  4610.           on EGA, VGA in their native modes, but clones in their
  4611.           emulation modes emulate the original 6845 at bit level. The
  4612.           default values are for MDA, HGC, CGA only, if not otherwise
  4613.           mentioned.
  4614. 03B6  -W  same as 03B4h
  4615. 03B7  RW  same as 03B5h
  4616. 03B8  rW  MDA mode control register (see #P138)
  4617. 03B9  ?W  reserved for color select register on color adapter
  4618. 03B9  -W  MDA/HGC: set lightpen flipflop (value written is ignored)
  4619.         cannot be found on native mono EGA, mono VGA (without
  4620.           translation ROM)
  4621. 03BA  R-  CRT status register (see #P139)
  4622.         (EGA/VGA) input status 1 register
  4623. 03BA  -W  (mono EGA/mono VGA) feature control register
  4624.         (see PORT 03DAh-W for details; VGA, see PORT 03CAh-R)
  4625. 03BB  -W  light pen strobe reset (on any value)
  4626.  
  4627. (Table P137)
  4628. Values for mono video adapter CRT data register index:
  4629.                   defaults:    MDA/HGC    HGC   CGA   CGA      CGA
  4630.                          text  graph text1 text2 graph
  4631.                            7  720x348  1     3      5,6
  4632.  00h    horizontal total              61h    35h   38h   71h      38h
  4633.           ET4000: in VGA mode scanlines-5
  4634.               in EGA mode scanlines-2
  4635.  01h    horizontal displayed              50h    2Dh   28h   50h      28h
  4636.           horizontal display end-1 (EGA,VGA)
  4637.  02h    horizontal sync position          52h    2Eh   2Dh 5Ah/5Ch 2Dh
  4638.  03h    sync pulse width              0Fh 07h/0Fh 0Ah   0Ah      0Ah
  4639.            bit7-4 vsync, bit3-0 hsync
  4640.           end horizontal blanking (EGA,VGA)
  4641.            VGA    : bit7=1      : enable read access to regs
  4642.                     10h, 11h (otherwise VGA clones
  4643.                     may show lightpen values)
  4644.            EGA,VGA: bit6-5=0-3: display enable skew control
  4645.             bit4-0      : end blanking
  4646.  04h    vertical total (vcycle-1)          19h    5Bh   1Fh   1Fh      7Fh
  4647.            bit7 only used on MCGA
  4648.           start horizontal retrace (EGA, VGA)
  4649.           Genoa SuperEGA only???:
  4650.            bit7  : start at odd memory address
  4651.            bit6-5: horizontal sync skew
  4652.            bit4-0: start retrace+ retrace width
  4653.  05h    vertical total adjust              06h    02h   06h   06h      06h
  4654.            bit7-5 only used on MCGA
  4655.           end horizontal retrace (EGA, VGA)
  4656.            bit7  : (EGA) start at odd memory address
  4657.                (VGA) bit5 of end horizontal retrace
  4658.            bit6-5: horizontal sync skew
  4659.            bit4-0: end horizontal retrace
  4660.  06h    vertical displayed              19h    57h   19h   19h      64h
  4661.            bit7 only used on MCGA
  4662.           (EGA) vertical total-1
  4663.           (VGA) vertical total-2
  4664.  07h    vertical sync pulse width-1          19h    57h   1Ch   1Ch 70h/66h
  4665.            bit7  only used on MCGA
  4666.           controller overflow (EGA,VGA)
  4667.            bit7: (VGA) bit9 of start vertical retrace (10h)
  4668.            bit6: (VGA) bit9 of vertical display end (12h)
  4669.            bit5: (VGA) bit9 of vertical total (06h)
  4670.              (EGA) bit5 of cursor-position (0Ah)
  4671.            bit4: bit8 of line compare (18h)
  4672.            bit3: bit8 of start vertical blanking (15h)
  4673.            bit2: bit8 of vertical retrace start (10h)
  4674.            bit1: bit8 of vertical display end (12h)
  4675.            bit0: bit8 of vertical total (06h)
  4676.  08h    interlace mode (not MCGA)          02h    02h   02h   02h      02h
  4677.            bit7-2: reserved
  4678.            bit1  : delay
  4679.            bit0=1: interlace on
  4680.           preset row scan (EGA, VGA)
  4681.            bit7  : reserved
  4682.            bit6-5: (VGA) byte panning
  4683.            bit4-0: start row scan after retrace
  4684.  09h    maximum scan lines              0Dh    03h   07h   07h      01h
  4685.            bit7  : (VGA) double scan active
  4686.            bit6  : (VGA) bit9 of line compare (18h)
  4687.            bit5  : (VGA) bit9 of start vertical blanking (15h)
  4688.            bit4-0: maximum scan line 00..31 (height-1)
  4689.  0Ah    cursor start                  0Bh    00h   06h   06h 06h/00h
  4690.            bit7  : reserved
  4691.            bit6-5: original 6845: cursor on/off, blink interval
  4692.                (not on all adapters, as original MDA, CGA have
  4693.                extra circuitrity to avoid this!!)
  4694.            bit6-5: native EGA: not used
  4695.            bit6  : (VGA) not used
  4696.            bit5=0: (VGA) cursor on
  4697.            bit4-0: first cursor scanline
  4698.  0Bh    cursor end                  0Ch    00h   07h   07h 07h/00h
  4699.            bit7  : reserved
  4700.            bit6-5: EGA, VGA: cursor skew control
  4701.            bit4-0: end cursor row
  4702.  0Ch RW    start address high              00h    00h   00h   00h      00h
  4703.            bit7-6 not used by original 6845 (MDA,HGC,CGA)
  4704.  0Dh RW    start address low              00h    00h   00h   00h      00h
  4705.  0Eh RW    cursor location high              00h    00h   00h   00h      00h
  4706.            bit7-4 not used by original 6845 (MDA,HGC,CGA)
  4707.            bit5-4 reserved on MCGA
  4708.  0Fh RW cursor location low              00h    00h   00h   00h      00h
  4709. ---for 10h-14h MCGA registers see at 3D4h/3D5h---
  4710.  10h R-    light pen high (MDA/CGA/EGA only, some HGC, few VGA
  4711.            clones in emulation, not with ET4000)
  4712.  10h R-    native VGA with bit7=1 in end horizontal blanking (03h) and ET4000:
  4713.            start vertical retrace
  4714.  10h R- MCGA at 3D5h only: mode control status register (see #P174)
  4715.  10h -W EGA, VGA: start vertical retrace
  4716.  10h -W MCGA at 3D5h only: mode control register (see #P175)
  4717.  11h R- light pen low (MDA/CGA/EGA only, some HGC, few VGA
  4718.            clones in emulation, not with ET4000)
  4719.  11h R- native VGA with bit7=1 in end horizontal blanking (03h):
  4720.            end vertical retrace
  4721.  11h -W EGA, VGA: end vertical retrace
  4722.            bit7  : VGA: protection bit
  4723.                 =0 enable write access to 00h-07h
  4724.                 =1 read only regs 00h-07h with the exception
  4725.                    of bit4 in 07h. ET4000: protect 35h also.
  4726.            bit6  : VGA: =0 three, =1 five refreshcycles/line
  4727.                ET4000: reserved
  4728.            bit5=0: (MCGA also) enable vertical interrupt
  4729.            bit4=0: (MCGA also) clear vertical interrupt
  4730.            =1:           no effect
  4731.            bit3-0: (MCGA also) vertical retrace end
  4732.  11h RW MCGA at 3D5h only: interrupt control register (see #P176)
  4733.  12h    EGA, VGA: vertical display end register
  4734.  12h RW MCGA at 3D5h only: character generator/sync polarity register
  4735.           (see #P177)
  4736.  12h R- MCGA at 3D5h only: display sense register (see #P173)
  4737.         (with bit7=1 in 11h only)
  4738.  13h    EGA, VGA: row offset register
  4739.            logical screen line width in
  4740.         byte mode : bytes/(line/2)
  4741.         word mode : bytes/(line/4)
  4742.         dword mode: bytes/(line/8)
  4743.  13h -W MCGA at 3D5h only: character font pointer register (see #P173)
  4744.  14h    EGA, VGA: underline location register
  4745.            bit7=0: reserved
  4746.            bit6  : VGA: 0=word-mode, 1=dword-mode (see 17h, bit6)
  4747.            bit5  : VGA: 0=standard address counter clock
  4748.                 1=address counter clock/4 (see 17h, bit3)
  4749.            bit4-0: horizontal underline row scan
  4750.  14h -W MCGA at 3D5h only: number of characters to load during
  4751.            vretrace period (see #P173)
  4752.  14h -W HGC+,InColor: xMode register
  4753.  15h    EGA, VGA: start vertical blanking-1
  4754.  15h -W HGC+,InColor: underscore register
  4755.  16h    EGA, VGA: end vertical blanking register
  4756.            bit7-5 : EGA: reserved, but used on original EGA???
  4757.            bit4-0 : end vertical blanking
  4758.  16h -W HGC+,InColor: overstrike register
  4759.  17h    EGA, VGA: mode control register (see #P140)
  4760.  17h -W    InColor: exception register
  4761.  18h    EGA, VGA: line compare register
  4762.  18h -W    InColor: plane mask register
  4763.  19h    Genoa SuperEGA only: double scan control
  4764.            at 3B5h only in MDA, HGC emulation, but at 3D5h even in
  4765.            mono EGA modes.
  4766.            bit7-5 : reserved
  4767.            bit4   : HR/VR width adjust flag for double scan mode
  4768.            bit3-1 : 1=test, 0=normal
  4769.            bit0   : double scan enable
  4770.  19h -W    InColor: read/write control register
  4771.  1Ah -W    InColor: read/write color register
  4772.  1Bh -W    InColor: Latch Protect register
  4773.  1Bh    ET3000 only: x-zoom start register
  4774.           The existence of this register is often used to decide
  4775.            between ET3000 and ET4000, as the ET4000 does not offer
  4776.            hardware-zoom features.
  4777.  1Ch RW    InColor: palette register
  4778.  1Ch    ET3000 only: x-zoom end register
  4779.  1Dh    ET3000 only: y-zoom start register low
  4780.  1Eh    ET3000 only: y-zoom end register low
  4781.  1Fh    ET3000 only: y-zoom start & end high register
  4782.  20h    ET3000 only: zoom start address register low
  4783.  21h    ET3000 only: zoom start address register medium
  4784.  23h    ET3000 only: extended start address (see register 33h)
  4785.  24h    ET3000 only: compatibility register (see register 34h)
  4786.  25h    ET3000 only: overflow high register (see registers 35h, 07h)
  4787.  2Dh R- S3: extended Chip ID (always 88h???)
  4788.  2Eh R- S3 7xx/866/x68: new chip ID
  4789.  2Fh R- S3 7xx/866/x68: chipset revision
  4790.  30h RW    S3: chip ID/revision (see #P146)
  4791.  31h RW    S3: memory configuration (see #P147)
  4792.  32h    ET4000: RAS/CAS configuration ('key' protected) (see #P141)
  4793.  32h RW S3: backward compatibility 1 (see #P148)
  4794.  33h    ET4000: extended start address
  4795.           This register is often used to decide between ET4000
  4796.           and ET3000, when bit3-0 can be reread after write.
  4797.            bit7-4 : reserved
  4798.            bit3-2 : cursor address bit 17-16
  4799.            bit1-0 : linear start address bits 17-16
  4800.  33h RW S3: backward compatibility 2 (see #P149)
  4801.  34h    ET4000: 6845 compatibility control register ('key' protected)
  4802.       (see #P142)
  4803.  34h RW S3: backward compatibility 3
  4804.  35h    ET4000: overflow high register (protected by 11h, bit7) (see #P143)
  4805.  35h RW S3: CRT register lock
  4806.  36h    ET4000: video system configuration 1 ('key' protected) (see #P144)
  4807.  36h R    S3: Reset State read 1
  4808.  37h    ET4000: video system configuration 2 ('key' protected) (see #P145)
  4809.  37h R    S3: Reset State read 2
  4810.  38h RW    S3: S3 Register lock 1
  4811.     set reg 38h to 48h and reg 39h to A5h to unlock other S3 registers
  4812.  39h RW    S3: S3 Register lock 2
  4813.  3Ah RW S3: S3 Miscellaneous
  4814.     bit 4: ???
  4815.  3Bh RW S3: Data Transfer Execute position
  4816.  3Ch RW S3: Interlace Retrace start
  4817.  40h RW S3: System Configuration
  4818.     bit 0: enable access to 8514/A-compatible registers at PORT x2E8h
  4819.  41h    S3: BIOS Flag register
  4820.  42h RW S3: mode control
  4821.  43h RW S3: extended mode
  4822.  45h RW S3: hardware graphics cursor mode
  4823.  46h-47h RW S3: hardware cursor origin X
  4824.  48h-49h RW S3: hardware cursor origin Y
  4825.  4Ah RW S3: hardware graphics cursor foreground stack
  4826.  4Bh RW S3: hardware graphics cursor background stack
  4827.  4Ch-4Dh RW S3: hardware graphics cursor map start address
  4828.  4Eh RW S3: hardware cursor pattern start X
  4829.  4Fh RW S3: hardware cursor pattern start Y
  4830.  50h RW S3 801+: Extended System Control 1
  4831.  51h RW S3 801+: Extended System Control 2
  4832.  52h RW S3 801+: Extended BIOS Flag 1
  4833.         bits 7-6 are sync polarities (see #P165) for Diamond cards
  4834.  53h RW S3 801+: Extended Memory Control 1
  4835.  54h RW S3 801+: Extended Memory Control 2
  4836.  55h RW S3 801+: Extended Video DAC Control
  4837.  56h RW S3 801+: External Sync Control 1
  4838.  57h RW S3 801+: External Sync Control 2
  4839.  58h RW S3 801+: Linear Address Window Control
  4840.  59h RW S3 801+: Linear Address Window Position (high)
  4841.  5Ah RW S3 801+: Linear Address Window Position (low)
  4842.  5Bh RW S3 801+: Extended BIOS Flag 2
  4843.  5Ch RW S3 801+: General Output Port
  4844.     bit 0: ???
  4845.     bit 1: ???
  4846.  5Dh RW S3 801+: Extended Horizontal Overlow
  4847.  5Eh RW S3 801+: Extended Vertical Overflow
  4848.  5Fh RW S3 928/964: Bus Grant Termination Position
  4849.  60h RW S3 864/964: extended memory control 3
  4850.  61h RW S3 864/964: extended memory control 4
  4851.  62h RW S3 864/964: extended memory control 5
  4852.  63h RW S3 864/964: external sync delay adjustment (high)
  4853.  64h RW S3 864/964: genlocking adjustment
  4854.  65h RW S3 864/964: extended miscellaneous control
  4855.  66h RW S3 864/964: extended miscellaneous control 1
  4856.  67h RW S3 864/964: extended miscellaneous control 2
  4857.  68h RW S3 864/964: configuration 3
  4858.  69h RW S3 864/964: extended system control 3
  4859.  6Ah RW S3 864/964: extended system control 4
  4860.  6Bh RW S3 864/964: extended BIOS flag 3
  4861.  6Ch RW S3 864/964: extended BIOS flag 4
  4862.  6Dh RW S3 864/964: extended miscellaneous control
  4863. Notes:    MDA, HGC, CGA: 6845 registers 00h-0Dh are write only, 0Eh, 0Fh
  4864.            are r/w, and 10h-11h are read only.
  4865.            The alternative initial defaults may be used
  4866.            sometimes on modern adapters.
  4867.     HGC+(RamFont): as with HGC, but 3 (unknown) registers more for
  4868.            font control
  4869.     emulations   : more registers may be r/w, but most often it's
  4870.            the same as with native 6845.
  4871.     MCGA (CGA+)  : Though this is a mixture of CGA and VGA, most
  4872.            registers are same as with CGA, but with some
  4873.            enhancements and incompatibilities to EGA, VGA.
  4874.     native EGA   : registers 00h-0Bh are write only, 0Ch-0Fh are
  4875.            r/w, 10h-11h are read/write, 12h-18h are write
  4876.            only. More regs may be r/w on enhanced clones.
  4877.     GenoaSuperEGA: adapter with chips SEQCRT GN006001 and GRAT
  4878.            GN006002, e.g. c't Super-EGA adapter. Is EGA
  4879.            clone with up to 800x600 and full 6845 emulation.
  4880.     native VGA   : all registers 00-18h are r/w, but 00h-07h are
  4881.            write-locked if bit7 in 11h is set.
  4882.     ET4000         : same as VGA, but with additional r/w registers
  4883.            32h-37h, protected by 'key' except 33h, 35h
  4884.            (see 3BFh for details). 35h is protected by
  4885.            bit7 in 11h. The 'key' must be issued at least
  4886.            after each power on or synchronous reset.
  4887. SeeAlso: #P138,#P139,#P173
  4888.  
  4889. Bitfields for mono video adapter mode control register:
  4890. Bit(s)    Description    (Table P138)
  4891.  7 not used by MDA, page number on HGC
  4892.  6    not used
  4893.  6  R-O    (mono ET4000 only) report status of bit 1 (enable 2nd page) of
  4894.       Hercules compatibility register (PORT 03BFh)
  4895.  5    enable blink (0 = intense background, 1 = blink)
  4896.  4    not used
  4897.  3    video enable
  4898.  2    not used
  4899.  1    (MDA) not used
  4900.     (HGC) graphics enable
  4901.     the 6845 has to be reprogrammed completely, if this bit is
  4902.       changed, otherwise the TTL-monitor may be damaged by wrong
  4903.       sync impulses!
  4904.  0    high resolution mode (always set on MDA)
  4905. ---mono ET4000 only, W-O ---
  4906.  7-0    =A0h: second part of 'key', see Hercules compatibility register
  4907.       (PORT 03BFh) for details
  4908. Note:    this port might be completely or partially readable on very few MDA,
  4909.       HGC clones or emulations (e.g. Genoa SuperEGA), but not with the
  4910.       majority of original and clone chips.     It cannot be found on
  4911.       native mono EGA, mono VGA, but on most clones, where it is usually
  4912.       R/W.
  4913. SeeAlso: #P137,#P139
  4914.  
  4915. Bitfields for mono video adapter CRT status register:
  4916. Bit(s)    Description    (Table P139)
  4917.  7    HGC: vertical sync pulse in progress
  4918.  6-4    adapter identification
  4919.     (MSD says) if bit 7 changes within 8000h reads then
  4920.         =000 adapter is Hercules or compatible
  4921.         =001 adapter is Hercules+
  4922.         =101 adapter is Hercules InColor
  4923.         else: adapter is unknown
  4924.  6-4    =111 on MDA and some HGC clones
  4925.  5-4    (mono EGA, mono ET4000) diagnose video display feedback
  4926.     select from color plane enable
  4927.  3    (MDA,HGC) pixel stream (0=currently black, 1=currently white)
  4928.     (mono EGA, mono VGA) vertical retrace in progress
  4929.  2-1    (MDA) reserved
  4930.  2    (HGC, mono EGA) lightpen flipflop set
  4931.     (mono ET4000) reserved (0)
  4932.  1    (HGC) lightpen input stream (if set, current value to get from
  4933.       PORT 03B5h registers 10h-11h)
  4934.     (mono ET4000) reserved (0)
  4935.  0    horizontal drive enabled
  4936. SeeAlso: #P137,#P138
  4937.  
  4938. Bitfields for EGA,VGA mode control register:
  4939. Bit(s)    Description    (Table P140)
  4940.  7    0=CRTC reset and stop, 1=resume reset
  4941.  6    0=word-mode, 1=byte-mode (VGA: see 14h, bit6)
  4942.  5    0=14bit, 1=16bit address wrap
  4943.  4    (native VGA only) reserved (0)
  4944.  4    (EGA and most VGA clones) output control
  4945.     0: video driver active
  4946.     1: video driver not active
  4947.  3    linear address counter clock (0 = standard, 1 = clock/2)
  4948.     (VGA: see register 14h, bit 5)
  4949.  2    horizontal retrace clock (0 = standard, 1 = clock/2)
  4950.  1    row scan counter
  4951.     0: address bit 14 = scan bit 1
  4952.     1: address bit 14 not altered
  4953.  0    6845 compatibility mode
  4954.     0: address bit 13 = scan bit 0 (as with 6845)
  4955.     1: address bit 13 not altered
  4956. SeeAlso: #P137
  4957.  
  4958. Bitfields for ET4000 RAS/CAS configuration register:
  4959. Bit(s)    Description    (Table P141)
  4960.  7    static column memory
  4961.     ET4000/W32i: interleave mode
  4962.  6    RAL RAS&CAS column setup time
  4963.  5    RCD RAS & CAS time
  4964.  4-3    RSP, RAS pre-charge time
  4965.  2    CPS, CAS pre-charge time
  4966.  1-0    CSW, CAS low pulse width
  4967. SeeAlso: #P137,#P142
  4968.  
  4969. Bitfields for ET4000 compatibility control register:
  4970. Bit(s)    Description    (Table P142)
  4971.  7    6845 compatibility enabled
  4972.  6    ENBA enable double scan/underline in AT&T mode
  4973.  5    ENXL enable translation ROM on writing
  4974.  4    ENXR enable translation ROM on reading
  4975.  3    ENVS VSE register port address
  4976.  2    TRIS tristate ET4000 output pins
  4977.  1    CS2 MCLCK clock select 2
  4978.  0    EMCK enable translation of CS0 bit
  4979. SeeAlso: #P137,#P141,#P143
  4980.  
  4981. Bitfields for ET4000 overflow high register:
  4982. Bit(s)    Description    (Table P143)
  4983.  7    vertical interlace mode
  4984.  6    alternate RMW control
  4985.  5    external sync reset (gen-lock) the line/chr counter
  4986.  4    line compare bit10
  4987.  3    vertical sync start bit10
  4988.  2    vertical display end bit10
  4989.  1    vertical total bit10
  4990.  0    vertical blank start bit10
  4991. SeeAlso: #P137,#P142,#P144
  4992.  
  4993. Bitfields for ET4000 video system configuration 1 register:
  4994. Bit(s)    Description    (Table P144)
  4995.  7    enable 16bit I/O read/write
  4996.  6    enable 16bit display memory read/write
  4997.  5    addressing mode (0=IBM, 1=TLI)
  4998.  4    0=segment / 1=linear system configuration
  4999.  3    font width control (1=up to 16bit, 0=8bit)
  5000.  2-0    refresh count per line-1
  5001. SeeAlso: #P137,#P143,#P145
  5002.  
  5003. Bitfields for ET4000 video system configuration 2 register:
  5004. Bit(s)    Description    (Table P145)
  5005.  7    DRAM display memory type (1=VRAM, 0=DRAM)
  5006.  6    test (1=TLI interal test mode)
  5007.  5    priority threshold control (0=more mem BW)
  5008.  4    disable block read-ahead
  5009.  3    display memory data depth
  5010.  2    bus read data latch control
  5011.  1-0    display memory data bus width
  5012. SeeAlso: #P137,#P144
  5013.  
  5014. (Table P146)
  5015. Values for S3 chip ID/Revision register "CR30":
  5016.  81h    86c911
  5017.  82h    86c911A/924
  5018.  90h    86c928 (original)
  5019.  ...
  5020.  A0h    86c801/805 A-step or B-step
  5021.  ...
  5022.  B0h    86c928 PCI
  5023.  C0h    Vision864
  5024.  C1h    Vision864P
  5025.  D0h    Vision964
  5026.  D1h    Vision964P
  5027.  E0h    Trio32/64, 86c866, 86c868, 86c968; actual ID and revision stored in
  5028.       PORT 03B5h registers 2Eh and 2Fh
  5029.  E1h    Trio32/64, 86c866, 86c868, 86c968; actual ID and revision stored in
  5030.       PORT 03B5h registers 2Eh and 2Fh
  5031. SeeAlso: #P147
  5032.  
  5033. Bitfields for S3 "CR31" memory configuration register:
  5034. Bit(s)    Description    (Table P147)
  5035.  0    enable base-address offset (turn on bank-switched operation)
  5036.  1    two-page screen image (enables 2048-pixel wide screen)
  5037.  2    VGA 16-bit memory bus (clear for 8-bit memory bus)
  5038.  3    video memory above 256K accessible
  5039.  5-4    display start address, bits 17&16.  See also registers 51h and 69h
  5040.  6    enable page-mode memory access for text-mode font access
  5041.  7    (except 864/964) enable BIOS ROM address space C6800h-C7FFFh
  5042. SeeAlso: #P146,#P148
  5043.  
  5044. Bitfields for S3 "CR32" Backwards Compatibility 1 register:
  5045. Bit(s)    Description    (Table P148)
  5046.  1-0    character clock period
  5047.     00 IBM-compatible, 8 or 9 dots
  5048.     01 7 dots
  5049.     10 9 dits
  5050.  2    force full character clock for horizontal timing (CGA/HGC emulation),
  5051.       rather than 1/2 dot clock rate
  5052.  3    backward-compatible modes (set for MDA/CGA/EGA/HGC)
  5053.  6    fix VGA screen page using display start address bits 16&17 (see #P147)
  5054.  7    (928,964) tri-state serial output pins SC, SOE0, and SXNR
  5055. SeeAlso: #P147,#P149
  5056.  
  5057. Bitfields for S3 "CR33" Backwards Compatibility 2 register:
  5058. Bit(s)    Description    (Table P149)
  5059.  1    disable VDE protection (PORT 03D4h register 11h bit 7 will not act
  5060.       on PORT 03D4h register 7h bits 1 and 6)
  5061.  3    VCLK is inverted DCLK rather than inverted DCLK/2
  5062.  4    disable writes to RamDAC
  5063.  5    blank signal does not include border area, is same as display enable
  5064.  6    lock palette/overscan registers
  5065.  7    override CGA "enable video" at PORT 03D8h bit 3
  5066. SeeAlso: #P148
  5067. ----------P03BC03BF--------------------------
  5068. PORT 03BC-03BF - PARALLEL PRINTER PORT (MDA's LPT1)
  5069. Range:    PORT 0278h, PORT 0378h, or PORT 03BCh
  5070.  
  5071. 03BC  -W  data port
  5072. 03BC  R-  bidirectional port: input from connector
  5073.       unidirectional port: last value written to port
  5074. 03BD  RW  status port (see #P150)
  5075. 03BE  RW  control port (see #P151)
  5076.  
  5077. Bitfields for parallel interface status port:
  5078. Bit(s)    Description    (Table P150)
  5079.  7    busy
  5080.  6    NOT acknowledge (approx. 5us low pulse)
  5081.  5    out of paper
  5082.  4    printer is selected
  5083.  3    *no* error
  5084.  2    IRQ has *not* occurred
  5085.     (PS/2) printer returned -ACK
  5086.  1-0    reserved
  5087. SeeAlso: #P151
  5088.  
  5089. Bitfields for parallel interface control port:
  5090. Bit(s)    Description    (Table P151)
  5091.  7-5    reserved
  5092.  7    (see PORT 037Bh bit 7)
  5093.  5    enable bidirectional port
  5094.     (PS/2 also requires enabling via PORT 0102h)
  5095.  4    enable IRQ (via -ACK)
  5096.  3    select printer (SLCT IN line)
  5097.  2    =0 initialize printer (-RESET line)
  5098.  1    automatic line feed
  5099.  0    strobe (must be set for minimum of 5 microseconds)
  5100. SeeAlso: #P150
  5101. ----------P03BF------------------------------
  5102. PORT 03BF - Hercules configuration switch register
  5103. Note:    can also be found on EGA and VGA clones in Hercules emulation
  5104.  
  5105. 03BF  -W  configuration switch register (see #P152)
  5106. 03BF  -W  (ET4000) Hercules compatibility register (see #P153)
  5107. 03BF  RW  (Genoa SuperEGA) miscellaneous register
  5108.     Note: only available in MDA, HGC, and CGA emulation; should be
  5109.       compatible with Hercules configuration register, but may contain
  5110.       additional features
  5111.  
  5112. Bitfields for Hercules configuration switch register:
  5113. Bit(s)    Description    (Table P152)
  5114.  7-2    reserved
  5115.  1    =0  disables upper 32K of graphics mode buffer
  5116.     =1  enables upper 32K of graphics mode buffer
  5117.  0    =0  prevents graphics mode
  5118.     =1  allows graphics mode
  5119. SeeAlso: #P153
  5120.  
  5121. Bitfields for ET4000 compatibility register:
  5122. Bit(s)    Description    (Table P153)
  5123.  1    =0 disables upper 32K of graphics mode buffer
  5124.     =1 enables upper 32K of graphics mode buffer
  5125.  0    reserved (not needed for HGC graphics)
  5126.  7-0    =03h: first part of 'key' for access to some extra
  5127.          ET4000 regs. To issue the 'key', the following
  5128.          code must be executed:
  5129.           MOV DX, 3BFh
  5130.           MOV AL, 3
  5131.           OUT DX, AL
  5132.           MOV DX, 3D8h  (3B8h in mono mode)
  5133.           MOV AL, 0A0h
  5134.           OUT DX, AL
  5135. SeeAlso: #P152 
  5136. ----------P03C003C7--------------------------
  5137. PORT 03C0-03C7 - Sunshine EW-901, EW-901A, EW-904, EW-904A
  5138.         EPROM writer card for EPROMs up to 27512
  5139. 03C0-03C3    adresses of the 8255 on the EW-90x
  5140. ----------P03C003CF--------------------------
  5141. PORT 03C0-03CF - EGA  (1st Enhanced Graphics Adapter)    alternate at 02C0
  5142.  
  5143. 03C0  rW  EGA VGA ATC index/data register
  5144.          Every write access to this register will toggle an internal
  5145.          index/data selection flipflop, so that consecutive writes to
  5146.          index & data is possible through this port. To get a defined
  5147.          start condition, each read access to the input status register
  5148.          #1 (3BAh in mono / 3DAh in color) resets the flipflop to load
  5149.          index. If values are changed during the vertical retrace
  5150.          period only no flicker will occur.
  5151.  
  5152.         index register (flipflop reset to 'index'): (default 20h)
  5153.          bit7-6: reserved
  5154.          bit5  : 0=CPU access (screen dark),
  5155.              1=video access to registers
  5156.          bit4-0: index in ATC (0..31)
  5157.  
  5158.         indexed registers in ATC (flipflop set to 'data'): (see #P154)
  5159. 03C1  R-  VGA    ATC index/data read register
  5160. 03C2  R-  EGA VGA input status 0 register
  5161.              (Genoa SuperEGA in all emulation modes)
  5162.              bit6-5 are 'key' protected on ET4000.
  5163.              bit7  : CRT interrupt occured
  5164.                  EGA: 0=vertical retrace in progress, 1=display
  5165.              bit6  : EGA and ET4000: feature control 1 (pin17)
  5166.              bit5  : EGA and ET4000: feature control 0 (pin19)
  5167.              bit4  : DIP switch sense
  5168.                 (0=closed, 1=open/switches readable)
  5169.              bit3-0: reserved
  5170. 03C2  -W  EGA VGA miscellaneous output register (see #P165)
  5171. 03C3  RW  VGA    video subsystem enable (see also PORT 46E8h)
  5172.         for IBM, motherboard VGA only
  5173.              bit7-4=0: reserved
  5174.              bit3     : select video subsystem (address 46E8h)
  5175.              bit2-1     : reserved
  5176.              bit0     : select video subsystem (address 03C3)
  5177. 03C4  -W  EGA    TS index register
  5178. 03C4  RW  VGA    sequencer index register (see also #P160)
  5179.              bit7-3     : reserved (VGA only)
  5180.              bit2-0     : current TS index
  5181. 03C5  -W  EGA    TS data register
  5182. 03C5  RW  VGA    sequencer data register (see #P160)
  5183. 03C6  RW  (VGA, MCGA) PEL mask register (default FFh)
  5184.          VGA:    AND mask for color-register address.
  5185.          MCGA:    Never change from the default FFh.
  5186. 03C6  RW  HiColor ET4000 (Sierra RAMDACs e.g. SC11486, SC11481, SC11488):
  5187.          Enable HiColor feature: beside other assignments,
  5188.          consequtive read 3C6h 4 times and write magic value 80h to it.
  5189. 03C7  -W  (VGA,MCGA,CEG-VGA) PEL address register (read mode)
  5190.          Sets DAC in read mode and assign start of color register
  5191.          index (0..255) for following read accesses to 3C9h.
  5192.          Don't write to 3C9h while in read mode. Next access to
  5193.          03C8h will stop pending mode immediatly.
  5194. 03C7  -W  (CEG-Color VGA w/ Edsun Labs RAMDACs)
  5195.          Enable and set Countinous Edge Graphics Mode:
  5196.          Consecutive write the following three key sequences in read
  5197.          mode (!) to 3C9h register DEh : 'CEG', 'EDS', 'UNx' (x see
  5198.          below). Current CEG mode can be read from palette register
  5199.          BFh 'blue', write access to that register will disable CEG
  5200.          features.
  5201.          In CEG modes by combining old with new colors and dynamically
  5202.          changing palette values, the effective colors displayable
  5203.          are enhanced dramatically (in EDP modes up to virtually 32bit
  5204.          truecolor) on standard 16/256 color VGA. Also, effective
  5205.          resolution enhancement takes effect by anti-aliasing.
  5206.          Neccessary EDP escape sequences should be moved to image
  5207.          border or single colored areas, if possible.
  5208.  
  5209.          REP-mode: if pixel are doubled in current video mode
  5210.          EDP-mode: pseudo-truecolor with Edsun dynamic palette
  5211.          (see #P170,#P171)
  5212.  
  5213.          Palette-color-register single-byte-format (each 3 times):
  5214.           Mode A:          Mode C:
  5215.            bit7-4: mix code       bit3     : 0=color, 1=code
  5216.            bit3-0: color code       bit2-0: color / mix code
  5217.           Mode B:          Mode D:
  5218.            bit7-5: mix code       bit7-0: see mix code table
  5219.            bit4     : 0=new, 1=old      Non-CEG modes:
  5220.            bit3-0: color code       bit7-0: as usual
  5221.  
  5222.          In EDP modes, video-memory-palette-changing escape-sequences:
  5223.           Mode A:     Mode B:      Mode C:     Mode D:
  5224.            7/escape    7/escape       7/escape    0BFh
  5225.            red           red       red7-4      red
  5226.            green       green       red3-0      green
  5227.            blue           blue       green7-4    blue
  5228.            address     address       green3-0    address
  5229.                        blue7-4
  5230.                        blue3-0
  5231.                        address
  5232. 03C7  R-  VGA    DAC state register
  5233.         bit7-2 reserved
  5234.         bit1-0: 00b write palette cycle (write mode)
  5235.             01h reserved
  5236.             10b reserved
  5237.             11b read palette cycle (read mode)
  5238. 03C8  RW  (VGA,MCGA) PEL address register (write mode)
  5239.          Sets DAC in write mode and assign start of color register
  5240.          index (0..255) for following write accesses to 3C9h.
  5241.          Don't read from 3C9h while in write mode. Next access to
  5242.          03C8h will stop pending mode immediatly.
  5243. 03C8  RW  (Genoa SuperEGA) SuperEGA control register (all emulation modes)
  5244.           bit7-2: reserved
  5245.           bit1    : 0=EGA mode, 1=backward compatibility mode
  5246.           bit0    : not used
  5247. 03C9  RW  (VGA,MCGA) PEL data register
  5248.          Three consequtive reads (in read mode) or writes (in write
  5249.          mode) in the order: red, green, blue. The internal DAC index
  5250.          is incremented each 3rd access.
  5251.           bit7-6: HiColor VGA DACs only: color-value bit7-6
  5252.           bit5-0:             color-value bit5-0
  5253. 03CA  -W  EGA    graphics 2 position register
  5254. 03CA  R-  VGA    feature control register (see PORT 03BAh,PORT 03DAh-W)
  5255. 03CB  RW  (ET4000/W32) GDC segment select register 2 ('key' protected?)
  5256.         The existence of this r/w register 0..255 is often
  5257.          used to decide between ET4000 and ET4000/W32.
  5258.          bit7-6: reserved, but existent
  5259.          bit5-4: bits 5-4 of read segment pointer
  5260.          bit3-2: reserved, but existent
  5261.          bit1-0: bits 5-4 of write segment pointer
  5262. 03CC  -W  EGA    graphics 1 position register
  5263. 03CC  R-  VGA    miscellaneous output register (see PORT 03C2h-W,#P165)
  5264. 03CD  RW  (ET3000, ET4000, ET4000/W32) GDC segment select ('key' protected)
  5265.         The existence of this r/w register is often used as
  5266.         detection of ET3000, ET4000 and ET4000/W32 chips.
  5267.          bit7-4: read segment pointer for mapping to A0000h
  5268.          bit3-0: write segment pointer for mapping to A0000h
  5269. 03CE  -W  EGA    GDC index register
  5270. 03CE  RW  VGA    graphics address register / GDC index
  5271.               bit7-4: reserved
  5272.               bit3-0: index
  5273. 03CF  -W  EGA    GDC data register
  5274. 03CF  RW  VGA    other graphics register (see #P166)
  5275.  
  5276. (Table P154)
  5277. Values for EGA/VGA indexed registers in ATC:
  5278.  00h-0Fh 16 palette registers (see #P155)
  5279.  10h    mode control register (see #P156)
  5280.  11h    (EGA) overscan color register (see #P157) (default: 00h)
  5281.  11h    (VGA) overscan color register (see #P158) (default: 00h)
  5282.  12h    color enable register (see #P159)
  5283.  13h    horizontal pixel panning register
  5284.     bit7-4: reserved
  5285.     bit3-0: horizontal pixel panning
  5286.  14h    (VGA) color select register (default: 00h)
  5287.     bit7-4: reserved
  5288.     bit3  : s-color 7
  5289.     bit2  : s-color 6
  5290.     bit1  : s-color 5 (only with 16 pages á 16 regs)
  5291.     bit0  : s-color 4 (only with 16 pages á 16 regs)
  5292.  16h    ET3000, ET4000 only: ATC miscellanenous
  5293.     (at least on ET4000 'key' protected)
  5294.     This register is also supported by ET3000, but the
  5295.     description is proved for ET4000 only.
  5296.     bit7  : bypass the internal palette
  5297.         (e.g. for HiColor modes with Sierra RAMDACs)
  5298.     bit6  : reserved
  5299.     bit5-4: select high resolution / color mode
  5300.     bit3-0: reserved
  5301. SeeAlso: #P160,#P166
  5302.  
  5303. Bitfields for EGA/VGA indexed ATC palette register:
  5304. Bit(s)    Description    (Table P155)
  5305.  7-6    reserved
  5306.  5    secondary red video
  5307.  4    secondary green/intensity video
  5308.  3    secondary blue/mono video
  5309.  2    primary red video
  5310.  1    primary green video
  5311.  0    primary blue video
  5312. SeeAlso: #P154
  5313.  
  5314. Bitfields for EGA/VGA ATC mode control register:
  5315. Bit(s)    Description    (Table P156)
  5316.  7    (VGA) SB/SG select (0=4 pages of 64 regs, 1=16 pages of 16 regs)
  5317.  6    (VGA) PELCLK/2 (0=4bit color, 1=8bit color)
  5318.  5    (VGA) enable pixel panning (0=all, 1=up to line compare register value)
  5319.  4    reserved
  5320.  3    background intensity (0=16 colors, 1=blink)
  5321.  2    line graphics enable (0=background, 1=line 8=9)
  5322.  1    1=mono, 0=color select
  5323.  0    1=graphics, 0=text select
  5324. SeeAlso: #P154
  5325.  
  5326. Bitfields for EGA overscan color register:
  5327. Bit(s)    Description    (Table P157)
  5328.  7-6    reserved
  5329.  5    secondary red (SR)
  5330.  4    secondary green (SR) / intensity
  5331.  3    secondary blue (SB)
  5332.  2    primary red (PR)
  5333.  1    primary green (PG)
  5334.  0    primary blue (PB)
  5335. SeeAlso: #P154,#P158
  5336.  
  5337. Bitfields for VGA overscan color register:
  5338. Bit(s)    Description    (Table P158)
  5339.  7    secondary intensity border color (SI)
  5340.  6    secondary red (SR)
  5341.  5    secondary green (SG)
  5342.  4    secondary blue (SB)
  5343.  3    intensity border color (PI)
  5344.  2    primary red (PR)
  5345.  1    primary green (PG)
  5346.  0    primary blue (PB)
  5347. SeeAlso: #P154,#P157
  5348.  
  5349. Bitfields for EGA/VGA color enable register:
  5350. Bit(s)    Description    (Table P159)
  5351.  7-6    reserved
  5352.  5-4    diagnose / video status select
  5353.     EGA:        VGA, ET4000:
  5354.     00b = PR/PB       PR/PB
  5355.     01b = SB/PG       SG/SB
  5356.     10b = SR/SG       PI/PG
  5357.     11b = reserved       SI/SR
  5358.  3    enable plane 3
  5359.  2    enable plane 2
  5360.  1    enable plane 1
  5361.  0    enable plane 0
  5362. SeeAlso: #P154 
  5363.  
  5364. (Table P160)
  5365. Values for EGA/VGA indexed TS (sequencer) registers:
  5366.  00h    reset register
  5367.     bit7-2 : reserved
  5368.     bit1 =0: synchronous reset (EGA/VGA)
  5369.     bit0 =0: asynchronous reset (EGA, ET4000)
  5370.          synchronous reset, also (VGA)
  5371.  01h    clocking mode register / TS mode (see #P161)
  5372.  02h    map mask register (see #P162)
  5373.  03h    character map select register / font select (see #P163)
  5374.  04h    memory mode register
  5375.     bit7-4 : reserved
  5376.     bit3 =1: (VGA) enable chain 4 linear graphics mode
  5377.     bit2    : 0=odd/even mode, 1=sequential mode
  5378.     bit1 =1: extended memory (0=64KB, 1=more)
  5379.     bit0    : (EGA) 1=textmode, 0=graphics mode
  5380.  06h    ET3000 only: Zoom control register
  5381.  06h    ET4000 only: TS state control (protected by 'key')
  5382.     bit7-3 : reserved
  5383.     bit2-1 : timing sequencer state bit2-1
  5384.            (bit0 is bit0 TS mode register)
  5385.            00 0b=  9 dots
  5386.            00 1b=  8 dots
  5387.            01 0b= 10      (10-16 are ET4000 only)
  5388.            01 1b= 11
  5389.            10 0b= 12
  5390.            11 1b= 16
  5391.     bit0    : reserved
  5392.  07h    ET3000/ET4000 only: TS auxiliary mode (see #P164)
  5393.  08h    S3 765 (Trio64V): key register -- enable access to S3 extended
  5394.       registers when set to 06h
  5395. ---S3 756 (Trio64V) extended registers---
  5396.  09h    ???
  5397.  0Dh    DPMS
  5398.     bits 7-4: DPMS power mode
  5399.         0000 On
  5400.         0001 Standby
  5401.         0100 Suspend
  5402.         0101 Off    
  5403.     bits 1-0: ???
  5404.  10h    ???  \
  5405.  11h    ???  / paired
  5406.  12h    ???  \
  5407.  13h    ???  / paired
  5408.  15h    ???
  5409.     bit 4: ???
  5410.  18h    bit 5 set while reduced-power modes active
  5411.     bit 7: ???
  5412.  1Ch    bit 0: enable ??? at 000A0000h
  5413.     bit 1: enable ??? at 01000000h
  5414.  
  5415. Bitfields for EGA/VGA sequencer clocking mode register:
  5416. Bit(s)    Description    (Table P161)
  5417.  7-6    reserved
  5418.  5    (VGA) =1: screen refresh off
  5419.  4    (VGA) shift load (0=4x8, 1=1x32)
  5420.  3    dot clock (0=normal, 1=clock/2)
  5421.  2    serial shift video load (0=4x8, 1=2x16)
  5422.  1    (EGA) CRTC bandwidth (0=4/5, 1=2/5)
  5423.  0    dot clocks (0=9, 1=8) (ET4000: see 06h)
  5424. SeeAlso: #P160
  5425.  
  5426. Bitfields for EGA/VGA sequencer map mask register:
  5427. Bit(s)    Description    (Table P162)
  5428.  7-4    reserved
  5429.  4    Genoa SuperEGA only: plane4 ???
  5430.  3    write enable display memory plane 3
  5431.  2    write enable display memory plane 2
  5432.  1    write enable display memory plane 1
  5433.  0    write enable display memory plane 0
  5434. SeeAlso: #P160
  5435.  
  5436. Bitfields for EGA/VGA sequencer character map select register:
  5437. Bit(s)    Description    (Table P163)
  5438.  7-6    reserved
  5439.  5    (VGA) bit3 for 2nd text-font
  5440.  4    (VGA) bit3 for 1st text-font
  5441.  3-2    2nd text-font (attr bit3=1)
  5442.  1-0    1st text-font (attr bit3=0)
  5443.     offset in font memory (4-7: VGA only)
  5444.        0 00b =  0KB
  5445.        0 01b = 16KB
  5446.        0 10b = 32KB
  5447.        0 11b = 48KB
  5448.        1 00b =  8KB
  5449.        1 01b = 24KB
  5450.        1 10b = 40KB
  5451.        1 11b = 56KB
  5452. SeeAlso: #P160
  5453.  
  5454. Bitfields for ET3000/ET4000 sequencer auxiliary mode:
  5455. Bit(s)    Description    (Table P164)
  5456.  7    compatibility mode (1=VGA, 0=EGA)
  5457.  6    select MCLK/2 (with bit0=0)
  5458.  5    BIOS ROM address map 2
  5459.  4    reserved
  5460.  3    BIOS ROM address map 1
  5461.  2    reserved (1)
  5462.  1    select SCLK input from MCLK
  5463.  0    select MCLK/4 (with bit6=1)
  5464.  5+3    ROM address
  5465.     00 C0000-C3FFF
  5466.     01 disabled
  5467.     10 C0000-C5FFF, C6800-C7FFF
  5468.     11 C0000-C7FFF (default)
  5469. Notes:    at least on the ET4000, this register is protected by a 'key'
  5470.     this register is also supported by ET3000, but the above description
  5471.       is based on the ET4000
  5472. SeeAlso: #P160
  5473.  
  5474. Bitfields for EGA/VGA miscellaneous output register:
  5475. Bit(s)    Description    (Table P165)
  5476. ---Genoa SuperEGA in all emulation modes---
  5477.  7-6: vertical resolution
  5478.     00 (EGA) 200 lines
  5479.     01 (VGA) 400 lines
  5480.     10 (EGA/VGA) 350 lines
  5481.     11 (VGA) 480 lines
  5482. ------
  5483.  7    vertical sync polarity (0=positive, 1=negative)
  5484.  6    horizontal sync polarity (0=positive, 1=negative)
  5485.  5    odd/even pagebit
  5486.  4    EGA: 0=video driver on,
  5487.          1=video driver off (feature connector used)
  5488.  3-2    pixelclock
  5489.     00 14/25MHz (EGA/VGA)
  5490.     01 16/28Mhz (EGA/VGA)
  5491.     10 (EGA/VGA) external clock (EGA)
  5492.     11 (EGA/VGA) reserved
  5493.     10 (Genoa SuperEGA) 39Mhz
  5494.     11 (Genoa SuperEGA) 26.824Mhz
  5495.  1    enable CPU RAM access
  5496.  0    CRTC port address
  5497.     0=3B4 mono
  5498.     1=3D4 color
  5499.        (color EGA: enable feature control at 3DAh,status reg 1 at 3D2h)
  5500.  
  5501. Bitfields for EGA/VGA indexed registers in GDC:
  5502. Bit(s)    Description    (Table P166)
  5503.  00h    set/reset register (default 00h)
  5504.     functionality depending on write mode (register 05h) (see #P169)
  5505.     bit7-4: reserved
  5506.     bit3  : 0=write 00h, 1=write FFh in plane 3
  5507.     bit2  : 0=write 00h, 1=write FFh in plane 2
  5508.     bit1  : 0=write 00h, 1=write FFh in plane 1
  5509.     bit0  : 0=write 00h, 1=write FFh in plane 0
  5510.  01h    enable set/reset register (default 00h) (see #P167)
  5511.  02h    color compare register (default 00h) (see #P168)
  5512.  03h    data rotate register (default 00h)
  5513.     bit7-5: reserved
  5514.     bit4-3: logical function select
  5515.         00b= CPU-data overwrites
  5516.         01b= CPU-data AND with latch-register
  5517.         10b= CPU-data OR with latch-register
  5518.         11b= CPU-data XOR with latch-register
  5519.     bit2-0: rotate count
  5520.  04h    read map select register (default 00h)
  5521.     bit7-3: reserved
  5522.     bit2  : EGA?? & Genoa SuperEGA: map select bit2
  5523.     bit1-0: map select (0..3)
  5524.  05h    mode register (see #P169)
  5525.  06h    miscellaneous register
  5526.     bit7-4: reserved (=0)
  5527.     bit3-2: memory map
  5528.            00b = A0000..BFFFF (128KB)
  5529.            01b = A0000..AFFFF (64KB)
  5530.            10b = B0000..B7FFF (32KB)
  5531.            11b = B8000..BFFFF (32KB)
  5532.     bit1  : chain odd maps to even, 1=subst addess bit0
  5533.     bit0  : 0=testmode, 1=graphics mode
  5534.  07h    color don't care register
  5535.     bit7-4: reserved
  5536.     bit3=1: color plane 3 don't care (ignore bit3)
  5537.     bit2=1: color plane 2 don't care (ignore bit2)
  5538.     bit1=1: color plane 1 don't care (ignore bit1)
  5539.     bit0=1: color plane 0 don't care (ignore bit0)
  5540.  08h    bit mask register (default FFh)
  5541.     bit7-0: bitmask for latch/databyte
  5542.           (bit set=change allowed)
  5543.  0Fh    (Paradise SuperVGA) lock register
  5544.     The ability to write and reread 00h..07h to this register
  5545.     is often used as detection of Paradise chips.
  5546.     bit7-0 = 01h lock/hide Paradise specific registers
  5547.            = 05h unlock Paradise specific registers
  5548.     bit7-3: reserved
  5549.     bit2-0: flipflops, reserved
  5550.  
  5551. Bitfields for EGA/VGA GDC enable set/reset register:
  5552. Bit(s)    Description    (Table P167)
  5553.  7-4    reserved (used on Genoa SuperEGA???)
  5554.  3    enable set/reset plane 3
  5555.  2    enable set/reset plane 2
  5556.  1    enable set/reset plane 1
  5557.  0    enable set/reset plane 0
  5558.  3-0    0=CPU access, 1=set/reset access to plane
  5559. SeeAlso: #P166
  5560.  
  5561. Bitfields for EGA/VGA GDC color compare register:
  5562. Bit(s)    Description    (Table P168)
  5563.  7-4    reserved
  5564.  3    color compare 3
  5565.  2    color compare 2
  5566.  1    color compare 1
  5567.  0    color compare 0
  5568.  3-0    (color number)
  5569. SeeAlso: #P166
  5570.  
  5571. Bitfields for EGA/VGA GDC mode register:
  5572. Bit(s)    Description    (Table P169)
  5573.  7    reserved
  5574.  6    (VGA) 0=standard, 1=enable 256 colors
  5575.  5    shift register mode, 0=standard, 1=CGA-graphics
  5576.       (not used on Genoa SuperEGA???)
  5577.  4=1    enable odd/even address mode
  5578.  3    read mode, 0=mode0, 1=mode1
  5579.  2    (EGA) test condition, 0=standard, 1=output tristate
  5580.  1-0    write mode
  5581.     00 mode0, plane source is CPU or set/reset
  5582.     01 mode1, plane source is latch-register
  5583.     10 mode2, plane source is CPU as set/reset
  5584.     11 (VGA) mode3, CPU as set/reset AND bitmask
  5585. SeeAlso: #P166
  5586.  
  5587. (Table P170)
  5588. Values for EDSUN CEG (Continuous Edge Graphics) modes::
  5589.  x:  mode:     colors:  mix:    pixel depth:  effective colors:
  5590.  0 = disabled       256       -         8            256
  5591.  1 = A            16      16         8           1920
  5592.  2 = A+REP        16      16      8 dblscn       1920
  5593.  3 = A+EDP        15      16            truecolor
  5594.  4 = reserved         -       -         -             -
  5595.  5 = B            16       8         8            960
  5596.  6 = B+REP        16       8      8 dblscn        960
  5597.  7 = B+EDP        15       8            truecolor
  5598.  8 = reserved         -       -         -             -
  5599.  9 = C             8       8         4            224
  5600.  10 = C+REP         8       8      4 dblscn        224
  5601.  11 = C+EDP         7       8            truecolor
  5602.  12 = reserved         -       -         -             -
  5603.  13 = D           223      32         8         792096
  5604.  14 = D+REP       223      32      8 dblscn     792096
  5605.  15 = D+EDP       223      32            truecolor
  5606. SeeAlso: #P171
  5607.  
  5608. (Table P171)
  5609. Values for EDSUN CEG mixing codes:
  5610.  Mode A:           |  Mode C:
  5611.  mix: new:    old:   |   mix: new:   old:   colorcode:
  5612.    0 = 32/32    0/32   |    0 =      -     -     0
  5613.    1 = 30/32    2/32   |    1 =      -     -     1
  5614.    2 = 28/32    4/32   |    2 =      -     -     2
  5615.    3 = 26/32    6/32   |    3 =      -     -     3
  5616.    4 = 24/32    8/32   |    4 =      -     -     4
  5617.    5 = 22/32   10/32   |    5 =      -     -     5
  5618.    6 = 20/32   12/32   |    6 =      -     -     6
  5619.    7 = 18/32   14/32   |    7 =      -     -     7/EDP
  5620.    8 = 16/32   16/32   |    8 = 30/32    2/32   -
  5621.    9 = 14/32   18/32   |    9 = 28/32    4/32   -
  5622.   10 = 12/32   20/32   |   10 = 26/32    6/32   -
  5623.   11 = 10/32   22/32   |   11 = 24/32    8/32   -
  5624.   12 =    8/32   24/32   |   12 = 22/32  10/32   -
  5625.   13 =    6/32   26/32   |   13 = 20/32  12/32   -
  5626.   14 =    4/32   28/32   |   14 = 18/32  14/32   -
  5627.   15 =    2/32   30/32   |   15 = 16/32  16/32   -
  5628. ---Mode B:           |  Mode D:
  5629.  mix: new:    old:   |   mix:          new:   old:  description:
  5630.    0 = 30/32    2/32   |   00h..BEh =    -      -   normal color
  5631.    1 = 26/32    6/32   |   BFh        =    -      -   EDP
  5632.    2 = 22/32   10/32   |   C0h        = 32/32   0/32
  5633.    3 = 18/32   14/32   |   C1h        = 31/32   1/32
  5634.    4 = 14/32   18/32   |   C2h        = 30/32   2/32
  5635.    5 = 10/32   22/32   |   ...        =  ...    ...
  5636.    6 =    6/32   26/32   |   DFh        =  0/32  32/32
  5637.    7 =    2/32   30/32   |   E0h-FFh  =    -      -   normal color
  5638. SeeAlso: #P170
  5639. ----------P03CE03CF--------------------------
  5640. PORT 03CE-03CF - Compaq Qvision - Functionality Level
  5641.  
  5642. 03CE  -W  graphics address register (index for next port) (see #P172)
  5643. 03CF  RW  other graphics register
  5644.  
  5645. (Table P172)
  5646. Values for Compaq QVision graphics register index:
  5647.  0Ch  RO    controller version
  5648.         2Fh Advanced VGA
  5649.         37h early QVision 1024
  5650.         71h QVision 1280 or later QVision 1024
  5651.  0Dh        extended controller version
  5652.  0Eh        extended controller capabilities
  5653.  0Fh        environment info
  5654.  54h        available memory
  5655.  55h        phase-locked-loop clock
  5656.  56h-57h    controller capabilities
  5657. ----------P03D003DF--------------------------
  5658. PORT 03D0-03DF - CGA   (Color Graphics Adapter)
  5659.  
  5660. 03D0  -W  same as PORT 03D4h
  5661. 03D1  RW  same as PORT 03D5h
  5662. 03D2  -W  same as PORT 03D4h
  5663. 03D3  RW  same as PORT 03D5h
  5664. 03D4  rW  CRT (6845) index register   (CGA/MCGA/color EGA/color VGA)
  5665.     selects which register (0-11h) is to be accessed through 03D5
  5666.     this port is r/w on some VGA, e.g. ET4000
  5667.         bit 7-6 =0: (VGA) reserved
  5668.         bit 5   =0: (VGA) reserved for testage
  5669.         bit 4-0   : selects which register is to be accessed through 03D5
  5670. 03D5  -W  CRT (6845) data register    (CGA/MCGA/color EGA/color VGA)
  5671.     selected by PORT 03D4h. registers 0C-0F may be read
  5672.       (see also PORT 03B5h)
  5673.     MCGA, native EGA and VGA use very different defaults from those
  5674.       mentioned for the other adapters; for additional notes and
  5675.       registers 00h-0Fh and EGA/VGA registers 10h-18h and ET4000
  5676.       registers 32h-37h see PORT 03B5h (see #P137)
  5677.     registers 10h-11h on CGA, EGA, VGA and 12h-14h on EGA, VGA are
  5678.       conflictive with MCGA (see #P173)
  5679. 03D6  -W  same as 03D4
  5680.     (under OS/2, reads return 0 if full-screen DOS session,
  5681.       nonzero if windowed DOS session)
  5682. 03D7  RW  same as 03D5
  5683. 03D8  RW  CGA mode control register  (except PCjr) (see #P178)
  5684.     cannot be found on native color EGA, color VGA, but on most clones
  5685. 03D9  RW  CGA palette register (see #P180)
  5686.     (MCGA) CGA border control register
  5687.     Cannot be found on native EGA, VGA (without translation ROM) but
  5688.       only most clones. Read access on Genoa SuperEGA is 'reset'???
  5689. 03DA  R-  CGA status register (see #P179)
  5690.     color EGA/VGA: input status 1 register
  5691. 03DA  -W  color EGA/color VGA feature control register (see #P181)
  5692.     (at PORT 03BAh w in mono mode, VGA: 3CAh r)
  5693. 03DA  -W  HZ309 (MDA/HGC/CGA clone) card from in Heath/Zenith HZ150 PC
  5694.     bit7-1=0: unknown, zero is default and known to function
  5695.            properly at least in CGA modes.
  5696.     bit 0 = 1 override 3x8h bit3 control register that switches
  5697.            CRT beam off if bit3 is cleared. So screens always
  5698.            stays on.
  5699.     bit 0 = 0 3x8h bit3 indicates if CRT beam is on or off.
  5700.            No more info available. Might conflict with EGA/VGA.
  5701. 03DB  rW  clear light pen latch    (not MCGA)
  5702.           (R/W only with Genoa SuperEGA)
  5703. 03DC  RW  (not MCGA) preset light pen latch
  5704. 03DC  -W  (CGA) set light pen latch
  5705. 03DD  -W  (MCGA)  Extended mode control register
  5706.       (Plantronics & Genoa SuperEGA: Plantronics ColorPlus control,
  5707.               compatible with MCGA???)
  5708.     (default is 00h, in mode 13h: 04h)
  5709.     bit7 =1: DAC active, cannot be read
  5710.          =0: DAC not active, read allowed
  5711.     bit6-3 : reserved
  5712.     bit2 =1: videomode 13h with 256 colors active
  5713.     bit1    : reserved
  5714.     bit0 =0: reserved
  5715. 03DE  --  (MCGA) reserved
  5716. 03DE  -W  AT&T & color ET4000 in AT&T compatibility mode: AT&T mode control
  5717.       register (see #P182)
  5718.     (register enabled in ET4000, if bit7=1 in CRTC 3D4h/34h.)
  5719. 03DF  --  (MCGA) reserved
  5720. 03DF  ?W  CRT/CPU page register     (PCjr only)
  5721.  
  5722. (Table P173)
  5723. Values for MCGA (only) CRT Controller register index:
  5724.  10h  W mode control register (defaults 18h, 1Ah, 19h) (see #P174)
  5725.  10h R    mode control status register (see #P175)
  5726.  11h    interrupt control register (default 30h) (see #P176)
  5727.  12h    character generator/sync polarity register (see #P177)
  5728.  12h R    display sense register (11h, bit7=1)
  5729.     bit 7-2     : not used
  5730.     bit 1-0     : pins 11 & 12 in monitor cable
  5731.         00b = reserved
  5732.         01b = analogue monochrom monitor
  5733.         10b = analogue color graphics monitor
  5734.         11b = no monitor
  5735.  13h W    character font pointer register
  5736.     only 00h, 10h, 20h, 30h (default 00h) are allowed here
  5737.       for textmode fonts at A0000, A2000, A4000, A6000
  5738.  14h W    number of characters to load during vert. retrace period (default FFh)
  5739. SeeAlso: #P137
  5740.  
  5741. Bitfields for MCGA (only) CRT mode control register:
  5742. Bit(s)    Description    (Table P174)
  5743.  7    suppress hsync/vsync
  5744.  6    reserved (0)
  5745.  5    reserved
  5746.  4    dot clock rate
  5747.  3    refresh calculations in 80x25 modes
  5748.  2    reserved
  5749.  1    videomode 11h active
  5750.  0    videomode 13h active
  5751. SeeAlso: #P173,#P175
  5752.  
  5753. Bitfields for MCGA (only) CRT mode control status register:
  5754. Bit(s)    Description    (Table P175)
  5755.  7    status bit0 CGA mode control register
  5756.  6    reserved
  5757.  5    clockrate 640 pixel, =0: clockrate/2 320 pixel
  5758.  4    clock rate is 25,175Mhz
  5759.  3    currently in textmode
  5760.  2    double-scan activated
  5761.  1    videomode 11h active
  5762.  0    videomode 13h active
  5763. SeeAlso: #P173,#P174
  5764.  
  5765. Bitfields for MCGA (only) CRT interrupt control register:
  5766. Bit(s)    Description    (Table P176)
  5767.  7    set output driver to tristate
  5768.     =0: for reading of character generator reg (12h)
  5769.     =1: for reading of display sense register (12h)
  5770.  6   R    intr generated by memory controller
  5771.  5    =0 requested intr ok to handle
  5772.  4    =0 free interrupt latch register
  5773.  3-0    reserved
  5774. SeeAlso: #P173
  5775.  
  5776. Bitfields for MCGA (only) CRT character generator/sync polarity register:
  5777. Bit(s)    Description    (Table P177)
  5778.  7    character generator active
  5779.  6    =1 load codepage during display
  5780.     =0 load codepage during retrace
  5781.  5    codepage number (0,1)
  5782.  4    512 characters active
  5783.  3    reserved (0)
  5784.  2    enable hsync/vsync
  5785.  1    positive vsync polarity
  5786.  0    positive hsync polarity
  5787. Note:    default 46h in all modes, except 04h in mode 11h)
  5788. SeeAlso: #P173
  5789.  
  5790. Bitfields for CGA mode control register:
  5791. Bit(s)    Description    (Table P178)
  5792.  7-0    =A0h color ET4000: second part of 'key', see Hercules compatibility
  5793.       register (see PORT 03BFh) for details. For resetting the key, e.g.
  5794.       write 01h to PORT 03BFh and 29h to PORT 03D8h.
  5795.  7-6    not used
  5796.  6    color ET4000 only, read-only: report status of bit 1 (enable 2nd page)
  5797.       of hercules compatibility register (see PORT 03BFh)
  5798.  5    =1  blink enabled instead of foreground high-int.
  5799.  4    =1  640*200 graphics mode
  5800.  3    =1  video enabled (HZ309, see PORT 03DAh bit 0)
  5801.  2    =1  monochrome signal
  5802.                    (MCGA) in mode 6 and 11h color comes from pal-
  5803.                    regs 00 (black) and 07 (white), and can be
  5804.                    changed there.
  5805.  1    =0  text mode
  5806.     =1  320*200 graphics mode
  5807.  0    text columns (0 = 40*25 text mode, 1 = 80*25 text mode)
  5808. SeeAlso: #P179
  5809.  
  5810. Bitfields for CGA status register:
  5811. Bit(s)    Description    (Table P179)
  5812.  7-6    not used
  5813.  5-4    color EGA, color ET4000: diagnose video display feedback, select
  5814.       from color plane enable
  5815.  3    in vertical retrace
  5816.  2    (CGA,color EGA) light pen switch is off
  5817.     (MCGA,color ET4000) reserved (0)
  5818.  1    (CGA,color EGA) positive edge from light pen has set trigger
  5819.     (MCGA,color ET4000) reserved (0)
  5820.  0    horizontal retrace in progress
  5821.     =0  do not use memory
  5822.     =1  memory access without interfering with display
  5823.         (Genoa SuperEGA) horizontal or vertical retrace
  5824. SeeAlso: #P178,#P180
  5825.  
  5826. Bitfields for CGA palette register:
  5827. Bit(s)    Description    (Table P180)
  5828.  7-6    not used
  5829.  5    =0 active 320x200x4 color set: red, green brown
  5830.     =1 active 320x200x4 color set: cyan, magenta, white
  5831.  4    intense colors in graphics, background colors text
  5832.  3    intense border in 40*25, intense background in 320*200, intense
  5833.       foreground in 640*200
  5834.  2    red border in 40*25, red background in 320*200,    red foreground in
  5835.       640*200
  5836.  1    green border in 40*25, green background in 320*200, green foreground
  5837.       in 640*200
  5838.  0    blue border in 40*25, blue background in 320*200, blue foreground in
  5839.        640*200
  5840. SeeAlso: #P178,#P179 
  5841.  
  5842. Bitfields for color EGA/VGA feature control register:
  5843. Bit(s)    Description    (Table P181)
  5844.  7    ET4000 only: enable NMI generation ('key' protected)
  5845.  6-4    not used
  5846.  3    (VGA) 0 = normal vsync, 1 = vsync OR display enable
  5847.  2    reserved
  5848.  1    EGA and ET4000 only: FEAT1 control bit1 (pin17 feature connector)
  5849.  0    EGA and ET4000 only: FEAT0 control bit0 (pin19 feature connector)
  5850.  
  5851. Bitfields for AT&T mode control register:
  5852. Bit(s)    Description    (Table P182)
  5853.  7    reserved
  5854.  6    underline color attribute enable
  5855.     ET4000: enabled, if bit6=1 in CRTC 3D4h/34h.
  5856.  5    reserved
  5857.  4    reserved
  5858.  3    alternate page select (=1: 2nd 16KB page, with bit0=0)
  5859.  2    alternate font select (0=default font block)
  5860.  1    reserved
  5861.  0    double scan line mode (0=IBM 200, 1=AT&T 400 line graphics)
  5862.     (ET4000) enabled, if bit7-6=11b in CRTC 3D4h/34h.
  5863. ----------P03E003E8--------------------------
  5864. PORT 03E0-03E8    - LPT port address on the UniRAM card by German magazine c't
  5865. Range:    selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  5866. ----------P03E003EF--------------------------
  5867. PORT 03E0-03EF - COM port addresses on UniRAM card by German magazine c't
  5868. Range:    selectable from 238, 2E8, 2F8, 338, 3E0, 3E8, 3F8
  5869. ----------P03E803EF--------------------------
  5870. PORT 03E8-03EF - serial port, same as 02E8, 02F8 and 03F8 (COM3)
  5871. SeeAlso: PORT 03F8h-03FFh
  5872. ----------P03E803EF--------------------------
  5873. PORT 03E8-03EF    -  LPT port address on the UniRAM card by German magazine c't
  5874. Range:    selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  5875. ----------P03EB------------------------------
  5876. PORT 03EB - GI1904 Scanner Interface Adapter
  5877. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  5878.       PORT 036Bh, PORT 03ABh
  5879. ----------P03EC------------------------------
  5880. PORT 03EC - GS-IF Scanner Interface adapter
  5881. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  5882.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  5883. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  5884.       others use this interface
  5885. ----------P03F003F7--------------------------
  5886. PORT 03F0-03F7 - FDC 1    (1st Floppy Disk Controller)    second FDC at 0370
  5887. Note:    floppy disk controller is usually an 8272, 8272A, NEC765 (or
  5888.       compatible), or an 82072 or 82077AA for perpendicular recording at
  5889.       2.88M
  5890. SeeAlso: PORT 0370h-0377h
  5891.  
  5892. 03F0  R-  diskette controller status A (PS/2) (see #P183)
  5893. 03F0  R-  diskette controller status A (PS/2 model 30) (see #P184)
  5894. 03F0  R-  diskette EHD controller board jumper settings (82072AA) (see #P185)
  5895. 03F1  R-  diskette controller status B (PS/2) (see #P186)
  5896. 03F1  R-  diskette controller status B (PS/2 model 30) (see #P187)
  5897. 03F2  -W  diskette controller DOR (Digital Output Register) (see #P188)
  5898. 03F3  ?W  tape drive register (on the 82077AA)
  5899.     bit 7-2     reserved, tri-state
  5900.     bit 1-0     tape select
  5901.         =00  none, drive 0 cannot be a tape drive.
  5902.         =01  drive1
  5903.         =10  drive2
  5904.         =11  drive3
  5905. 03F4  R-  diskette controller main status register (see #P191)
  5906.     Note:    in non-DMA mode, all data transfers occur through
  5907.           PORT 03F5h and the status registers (bit 5 here
  5908.           indicates data read/write rather than than
  5909.           command/status read/write)
  5910. 03F4  -W  diskette controller data rate select register (see #P192)
  5911. 03F5  R-  diskette command/data register 0 (ST0) (see #P193)
  5912.     status register 1 (ST1) (see #P194)
  5913.     status register 2 (ST2) (see #P195)
  5914.     status register 3 (ST3) (see #P196)
  5915. 03F5  -W  diskette command register.  The commands summarized here are
  5916.       mostly multibyte commands. This is for brief recognition only.
  5917.       (see #P199)
  5918. 03F6  --  reserved on FDC
  5919. 03F6  rW  FIXED disk controller data register (see #P197)
  5920. 03F7  RW  harddisk controller (see #P198)
  5921. 03F7  R-  diskette controller DIR (Digital Input Register, PC/AT mode)
  5922.          bit 7 = 1 diskette change
  5923.          bit 6-0   tri-state on FDC
  5924. 03F7  R-  diskette controller DIR (Digital Input Register, PS/2 mode)
  5925.       (see #P189)
  5926. 03F7  R-  diskette controller DIR (Digital Input Register, PS/2 model 30)
  5927.       (see #P190)
  5928. 03F7  -W  configuration control register (PC/AT, PS/2)
  5929.          bit 7-2       reserved, tri-state
  5930.          bit 1-0 = 00  500 Kb/S mode (MFM)
  5931.              = 01  300 Kb/S mode (MFM)
  5932.              = 10  250 Kb/S mode (MFM)
  5933.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  5934.     conflict bit 0       FIXED DISK drive 0 select
  5935. 03F7  -W  configuration control register (PS/2 model 30)
  5936.          bit 7-3       reserved, tri-state
  5937.          bit 2           NOPREC (has no function. set to 0 by hardreset)
  5938.          bit 1-0 = 00  500 Kb/S mode (MFM)
  5939.              = 01  300 Kb/S mode (MFM)
  5940.              = 10  250 Kb/S mode (MFM)
  5941.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  5942.     conflict bit 0       FIXED DISK drive 0 select
  5943.  
  5944. Bitfields for diskette controller status A (PS/2):
  5945. Bit(s)    Description    (Table P183)
  5946.  7    interrupt pending
  5947.  6    -DRV2    second drive installed
  5948.  5    step
  5949.  4    -track 0
  5950.  3    head 1 select
  5951.  2    -index
  5952.  1    -write protect
  5953.  0    +direction
  5954. SeeAlso: #P184,#P186
  5955.  
  5956. Bitfields for diskette controller status A (PS/2 model 30):
  5957. Bit(s)    Description    (Table P184)
  5958.  7    interrupt pending
  5959.  6    DRQ
  5960.  5    step F/F
  5961.  4    -track 0
  5962.  3    head 1 select
  5963.  2    +index
  5964.  1    +write protect
  5965.  0    -direction
  5966. SeeAlso: #P183,#P185,#P187
  5967.  
  5968. Bitfields for diskette EHD controller board jumper settings:
  5969. Bit(s)    Description    (Table P185)
  5970.  7-6    drive 3
  5971.  5-4    drive 2
  5972.  3-2    drive 1
  5973.  1-0    drive 0
  5974.      00  1.2Mb
  5975.      01  720Kb
  5976.      10  2.8Mb
  5977.      11  1.4Mb
  5978. SeeAlso: #P183
  5979.  
  5980. Bitfields for diskette controller status B (PS/2):
  5981. Bit(s)    Description    (Table P186)
  5982.  7-6    reserved (1)
  5983.  5    drive select (0=A:, 1=B:)
  5984.  4    write data
  5985.  3    read data
  5986.  2    write enable
  5987.  1    motor enable 1
  5988.  0    motor enable 0
  5989. SeeAlso: #P183,#P187
  5990.  
  5991. Bitfields for diskette controller status B (PS/2 model 30):
  5992. Bit(s)    Description    (Table P187)
  5993.  7    -DRV2 second drive installed
  5994.  6    -DS1
  5995.  5    -DS0
  5996.  4    write data F/F
  5997.  3    read data F/F
  5998.  2    write enable F/F
  5999.  1    -DS3
  6000.  0    -DS2
  6001. SeeAlso: #P184,#P186
  6002.  
  6003. Bitfields for diskette controller Digital Output Register (DOR):
  6004. Bit(s)    Description    (Table P188)
  6005.  7-6    reserved on PS/2
  6006.  7    drive 3 motor enable
  6007.  6    drive 2 motor enable
  6008.  5    drive 1 motor enable
  6009.  4    drive 0 motor enable
  6010.  3    diskette DMA enable (reserved PS/2)
  6011.  2    =1  FDC enable    (controller reset)
  6012.     =0  hold FDC at reset
  6013.  1-0    drive select (0=A 1=B ..)
  6014. SeeAlso: #P183,#P191,#P192,#P189
  6015.  
  6016. Bitfields for diskette controller Digital Input Register (PS/2 mode):
  6017. Bit(s)    Description    (Table P189)
  6018.  7    = 1 diskette change
  6019.  6-3    = 1
  6020.  2    datarate select1
  6021.  1    datarate select0
  6022.  0    = 0 high density select (500Kb/s, 1Mb/s)
  6023.  0    (conflict) FIXED DISK drive 0 select
  6024. SeeAlso: #P190,#P188
  6025.  
  6026. Bitfields for diskette controller Digital Input Register (PS/2 model 30):
  6027. Bit(s)    Description    (Table P190)
  6028.  7    = 0 diskette change
  6029.  6-4    = 0
  6030.  3    -DMA gate (value from DOR register)
  6031.  2    NOPREC (value from CCR register)
  6032.  1    datarate select1
  6033.  0    datarate select0
  6034.  0    (conflict) FIXED DISK drive 0 select
  6035. SeeAlso: #P189
  6036.  
  6037. Bitfields for diskette controller main status register:
  6038. Bit(s)    Description    (Table P191)
  6039.  7    =1  RQM     data register is ready
  6040.     =0  no access is permitted
  6041.  6    =1  transfer is from controller to system
  6042.     =0  transfer is from system to controller
  6043.  5    non-DMA mode
  6044.  4    diskette controller is busy
  6045.  3    drive 3 busy (reserved on PS/2)
  6046.  2    drive 2 busy (reserved on PS/2)
  6047.  1    drive 1 busy (= drive is in seek mode)
  6048.  0    drive 0 busy (= drive is in seek mode)
  6049. SeeAlso: #P188
  6050.  
  6051. Bitfields for diskette controller data rate select register:
  6052. Bit(s)    Description    (Table P192)
  6053.  7-2    reserved on 8272
  6054.  7    software reset (self clearing)    82072/82077AA
  6055.  6    power down            82072/82077AA
  6056.  5    (8272/82077AA) reserved (0)
  6057.     (82072) PLL select bit
  6058.  4-2    write precompensation value, 000 default
  6059.  1-0    data rate select
  6060.     =00  500 Kb/S MFM    250 Kb/S FM
  6061.     =01  300 Kb/S MFM    150 Kb/S FM
  6062.     =10  250 Kb/S MFM    125 Kb/S FM
  6063.     =11  1Mb/S    MFM    illegal     FM on 8207x
  6064. SeeAlso: #P188
  6065.  
  6066. Bitfields for diskette command/data register 0 (ST0):
  6067. Bit(s)    Description    (Table P193)
  6068.  7-6    last command status
  6069.     00  command terminated successfully
  6070.     01  command terminated abnormally
  6071.     10  invalid command
  6072.     11  terminated abnormally by change in ready signal
  6073.  5    seek completed
  6074.  4    equipment check occurred after error
  6075.  3    not ready
  6076.  2    head number at interrupt
  6077.  1-0    unit select (0=A 1=B .. ) (on PS/2: 01=A  10=B)
  6078. SeeAlso: #P194,#P195,#P196
  6079.  
  6080. Bitfields for diskette status register 1 (ST1):
  6081. Bit(s)    Description    (Table P194)
  6082.  7    end of cylinder; sector# greater then sectors/track
  6083.  6    =0
  6084.  5    CRC error in ID or data field
  6085.  4    overrun
  6086.  3    =0
  6087.  2    sector ID not found
  6088.  1    write protect detected during write
  6089.  0    ID address mark not found
  6090. SeeAlso: #P193,#P195,#P196
  6091.  
  6092. Bitfields for diskette status register 2 (ST2):
  6093. Bit(s)    Description    (Table P195)
  6094.  7    =0
  6095.  6    deleted Data Address Mark detected
  6096.  5    CRC error in data
  6097.  4    wrong cylinder detected
  6098.  3    scan command equal condition satisfied
  6099.  2    scan command failed, sector not found
  6100.  1    bad cylinder, ID not found
  6101.  0    missing Data Address Mark 
  6102. SeeAlso: #P193,#P194,#P196
  6103.  
  6104. Bitfields for diskette status register 3 (ST3):
  6105. Bit(s)    Description    (Table P196)
  6106.  7    fault status signal
  6107.  6    write protect status
  6108.  5    ready status
  6109.  4    track zero status
  6110.  3    two sided status signal
  6111.  2    side select (head select)
  6112.  1-0    unit select (0=A 1=B .. )
  6113. SeeAlso: #P193,#P194,#P195
  6114.  
  6115. Bitfields for fixed disk controller data register:
  6116. Bit(s)    Description    (Table P197)
  6117.  7-4    reserved
  6118.  3    =0  reduce write current
  6119.     =1  head select 3 enable
  6120.  2    disk reset enable
  6121.  1    disk initialization disable
  6122.  0    reserved
  6123. SeeAlso: #P188,#P198
  6124.  
  6125. Bitfields for hard disk controller:
  6126. Bit(s)    Description    (Table P198)
  6127.  6    FIXED DISK write gate
  6128.  5    FIXED DISK head select 3 / reduced write current
  6129.  4    FIXED DISK head select 2
  6130.  3    FIXED DISK head select 1
  6131.  2    FIXED DISK head select 0
  6132.  1    FIXED DISK drive 1 select
  6133.  0    FIXED DISK drive 0 select
  6134. SeeAlso: #P197
  6135.  
  6136. (Table P199)
  6137. Values for diskette commands:
  6138.     MFM = MFM mode selected, opposite of MF mode
  6139.     HDS = head select
  6140.     DS  = drive select
  6141.     MT  = multi track operation
  6142.     SK  = skip deleted data address mark
  6143.    Command         # bytes    D7  6    5   4    3   2    1   0
  6144.  read track        9    0  MFM    0   0    0   0    1   0
  6145.                 0   0    0   0    0 HDS DS1 DS0
  6146.  specify        3    0   0    0   O    O   O    1   1
  6147.  sense drive status    2    0   0    0   0    0   1    0   0
  6148.                 0   0    0   0    0 HDS DS1 DS0
  6149.  write data        9    MT MFM    0   0    0   1    0   1
  6150.                 0   0    0   0    0 HDS DS1 DS0
  6151.  read data        9    MT MFM SK   0    0   1    1   0
  6152.                 0   0    0   0    0 HDS DS1 DS0
  6153.  recalibrate        2    0   0    0   0    0   1    1   1
  6154.                 0   0    0   0    0   0 DS1 DS0
  6155.  sense interrupt status 1    0   0    0   0    1   0    0   0
  6156.  write deleted data    9    MT MFM    0   0    1   0    0   1
  6157.                 0   0    0   0    0 HDS DS1 DS0
  6158.  read ID        2    0  MFM    0   0    1   0    1   0
  6159.                 0   0    0   0    0 HDS DS1 DS0
  6160.  read deleted data    9    MT MFM SK   0    1   1    0   0
  6161.                 0   0    0   0    0 HDS DS1 DS0
  6162.  format track        10    0  MFM    0   0    1   1    0   1
  6163.                 0   0    0   0    0 HDS DS1 DS0
  6164.  dumpreg **        1    0   0    0   0    1   1    1   0
  6165.  seek            3    0   0    0   0    1   1    1   1
  6166.                 0   0    0   0    0 HDS DS1 DS0
  6167.  version **        1    0   0    0   1    0   0    0   0
  6168.  scan equal *        9    MT MFM SK   1    0   0    0   1
  6169.                 0   0    0   0    0 HDS DS1 DS0
  6170.  perpendicular mode **    2    0   0    0   1    0   0    1   0
  6171.                 0   0    0   0    0   0 WGATE GAP
  6172.  configure **        4    0   0    0   1    0   0    1   1
  6173.                 0   0    0   0    0   0    0   0
  6174.  verify            9    MT MFM SK   1    0   1    1   0
  6175.                 EC  0    0   0    0 HDS DS1 DS0
  6176.  scan low or equal *    9    MT MFM SK   1    1   0    0   1
  6177.                 0   0    0   0    0 HDS DS1 DS0
  6178.  scan high or equal *    9    MT MFM SK   1    1   1    0   1
  6179.                 0   0    0   0    0 HDS DS1 DS0
  6180.  relative seek **    3    1  DIR    0   0    1   1    1   1
  6181.                 0   0    0   0    0 HDS DS1 DS0
  6182. BEWARE: not every invalid command is treated as invalid!
  6183.  *  Note: the scan commands aren't mentioned for the 82077AA.
  6184.  ** Note: EHD controller commands.
  6185. ----------P03F003F1--------------------------
  6186. PORT 03F0-03F1 - PCTech RZ1000 IDE controller
  6187. Note:    to unlock access to these ports instead of the standard floppy
  6188.       controller status ports at these two addresses, you must perform
  6189.       two immediately successive 8-bit OUTs of 55h to PORT 03F0h (there
  6190.       is a fairly small time limit between the two accesses, so there
  6191.       should be no other instructions between the two OUTs); after
  6192.       that, values written to PORT 03F0h select the data accessed through
  6193.       PORT 03F1h until an AAh is written to 03F0h
  6194. SeeAlso: #0629
  6195.  
  6196. 03F0  ?W  index port (see #P200)
  6197. 03F1  RW  data port
  6198.  
  6199. (Table P200)
  6200. Values for RZ1000 IDE controller registers:
  6201.  00h    ???
  6202.     bit 7:
  6203.     bit 1:
  6204.     bit 0:
  6205.  01h    ???
  6206.  02h    ???
  6207.  03h    ???
  6208.  04h    ???
  6209.  05h    ???
  6210.     bit 1:
  6211.  AAh    lock control port
  6212. ----------P03F803FF--------------------------
  6213. PORT 03F8-03FF - Serial port (8250,8250A,8251,16450,16550,16550A,etc.) COM1
  6214. Range:    PORT 02E8h-02EFh (COM2), PORT 02F8h-02FFh (typical non-PS/2 COM3), and
  6215.       PORT 03E8h-03EFh (typical non-PS/2 COM4)
  6216. Note:    chips overview:
  6217.      8250  original PC, specified up to 56Kbd, but mostly runs
  6218.            only 9600Bd, no scratchregister, bug: sometimes shots
  6219.            ints without reasons
  6220.      8250A, 16450, 16C451: ATs, most chips run up to 115KBd,
  6221.            no bug: shots no causeless ints
  6222.      8250B: PC,XT,AT, pseudo bug: shots one causeless int for
  6223.         compatibility with 8250, runs up to 56KBd
  6224.      16550, 16550N, 16550V: early PS/2, FIFO bugs
  6225.      16550A,16550AF,16550AFN,16550C,16C551,16C552: PS/2, FIFO ok
  6226.      82510: laptops & industry, multi emulation mode
  6227.         (default=16450), special-FIFO.
  6228.      8251: completely different synchronous SIO chip, not compatible!
  6229. SeeAlso: INT 14/AH=00h"SERIAL"
  6230.  
  6231. 03F8  -W  serial port, transmitter holding register (THR), which contains the
  6232.       character to be sent. Bit 0 is sent first.
  6233.         bit 7-0      data bits when DLAB=0 (Divisor Latch Access Bit)
  6234. 03F8  R-  receiver buffer register (RBR), which contains the received
  6235.       character. Bit 0 is received first
  6236.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  6237. 03F8  RW  divisor latch low byte (DLL) when DLAB=1 (see #P201)
  6238. 03F9  RW  divisor latch high byte (DLM) when DLAB=1 (see #P201)
  6239. 03F9  RW  interrupt enable register (IER) when DLAB=0 (see #P202)
  6240. 03FA  R-  interrupt identification register (see #P203)
  6241.     Information about a pending interrupt is stored here. When the ID
  6242.       register is addressed, thehighest priority interrupt is held, and
  6243.       no other interrupts are acknowledged until the CPU services that
  6244.       interrupt.
  6245. 03FA  -W  16650 FIFO Control Register (FCR) (see #P204)
  6246. 03FB  RW  line control register (LCR) (see #P205)
  6247. 03FC  RW  modem control register (see #P206)
  6248. 03FD  R-  line status register (LSR) (see #P207)
  6249. 03FE  R-  modem status register (MSR) (see #P208)
  6250. 03FF  RW  scratch register (SCR)
  6251.     (not used for serial I/O; available to any application using 16450,
  6252.       16550) (not present on original 8250)
  6253.  
  6254. (Table P201)
  6255. Values for serial port divisor latch registers:
  6256.  Some baudrates (using standard 1.8432 Mhz clock):
  6257.        baudrate       divisor     DLM  DLL
  6258.         50       2304          09h 00h
  6259.         75       1536          06h 00h
  6260.        110       1047          04h 17h
  6261.        134,5    857          03h 59h
  6262.        150        768          03h 00h
  6263.        300        384          01h 80h
  6264.        600        192          00h C0h
  6265.       1200         96          00h 60h
  6266.       1800         64          00h 40h
  6267.       2000         58          00h 3Ah
  6268.       2400         48          00h 30h
  6269.       3600         32          00h 20h
  6270.       4800         24          00h 18h
  6271.       7200         16          00h 10h
  6272.       9600         12          00h 0Ch
  6273.      19200          6          00h 06h
  6274.      38400          3          00h 03h
  6275.      57600          2          00h 02h
  6276.     115200          1          00h 01h
  6277. Note:    MIDI baudrate 32250Bd with 4Mhz quarz for c't MIDI interface
  6278.       following c't 01/1991:   '14400'      00h 08h
  6279.  
  6280. Bitfields for serial port interrupt enable register (IER):
  6281. Bit(s)    Description    (Table P202)
  6282.  7-4    reserved (0)
  6283.  3    modem-status interrupt enable
  6284.  2    receiver-line-status interrupt enable
  6285.  1    transmitter-holding-register empty interrupt enable
  6286.  0    received-data-available interrupt enable
  6287.       (also 16550(A) timeout interrupt)
  6288. Note:    16550(A) will interrupt with a timeout if data exists in the FIFO
  6289.       and isn't read within the time it takes to receive four bytes or if
  6290.       no data is received within the time it takes to receive four bytes
  6291. SeeAlso: #P203
  6292.  
  6293. Bitfields for serial port interrupt identification register (IIR):
  6294. Bit(s)    Description    (Table P203)
  6295.  7-6    =00  reserved on 8250, 8251, 16450
  6296.     =01  if FIFO queues enabled but unusable (16550 only)
  6297.     =11  if FIFO queues are enabled (16550A only) (see also #P204)
  6298.  6-5    (used by 82510 for FIFO status???)
  6299.  5-4    reserved (0)
  6300.  3    (8250,16450) reserved (0)
  6301.     (16550) timeout interrupt pending
  6302.  2-1    identify pending interrupt with the highest priority
  6303.     11    receiver line status interrupt. priority=highest
  6304.     10    received data available register interrupt. pr.=second
  6305.     01    transmitter holding register empty interrupt. pr.=third
  6306.     00    modem status interrupt. priority=fourth
  6307.  0    =0 interrupt pending. contents of register can be used as a pointer
  6308.       to the appropriate interrupt service routine
  6309.     =1 no interrupt pending
  6310. Notes:    interrupt pending flag uses reverse logic, 0=pending, 1=none
  6311.     interrupt will occur if any of the line status bits are set
  6312.     THRE bit is set when THRE register is emptied into the TSR
  6313. SeeAlso: #P202
  6314.  
  6315. Bitfields for serial port FIFO control register (FCR):
  6316. Bit(s)    Description    (Table P204)
  6317.  7-6    received data available interrupt trigger level (16550)
  6318.     00  1 byte
  6319.     01  4 bytes
  6320.     10  8 bytes
  6321.     11 14 bytes
  6322.  6-5    =00  (used to enable 4 byte Rx/Tx FIFOs on 82510???)
  6323.     =10 ???
  6324.  5-4    reserved (00)
  6325.  3    change RXRDY  TXRDY pins from mode 0 to mode 1
  6326.  2    clear XMIT FIFO
  6327.  1    clear RCVR FIFO
  6328.  0    enable clear XMIT and RCVR FIFO queues
  6329.  4-0    (other purpose on 82510???)
  6330. Notes:    bit 0 must be set in order to write to other FCR bits
  6331.     bit 1 when set    the RCVR FIFO is cleared and this bit is reset
  6332.       the receiver shift register is not cleared
  6333.     bit 2 when set    the XMIT FIFO is cleared and this bit is reset
  6334.       the transmit shift register is not cleared
  6335.     due to a hardware bug, 16550 FIFOs don't work correctly (this
  6336.       was fixed in the 16550A)
  6337. SeeAlso: #P203
  6338.  
  6339. Bitfields for serial port Line Control Register (LCR):
  6340. Bit(s)    Description    (Table P205)
  6341.  7    =1  divisor latch access bit (DLAB)
  6342.     =0  receiver buffer, transmitter holding, or interrupt enable register
  6343.       access
  6344.  6    set break enable. serial ouput is forced to spacing state and remains
  6345.       there.
  6346.  5-3    PM2 PM1 PM0
  6347.      x   x     0 = no parity
  6348.      0   0     1 = odd parity
  6349.      0   1     1 = even parity
  6350.      1   0     1 = high parity (sticky)
  6351.      1   1     1 = low parity (sticky)
  6352.      x   x     1 = software parity
  6353.  2    stop bit length (STB/SBL)
  6354.     0  one stop bit 
  6355.     1  2 stop bits with (word length 6, 7, 8)
  6356.        1.5 stop bits with word length 5
  6357.  1-0    (WLS1-0, CL1-0)
  6358.     00 word length is 5 bits
  6359.     01 word length is 6 bits
  6360.     10 word length is 7 bits
  6361.     11 word length is 8 bits
  6362. SeeAlso: #P206,#P207,#P208
  6363.  
  6364. Bitfields for serial port Modem Control Register (MCR):
  6365. Bit(s)    Description    (Table P206)
  6366.  7-5    reserved (0)
  6367.  4    loopback mode for diagnostic testing of serial port
  6368.     output of transmitter shift register is looped back to receiver
  6369.       shift register input. In this mode, transmitted data is received
  6370.       immediately so that the CPU can verify the transmit data/receive
  6371.       data serial port paths.
  6372.     If OUT2 is disabled, there is no official way to generate an IRQ
  6373.       during loopback mode.
  6374.  3    auxiliary user-designated output 2 (OUT2)
  6375.     because of external circuity OUT2 must be 1 to master-intr-enableing.
  6376.     BUG: Some Toshiba Laptops utilize this bit vice versa, newer Toshiba
  6377.       machines allow assignment of the bit's polarity in system setup.
  6378.     82050: This bit is only effective, if the chip is being used with an
  6379.       externally-generated clock.
  6380.  2    =1/0  auxiliary user-designated output 1 (OUT1)
  6381.     should generally be cleared!!
  6382.     Some external hardware, e.g. c't MIDI interface (and compatibles) use
  6383.       this bit to change the 8250 input clock from 1,8432 MHz to 4Mhz
  6384.       (enabling MIDI-conformant baudrates) and switching to
  6385.       MIDI-compatible current loop connectors.
  6386.  1    force request-to-send active (RTS)
  6387.  0    force data-terminal-ready active (DTR)
  6388. SeeAlso: #P205,#P207,#P208
  6389.  
  6390. Bitfields for serial port Line Status Register (LSR):
  6391. Bit(s)    Description    (Table P207)
  6392.  7    =0  reserved
  6393.     =1  on some chips produced by UMC
  6394.  6    transmitter shift and holding registers empty
  6395.  5    transmitter holding register empty (THRE)
  6396.     Controller is ready to accept a new character to send.
  6397.  4    break interrupt. the received data input is held in the zero bit
  6398.       state longer than the time of start bit + data bits + parity bit +
  6399.       stop bits.
  6400.  3    framing error (FE). the stop bit that follows the last parity or data
  6401.       bit is a zero bit
  6402.  2    parity error (PE). Character has wrong parity
  6403.  1    overrun error (OE). a character was sent to the receiver buffer
  6404.       before the previous character in the buffer could be read. This
  6405.       destroys the previous character.
  6406.  0    data ready. a complete incoming character has been received and sent
  6407.       to the receiver buffer register.
  6408. SeeAlso: #P205,#P206,#P208
  6409.  
  6410. Bitfields for serial port Modem Status Register (MSR):
  6411. Bit(s)    Description    (Table P208)
  6412.  7    data carrier detect (-DCD)
  6413.  6    ring indicator (-RI)
  6414.  5    data set ready (-DSR)
  6415.  4    clear to send (-CTS)
  6416.  3    delta data carrier detect (DDCD)
  6417.  2    trailing edge ring indicator (TERI)
  6418.  1    delta data set ready (DDSR)
  6419.  0    delta clear to send (DCTS)
  6420. Notes:    bits 0-3 are reset when the CPU reads the MSR
  6421.     bit 4 is the Modem Control Register RTS during loopback test
  6422.     bit 5 is the Modem Control Register DTR during loopback test
  6423.     bit 6 is the Modem Control Register OUT1 during loopback test
  6424.     bit 7 is the Modem Control Register OUT2 during loopback test
  6425. SeeAlso: #P205,#P206,#P207
  6426. --------!---Note-----------------------------
  6427. Note:    Adresses above 03FF generally apply to EISA and PCI machines only !
  6428.     EISA port assignments:
  6429.         1000-1FFF    slot 1 EISA
  6430.         2000-2FFF    slot 2 EISA
  6431.         3000-3FFF    slot 3 EISA
  6432.         4000-4FFF    slot 4 EISA
  6433.         5000-5FFF    slot 5 EISA
  6434.         6000-6FFF    slot 6 EISA
  6435.         7000-7FFF    slot 7 EISA
  6436. ----------P0401040B--------------------------
  6437. PORT 0401-040B - EISA DMA Controller
  6438. SeeAlso: PORT 0481h-048Bh"EISA",PORT 04D4h-04D6h"EISA"
  6439.  
  6440. 0401  RW  DMA channel 0 word count byte 2 (high)
  6441. 0403  RW  DMA channel 1 word count byte 2 (high)
  6442. 0405  RW  DMA channel 2 word count byte 2 (high)
  6443. 0407  RW  DMA channel 3 word count byte 2 (high)
  6444. 040A  -W  extended DMA chaining mode register, channels 0-3 (see #P209)
  6445. 040A  R-  channel interrupt (IRQ13) status register (see #P210)
  6446. 040B  -W  DMA extended mode register for channels 0-3 (see #P211)
  6447.     (bit settings same as PORT 04D6h)
  6448.  
  6449. Bitfields for EISA extended DMA chaining mode register (channels 0-3):
  6450. Bit(s)    Description    (Table P209)
  6451.  7-5    reserved
  6452.  4    =0  generate IRQ13
  6453.     =1  generate terminal count
  6454.  3    =0  do not start chaining
  6455.     =1  programming complete
  6456.  2    =0  disable buffer chaining mode (default)
  6457.     =1  enable buffer chaining mode
  6458.  1-0    DMA channel select
  6459. SeeAlso: #P210,#P211,#P215
  6460.  
  6461. Bitfields for EISA channel interrupt (IRQ13) status register:
  6462. Bit(s)    Description    (Table P210)
  6463.  7-5  interrupt on channels 7-5
  6464.  4      reserved
  6465.  3-0  interrupt on channels 3-0
  6466. SeeAlso: #P209
  6467.  
  6468. Bitfields for EISA DMA extended mode register (channels 0-3):
  6469. Bit(s)    Description    (Table P211)
  6470.  7    =0 enable stop register
  6471.  6    =0 terminal count is an output for this channel    (default)
  6472.  5-4    DMA cycle timing
  6473.     00 ISA-compatible (default)
  6474.     01 type A timing mode
  6475.     10 type B timing mode
  6476.     11 burst DMA mode
  6477.  3-2    Address mode
  6478.     00 8-bit I/O, count by bytes (default)
  6479.     01 16-bit I/O, count by words, address shifted
  6480.     10 32-bit I/O, count by bytes
  6481.     11 16-bit I/O, count by bytes
  6482.  1-0    DMA channel select
  6483. SeeAlso: #P209,#P216
  6484. ---------------------------------------------
  6485. PORT 040A-043F - Intel 82378ZB embedded DMA controller
  6486. Range:    relocatable via Relocation Base Address register (see #3341)
  6487. SeeAlso: PORT 0401h"EISA",#0642,#3341
  6488.  
  6489. 040A  R-  scatter/gather interrupt status (see #P275)
  6490. 040B  -W  DMA1 extended mode
  6491. 0410  -W  CH0 scatter/gather command (see #P273)
  6492. 0411  -W  CH1 scatter/gather command
  6493. 0412  -W  CH2 scatter/gather command
  6494. 0413  -W  CH3 scatter/gather command
  6495. 0414  -W  CH4 scatter/gather command
  6496. 0415  -W  CH5 scatter/gather command
  6497. 0416  -W  CH6 scatter/gather command
  6498. 0417  -W  CH7 scatter/gather command (see #P273)
  6499. 0418  R-  CH0 scatter/gather status (see #P274)
  6500. 0419  R-  CH1 scatter/gather status
  6501. 041A  R-  CH2 scatter/gather status
  6502. 041B  R-  CH3 scatter/gather status
  6503. 041C  R-  CH4 scatter/gather status
  6504. 041D  R-  CH5 scatter/gather status
  6505. 041E  R-  CH6 scatter/gather status
  6506. 041F  R-  CH7 scatter/gather status (see #P274)
  6507. 0420d RW  CH0 scatter/gather descriptor table address
  6508. 0424d RW  CH1 scatter/gather descriptor table address
  6509. 0428d RW  CH2 scatter/gather descriptor table address
  6510. 042Cd RW  CH3 scatter/gather descriptor table address
  6511. 0430d RW  CH4 scatter/gather descriptor table address
  6512. 0434d RW  CH5 scatter/gather descriptor table address
  6513. 0438d RW  CH6 scatter/gather descriptor table address
  6514. 043Cd RW  CH7 scatter/gather descriptor table address
  6515.  
  6516. (Table P275)
  6517. Call Intel 82378ZB Scatter/Gather Interrupt Status Register with:
  6518.  7    channel 7 has interrupt due to S/G transfer
  6519.  ...
  6520.  0    channel 0 has interrupt due to S/G transfer
  6521. SeeAlso: #P273,#P274
  6522.  
  6523. Bitfields for Intel 82378ZB Scatter/Gather Command Register:
  6524. Bit(s)    Description    (Table P273)
  6525.   7    select last-buffer termination type
  6526.     =0 assert IRQ13 on completion
  6527.     =1 assert EOP on completion
  6528.  6    enable bit 7 termination-type selection
  6529.  5-2    reserved (0)
  6530.  1-0    scatter-gather command
  6531.     00 none
  6532.     01 start S/G command
  6533.     10 stop S/G command
  6534.     11 reserved
  6535. SeeAlso: #P275,#P274,#3341
  6536.  
  6537. Bitfields for Intel 82378ZB Scatter/Gather Status Register:
  6538. Bit(s)    Description    (Table P274)
  6539.  7    no next link
  6540.  6    reserved
  6541.  5    issue IRQ13 instead of EOP at end of last buffer
  6542.  4    reserved
  6543.  3    scatter/gather Base Register status
  6544.     =1 buffer link has been loaded
  6545.     =0 empty
  6546.  2    scatter/gather Current Register status
  6547.     =1 buffer link has been loaded
  6548.     =0 empty
  6549.  1    reserved
  6550.  0    scatter/gather is active
  6551. SeeAlso: #P273
  6552. ----------P04610462--------------------------
  6553. PORT 0461-0462 - EISA NMI CONTROL
  6554.  
  6555. 0461  RW  Extended NMI status/control register (see #P212)
  6556. 0462  -W  Software NMI register. writing to this register causes an NMI    if
  6557.       NMIs are enabled
  6558.     bit 7 = 1  generates an NMI
  6559.  
  6560. Bitfields for EISA extended NMI status control register:
  6561. Bit(s)    Description    (Table P212)
  6562.  7    NMI pending from fail-safe timer (read only)
  6563.  6    NMI pending from bus timeout NMI status (read only)
  6564.  5    NMI pending (read only)
  6565.  4    reserved
  6566.  3    bus timeout NMI enable (read/write)
  6567.  2    fail-safe NMI enable (read/write)
  6568.  1    NMI I/O port enable (read/write)
  6569.  0    RSTDRV. bus reset (read/write)
  6570.     =0  NORMAL bus reset operation
  6571.     =1  reset bus asserted
  6572. --------X-P04640465--------------------------
  6573. PORT 0464-0465 - EISA BUS MASTER STATUS
  6574.  
  6575. 0464w R      bus master status latch register (slots 1-16)
  6576.     identifies the last bus master that had control of the bus (bit N =
  6577.       slot N+1 had control last)
  6578. ----------P0481048B--------------------------
  6579. PORT 0481-048B - EISA DMA page registers
  6580. Note:    these registers are also supported on many non-EISA machines, e.g. by
  6581.       most machines using Intel PCI chipsets
  6582. SeeAlso: PORT 0401h-040Bh"EISA",PORT 04C6h-04CFh"EISA"
  6583.  
  6584. 0481  RW  DMA channel 2 address byte 3 (high)
  6585. 0482  RW  DMA channel 3 address byte 3 (high)
  6586. 0483  RW  DMA channel 1 address byte 3 (high)
  6587. 0487  RW  DMA channel 0 address byte 3 (high)
  6588. 0489  RW  DMA channel 6 address byte 3 (high)
  6589. 048A  RW  DMA channel 7 address byte 3 (high)
  6590. 048B  RW  DMA channel 5 address byte 3 (high)
  6591. ----------P04C604CF--------------------------
  6592. PORT 04C6-04CF - EISA DMA count registers
  6593. SeeAlso: PORT 0401h-040Bh"EISA",PORT 0481h-048Bh"EISA",PORT 04E0h-04FFh"EISA"
  6594.  
  6595. 04C6  RW  DMA channel 5 word count byte 2 (high)
  6596. 04CA  RW  DMA channel 6 word count byte 2 (high)
  6597. 04CE  RW  DMA channel 7 word count byte 2 (high)
  6598. --------X-P04D004D1--------------------------
  6599. PORT 04D0-04D1 - EISA IRQ control
  6600. Note:    these registers are also supported on many non-EISA machines, e.g. by
  6601.       most machines using Intel PCI chipsets
  6602. SeeAlso: PORT 04D4h-040Bh"EISA"
  6603.  
  6604. 04D0  -W  IRQ 0-7 interrupt edge/level registers (see #P213)
  6605. 04D1  -W  IRQ 8-15 interrupt edge/level registers (see #P214)
  6606.  
  6607. Bitfields for EISA IRQ 0-7 interrupt edge/level register:
  6608. Bit(s)    Description    (Table P213)
  6609.  7    IRQ 7 is level sensitive
  6610.  6    IRQ 6 is level sensitive
  6611.  5    IRQ 5 is level sensitive
  6612.  4    IRQ 4 is level sensitive
  6613.  3    IRQ 3 is level sensitive
  6614.  2-0    reserved
  6615. SeeAlso: #P214
  6616.  
  6617. Bitfields for EISA IRQ 8-15 interrupt edge/level register:
  6618. Bit(s)    Description    (Table P214)
  6619.  7    IRQ 15 is level sensitive
  6620.  6    IRQ 14 is level sensitive
  6621.  5    reserved (1)
  6622.  4    IRQ 12 is level sensitive
  6623.  3    IRQ 11 is level sensitive
  6624.  2    IRQ 10 is level sensitive
  6625.  1    IRQ 9  is level sensitive
  6626.  0    reserved
  6627. SeeAlso: #P213
  6628. ----------P04D404D6--------------------------
  6629. PORT 04D4-04D6 - EISA DMA control
  6630. Note:    PORT 04D6h is also supported by the Intel 82378ZB System I/O controller
  6631. SeeAlso: PORT 0401h-040Bh"EISA",PORT 04D0h-04D1h"EISA"
  6632.  
  6633. 04D4  R-  DMA chaining status
  6634. 04D4  -W  extended DMA chaining mode register, channels 4-7 (see #P215)
  6635. 04D6  -W  DMA extended mode register for channels 4-7 (see #P216)
  6636.     bit settings same as PORT 040Bh
  6637.  
  6638. Bitfields for EISA extended DMA chaining mode register (channels 4-7):
  6639. Bit(s)    Description    (Table P215)
  6640.  7-5    reserved (0)
  6641.  4    =0  generate IRQ 13
  6642.     =1  generate terminal count
  6643.  3    =0  do not start chaining
  6644.     =1  programming complete
  6645.  2    =0  disable buffer chaining mode (default)
  6646.     =1  enable buffer chaining mode
  6647.  1-0    DMA channel select
  6648. SeeAlso: #P209,#P216
  6649.  
  6650. Bitfields for EISA DMA extended mode register (channels 4-7):
  6651. Bit(s)    Description    (Table P216)
  6652.  7    =0  enable stop register
  6653.  6    =0  terminal count is an output for this channel (default)
  6654.  5-4    DMA cycle timing
  6655.     00 ISA-compatible (default)
  6656.     01 type A timing mode
  6657.     10 type B timing mode
  6658.     11 burst DMA mode
  6659.  3-2    Address mode
  6660.     00 8-bit I/O, count by bytes (default)
  6661.     01 16-bit I/O, count by words, address shifted
  6662.     10 32-bit I/O, count by bytes
  6663.     11 16-bit I/O, count by bytes
  6664.  1-0    DMA channel select
  6665. SeeAlso: #P211,#P215
  6666. ----------P04E004FF--------------------------
  6667. PORT 04E0-04FF - EISA DMA stop registers
  6668. SeeAlso: PORT 0481h-048Bh"EISA"
  6669.  
  6670. 04E0-04E2  RW    channel 0
  6671. 04E4-04E6  RW    channel 1
  6672. 04E8-04EA  RW    channel 2
  6673. 04EC-04EE  RW    channel 3
  6674. 04F4-04F6  RW    channel 5
  6675. 04F8-04FA  RW    channel 6
  6676. 04FC-04FE  RW    channel 7
  6677. ----------P05300533--------------------------
  6678. PORT 0530-0533 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  6679. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  6680.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  6681.  
  6682. 0530  RW  address select
  6683. 0531  RW  data
  6684. 0532  RW  status
  6685. 0533  RW  PIO
  6686. ----------P05300537--------------------------
  6687. PORT 0530-0537 - Windows Sound System (default address)
  6688. Range:    dipswitch selectable among PORT 0530h-0537h,PORT 0604h-060Bh,
  6689.       PORT 0E80h-0E87h, and PORT 0F40h-0F47h
  6690. Notes:    the Sound Galaxy NX16 sound cards contains a Crystal CS4231, and thus
  6691.       support the CODEC portion of the WSS on ports 0534h-0537h
  6692.       (or 0608h-060Bh, etc.)
  6693.     the AMD InterWave chip supports a superset of the WSS CS4231 Codec,
  6694.       though by default it is not placed at any of the addresses used by
  6695.       the WSS
  6696.  
  6697. 0534  ?W  register select (index) (see #P217)
  6698. 0535  RW  data register (selected by PORT 0534h)
  6699.  
  6700. (Table P217)
  6701. Values for Windows Sound System CS4231 Codec register number:
  6702.  00h    Mixer: ADC volume (left)
  6703.  01h    Mixer: ADC volume (right)
  6704.  02h    Mixer: Line In volume (right) (see #P218)
  6705.  03h    Mixer: Line In volume (left) (see #P218)
  6706.  04h    Mixer: FM volume (right) (see #P218)
  6707.  05h    Mixer: FM volume (left) (see #P218)
  6708.  06h    Mixer: playback DAC volume (left)
  6709.  07h    Mixer: playback DAC volume (right)
  6710.  08h    playback data format
  6711.  09h    configuration register 1
  6712.  0Ah    external control
  6713.  0Bh    Codec status register 2
  6714.  0Ch    mode select
  6715.     bit 6: ???
  6716.  0Dh    loopback control
  6717.     (Sound Galaxy) microphone input enabled by bit 0 ???
  6718.  0Eh    playback count (high)
  6719.  0Fh    playback count (low)
  6720.  10h    configuration register 2
  6721.  11h    configuration register 3
  6722.  12h    Mixer: CD volume (right) (see #P218)
  6723.  13h    Mixer: CD volume (left) (see #P218)
  6724.  14h    timer (low)
  6725.  15h    timer (high)
  6726.  16h    Mixer: microphone input control (left)
  6727.  17h    Mixer: microphone input control (right)
  6728.  18h    Codec status register 3
  6729.  19h    Mixer: output attenuation (left)
  6730.  1Ah    mono input/output control
  6731.     (Sound Galaxy) SB volume (see #P219)
  6732.  1Bh    Mixer: output attenuation (right)
  6733.  1Ch    record data format
  6734.  1Dh    playback variable frequency
  6735.  1Eh    record count (high)
  6736.  1Fh    record count (low)
  6737.  48h    (Sound Galaxy) ???
  6738. Notes:    to enable the microphone input on the Sound Galaxy, ALL of the
  6739.       following registers must be set: 00h set to 80h, 01h set to 80h,
  6740.       07h to 00h, 0Dh to 01h, and 48h to 4Bh
  6741.     on the Sound Galaxy NX16, only bits 0-4 of the register number are
  6742.       fully decoded, so most registers above 1Fh are aliases of the
  6743.       first 32 registers
  6744.  
  6745. Bitfields for WSS mixer volume:
  6746. Bit(s)    Description    (Table P218)
  6747.  7    disable input source
  6748.  6-5    reserved???
  6749.  4-0    volume (00h = highest, 1Fh = lowest)
  6750. SeeAlso: #P217,#P219
  6751. Note:    the GW2000 GWBVOL.EXE only permits the setting of volume levels
  6752.       08h (reported as 16) to 18h (reported as 0, and sets bit 7 as well)
  6753.  
  6754. Bitfields for WSS mixer volume (SoundBlaster):
  6755. Bit(s)    Description    (Table P219)
  6756.  7    disable input source
  6757.  6-4    reserved???
  6758.  3-0    volume (00h = highest, 0Fh = lowest)
  6759. SeeAlso: #P217,#P218
  6760. ----------P0601------------------------------
  6761. PORT 0601 - Headland HL21, Acer M5105 chipsets - SYSTEM CONTROL
  6762.  
  6763. 0601  -W  system control (see #P220)
  6764. 0601  R-  status (see #P221)
  6765.  
  6766. Bitfields for Headland HL21/Acer M5105 system control register:
  6767. Bit(s)    Description    (Table P220)
  6768.  7    =1  power LED on
  6769.  6    =1  LCD backlight off
  6770.  5    ???
  6771.  4    ???
  6772.  3    ???
  6773.  2    =1  video chips disabled, screen blanked.
  6774.  1    ???
  6775.  0    =1  will lock up your machine!
  6776. SeeAlso: #P221
  6777.  
  6778. Bitfields for Headland HL21/Acer M5105 status register:
  6779. Bit(s)    Description    (Table P221)
  6780.  7    =0  if screen enabled always these values
  6781.  6    =0
  6782.  5    =0
  6783.  4    =0
  6784.  3    =0
  6785.  2    =1  (=0 at low power)
  6786.  1    =0  power OK
  6787.  0    =0
  6788. SeeAlso: #P220
  6789. ----------P06040607--------------------------
  6790. PORT 0604-0607 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  6791. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  6792.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  6793. ----------P0604060B--------------------------
  6794. PORT 0604-060B - Windows Sound System
  6795. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  6796. SeeAlso: PORT 0530h"Sound System"
  6797. ----------P06200627--------------------------
  6798. PORT 0620-0627 - PC network (adapter 1)
  6799. 0628-062F - PC network (adapter 2)
  6800. ----------P06800681--------------------------
  6801. PORT 0680-0681 - Microchannel POST Diagnostic (write only)
  6802.  
  6803. 0680  -W  Microchannel POST Diagnostic (write only)
  6804. 0681  -W  secondary MCA POST diagnostic
  6805. ----------P06A006A8--------------------------
  6806. PORT 06A0-06A8 - non-standard COM port addresses
  6807. Range:    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  6808. Note:    V20-XT by German magazine c't
  6809. ----------P06A806AF--------------------------
  6810. PORT 06A8-06AF - non-standard COM port addresses
  6811. Range:    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  6812. Note:    V20-XT by German magazine c't
  6813. ----------P06E206E3--------------------------
  6814. PORT 06E2-06E3 - data aquisition (adapter 1)
  6815. ----------P06E8------------------------------
  6816. PORT 06E8 - S3 86C928 video controller (ELSA Winner 1000)
  6817. ----------P06E806EF--------------------------
  6818. PORT 06E8-06EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6819. SeeAlso: PORT 02E8h-02EFh,PORT 0AE8h,PORT 96E8h,PORT 9AE8h
  6820.  
  6821. 06E8w -W  CRT control: horizontal displayed
  6822. ----------P0746------------------------------
  6823. PORT 0746 - Gravis Ultra Sound by Advanced Gravis - BOARD VERSION / MIXER
  6824. SeeAlso: PORT 0240h-024Fh,PORT 0340h-034Fh
  6825.  
  6826. 0746  R-  board version (rev 3.7+)
  6827.         FFh      Pre 3.6 boards, ICS mixer NOT present
  6828.         05h      Rev 3.7 with ICS Mixer. Some R/L: flip problems.
  6829.         06h-09h      Revision 3.7 and above. ICS Mixer present
  6830.         0Ah-      UltraMax. CS4231 present, no ICS mixer
  6831. 0746  -W  Mixer Control Port
  6832. ----------P07900793--------------------------
  6833. PORT 0790-0793 - cluster (adapter 1)
  6834. ----------P080008FF--------------------------
  6835. PORT 0800-08FF - I/O port access registers for extended CMOS RAM or SRAM
  6836.         (256 bytes at a time)
  6837. Note:    sometimes plain text can be seen here
  6838. --------X-P080008FF--------------------------
  6839. PORT 0800-08FF - reserved for EISA system motherboard
  6840. ----------P0A200A23--------------------------
  6841. PORT 0A20-0A23 - Token Ring (adapter 1)
  6842. 0A24-0A27 - Token Ring (adapter 2)
  6843. ----------P0A79------------------------------
  6844. PORT 0A79 - Plug-and-Play - WRITE DATA PORT
  6845. Desc:    all data written to the Plug-and-Play configuration registers is
  6846.       written to this port, including the configuration byte which
  6847.       indicates the I/O port from which data is to be read when reading
  6848.       the configuration registers
  6849. SeeAlso: PORT 0279h
  6850.  
  6851. 0A79  -W  Plug-and-Play data writes
  6852. ----------P0AE20AE3--------------------------
  6853. PORT 0AE2-0AE3 - cluster (adapter 2)
  6854. ----------P0AE8------------------------------
  6855. PORT 0AE8 - S3 86C928 video controller (ELSA Winner 1000)
  6856. ----------P0AE80AEF--------------------------
  6857. PORT 0AE8-0AEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6858.  
  6859. 0AE8w -W  CRT control: horizontal sync start
  6860. ----------P0B900B93--------------------------
  6861. PORT 0B90-0B93 - cluster (adapter 2)
  6862. ----------P0C00------------------------------
  6863. PORT 0C00 - EISA??? - PAGE REGISTER
  6864.  
  6865. 0C00  RW  page register to write to SRAM or I/O
  6866. --------X-P0C000CFF--------------------------
  6867. PORT 0C00-0CFF - reserved for EISA system motherboard
  6868. ----------P0C7C------------------------------
  6869. PORT 0C7C        bit 7-4 (Compaq)
  6870. --------X-P0C800C83--------------------------
  6871. PORT 0C80-0C83 - EISA system board ID registers
  6872.  
  6873. 0C80  R?  bit 7: unused (0)
  6874.       bits 6-2: manufacturer ID, first compressed ASCII char
  6875.       bits 1-0: manufacturer ID, second compressed ASCII char (high)
  6876. 0C81  R?  bits 7-5: manufacturer ID, second compressed ASCII char (low)
  6877.       bits 4-0: manufacturer ID, third compressed ASCII char
  6878. 0C82  R?  reserved for manufacturer's use
  6879. 0C83  R?  bits 7-3: reserved for manufacturer's use
  6880.       bits 2-0: EISA bus version
  6881. --------X-P0CF80CFF--------------------------
  6882. PORT 0CF8-0CFF - PCI Configuration Mechanism 1 - Configuration Registers
  6883. SeeAlso: PORT 0CF8h"Mechanism 2"
  6884.  
  6885. 0CF8d -W  configuration address port (see #P222)
  6886. 0CFCd RW  configuration data port (when PORT 0CF8h bit 31 is set)
  6887.  
  6888. Bitfields for PCI configuration address port:
  6889. Bit(s)    Description    (Table P222)
  6890.  1-0    reserved (00)
  6891.  7-2    configuration register number (see #0628)
  6892.  10-8    function
  6893.  15-11    device number
  6894.  23-16    bus number
  6895.  30-24    reserved (0)
  6896.  31    enable configuration space mapping
  6897. Note:    configuration registers are considered DWORDs, so the number in bits
  6898.       7-2 is the configuration space address shifted right two bits
  6899. SeeAlso: #P223
  6900. --------X-P0CF80CFA--------------------------
  6901. PORT 0CF8-0CFA - PCI Configuration Mechanism 2 - Configuration Registers
  6902. Notes:    this configuration mechanism is deprecated as of PCI version 2.1;
  6903.       only mechanism 1 should be used for new systems
  6904.     to access the configuration space, write the target bus number to
  6905.       the Forward Register, then write to the Configuration Space
  6906.       Enable register, and finally read or write the appropriate I/O
  6907.       port(s) in the range C000h to CFFFh (where Cxrrh accesses location
  6908.       'rr' in physical device 'x's configuration data)
  6909.     the Intel "Saturn" and "Neptune" chipsets use configuration mechanism 2
  6910. SeeAlso: PORT 0CF8h"Mechanism 1",PORT C000h"PCI Configuration"
  6911.  
  6912. 0CF8  RW  Configuration Space Enable (CSE) (see #P223)
  6913. 0CFA  RW  Forward Register (selects target bus number)
  6914.  
  6915. Bitfields for PCI Configuration Space Enable:
  6916. Bit(s)    Description    (Table P223)
  6917.  0    Special Cycle Enable (SCE)
  6918.  3-1    target function number (PCI logical device within physical device)
  6919.  7-4    key (non-zero to allow configuration)
  6920. SeeAlso: #P222
  6921. ----------P0CF9------------------------------
  6922. PORT 0CF9 - Intel 82420EX chipset - TURBO/RESET CONTROL REGISTER
  6923. Notes:    this port can only be accessed via 8-bit IN or OUT instructions by
  6924.       the CPU
  6925.     also supported by the Intel "Saturn" and "Neptune" chipsets
  6926. SeeAlso: PORT C051h,#3434
  6927.  
  6928. 0CF9  RW  reboot system, optionally selecting de-turbo mode (see #P224)
  6929.  
  6930. (Table P224)
  6931. Call Intel 82420EX turbo/reset control register with:
  6932.  7-3    reserved (0)
  6933.  2    reset CPU
  6934.  1    reset mode
  6935.     0 soft reset
  6936.     1 hard reset
  6937.  0    deturbo mode
  6938. Note:    when resetting the CPU, two writes are required: the first sets the
  6939.       state of bit 1 while keeping bit 2 cleared, and the second sets
  6940.       bit 2; the reset occurs on bit 2's transition from 0 to 1.
  6941. --------s-P0E800E83--------------------------
  6942. PORT 0E80-0E83 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  6943. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  6944.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  6945. --------s-P0E800E87--------------------------
  6946. PORT 0E80-0E87 - Windows Sound System
  6947. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  6948. SeeAlso: PORT 0530h"Sound System"
  6949. --------V-P0EE8------------------------------
  6950. PORT 0EE8 - S3 86C928 video controller (ELSA Winner 1000)
  6951. --------V-P0EE80EEF--------------------------
  6952. PORT 0EE8-0EEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6953.  
  6954. 0EE8w -W  CRT control: horizontal sync width
  6955. ----------P0F400F43--------------------------
  6956. PORT 0F40-0F43 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  6957. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  6958.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  6959. ----------P0F400F47--------------------------
  6960. PORT 0F40-0F47 - Windows Sound System
  6961. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  6962. SeeAlso: PORT 0530h"Sound System"
  6963. --------X-P100010FF--------------------------
  6964. PORT 1000-10FF - available for EISA slot 1
  6965. ----------P12E812EF--------------------------
  6966. PORT 12E8-12EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6967.  
  6968. 12E8w -W  CRT control: vertical total
  6969. --------V-P12EE------------------------------
  6970. PORT 12EE - ATI Mach32 - CONFIGURATION STATUS 0
  6971. SeeAlso: PORT 16EEh"Mach32",PORT 42EEh"Mach32",PORT 52EEh"Mach32"
  6972. ----------P13901393--------------------------
  6973. PORT 1390-1393 - cluster (adapter 3)
  6974. --------X-P140014FF--------------------------
  6975. PORT 1400-14FF - available for EISA slot 1
  6976. ----------P16E816EF--------------------------
  6977. PORT 16E8-16EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6978.  
  6979. 16E8w -W  CRT control: vertical displayed
  6980. --------V-P16EE------------------------------
  6981. PORT 16EE - ATI Mach32 - CONFIGURATION STATUS 1
  6982. SeeAlso: PORT 12EEh"Mach32",PORT 42EEh"Mach32",PORT 52EEh"Mach32"
  6983. --------X-P180018FF--------------------------
  6984. PORT 1800-18FF - available for EISA slot 1
  6985. ----------P1AE81AEF--------------------------
  6986. PORT 1AE8-1AEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  6987.  
  6988. 1AE8w -W  CRT control: vertical sync start
  6989. --------X-P1C001CFF--------------------------
  6990. PORT 1C00-1CFF - available for EISA slot 1
  6991. ----------P1C65------------------------------
  6992. PORT 1C65 - Compaq Contura Aero
  6993. SeeAlso: PORT 2065h
  6994.  
  6995. 1C65  R?  bit 6: operating on battery power
  6996. --------X-P1C801C8F--------------------------
  6997. PORT 1C80-1C8F - VESA XGA Video in EISA slot 1
  6998.  
  6999. 1C80-1C83  RW    EISA Video ID
  7000. 1C84  RW    EISA Video expansion board control (see #P225)
  7001. 1C85  RW    EISA Setup control
  7002. 1C88  RW    EISA Video Programmable Option Select 0
  7003. 1C89-1C8F  RW    EISA Video Programmable Option Select 1-7
  7004. --------X-P1C801C83--------------------------
  7005. PORT 1C80-1C83 - EISA board product ID (board in slot 1)
  7006.  
  7007. 1C80  R?  bit 7: unused (0)
  7008.       bits 6-2: manufacturer ID, first compressed ASCII char
  7009.       bits 1-0: manufacturer ID, second compressed ASCII char (high)
  7010. 1C81  R?  bits 7-5: manufacturer ID, second compressed ASCII char (low)
  7011.       bits 4-0: manufacturer ID, third compressed ASCII char
  7012. 1C82  R?  bits 7-4: first hex digit of product type
  7013.       bits 3-0: second hex digit of product type
  7014. 1C83  R?  bits 7-4: third hex digit of product type
  7015.       bits 3-0: product revision number (hex digit)
  7016. --------X-P1C84------------------------------
  7017. PORT 1C84 - EISA CONFIGURATION FLAGS (board in slot 1)
  7018.  
  7019. 1C84  RW  configuration flags (see #P225)
  7020.  
  7021. Bitfields for EISA Add-in Card configuration flags:
  7022. Bit(s)    Description    (Table P225)
  7023.  0    enable
  7024.  1    IOCHKERR (read-only) card is generating CHCHK#, causing an NMI
  7025.  2    IOCHKRST reset card
  7026.  7-3    card-specific
  7027. --------X-P1C85------------------------------
  7028. PORT 1C85 - EISA SETUP CONTROL (board in slot 1)
  7029. --------V-P1C85------------------------------
  7030. PORT 1C85 - Compaq Qvision EISA - Virtual Controller ID
  7031. --------X-P1C881C8F--------------------------
  7032. PORT 1C88-1C8F - EISA PROGRAMMABLE OPTION SELECT (board in slot 1)
  7033. --------V-P1EE81EEF--------------------------
  7034. PORT 1EE8-1EEF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  7035.  
  7036. 1EE8w -W  CRT control: vertical sync width
  7037. --------V-P1EEC------------------------------
  7038. PORT 1EEC - Mach64 - ???
  7039.  
  7040. 1EEC  RW  display power and other controls
  7041.     bits 3-2: DPMS power mode
  7042.         00 normal
  7043.         01 standby
  7044.         10 suspend
  7045.         11 off
  7046. --------X-P200020FF--------------------------
  7047. PORT 2000-20FF - available for EISA slot 2
  7048. ----------P2065------------------------------
  7049. PORT 2065 - Compaq Contura Aero
  7050. SeeAlso: PORT 1C65h"Compaq",PORT 2465h"Compaq"
  7051.  
  7052. 2065  -W  ??? (84h seen)
  7053. --------V-P2100------------------------------
  7054. PORT 2100 - XGA Video Operating Mode Register
  7055. Note:    this port is for the first XGA in the system; 2110-2170 are used for
  7056.       the second through eighth XGAs
  7057. --------V-P2101------------------------------
  7058. PORT 2101 - XGA Video Aperture Control
  7059. Note:    this port is for the first XGA in the system; 2111-2171 are used for
  7060.       the second through eighth XGAs
  7061. --------V-P21022103--------------------------
  7062. PORT 2102-2103 - XGA ???
  7063. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7064.       the second through eighth XGAs
  7065. --------V-P2104------------------------------
  7066. PORT 2104 - XGA Video Interrupt Enable
  7067. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7068.       the second through eighth XGAs
  7069. --------V-P2105------------------------------
  7070. PORT 2105 - XGA Video Interrupt Status
  7071. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7072.       the second through eighth XGAs
  7073. --------V-P2106------------------------------
  7074. PORT 2106 - XGA Video Virtual Memory Control
  7075. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7076.       the second through eighth XGAs
  7077. --------V-P2107------------------------------
  7078. PORT 2107 - XGA Video Virtual Memory Interrupt Status
  7079. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7080.       the second through eighth XGAs
  7081. --------V-P2108------------------------------
  7082. PORT 2108 - XGA Video Aperture Index
  7083. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7084.       the second through eighth XGAs
  7085. --------V-P2109------------------------------
  7086. PORT 2109 - XGA Video Memory Access Mode
  7087. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7088.       the second through eighth XGAs
  7089. --------V-P210A------------------------------
  7090. PORT 210A - XGA Video Index for Data
  7091. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7092.       the second through eighth XGAs
  7093. --------V-P210B------------------------------
  7094. PORT 210B - XGA Video Data (byte)
  7095. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7096.       the second through eighth XGAs
  7097. --------V-P210C210F--------------------------
  7098. PORT 210C-210F - XGA Video Data (word/dword)
  7099. Note:    this port is for the first XGA in the system; 211x-217x are used for
  7100.       the second through eighth XGAs
  7101.  
  7102. 210C  RW  byte data
  7103. 210Cw RW  word data
  7104. 210Cd RW  dword data
  7105. --------V-P2110211F--------------------------
  7106. PORT 2110-211F - IBM XGA (eXtended Graphics Adapter  8514/A) (second installed)
  7107. Notes:    see individual 210x entries above
  7108.     c't says default instance number is 6, i.e. addresses 216x
  7109. --------V-P2120212F--------------------------
  7110. PORT 2120-212F - IBM XGA (eXtended Graphics Adapter  8514/A) (third installed)
  7111. Notes:    see individual 210x entries above
  7112.     c't says default instance number is 6, i.e. addresses 216x
  7113. --------V-P2130213F--------------------------
  7114. PORT 2130-213F - IBM XGA (eXtended Graphics Adapter  8514/A) (fourth installed)
  7115. Notes:    see individual 210x entries above
  7116.     c't says default instance number is 6, i.e. addresses 216x
  7117. --------V-P2140214F--------------------------
  7118. PORT 2140-214F - IBM XGA (eXtended Graphics Adapter  8514/A) (fifth installed)
  7119. Notes:    see individual 210x entries above
  7120.     c't says default instance number is 6, i.e. addresses 216x
  7121. --------V-P2150215F--------------------------
  7122. PORT 2150-215F - IBM XGA (eXtended Graphics Adapter  8514/A) (sixth installed)
  7123. Notes:    see individual 210x entries above
  7124.     c't says default instance number is 6, i.e. addresses 216x
  7125. --------V-P2160216F--------------------------
  7126. PORT 2160-216F - IBM XGA (eXtended Graphics Adapter 8514/A) (seventh installed)
  7127. Notes:    see individual 210x entries above
  7128.     c't says default instance number is 6, i.e. addresses 216x
  7129. --------V-P2170217F--------------------------
  7130. PORT 2170-217F - IBM XGA (eXtended Graphics Adapter 8514/A) (eighth installed)
  7131. Notes:    see individual 210x entries above
  7132.     c't says default instance number is 6, i.e. addresses 216x
  7133. --------V-P217A217B--------------------------
  7134. PORT 217A-217B - ET4000/W32 CRTC-B/Sprite
  7135. Note:    Alternative addresses may depend on adapter manufacturer,
  7136.       Tseng claims 21xA with x=three address bits, selected by IOD2..0
  7137.       during power up reset.
  7138.  
  7139. 21xA  RW  ET4000/W32(i) CRTC-B/Sprite index register
  7140.     bit7-0: index
  7141. 21xB  RW  ET4000/W32(i) CRTC-B/Sprite data register (see #P226)
  7142.  
  7143. (Table P226)
  7144. Values for ET4000/W32(i) CRTC-B/Sprite data register index:
  7145.  E0h    CRTC-B / Sprite Horizontal Pixel Position, Low
  7146.        bit7-0: horizontal pixel position bit7-0
  7147.  E1h    CRTC-B / Sprite Horizontal Pixel Position, High
  7148.        bit7-4: reserved
  7149.        bit3-0: horizontal pixel position bit11-8
  7150.  E2h    CRTC-B Width Low / Sprite Horizontal Preset
  7151.        bit7-0: width of CRTC-B bit7-0
  7152.        bit5-0: horizontal preset for sprite
  7153.  E3h    CRTC-B Width High / Sprite Horizontal Preset
  7154.        bit7-4: reserved
  7155.        bit3-0: width of CRTC-B bit11-8
  7156.  E4h    CRTC-B / Sprite Vertical Pixel Position, Low
  7157.        bit7-0: vertical pixel position bit7-0
  7158.  E5h    CRTC-B / Sprite Vertical Pixel Position, High
  7159.        bit7-4: reserved
  7160.        bit3-0: vertical pixel position bit11-8
  7161.  E6h    CRTC-B Height Low / Sprite Vertical Preset
  7162.        bit7-0: height of CRTC-B bit7-0
  7163.        bit5-0: vertical preset for sprite
  7164.  E7h    CRTC-B Height High / Sprite Vertical Preset
  7165.        bit7-4: reserved
  7166.        bit3-0: height of CRTC-B bit11-8
  7167.  E8h    CRTC-B / Sprite Starting Address Low
  7168.        pointer to CRTC-B / sprite image in display memory.
  7169.        (maximum size of sprites 64x64x4=1KB with 4 colors:
  7170.         00b=color-0, 01b=color-255, 10b=transparent, 11b=reserved)
  7171.        bit7-0: startaddress bit7-0
  7172.  E9h    CRTC-B / Sprite Starting Address Middle
  7173.        bit7-0: startaddress bit15-8
  7174.  EAh    CRTC-B / Sprite Starting Address High
  7175.        bit7-4: reserved
  7176.        bit3-0: startaddress bit19-16
  7177.  EBh    CRTC-B / Sprite Row Offset Low
  7178.        bit7-0: offset bit7-0
  7179.  ECh    CRTC-B / Sprite Row Offset High
  7180.        bit7-4: revision ID (any ET4000/W32)
  7181.             0000b=W32         0100b-1111b reserved
  7182.             0001b=W32i
  7183.             0010b=W32p
  7184.             0011b=W32i, new
  7185.        bit3-0: offset bit11-8
  7186.  EDh    CRTC-B Pixel Panning
  7187.        bit7-3: reserved
  7188.        bit2-0: CRTC-B pixel panning
  7189.  EEh    CRTC-B Color-Depth-Register / Hardware-Zoom
  7190.        bit7-4: reserved (concerning databook ET4000/W32)
  7191.        bit7-6: vertical zoom (undocumented)
  7192.            (original ET4000/W32 ok, doesn't work properly
  7193.             with some ET4000/W32i)
  7194.             00b=zoomx1       10b=zoomx3
  7195.             01b=zoomx2       11b=zoomx4
  7196.        bit5-4: horizontal zoom (undocumented)
  7197.            (original ET4000/W32 ok, doesn't work properly
  7198.             with some ET4000/W32i)
  7199.             00b=zoomx1       10b=zoomx3
  7200.             01b=zoomx2       11b=zoomx4
  7201.        bit3-0: bit/pixel
  7202.             0000b=1       0011b=8
  7203.             0001b=2       0100b=16
  7204.             0010b=4
  7205.  EFh    CRTC-B / Sprite Control
  7206.        bit7-2: reserved
  7207.        bit1     : 1=2nd CRTC-B image overlays main CRTC-A image
  7208.            0=CRTC-B image at pin SP1/0
  7209.        bit0     : 1=enable CRTC-B
  7210.            0=enable sprite (see F7h)
  7211.  F7h    Image Port Control
  7212.        bit7     : 1=CRTC-B or sprite active
  7213.            0=CRTC-B and sprite not active
  7214.        bit6-0: reserved
  7215. ----------P22E822EF--------------------------
  7216. PORT 22E8-22EF - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  7217.  
  7218. 22E8w -W  CRT control: display control
  7219. ----------P23902393--------------------------
  7220. PORT 2390-2393 - cluster (adapter 4)
  7221. --------V-P23C023CF--------------------------
  7222. PORT 23C0-23CF - Compaq QVision - BitBLT engine
  7223. --------X-P240024FF--------------------------
  7224. PORT 2400-24FF - available for EISA slot 2
  7225. ----------P2465------------------------------
  7226. PORT 2465 - Compaq Contura Aero
  7227. SeeAlso: PORT 1C65h"Compaq",PORT 2065h"Compaq"
  7228.  
  7229. 2465  R-  current battery power level
  7230.         (166 fully-charged, 130 = LowBat1)
  7231. ----------P27C6------------------------------
  7232. PORT 27C6 - Compaq LTE Lite - LCD TIMEOUT
  7233.  
  7234. 27C6  RW  LCD timeout in minutes
  7235. --------X-P280028FF--------------------------
  7236. PORT 2800-28FF - available for EISA slot 2
  7237. --------V-P28E9------------------------------
  7238. PORT 28E9 - 8514/A - WD Escape Functions
  7239. --------V-P2C802C8F--------------------------
  7240. PORT 2C80-2C8F - VESA XGA Video in EISA slot 2
  7241. SeeAlso: PORT 1C80h-1C83h,PORT 1C88h-1C8Fh
  7242. --------X-P2C802C83--------------------------
  7243. PORT 2C80-2C83 - EISA board product ID (board in slot 2)
  7244. SeeAlso: PORT 1C80h-1C83h
  7245. --------X-P2C84------------------------------
  7246. PORT 2C84 - EISA CONFIGURATION FLAGS (board in slot 2)
  7247.  
  7248. 2C84  RW  configuration flags (see #P225)
  7249. --------X-P300030FF--------------------------
  7250. PORT 3000-30FF - available for EISA slot 3
  7251. --------S-P32203227--------------------------
  7252. PORT 3220-3227 - serial port 3, description same as 03F8
  7253. --------S-P3228322F--------------------------
  7254. PORT 3228-322F - serial port 4, description same as 03F8
  7255. --------V-P33C033CF--------------------------
  7256. PORT 33C0-33CF - Compaq QVision - BitBLT engine
  7257. --------X-P340034FF--------------------------
  7258. PORT 3400-34FF - available for EISA slot 3
  7259. --------d-P35103513--------------------------
  7260. PORT 3510-3513 - ESDI primary harddisk controller
  7261. Range:    PORT 3510h-3513h (primary) or PORT 3518h-351Bh (secondary)
  7262. SeeAlso: PORT 3518h,PORT 01F0h-01F7h
  7263.  
  7264. 3510w R-  status word
  7265. 3510w -W  command word
  7266. 3512  R-  basic status
  7267. 3512  -W  basic control
  7268. 3513  R-  interrupt status
  7269. 3513  -W  attention
  7270. --------d-P3518351B--------------------------
  7271. PORT 3518-351B - ESDI secondary harddisk controller
  7272. Range:    PORT 3510h-3513h (primary) or PORT 3518h-351Bh (secondary)
  7273. SeeAlso: PORT 3510h,PORT 01F0h-01F7h
  7274.  
  7275. 3518w R-  status word
  7276. 3518w -W  command word
  7277. 351A  R-  basis status
  7278. 351A  -W  basic control
  7279. 351B  R-  interrupt status
  7280. 351B  -W  attention
  7281. --------d-P3540354F--------------------------
  7282. PORT 3540-354F - IBM SCSI (Small Computer System Interface) adapter
  7283. --------d-P3550355F--------------------------
  7284. PORT 3550-355F - IBM SCSI (Small Computer System Interface) adapter
  7285. --------d-P3560356F--------------------------
  7286. PORT 3560-356F - IBM SCSI (Small Computer System Interface) adapter
  7287. --------d-P3570357F--------------------------
  7288. PORT 3570-357F - IBM SCSI (Small Computer System Interface) adapter
  7289. --------V-P36EE------------------------------
  7290. PORT 36EE - ATI Mach8/Mach32 - FIFO OPTION
  7291. SeeAlso: PORT 6AEEh,PORT 6EEEh,PORT 72EEh,PORT 76EEh,PORT 7AEEh,PORT 8EEEh
  7292.  
  7293. 36EE  -W  FIFO option
  7294.         bit 0: generate wait states if FIFO >= half full
  7295.             (0=only when FIFO full)
  7296.         bit 1: force 8-bit host data I/O
  7297. --------X-P380038FF--------------------------
  7298. PORT 3800-38FF - available for EISA slot 3
  7299. --------X-P3C003CFF--------------------------
  7300. PORT 3C00-3CFF - available for EISA slot 3
  7301. --------V-P3C803C8F--------------------------
  7302. PORT 3C80-3C8F - VESA XGA Video in EISA slot 3
  7303.  
  7304. 3C80-3C83  RW    EISA Video ID
  7305. 3C84  RW    EISA Video expansion board control    
  7306. 3C85  RW    EISA Setup control
  7307. 3C88  RW    EISA Video Programmable Option Select 0
  7308. 3C89-3C8F  RW    EISA Video Programmable Option Select 1-7
  7309.  
  7310. SeeAlso: PORT 1C80h-1C8Fh"XGA",PORT 2C80h-2C8Fh"XGA",PORT 7C80h-7C8Fh"XGA"
  7311. --------X-P3C803C83--------------------------
  7312. PORT 3C80-3C83 - EISA board product ID (board in slot 3)
  7313. SeeAlso: PORT 1C80h-1C83h
  7314. --------X-P3C84------------------------------
  7315. PORT 3C84 - EISA CONFIGURATION FLAGS (board in slot 3)
  7316.  
  7317. 3C84  RW  configuration flags (see #P225)
  7318. --------X-P400040FF--------------------------
  7319. PORT 4000-40FF - available for EISA slot 4
  7320. ----------P42204227--------------------------
  7321. PORT 4220-4227 - serial port, description same as 03F8
  7322. ----------P4228422F--------------------------
  7323. PORT 4228-422F - serial port, description same as 03F8
  7324. ----------P42E042EF--------------------------
  7325. PORT 42E0-42EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  7326.  
  7327. 42E1  RW  GPIB (adapter 2)
  7328. --------V-P42E8------------------------------
  7329. PORT 42E8 - 8514/A and hardware-compatible video cards
  7330. Note:    supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7331.  
  7332. 42E8w R-  Misc. control: Subsystem Status
  7333. 42E8w -W  Misc. control: Subsystem Control (see #P227)
  7334.  
  7335. Bitfields for 8514/A Subsystem Control Register:
  7336. Bit(s)    Description    (Table P227)
  7337.  15-14    GP_RESET
  7338.       W    00 no change
  7339.     01 normal operation
  7340.     02 reset graphics processor and FIFO
  7341.  11   W    enable interrupt when processor idle
  7342.  10   W    enable interrupt on invalid I/O
  7343.  9    W    enable interrupt if inside scissors region
  7344.  8    W    enable vertical blanking interval interrupt
  7345.  6-4 R    monitor ID
  7346.  3    acknowledge idle interrupt (and clear)
  7347.  2    acknowledge invalid I/O interrupt (and clear)
  7348.  1    acknowledge inside-scissors interrupt (and clear)
  7349.  0    acknowledge vertical blanking interrupt (and clear)
  7350. --------V-P42EC------------------------------
  7351. PORT 42EC - ATI Mach64 - ???
  7352. SeeAlso: PORT 42EDh"Mach64"
  7353.  
  7354. 42EC  RW  ???
  7355.     bits 1-0: ???
  7356. --------V-P42ED------------------------------
  7357. PORT 42ED - ATI Mach64 - ???
  7358. SeeAlso: PORT 42ECh"Mach64",PORT 42EFh
  7359.  
  7360. 42ED  R?  ???
  7361. --------V-P42EE------------------------------
  7362. PORT 42EE-42EF - ATI Mach32 - MEMORY BOUNDARY REGISTER
  7363. SeeAlso: PORT 5EEEh"Mach32"
  7364.  
  7365. 42EEw RW  memory boundary
  7366.     bits 3-0: VGA/8514 boundary in 256K units (VGA only below, 8514 above)
  7367.     bit 4: partition enable: VGA and 8514 drawing engines may only write
  7368.           within their respective partitions
  7369.     bits 15-5: reserved
  7370. --------V-P42EF------------------------------
  7371. PORT 42EF - ATI Mach64 - ???
  7372. SeeAlso: PORT 42EDh"Mach64"
  7373.  
  7374. 42EF  R?  ???
  7375. --------X-P440044FF--------------------------
  7376. PORT 4400-44FF - available for EISA slot 4
  7377. --------V-P46E8------------------------------
  7378. PORT 46E8 - VGA video adapter enable
  7379. Note:    IBM uses this port for adapter-card VGAs only, and PORT 03C3h for
  7380.       motherboard VGA only (see 03C3 for details)
  7381. SeeAlso: PORT 03C3h,PORT 46E8h"8514/A"
  7382.  
  7383. 46E8  rW  Misc. control: enable flags / select ROM page (8514/A) (see #P228)
  7384.  
  7385. Bitfields for VGA miscellaneous control register:
  7386. Bit(s)    Description    (Table P228)
  7387.  7-5    unused or vendor-specific
  7388.  4    setup for POS registers (MCA)
  7389.  3    enable video I/O ports and video buffer
  7390.  2-0    unused or vendor-specific
  7391. --------V-P46E8------------------------------
  7392. PORT 46E8 - 8514/A and compatible video cards (e.g. ATI Graphics Ultra)
  7393. Note:    this register is readable on the C&T 82c480 chipset
  7394. SeeAlso: PORT 46E8h"VGA"
  7395.  
  7396. 46E8w -W  ROM page select (see #P229)
  7397.  
  7398. Bitfields for 8514/A ROM page select register:
  7399. Bit(s)    Description    (Table P229)
  7400.  2-0    select which 4K page of 32K ROM to map at segment C700h
  7401.  3    enable VGA
  7402.  4    select VGA setup mode
  7403.  15-5    reserved (0)
  7404. --------V-P46EE------------------------------
  7405. PORT 46EE - ATI Mach32 - ???
  7406.  
  7407. 46EEw RW  ???
  7408. --------V-P46EF------------------------------
  7409. PORT 46EF - ATI Mach64 - ???
  7410. Note:    the Mach64 BIOS reads the value of this port and multiplies it by 100
  7411. SeeAlso: PORT 66ECh"Mach64"
  7412. --------X-P480048FF--------------------------
  7413. PORT 4800-48FF - available for EISA slot 4
  7414. --------V-P4AE84AEF--------------------------
  7415. PORT 4AE8-4AEF - 8514/A and compatible video cards - CRT CONTROL
  7416. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7417.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7418.  
  7419. 4AE8w -W  CRT control: Advanced function control (see also #P230)
  7420.     (02h = VGA mode, 03h = 480-line mode, 07h = 768-line mode)
  7421.  
  7422. Bitfields for S3 8514/A-compatible Advanced Function Control register:
  7423. Bit(s)    Description    (Table P230)
  7424.  0    enable enhanced functions
  7425.  1    reserved (1)
  7426.  2    (911-928) screen size (1 = 800x600 or 1024x768, 0=640x480)
  7427.  4    (928+) enable linear addressing
  7428.  5    (928+) enable memory-mapped I/O
  7429.  6    (928 only) enable Write Posting
  7430. --------V-P4AEE------------------------------
  7431. PORT 4AEE - ATI Mach32 - ???
  7432.  
  7433. 4AEEw RW  ???
  7434. --------X-P4C004CFF--------------------------
  7435. PORT 4C00-4CFF - available for EISA slot 4
  7436. --------X-P4C804C83--------------------------
  7437. PORT 4C80-4C83    EISA board product ID (board in slot 4)
  7438. SeeAlso: PORT 1C80h-1C83h
  7439. --------V-P4C804C8F--------------------------
  7440. PORT 4C80-4C8F - VESA XGA Video in EISA slot 4 (see 3C80-3C8F)
  7441. SeeAlso: PORT 1C80h-1C8Fh,PORT 6C80h-6C8Fh
  7442. --------X-P4C84------------------------------
  7443. PORT 4C84 - EISA CONFIGURATION FLAGS (board in slot 4)
  7444.  
  7445. 4C84  RW  configuration flags (see #P225)
  7446. --------X-P500050FF--------------------------
  7447. PORT 5000-50FF - available for EISA slot 5
  7448. --------S-P52205227--------------------------
  7449. PORT 5220-5227 - serial port, description same as 03F8
  7450. --------S-P5228522F--------------------------
  7451. PORT 5228-522F - serial port, description same as 03F8
  7452. --------V-P52E852E9--------------------------
  7453. PORT 52E8-52E9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 0
  7454. Note:    the 82c480 is an 8514/A-compatible video chipset
  7455. SeeAlso: PORT 56E8h"C&T",PORT 5AE8h"C&T",PORT 5EE8h"C&T"
  7456.  
  7457. 52E8w RW  Extended Configuration Register 0
  7458. --------V-P52EE52EF--------------------------
  7459. PORT 52EE-52EF - ATI Mach32 - SCRATCH REGISTER 0 (USED FOR ROM LOCATION)
  7460. Note:    ATI video BIOS sets this port according to the segment address of the
  7461.       BIOS if >= C000h, as ((seg-C000h) shr 7)
  7462. SeeAlso: PORT 56EEh"Mach32"
  7463.  
  7464. 52EEw RW  scratch register 0: Video ROM address
  7465. --------X-P540054FF--------------------------
  7466. PORT 5400-54FF - available for EISA slot 5
  7467. --------V-P56E856E9--------------------------
  7468. PORT 56E8-56E9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 1
  7469. Note:    the 82c480 is an 8514/A-compatible video chipset
  7470. SeeAlso: PORT 52E8h"C&T",PORT 5AE8h"C&T",PORT 5EE8h"C&T"
  7471.  
  7472. 56E8w RW  Extended Configuration Register 1
  7473. --------V-P56EE56EF--------------------------
  7474. PORT 56EE-56EF - ATI Mach32 - SCRATCH REGISTER 1
  7475. SeeAlso: PORT 52EEh"Mach32"
  7476.  
  7477. 56EEw RW  scratchpad
  7478. --------X-P580058FF--------------------------
  7479. PORT 5800-58FF - available for EISA slot 5
  7480. --------V-P5AE85AE9--------------------------
  7481. PORT 5AE8-5AE9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 2
  7482. Note:    the 82c480 is an 8514/A-compatible video chipset
  7483. SeeAlso: PORT 52E8h"C&T",PORT 56E8h"C&T",PORT 5EE8h"C&T"
  7484.  
  7485. 5AE8w RW  Extended Configuration Register 2
  7486. --------V-P5AEE------------------------------
  7487. PORT 5AEE - ATI Mach32 - ???
  7488.  
  7489. 5AEE  RW  ???
  7490. --------X-P5C005CFF--------------------------
  7491. PORT 5C00-5CFF - available for EISA slot 5
  7492. --------V-P5C805C8F--------------------------
  7493. PORT 5C80-5C8F - VESA XGA Video in EISA slot 5
  7494. SeeAlso: PORT 2C80h-2C8Fh,PORT 4C80h-4C8Fh,PORT 6C80h-6C8Fh
  7495.  
  7496. 5C80d RW  EISA Video ID
  7497. 5C84  RW  EISA Video expansion board control    
  7498. 5C85  RW  EISA Setup control
  7499. 5C88  RW  EISA Video Programmable Option Select 0
  7500. 5C89  RW  EISA Video Programmable Option Select 1
  7501. 5C8A  RW  EISA Video Programmable Option Select 2
  7502. 5C8B  RW  EISA Video Programmable Option Select 3
  7503. 5C8C  RW  EISA Video Programmable Option Select 4
  7504. 5C8D  RW  EISA Video Programmable Option Select 5
  7505. 5C8E  RW  EISA Video Programmable Option Select 6
  7506. 5C8F  RW  EISA Video Programmable Option Select 7
  7507. --------X-P5C805C83--------------------------
  7508. PORT 5C80-5C83    EISA board product ID (board in slot 5)
  7509. SeeAlso: PORT 1C80h-1C83h
  7510. --------X-P5C84------------------------------
  7511. PORT 5C84 - EISA CONFIGURATION FLAGS (board in slot 5)
  7512.  
  7513. 5C84  RW  configuration flags (see #P225)
  7514. --------V-P5EE85EE9--------------------------
  7515. PORT 5EE8-5EE9 - C&T 82c480 - EXTENDED CONFIGURATION REGISTER 3
  7516. Note:    the 82c480 is an 8514/A-compatible video chipset
  7517. SeeAlso: PORT 52E8h"C&T",PORT 56E8h"C&T",PORT 5AE8h"C&T"
  7518.  
  7519. 5EE8w RW  Extended Configuration Register 3
  7520. ---------------------------------------------
  7521. PORT 5EEE - ATI Mach32 - MEMORY APERTURE CONFIGURATION REGISTER
  7522. SeeAlso: PORT 42EEh"Mach32"
  7523.  
  7524. 5EEEw RW  Memory Aperture Configuration (see #P240)
  7525.  
  7526. Bitfields for ATI Mach32 Memory Aperture Configuration Register:
  7527. Bit(s)    Description    (Table P240)
  7528.  1-0    direct memory interface mapping
  7529.     00 disabled
  7530.     01 1M aperture (not on PCI)
  7531.     10 4M aperture
  7532.     11 reserved
  7533.  3-2    1M page select (not on PCI)
  7534.     00 page 0
  7535.     01 page 1
  7536.     10 page 2
  7537.     11 page 3
  7538.  11-8    (ISA) memory aperture location, 0-15 MB
  7539.  13-8    (EISA) memory aperture location, 0-63 MB
  7540.  14-8    (VLB) memory aperture location, 0-127 MB [*]
  7541.  15-4    (PCI) memory aperture location, 0-4095 MB
  7542.  13-8    (MCA 16-bit) memory aperture location, 0-63 MB
  7543.  14-8    (MCA 32-bit) memory aperture location, 0-127 MB
  7544. Note:    [*] if PORT 16EEh bit 3 is set and PORT FAEEh is non-zero, bits 15-4
  7545.       are used to specify an address from 0-4095 MB
  7546. --------X-P600060FF--------------------------
  7547. PORT 6000-60FF - available for EISA slot 6
  7548. ----------P62E062EF--------------------------
  7549. PORT 62E0-62EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  7550.  
  7551. 62E1  RW  GPIB (adapter 3)
  7552. --------V-P63C063CF--------------------------
  7553. PORT 63C0-63CF - Compaq QVision - BitBLT engine
  7554. --------X-P640064FF--------------------------
  7555. PORT 6400-64FF - available for EISA slot 6
  7556. --------V-P66EC------------------------------
  7557. PORT 66EC - ATI Mach64 - ???
  7558. SeeAlso: PORT 6AECh"Mach64"
  7559. --------X-P680068FF--------------------------
  7560. PORT 6800-68FF - available for EISA slot 6
  7561. --------V-P6AEC------------------------------
  7562. PORT 6AEC-6AED - ATI Mach64 - ???
  7563. SeeAlso: PORT 66ECh"Mach64"
  7564. --------V-P6AEE------------------------------
  7565. PORT 6AEE - ATI Mach8/Mach32 - MAXIMUM WAIT STATES
  7566. SeeAlso: PORT 36EEh,PORT 6EEEh,PORT 76EEh,PORT 7AEEh,PORT 8EEEh
  7567.  
  7568. 6AEE  RW  maximum wait states (see #P231)
  7569.  
  7570. Bitfields for ATI Mach8/Mach32 wait state configuration:
  7571. Bit(s)    Description    (Table P231)
  7572.  10    leave alone ("PASSTHROUGH_OVERRIDE")
  7573.  9    enable for 16-bit I/O
  7574.  8    0=horizontal degree-mode line draws
  7575. --------X-P6C006CFF--------------------------
  7576. PORT 6C00-6CFF - available for EISA slot 6
  7577. --------X-P6C806C83--------------------------
  7578. PORT 6C80-6C83 - EISA board product ID (board in slot 6)
  7579. SeeAlso: PORT 1C80h-1C83h
  7580. --------V-P6C806C8F--------------------------
  7581. PORT 6C80-6C8F - VESA XGA Video in EISA slot 1
  7582. SeeAlso: PORT 1C80h-1C8Fh"XGA",PORT 2C80h-2C8Fh"XGA",PORT 5C80h-5C8Fh"XGA"
  7583.  
  7584. 6C80d RW  EISA Video ID (see PORT 1C80h-1C83h)
  7585. 6C84  RW  EISA Video expansion board control    
  7586. 6C85  RW  EISA Setup control
  7587. 6C88  RW  EISA Video Programmable Option Select 0
  7588. 6C89  RW  EISA Video Programmable Option Select 1
  7589. 6C8A  RW  EISA Video Programmable Option Select 2
  7590. 6C8B  RW  EISA Video Programmable Option Select 3
  7591. 6C8C  RW  EISA Video Programmable Option Select 4
  7592. 6C8D  RW  EISA Video Programmable Option Select 5
  7593. 6C8E  RW  EISA Video Programmable Option Select 6
  7594. 6C8F  RW  EISA Video Programmable Option Select 7
  7595. --------X-P6C84------------------------------
  7596. PORT 6C84 - EISA CONFIGURATION FLAGS (board in slot 6)
  7597.  
  7598. 6C84  RW  configuration flags (see #P225)
  7599. --------V-P6EEC------------------------------
  7600. PORT 6EEC - ATI Mach64 - ???
  7601. SeeAlso: PORT 6AECh"Mach64"
  7602. --------V-P6EEE------------------------------
  7603. PORT 6EEE - ATI Mach8/Mach32 - ENGINE VIDEO BUFFER OFFSET LOW
  7604. SeeAlso: PORT 72EEh
  7605.  
  7606. 6AEEw -W  low 16 bits of video buffer starting offset
  7607. --------X-P700070FF--------------------------
  7608. PORT 7000-70FF - available for EISA slot 7
  7609. --------V-P72EC------------------------------
  7610. PORT 72EC - ATI Mach64 - ???
  7611. SeeAlso: PORT 66ECh"Mach64",PORT 72EFh"Mach64"
  7612. --------V-P72EE------------------------------
  7613. PORT 72EE - ATI Mach8/Mach32 - ENGINE VIDEO BUFFER OFFSET HIGH
  7614. SeeAlso: PORT 6EEEh
  7615.  
  7616. 72EE  -W  high bits of video buffer starting offset
  7617.         bits 1-0 for Mach-8
  7618.         bits 3-0 for Mach-32
  7619. --------V-P72EE------------------------------
  7620. PORT 72EE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (LEFT)
  7621. SeeAlso: PORT 76EEh"BOUNDS",PORT 7AEEh"BOUNDS",PORT 7EEEh"BOUNDS"
  7622.  
  7623. 72EEw R-  left edge of bounding box for points written via Line Draw register
  7624. --------V-P72EF------------------------------
  7625. PORT 72EF - ATI Mach64 - ???
  7626. SeeAlso: PORT 66ECh"Mach64",PORT 72ECh"Mach64"
  7627. --------X-P740074FF--------------------------
  7628. PORT 7400-74FF - available for EISA slot 7
  7629. --------V-P76EE------------------------------
  7630. PORT 76EE - ATI Mach8/Mach32 - ENGINE DISPLAY PITCH
  7631. SeeAlso: PORT 6AEEh,PORT 7AEEh
  7632.  
  7633. 76EE  -W  display pitch
  7634. --------V-P76EE------------------------------
  7635. PORT 76EE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (TOP)
  7636. SeeAlso: PORT 72EEh"BOUNDS",PORT 7AEEh"BOUNDS",PORT 7EEEh"BOUNDS"
  7637.  
  7638. 76EEw R-  top edge of bounding box for points written via Line Draw register
  7639. --------X-P780078FF--------------------------
  7640. PORT 7800-78FF - available for EISA slot 7
  7641. --------V-P7AEE------------------------------
  7642. PORT 7AEE - ATI Mach8/Mach32 - EXTENDED GRAPHICS ENGINE CONGIFURATION
  7643. SeeAlso: PORT 8EEEh
  7644.  
  7645. 7AEEw -W  extended graphics engine configuration (see #P232)
  7646.  
  7647. Bitfields for Mach8/Mach32 extended graphics engine configuration:
  7648. Bit(s)    Description    (Table P232)
  7649.  15    drawing pixel size to be written next (68800-6 only)
  7650.  14    enable 8-bit DAC (Mach-32 only)
  7651.  13-12    DAC address inputs RS(3:2) control (Mach-32 only)
  7652.  11    display pixel size to be written next (68800-6 only)
  7653.  10    24-bit color order (Mach-32 only)
  7654.     0 = RGB
  7655.     1 = BGR
  7656.  9    24-bit color configuration: pixels use 4 bytes instead of three
  7657.  8    DAC processes four pixels in parallel (Mach-32 only)
  7658.  7-6    16-bits-per-color word format (Mach-32 only)
  7659.     00 RGB(5,5,5)
  7660.     01 RGB(5,6,5)
  7661.     10 RGB(6,5,5)
  7662.     11 RGB(6,6,4)
  7663.  5-4    number of bits per pixel (Mach-32 only)
  7664.     00 four
  7665.     01 eight
  7666.     10 sixteen
  7667.     11 twenty-four
  7668.  3    report monitor alias instead of actual monitor
  7669.  2-0    alternate monitor ID (alias)
  7670. --------V-P7AEE------------------------------
  7671. PORT 7AEE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (RIGHT)
  7672. SeeAlso: PORT 72EEh"BOUNDS",PORT 76EEh"BOUNDS",PORT 7EEEh"BOUNDS"
  7673.  
  7674. 7AEEw R-  right edge of bounding box for points written via Line Draw register
  7675. --------X-P7C007CFF--------------------------
  7676. PORT 7C00-7CFF - available for EISA slot 7
  7677. --------X-P7C807C83--------------------------
  7678. PORT 7C80-7C83 - EISA board product ID (board in slot 7)
  7679. SeeAlso: PORT 1C80h-1C83h
  7680. --------V-P7C807C8F--------------------------
  7681. PORT 7C80-7C8F - VESA XGA Video in EISA slot 7
  7682. SeeAlso: PORT 1C80h-1C8Fh,PORT 6C80h-6C8Fh
  7683.  
  7684. 7C80-7C83  RW    EISA Video ID
  7685. 7C84  RW    EISA Video expansion board control    
  7686. 7C85  RW    EISA Setup control
  7687. 7C88  RW    EISA Video Programmable Option Select 0
  7688. 7C89-7C8F  RW    EISA Video Programmable Option Select 1-7
  7689. --------X-P7C84------------------------------
  7690. PORT 7C84 - EISA CONFIGURATION FLAGS (board in slot 7)
  7691.  
  7692. 7C84  RW  configuration flags (see #P225)
  7693. --------V-P7EEE------------------------------
  7694. PORT 7EEE - ATI Mach8/Mach32 - BOUNDS ACCUMULATOR (RIGHT)
  7695. SeeAlso: PORT 72EEh"BOUNDS",PORT 76EEh"BOUNDS",PORT 7AEEh"BOUNDS"
  7696.  
  7697. 7EEEw R-  right edge of bounding box for points written via Line Draw register
  7698. --------X-P800080FF--------------------------
  7699. PORT 8000-80FF - available for EISA slot 8
  7700. ----------P82E082EF--------------------------
  7701. PORT 82E0-82EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  7702.  
  7703. 82E1  RW  GPIB (adapter 4)
  7704. --------V-P82E882EF--------------------------
  7705. PORT 82E8-82EF - 8514/A and compatible video cards - DRAWING CONTROL
  7706. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7707.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7708. SeeAlso: PORT 86E8h
  7709.  
  7710. 82E8w -W  drawing control: current Y position
  7711. --------S-P82F882FF--------------------------
  7712. PORT 82F8-82FF - serial port, description same as 03F8
  7713. --------V-P83C083CF--------------------------
  7714. PORT 83C0-83CF - Compaq QVision - Line Draw Engine
  7715. --------V-P83C4------------------------------
  7716. PORT 83C4 - Compaq Qvision EISA - Virtual Controller Select
  7717. --------V-P83C683C9--------------------------
  7718. PORT 83C6-83C9 - Compaq Qvision EISA - DAC color registers
  7719. --------S-P83F883FF--------------------------
  7720. PORT 83F8-83FF - serial port, description same as 03F8
  7721. --------X-P840084FF--------------------------
  7722. PORT 8400-84FF - available for EISA slot 8
  7723. --------V-P86E886EF--------------------------
  7724. PORT 86E8-86EF - 8514/A and compatible video cards - DRAWING CONTROL
  7725. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7726.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7727. SeeAlso: PORT 82E8h,PORT 8AE8h
  7728.  
  7729. 86E8w -W  drawing control: current X position
  7730. --------X-P880088FF--------------------------
  7731. PORT 8800-88FF - available for EISA slot 8
  7732. --------V-P8AE88AEF--------------------------
  7733. PORT 8AE8-8AEF - 8514/A and compatible video cards - DRAWING CONTROL
  7734. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7735.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7736. SeeAlso: PORT 82E8h,PORT 86E8h
  7737.  
  7738. 8AE8w -W  drawing control: destination Y position / axial step constant
  7739. Note:    this port may be read on S3 chipsets
  7740. --------X-P8C008CFF--------------------------
  7741. PORT 8C00-8CFF - available for EISA slot 8
  7742. --------X-P8C808C83--------------------------
  7743. PORT 8C80-8C83 - EISA board product ID (board in slot 8)
  7744. SeeAlso: PORT 1C80h-1C83h
  7745. --------X-P8C84------------------------------
  7746. PORT 8C84 - EISA CONFIGURATION FLAGS (board in slot 8)
  7747.  
  7748. 8C84  RW  configuration flags (see #P225)
  7749. --------V-P8EE88EEF--------------------------
  7750. PORT 8EE8-8EEF - 8514/A and compatible video cards - DRAWING CONTROL
  7751. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7752.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7753. SeeAlso: PORT DAEEh"Mach32"
  7754.  
  7755. 8EE8w -W  drawing control: destination X position / axial step constant
  7756. --------V-P8EEE------------------------------
  7757. PORT 8EEE - ATI Mach32 - READ EXTENDED GRAPHICS CONFIGURATION
  7758. SeeAlso: PORT 72EEh
  7759.  
  7760. 8EEE  R-  read extended graphics configuration (see #P232)  
  7761. --------X-P900090FF--------------------------
  7762. PORT 9000-90FF - available for EISA slot 9
  7763. --------V-P92E892EF--------------------------
  7764. PORT 92E8-92EF - 8514/A and compatible video cards - DRAWING CONTROL
  7765. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7766.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7767.  
  7768. 92E8w -W  drawing control: Bresenham error term
  7769. --------X-P940094FF--------------------------
  7770. PORT 9400-94FF - available for EISA slot 9
  7771. --------V-P96E896EF--------------------------
  7772. PORT 96E8-96EF - 8514/A and hardware-compatible video cards - DRAWING CONTROL
  7773. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7774.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7775.  
  7776. 96E8w R-  enter WD Enhanced Mode
  7777. 96E8w -W  drawing control: major axis pixel count
  7778. --------X-P980098FF--------------------------
  7779. PORT 9800-98FF - available for EISA slot 9
  7780. --------V-P9AE89AE9--------------------------
  7781. PORT 9AE8-9AE9 - 8514/A Graphics Processor Status
  7782. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7783.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7784.  
  7785. 9AE8w R-  drawing control: graphic processor status (see #P233)
  7786. 9AE8w -W  drawing control: command register (see #P234)
  7787.  
  7788. Bitfields for 8514/A graphic processor status:
  7789. Bit(s)    Description    (Table P233)
  7790.  15-10    reserved
  7791.  9    hardware busy
  7792.  8    data ready
  7793.  7-0    status of queue (0=empty, 1=filled)
  7794.     (each bit represents a position in queue)
  7795. SeeAlso: #P234
  7796.  
  7797. Bitfields for 8514/A command register :
  7798. Bit(s)    Description    (Table P234)
  7799.  15-13    command
  7800.     000 = no operation
  7801.     001 = draw vector
  7802.     010 = fast rectangle fill
  7803.     011 = rectangle fill vertical #1
  7804.     100 = rectangle fill vertical #2 (4 pixels)
  7805.     101 = draw vector, 1 pixel/scanline
  7806.     110 = copy rectangle
  7807.     111 = reserved
  7808.  12    byte sequence (0=high byte first, 1=low byte first)
  7809.  11-10    reserved
  7810.  9    enable 16-bit write access (16BIT)
  7811.  8    0=use 8514/A data, 1=pixel data trans reg (PCDATA)
  7812.  7    0=draw vector above, 1=draw vector below (INC_Y)
  7813.  6    0=x is maj. axis, 1=y is maj. axis (YMAJAXIS)
  7814.  5    0=draw vector left, 1=draw vector right (INC_X)
  7815.  4    0=move only, 1=draw and move (DRAW)
  7816.  3    0=Bresenham line, 1=direct vector (LINETYPE)
  7817.  2    0=draw last pixel, 1=don't draw last pixel (LASTPIX)
  7818.  1    0=single pixel, 1=4pixel (PLANAR)
  7819.  0    0=read data, 1=write data (RD/WR)
  7820. SeeAlso: #P233
  7821. --------V-P9AEE------------------------------
  7822. PORT 9AEE - ATI Mach8/Mach32 - LINEDRAW INDEX REGISTER
  7823. SeeAlso: PORT FEEEh
  7824.  
  7825. 9AEE  -W  linedraw index register (specifies interpretation of PORT FEEEh)
  7826.       (see #P235)
  7827.  
  7828. (Table P235)
  7829. Values for ATI Mach8/Mach32 Linedraw Index Register:
  7830.  00h    set current X
  7831.  01h    set current Y
  7832.  02h    set Line End X
  7833.  03h    set Line End Y, draw line, and reset register to 02h
  7834.  04h    set current X (perform moves instead of draws)
  7835.  05h    set current Y and reset register to 04h
  7836. --------X-P9C009CFF--------------------------
  7837. PORT 9C00-9CFF - available for EISA slot 9
  7838. --------X-P9C809C83--------------------------
  7839. PORT 9C80-9C83 - EISA board product ID (board in slot 9)
  7840. SeeAlso: PORT 1C80h-1C83h
  7841. --------X-P9C84------------------------------
  7842. PORT 9C84 - EISA CONFIGURATION FLAGS (board in slot 9)
  7843.  
  7844. 9C84  RW  configuration flags (see #P225)
  7845. --------V-P9EE8------------------------------
  7846. PORT 9EE8 - 8514/A and compatible video cards - SHORT STROKE
  7847. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7848.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7849.  
  7850. 9EE8w -W  short line vector transfer
  7851. --------S-PA220------------------------------
  7852. PORT A220 - soundblaster support in AMI Hi-Flex BIOS  ????
  7853. ----------PA2E0A2EF--------------------------
  7854. PORT A2E0-A2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  7855.  
  7856. A2E1  RW  GPIB (adapter 5)
  7857. --------V-PA2E8A2EF--------------------------
  7858. PORT A2E8-A2EF - 8514/A and compatible video cards - DRAWING CONTROL
  7859. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7860.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7861. SeeAlso: PORT A6E8h
  7862.  
  7863. A2E8w -W  drawing control: background color
  7864. --------V-PA2EEA2EF--------------------------
  7865. PORT A2EE-A2EF - ATI Mach8/Mach32 - LINE DRAW OPTIONS
  7866. SeeAlso: PORT 8EEEh,PORT CEEEh
  7867.  
  7868. A2EEw RW  line drawing options (see #P236)
  7869.  
  7870. Bitfields for ATI Mach8/Mach32 line drawing options:
  7871. Bit(s)    Description    (Table P236)
  7872.  10-9    clipping mode
  7873.     00 disable clip exception
  7874.     01 stroked plain lines
  7875.     10 polygon boundary lines
  7876.     11 patterned lines
  7877.  8    reset all Bounds Accumulator registers
  7878.  7-5    OCTANT: direction for BitBlts or lines
  7879.  3    direction specification
  7880.     0 = Bresenham/Octant
  7881.         bit 7: increment Y
  7882.         bit 6: Y is major axis instead of X
  7883.         bit 5: increment X
  7884.     1 = line-length and degrees
  7885.         OCTANT field species N*45 degrees
  7886.  2    do NOT draw last pixel of a line
  7887.  1    polyline draw
  7888. --------V-PA6E8A6EF--------------------------
  7889. PORT A6E8-A6EF - 8514/A and compatible video cards - DRAWING CONTROL
  7890. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7891.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7892. SeeAlso: PORT A2E8h
  7893.  
  7894. A6E8w -W  drawing control: foreground color
  7895. --------V-PAAE8AAEF--------------------------
  7896. PORT AAE8-AAEF - 8514/A and compatible video cards - WRITE MASK
  7897. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7898.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7899. SeeAlso: PORT AEE8h
  7900.  
  7901. AAE8w -W  drawing control: write mask
  7902. --------V-PAEE8AEEF--------------------------
  7903. PORT AEE8-AEEF - 8514/A and compatible video cards - READ MASK
  7904. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7905.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7906. SeeAlso: PORT AAE8h
  7907.  
  7908. AEE8w -W  drawing control: read mask
  7909. --------V-PAFFF------------------------------
  7910. PORT AFFF - VIDEO REGISTER
  7911.  
  7912. AFFF  RW  plane 0-3 system latch (video register)
  7913. --------S-PB220B227--------------------------
  7914. PORT B220-B227 - serial port, description same as 03F8
  7915. --------S-PB228B22F--------------------------
  7916. PORT B228-B22F - serial port, description same as 03F8
  7917. --------V-PB2E8B2EF--------------------------
  7918. PORT B2E8-B2EF - 8514/A and compatible video cards - COLOR COMPARE
  7919. Notes:    supported by ATI Graphics Ultra
  7920.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7921.  
  7922. B2E8w -W  drawing control: color compare
  7923. --------V-PB2EE------------------------------
  7924. PORT B2EE - ATI Mach32 - ???
  7925.  
  7926. B2EEw RW  ???
  7927. --------V-PB6E8B6EF--------------------------
  7928. PORT B6E8-B6EF - 8514/A and compatible video cards - BACKGROUND MIX
  7929. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7930.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7931. SeeAlso: PORT BAE8h
  7932.  
  7933. B6E8w -W  drawing control: background mix
  7934. --------V-PB6EE------------------------------
  7935. PORT B6EE - ATI Mach32 - ???
  7936.  
  7937. B6EEw RW  ???
  7938. --------V-PBAE8BAEF--------------------------
  7939. PORT BAE8-BAEF - 8514/A and compatible video cards - FOREGROUND MIX
  7940. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7941.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7942. SeeAlso: PORT B6E8h
  7943.  
  7944. BAE8w -W  drawing control: foreground mix
  7945. --------V-PBAEE------------------------------
  7946. PORT BAEE - ATI Mach32 - ???
  7947.  
  7948. BAEEw RW  ???
  7949. --------V-PBEE8BEEF--------------------------
  7950. PORT BEE8-BEEF - 8514/A and compatible video cards - MULTIFUNCTION CONTROL
  7951. Notes:    supported by ATI Mach8 and Mach32 chipsets
  7952.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  7953.  
  7954. BEE8w -W  drawing control: multi-function control
  7955.       (index in bits 15-12, data in bits 11-0) (see #P237)
  7956. BEE8w R-  (S3) value of register specified by current value of multi-function
  7957.       index 0Fh
  7958.  
  7959. (Table P237)
  7960. Values for index into 8514/A multi-function drawing control registers:
  7961.  00h RW minor axis pixel count
  7962.  01h RW top scissors
  7963.  02h RW left scissors
  7964.  03h RW bottom scissors
  7965.  04h RW right scissors
  7966.  05h -W memory control register
  7967.  08h -W fixed pattern low
  7968.  09h -W fixed pattern high
  7969.  0Ah RW data manipulation control
  7970. ---S3 chipsets---
  7971.  0Dh RW (S3 864/964) miscellaneous 2
  7972.  0Eh RW (S3 801+) miscellaneous
  7973.  0Fh -W (S3 801/805/928) read register select (see #P238)
  7974.  
  7975. (Table P238)
  7976. Values for S3 multifunction read select register:
  7977.  00h    PORT BEE8h register 00h 
  7978.  01h    PORT BEE8h register 01h 
  7979.  02h    PORT BEE8h register 02h 
  7980.  03h    PORT BEE8h register 03h 
  7981.  04h    PORT BEE8h register 04h 
  7982.  05h    PORT BEE8h register 0Ah 
  7983.  06h    PORT BEE8h register 0Eh 
  7984.  07h    PORT 9AE8h (bits 11-0 only)
  7985. ---S3 864/964 only---
  7986.  08h    PORT 42E8h (bits 11-0 only)
  7987.  09h    PORT 46E8h
  7988.  0Ah    PORT BEE8h register 0Dh
  7989. SeeAlso: #P237
  7990. ----------PC000C004--------------------------
  7991. PORT C000-C004 - Intel Pentium mboard ("Neptune" chipset)
  7992. SeeAlso: PORT C050h,PORT C200h-C204h,INT 15/AX=DA8Ch,#0628 at INT 1A/AX=B10Ah
  7993. --------X-PC000CFFF--------------------------
  7994. PORT C000-CFFF - PCI Configuration Mechanism 2 - CONFIGURATION SPACE
  7995. Note:    to access the configuration space, write the target bus number to
  7996.       PORT 0CFAh, then write to the Configuration Space Enable register
  7997.       (PORT 03F8h), and finally read or write the appropriate I/O
  7998.       port(s) in the range C000h to CFFFh (where Cxrrh accesses location
  7999.       'rr' in physical device 'x's configuration data)
  8000. SeeAlso: PORT 0CF8h"Mechanism 2",PORT 0CFAh"Mechanism 2"
  8001. SeeAlso: #0628 at INT 1A/AX=B10Ah
  8002. --------X-PC008------------------------------
  8003. PORT C008 - Intel Pentium mboard ("Neptune" chipset) - CHIPSET REVISION
  8004. Desc:    the host/PCI bridge revision ID register is visible on this port when
  8005.       the PCI configuration space has been opened via ports 0CF8h and 0CFAh
  8006. SeeAlso: PORT 0CF8h,PORT 0CFAh,PORT C000h-C004h,PORT C050h,PORT C065h
  8007. --------X-PC050------------------------------
  8008. PORT C050 - Intel Pentium mboard ("Neptune" chipset)
  8009. SeeAlso: PORT C052h
  8010.  
  8011. C050  RW  ???
  8012.       bit 0: ???
  8013.       bit 1: ???
  8014.       bit 2: enable secondary (L2) cache
  8015. --------X-PC051------------------------------
  8016. PORT C051 - Intel Pentium mboard ("Neptune" chipset) - DETURBO SPEED CONTROL
  8017. SeeAlso: PORT 0CF9h
  8018.  
  8019. C051  RW  slowdown factor when in de-turbo mode
  8020. --------X-PC052------------------------------
  8021. PORT C052 - Intel Pentium mboard ("Neptune" chipset)
  8022. SeeAlso: PORT 0CF8h,PORT 0CFAh,PORT C050h,PORT C059h,PORT C065h
  8023.  
  8024. C052  RW  bit 0: ???
  8025.       bit 1: ???
  8026.       bits 6,7: ???
  8027. --------X-PC054------------------------------
  8028. PORT C054 - Intel Pentium mboard ("Neptune" chipset)
  8029. SeeAlso: PORT 0CF8h,PORT 0CFAh
  8030.  
  8031. C054  RW  bit 2: ??? (set immediately upon booting)
  8032. --------X-PC059------------------------------
  8033. PORT C059 - Intel Pentium mboard ("Neptune" chipset)
  8034. --------X-PC065------------------------------
  8035. PORT C065 - Intel "Neptune" chipset - MEMORY SIZE???
  8036. SeeAlso: INT 15/AX=DA88h
  8037.  
  8038. C065  R      system memory in MB??? (10h on a 16MB machine)
  8039. --------d-PC100C1FF--------------------------
  8040. PORT C100-C1FF - Intel Pentium mboard - PCTech RZ1000 EIDE controller
  8041. Desc:    the PCI configuration registers for the EIDE controller are visible
  8042.       on these ports when the PCI configuration space has been opened via
  8043.       ports 0CF8h and 0CFAh
  8044. SeeAlso: PORT 03F0h"RZ1000",PORT 0CF8h,#0628 at INT 1A/AX=B10Ah
  8045. ----------PC200C204--------------------------
  8046. PORT C200-C204 - Intel Pentium mboard ("Neptune" chipset)
  8047. Desc:    the PCI configuration registers for the motherboard chipset are visible
  8048.       on these ports when the PCI configuration space has been opened via
  8049.       ports 0CF8h and 0CFAh
  8050. SeeAlso: #0628 at INT 1A/AX=B10Ah
  8051. --------S-PC220C227--------------------------
  8052. PORT C220-C227 - serial port, description same as 03F8
  8053. --------S-PC228C22F--------------------------
  8054. PORT C228-C22F - serial port, description same as 03F8
  8055. ----------PC244------------------------------
  8056. PORT C244 - Intel Pentium mboard ("Neptune" chipset)
  8057. ----------PC2E0C2EF--------------------------
  8058. PORT C2E0-C2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  8059.  
  8060. C2E1  RW  GPIB (adapter 6)
  8061. --------V-PC2EE------------------------------
  8062. PORT C2EE - ATI Mach32 - ???
  8063.  
  8064. C2EEw RW  ???
  8065. --------V-PC6EE------------------------------
  8066. PORT C6EE - ATI Mach32 - SHORT-STROKE VECTOR
  8067.  
  8068. C6EEw -W  short-stroke vector
  8069. --------V-PCAEE------------------------------
  8070. PORT CAEE - ATI Mach32 - ???
  8071.  
  8072. CAEEw RW  ???
  8073. ----------PCEEE------------------------------
  8074. PORT CEEE - ATI Mach8/Mach32 - DATAPATH CONFIGURATION
  8075. SeeAlso: PORT 8EEEh
  8076.  
  8077. CEEEw -W  datapath configuration (see #P239)
  8078.  
  8079. Bitfields for ATI Mach8/Mach32 datapath configuration:
  8080. Bit(s)    Description    (Table P239)
  8081.  15-13    foreground color source
  8082.     000 background color reg
  8083.     001 foreground color reg
  8084.     010 pixel transfer reg
  8085.     011 VRAM BitBlt source
  8086.     101 color pattern shift register
  8087.  12    least-significant byte first
  8088.  9    data width is 16 bits instead of 8 bits
  8089.  8-7    background color source
  8090.     00 background color reg
  8091.     01 foreground color reg
  8092.     10 pixel transfer reg
  8093.     11 VRAM BitBlt source
  8094.  6-5    monochrome data source
  8095.     00 always one
  8096.     01 mono pattern register
  8097.     10 pixel transfer register
  8098.     11 VRAM BitBlt source
  8099.  4    enable drawing
  8100.  2    read color data instead of monochrome data
  8101.  1    enable polygon fill BitBlt
  8102.  0    write data to drawing trajectory instead of reading from trajectory
  8103. --------S-PD220D227--------------------------
  8104. PORT D220-D227 - serial port, description same as 03F8
  8105. SeeAlso: PORT 03F8h,PORT D228h
  8106. --------S-PD228D22F--------------------------
  8107. PORT D228-D22F - serial port, description same as 03F8
  8108. SeeAlso: PORT 03F8h,PORT D220h
  8109. --------V-PD2EE------------------------------
  8110. PORT D2EE - ATI Mach32 - ???
  8111.  
  8112. D2EEw RW  ???
  8113. --------V-PDAEEDAEF--------------------------
  8114. PORT DAEE-DAEF - ATI Mach8/Mach32 - SCISSORS REGION (LEFT)
  8115. SeeAlso: PORT 8EE8h,PORT DEEEh"SCISSORS",PORT E2EEh"SCISSORS"
  8116. SeeAlso: PORT E6EEh"SCISSORS"
  8117.  
  8118. DAEEw -W  left edge of "scissors" drawing area (bits 11-0)
  8119. --------V-PDEEEDEEF--------------------------
  8120. PORT DEEE-DEEF - ATI Mach8/Mach32 - SCISSORS REGION (TOP)
  8121. SeeAlso: PORT DAEEh"SCISSORS",PORT E2EEh"SCISSORS",PORT E6EEh"SCISSORS"
  8122.  
  8123. DEEEw -W  top edge of "scissors" drawing area (bits 11-0)
  8124. ----------PE2E0E2EF--------------------------
  8125. PORT E2E0-E2EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  8126.  
  8127. E2E1  RW  GPIB (adapter 7)
  8128. --------V-PE2E8E2EF--------------------------
  8129. PORT E2E8-E2EF - 8514/A and compatible video cards - PIXEL DATA TRANSFER
  8130. Notes:    supported by ATI Graphics Ultra
  8131.     supported by S3 chipsets when PORT 03D4h register 40h bit 0 is set
  8132.  
  8133. E2E8w -W  drawing control: pixel data transfer
  8134. E2EAw rW  drawing control: pixel data transfer (S3 801+) for 32-bit transfers
  8135. --------V-PE2EEE2EF--------------------------
  8136. PORT E2EE-E2EF - ATI Mach8/Mach32 - SCISSORS REGION (BOTTOM)
  8137. SeeAlso: PORT DAEEh"SCISSORS",PORT DEEEh"SCISSORS",PORT E6EEh"SCISSORS"
  8138.  
  8139. E2EEw -W  bottom edge of "scissors" drawing area (bits 11-0)
  8140. --------V-PE6EEE6EF--------------------------
  8141. PORT E6EE-E6EF - ATI Mach8/Mach32 - SCISSORS REGION (RIGHT)
  8142. SeeAlso: PORT DAEEh"SCISSORS",PORT DEEEh"SCISSORS",PORT E2EEh"SCISSORS"
  8143.  
  8144. E6EEw -W  right edge of "scissors" drawing area (bits 11-0)
  8145. --------V-PFAEE------------------------------
  8146. PORT FAEE - ATI Mach32 - CHIP IDENTIFICATION REGISTER
  8147. SeeAlso: PORT 56EEh"Mach32",PORT 5EEEh"Mach32"
  8148. --------V-PFEEEFEEF--------------------------
  8149. PORT FEEE-FEEF - ATI Mach8/Mach32 - DIRECT LINE DRAW REGISTER
  8150. SeeAlso: PORT 9AEEh
  8151.  
  8152. FEEEw -W  direct line-draw register
  8153. --------d-Pxxxx------------------------------
  8154. PORT xxxx - Intel 82371 - Bus Master IDE Registers
  8155.  
  8156. +000  RW  command register, primary channel (see #P252)
  8157. +002  Rw  status register, primary channel (see #P253)
  8158. +004d RW  IDE descriptor table pointer, primary channel (see #P254)
  8159. +008  RW  command register, secondary channel (see #P252)
  8160. +00A  Rw  status register, secondary channel (see #P253)
  8161. +00Cd RW  IDE descriptor table pointer, secondary channel (see #P254)
  8162.  
  8163. Bitfields for Intel 82371 Bus Master IDE command register:
  8164. Bit(s)    Description    (Table P252)
  8165.  7-4    reserved 
  8166.  3    bus master read/write control
  8167.     =0 read
  8168.     =1 write
  8169.  2-1    reserved
  8170.  0    start/stop bus master
  8171.     =1 start
  8172.     =0 stop
  8173. SeeAlso: #P253,#P254
  8174.  
  8175. Bitfields for Intel 82371 Bus Master IDE status register:
  8176. Bit(s)    Description    (Table P253)
  8177.  7    reserved (0)
  8178.  6    drive 1 is DMA-capable
  8179.  5    drive 0 is DMA_capable
  8180.  4-3    reserved
  8181.  2    IDE interrupt pending
  8182.     write 1 to this bit to clear it
  8183.  1    IDE DMA error
  8184.     write 1 to this bit to clear it
  8185.  0    bus master IDE active (read-only)
  8186. SeeAlso: #P252,#P254
  8187.  
  8188. Bitfields for Intel 82371 Bus Master IDE descriptor table pointer register:
  8189. Bit(s)    Description    (Table P254)
  8190.  31-2    descriptor table base address bits 31-2
  8191.  1-0    reserved
  8192. Note:    the descriptor table must not cross a 4K boundary
  8193. SeeAlso: #P252,#P253
  8194. ---------------------------------------------
  8195. PORT xxxx - Intel 82371SB - USB Host I/O Registers
  8196. InstallCheck: see #3414 at INT 1A/AX=B10Ah
  8197. SeeAlso: #3414
  8198.  
  8199. +000w RW  USB command register (see #P255)
  8200. +002w Rw  USB status (see #P256)
  8201. +004w RW  USB interrupt enable (see #P257)
  8202. +006w RW  Frame Number (see #P258)
  8203. +008d RW  Frame List Base Address
  8204.        (bits 11-0 must be written as zeros)
  8205. +00C  RW  Start of Frame Modify (see #P259)
  8206. +010w RW  port 1 status/control (see #P260)
  8207. +012w RW  port 2 status/control (see #P260)
  8208.  
  8209. Bitfields for Intel 82371SB USB command register:
  8210. Bit(s)    Description    (Table P255)
  8211.  15-8    reserved
  8212.  7    maximum packet size (0=32 bytes, 1=64 bytes)
  8213.  6    Host Controller has been configured (set by software)
  8214.  5    software debug mode
  8215.  4    force global resume
  8216.  3    enter global suspend mode
  8217.  2    global reset
  8218.  1    host controller reset
  8219.  0    run/stop schedule (0=stop, 1=run)
  8220. SeeAlso: #P256
  8221.  
  8222. Bitfields for Intel 82371SB USB status register:
  8223. Bit(s)    Description    (Table P256)
  8224.  15-6    reserved
  8225.  5    host controller halted
  8226.  4    host controller process error
  8227.  3    PCI bus error
  8228.  2    resume received
  8229.  1    USB error interrupt
  8230.  0    USB interrupt
  8231. Note:    to clear a bit in this register, write a 1 to it
  8232. SeeAlso: #P255
  8233.  
  8234. Bitfields for Intel 82371SB USB interrupt enable register:
  8235. Bit(s)    Description    (Table P257)
  8236.  15-4    reserved
  8237.  3    enable short packet interrupts
  8238.  2    enable Interrupt On Complete
  8239.  1    enable Resume
  8240.  0    enable Timeout/CRC
  8241. SeeAlso: #P256,#P258
  8242.  
  8243. Bitfields for Intel 82371SB Frame Number register:
  8244. Bit(s)    Description    (Table P258)
  8245.  15-11    reserved
  8246.  10-0    Frame List Current Index/Frame Number
  8247.     incremented at end of each time frame (~1ms)
  8248. Note:    only WORD writes are allowed to this register
  8249. SeeAlso: #P255,#P257
  8250.  
  8251. Bitfields for Intel 82371SB Start of Frame Modify register:
  8252. Bit(s)    Description    (Table P259)
  8253.  7    reserved
  8254.  6-0    SOF timing value (default 64)
  8255. Note:    SOF cycle time equals 11936+timing value
  8256. SeeAlso: #P255
  8257.  
  8258. Bitfields for Intel 82371SB Port 1/2 status/control register:
  8259. Bit(s)    Description    (Table P260)
  8260.  15-13    reserved (0)
  8261.  12    suspend port
  8262.  11-10    reserved
  8263.  9    port in Reset State
  8264.  8    low-speed device is attached (read-only)
  8265.  7    reserved (1)
  8266.  6    resume detected (read-only)
  8267.  5-4    line status (read-only)
  8268.     bit 4: D+ signal line
  8269.     bit 5: D- signal line
  8270.  3    port enabled/disabled status has changed
  8271.     write 1 to this bit to clear it
  8272.  2    port is enabled
  8273.  1    connect status has changed
  8274.     write 1 to this bit to clear it
  8275.  0    current connect status (read-only)
  8276. Note:    only WORD writes are permitted to this register
  8277. SeeAlso: #P255
  8278. --------!---CREDITS--------------------------
  8279. Wim Osterholt        <wim@djo.wtm.tudelft.nl>        Original File
  8280. Chuck Proctor        <71534.2302@CompuServe.COM>
  8281. Richard W. Watson    <73042.1420@CompuServe.COM>
  8282. Matthias Paul        <mpaul@ibh.rwth-aachen.de>
  8283.  
  8284. Some of the information in this list was extracted from Frank van Gilluwe's
  8285. _The_Undocumented_PC_, a must-have book for anyone programming down to the
  8286. "bare metal" of a PC.
  8287.  
  8288. Some of the information in this list from the shareware version of Dave
  8289. Williams' DOSREF, v3.0.
  8290.  
  8291. 8514/A hardware ports found in FractInt v18.0 source file FR8514A.ASM
  8292.  
  8293. Compaq QVision info from the _COMPAQ_QVision_Graphics_System_Technical_
  8294. _Reference_Guide_, second edition (October 1993).  Compaq part number
  8295. 073A/0693.  Much more to come!
  8296.  
  8297. AMI keyboard controller PORT 0064h commands from the American Megatrends, Inc.
  8298. _Version_KF_and_KH_Keyboard_Controller_BIOS_Reference_, available on the
  8299. AMI BBS and american.megatrends.com as KFKHMAN.ZIP.
  8300.  
  8301. Various chipset infos from "Het BIOS Boekje" 2nd edition, by Alle Metzlar,
  8302. ISBN 90-72260-59-7 (1995).
  8303.  
  8304. [ATA-3 info from "AT Attachment-3 Interface (ATA-3) Revision 1", dated
  8305. April 21, 1995.]
  8306.  
  8307. Some additional EISA info from _EISA_System_Architecture_ (second edition),
  8308. by MindShare, Inc. (Addison-Wesley 1995, ISBN 0-201-40995-X).
  8309.  
  8310. AMI BIOS diagnostics codes (port 0080h) from file CHECKPTS on AMI BBS.
  8311.  
  8312. Some S3 and additional ATI Mach8/Mach32 info from Richard F. Ferraro's
  8313. _Programmer's_Guide_to_the_EGA,_VGA,_and_Super_VGA_Cards_, third edition.
  8314.  
  8315. PCnet-ISA info from _Am79C960_PCnet-ISA(tm)_Technical_Manual_, May 1992,
  8316. available from www.amd.com as 16850B.PDF; additional details from file
  8317. 16907B.PDF.
  8318.  
  8319. PCnet-SCSI info from _Am79C974 PCnet(tm)-SCSI_Combination_Ethernet_and_SCSI_
  8320. _Controller_for_PCI_Systems_, available from www.amd.com as 18681B.PDF.
  8321.  
  8322. PCnet-FAST info from _Am79C971 PCnet(tm)-FAST_Single-Chip_Full-Duplex_10/100_
  8323. _Mbps_Ethernet_Controller_for_PCI_Local_Bus_, available from www.amd.com as
  8324. 20550B.PDF.
  8325. --------!---Admin----------------------------
  8326. Highest Table Number = P283
  8327. --------!---FILELIST-------------------------
  8328. Please redistribute all of the files comprising the interrupt list (listed at
  8329. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  8330. quartet of archives named INTER53A through INTER53D (preferably the original
  8331. authenticated PKZIP archives), and the utility and hypertext programs in a trio
  8332. of additional archives called INTER53E.ZIP to INTER53G.ZIP.
  8333.  
  8334. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  8335. --------!---CONTACT_INFO---------------------
  8336. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  8337. UUCP: {uunet,harvard}!pobox.com!ralf
  8338. FIDO: Ralf Brown 1:129/26.1
  8339.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  8340.     unless you address it to me)
  8341. CIS:  >INTERNET:ralf@pobox.com
  8342.