summaryrefslogtreecommitdiff
path: root/miniasm/PORTS.LST
blob: f1ebc97b5b7cfa8327daef2c5668280461164513 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
[This file was provided by Wim Osterholt (2:512/56 or wim@djo.wtm.tudelft.nl).]
Last Change: 11/6/94


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

      Do NOT consider this information as complete and accurate.
      If you want to do harware programming check ALWAYS the
      appropriate data sheets. Be aware that erroneously programming
      can put your hardware or your data at risk. 

      There is a memory mapped address in use for I/O functions of which I
      think it should be mentioned here. See at the end of this list.

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

0000	r/w	DMA channel 0  address	byte  0, then byte 1.
0001	r/w	DMA channel 0 word count byte 0, then byte 1.
0002	r/w	DMA channel 1  address	byte  0, then byte 1.
0003	r/w	DMA channel 1 word count byte 0, then byte 1.
0004	r/w	DMA channel 2  address	byte  0, then byte 1.
0005	r/w	DMA channel 2 word count byte 0, then byte 1.
0006	r/w	DMA channel 3  address	byte  0, then byte 1.
0007	r/w	DMA channel 3 word count byte 0, then byte 1.

0008	r	DMA channel 0-3 status register
		 bit 7 = 1  channel 3 request
		 bit 6 = 1  channel 2 request
		 bit 5 = 1  channel 1 request
		 bit 4 = 1  channel 0 request
		 bit 3 = 1  channel terminal count on channel 3
		 bit 2 = 1  channel terminal count on channel 2
		 bit 1 = 1  channel terminal count on channel 1
		 bit 0 = 1  channel terminal count on channel 0

0008	w	DMA channel 0-3 command register
		 bit 7 = 1  DACK sense active high
		       = 0  DACK sense active low
		 bit 6 = 1  DREQ sense active high
		       = 0  DREQ sense active low
		 bit 5 = 1  extended write selection
		       = 0  late write selection
		 bit 4 = 1  rotating priority
		       = 0  fixed priority
		 bit 3 = 1  compressed timing
		       = 0  normal timing
		 bit 2 = 1  enable controller
		       = 0  enable memory-to-memory

0009	w	DMA write request register

000A	r/w	DMA channel 0-3 mask register
		 bit 7-3 = 0   reserved
		 bit 2	 = 0   clear mask bit
			 = 1   set mask bit
		 bit 1-0 = 00  channel 0 select
			 = 01  channel 1 select
			 = 10  channel 2 select
			 = 11  channel 3 select

000B	w	DMA channel 0-3 mode register
		 bit 7-6 = 00  demand mode
			 = 01  single mode
			 = 10  block mode
			 = 11  cascade mode
		 bit 5	 = 0   address increment select
			 = 1   address decrement select
		 bit 3-2 = 00  verify operation
			 = 01  write to memory
			 = 10  read from memory
			 = 11  reserved
		 bit 1-0 = 00  channel 0 select
			 = 01  channel 1 select
			 = 10  channel 2 select
			 = 11  channel 3 select

000C	w	DMA clear byte pointer flip-flop
000D	r	DMA read temporary register
000D	w	DMA master clear
000E	w	DMA clear mask register
000F	w	DMA write mask register

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

-------------------------------------------------------------------------------
0018	w	PS/2 extended function register

-------------------------------------------------------------------------------
001A		PS/2 extended function execute

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

0020	w	PIC initialization command word ICW1
		 bit 7-5 = 0  only used in 80/85 mode
		 bit 4	 = 1  ICW1 is being issued
		 bit 3	 = 0  edge triggered mode
			 = 1  level triggered mode
		 bit 2	 = 0  successive interrupt vectors use 8 bytes
			 = 1  successive interrupt vectors use 4 bytes
		 bit 1	 = 0  cascade mode
			 = 1  single mode, no ICW3 needed
		 bit 0	 = 0  no ICW4 needed
			 = 1  ICW4 needed

0021	w	PIC  ICW2,ICW3,ICW4 after ICW1 to 0020
		ICW2:
		 bit 7-3 = address lines A0-A3 of base vector address for PIC
		 bit 2-0 = reserved
		ICW3:
		 bit 7-0 = 0  slave controller not attached to corresponding
			      interrupt pin
			 = 1  slave controller attached to corresponding
			      interrupt pin
		ICW4:
		 bit 7-5 = 0  reserved
		 bit 4	 = 0  no special fully-nested mode
			 = 1  special fully-nested mode
		 bit 3-2 = 0x nonbuffered mode
			 = 10 buffered mode/slave
			 = 11 buffered mode/master
		 bit 1	 = 0  normal EOI
			 = 1  Auto EOI
		 bit 0	 = 0  8085 mode
			 = 1  8086/8088 mode

0021	r/w	PIC master interrupt mask register
		OCW1:
		 bit 7 = 0  enable parallel printer interrupt
		 bit 6 = 0  enable diskette interrupt
		 bit 5 = 0  enable fixed disk interrupt
		 bit 4 = 0  enable serial port 1 interrupt
		 bit 3 = 0  enable serial port 2 interrupt
		 bit 2 = 0  enable video interrupt
		 bit 1 = 0  enable keyboard, mouse, RTC interrupt
		 bit 0 = 0  enable timer interrupt

0020	r	PIC  interrupt request/in-service registers by OCW3
		request register:
		 bit 7-0 = 0  no active request for the corresponding int. line
			 = 1  active request for corresponding interrupt line
		in-service register:
		 bit 7-0 = 0  corresponding line not currently being serviced
			 = 1  corresponding int. line currently being serviced

0020	w	OCW2:
		 bit 7-5 = 000	rotate in auto EOI mode (clear)
			 = 001	nonspecific EOI
			 = 010	no operation
			 = 011	specific EOI
			 = 100	rotate in auto EOI mode (set)
			 = 101	rotate on nonspecific EOI command
			 = 110	set priority command
			 = 111	rotate on specific EOI command
		 bit 4	 = 0	reserved
		 bit 3	 = 0	reserved
		 bit 2-0	interrupt request to which the command applies

0020	w	PIC OCW3
		 bit 7	 = 0   reserved
		 bit 6-5 = 0x  no operation
			 = 10  reset special mask
			 = 11  set special mask
		 bit 4	 = 0   reserved
		 bit 3	 = 1   reserved
		 bit 2	 = 0   no poll command
			 = 1   poll command
		 bit 1-0 = 0x  no operation
			 = 10  read int.request register on next read at 0020
			 = 11  read int.in-service register on next read 0020

-------------------------------------------------------------------------------
0022-002B ----	Intel 82355, part of chipset for 386sx
		 initialisation in POST will disable these addresses,
		 only a hard reset will enable them again.

0022	r/w	82335 MCR memory configuration register
0024		82335 RC1 roll compare register
0026		82335 RC2 roll compare register
0028		82335 CC0 compare register
002A		82335 CC1 compare register

		  values for CC0 and CC1:
		  00F9,0000  enable range compare CC0 0-512K  CC1 disable
		  00F1,0000  enable range compare CC0 0-1024K CC1 disable
		  00F1,10F9  enable range compare CC0 0-1M    CC1 1M-1M5
		  00E1,0000  enable range compare CC0 0-2M    CC1 disable
		  00E1,0000  enable range compare CC0 0-2M    CC1 disable
		  00C1,0000  enable range compare CC0 0-4M    CC1 disable
		  00C1,40E1  enable range compare CC0 0-4M    CC1 4M-6M
		  0081,0000  enable range compare CC0 0-8M    CC1 disable

-------------------------------------------------------------------------------
0022-0023 ----	Chip Set Data

0022	w	index for accesses to data port
0023	r/w	chip set data

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

0022	w	index for accesses to next port
		C0h CR0
		C1h CR1
		C4h non-cacheable region 1, start address bits 31-24
		C5h non-cacheable region 1, start address bits 23-16
		C6h non-cacheable region 1, start addr 15-12, size (low nibble)
		C7h non-cacheable region 2, start address bits 31-24
		C8h non-cacheable region 2, start address bits 23-16
		C9h non-cacheable region 2, start addr 15-12, size (low nibble)
		CAh non-cacheable region 3, start address bits 31-24
		CBh non-cacheable region 3, start address bits 23-16
		CCh non-cacheable region 3, start addr 15-12, size (low nibble)
		CDh non-cacheable region 4, start address bits 31-24
		CEh non-cacheable region 4, start address bits 23-16
		CFh non-cacheable region 4, start addr 15-12, size (low nibble)
0023	r/w	cache configuration register array (indexed by port 0022h)

		non-cacheable region sizes:
		 00h  disabled
		 01h  4K
		 02h  8K
		 03h  16K
		 04h  32K
		 05h  64K
		 06h  128K
		 07h  256K
		 08h  512K
		 09h  1M
		 0Ah  2M
		 0Bh  4M
		 0Ch  8M
		 0Dh  16M
		 0Eh  32M
		 0Fh  4G

		Configuration Register 0 format:
		 bit 0	"NC0" first 64K of each 1M noncacheable in real/V86
		 bit 1	"NC1" 640K-1M noncacheable
		 bit 2	"A20M" enables A20M# input pin
		 bit 3	"KEN"  enables KEN# input pin
		 bit 4	"FLUSH" enables KEN# input pin
		 bit 5	"BARB" enables internal cache flushing on bus holds
		 bit 6	"C0" cache direct-mapped instead of 2-way associative
		 bit 7	"SUSPEND" enables SUSP# input and SUSPA# output pins

		Configuration Register 1 format;
		 bit 0	"RPL" enables output pins RPLSET and RPLVAL#

-------------------------------------------------------------------------------
0026-0027 ----	Power Management

0026	w	index for data port
0027	r/w	power management data

-------------------------------------------------------------------------------
0038-003F ----	PC radio by CoZet Info Systems
		The I/O address range is dipswitch selectable from:
		   038-03F and 0B0-0BF
		   078-07F and 0F0-0FF
		   138-13F and 1B0-1BF
		   178-17F and 1F0-1FF
		   238-23F and 2B0-2BF
		   278-27F and 2F0-2FF
		   338-33F and 3B0-3BF
		   378-37F and 3F0-3FF
		All of these addresses show a readout of FF in initial state.
		Once started, all of the addresses show	 FB, whatever might
		happen.

-------------------------------------------------------------------------------
0040-005F ----	PIT  (Programmable Interrupt Timer  8253, 8254)
		 XT & AT uses 40-43    PS/2 uses 40, 42,43,44, 47

0040	r/w	PIT  counter 0, counter divisor	      (XT, AT, PS/2)
0041	r/w	PIT  counter 1, RAM refresh counter   (XT, AT)
0042	r/w	PIT  counter 2, cassette & speaker    (XT, AT, PS/2)

0043	r/w	PIT  mode port, control word register for counters 0-2
		 bit 7-6 = 00  counter 0 select
			 = 01  counter 1 select	  (not PS/2)
			 = 10  counter 2 select
		 bit 5-4 = 00  counter latch command
			 = 01  read/write counter bits 0-7 only
			 = 10  read/write counter bits 8-15 only
			 = 11  read/write counter bits 0-7 first, then 8-15
		 bit 3-1 = 000 mode 0 select
			 = 001 mode 1 select - programmable one shot
			 = x10 mode 2 select - rate generator
			 = x11 mode 3 select - square wave generator
			 = 100 mode 4 select - software triggered strobe
			 = 101 mode 5 select - hardware triggered strobe
		 bit 0	 = 0   binary counter 16 bits
			 = 1   BCD counter

0044	r/w	PIT  counter 3 (PS/2, EISA)
		used as fail-safe timer. generates an NMI on time out.
		for user generated NMI see at 0462.

0047	w	PIT  control word register counter 3 (PS/2, EISA)
		 bit 7-6 = 00  counter 3 select
			 = 01  reserved
			 = 10  reserved
			 = 11  reserved
		 bit 5-4 = 00  counter latch command counter 3
			 = 01  read/write counter bits 0-7 only
			 = 1x  reserved
		 bit 3-0 = 00

0048		EISA
0049		8254 timer 2, not used (counter 1)
004A		EISA programmable interval timer 2
004B		EISA programmable interval timer 2

-------------------------------------------------------------------------------
0060-006F ----	Keyboard controller 804x (8041, 8042)  (or PPI (8255) on PC,XT)
		 XT uses 60-63,	 AT uses 60-64

		 AT keyboard controller input port bit definitions
		  bit 7	  = 0  keyboard inhibited
		  bit 6	  = 0  CGA, else MDA
		  bit 5	  = 0  manufacturing jumper installed
		  bit 4	  = 0  system RAM 512K, else 640K
		  bit 3-0      reserved

		 AT keyboard controller input port bit definitions by Compaq
		  bit 7	  = 0  security lock is locked
		  bit 6	  = 0  Compaq dual-scan display, 1=non-Compaq display
		  bit 5	  = 0  system board dip switch 5 is ON
		  bit 4	  = 0  auto speed selected, 1=high speed selected
		  bit 3	  = 0  slow (4MHz), 1 = fast (8MHz)
		  bit 2	  = 0  80287 installed, 1= no NDP installed
		  bit 1-0      reserved

		 AT keyboard controller output port bit definitions
		  bit 7 =    keyboard data output
		  bit 6 =    keyboard clock output
		  bit 5 = 0  input buffer full
		  bit 4 = 0  output buffer empty
		  bit 3 =    reserved (see note)
		  bit 2 =    reserved (see note)
		  bit 1 =    gate A20
		  bit 0 =    system reset
		Note:	bits 2 and 3 are the turbo speed switch or password
			  lock on Award/AMI/Phoenix BIOSes.  These bits make
			  use of nonstandard keyboard controller BIOS
			  functionality to manipulate
			    pin 23 (8041 port 22) as turbo switch for AWARD
			    pin 35 (8041 port 15) as turbo switch/pw lock for
				Phoenix

