Dear readers by the time you read this, you may have in the shops the Timex/Sinclair 2000 which is your equivalent of the ZX Spectrum.
The Spectrum can have 16K or 48K RAM provided inside the case (the extra 32K RAM chips and decoding can be added to the sockets at a later date). There is no RAM CS connection provided on the expansion port so once 48K is fitted, no EPROMs or extra devices can be inserted into the memory map. As the upgrade is via 32K chips and needs 150ns type chips, upgrades from other suppliers have been slow in coming, but some now cost £24.50 as against Sinclair’s price of £50 (which also requires the computer to be returned to Sinclair). A novel way round fitting extra chips is to add an “ADAM” adaptor which allows the use of a 16K ZX type RAM pack on the back of a Spectrum giving 32K for Basic. The RAM pack cannot be used directly for two reasons: not only is the memory area filled with RAM, but also the top eight address lines of the expansion bus are on either end of a 28 way p.c.b. edge instead 23 way edge of the ZX81. This makes any memory device incompatable and only I/O devices which restrict themselves to the address lines A7, A6, and A5 are useable. Sinclair has extended the number of bits required by his devices to five, so that if any I/O address which has one of the lower bits as Binary 0 will turn on his devices. This is covered in the manual.
The choice of ASCII as the character set has speeded up the production of games etc. for the Spectrum, but the screen display, although memory mapped and controlled by the ULA, is weirdly mapped. This leads to problems when you wish to use the screen with machine code or POKE it directly. The screen itself takes up 6912 bytes of RAM from the basic 16K and the lower half is mapped in dots rather than characters. Each Binary 1 represents an INK color, and each Binary 0, a PAPER color. This explains why there are only two colors allowed per character square. The top half called the ATTRIBUTE file contains the colors for INK and PAPER (out of a choice of eight), plus whether they should be FLASHing, BRIGHT, etc. The attribute file is normal mapped so that character 0,0 is the first followed by 0,1, etc. One of the interesting developments is that the whole character set can be redefined as well as the user definable characters (of which there are 21 A-U). By using a routine included in the “Horizon” cassette which is given free with every Spectrum, various sizes of characters can be made, giving up to 56 characters per line.
Many games etc. use this to squeeze more instructions or characters on to the screen. This and the fact that saving machine code and variables separately on the Spectrum is easy has encouraged programmers to separate their programs into sections to save on memory and make them harder to copy. Time Gate by Quicksilva is a good example as the instructions LOAD the program after the user has read them. This enables the full use of memory in this adventure type game. Games mostly seem to be based on Pacman, Frogger, Space Invaders, and Asteroids at the moment.
Having machine code so easily available, a lot of companies have come out with assemblers and disassemblers as well as monitors for the Spectrum. One of the best disassemblers is SPDE from Campbell systems and one of the best assemblers is ULTRA VIOLET from ACS. Pascal and Forth should just be a short time behind. Also available, but untried by me are two Basic compilers which turn out a machine code version of Basic program which is at least 100 times faster. These are available from PSS and SOFTEK.
The tape interface works at 1500 BAUD on the Spectrum and is very reliable. It has, however, one disadvantage over the ZX81 in that the cassette leads have to be constantly plugged in and out as feedback from the tape recorder stops a program or data being SAVEd properly. To stop this the EAR lead must be disconnected during SAVEing. This has led to the more common use of a cassette switch which allows you to disconnect one lead as well as amplify the rather weak BEEP sound effect from the Spectrum. Abacus does one if you are interested, and there is a programmable version available called an RZ1 which also controls the tape motor.
Coming back to the BEEP command for the moment, this only produces one sound at a time and stops all computing while doing it. This has lead to the production of various sound boards based on the AY8910 chip which will put out sounds independent of what the processor is doing. One of the best ideas I have seen yet is to include with it A/D and a set of joysticks plus an amplifier. This is done by Micro Power as a plug on board. It can also amplify the BEEP of the Spectrum if you wish.
Another use of the BEEP loudspeaker is employed by several of the games, that is, of having your Spectrum talk to you. This is achieved only in machine code and can either be reproduced by talking into a microphone and recording the digital signals to play back as speech or by using preprogrammed sounds to reproduce the voice. Both are available, and speech may be available later as an add-on chip.
Games are obviously one use of the Spectrum, but a lot more businessmen are looking at the Spectrum as a first step in computerizing their businesses. There will very soon be printer interfaces for the Spectrum, and Sinclair is launching a word processor soon. This is to go with the promised RS232 interface for a printer. The microdrive controller will be fitted inside the RS232/network interface box and so two boxes will now be required to use the “coming soon” Microdrive which is well over due. The network interface specification, modem, etc. are still to be published.