Using the increasingly popular 6502 micro' the basic Acorn microcomputer comprises two Eurocards each measuring 160 x 100mm mounted sandwich fashion, and requiring just one supply line of 7-35V. It costs £65 + VAT.
The MPU card (lower) houses the 6502 chip, 512 byte Acorn monitor, 1K byte RAM, 16-way RAM I/O (with 128 bytes), 1 MHz crystal, 5V regulator, and sockets for 2K EPROM and second RAM I/O chip.
The Keyboard card (upper) holds a superbly clear keypad with 25 buttons which have a nice "clicky" action, arranged as 16 hex and 9 control keys. Mounted on this keypad is a pocket calculator type 7-segment display strip, specified as eight digits but in our case nine, with the extreme left-hand digit unconnected. The upper p.c.b. also contains a CUTS (Computer User's Tape Standard) crystal controlled tape interface circuit.
The glass-fibre plated-through p.c.b.s are clearly marked with component positions and numbers, and are immediately recognisable as being of excellent professional standard. First class d.i.l. sockets are used. The two boards are linked by a 20-way ribbon cable soldered at each end, which carries the keyboard and display signals down to the 8154 RAM I/O device on the MPU board. The MPU bus is available on a set of tinned contacts which can either be soldered to, or can accommodate a 64-way right-angled card edge connector (indirect type).
The only criticism I could muster concerning construction, albeit a minor one, is that the display unit is supported solely by its own ribbon cable—although this arrangement is probably adequate in the absence of maltreatment. After some debate I decided to "come clean" and confess to having given the Acorn a substantial jolt when its lead became entangled with another. The machine continued to work perfectly, and this admission is the best comment I can make on its robustness—but be warned, open systems evolved around interwired modules are a risk in this respect!
Sufficient description of the resident monitor program is given to show how subroutines contained therein can be jumped to, and from, to save effort and RAM space when writing your own programs. And it is pointed out that user programs should not start at the lowest memory address because the low addresses are used as a scratchpad for temporary data storage by the monitor. The monitor firmware is listed, complete with labels and comments, but what is lacking is a single overall picture of the memory map.
Although the User's Manual begins by briefly explaining binary, octal, decimal and hexadecimal, I feel that the contents may still become a little abstract for some; a situation possibly avoided by the addition of further diagrams showing where data is coming from and going to.
A major criticism of the manual from the beginner's point of view however, is that the text is in capital letters throughout. If this was an attempt to make the reading clearer, then in my view it failed . Sentences become lost, and confusion results WHEN EXPLAINING AND AND OR FUNCTIONS ETC..See what I mean! The absence of page numbers was an irritation too.
These points aside, the User's Manual has all the information and help one would expect, plus a number of mathematic program routines, and games.
The twenty page Acorn Technical Manual contains not only constructional details, but a suggested p.s.u. design and full circuit diagrams on separate sheets giving all the information you could wish for. Among other things a thoughtful feature is described whereby a 16-pin d.i.l. socket is used as a patch-panel to allow alternative memory address mapping. Links inserted in the socket can be altered to re-configure the chip select lines to suit your requirements, and various options are illustrated, such as the example shown in Fig 1. Before one can appreciate the value of this facility it is necessary to understand the nature of the memory structure, and for this purpose there is a preceeding (sic) description explaining how the memory is divided into 16 blocks and 256 pages, each page consisting of 256 bytes.
Fig. 1. An example of an address decoding option illustrated in the Acorn manual. Here, a 2048 byte EPROM is fully decoded, but ROM i.c.s 5 and 6 appear four times. The EPROM can be 2704, -08, -16 or -32. With minimal track cuts the triple rail 2704 may also be used.
Fig. 2. Acorn memory map (as supplied) (The original picture was not very legible. Not certain that the hex addresses are correct.)
For the benefit of those, who like myself prefer to see the memory addressing graphically mapped out, I have included the diagram in Fig. 2. This is how the Acorn is supplied, and of course it can be changed.
It is here in the Technical Manual that you will discover snips of information, such as, that it is the bottom 32 bytes of page 00 that are used as the monitor scratchpad, and that page 01 is used by the 6502 for the stack, starting at address 01FF extending downwards. Incidental information such as this is far handier compiled into a "finger-tip" reference or memory map diagram, especially when program writing or interfacing.
There is no 7-segment decoding as such, since the RAM I/O device simply couples the segment lines a through g to the data bus lines D0 to D6; thus allowing simple binary data statements of zeros and ones to be remembered in ROM and called up by straightforward memory addressing. These are located at FFEA-FFF9 (FONT), an example being the contents of location FFF3 which is 6F hex. This gives 0110 1111 binary, and if segment "a" relates to the least significant bit then it follows that a 9 will be produced on the display. Freedom to produce any combinations of segment display results from this technique, and the User's Manual gives a complete 64 character ASCII format attainable on the seven segment display—if somewhat abstract!
A feature of the monitor which might affect anyone susceptible to hypnosis, is the low display strobe rate, which produces a constant flicker, and the direction of which is just perceivable to the corner of the eye. To be honest though, this is something I became accustomed to, and unaware of very quickly.
|m||Memory inspect. Allows you to inspect and modify the contents of any memory location. Can be used with the Ù and Ú keys.|
|l||Load from tape, explained later.|
|g||Go. Execute program.|
|r||Restore from break. See Debug Firmware.|
|p||Set or clear break point. See Debug Firmware.|
|Ù||Step up (through memory).|
|s||Save on tape, explained later.|
|Ú||Step down (through memory).|
The display goes blank while Acorn busies itself with recording, and then when the finish address reappears, recording is complete and you are back at the monitor "entry" point FF04.
The name of the program etc. can be recorded verbally before commencing with the digital signals.
To load a program from tape-to-Acorn, the tape is replayed until the continuous pilot tone (2403.8Hz = all 1s) is heard, and then the rst and l keys are pressed. The display blanks out until data is encountered, whereupon the left-most digit displays a symbol for each byte as it enters (recording/replay speed is 30 bytes per second). As an example, the manual shows how to save and reload a program called Duck Shoot, which, with 68 bytes plus the necessary 4 bytes of address information takes two seconds to load. When the program has completed loading the previous display reappears. Programs can be self-priming after being loaded, and immediately seize control, a feature found on high level machines running in BASIC for example.
Under normal conditions a program once restored to Acorn will occupy the addresses at which it was stored on tape. The Acorn tape interface falls within 0.2 per cent of the CUTS standard (2400/1200Hz).
An important aspect of saving hex code programs on tape, when you have expended much concentration keying in all those dazzling statements, is the reliability and ease with which the operation can be carried out. I found the Acorn more communicative and less critically dependent on recorder level setting than a multi-level BASIC home computer recently reviewed in P.E. I soldered a twin screened lead to Acorn's tape in/out connections (no connector supplied), and hooked it up first of all to a BASF cassette recorder. Then I recorded Duck Shoot on auto-level and on a wide range of record sensitivities with no problem, and successfully recovered it again with output signals ranging from 15mV to 300mV (max. from recorder). At around 20mV and below the occasional statement would go astray, but even then it never took more than two attempts to load it accurately.
I transferred the recorded cassette to a SONY TC-207 recorder and happily recovered the program again. On this cassette recorder, and no doubt others, the only available output is the earphone socket, which unfortunately mutes the speaker. It was thus necessary to keep removing the plug in order to hear the pilot tone; however, this criticism is not confined to the Acorn.
The two-board computer can be powered from a "calculator-style" p.s.u. available from Acorn at £5.00 +VAT
All this is standard 6502 interrupt technique, but if the debug firmware start address FFB3 is inserted into these scratchpad locations (001E and 001F), then the machine will jump into the diagnostic mode. I stated that key p could be used to insert or over-write a 00 instruction at a particular location; in fact, the original instruction is saved at address 0018, and by pressing p again it is returned. With this BREAK instruction inserted at a point in your program where you suspect something is going awry, the machine will run to that point, stop and display the contents of the Accumulator, X and Y registers and P register (Process status). Press p again and the Program Counter and Stack Pointer will be displayed. Escape from this condition is by the r (Restore) key.
During debugging the Ù and Ú keys can be used to operate on the p address, but only a single location's back-up copy is retained. However, this provides a most useful debugging facility.
There is no single step facility but a way in which it can be achieved is described, requiring only a 74LS74, BC107 and two resistors forming a circuit to "stretch" the SYNC signal. A NMI (Non Maskable Interrupt) is generated every opcode not fetched in the monitor, and using the recommended method the monitor routine at FFB3 will display the processor status after each instruction. The next instruction is executed by pressing r.
The 8154 is TTL compatible, with 128 bytes of RAM, and two 8-bit peripheral ports, of which one can be programmed to operate in various strobed modes with handshaking. The device is covered in a cursory manner only in the Acorn manual, and so it would be advisable to obtain a data sheet to fully realise its potential.
Although this point is made in the technical manual, it might easily be overlooked in a hasty attempt to "get things going", resulting in heat damage.
If a lasting relationship with the 6502 is anticipated, then a worthwhile investment would be the MOS Technology manual set, namely 6502 Hardware, and 6502 Programming manuals, available from Commodore of Euston Road, London.
As the name Acorn implies, upwards expandability is genetically built in, but while you're waiting for it to grow, the minimum configuration serves as an ideal training tool for hex code programming.