0060	r/w	KB controller data port or keyboard input buffer (ISA, EISA)
		should only be read from after status port bit0 = 1
		should only be written to if status port bit1 = 0
		keyboard commands (data also goes to port 0060):
		 E6	sngl  set mouse scaling to 1:1
		 E7	sngl  set mouse scaling to 2:1
		 E8	dbl   set mouse resolution
				(00h = 1/mm,01h = 2/mm,02h = 4/mm,03h = 8/mm)
		 E9	sngl  get mouse information
				read two status bytes:
				  byte 0
					bit 7 unused
					bit 6 remote rather than stream mode
					bit 5 mouse enabled
					bit 4 scaling set to 2:1
					bit 3 unused
					bit 2 left button pressed
					bit 1 unused
					bit 0 right button pressed
				  byte 1: resolution
		 ED	dbl   set/reset mode indicators Caps Num Scrl
				bit 2 = CapsLk, bit 1 = NumLk, bit 0 = ScrlLk
		 EE	sngl  diagnostic echo. returns EE.
		 EF	sngl  NOP (No OPeration). reserved for future use
		 F0	dbl   get/set scan code set
				00h get current set
				01h scancode set 1 (except Type 2 ctrlr)
				02h scancode set 2 (default)
				03h scancode set 3
		 F2	sngl  read keyboard ID (read two ID bytes)
		 F2	sngl  read mouse ID (read two ID bytes)
		 F3	dbl   set typematic rate/delay
		 F3	dbl   set mouse sample rate in reports per second
		 F4	sngl  enable keyboard
		 F4	sngl  enable mouse
		 F5	sngl  disable keyboard. set default parameters
		 F5	sngl  disable mouse, set default parameters
		 F6	sngl  set default parameters
		 F7	sngl  [MCA] set all keys to typematic (scancode set 3)
		 F8	sngl  [MCA] set all keys to make/release
		 F9	sngl  [MCA] set all keys to make only
		 FA	sngl  [MCA] set all keys to typematic/make/release
		 FB	sngl  [MCA] set al keys to typematic
		 FC	dbl   [MCA] set specific key to make/release
		 FD	dbl   [MCA] set specific key to make only
		 FE	sngl  resend last scancode
		 FF	sngl  perform internal power-on reset function
		 FF	sngl  reset mouse
		Note:	must issue command D4h to port 64h first to access
			  mouse functions


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

0061	w	KB controller port B (ISA, EISA)   (PS/2 port A is at 0092)
		system control port for compatibility with 8255
		 bit 7	(1= IRQ 0 reset )
		 bit 6-4    reserved
		 bit 3 = 1  channel check enable
		 bit 2 = 1  parity check enable
		 bit 1 = 1  speaker data enable
		 bit 0 = 1  timer 2 gate to speaker enable

0061	r	KB controller port B control register (ISA, EISA)
		system control port for compatibility with 8255
		 bit 7	 parity check occurred
		 bit 6	 channel check occurred
		 bit 5	 mirrors timer 2 output condition
		 bit 4	 toggles with each refresh request
		 bit 3	 channel check status
		 bit 2	 parity check status
		 bit 1	 speaker data status
		 bit 0	 timer 2 gate to speaker status

0061	w	PPI  Programmable Peripheral Interface 8255 (XT only)
		system control port
		 bit 7 = 1  clear keyboard
		 bit 6 = 0  hold keyboard clock low
		 bit 5 = 0  I/O check enable
		 bit 4 = 0  RAM parity check enable
		 bit 3 = 0  read low switches
		 bit 2	    reserved, often used as turbo switch
		 bit 1 = 1  speaker data enable
		 bit 0 = 1  timer 2 gate to speaker enable

0062	r/w	PPI (XT only)
		 bit 7 = 1  RAM parity check
		 bit 6 = 1  I/O channel check
		 bit 5 = 1  timer 2 channel out
		 bit 4	    reserved 
		 bit 3 = 1  system board RAM size type 1
		 bit 2 = 1  system board RAM size type 2
		 bit 1 = 1  coprocessor installed
		 bit 0 = 1  loop in POST

0063	r/w	PPI (XT only) command mode register  (read dipswitches)
		 bit 7-6 = 00  1 diskette drive
			 = 01  2 diskette drives
			 = 10  3 diskette drives
			 = 11  4 diskette drives
		 bit 5-4 = 00  reserved
			 = 01  40*25 color (mono mode)
			 = 10  80*25 color (mono mode)
			 = 11  MDA 80*25
		 bit 3-2 = 00  256K (using 256K chips)
			 = 01  512K (using 256K chips)
			 = 10  576K (using 256K chips)
			 = 11  640K (using 256K chips)
		 bit 3-2 = 00  64K  (using 64K chips)
			 = 01  128K (using 64K chips)
			 = 10  192K (using 64K chips)
			 = 11  256K (using 64K chips)
		 bit 1-0       reserved

0064	r	KB controller read status (ISA, EISA)
		 bit 7 = 1 parity error on transmission from keyboard
		 bit 6 = 1 receive timeout
		 bit 5 = 1 transmit timeout
		 bit 4 = 0 keyboard inhibit
		 bit 3 = 1 data in input register is command
			 0 data in input register is data
		 bit 2	 system flag status: 0=power up or reset  1=selftest OK
		 bit 1 = 1 input buffer full (input 60/64 has data for 8042)
		 bit 0 = 1 output buffer full (output 60 has data for system)

0064	r	KB controller read status (MCA)
		 bit 7 = 1 parity error on transmission from keyboard
		 bit 6 = 1 general timeout
		 bit 5 = 1 mouse output buffer full
		 bit 4 = 0 keyboard inhibit
		 bit 3 = 1 data in input register is command
			 0 data in input register is data
		 bit 2	 system flag status: 0=power up or reset  1=selftest OK
		 bit 1 = 1 input buffer full (input 60/64 has data for 804x)
		 bit 0 = 1 output buffer full (output 60 has data for system)

0064	r	KB controller read status by Compaq
		 bit 7 = 1 parity error detected (11-bit format only). If an
			   error is detected, a Resend command is sent to the
			   keyboard once only, as an attempt to recover.
		 bit 6 = 1 receive timeout. transmission didn't finish in 2mS.
		 bit 5 = 1 transmission timeout error
			    bit 5,6,7  cause
				1 0 0  No clock
				1 1 0  Clock OK, no response
				1 0 1  Clock OK, parity error
		 bit 4 = 0 security lock engaged
		 bit 3 = 1 data in OUTPUT register is command
			 0 data in OUTPUT register is data
		 bit 2	 system flag status: 0=power up or reset  1=soft reset
		 bit 1 = 1 input buffer full (output 60/64 has data)
		 bit 0 = 0 no new data in buffer (input 60 has data)

0064	w	KB controller input buffer (ISA, EISA)
		KB controller commands (data goes to port 0060):
		 20	read  read byte zero of internal RAM, this is the
			      last KB command send to 804x
		      Compaq  Put current command byte on port 0060
				command structure:
				bit 7	reserved
				bit 6 = 1 convert KB codes to 8086 scan codes
				bit 5 = 0 use 11-bit codes, 1=use 8086 codes
				bit 4 = 0 enable keyboard, 1=disable keyboard
				bit 3 = 1 ignore security lock state
				bit 2	  this bit goes into bit2 status reg.
				bit 1 = 0 reserved
				bit 0 = 1 generate int. when output buffer full
		 21-3F	read  reads the byte specified in the lower 5 bits of
			      the command in the 804x's internal RAM
		 60-7F	dbl   writes the data byte to the address specified in
			      the 5 lower bits of the command.

			      Alternate description KB IO command 60 summary:
			       bit7 = 0 reserved
			       bit6 =	IBM PC compatibility mode
			       bit5 =	IBM PC mode
			       bit4 =	disable kb
			       bit3 =	inhibit override
			       bit2 =	system flag
			       bit1 = 0 reserved
			       bit0 =	enableoutput buffer full interrupt

		 60   Compaq  Load new command (60 to [64], command to [60])
		 A1   Compaq  unknown speedfunction ??
		 A2   Compaq  unknown speedfunction ??
		 A3   Compaq  Enable system speed control
		 A4	MCA   check if password installed
		 A4   Compaq  Toggle speed
		 A5	MCA   load password
		 A5   Compaq  Special reed. the 8042 places the real values
			      of port 2 except for bits 4 and 5 wich are given
			      a new definition in the output buffer. No output
			      buffer full is generated.
				if bit 5 = 0, a 9-bit keyboard is in use
				if bit 5 = 1, an 11-bit keyboard is in use
				if bit 4 = 0, outp-buff-full interrupt disabled
				if bit 4 = 1, output-buffer-full int. enabled
		 A6	MCA   check password
		 A6   Compaq  unknown speedfunction ??
		 A7	MCA   disable mouse port
		 A8	MCA   enable mouse port
		 A9	MCA   test mouse port
		 AA	sngl  initiate self-test. will return 55 to data port
		      Compaq  Initializes ports 1 and 2, disables the keyboard
			      and clears the buffer pointers. It then places
			      55 in the output buffer.
		 AB	sngl  initiate interface test. result values:
			       0 = no error
			       1 = keyboard clock line stuck low
			       2 = keyboard clock line stuck high
			       3 = keyboard data line is stuck low
			       4 = keyboard data line stuck high
		      Compaq   5 = Compaq diagnostic feature
		 AC	read  diagnostic dump. the contents of the 804x RAM,
			      output port, input port, status word are send.
		 AD	sngl  disable keyboard (sets bit 4 of commmand byte)
		 AE	sngl  enable keyboard  (resets bit 4 of commmand byte)
		 AF	AWARD Enhanced Command: read keyboard version
		 C0	read  read input port
		      Compaq  Places status of input port in output buffer. use
			      this command only when the output buffer is empty
		 C1	MCA   Enhanced Command: poll input port Low nibble
		 C2	MCA   Enhanced Command: poll input port High nibble
		 D0	read  read output port
		      Compaq  Places byte in output port in output buffer. use
			      this command only when the output buffer is empty
		 D1	dbl   write output port. next byte written  to 0060
			      will be written to the 804x output port; the
			      original IBM AT and many compatibles use bit 1 of
			      the output port to control the A20 gate.
		      Compaq  The system speed bits are not set by this command
			      use commands A1-A6 (!) for speed functions.
		 D2	MCA   Enhanced Command: write keyboard output buffer
		 D3	MCA   Enhanced Command: write pointing device out.buf.
		 D4	MCA   write to mouse
		 D4	AWARD Enhanced Command: write to auxiliary device
		 DD	sngl  disable address line A20 (HP Vectra only???)
			      default in Real Mode
		 DF	sngl  enable address line A20 (HP Vectra only???)
		 E0	read  read test inputs.
				bit0 = kbd clock, bit1 = kbd data
		 Exxx	AWARD Enhanced Command: active output port
		 ED   Compaq  This is a two part command to control the state
			      of the NumLock CpasLock and ScrollLock LEDs
			      The second byte contains the state to set LEDs.
				bit 7-3	   reserved. should be set to 0.
				bit 2 = 0  Caps Lock LED off
				bit 1 = 0  Num Lock LED off
				bit 0 = 0  Scroll Lock LED off
		 F0-FF	sngl  pulse output port low for 6 microseconds.
			      bits 0-3 contain the mask for the bits to be
			      pulsed. a bit is pulsed if its mask bit is zero.
			      bit0=system reset. Don't set to zero. Pulse only!

general note:	 Keyboard controllers are widely different from each other.
		 You cannot generally exchange them between different machines.
note on Award:	 Derived from Award's Enhanced KB controller advertising sheet.
note on Compaq:	 Derived from the Compaq Deskpro 386 Tech. Ref. Guide.

0065	r	communications port (Olivetti M24)

0068	w	HP-Vectra  control buffer (HP commands)
0069	r	HP-Vectra  SVC (keyboard request SerViCe port)
006A	w	HP-Vectra  clear processing, done

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

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

-------------------------------------------------------------------------------
0065	  ----	???

0065	r/w	???
		bit 2: A20 gate control (set = A20 enabled, clear = disabled)

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

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

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

006B	?	RAM enable/remap
006C-006F	undocumented

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

0070	w	CMOS RAM index register port (ISA, EISA)
		 bit 7	 = 1  NMI disabled
			 = 0  NMI enabled
		 bit 6-0      CMOS RAM index (64 bytes, sometimes 128 bytes)

		any write to 0070 should be followed by an action to 0071
		or the RTC wil be left in an unknown state.

