The second part of this series will describe some of the hardware so that construction work can progress while the software is developed and tested.
It seemed probable from the outset that more and more peripherals would be added to the system as time passed so the first task was to build an expansion interface to buffer the TIMEX/SINCLAIR signals. Such expansion boards have been described in the past and this one is not much different.
EXPANSION BOARD
The interface described here uses a “COMPUTER CONTINUUM” board (since I had one) but the circuit can equally well be put together on perforated project board with wire wrap or point-to-point wiring. The “COMPUTER CONTINUUM” board is very well made, costs $35, and makes life a lot easier. The board comes with provision for memory-mapped I/O in the 8 to 16K region and as a result the decoding suggested is quite complicated. Without much loss of versatility, the four ICs used in the decoding were replaced by one-half of a 74LS02 quad NOR gate (see Figure 4) — partly because I did not have the 7425 required. The only restriction caused by this modification is to disallow use of internal RAM — it is disabled by ty ing RAMCS high.
The buffer ICs used on the board are a 74LS245; three 81LS95; and one 74LS365 (or 367). If you put together your own interface you might prefer to use a combination of one 74LS245 (for data) and three 74LS244 (for address and control). Such an interface has been described by JOHN OLIGER in the WINTER and SPRING issues of SQ. If you wish to modify a “COMPUTER CONTINUUM” board for this interface, the instructions are summarized in Figures 2, 3, and 4. The interface is described in Figure 1. Note that the signal BUSEN is the interface buffer enable (ACTIVE LOW).
After building the interface, test it by plugging it into the computer with a peripheral RAM pack. Test the use of the 8 – 16K space if you have a device that uses that area. The “COMPUTER CONTINUUM” board can be inserted into the rear expansion socket of a ZX81/TS1000 just like any other peripheral. Alternatively, the ZX81/TS1000 board can be removed from its case and plugged in vertically — this is useful when an external keyboard has been, or will be, added.
MEMORY INTERFACE
The next step in the project, the memory interface, was built on a RADIO-SHACK project board 276-152A using wire-wrap techniques. This board has a male 22/44 0.156″ edge connector which matches the sockets on the expansion board. The female connector to match is readily available at RADIO-SHACK and elsewhere. The wire-wrap connections used allow easy modification and later expansion (and also easy correction of design errors). The position of the memory interface in the scheme of things is shown in Figure 5 and the schematic for the part constructed this month is illustrated in Figure 6.
Operation of the circuit is as follows: The device is mapped in I/O space to avoid any conflict with memory. The 74LS30 generates a negative-going pulse when A0,A1,A2,A5, and A6 are high and I/ORQ, WR, and A7 are low. This pulse is inverted and used as the clock-pulse for the 74LS74 D-type flip-flop. On receipt of the clock-pulse the flip-flop latches the data on A3 and A4. The LEDs provide confirmation. Note that no data lines are used in the device — this uses up more of the I/O space but is economical in hardware. The clear inputs to the 74LS74 are automatically brought low on power-up or upon loss of power.

After building this part of the interface try the following test. Plug the board into your expansion interface (or with a suitable socket directly into your computer) and power up. Neither LED should be lit at this point. Since the SINCLAIR BASIC has no IN Or OUT commands, the routine to service this port must be written in machine code. Enter the program:
10 REM 123
20 INPUT A
30 POKE 16515,A
40 RAND USR 16514
Then poke in the machine code:
POKE 16514,211
POKE 16516,201
Now the program can be RUN. When prompted, enter the address 111 — the first LED should light. RUN the program again and enter 119 — the first LED should go out and the second one should come on. The address 103 will clear the latch and the address 127 will light both LEDs. The outputs of the 74LS74 will be used to switch between memory banks.
In next months installment the memory bank will be described, the memory interface will be completed, and if there is room, some more software will be discussed.
Figure 2 Modifications to the COMPUTER CONTINUUM expansion board
1. Omit sockets IC1, IC2, IC4, and IC9
2. Jumper together:
on socket 7 pins 13 and 14 (NMI)
pins 15 and 16 (INT)
on socket 8 pins 6 and 7 (ROMCS)
pins 9 and 10 (WAIT)
pins 11 and 12 (BUSAK)
3. Disengage the IC pins from these jumpered sockets
4. Replace diode D1 with a wire jumper
5. Add the small piggy back pc board illustrated in Figure 3 over the space normally occupied by IC1, IC2, IC4 and IC9. Signals to this pc board are derived as follows:
BUSEN pin 2 of IC9 (grounded by jumper)
ROMCS pin 6 of IC1
RD pin 5 of IC9
DIR pin 8 of IC9 high for read by
CPU low for write
GND pin 7 of IC2
+5V pin 14 of IC2
6. Insert a 74LS02 into the piggy back board
7. Note that both J1 and J2 on the expansion board are inserted to supply +5V and +9V to the expansion




Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.