summaryrefslogtreecommitdiff
path: root/system/shard-x86-at/7/doc/PORTS.PRT
blob: b8d336d544c39742d2a327fc248c752536cd2878 (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
#type ("17.klein")# 
System-Ports: 
 
Port | Funktion
-----+-------------------------------------------------------------------- 
     | DMA Controller 1 (8237A-5) fr Bytetransfers (Kanal 0..3) 
 00  | Byteadresse (start/current) Kanal 0 (frei fr Memory-Memory Transfer)
 01  | Bytecount Kanal 0            (Pageregister 87H) (Sourcechannel)
 02  | Byteadresse (start/current) Kanal 1 (reserviert fr SDLC) 
 03  | Bytecount Kanal 1            (Pageregister 83H) (Destinationchannel)
 04  | Byteadresse (start/current) Kanal 2 (Diskette) 
 05  | Bytecount Kanal 2            (Pageregister 81H) 
 06  | Byteadresse (start/current) Kanal 3 (XT: Harddisk) 
 07  | Bytecount Kanal 3            (Pageregister 82H) 
 08  | Read: DMA-Status (D4..D7:1 = DREQ liegt an, D0..D3:0 = Kanal Busy) 
     | Write: DMA-Command: 
     |  D0 1 = memory<-->memory transfer enabled 
     |  D1 Falls D0 = 1: 1 = Kanal 0 Adresse INCR/DECR, 0 = Adr. unverndert
     |  D2 1 = DMA-Control enabled
     |  D3 1 = R/W-Signal verkrzt 
     |  D4 0 = Feste Kanalprios, 1 = Kanalprios rotieren 
     |  D5 Falls D3 = 0, 1 = verzgertes R/W-Signal, 0 = verlngertes R/W 
     |  D6 1 = DREQ active-low, 0 = DREQ active-high 
     |  D7 1 = DACK active-high, 1 = DACK active-low 
  09 | Read/Write: Anforderungsregister 
     |  D1, D0 = Nummer des aktiven DMA-Kanals 
     |  D2 1 = DMA-Transfer anstossen, (D0/D1 = Kanalnummer) 
     |     0 = DMA-Transfer wurde per Hardware angestossen 
  0A | Read/Write : Single Mask Register Bit 
     | D0..D3 fr jeden Kanal: 1 =  DREQ gesperrt, 0 = DREQ freigegeben 
  0B | Write: Mode-Register
     | D1, D0 bestimmen den Kanal auf den sich D2..D7 beziehen (0..3) 
     | D3, D2 (falls D6=D7=1 (Kaskade) ohne Bedeutung) 
     |  0   0 Prfzyklen 
     |  0   1 Write in Memory 
     |  1   0 Read aus Memory 
     |  1   1 Illegal 
     | D4 1 = Autorepeat 
     | D5 1 = DECR Adressen, 0 = INCR Adressen 
     | D7, D6 
     |  0   0 Polling
     |  0   1 Cycle Steal 
     |  1   0 Burst Mode 
     |  1   1 Kaskadierter Controller
  0C | Clear Byte Pointer Flip-Flop 
  0D | Read: Temporary-Register, Write: Master Clear 
  0E | Clear Mask Register 
  0F | Write: All Mask Register 
     | 
     | Interrupt-Controller 1 (Master) 8259, siehe Datenblatt 
  20 | Write: ICW1, OCW2, OCW3, Read: ISR, IRQ-Level (Je nach Zustand) 
  21 | Write: ICW2, ICW3, ICW4, OCW1, Read: IMR (Je Nach Zustand)
     | 
     | Intervall-Timer 8254.2 
  40 | Channel 0 Timeconstant (System Interrupt IRQ 0) 
  41 | Channel 1 Timeconstant (Refesh Request) 
  42 | Channel 2 Timeconstant (Speaker Output) 
  43 | Control (Channel 0..2) 
     |
     | KEYBOARD
  60 | Keyboard Data Read/Write 
  61 | System Control Port (In/Out Port) 
     | Write:
     |  D0 = Speaker Gate
     |  D1 = Speaker Data
     |  D2 = Base Parity Check (<512k), 0 = Parity Check erlaubt
     |  D3 = Channel Parity Check (>=512k), 0 = Parity Check erlaubt  
     | Read:
     |  D4 = 1 = Refresh Detected
     |  D5 = 1 = Output Timer 2 
     |  D6 = 1 = IO-RAM Parity Error 
     |  D7 = 1 = Base-RAM Parity Error 
  64 | Keyboard Command/Status Port
     | Write (Command): 
     | Command C0H liest Input Port, Byte im Datenregister ist dann: 
     | D4 : 0 = 2nd 256k Board-RAM disabled 
     | D5 : 0 = Manufacturing Jumper installed 
     | D6 : 1 = Primary Display is Monochrome, 0 = Color 
     | D7 : 0 = Keyboard is inhibited
     | Command D0H liest Output Port, Byte im Datenregister ist dann:
     | D0 : 0 = System Reset 
     | D1 : Gate A20 (AND-Verknpfung mit A20-Adressleitung)
     | D4 : Output-Buffer full 
     | D5 : Input-Buffer empty 
     | D6 : Keyboard clock (output) 
     | D7 : Keyboard data (output)
     | D1H schreibt Output Port, sonst wie D0H 
     | Read (Status): 
     | D0 : 1 = Outputbuffer is filled (Keyboard --> Computer) 
     | D1 : 0 = Inputbuffer is empty
     | D2 : System-Flag
     | D3 : Last Write: 1 = Command, 0 = Data
     | D4 : 0 = keyboard is inhibited 
     | D5 : 1 = Transmit-Timeout Error
     | D6 : 1 = Receive-Timeout Error
     | D7 : 1 = Parity Error (Receive)
     | 
     | RTC/RAM
 70  | CMOS-Adresse, NMI-Mask 
     | D0..D5 = CMOS-Adresse (0..63) 
     | D7 : 0 = NMI enabled, 1 = NMI disabled (Power-Fail, Parity-Check, NP)
     | RTC-Adressen:
     | 00 : Seconds 
     | 01 : Alarm Seconds 
     | 02 : Minutes 
     | 03 : Alarm Minutes 
     | 04 : Hours 
     | 05 : Alarm Hours 
     | 06 : Day of week (1..7) 
     | 07 : Date of Month 
     | 08 : Month 
     | 09 : Year     (32H = Century) 
     | 0A : Status Register A : Bit 7 = 1 Update in progress 
     | 0B : Status Register B : Bit 5 = 1 Alarm Interrupt enabled 
     |                          Bit 0 = 1 Sommerzeit (Ende Mai..Ende Okt.!) 
     | 0C : Status register C : Bit 7 = 1 Interrupt occured 
     | 0D : (Read!) Bit 7 = 1 Power Good 
     | RAM-Adressen: 
     | 0E : Diagnostic Status Byte 
     |  D7 : 1 = RTC lost power 
     |  D6 : 1 = CMOS Checksum wrong 
     |  D5 : 1 = Primary Display not set/No Diskette attached 
     |  D4 : 1 = Memory Size miscompare (Vorhanden <> Setup-angegeben) 
     |  D3 : 1 = Fixed Disk (Drive C) not ok 
     |  D2 : 1 = RTC Time/Status nicht gltig 
     | 0F : Shutdown Status Byte (Restart Code) 
     |  0 = Power on Reset
     |  9 = Enter Real Mode: 
     |      TESTPORT = 32, Stack (SS=0469,SP=0467) RET-Adr., PUSHA, ES, DS 
     | 10 : Diskette configuration: 
     |    D4..D7 : 0 = Not installed 
     |             1 = 48 tpi (double sided)        Drive A
     |             2 = 96 tpi (high capacity)
     |    D0..D3 : 0 = Not installed 
     |             1 = 48 tpi (double sided)        Drive B 
     |             2 = 96 tpi (high capacity)
     | 12 : Fixed Disk configuration: 
     |    D4..D7 : 0 = Not installed 
     |             1..14 Tabelle                    Drive C 
     |             15 = Typ 16..47 spezifiziert 
     |    D0..D3 : 0 = Not installed 
     |             1..14 Tabelle                    Drive D 
     |             15 = Typ 16..47 spezifiziert 
     | 
     | 
     | 14 : Equipment Byte (only for Power on Diagnostics) 
     |    D6/D7 :  0 = 1 Floppy 
     |             1 = 2 Floppys
     |    D4/D5 :  0 = No Primary Display 
     |             1 = Color 40 Zeichen 
     |             2 = Color 80 Zeichen 
     |             3 = Monochrome 
     |    D1    :  1 = Mathe Coprozessor installed 
     |    D0    :  1 = Disk drives are installed
     | 
     | 15/16 : Base Memory Size (in KB) 
     | 15 = low, 16 = high 
     | 
     | 17/18 : Expansion Memory Size (in KB) 
     | 17 = low, 18 = high 
     | 
     | 2E/2D Checksum der Adressen 10..20 
     | 2E = high, 2F = low
     | 
     | 30/31 : Expansion Memory Size (in KB ber ersten 1MB) 
     | 30 = low, 31 = high 
     |
     | 32 : Date Century Byte (19) 
     | 
     | 33 : Information Flag 
     | 
 71  | CMOS-Daten (Read/Write) 
     | 
     | Memory Mapper 74LS612
 80  | Test-Port (Read/Write) Fehlerstatus der letzten Testoperation 
 81  | Channel 2 DMA-Pageregister
 82  | Channel 3 DMA-Pageregister
 83  | Channel 1 DMA-Pageregister
 84  | frei 
 85  | frei 
 86  | frei 
 87  | Channel 0 DMA-Pageregister
 88  | frei 
 89  | Channel 6 DMA-Pageregister
 8A  | Channel 7 DMA-Pageregister
 8B  | Channel 5 DMA-Pageregister
 8C  | frei 
 8D  | frei 
 8E  | frei
 8F  | Refresh Register
     | 
     | Interrupt-Controller 2 (Slave) 8259, siehe Datenblatt 
 A0  | Write: ICW1, OCW2, OCW3, Read: ISR, IRQ-Level (Je nach Zustand) 
 A1  | Write: ICW2, ICW3, ICW4, OCW1, Read: IMR (Je Nach Zustand)
     | 
     | DMA Controller 2 (8237A-5) fr Wordtransfers (Kanal 5..7) 
 C0  | Wordadresse (start/current) Kanal 4 (Kaskade fr Controller 1)
 C2  | Wordcount Kanal 4
 C4  | Wordadresse (start/current) Kanal 5 (frei) 
 C6  | Wordcount Kanal 5            (Pageregister 8BH)
 C8  | Wordadresse (start/current) Kanal 6 (frei) 
 CA  | Wordcount Kanal 6            (Pageregister 89H) 
 CC  | Wordadresse (start/current) Kanal 7 (frei) 
 CE  | Wordcount Kanal 7            (Pageregister 8AH) 
 D0  | Read: DMA-Status (D4..D7:1 = DREQ liegt an, D0..D3:0 = Kanal Busy) 
     | Write: DMA-Command: 
     |  D0 1 = memory<-->memory transfer enabled 
     |  D1 Falls D0 = 1: 1 = Kanal 4 Adresse INCR/DECR, 0 = Adr. unverndert
     |  D2 1 = DMA-Control enabled
     |  D3 1 = R/W-Signal verkrzt 
     |  D4 0 = Feste Kanalprios, 1 = Kanalprios rotieren 
     |  D5 Falls D3 = 0, 1 = verzgertes R/W-Signal, 0 = verlngertes R/W 
     |  D6 1 = DREQ active-low, 0 = DREQ active-high 
     |  D7 1 = DACK active-high, 1 = DACK active-low 
  D2 | Read/Write: Anforderungsregister 
     |  D1, D0 = Nummer des aktiven DMA-Kanals 
     |  D2 1 = DMA-Transfer anstossen, (D0/D1 = Kanalnummer) 
     |     0 = DMA-Transfer wurde per Hardware angestossen 
  D4 | Read/Write : Single Mask Register Bit 
     | D0..D3 fr jeden Kanal: 1 =  DREQ gesperrt, 0 = DREQ freigegeben 
  D6 | Write: Mode-Register
     | D1, D0 bestimmen den Kanal auf den sich D2..D7 beziehen (4..7) 
     | D3, D2 (falls D6=D7=1 (Kaskade) ohne Bedeutung) 
     |  0   0 Prfzyklen 
     |  0   1 Write in Memory 
     |  1   0 Read aus Memory 
     |  1   1 Illegal 
     | D4 1 = Autorepeat 
     | D5 1 = DECR Adressen, 0 = INCR Adressen 
     | D7, D6 
     |  0   0 Polling
     |  0   1 Cycle Steal 
     |  1   0 Burst Mode 
     |  1   1 Kaskadierter Controller
  D8 | Clear Byte Pointer Flip-Flop 
  DA | Read: Temporary-Register, Write: Master Clear 
  DC | Clear Mask Register 
  DE | Write: All Mask Register 
     | 
     | Coprozessor 
  F0 | Clear Coprozessor Busy 
  F1 | Reset Coprozessor (mit D0..D7 = 0) und in Real Mode bringen) 
     | 
  F8 | Coprozessor Ports (vom 80286 vorgegeben) 
  ...| 
  FF |
     | 