0071	r/w	CMOS RAM data port (ISA, EISA)
		RTC registers:
		00    current second in BCD
		01    alarm second   in BCD
		02    current minute in BCD
		03    alarm minute   in BCD
		04    current hour in BCD
		05    alarm hour   in BCD
		06    day of week  in BCD
		07    day of month in BCD
		08    month in BCD
		09    year  in BCD (00-99)
		0A    status register A
		       bit 7 = 1  update in progress
		       bit 6-4 divider that identifies the time-based
				frequency
		       bit 3-0 rate selection output  frequency and int. rate
		0B    status register B
		       bit 7 = 0  run
			     = 1  halt
		       bit 6 = 1  enable periodic interrupt
		       bit 5 = 1  enable alarm interrupt
		       bit 4 = 1  enable update-ended interrupt
		       bit 3 = 1  enable square wave interrupt
		       bit 2 = 1  calendar is in binary format
			     = 0  calendar is in BCD format
		       bit 1 = 1  24-hour mode
			     = 0  12-hour mode
		       bit 0 = 1  enable daylight savings time. only in USA.
				  useless in Europe. Some DOS versions clear
				  this bit when you use the DAT/TIME command.
		0C    status register C
		       bit 7 =	  interrupt request flag
		       bit 6 =	  peridoc interrupt flag
		       bit 5 =	  alarm interrupt flag
		       bit 4 =	  update interrupt flag
		       bit 3-0	  reserved
		0D    status register D
		       bit 7 = 1  Real-Time Clock has power
		       bit 6-0	  reserved
		0E    diagnostics status byte
		       bit 7 = 0  RTC lost power
		       bit 6 = 1  CMOS RAM checksum bad
		       bit 5 = 1  invalid configuration information at POST
		       bit 4 = 1  memory size error at POST
		       bit 3 = 1  fixed disk/adapter failed initialization
		       bit 2 = 1  CMOS RAM time found invalid
		       bit 1 = 1  adapters do not match configuration (EISA)
		       bit 0 = 1  time out reading an adapter ID (EISA)
		0F    shutdown status byte
		       00 = normal execution of POST
		       01 = chip set initialization for real mode reentry
		       04 = jump to bootstrap code
		       05 = issue an EOI an JMP to Dword ptr at 40:67
		       06 = JMP to Dword ptrv at 40:67 without EOI
		       07 = return to INT15/87 (block move)
		       08 = return to POST memory test
		       09 = return to INT15/87 (block move)
		       0A = JMP to Dword ptr at 40:67 without EOI
		       0B = return IRETS through 40:67
		10    diskette drive type for A: and B:
		       bit 7-4	drive type of drive 0
		       bit 3-0	drive type of drive 1
			       = 0000	   no drive
			       = 0001	   360K
			       = 0010	   1M2
			       = 0011	   720K
			       = 0100	   1M44
			       = 0101-1111 reserved
		11    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
		       bit 7   = 1     Typematic Rate Programming
		       bit 6-5 = 00    Typematic Rate Delay 250 mSec
		       bit 4-0 = 00011 Typematic Rate 21.8 Chars/Sec
		12    fixed disk drive type for drive 0 and drive 1
		       bit 7-4	drive type of drive 0
		       bit 3-0	drive type of drive 1
				if either of the nibbles equals 0F, then bytes
				19 an 1A are valid
		13    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
		       bit 7 = 1  Mouse Support Option
		       bit 6 = 1  Above 1 MB Memory Test disable
		       bit 5 = 1  Memory Test Tick Sound disable
		       bit 4 = 1  Memory Parity Error Check enable
		       bit 3 = 1  Hit <ESC> Message Display disabled
		       bit 2 = 1  Hard Disk Type 47 Data Area at address 0:300
		       bit 1 = 1  Wait For <F1> If Any Error enabled
		       bit 0 = 1  System Boot Up Num Lock is On
		14    equipment byte
		       bit 7-6	 diskette drives installed
			       = 00  1 drive installed
			       = 01  2 drives installed
			       = 10  reserved
			       = 11  reserved
		       bit 5-4	 primary display
			       = 00  adapter card with option ROM 
			       = 01  40*25 color
			       = 10  80*25 color
			       = 11  monochrome
		       bit 3-2	 reserved
		       bit 1   = 1  coprocessor installed (non-Weitek)
		       bit 0	    diskette drive avaliable for boot
		15    LSB of systemn base memory in Kb
		16    MSB of systemn base memory in Kb
		17    LSB of total extended memory in Kb
		18    MSB of total extended memory in Kb
		19    drive C extension byte
		1A    drive D extension byte
		1B-27 reserved
		1B/1C word to 82335 RC1 roll compare register at [24]
			(Phoenix)
		1D/1E word to 82335 RC2 roll compare register at [26]
			(Phoenix)
		28    HP-Vectra checksum over 29-2D
		29-2D reserved
		29/2A word to Intel 82335 CC0 compare register at
			[28](Phoenix)
		2B/2C word send to 82335 CC1 compare register at [2A]
			(Phoenix)
		2D    AMI Extended CMOS setup (AMI Hi-Flex BIOS)
		      (Phoenix BIOS checks for the values AA or CC)
		       bit 7 = 1  Weitek Processor Absent
		       bit 6 = 1  Floppy Drive Seek At Boot disabled
		       bit 5 = 1  System Boot Up Sequence  C:, A:
		       bit 4 = 1  System Boot Up Speed is high
		       bit 3 = 1  Cache Memory enabled
		       bit 2 = 1  Internal Cache Memory	 <1>
		       bit 1-0	  reserved
		2E    CMOS MSB checksum over 10-2D
		2F    CMOS LSB checksum over 10-2D
		30    LSB of extended memory found above 1Mb at POST
		31    MSB of extended memory found above 1Mb at POST
		32    date century in BCD
		33    information flags
		       bit4 = bit4 from CPU register CR0   (Phoenix)
			      this bit is only known as INTEL RESERVED
		34-3F reserved	
		34     bit4 bit5 (Phoenix BIOS)
		3D/3E word to 82335 MCR memory config register at
			[22](Phoenix)
		3D     bit3	 base memsize 512/640  (Phoenix)
		3E     bit7 = 1	 relocate enable       (Phoenix)
		       bit1 = 1	 shadow video enable   (Phoenix)
		       bit0 = 1	 shadow BIOS enable    (Phoenix)


		User Definable Drive Parameters are also stored in CMOS RAM:

		AMI (386sx BIOS 1989) first user definable drive (type 47)
		 1B  L cylinders
		 1C  H cylinders
		 1D  heads
		 1E  L Write Precompensation Cylinder
		 1F  H Write Precompensation Cylinder
		 20  ??
		 21  L cylinders parking zone
		 22  H cylinders parking zone
		 23  sectors

		AMI (386sx BIOS 1989) second user definable drive (type 48)
		 24  L cylinders
		 25  H cylinders
		 26  heads
		 27  L Write Precompensation Cylinder
		 28  H Write Precompensation Cylinder
		 29  ??
		 2A  L cylinders parking zone
		 2B  H cylinders parking zone
		 2C  sectors

		Phoenix (386BIOS v1.10.03 1988) 1st user definable drv (type48)
		 20  L cylinders
		 21  H cylinders
		 22  heads
		 23  L Write Precompensation Cylinder
		 24  H Write Precompensation Cylinder
		 25  L cylinders parking zone
		 26  H cylinders parking zone
		 27  sectors

		Phoenix (386BIOS v1.10.03 1988) 2nd user definable drv (type49)
		(when PS/2-style password option is not used)
		 35  L cylinders
		 36  H cylinders
		 37  heads
		 38  L Write Precompensation Cylinder
		 39  H Write Precompensation Cylinder
		 3A  L cylinders parking zone
		 3B  H cylinders parking zone
		 3C  sectors

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

0073	r/w	bit 7: ???

- - - - - - - - ---------------------------------------------------------------
0074-0076	secondary CMOS (Compaq)

0074	w	secondary CMOS RAM index (Compaq)

0076	r/w	secondary CMOS RAM (Compaq)

- - - - - - - - ---------------------------------------------------------------
0078		HP-Vectra  Hard Reset: NMI enable/disable
		 bit 7 = 0  disable & clear hard reset from HP-HIL controller
		       = 1  enable hard reset from HP-HIL controller chip
		 bit 6-0    reserved

-------------------------------------------------------------------------------
0078-007F ----	PC radio by CoZet Info Systems
		The I/O address range is dipswitch selectable from:
		   038-03F and 0B0-0BF
		   078-07F and 0F0-0FF
		   138-13F and 1B0-1BF
		   178-17F and 1F0-1FF
		   238-23F and 2B0-2BF
		   278-27F and 2F0-2FF
		   338-33F and 3B0-3BF
		   378-37F and 3F0-3FF
		All of these addresses show a readout of FF in initial state.
		Once started, all of the addresses show	 FB, whatever might
		happen.

-------------------------------------------------------------------------------
007C-007D ----	HP-Vectra  PIC 3   (Programmable Interrupt Controller 8259)
		cascaded to first controller.
		used for keyboard and input device interface.
007C	r/w	HP-Vectra  PIC 3  see at 0020  PIC 1
007D	r/w	HP-Vectra  PIC 3  see at 0021  PIC 1

-------------------------------------------------------------------------------
0080	w	Manufacturing Diagnostics port

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

0080	r/w	extra page register (temporary storage)
0081	r/w	DMA channel 2 address byte 2
0082	r/w	DMA channel 3 address byte 2
0083	r/w	DMA channel 1 address byte 2
0084	r/w	extra page register
0085	r/w	extra page register
0086	r/w	extra page register
0087	r/w	DMA channel 0 address byte 2
0088	r/w	extra page register
0089	r/w	DMA channel 6 address byte 2
0089	r/w	DMA channel 7 address byte 2
0089	r/w	DMA channel 5 address byte 2
008C	r/w	extra page register
008D	r/w	extra page register
008E	r/w	extra page register
008F	r/w	DMA refresh page register

-------------------------------------------------------------------------------
0084	  ----	Compaq POST Diagnostic

-------------------------------------------------------------------------------
0084	  ----	EISA Synchronize Bus Cycle

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

0090		Central arbitration control port
0091	r	Card selection feedback

0092	r/w	PS/2 system control port A  (port B is at 0061)
		 bit 7-6   any bit set to 1 turns activity light on
		 bit 5	   reserved
		 bit 4 = 1 watchdog timout occurred 
		 bit 3 = 0 RTC/CMOS security lock (on password area) unlocked
		       = 1 CMOS locked (done by POST)
		 bit 2	   reserved
		 bit 1 = 1 indicates A20 active
		 bit 0 = 0 system reset or write
			 1 pulse alternate reset pin (alternate CPU reset)

0094	w	system board enable/setup register
		 bit 7 = 1  enable functions
		       = 0  setup functions
		 bit 5 = 1  enables VGA
		       = 0  setup VGA

0095		reserved

0096	w	adapter enable /setup register
		 bit 3 = 1  setup adapters
		       = 0  enable registers

0097		reserved

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

00A0	r/w	NMI mask register (XT)

00A0	r/w	PIC 2  same as 0020 for PIC 1
00A1	r/w	PIC 2  same as 0021 for PIC 1 except for OCW1:
		 bit 7 = 0  reserved
		 bit 6 = 0  enable fixed disk interrupt
		 bit 5 = 0  enable coprocessor exception interrupt
		 bit 4 = 0  enable mouse interrupt
		 bit 3 = 0  reserved
		 bit 2 = 0  reserved
		 bit 1 = 0  enable redirect cascade
		 bit 0 = 0  enable real-time clock interrupt

-------------------------------------------------------------------------------
00B0-00BF ----	PC radio by CoZet Info Systems
		The I/O address range is dipswitch selectable from:
		   038-03F and 0B0-0BF
		   078-07F and 0F0-0FF
		   138-13F and 1B0-1BF
		   178-17F and 1F0-1FF
		   238-23F and 2B0-2BF
		   278-27F and 2F0-2FF
		   338-33F and 3B0-3BF
		   378-37F and 3F0-3FF
		All of these addresses show a readout of FF in initial state.
		Once started, all of the addresses show	 FB, whatever might
		happen.

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

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

00C0	r/w	DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)
00C2	r/w	DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)
00C4	r/w	DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)
00C6	r/w	DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)
00C8	r/w	DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)
00CA	r/w	DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)
00CC	r/w	DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)
00CE	r/w	DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)

00D0	r	DMA channel 4-7 status register (ISA, EISA)
		 bit 7 = 1  channel 7 request
		 bit 6 = 1  channel 6 request
		 bit 5 = 1  channel 5 request
		 bit 4 = 1  channel 4 request
		 bit 3 = 1  terminal count on channel 7
		 bit 2 = 1  terminal count on channel 6
		 bit 1 = 1  terminal count on channel 5
		 bit 0 = 1  terminal count on channel 4

00D0	w	DMA channel 4-7 command register (ISA, EISA)
		 bit 7 = 1  DACK sense active high
		       = 0  DACK sense active low
		 bit 6 = 1  DREQ sense active high
		       = 0  DREQ sense active low
		 bit 5 = 1  extended write selection
		       = 0  late write selection
		 bit 4 = 1  rotating priority
		       = 0  fixed priority
		 bit 3 = 1  compressed timing
		       = 0  normal timing
		 bit 2 = 0  enable controller
		 bit 1 = 1  enable memory-to-memory transfer
		 bit 0	    .....

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

00D4	w	DMA channel 4-7 write single mask register (ISA, EISA)
		 bit 7-3      reserved
		 bit 2	 = 0  clear mask bit
			 = 1  set mask bit
		 bit 1-0 = 00 channel 4 select
			 = 01 channel 5 select
			 = 10 channel 6 select
			 = 11 channel 7 select

00D6	w	DMA channel 4-7 mode register (ISA, EISA)
		 bit 7-6 = 00  demand mode
			 = 01  single mode
			 = 10  block mode
			 = 11  cascade mode
		 bit 5	 = 0   address increment select
			 = 1   address decrement select
		 bit 4	 = 0   autoinitialisation disable
			 = 1   autoinitialisation enable
		 bit 3-2 = 00  verify operation
			 = 01  write to memory
			 = 10  read from memory
			 = 11  reserved
		 bit 1-0 = 00  channel 4 select
			 = 01  channel 5 select
			 = 10  channel 6 select
			 = 11  channel 7 select

00D8	w	DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)
00DA	r	DMA channel 4-7 read temporary register (ISA, EISA)
00DA	w	DMA channel 4-7 master clear (ISA, EISA)
00DC	w	DMA channel 4-7 clear mask register (ISA, EISA)
00DE	w	DMA channel 4-7 write mask register (ISA, EISA)

-------------------------------------------------------------------------------
00E0-00E7 ----	Microchannel

00E0	r/w	split address register, memory encoding registers PS/2m80 only
00E1	r/w	memory register
00E3	r/w	error trace
00E4	r/w	error trace
00E5	r/w	error trace
00E7	r/w	error trace

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

00F0		disk controller
00F2		disk controller control port
00F4		disk controller status register
00F5		disk controller data port

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

00F0	w	math coprocessor clear busy latch
00F1	w	math coprocessor reset
00F8	r/w	opcode transfer
00FA	r/w	opcode transfer
00FC	r/w	opcode transfer

-------------------------------------------------------------------------------
00F9-00FF ----	PC radio by CoZet Info Systems
		The I/O address range is dipswitch selectable from:
		   038-03F and 0B0-0BF
		   078-07F and 0F0-0FF
		   138-13F and 1B0-1BF
		   178-17F and 1F0-1FF
		   238-23F and 2B0-2BF
		   278-27F and 2F0-2FF
		   338-33F and 3B0-3BF
		   378-37F and 3F0-3FF
		All of these addresses show a readout of FF in initial state.
		Once started, all of the addresses show	 FB, whatever might
		happen.

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

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

0100	r	POS register 0	Low adapter ID byte
0101	r	POS register 1	High adapter ID byte

0102	r/w	POS register 2	option select data byte 1
		 bit 0 is card enable (CDEN)

0103	r/w	POS register 3	option select data byte 2
0104	r/w	POS register 4	option select data byte 3
0105	r/w	POS register 5	option select data byte 4
		 bit 7	channel active (-CHCK)
		 bit 6	channel status

0106	r/w	POS register 6	Low subaddress extension
0107	r/w	POS register 7	High subaddress extension

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

010F	w	leftmost character on display
010E	w	second character
....	w
0108	w	eighth character

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

-------------------------------------------------------------------------------
0130-0133 ----	Adaptec 154xB/154xC SCSI adapter.
		alternate address at 0134, 0230, 0234, 0330 and 0334

-------------------------------------------------------------------------------
0134-0137 ----	Adaptec 154xB/154xC SCSI adapter.
		alternate address at 0130, 0230, 0234, 0330 and 0334

-------------------------------------------------------------------------------
0138-013F ----	PC radio by CoZet Info Systems
		The I/O address range is dipswitch selectable from:
		   038-03F and 0B0-0BF
		   078-07F and 0F0-0FF
		   138-13F and 1B0-1BF
		   178-17F and 1F0-1FF
		   238-23F and 2B0-2BF
		   278-27F and 2F0-2FF
		   338-33F and 3B0-3BF
		   378-37F and 3F0-3FF
		All of these addresses show a readout of FF in initial state.
		Once started, all of the addresses show	 FB, whatever might
		happen.

-------------------------------------------------------------------------------
0140-014F ----	SCSI (alternate Small Computer System Interface) adapter
		(1st at 0340-034F)

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

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

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

-------------------------------------------------------------------------------
0178-0179 ----	Power Management

0178	w	index selection for data port
0179	r/w	power management data

