Appendix 4: The DISCiPLE Hardware
The DISCiPLE hardware consists of 8K ROM, 8K Static RAM, a Western Digital WD1772
Floppy Disk Controller, two PALs for address decoding and a few 74XX-type ICs.
The ROM and RAM are mapped in the 0-16K address range, sharing it with the Spectrum
"main" ROM. When the Z80 in the Spectrum reaches certain addresses, the "main" ROM is
paged-out and the DISCiPLE RAM&ROM are paged-in.
These addresses are:
#0001 Spectrum initialize.
#0008 Spectrum error restart.
#0066 Non Maskable Interrupt routine and return from CALBAS.
#028E Spectrum keyboard scan routine.
The following I/O ports are used for communication between the Z80 and the DISCiPLE
hardware:
27 #1B FDC status (read) & command (write) register
91 #5B FDC track register
155 #9B FDC sector register
219 #DB FDC data register
31 #1F Kempston joystick (read) & control (write)
7 6 5 4 3 2 1 0
read: net busy - fire up down left right
(active low, e.g. printer is busy if bit6=0)
write: net strobe ext.sel hibit romA13 SD side1 drive0
(active high, e.g. printer strobe if bit6=1)
ext.sel = external select, romA13 = ROM address line 13,
SD = Single Density, side0 & side1, drive0 & drive1
NOTE: Hibit is inverted inhibit, so if the inhibit button is in and
bit4=0 then DISCiPLE memory address decoding inactive!
59 #3B Net-WAIT (write-only) Activate Z80 WAIT line if network has a high level.
(a read of port 31 would then give bit7=0)
123 #7B ROM/RAM flip (called BOOT by MGT)
read: ROM at 0-8K, RAM at 8-16K addresses (MGT: SET BOOT)
NOTE: Pressing the reset button has the same effect, i.e. ROM low.
write: ROM at 8-16K, RAM at 0-8K addresses (MGT: RESET BOOT)
187 #BB Page-in/out DISCiPLE ROM&RAM (called PATCH by MGT)
read: page-in ROM/RAM (MGT: SET PATCH)
write: page-out ROM/RAM (MGT: RESET PATCH)
251 #FB Printer data (write-only)
254 #FE Sinclair joystick 1 & 2 (read-only, active low)
joystick 1 (keys 1-5: left, right, down, up, fire) is selected when
A11=0, e.g. LD BC,#F7FE IN A,(C).
joystick 2 (keys 6-0: left, right, down, up, fire) is selected when
A12=0, e.g. LD BC,#EFFE IN A,(C).
joystick 2 shares connector with Kempston joystick.