-----+---------------------------------------------------------------------
     |
     | Harddisk WD1010 
01F0 | Read/Write: Daten (am besten per DMA uebertragen)
01F1 | Write: Taskfile Byte 1 (Write Precomp DIV 4, 6 Bit)
     | Read : Error Register
     | D0..D7 <> 1 : Fehler aufgetreten
01F2 | Write: Taskfile Byte 2 (Sector Count 8 Bit)
01F3 | Write: Taskfile Byte 3 (Sector Number 6 Bit)
01F4 | Write: Taskfile Byte 4 (Cylinder low 8 Bit)
01F5 | Write: Taskfile Byte 5 (Cylinder high 2 Bit D6,D7) 
01F6 | Write: Taskfile Byte 6 
     | D0..D3 = Head 
     | D4 : 0 = Drive C, 1 = Drive D 
     | D5 : 1 = 512 Bytes/Sektor, 0 = 256 Bytes/Sektor 
     | D6 : 
     | D7 : 1 = ECC versuchen
01F7 | Write: Taskfile Byte 7 (Commandbyte, Retries)
     | D0 : 1 = No Retries 
     | D1 : 1 = 4 ECC Bytes uebrtragen
     | D2 : 
     | D3 :
     | CMD: 7654 Funktion
     |      0000
     |      0001 Recalibrate
     |      0010 Read
     |      0011 Write
     |      0100 Verify
     |      0101 Format Taskfile Byte 3: Gap
     |      0110
     |      0111 Seek
     |      1000
     |      1001 D0 = 1: Set Parameters, D0 = 0 : Diagnostics
     |      1010
     |      1011
     |      1100 
     |      1101
     |      1110
     |      1111
     | Read : Status Register
     | D7 : 1 = BUSY 
     | D6 : 1 = Not ready 
     | D5 : Write fault 
     | D4 : Seek not complete 
     | D3 : 1 = Request Data
     | D2 : 1 = Data corrected 
     | D1 : 1 = 
     | D0 : 1 =