-------------------------------------------------------------------------------
0178-017F ----	PC radio by CoZet Info Systems
		The I/O address range is dipswitch selectable from:
		   038-03F and 0B0-0BF
		   078-07F and 0F0-0FF
		   138-13F and 1B0-1BF
		   178-17F and 1F0-1FF
		   238-23F and 2B0-2BF
		   278-27F and 2F0-2FF
		   338-33F and 3B0-3BF
		   378-37F and 3F0-3FF
		All of these addresses show a readout of FF in initial state.
		Once started, all of the addresses show	 FB, whatever might
		happen.

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

01ED	r/w	select internal register. Data to/from 01EF
01EE	r
01EF	r/w	reg.
		5  = 1000xxxx  for low CPU clock speed (4MHz on Morse/Mitac)
		   = 0xxxxxxx  for high CPU clock speed (16MHz on Morse/Mitac)

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

01F0	r/w	data register

01F1	r	error register
		diagnostic mode errors:
		 bit 7-3	reserved
		 bit 2-1 = 001	no error detected
			 = 010	formatter device error
			 = 011	sector buffer error
			 = 100	ECC circuitry error
			 = 101	controlling microprocessor error
		 operation mode:
		  bit 7	 = 1  bad block detected
			 = 0  block OK
		  bit 6	 = 1  uncorrectable ECC error
			 = 0  no error
		  bit 5	      reserved
		  bit 4	 = 1  ID found
			 = 0  ID not found
		  bit 3	      reserved
		  bit 2	 = 1  command completed
			 = 0  command aborted
		  bit 1	 = 1  track 000 not found
			 = 0  track 000 found
		  bit 0	 = 1  DAM not found
			 = 0  DAM found (CP-3022 always 0)

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

01F2	r/w	sector count
01F3	r/w	sector number
01F4	r/w	cylinder low
01F5	r/w	cylinder high

01F6	r/w	drive/head
		 bit 7	 = 1
		 bit 6	 = 0
		 bit 5	 = 1
		 bit 4	 = 0  drive 0 select
			 = 1  drive 1 select
		 bit 3-0      head select bits

01F7	r	status register
		 bit 7 = 1  controller is executing a command
		 bit 6 = 1  drive is ready
		 bit 5 = 1  write fault
		 bit 4 = 1  seek complete
		 bit 3 = 1  sector buffer requires servicing
		 bit 2 = 1  disk data read successfully corrected
		 bit 1 = 1  index - set to 1 each disk revolution
		 bit 0 = 1  previous command ended in an error

01F7	w	command register
		commands:
		 98 E5	 check power mode	(IDE)
		 90	 execute drive diagnostics
		 50	 format track
		 EC	 identify drive		(IDE)
		 97 E3	 idle			(IDE)
		 95 E1	 idle immediate		(IDE)
		 91	 initialize drive parameters
		 1x	 recalibrate
		 E4	 read buffer		(IDE)
		 C8	 read DMA with retry	(IDE)
		 C9	 read DMA without retry (IDE)
		 C4	 read multiplec		(IDE)
		 20	 read sectors with retry
		 21	 read sectors without retry
		 22	 read long with retry
		 23	 read long without retry
		 40	 read verify sectors with retry
		 41	 read verify sectors without retry
		 7x	 seek
		 EF	 set features		(IDE)
		 C6	 set multiple mode	(IDE)
		 99 E6	 set sleep mode		(IDE)
		 96 E2	 standby		(IDE)
		 94 E0	 standby immediate	(IDE)
		 E8	 write buffer		(IDE)
		 CA	 write DMA with retry	(IDE)
		 CB	 write DMA with retry	(IDE)
		 C5	 write multiple		(IDE)
		 E9	 write same		(IDE)
		 30	 write sectors with retry
		 31	 write sectors without retry
		 32	 write long with retry
		 33	 write long without retry
		 3C	 write verify		(IDE)
		 9A	 vendor unique		(IDE)
		 C0-C3	 vendor unique		(IDE)
		 8x	 vendor unique		(IDE)
		 F0-F4	 EATA standard		(IDE)
		 F5-FF	 vendor unique		(IDE)

-------------------------------------------------------------------------------
01F8	  ----	???

01F8	r/w	???
		bit 0: A20 gate control (set = A20 enabled, clear = disabled)

-------------------------------------------------------------------------------
01F9-01FF ----	PC radio by CoZet Info Systems
		The I/O address range is dipswitch selectable from:
		   038-03F and 0B0-0BF
		   078-07F and 0F0-0FF
		   138-13F and 1B0-1BF
		   178-17F and 1F0-1FF
		   238-23F and 2B0-2BF
		   278-27F and 2F0-2FF
		   338-33F and 3B0-3BF
		   378-37F and 3F0-3FF
		All of these addresses show a readout of FF in initial state.
		Once started, all of the addresses show	 FB, whatever might
		happen.

-------------------------------------------------------------------------------
0200-020F ----	Game port reserved I/O address space  
0200-0207 ----	Game port, eight identical addresses on some boards

0201	r	read joystick position and status
		 bit 7	status B joystick button 2 / D paddle button
		 bit 6	status B joystick button 1 / C paddle button
		 bit 5	status A joystick button 2 / B paddle button
		 bit 4	status A joystick button 1 / A paddle button
		 bit 3	B joystick Y coordinate	   / D paddle coordinate
		 bit 2	B joystick X coordinate	   / C paddle coordinate
		 bit 1	A joystick Y coordinate	   / B paddle coordinate
		 bit 0	A joystick X coordinate	   / A paddle coordinate

	w	fire joysticks four one-shots

-------------------------------------------------------------------------------
0200-02FF ----	Sunshine uPW48, programmer for EPROM version CPU's 8748/8749
		(4 bit DIP switch installable in the range 20x-2Fx)
0200-0203	adresses of the 8255 on the uPW48
0208-020B	adresses of ??? on the uPW48 (all showing zeros)


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

0210	w	latch expansion bus data
	r	verify expansion bus data
0211	w	clear wait, test latch
	r	High byte data address
0212	r	Low byte data address
0213	w	0=enable,  1=disable expansion unit
0214	w	latch data  (receiver card port)
	r	read data   (receiver card port)
0215	r	High byte of address, then Low byte   (receiver card port)

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

0220	r/w	Left speaker -- Status / Address port
0221	w	Left speaker -- Data port
0222	r/w	Right speaker -- Status / Address port
		Address:
		    01 -- Enable waveform control
		    02 -- Timer #1 data
		    03 -- Timer #2 data
		    04 -- Timer control flags
		    08 -- Speech synthesis mode
		 20-35 -- Amplitude Modulation / Vibrato
		 40-55 -- Level key scaling / Total level
		 60-75 -- Attack / Decay rate
		 80-95 -- Sustain / Release rate
		 A0-B8 -- Octave / Frequency Number
		 C0-C8 -- Feedback / Algorithm
		 E0-F5 -- Waveform Selection
0223	w	Right speaker -- Data port

SeeAlso: 0388-0389

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

-------------------------------------------------------------------------------
0220-022F ----	Soundblaster PRO 2.0

-------------------------------------------------------------------------------
0220-022F ----	Soundblaster PRO 4.0
0220	r	left FM status port
0220	w	left FM music register address port (index)
0221	r/w	left FM music data port
0222	r	right FM status port
0222	w	right FM music register address port (index)
0223	r/w	right FM music data port
0224	w	mixer register address port (index)
0225	r/w	mixer data port
0226	w	DSP reset
0228	r	FM music status port
0228	w	FM music register address port (index)
0229	w	FM music data port
022A	r	DSP read data (voice I/O and Midi)
022C	w	DSP write data / write command
022C	r	DSP write buffer status (bit 7)
022E	r	DSP data available status (bit 7)

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

-------------------------------------------------------------------------------
0230-0233 ----	Adaptec 154xB/154xC SCSI adapter.
		alternate address at 0130, 0134, 0230, 0330 and 0334

-------------------------------------------------------------------------------
0234-0237 ----	Adaptec 154xB/154xC SCSI adapter.
		alternate address at 0130, 0134, 0230, 0330 and 0334

-------------------------------------------------------------------------------
0240-024F ----	Gravis Ultra Sound by Advanced Gravis
	 The I/O address range is dipswitch selectable from:
	   0200-020F and 0300-030F
	   0210-021F and 0310-031F
	   0220-022F and 0320-032F
	   0230-023F and 0330-033F
	   0240-024F and 0340-034F
	   0250-025F and 0350-035F
	   0260-026F and 0360-036F
	   0270-027F and 0370-037F

0240	w	Mix Control register
		 bit 6	   Control Register Select (see 024B)
		 bit 5	   Enable MIDI Loopback
		 bit 4	   Combine GF1 IRQ with MIDI IRQ
		 bit 3	   Enable Latches
		 bit 2	   Enable MIC IN
		 bit 1	   Disable LINE OUT
		 bit 0	   Disable LINE IN
0241	r	Read Data
	w	Trigger Timer
0246	r	IRQ Status Register
		 bit 7	   DMA TC IRQ
		 bit 6	   Volume Ramp IRQ
		 bit 5	   WaveTable IRQ
		 bit 3	   Timer 2 IRQ
		 bit 2	   Timer 1 IRQ
		 bit 1	   MIDI Receive IRQ
		 bit 0	   MIDI Transmit IRQ
0248	r/w	Timer Control Reg
		 Same a ADLIB Board (look at 0200)
0249	w	Timer Data
		 bit 7	   Reset Timr IRQ
		 bit 6	   Mask Timer 1
		 bit 5	   Mask Timer 2
		 bit 1	   Timer 2 Start
		 bit 0	   Timer 1 Start
024B	w	IRQ Control Register (0240 bit 6 = 1)
		 bit 6	   Combine Both IRQ
		 bit 5-3   MIDI IRQ Selector
			   = 000  No IRQ
			   = 001  IRQ 2
			   = 010  IRQ 5
			   = 011  IRQ 3
			   = 100  IRQ 7
			   = 101  IRQ 11
			   = 110  IRQ 12
			   = 111  IRQ 15
		 bit 2-0   GF1 IRQ Selector
			   = 000  No IRQ
			   = 001  IRQ 2
			   = 010  IRQ 5
			   = 011  IRQ 3
			   = 100  IRQ 7
			   = 101  IRQ 11
			   = 110  IRQ 12
			   = 111  IRQ 15
		DMA Control Register (0240 bit 6 = 0)
		 bit 6	   Combine Both IRQ
		 bit 5-3   DMA Select Register 2
			   = 000  No DMA
			   = 001  DMA 1
			   = 010  DMA 3
			   = 011  DMA 5
			   = 100  DMA 6
			   = 101  DMA 7 
		 bit 2-0   DMA Select Register 1
			   = 000  No DMA
			   = 001  DMA 1
			   = 010  DMA 3
			   = 011  DMA 5
			   = 100  DMA 6
			   = 101  DMA 7 
024F	r/w	Register Controls (rev 3.4+)

SeeAlso: 0340-034F, 0746
   
-------------------------------------------------------------------------------
0240-0257 ----	RTC (alternate Real Time Clock for XT)	 (1st at 0340-0357)
		(used by TIMER.COM v1.2 which is the 'standard' timer program)

-------------------------------------------------------------------------------
0258-025F ----	Intel Above Board

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

0278	w	data port
0279	r/w	status port
027A	r/w	control port

-------------------------------------------------------------------------------
02A0-02A7 ----	Sunshine EW-901BN, EW-904BN
		EPROM writer card (release 1986) for EPROMs up to 27512
02A0-02A3	adresses of the 8255 on the EW-90xBN


-------------------------------------------------------------------------------
02A2-02A3 ----	MSM58321RS clock

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

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

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

-------------------------------------------------------------------------------
02E0-02EF ----	GPIB (General Purpose Interface Bus, IEEE 488 interface)
		(GAB 0 on XT)
02E1		GPIB (adapter 0)
02E2
02E3

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

02E2		data aquisition (adapter 0)
02E3		data aquisition (adapter 0)

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

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

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

02E8	r	display status
02E8	w	horizontal total
02EA	w	DAC mask
02EB	w	DAC read index
02EC	w	DAC write index
02ED	w	DAC data

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

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

02F8	w	transmitter holding register
02F8	r	receiver buffer register
	r/w	divisor latch, low byte	  when DLAB=1
02F9	r/w	divisor latch, high byte  when DLAB=1
	r/w	interrupt enable register when DLAB=0
02FA	r	interrupt identification register
02FB	r/w	line control register
02FC	r/w	modem control register
02FD	r	line status register
02FF	r/w	scratch register

-------------------------------------------------------------------------------
0300	  ---- Award POST Diagnostic

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

-------------------------------------------------------------------------------
0300-0303 ----	Panasonic 52x CD-ROM SCSI Miniport
		Alternate addresses at 0320, 0340, 0360, and 0380

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

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

-------------------------------------------------------------------------------
0300-031F ----	prototype cards
		Periscope hardware debugger

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

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

0320	r/w	data register

0321	w	reset controller
	r	read controller hardware status
		 bit 7-6 = 0
		 bit 5	      logical unit number
		 bit 4-2 = 0
		 bit 1	 = 0  no error
		 bit 0	 = 0 

0322	r	read DIPswitch setting on XT controller card
	w	generate controller-select pulse
0323	w	write pattern to DMA and INT mask register

0324-0327 ----	XT HDC 2   (Hard Disk Controller)
0328-032B ----	XT HDC 3   (Hard Disk Controller)
032C-032F ----	XT HDC 4   (Hard Disk Controller)

-------------------------------------------------------------------------------
0330-0331 ----	MIDI interface

-------------------------------------------------------------------------------
0330-0333 ----	Adaptec 154xB/154xC SCSI adapter. default address.
		alternate address at 0130, 0134, 0230, 0234 and 0334

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

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

-------------------------------------------------------------------------------
0334-0337 ----	Adaptec 154xB/154xC SCSI adapter.
		alternate address at 0130, 0134, 0230, 0234 and 0330

-------------------------------------------------------------------------------
0338	  ----	AdLib soundblaster card

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

-------------------------------------------------------------------------------
0340-034F ----	SCSI (1st Small Computer System Interface) adapter
		(alternate at 0140-014F)

-------------------------------------------------------------------------------
0340-034F ----	Gravis Ultra Sound by Advanced Gravis
	 The I/O address range is dipswitch selectable from:
	   0200-020F and 0300-030F
	   0210-021F and 0310-031F
	   0220-022F and 0320-032F
	   0230-023F and 0330-033F
	   0240-024F and 0340-034F
	   0250-025F and 0350-035F
	   0260-026F and 0360-036F
	   0270-027F and 0370-037F
   
0340	w	MIDI Control
		 bit 7	   Receive IRQ (1 = enabled)
		 bit 5-6   Xmit IRQ
		 bit 0-1   Master Reset (1 = enabled)
	r	MIDI Status
		 bit 7	   Interrupt pending
		 bit 5	   Overrun Error
		 bit 4	   Framing Error
		 bit 1	   Transmit Register Empty
		 bit 0	   Receive Register Empty
