140 Series hardware I/O ports


The 140 Series uses memory-mapped I/O. This is located from 0c00h to 0fffh. These are all the ports that I currently know of, and their function, if known.

CPU Boards (7501 or 7684/7685)

0c00
Z80 CTC Register 0
R/W
0c01
Z80 CTC Register 1
R/W
0c02
Z80 CTC Register 2
R/W
0c03
Z80 CTC Register 3
R/W
0c04
SW1 and IPL selection toggle switch
R
0c05
SW2
R
0c06
MPE (Memory Parity Error) bit register
R
0c07
Unknown diagnostic register
?
0c08
Unknown diagnostic register
?
0c09
NMI Generation register
W
0c0a
Unknown diagnostic register
?
0c0b
Front panel LED indicators
W
0c0c
DS1-DS4, DPB (on CPU board)
R
0c0d
CPU board LEDs DS0-DS7
W
0c0e
Interrupt generation register (diagnostic)
W
0c0f
Unknown
?

7685 Memory Expansion

This board resides from 0c20 - 0c2f. I don't know how it works yet.

Floppy/Hawk Controller 7502

0c40
Status register
R
0c41
Disk unit selection register
R/W
0c42
Sector counter
R
0c43
Load disk head
W
0c44
Unload disk head
W
0c45
Steps head away from track 0
W
0c46
Steps head towards track 0
W
0c47
Disk header track number
R/W
0c48
Disk header sector number
R/W
0c49
Hawk register - Unknown
?
0c4a
Hawk register - Unknown
?
0c4b
Read command
W
0c4c
Write command
W
0c4d
Write Header command
W
0c4e
Diagnostic register
R/W
0c4f
Reset controller
W

Data Link control 7503

0cc0
Status register
R
0cc1
Unit Select
R/W
0cc2
Byte transfer low address bits
R/W
0cc3
Byte transfer high address bits
R/W
0cc4
Data read port (byte)
R
0cc5
Unknown
?
0cc6
Device ID/Status register
R
0cc7
Data Write port (byte)
W
0cc8
Command register
W
0ccf
Reset controller
W

Data Buffer (DMA) 7504

0cd0
Status register
R
0cd1
Source/Target device Unit number
R/W
0cd2
Unused

0cd3
Memory page address
R/W
0cd4
Load buffer
W
0cd5
Unload buffer
W
0cd6-0cde
Unknown

0cdf
Reset (not sure)
W

The SMD controller resides from 0c90-0c9f. The Shugart/Quantum controller uses ports 0d00-0d0f.

Back