01F8 | Datenport Read/Write 
01F9 | Write: Reset 
     | Read: Statusport 
01FA | Write: Select 
01FB | Write: DMA/IRQ Maskenregister 
     | 
     | Game Connector
0200 | 
0201 | Write: Start Monoflops 
     | Read: 
     | D0..D3 : Ausgnge der 4 Monoflops Zeit = (24.2 + 0.011 * R(kOhm))us. 
     | D4..D7 : Auslsetasten (nicht entprellt) 
0202 | Nicht verwendet, aber ausdekodiert
 ... | 
0207 |
     | 
     | Printer 2 (LPT2)
0278 | Write: Daten (Read latched write data) 
0279 | Read/Write: 
     | D3 : -ERROR 
     | D4 : -SLCT in
     | D5 : PE 
     | D6 : -ACK 
     | D7 : BUSY 
027A | D0 : -STROBE
     | D1 : -AUTOFEED 
     | D2 : INIT 
     | D3 : -SLCT out
     | D4 : IRQ Mask 
027B | N.C. 
 ... | 
027F |
     |
02F8 | RS232C Adapter (COM2) wie COM1 (03F8..03FF) 
...  | Generiert IRQ 3
02FF | 
     | 
0300 | Prototype Card 
 ... | 
031F | 
     |
     | Printer 1 (LPT1, wie 03B8..03BA) 