0341	w	MIDI Transmit Data
	r	MIDI Receive Data
0342	r/w	GF1 Page Register / Voice Select
0343	r/w	GF1/Global Register Select
   
		 Global Registers, NOT voice specific:
		 41   r/w   DRAM DMA Control
			     bit 7	 Invert MSB
			     bit 6	 Data Size (8/16 bits)
			     bit 5	 DMA Pending
			     bit 3-4	 DMA Rate Divider
			     bit 2	 DMA Channel Width (8/16 bits)
			     bit 1	 DMA Direction (1 = read)
			     bit 0	 DMA Enable
		 42   w	    DMA Start Address
			     bits 15-0	 DMA Address Lines 19-4
		 43   w	    DRAM I/O Address LOW
		 44   w	    DRAM I/O Address HIGH
			     bits 0-3	 Upper 4 Address Lines
		 45   r/w   Timer Control
			     bit 3	 Enable Timer 2
			     bit 2	 Enable Timer 1
		 46   w	    Timer 1 Count (granularity of 80 micro sec)
		 47   w	    Timer 2 Count (granulatity of 320 micro sec)
		 48   w	    Sampling Frequency
			     rate = 9878400 / (16 * (FREQ + 2))
		 49   r/w   Sampling Control
			     bit 7	 Invert MSB
			     bit 6	 DMA IRQ pending
			     bit 5	 DMA IRQ enable
			     bit 2	 DMA width (8/16 bits)
			     bit 1	 Mode (mone/stereo)
			     bit 0	 Start Sampling
		 4B   w	    Joystick Trim DAC
		 4C   r/w   RESET
			     bit 2	 GF1 Master IRQ Enable
			     bit 1	 DAC Enable
			     bit 0	 Master Reset
   
		 Voice specific registers:
		 00   w	    Voice Control
			     bit 7	 IRQ pending
			     bit 6	 Direction
			     bit 5	 Enable WAVE IRQ
			     bit 4	 Enable bi-directional Looping
			     bit 3	 Enable Looping
			     bit 2	 Size data (8/16 bits)
			     bit 1	 Stop Voice
			     bit 0	 Voice Stopped
		 01   w	    Frequency Control
			     bit 15-10	 Integer Portion
			     bit 9-1	 Fractional Portion
		 02   w	    Start Address HIGH
			     bit 12-0	 Address Lines 19-7
		 03   w	    Start Address LOW
			     bit 15-9	 Address Lines 6-0
			     bit 8-5	 Fractional Part of Start Address
		 04   w	    End Address HIGH
			     bit 12-0	 Address Lines 19-7
		 05   w	    End Address LOW
			     bit 15-9	 Address Lines 6-0
			     bit 8-5	 Fractional Part of End Address
		 06   w	    Volume Ramp Rate
			     bit 5-0	 Amount added
			     bit 7-6	 Rate
		 07   w	    Volume Ramp Start
			     bit 7-4	 Exponent
			     bit 3-0	 Mantissa
		 08   w	    Volume Ramp End
			     bit 7-4	 Exponent
			     bit 3-0	 Mantissa
		 09   w	    Current Volume
			     bit 15-12	 Exponent
			     bit 11-4	 Mantissa
		 0A   w	    Current Address HIGH
			     bit 12-0	 Address Lines 19-7
		 0B   w	    Current Address LOW
			     bit 15-9	 Address Lines 6-0
			     bit 8-0	 Fractional Position
		 0C   w	    Pan Position
			     bit 3-0	 Pan Postion
		 0D   w	    Volume Control
			     bit 7	 IRQ Pending
			     bit 6	 Direction
			     bit 5	 Enable Volume Ramp IRQ
			     bit 4	 Enable bi-directional Looping
			     bit 3	 Enable Looping
			     bit 2	 Rollover Condition
			     bit 1	 Stop Ramp
			     bit 0	 Ramp Stopped
		 0E   w	    Active Voices
			     bit 5-0	 #Voices -1  (allowed 13 - 31)
		 0F   w	    IRQ Source Register
			     bit 7	 WaveTable IRQ pending
			     bit 6	 Volume Ramp IRQ pending
			     bit 4-0	 Voice Number
		 80   r	    Voice Control (see 00)
		 81   r	    Frequency Control (see 01)
		 82   r	    Start Address HIGH (see 02)
		 83   r	    Start Address LOW (see 03)
		 84   r	    End Address HIGH (see 04)
		 85   r	    End Address LOW (see 05)
		 86   r	    Volume Ramp Rate (see 06)
		 87   r	    Volume Ramp Start (see 07)
		 88   r	    Volume Ramp End (see 08)
		 89   r	    Current Volume (see 09)
		 8A   r	    Current Address HIGH (see 0A)
		 8B   r	    Current Address LOW (see 0B)
		 8C   r	    Pan Position (see 0C)
		 8D   r	    Volume Control (see 0D)
		 8E   r	    Active Voices (see 0E)
		 8F   r	    IRQ Status (see 0F)
		   
0344	r/w	GF1/Global Data Low Byte (16 bits)
0345	r/w	GF1/Global Data High Byte (8 bits)
0346	w	Mixer Data Port
0347	r/w	GF1 DRAM
		 Direct Read Write at Loction pointed with regs 43 and 44

SeeAlso: 0240-024F, 0746
   
-------------------------------------------------------------------------------
0340-0357 ----	RTC (1st Real Time Clock for XT), (alternate at 0240-0257)
		(used by TIMER.COM v1.2 which is the 'standard' timer program)

0340	r/w	0.01 seconds  0-99
0341	r/w	0.1 seconds   0-99
0342	r/w	seconds	      0-59
0343	r/w	minutes	      0-59
0343	r/w	hours	      0-23
0345	r/w	day of week   1-7
0346	r/w	day of month  1-31
0347	r/w	month	      1-12
0348
0349	r/w	year	      0-99
034A
034B
034C
034D
034E
034F
0350	r	status?
0351	
0352
0353
0354	r	status?
0355
0356
0357

-------------------------------------------------------------------------------
0348-0357 ----	DCA 3278

-------------------------------------------------------------------------------
034C-034F ----	Gravis UltraMax by Advanced Gravis
	 The I/O address range is dipswitch selectable from:
	   0200-020F and 0300-030F
	   0210-021F and 0310-031F
	   0220-022F and 0320-032F
	   0230-023F and 0330-033F
	   0240-024F and 0340-034F
	   0250-025F and 0350-035F
	   0260-026F and 0360-036F
	   0270-027F and 0370-037F

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

035A	r	bit 7:	  SCSI parity disabled
		bits 6-5: DMA channel
			(00 = channel 0, 01 = 5, 10 = 6, 11 = 7)
		bits 4-3: IRQ number
			(00 = IRQ9, 01 = IRQ10, 10 = IRQ11, 11 = IRQ12)
		bits 2-0: SCSI ID
035B	r	bit 7: DMA transfer mode (clear for PIO)
		bit 6: boot enabled
		bits 5-4: boot type
			00 ???
			01 boot from floppy
			10 print configured options
			11 boot from hard disk
		bit 3: enable sync negotiation
		bit 2: enable target disconnection
		bits 1-0: unused???

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

-------------------------------------------------------------------------------
0360-036F ----	PC network (AT)
0360-0367 ----	PC network (XT only)

-------------------------------------------------------------------------------
0360-036F ----	National Semiconductor DP8390(1)C/NS3249C network chipset
Note:	cards based on this IEEE 802.3 networking chipset can use any range
	of 16 consecutive addresses, and provide a total of four pages of
	sixteen register

Page 0	r					w

00	Command	reg.			CR	Command reg.		CR
01	current local DMA address 0	CLDA0	page start reg.		PSTART
02	current local DMA address 1	CLDA1	page stop reg.		PSTOP
03	boundary pointer		BNRY	boundary pointer	BNRY
04	transmit status reg.		TSR	Tx page start address	TPSR
05	number of collisions reg.	NCR	Tx byte count reg.0	TBCR0 
06	FIFO					Tx byte count reg.1	TBCR1
07	interrupt status reg.		ISR	interrupt status reg.	ISR
08	current remote DMA address 0	CRDA0	remote start addr.reg.0	RSAR0
09	current remote DMA address 1	CRDA1	remote start addr.reg.1	RSAR1
0A	reserved				remote byte count reg.0	RBCR0
0B	reserved				remote byte count reg.1	RBCR1
0C	receive status reg.		RSR	Rx configuration reg.	RCR
0D	tally counter 0 (frame errors)	CNTR0	Tx configuration reg.	TCR
0E	tally counter 1 (CRC errors)	CNTR1	data configuration reg.	DCR
0F	tally counter 2 (missed pkt)	CNTR2	interrupt mask reg.	IMR

Page 1	r/w

00	Command			CR
01	physical address reg.0	PAR0
02	physical address reg.1	PAR1		
03	physical address reg.2	PAR2		
04	physical address reg.3	PAR3		
05	physical address reg.4	PAR4		
06	physical address reg.5	PAR5		
07	current page reg.	CURR			
08	multicast address reg.0	MAR0		
09	multicast address reg.1	MAR1		
0A	multicast address reg.2	MAR2		
0B	multicast address reg.3	MAR3		
0C	multicast address reg.4	MAR4		
0D	multicast address reg.5	MAR5		
0E	multicast address reg.6	MAR6		
0F	multicast address reg.7	MAR7		

Page 2	r					w
	diagnostics page - should never be modfied under normal operation.

00	Command				CR	Command			 CR
01	page start reg.			PSTART	current local DMA addr.0 CLDA0
02	page stop reg.			BPSTOP	current local DMA addr.1 CLDA1
03	remote next packet pointer		remote next packet pointer
04	Tx page start address		TPSR	reserved
05	local next packet pointer		local next packet pointer
06	address counter (upper)			address counter (upper)
07	address counter (lower)			address counter (lower)
08	reserved				reserved
09	reserved				reserved
0A	reserved				reserved
0B	reserved				reserved
0C	Rx configuration reg.		RCR	reserved
0D	Tx configuration reg.		TCR	reserved
0E	data configuration reg.		DCR	reserved
0F	interrupt mask reg.		IMR	reserved

Page 3	r					w
	Test Page - should never be modified !

00	Command CR				Command CR

	bit0=1	software reset command. 1=offline  0=online
	bit1=0	activate NIC after reset command
	bit2=1	start transmision of a packet
	bit3-5	remote DMA command
		 000 not allowed
		 001 remote read
		 010 remote write
		 011 send packet
		 1xx abort/complete rmote DMA
	bit 6,7 page select
		 00 register page 0
		 01 register page 1
		 10 register page 2
		 11 register page 3

-------------------------------------------------------------------------------
0370-0377 ----	FDC 2  (2nd Floppy Disk Controller)	first FDC at 03F0
		(8272, 8272A, NEC765)
		(82072, 82077AA for perpendicular recording at 2.8Mb)

0370	r	diskette Extra High Density controller board jumpers (AT)
0370	r	diskette controller status A (PS/2, PS/2 model 30)
0371	r	diskette controller status B (PS/2, PS/2 model 30)
0372	w	diskette controller DOR (Digital Output Register)
0374	r	diskette controller main status register
0374	w	diskette controller datarate select register
0375	r/w	diskette controller command/data register
0376	r/w	(2nd FIXED disk controller data register)
0377	r	diskette controller DIR (Digital Input Register)
0377	w	select register for diskette data transfer rate

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

0378	w	data port
0379	r/w	status port
037A	r/w	control port

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

0380	r/w	 on board 8255 port A, internal/external sense
0381	r/w	 on board 8255 port B, external modem interface
0382	r/w	 on board 8255 port C, internal control and gating
0383	r/w	 on board 8255 mode register
0384	r/w	 on board 8253 channel square wave generator
0385	r/w	 on board 8253 channel 1 inactivity time-out
0386	r/w	 on board 8253 channel 2 inactivity time-out
0387	r/w	 on board 8253 mode register
0388	r/w	 on board 8273 read: status  write: command
0389	r/w	 on board 8273 read: response  write: parameter
038A	r/w	 on board 8273 transmit interrupt status
038B	r/w	 on board 8273 receiver interrupt status
038C	r/w	 on board 8273 data

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

0388	r/w	Both Speakers -- Status / Address port
		Address:
		     01 -- Enable waveform control
		     02 -- Timer #1 data
		     03 -- Timer #2 data
		     04 -- Timer control flags
		     08 -- Speech synthesis mode
		  20-35 -- Amplitude Modulation / Vibrato
		  40-55 -- Level key scaling / Total level
		  60-75 -- Attack / Decay rate
		  80-95 -- Sustain / Release rate
		  A0-B8 -- Octave / Frequency Number
		  C0-C8 -- Feedback / Algorithm
		  E0-F5 -- Waveform Selection
0389	w	Data port

SeeAlso: 0220-0223

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

-------------------------------------------------------------------------------
0390-0397 ----	Sunshine EW-901B, EW-904B
		EPROM writer card for EPROMs up to 27512
0390-0393	adresses of the 8255 on the EW-90xB

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

0390-0393	(adapter 0)	(XT)

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

03A0	r/w	 on board 8255 port A, internal/external sense
03A1	r/w	 on board 8255 port B, external modem interface
03A2	r/w	 on board 8255 port C, internal control and gating
03A3	r/w	 on board 8255 mode register
03A4	r/w	 on board 8253 counter 0 unused
03A5	r/w	 on board 8253 channel 1 inactivity time-out
03A6	r/w	 on board 8253 channel 2 inactivity time-out
03A7	r/w	 on board 8253 mode register
03A8	r/w	 on board 8251 data
03A9	r/w	 on board 8251 command/mode/status register

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

03B0		same as 03B4
03B1		same as 03B5
03B2		same as 03B4
03B3		same as 03B5
03B4	w	MDA CRT index register	 (EGA/VGA)
		selects which register (0-11h) is to be accessed through 3B5
03B5	r/w	MDA CRT data register	 (EGA/VGA)
		selected by port 3B4. registers C-F may be read
		 00  horizontal total
		 01  horizontal displayed
		 02  horizontal sync position
		 03  horizontal sync pulse width
		 04  vertical total
		 05  vertical displayed
		 06  vertical sync position
		 07  vertical sunc pulse width
		 08  interlace mode
		 09  maximum scan lines
		 0A  cursor start
		 0B  cursor end
		 0C  start address high
		 0D  start address low
		 0E  cursor location high
		 0F  cursor location low
		 10  light pen high
		 11  light pen low
03B6		same as 03B4
03B7		same as 03B5
03B8	r/w	MDA mode control register
		 bit 7 not used
		 bit 6 not used
		 bit 5 enable blink
		 bit 4 not used
		 bit 3 video enable
		 bit 2 not used
		 bit 1 not used
		 bit 0 high resolution mode