0378 | Write: Daten (Read latched write data) 
0379 | Read/Write: 
     | D3 : -ERROR 
     | D4 : -SLCT in
     | D5 : PE 
     | D6 : -ACK 
     | D7 : BUSY 
037A | D0 : -STROBE
     | D1 : -AUTOFEED 
     | D2 : INIT 
     | D3 : -SLCT out
     | D4 : IRQ Mask 
037B | N.C. 
 ... | 
037F |
     |
     | SDLC, bisync 2 
     | 0380..0383 = 8255 : Parallel Ports
0380 | Port A - Read
     | D0 : 0 = Rufzeichen liegt an (RI)
     | D1 : 0 = Trgerfrequenzkennung liegt an (DCD)
     | D2 : TXCLK (Diagnostic)
     | D3 : 0 = Sendebereitschaft liegt an (CTS)
     | D4 : RXCLK (Diagnostic)
     | D5 : 1 = Modemstatusnderung (DSR changed) 
     | D6 : 1 = Timer 2 Output active
     | D7 : 1 = Timer 1 Output active
0381 | Port B - Write 
     | D0 : 0 = Baudrateselektor ein
     | D1 : 0 = Auswahlbereitschaft ein 
     | D2 : 0 = Prfung einschalten 
     | D3 : 1 = Reset Modemstatusnderungs Flip-Flop 
     | D4 : 1 = Reset 8273 
     | D5 : 1 = Timer 2 durchschalten 
     | D6 : 1 = Timer 1 durchschalten 
     | D7 : 1 = IRQ 4 aktivieren 
0382 | Port C - D0..D3 Write, D4..D6 Read, D7 N.C. 
     | D0 : 1 = Internen Takt durchschalten 
     | D1 : 1 = Externen Takt durchschalten 
     | D2 : 1 = Elektronischer Test 
     | D3 : 0 = IRQ 3 + 4 durchschalten 
     | D4 : RX Daten 
     | D5 : Timer 0 Output 
     | D6 : 0 = Prfanzeige aktiv
0383 | 8255 Modussteuerregister 
     |
     | 0384..0387 = 8253: Timer
0384 | Timer 0 low/high. Ausgang ist Eingang von Timer 2 (Bit 5 in 0382) 
0385 | Timer 1 low/high. Timeout Counter 
0386 | Timer 2 low/high. Timeout Counter 
0387 | 8254 Modusregister 
     | 
     | 0388..038C = 8273 SDLC Controller 
0388 | Read: Statusregister 
     | Write: Befehlsregister 
0389 | Read: Ergebnisregister 
     | Write: Parameterregister
038A | DMA/Interrupt Register fr Empfangen 
038B | DMA/Interrupt Register fr Senden 
038C | Datenport Read/Write 
     | 8273 Registerbeschreibung: 
     | Moderegister (Bit D6..D7 whlt Counter auf den sich D0..D5 beziehen) 
     | D0 : 0 = Counter 16 Bit Binr 
     |      1 = Counter  4 Dekad. BCD
     | D1..D3 : Modus 0..5 (D7 = 1) 
     | D4..D5 : D54
     |           00 = Counter stop 
     |           01 = read/write highbyte 
     |           10 = read/write lowbyte 
     |           11 = erst low, dann highbyte read/write 
     | D6..D7 : Counter auswhlen (00=0, 01=1, 10=2, 11=3) 
     | 
     | Betriebsarten Register
     | D0 : 1 = Kennzeichenmodus 
     | D1 : 1 = Sync fr 2. Header
     | D2 : 1 = Buffer Modus 
     | D3 : 1 = Vorzeitigen Sendeinterrupt aktivieren 
     | D4 : 1 = EOP IRQ aktivieren 
     | D5 : 1 = MDLC Abbruch aktivieren 
     | 
     | Serial I/O Moderegister 
     | D0 = 1 : NRZI Modus 
     | D1 = 1 : Clock Loopback 
     | D2 = 1 : Data Loopback 
     | 
     | Transmit Moderegister 
     | D0 = 1 : Datenbertragung unterbrechen 
     | 
     | Singlebit Delay Modusregister 
     | D7 = 1 : Singlebit delay aktivieren 
     | 
038D | N.C.
 ... |
038F |
     |
     |
03A0 | bisync 1 
 ... | wie 0380..038F
03AF |
     | 
     | Hercules komp. Mono/Graphik Karte
     | Mit * gekennzeichnete Bits sind nicht auf allen Karten verfgbar.
03B4 | Indexport 6845 (Videocontroller) 
     | Write: Register Nummer 0..17 