03B9		reserved for color select register on color adapter

03BA	r	CRT status register	 EGA/VGA: input status 1 register
		 bit 7	 (MSD says) if this bit changes within 8000h reads then
		  bit 6-4 = 000 = adapter is Hercules or compatible
			    001 = adapter is Hercules+
			    101 = adapter is Hercules InColor
				  else: adapter is unknown
		 bit 3	 black/white video
		 bit 2-1 reserved
		 bit 0	 horizontal drive

03BA	w	EGA/VGA feature control register

03BB		reserved for light pen strobe reset

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

03BC	w	data port
03BD	r/w	status port
		 bit 7 = 0  busy
		 bit 6 = 0  acknowledge
		 bit 5 = 1  out of paper
		 bit 4 = 1  printer is selected
		 bit 3 = 0  error
		 bit 2 = 0  IRQ has occurred
		 bit 1-0    reserved

03BE	r/w	control port
		 bit 7-5    reserved
		 bit 4 = 1  enable IRQ
		 bit 3 = 1  select printer
		 bit 2 = 0  initialize printer
		 bit 1 = 1  automatic line feed
		 bit 0 = 1  strobe

-------------------------------------------------------------------------------
03BF	r/w	Hercules configuration switch register
		 bit 7-2
		 bit 1 = 0  disables upper 32K of graphics mode buffer
			 1  enables upper 32K of graphics mode buffer
		 bit 0 = 0  prevents graphics mode
			 1  allows graphics mode

-------------------------------------------------------------------------------
03C0-03C7 ----	Sunshine EW-901, EW-901A, EW-904, EW-904A
		EPROM writer card for EPROMs up to 27512
03C0-03C3	adresses of the 8255 on the EW-90x

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

03C0	(r)/w	EGA VGA ATC index/data register
03C1	r	VGA	other attribute register
03C2	r	EGA VGA input status 0 register
	w	VGA	miscellaneous output register
03C3	r/w	VGA	video subsystem enable (see also port 46E8h)
			for IBM, motherboard VGA only
03C4	w	EGA	TS index register
	r/w	VGA	sequencer index register
03C5	w	EGA	TS data register
	r/w	VGA	other sequencer register
03C6	r/w	VGA	PEL mask register
03C7	r/w	VGA	PEL address read mode
	r	VGA	DAC state register
03C8	r/w	VGA	PEL address write mode
03C9	r/w	VGA	PEL data register
03CA	w	EGA	graphics 2 position register
	r	VGA	feature control register
03CC	w	EGA	graphics 1 position register
	r	VGA	miscellaneous output register
03CE	w	EGA	GDC index register
	r/w	VGA	graphics address register
03CF	w	EGA	GDC data register
	r/w	VGA	other graphics register

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

03CE	w	graphics address register (index for next port)
03CF	r/w	other graphics register
		Index
		 0Ch	r	controller version
				2Fh Advanced VGA
				37h early QVision 1024
				71h QVision 1280 or later QVision 1024
		 0Dh		extended controller version
		 0Eh		extended controller capabilities
		 0Fh		environment info
		 54h		available memory
		 55h		phase-locked-loop clock
		 56h-57h	controller capabilities

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

03D0		same as 03D4
03D1		same as 03D5
03D2		same as 03D4
03D3		same as 03D5
03D4	w	CRT (6845) index register   (EGA/VGA)
		selects which register (0-11h) is to be accessed through 3B5
03D5	w	CRT (6845) data register    (EGA/VGA)
		selected by port 3B4. registers C-F may be read
		 (for registers see at 3B5)
03D6		same as 03D4
		(under OS/2, reads return 0 if full-screen DOS session,
		nonzero if windowed DOS session)
03D7		same as 03D5
03D8	r/w	CGA mode control register  (except PCjr)
		 bit 7-6      not used
		 bit 5	 = 1  blink enabled
		 bit 4	 = 1  640*200 graphics mode
		 bit 3	 = 1  video enabled
		 bit 2	 = 1  monochrome signal
		 bit 1	 = 0  text mode
			 = 1  320*200 graphics mode
		 bit 0	 = 0  40*25 text mode
			 = 1  80*25 text mode

03D9	r/w	CGA palette register
		 bit 7-6      not used
		 bit 5	 = 0 active color set: red, green brown
			 = 1 active color set: cyan, magenta, white
		 bit 4	     intense colors in graphics, background colors text
		 bit 3	     intense border in 40*25, intense background in
			     320*200, intense foreground in 640*200
		 bit 2	     red border in 40*25, red background in 320*200,
			     red foreground in 640*200
		 bit 1	     green border in 40*25, green background in
			     320*200, green foreground in 640*200
		 bit 0	     blue border in 40*25, blue background in 320*200,
			     blue foreground in 640*200

03DA	r	CGA status register	EGA/VGA: input status 1 register
		 bit 7-4     not used
		 bit 3 = 1   in vertical retrace
		 bit 2 = 1   light pen switch is off
		 bit 1 = 1   positive edge from light pen has set trigger
		 bit 0 = 0   do not use memory
		       = 1   memory access without interfering with display

03DA	w	EGA/VGA feature control register

03DB	w	clear light pen latch
03DC	r/w	preset light pen latch

03DF		CRT/CPU page register  (PCjr only)

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

-------------------------------------------------------------------------------
03F0-03F7 ----	FDC 1  (1st Floppy Disk Controller)	second FDC at 0370
		(8272, 8272A, NEC765)
		(82072, 82077AA for perpendicular recording at 2.8Mb)

03F0	r	diskette EHD controller board jumper settings (82072AA)
		 bit 7-6      drive 3
		 bit 5-4      drive 2
		 bit 3-2      drive 1
		 bit 1-0      drive 0
			 = 00  1.2Mb
			 = 01  720Kb
			 = 10  2.8Mb
			 = 11  1.4Mb

03F0	r	diskette controller status A (PS/2)
		 bit 7	 interrupt pending
		 bit 6	 -DRV2	second drive installed
		 bit 5	 step
		 bit 4	 -track 0
		 bit 3	 head 1 select
		 bit 2	 -index
		 bit 1	 -write protect
		 bit 0	 +direction

03F0	r	diskette controller status A (PS/2 model 30)
		 bit 7	 interrupt pending
		 bit 6	 DRQ
		 bit 5	 step F/F
		 bit 4	 -track 0
		 bit 3	 head 1 select
		 bit 2	 +index
		 bit 1	 +write protect
		 bit 0	 -direction

03F1	r	diskette controller status B (PS/2)
		 bit 7-6  =1 reserved
		 bit 5	  drive select (0=A:, 1=B:)
		 bit 4	  write data
		 bit 3	  read data
		 bit 2	  write enable
		 bit 1	  motor enable 1
		 bit 0	  motor enable 0

03F1	r	diskette controller status B (PS/2 model 30)
		 bit 7	  -DRV2	second drive installed
		 bit 6	  -DS1
		 bit 5	  -DS0
		 bit 4	  write data F/F
		 bit 3	  read data F/F
		 bit 2	  write enable F/F
		 bit 1	  -DS3
		 bit 0	  -DS2

03F2	w	diskette controller DOR (Digital Output Register)
		 bit 7-6    reserved on PS/2
		 bit 7 = 1  drive 3 motor enable
		 bit 6 = 1  drive 2 motor enable
		 bit 5 = 1  drive 1 motor enable
		 bit 4 = 1  drive 0 motor enable
		 bit 3 = 1  diskette DMA enable (reserved PS/2)
		 bit 2 = 1  FDC enable	(controller reset)
		       = 0  hold FDC at reset
		 bit 1-0    drive select (0=A 1=B ..)

03F3		tape drive register (on the 82077AA)
		 bit 7-2      reserved, tri-state
		 bit 1-0      tape select
			 = 00  none, drive 0 cannot be a tape drive.
			 = 01  drive1
			 = 10  drive2
			 = 11  drive3

03F4	r	diskette controller main status register
		 bit 7 = 1  RQM	 data register is ready
			 0  no access is permitted
		 bit 6 = 1  transfer is from controller to system
			 0  transfer is from system to controller
		 bit 5 = 1  non-DMA mode
		 bit 4 = 1  diskette controller is busy
		 bit 3 = 1  drive 3 busy (reserved on PS/2)
		 bit 2 = 1  drive 2 busy (reserved on PS/2)
		 bit 1 = 1  drive 1 busy (= drive is in seek mode)
		 bit 0 = 1  drive 0 busy (= drive is in seek mode)
		Note:	in non-DMA mode, all data transfers occur through
			  port 03F5h and the status registers (bit 5 here
			  indicates data read/write rather than than
			  command/status read/write)

03F4	w	diskette controller data rate select register
		 bit 7-2      reserved on 8272
		 bit 7	 = 1  software reset (self clearing)	82072/82077AA
		 bit 6	 = 1  power down			82072/82077AA
		 bit 5	 = 0  reserved on 8272 and 82077AA
			      PLL select bit on 82072
		 bit 4-2      write precompensation value, 000 default
		 bit 1-0      data rate select
			 = 00  500 Kb/S MFM	250 Kb/S FM
			 = 01  300 Kb/S MFM	150 Kb/S FM
			 = 10  250 Kb/S MFM	125 Kb/S FM
			 = 11  1Mb/S	MFM	illegal	 FM on 8207x

03F5	r	diskette command/data register 0 (ST0)
		 bit 7-6      last command status
			 = 00  command terminated successfully
			 = 01  command terminated abnormally
			 = 10  invalid command
			 = 11  terminated abnormally by change in ready signal
		 bit 5	 = 1  seek completed
		 bit 4	 = 1  equipment check occurred after error
		 bit 3	 = 1  not ready
		 bit 2	 = 1  head number at interrupt
		 bit 1-0 = 1  unit select (0=A 1=B .. )
			      (on PS/2	01=A  10=B)

		status register 1 (ST1)
		 bit 7	    end of cylinder; sector# greater then sectors/track
		 bit 6 = 0
		 bit 5 = 1  CRC error in ID or data field
		 bit 4 = 1  overrun
		 bit 3 = 0
		 bit 2 = 1  sector ID not found
		 bit 1 = 1  write protect detected during write
		 bit 0 = 1  ID address mark not found

		status register 2 (ST2)
		 bit 7 = 0
		 bit 6 = 1  deleted Data Address Mark detected
		 bit 5 = 1  CRC error in data
		 bit 4 = 1  wrong cylinder detected
		 bit 3 = 1  scan command equal condition satisfied
		 bit 2 = 1  scan command failed, sector not found
		 bit 1 = 1  bad cylinder, ID not found
		 bit 0 = 1  missing Data Address Mark 

		status register 3 (ST3)
		 bit 7	    fault status signal
		 bit 6	    write protect status
		 bit 5	    ready status
		 bit 4	    track zero status
		 bit 3	    two sided status signal
		 bit 2	    side select (head select)
		 bit 1-0    unit select (0=A 1=B .. )

03F5	w	diskette command register.  The commands summarized here are
		mostly multibyte commands. This is for brief recognition only.

			MFM = MFM mode selected, opposite to MF mode.
			HDS = head select
			DS  = drive select
			MT  = multi track operation
			SK  = skip deleted data address mark

		   Command	     # bytes	D7  6	5   4	3   2	1   0
		 read track		9	0  MFM	0   0	0   0	1   0
						0   0	0   0	0 HDS DS1 DS0
		 specify		3	0   0	0   O	O   O	1   1
		 sense drive status	2	0   0	0   0	0   1	0   0
						0   0	0   0	0 HDS DS1 DS0
		 write data		9	MT MFM	0   0	0   1	0   1
						0   0	0   0	0 HDS DS1 DS0
		 read data		9	MT MFM SK   0	0   1	1   0
						0   0	0   0	0 HDS DS1 DS0
		 recalibrate		2	0   0	0   0	0   1	1   1
						0   0	0   0	0   0 DS1 DS0
		 sense interrupt status	1	0   0	0   0	1   0	0   0
		 write deleted data	9	MT MFM	0   0	1   0	0   1
						0   0	0   0	0 HDS DS1 DS0
		 read ID		2	0  MFM	0   0	1   0	1   0
						0   0	0   0	0 HDS DS1 DS0
		 read deleted data	9	MT MFM SK   0	1   1	0   0
						0   0	0   0	0 HDS DS1 DS0
		 format track		10	0  MFM	0   0	1   1	0   1
						0   0	0   0	0 HDS DS1 DS0
		 dumpreg **		1	0   0	0   0	1   1	1   0
		 seek			3	0   0	0   0	1   1	1   1
						0   0	0   0	0 HDS DS1 DS0
		 version **		1	0   0	0   1	0   0	0   0
		 scan equal *		9	MT MFM SK   1	0   0	0   1
						0   0	0   0	0 HDS DS1 DS0
		 perpendicular mode **	2	0   0	0   1	0   0	1   0
						0   0	0   0	0   0 WGATE GAP
		 configure **		4	0   0	0   1	0   0	1   1
						0   0	0   0	0   0	0   0
		 verify			9	MT MFM SK   1	0   1	1   0
						EC  0	0   0	0 HDS DS1 DS0
		 scan low or equal *	9	MT MFM SK   1	1   0	0   1
						0   0	0   0	0 HDS DS1 DS0
		 scan high or equal *	9	MT MFM SK   1	1   1	0   1
						0   0	0   0	0 HDS DS1 DS0
		 relative seek **	3	1  DIR	0   0	1   1	1   1
						0   0	0   0	0 HDS DS1 DS0

		 BEWARE: not every invalid command is treated as invalid!
		 *  Note: the scan commands aren't mentioned for the 82077AA.
		 ** Note: EHD controller commands.

03F6		reserved on FDC

03F6	r/w	FIXED disk controller data register
		 bit 7-4    reserved
		 bit 3 = 0  reduce write current
			 1  head select 3 enable
		 bit 2 = 1  disk reset enable
			 0  disk reset disable
		 bit 1 = 0  disk initialization enable
			 1  disk initialization disable
		 bit 0	    reserved

03F7	r/w	harddisk controller
		 bit 6	   FIXED DISK write gate
		 bit 5	   FIXED DISK head select 3 / reduced write current
		 bit 4	   FIXED DISK head select 2
		 bit 3	   FIXED DISK head select 1
		 bit 2	   FIXED DISK head select 0
		 bit 1	   FIXED DISK drive 1 select
		 bit 0	   FIXED DISK drive 0 select

03F7	r	diskette controller DIR (Digital Input Register, PC/AT mode)
		 bit 7 = 1 diskette change
		 bit 6-0   tri-state on FDC

03F7	r	diskette controller DIR (Digital Input Register, PS/2 mode)
		 bit 7	 = 1 diskette change
		 bit 6-3 = 1
		 bit 2	     datarate select1
		 bit 1	     datarate select0
		 bit 0	 = 0 high density select (500Kb/s, 1Mb/s)

 conflicts with	 bit 0	   FIXED DISK drive 0 select