03B5 | Datenport 6845 : Register (Write only, sofern nichts anderes vermerkt)
     |  0: D0..D7 = Anzahl Zeichen pro Zeile -1 (Horizontalfreq.) 
     |  1: D0..D7 = Anzahl dargestellte Zeichen pro Zeile 
     |  2: D0..D7 = Zeichenposition-1 des HSYNC Signals 
     |  3: D0..D3 = Breite-1 des HSYNC Signals in Zeichen 
     |  4: D0..D6 = Anzahl Zeichenzeilen (Vertikalfreq. 50/60 Hz) 
     |  5: D0..D4 = Bilddurchlauf Abgleich in Mikrozeilen 
     |  6: D0..D6 = Anzahl dargestellte Zeichenzeilen 
     |  7: D0..D6 = Zeichenzeile, bei der VSYNC Signal beginnt 
     |  8: D0 = 0 : Kein Zeilensprungverfahren 
     |        = 1 und D1 = 0 : Zeilensprungverfahren, normale Dichte 
     |        =1  und D1 = 1 : Zeilensprungverfahren, doppelte Dichte 
     |  9: D0..D4 = Mikrozeilen/Zeichen-1 
     | 10: D0..D4 = Startmikrozeile des Cursors 
     |     D5/D6  = 0 : Cursor normal, blinkend 
     |              1 : Cursor unsichtbar 
     |              2 : Cursor blinkt mit 1/16 der Vertikalfrequenz 
     |              3 : Cursor blinkt mit 1/32 der Vertikalfrequenz 
     | 11: D0..D4 = Endmikrozeile des Cursors 
     | 12: D0..D5 = Highbits der Speicherstartadresse 
     | 13: D0..D7 = Lowbits der Speicherstartadresse 
     | 14: D0..D5 = Highbits der aktuellen Cursorspeicheradresse (Read/Write)
     | 15: D0..D7 = Lowbits der aktuellen Cursorspeicheradresse (Read/Write)
     | 16: D0..D5 = Highbits der Speicherstelle, bei der LPSTB ausgelst 
     | 17: D0..D7 = Lowbits der Speicherstelle, bei der LPSTB ausgelst 
03B8 | Write: Display Mode Control Port 
     | D1: 6845 muss nach einer nderung dieses Bits neu initialisiert werdem
     |     0 : Text Mode    (Zeichen 9 x 14, 0.5625us/Zeichen)
     |     1 : Graphik Mode (Zeichen 4 x 16, 1us/Zeichen Horizontal)
     | D3: 0 : Screen blanked (Bei Init 6845 auf 0 setzen) 
     |     1 : Screen activated 
     | D5: 0 : Textblinker (Attributbit 7 = 1) ausgeschaltet 
     |     1 : Textblinker angeschaltet 
     |*D6: 0 : 80 Spalten Modus (nur CT6040S)
     | D7: 0 : Graphikpage 0 (B0000..B7FFF) 
     |     1 : Graphikpage 1 (B8000..BFFFF) 
03B9 |*Write: Set Lightpen Flip-Flop (Eingang zum 6845 LPSTB) 
03BA | Read: Display Status Port 
     | D0: 1 : HSYNC (Horizontal Retrace) luft gerade 
     |*D1: Ausgang des Lightpen Flip-Flop (LPSTB-Eingang 6845) 
     |*D2: 1 : Lightpen Taster gedrckt (Pin 3 des LP-Steckers) 
     | D3: Ausgang VIDEO zum Monitor (Dots on/off) 
     | D7: 1 : VSYNC (Vertical Retrace) luft gerade 
03BB |*Write: Reset Lightpen Flip-Flop 
03BC | Read: Latched Write Data 
     | Write: Printer Data D0..D7 (pin 2..9)
03BD | Read: Printer Status Port 
     | D3:0 : Printer Error (ERROR, pin 15) 
     | D4:0 : Printer deselected (SLCT, pin 13)
     | D5:1 : Paper end (PE, pin 12) 
     | D6:1 : Ready for more (ACK, pin 10) 
     | D7:0 : Printer is busy (BUSY, pin 11) 
03BE | Read (Latched Write Data) 
     | Write: Printer Control Port 
     | D0: Printer Strobe (0 = Strobe to Printer, 1 = Release Strobe) pin 1
     | D1: 0 = Autolinefeed after CR, 1 = CR, LF (Programm) pin 14
     | D2: 0 = Init Printer (pin 16), 1 = Release Init 
     | D3: 0 = Deselect Printer (SLCT, pin 17), 1 = Select Printer 
     | D4: 0 = Mask IRQ7 off, 1 = IRQ7 (ACK Flanke) mask on 