03F7	r	diskette controller DIR (Digital Input Register, PS/2 model 30)
		 bit 7	 = 0 diskette change
		 bit 6-4 = 0
		 bit 3	     -DMA gate (value from DOR register)
		 bit 2	     NOPREC (value from CCR register)
		 bit 1	     datarate select1
		 bit 0	     datarate select0

 conflicts with	 bit 0	   FIXED DISK drive 0 select

03F7	w	configuration control register (PC/AT, PS/2)
		 bit 7-2       reserved, tri-state
		 bit 1-0 = 00  500 Kb/S mode (MFM)
			 = 01  300 Kb/S mode (MFM)
			 = 10  250 Kb/S mode (MFM)
			 = 11  1   Mb/S mode (MFM) (on 82072/82077AA)

 conflicts with	 bit 0	   FIXED DISK drive 0 select

03F7	w	configuration control register (PS/2 model 30)
		 bit 7-3       reserved, tri-state
		 bit 2	       NOPREC (has no function. set to 0 by hardreset)
		 bit 1-0 = 00  500 Kb/S mode (MFM)
			 = 01  300 Kb/S mode (MFM)
			 = 10  250 Kb/S mode (MFM)
			 = 11  1   Mb/S mode (MFM) (on 82072/82077AA)

 conflicts with	 bit 0	   FIXED DISK drive 0 select

-------------------------------------------------------------------------------
03F8-03FF ----	serial port (8250,8251,16450,16550,16550A,etc.)
		same as 02E8,02F8 and 03E8

03F8	w	serial port, transmitter holding register, which contains the
		character to be sent. Bit 0 is sent first.
		 bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
	r	receiver buffer register, which contains the received character
		Bit 0 is received first
		 bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
	r/w	divisor latch low byte when DLAB=1

03F9	r/w	divisor latch high byte when DLAB=1
	r/w	interrupt enable register when DLAB=0
		 bits 7-4   reserved
		 bit 3 = 1  modem-status interrupt enable
		 bit 2 = 1  receiver-line-status interrupt enable
		 bit 1 = 1  transmitter-holding-register empty interrupt enable
		 bit 0 = 1  received-data-available interrupt enable
				(also 16550(A) timeout interrupt)

	      - 16550(A) will interrupt with a timeout if data exists in the
	        FIFO and isn't read within the time it takes to receive four
		bytes or if no data is received within the time it takes to
		receive four bytes

03FA	r	interrupt identification register. Information about a pending
		interrupt is stored here. When the ID register is addressed,
		the highest priority interrupt is held, and no other interrupts
		are acknowledged until the CPU services that interrupt.
		 bit 7-6 = 00  reserved on 8250, 8251, 16450
			 = 01  if FIFO queues enabled (16550 only)
			 = 11  if FIFO queues are enabled (16550A only)
		 bit 5-4 = 0 reserved
		 bit 3	 = 0 reserved  8250, 16450
			 = 1 16550  timeout int. pending
		 bit 2-1 identify pending interrupt with the highest priority
		  = 11	receiver line status interrupt. priority=highest
		  = 10	received data available register interrupt. pr.=second
		  = 01	transmitter holding register empty interrupt. pr.=third
		  = 00	modem status interrupt. priority=fourth
		 bit 0 = 0  interrupt pending. contents of register can be used
			    as a pointer to the appropriate int.service routine
			 1  no interrupt pending

	      - interrupt pending flag uses reverse logic, 0=pending, 1=none
	      - interrupt will occur if any of the line status bits are set
	      - THRE bit is set when THRE register is emptied into the TSR


03FA	w	16650 FCR  (FIFO Control Register)
		 bit 7-6 = received data available interrupt trigger level
			00  1 byte
			01  4 bytes
			10  8 bytes
			11 14 bytes
		 bit 5-4 = 00 reserved
		 bit 3	 = 1  change RXRDY  TXRDY pins from mode 0 to mode 1
		 bit 2	 = 1  clear XMIT FIFO
		 bit 1	 = 1  clear RCVR FIFO
		 bit 0	 = 1  enable clear XMIT and RCVR FIFO queues

	      - bit 0 must be set in order to write to other FCR bits
	      - bit 1 when set	the RCVR FIFO is cleared and this bit is reset
		 the receiver shift register is not cleared
	      - bit 2 when set	the XMIT FIFO is cleared and this bit is reset
		 the transmit shift register is not cleared
	      - due to a hardware bug, 16550 FIFOs don't work correctly (this
	        was fixed in the 16550A)

03FB	r/w	line control register
		 bit 7 = 1  divisor latch access bit (DLAB)
			 0  receiver buffer, transmitter holding, or interrupt
			    enable register access
		 bit 6 = 1  set break enable. serial ouput is forced to spacing
			    state and remains there.
		 bit 5 =    stick parity
		 bit 4 = 1  even parity select
		 bit 3 =    parity enable
			 1  even number of ones are sent and checked in the 
			    data word bits and parity bit
			 0  odd number of ones are sent and checked
		 bit 2 = 0  one stop bit
			 1  zero stop bit
		 bit 1-0 00 word length is 5 bits
			 01 word length is 6 bits
			 10 word length is 7 bits
			 11 word length is 8 bits

03FC	r/w	modem control register
		 bit 7-5 = 0  reserved
		 bit 4 = 1  loopback mode for diagnostic testing of serial port
			    output of transmitter shift register is looped back
			    to receiver shift register input. In this mode
			    transmitted data is received immediately so that
			    the CPU can verify the transmit data/receive data
			    serial port paths.
		 bit 3 = 1  auxiliary user-designated output 2
		 bit 2 = 1  auxiliary user-designated output 1
		 bit 1 = 1  force request-to-send active
		 bit 0 = 1  force data-terminal-ready active

03FD	r	line status register
		 bit 7 = 0  reserved
		 bit 6 = 1  transmitter shift and holding registers empty
		 bit 5 = 1  transmitter holding register empty. Controller is
			    ready toaccept a new character to send.
		 bit 4 = 1  break interrupt. the received data input is held in
			    in the zero bit state longer than the time of start
			    bit + data bits + parity bit + stop bits.
		 bit 3 = 1  framing error. the stop bit that follows the last
			    parity or data bit is a zero bit.
		 bit 2 = 1  parity error. Character has wrong parity
		 bit 1 = 1  overrun error. a character was sent to the receiver
			    buffer before the previous character in the buffer
			    could be read. This destroys the previous
			    character.
		 bit 0 = 1  data ready. a complete incoming character has been
			    received and sent to the receiver buffer register.

03FE	r	modem status register
		 bit 7 = 1  data carrier detect
		 bit 6 = 1  ring indicator
		 bit 5 = 1  data set ready
		 bit 4 = 1  clear to send
		 bit 3 = 1  delta data carrier detect
		 bit 2 = 1  trailing edge ring indicator
		 bit 1 = 1  delta data set ready
		 bit 0 = 1  delta clear to send

	      - bits 0-3 are reset when the CPU reads the MSR
	      - bit 4 is the Modem Control Register RTS during loopback test
	      - bit 5 is the Modem Control Register DTR during loopback test
	      - bit 6 is the Modem Control Register OUT1 during loopback test
	      - bit 7 is the Modem Control Register OUT2 during loopback test

03FF	r/w	scratch register

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

		Adresses above 03FF apply to EISA machines only !

			 1000-1FFF	slot 1 EISA
			 2000-2FFF	slot 2 EISA
			 3000-3FFF	slot 3 EISA
			 4000-4FFF	slot 4 EISA
			 5000-5FFF	slot 5 EISA
			 6000-6FFF	slot 6 EISA
			 7000-7FFF	slot 7 EISA

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

0401	r/w	DMA channel 0 word count byte 2 (high)
0403	r/w	DMA channel 1 word count byte 2 (high)
0405	r/w	DMA channel 2 word count byte 2 (high)
0407	r/w	DMA channel 3 word count byte 2 (high)

040A	w	extended DMA chaining mode register, channels 0-3
		 bit 7-5      reserved
		 bit 4	 = 0  generates IRQ13
			 = 1  generates terminal count
		 bit 3	 = 0  do not start chaining
			 = 1  programming complete
		 bit 2	 = 0  disable buffer chaining mode (default)
			 = 1  enable buffer chaining mode
		 bit 1-0      DMA channel select

040A	r	channel interrupt (IRQ13) status register
		 bit 7-5  interrupt on channels 7-5
		 bit 4	  reserved
		 bit 3-0  interrupt on channels 3-0

040B	w	DMA extended mode register for channels 3-0.
		bit settings same as 04D6
		 bit 7	 = 0  enable stop register
		 bit 6	 = 0  terminal count is an output for this channel
				(default)
		 bit 5-4      DMA cycle timing
			 = 00 ISA-compatible (default)
			 = 01 type A timing mode
			 = 10 type B timing mode
			 = 11 burst DMA mode
		 bit 3-2      Address mode
			 = 00 8-bit I/O, count by bytes (default)
			 = 01 16-bit I/O, count by words, address shifted
			 = 10 32-bit I/O, count by bytes
			 = 11 16-bit I/O, count by bytes
		 bit 1-0      DMA channel select

-------------------------------------------------------------------------------
0461	r/w	Extended NMI status/control register
		 bit 7 = 1  NMI pending from fail-safe timer (read only)
		 bit 6 = 1  NMI pending from bus timeout NMI status (read
only)
		 bit 5 = 1  NMI pending (read only)
		 bit 4	    reserved
		 bit 3 = 1  bus timeout NMI enable (read/write)
		 bit 2 = 1  fail-safe NMI enable (read/write)
		 bit 1 = 1  NMI I/O port enable (read/write)
		 bit 0	    RSTDRV. bus reset (read/write)
		       = 0  NORMAL bus reset operation
		       = 1  reset bus asserted

0462	w	Software NMI register. writing to this register causes an NMI
		if NMI's are enabled
		 bit 7 = 1  generates an NMI

0464	r	bus master status latch register (slots 1-8). identifies the
		last bus master that had control of the bus
		 bit 7 = 0  slot 8 had control last
		 bit 6 = 0  slot 7 had control last
		 bit 5 = 0  slot 6 had control last
		 bit 4 = 0  slot 5 had control last
		 bit 3 = 0  slot 4 had control last
		 bit 2 = 0  slot 3 had control last
		 bit 1 = 0  slot 2 had control last
		 bit 0 = 0  slot 1 had control last

0465	r	bus master status latch register (slots 9-16)
		 bit 7 = 0  slot 16 had control last
		 bit 6 = 0  slot 15 had control last
		 bit 5 = 0  slot 14 had control last
		 bit 4 = 0  slot 13 had control last
		 bit 3 = 0  slot 12 had control last
		 bit 2 = 0  slot 11 had control last
		 bit 1 = 0  slot 10 had control last
		 bit 0 = 0  slot 9  had control last

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

0481	r/w	DMA channel 2 address byte 3 (high)
0482	r/w	DMA channel 3 address byte 3 (high)
0483	r/w	DMA channel 1 address byte 3 (high)
0487	r/w	DMA channel 0 address byte 3 (high)
0489	r/w	DMA channel 6 address byte 3 (high)
048A	r/w	DMA channel 7 address byte 3 (high)
048B	r/w	DMA channel 5 address byte 3 (high)

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

04C6	r/w	DMA channel 5 word count byte 2 (high)
04CA	r/w	DMA channel 6 word count byte 2 (high)
04CE	r/w	DMA channel 7 word count byte 2 (high)

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

04D0	w	IRQ 0-7 interrupt edge/level registers
		 bit 7 = 1  IRQ 7 is level sensitive
		 bit 6 = 1  IRQ 6 is level sensitive
		 bit 5 = 1  IRQ 5 is level sensitive
		 bit 4 = 1  IRQ 4 is level sensitive
		 bit 3 = 1  IRQ 3 is level sensitive
		 bit 2-0    reserved

04D1	w	IRQ 8-15 interrupt edge/level registers
		 bit 7 = 1  IRQ 15 is level sensitive
		 bit 6 = 1  IRQ 14 is level sensitive
		 bit 5 = 1  reserved
		 bit 4 = 1  IRQ 12 is level sensitive
		 bit 3 = 1  IRQ 11 is level sensitive
		 bit 2 = 1  IRQ 10 is level sensitive
		 bit 1 = 1  IRQ 9  is level sensitive
		 bit 0	    reserved

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

04D4	r	DMA chaining status

04D4	w	extended DMA chaining mode register, channels 4-7
		 bit 7-5 = 0  reserved
		 bit 4	 = 0  generates IRQ 13
			 = 1  generates terminal count
		 bit 3	 = 0  do not start chaining
			 = 1  programming complete
		 bit 2	 = 0  disable buffer chaining mode (default)
			 = 1  enable buffer chaining mode
		 bit 1-0      DMA channel select

04D6	w	DMA extended mode register for channels 4-7
		bit settings same as 04B
		 bit 7	 = 0  enable stop register
		 bit 6	 = 0  terminal count is an output for this channel
				(default)
		 bit 5-4      DMA cycle timing
			 = 00 ISA-compatible (default)
			 = 01 type A timing mode
			 = 10 type B timing mode
			 = 11 burst DMA mode
		 bit 3-2      Address mode
			 = 00 8-bit I/O, count by bytes (default)
			 = 01 16-bit I/O, count by words, address shifted
			 = 10 32-bit I/O, count by bytes
			 = 11 16-bit I/O, count by bytes
		 bit 1-0      DMA channel select

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

04E0-04E2 r/w	channel 0
04E4-04E6 r/w	channel 1
04E8-04EA r/w	channel 2
04EC-04EE r/w	channel 3
04F4-04F6 r/w	channel 5
04F8-04FA r/w	channel 6
04FC-04FE r/w	channel 7

-------------------------------------------------------------------------------
0530-0533 ----	Gravis Ultra Sound Daughter Card by Advanced Gravis
	 The I/O address range is dipswitch selectable from:
	   0530-0533 
	   0604-0607 
	   0E80-0E83 
	   0F40-0F43 

0530	r/w	Address Select
0531	r/w	Data
0532	r/w	Status
0533	r/w	PIO

-------------------------------------------------------------------------------
0601	w	System control. Laptop chipset: Headland HL21 & Acer M5105
		 bit 7 = 1  power led on
		 bit 6 = 1  LCD backlight off
		 bit 5
		 bit 4
		 bit 3
		 bit 2 = 1  video chips disabled, screen blanked.
		 bit 1
		 bit 0 = 1  will lock up your machine!

	r	 bit 7 = 0  if screen enabled always these values
		 bit 6 = 0
		 bit 5 = 0
		 bit 4 = 0
		 bit 3 = 0
		 bit 2 = 1  (=0 at low power)
		 bit 1 = 0  power OK
		 bit 0 = 0

-------------------------------------------------------------------------------
0620-0627 ----	PC network (adapter 1)
0628-062F ----	PC network (adapter 2)

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

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

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

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

06E8	w	horizontal displayed

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

-------------------------------------------------------------------------------
0746	  ----	Gravis Ultra Sound by Advanced Gravis

0746	r	Board Version (rev 3.7+)
		 FF	  Pre 3.6 boards, ICS mixer NOT present
		 05	  Rev 3.7 with ICS Mixer. Some R/L: flip problems.
		 06-09	  Revision 3.7 and above. ICS Mixer present
		 0A-	  UltraMax. CS4231 present, no ICS mixer
	w	Mixer Control Port

SeeAlso: 0240-024F, 0340-034F

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

-------------------------------------------------------------------------------
0800-08FF ----	I/O port access registers for extended CMOS RAM or SRAM
		(256 bytes at a time)
		Sometimes plain text can be seen here.

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

-------------------------------------------------------------------------------
0A20-0A23 ----	Token Ring (adapter 1)
0A24-0A27 ----	Token Ring (adapter 2)

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

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

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

0AE8	w	horizontal sync start

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

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

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

-------------------------------------------------------------------------------
0C7C		bit 7-4 (Compaq)

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

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

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

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

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

0EE8	w	horizontal sync width

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

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

12E8	w	vertical total

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

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

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

16E8	w	vertical displayed

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

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

1AE8	w	vertical sync start

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

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

1C80-1C83 r/w	EISA Video ID
1C84	r/w	EISA Video expansion board control	
1C85	r/w	EISA Setup control
1C88	r/w	EISA Video Programmable Option Select 0
1C89-1C8F r/w	EISA Video Programmable Option Select 1-7

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

-------------------------------------------------------------------------------
1C85		Compaq Qvision EISA - Virtual Controller ID

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

1EE8	w	vertical sync width

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

-------------------------------------------------------------------------------
2100-210F ----	IBM XGA (eXtended Graphics Adapter  8514/A) (first installed)
2110-211F ----	IBM XGA (eXtended Graphics Adapter  8514/A) (second installed)
2120-212F ----	IBM XGA (eXtended Graphics Adapter  8514/A) (third installed)
2130-213F ----	IBM XGA (eXtended Graphics Adapter  8514/A) (fourth installed)
2140-214F ----	IBM XGA (eXtended Graphics Adapter  8514/A) (fifth installed)
2150-215F ----	IBM XGA (eXtended Graphics Adapter  8514/A) (sixth installed)
2160-216F ----	IBM XGA (eXtended Graphics Adapter  8514/A) (seventh installed)
2170-217F ----	IBM XGA (eXtended Graphics Adapter  8514/A) (eighth installed)

-------------------------------------------------------------------------------
2100	  ----	XGA Video Operating Mode Register

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

-------------------------------------------------------------------------------
2101	  ----	XGA VIdeo Aperture Control

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

-------------------------------------------------------------------------------
2102-2103 ----	XGA ???

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

-------------------------------------------------------------------------------
2104	  ----	XGA Video Interrupt Enable

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

-------------------------------------------------------------------------------
2105	  ----	XGA Video Interrupt Status

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

-------------------------------------------------------------------------------
2106	  ----	XGA Video Virtual Memory Control

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

-------------------------------------------------------------------------------
2107	  ----	XGA Video Virtual Memory Interrupt Status

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

-------------------------------------------------------------------------------
2108	  ----	XGA Video Aperture Index

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

-------------------------------------------------------------------------------
2109	  ----	XGA Video Memory Access Mode

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

-------------------------------------------------------------------------------
210A	  ----	XGA Video Index for Data

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

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

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

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

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

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

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

22E8	w	display control

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

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

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

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

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

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

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

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

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

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

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

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

-------------------------------------------------------------------------------
3540-354F ----	IBM SCSI (Small Computer System Interface) adapter
3550-355F ----	IBM SCSI (Small Computer System Interface) adapter
3560-356F ----	IBM SCSI (Small Computer System Interface) adapter
3570-357F ----	IBM SCSI (Small Computer System Interface) adapter

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

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

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

3C80-3C83 r/w	EISA Video ID
3C84	r/w	EISA Video expansion board control	
3C85	r/w	EISA Setup control
3C88	r/w	EISA Video Programmable Option Select 0
3C89-3C8F r/w	EISA Video Programmable Option Select 1-7

SeeAlso: 1C80-1C8F,2C80-2C8F,7C80-7C8F

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

-------------------------------------------------------------------------------
4000-40FF ----	available for EISA slot 4

-------------------------------------------------------------------------------
4220-4227 ----	serial port, description same as 03F8
4228-422F ----	serial port, description same as 03F8

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

42E1	r/w	GPIB (adapter 2)

-------------------------------------------------------------------------------
42E8	  ----	8514/A and hardware-compatible video cards

42E8	r	Subsystem Status
42E8	w	Subsystem Control

-------------------------------------------------------------------------------
4400-44FF ----	available for EISA slot 4

-------------------------------------------------------------------------------
46E8	  ----	VGA video adapter enable

46E8	r/w	enable flags
		bits 7-5 unused or vendor-specific
		bit 4: setup for POS registers (MCA)
		bit 3: enable video I/O ports and video buffer
		bits 2-0 unused or vendor-specific

Note:	IBM uses this port for adapter-card VGAs only, and port 03C3 for
	  motherboard VGA only

SeeAlso: 03C3

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

46E8	w	ROM page select

-------------------------------------------------------------------------------
4800-48FF ----	available for EISA slot 4

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

4AE8	w	Advanced function control
		(02h = VGA mode, 03h = 480-line mode, 07h = 768-line mode)

-------------------------------------------------------------------------------
4C00-4CFF ----	available for EISA slot 4

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

-------------------------------------------------------------------------------
4C80-4C8F ----	VESA XGA Video in EISA slot 4 (see 3C80-3C8F)

SeeAlso: 1C80-1C8F,6C80-6C8F

-------------------------------------------------------------------------------
5000-50FF ----	available for EISA slot 5

-------------------------------------------------------------------------------
5220-5227 ----	serial port, description same as 03F8
5228-522F ----	serial port, description same as 03F8

-------------------------------------------------------------------------------
5400-54FF ----	available for EISA slot 5

-------------------------------------------------------------------------------
5800-58FF ----	available for EISA slot 5

-------------------------------------------------------------------------------
5C00-5CFF ----	available for EISA slot 5

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

5C80-5C83 r/w	EISA Video ID
5C84	r/w	EISA Video expansion board control	
5C85	r/w	EISA Setup control
5C88	r/w	EISA Video Programmable Option Select 0
5C89-5C8F r/w	EISA Video Programmable Option Select 1-7

SeeAlso: 2C80-2C8F,4C80-4C8F,6C80-6C8F

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

-------------------------------------------------------------------------------
6000-60FF ----	available for EISA slot 6

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

62E1	r/w	GPIB (adapter 3)

-------------------------------------------------------------------------------
63C0-63CF ----	Compaq QVision - BitBLT engine

-------------------------------------------------------------------------------
6400-64FF ----	available for EISA slot 6

-------------------------------------------------------------------------------
6800-68FF ----	available for EISA slot 6

-------------------------------------------------------------------------------
6C00-6CFF ----	available for EISA slot 6

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

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

6C80-6C83 r/w	EISA Video ID
6C84	r/w	EISA Video expansion board control	
6C85	r/w	EISA Setup control
6C88	r/w	EISA Video Programmable Option Select 0
6C89-1C8F r/w	EISA Video Programmable Option Select 1-7

SeeAlso: 1C80-1C8F,2C80-2C8F,5C80-5C8F

-------------------------------------------------------------------------------
7000-70FF ----	available for EISA slot 7

-------------------------------------------------------------------------------
7400-74FF ----	available for EISA slot 7

-------------------------------------------------------------------------------
7800-78FF ----	available for EISA slot 7

-------------------------------------------------------------------------------
7C00-7CFF ----	available for EISA slot 7

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

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

7C80-7C83 r/w	EISA Video ID
7C84	r/w	EISA Video expansion board control	
7C85	r/w	EISA Setup control
7C88	r/w	EISA Video Programmable Option Select 0
7C89-7C8F r/w	EISA Video Programmable Option Select 1-7

SeeAlso: 1C80-1C8F, 6C80-6C8F

-------------------------------------------------------------------------------
8000-80FF ----	available for EISA slot 8

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

82E1	r/w	GPIB (adapter 4)

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

82E8	w	current Y position

-------------------------------------------------------------------------------
82F8-82FF ----	serial port, description same as 03F8
83F8-83FF ----	serial port, description same as 03F8

-------------------------------------------------------------------------------
83C0-83CF ----	Compaq QVision - Line Draw Engine

-------------------------------------------------------------------------------
83C4	  ----	Compaq Qvision EISA - Virtual Controller Select

-------------------------------------------------------------------------------
83C6-83C9 ----	Compaq Qvision EISA - DAC color registers

-------------------------------------------------------------------------------
8400-84FF ----	available for EISA slot 8

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

86E8	w	current X position

-------------------------------------------------------------------------------
8800-88FF ----	available for EISA slot 8

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

8AE8	w	destination Y position / axial step constant

-------------------------------------------------------------------------------
8C00-8CFF ----	available for EISA slot 8

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

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

8EE8	w	destination X position / axial step constant

-------------------------------------------------------------------------------
9000-90FF ----	available for EISA slot 9

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

92E8	w	error term

-------------------------------------------------------------------------------
9400-94FF ----	available for EISA slot 9

-------------------------------------------------------------------------------
96E8-96EF ----	8514/A and hardware-compatible video cards

96E8	r	Enter WD Enhanced Mode
96E8	w	major axis pixel count

-------------------------------------------------------------------------------
9800-98FF ----	available for EISA slot 9

-------------------------------------------------------------------------------
9AE8h-9AE9h ----  8514/A Graphics Processor Status

9AE8w	r	bit 9: hardware busy
9AE8	w	command

-------------------------------------------------------------------------------
9C00-9CFF ----	available for EISA slot 9

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

-------------------------------------------------------------------------------
A220	  ????	soundblaster support in AMI Hi-Flex BIOS  ????

-------------------------------------------------------------------------------
A2E0-A2EF ----	GPIB (General Purpose Interface Bus, IEEE 488 interface)

A2E1	r/w	GPIB (adapter 5)

-------------------------------------------------------------------------------
A2E8-A2EF ----	8514/A and compatible video cards (e.g. ATI Graphics Ultra)

A2E8	w	background color

-------------------------------------------------------------------------------
A6E8-A6EF ----	8514/A and compatible video cards (e.g. ATI Graphics Ultra)

A6E8	w	foreground color

-------------------------------------------------------------------------------
AAE8-AAEF ----	8514/A and compatible video cards (e.g. ATI Graphics Ultra)

AAE8	w	write mask

-------------------------------------------------------------------------------
AEE8-AEEF ----	8514/A and compatible video cards (e.g. ATI Graphics Ultra)

AEE8	w	read mask

-------------------------------------------------------------------------------
AFFF	r/w	plane 0-3 system latch (video register)

-------------------------------------------------------------------------------
B220-B227 ----	serial port, description same as 03F8
B228-B22F ----	serial port, description same as 03F8

-------------------------------------------------------------------------------
B2E8-B2EF ----	8514/A and compatible video cards (e.g. ATI Graphics Ultra)

B2E8	w	color compare

-------------------------------------------------------------------------------
B6E8-B6EF ----	8514/A and compatible video cards (e.g. ATI Graphics Ultra)

B6E8	w	background mix

-------------------------------------------------------------------------------
BAE8-BAEF ----	8514/A and compatible video cards (e.g. ATI Graphics Ultra)

BAE8	w	foreground mix

-------------------------------------------------------------------------------
BEE8-BEEF ----	8514/A and compatible video cards (e.g. ATI Graphics Ultra)

BEE8	w	multi-function control

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

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

C050	r/w	bit 2: ???

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

C052	r/???	bits 6,7: ???

-------------------------------------------------------------------------------
C220-C227 ----	serial port, description same as 03F8
C228-C22F ----	serial port, description same as 03F8

-------------------------------------------------------------------------------
C2E0-C2EF ----	GPIB (General Purpose Interface Bus, IEEE 488 interface)

C2E1	r/w	GPIB (adapter 6)

-------------------------------------------------------------------------------
D220-D227 ----	serial port, description same as 03F8
D228-D22F ----	serial port, description same as 03F8

-------------------------------------------------------------------------------
E2E0-E2EF ----	GPIB (General Purpose Interface Bus, IEEE 488 interface)

E2E1	r/w	GPIB (adapter 7)

-------------------------------------------------------------------------------
E2E8-E2EF ----	8514/A and compatible video cards (e.g. ATI Graphics Ultra)

E2E8	w	pixel data transfer

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

MEMORY-MAPPED ADDRESSES

-------------------------------------------------------------------------------
80C00000  Compaq Deskpro 386 system memory board register

80C00000 w	RAM relocation register
		bit 7-2	   Reserved, always write 1's.
		bit 1 = 0  Write-protect 128-Kbyte RAM at FE0000.
		      = 1  Do not write-protect RAM at FE0000.
		bit 0 = 0  Relocate 128-Kbyte block at FE0000 to address 0E0000
		      = 1  128-Kbyte RAM is addressed only at FE0000.

80C00000 r	Diagnostics register
		bit 7	= 0  memory expansion board is installed
		bit 6	= 0  second 1 MB of system memory board is installed
		bit 5-4 = 00 base memory set to 640 KB
			  01 invalid
			  10 base memory set to 512 KB
			  11 base memory set to 256 KB
		bit 3	= 0  parity error in byte 3
		bit 2	= 0  parity error in byte 2
		bit 1	= 0  parity error in byte 1
		bit 0	= 0  parity error in byte 0 (in 32-bit double word)

-------------------------------------------------------------------------------
C0000000-C000FFFF	Weitek "Abacus" math coprocessor

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




-------------CREDITS-------------------------
Chuck Proctor <71534.2302@CompuServe.COM>
Richard W. Watson  <73042.1420@CompuServe.COM>

[Some of the information in this list was extracted from Frank van Gilluwe's
_The_Undocumented_PC_, a must-have book for anyone programming down to the
"bare metal" of a PC.]

[Some of the information in this list from the shareware version of Dave
Williams' DOSREF, v3.0]

[8514/A hardware ports found in FractInt v18.0 source file FR8514A.ASM]

[Compaq QVision info from the _COMPAQ_QVision_Graphics_System_Technical_
_Reference_Guide_, second edition (October 1993).  Compaq part number
073A/0693.  Much more to come!]