03BF |*Read LPSTB extension Adress (Im Graphikmodus) 
     |*D0..D3 = xpos Dots MOD 16
     |*D4: Dotclk 74112 (U58) 
     |*D5..D6 = ypos Dots MOD 4 
     |*D7: Aktive Graphikseite 
     | Write: Configuration Switch 
     | D0: Bit 1 03B8 AND-Mask (0: Kein Graphikmode einschaltbar) 
     | D1: Bit 7 03B8 AND-Mask (0: Keine Graphikseite 1 einschaltbar) 
     |     (falls 0: B8000..BFFFF auf Graphikkarte abgeschaltet)
     | 
     | 
     | CGA (Color Graphics Adapter) 
03D4 | 6845 Index Register (siehe 03B4)
03D5 | 6845 Data Register (siehe 03B5)
03D8 | 
     | D0 : 1 = 80x25 
     |      0 = 40x25 
     | D1 : 1 = 320x200 Graphikmodus 
     |      0 = Alphanumerisch Text 
     | D2 : 1 = S/W 
     |      0 = Color 
     | D3 : 0 = Screen blanked
     | D4 : 1 = 640x200 S/W Modus 
     | D5 : 1 = Blinken statt Intensittsbit (Bit 3) 
     |      0 = Intensittsbit fr 16 statt 8 Farben (2 Helligkeiten)
03D9 | Write: Paletteregister 
     | D0 : Blau 
     | D1 : Grn 
     | D2 : Rot 
     | D3 : Intensity 
     | D4 : 1 = Intensivfarbsatz im Graphikmodus 
     | D5 : 1 = Farbsatz 320x200 Modus aktivieren
03DA | Read: Statusregister 
     | D0 = HSYNC (Anzeige aktiviert) 
     | D1 = Lightpen Strobe Flip-Flop Ausgang 
     | D2 = Lightpentaster gedrckt 
     | D3 = VSYNC 
03DB | Write: Reset Lightpen Flip-Flop 
03DC | Write: Set Lightpen Flip-Flop
     | 
     | 
     | Diskettencontroller uPD 765 
03F2 | DIGOR (Digital Output Register) - Write
     | D0..D1 : Laufwerk 00 = A, 01 = B, 10 = C, 11 = D 
     | D2 : 0 = RESET Signal aktiviert, 1 = RESET aus
     | D3 : 1 = DMA und IRQ aktivieren 
     | D4..D7 : 1 = Motor fr Laufwerk A..D einschalten 
03F4 | Hauptstatusregister - Read
     | D0..D3 : Laufwerk A..D seeked noch 
     | D4 : 1 = BUSY 
     | D5 : 1 = DMA nicht aktiv 
     | D6 : 1 = Prozessor liest Datenregister, 0 = Prozessor schreibt Datenr. 
     | D7 : 1 = Register bereit fr Datentransfer
03F5 | Diskettensteuerungsdatenregister - Write 
     | D0..D7 : Command 
     |     C5 = write (hd+drv.b,cyl.b,frst_sec.b,byte_p_sec.b,last_sec.b, 
     |                 gap.b, dtl.b)
     |     E6 = read (hd+drv.b,cyl.b,frst_sec.b,byte_p_sec.b,last_sec.b, 
     |                gap.b, dtl.b)
     |     4D = format (byte_p_sec.b, last_sec.b, gap.b, dtl.b)
     |          hd+drv.b : D5..D2 = Head, D1..D0 = Drive
     |     Nach jedem Kommando kann solange BUSY=1 ist, ein Statusbyte bei 
     |     03F5 abgeholt werden (warten bis D6=1 und D7=1 in 03F4). 
     |     Status: 
     |     D7 = rnf, timeout
     |     D6
     |     D5 = crc error
     |     D4 = dma error
     |     D3
     |     D2 = rnf 
     |     D1 = write protected 
     |     D0 = bad addr mark
     |
03F6 | Harddisk Control Register
     | D7 : 1 = Disable Retries 
     | D6 : 1 = Kein ECC bei Fehler 
     | D5 :
     | D4 :
     | D3 : 1 = Falls anz. Heads > 8 
     | D2 : 1 = RESET KONGO CARD (wieder auf 0 setzen) 
     | D1 : 
     | D0 :
     | 
03F7 | DIGIR (Digital Input Register) - Read 
     | D7 : 1 = Media changed
     | 
     | 
     | RS232C Adapter 8250 (COM1) Generiert IRQ 4
03F8 | DLAB = 0
     |       Read: Receivebuffer (RBR = receive buffer register)
     |      Write: Transmitbuffer (THR = transmit holding register)
     | DLAB = 1 : Read/Write: Divisor Latch LSB   Read/Write
03F9 | DLAB = 1 : Read/Write: Divisor Latch MSB   Read/Write
     |            Baud = 115200/divisor (clk = 1.8432 MHz DIV 16) 
     | DLAB = 0 : Interrupt Enable Register (IER) Read/Write 
     |     Bit = 1: Interrupt enabled, Bit=0: Interrupt disabled  
     | D0: Receive Char Interrupt 
     | D1: Transmitter empty Interrupt 
     | D2: Receiver Line Status Interrupt (Framing, Parity, Overrun, Break)
     | D3: Modem Status Interrupt (CTS, DSR, RI, DCD changed)
     | D4..D7 = 0
03FA | Interrupt Identification Register (IIR) Read/Write
     | Prios: 1=Receiver Line Status, RX available, THR empty, 4=Modem Status 
     | D0 = 0: Interrupt pending 
     | D1..D2: Interrupt source (falls D0 = 0) 
     |   Prio D21 Source                            Cleared by
     |      1  01 Overrun, Parity, Framing, Break   Read LSR 
     |      2  10 Receive data available            Read RBR 
     |      3  11 THR empty                         Read IIR oder Write THR 
     |      4  00 CTS, DSR, RI, RLSD changed        Read MSR 
03FB | Line Control Register (LCR) Read/Write
     | D0..D1 : Wordlength (00=5, 01=6, 10=7, 11=8 Datenbits) 
     | D2 : 0 = 1 Stopbit 
     |      1 = 1.5 Stopbits, falls 5 Datenbits, 2 Stopbits sonst 
     | D3 : 1 = Parity generate & check enabled 
     | D4 : Falls D3 = 1 : 0 = Odd Parity, 1 = Even Parity 
     | D5 : Falls D3 = 1 und D5 = 1: 0 = Parity Mark, 1 = Parity Space
     |     D543 Funktion
     |      000 Kein Parity
     |      001 Odd Parity
     |      010 Kein Parity 
     |      011 Even Parity
     |      100 Kein Parity
     |      101 Parity stuck on (1 = Mark) 
     |      110 Kein Parity
     |      111 Parity stuck off (0 = Space) 
     | D6 : 1 = Send Break (Muss wieder auf 0 gesetzt werden)
     | D7 : DLAB = 1 : Baudrate Divisor Latch Access ueber 0XF8/0XF9 
03FC | Modem Control Register (MCR) 
     | D0: 1 = DTR aktiv
     | D1: 1 = RTS aktiv 
     | D2: 1 = OUT1 aktiv (Pin 34) 
     | D3: 1 = OUT2 aktiv (Pin 31)
     | D4: 1 = Diagnostic Mode: 
     |         TX-Out --> RX-In (Local Loopback) 
     |         RTS->CTS, DTR->DSR, OUT1->DCD, OUT2->RI internally connected 
     |         Interupts lassen sich mit D0..D3 des MCR, bzw. D0..D5 des LSR 
     |         auslsen (dann Bits wieder auf 0 und MCR auf 0). 
03FD | Line Status Register (LSR) Read/Write 
     | D0: 1 = Character Received                 Interrupt 2
     | D1: 1 = Receiver Overrun Error             Interrupt 1
     | D2: 1 = Parity Error                       Interrupt 1
     | D3: 1 = Framing Error                      Interrupt 1
     | D4: 1 = Break detected                     Interrupt 1
     | D5: 1 = Transmitter Holding register empty Interrupt 3
     | D6: 1 = Transmitter complete cleared (THR & TSR empty) 
     | D7: 0 
03FE | Modem Status Register (MSR) Read/Write 
     | D0: 1 = CTS changed since last MSR read    Interrupt 4
     | D1: 1 = DSR changed since last MSR read    Interrupt 4
     | D2: 1 = RI changed from active to inactive Interrupt 4
     | D3: 1 = DCD changed since last MSR read    Interrupt 4
     | D4: CTS input (Diagnostic: RTS) 
     | D5: DSR input (Diagnostic: DTR) 
     | D6: RI  input (Diagnostic: OUT1) 
     | D7: DCD input (Diagnostic: OUT2)
03FF | Reserviert 
     |