A review of the Acorn System 1.
Published in Practical Electronics, September 1979.


Acorn Computer


Reviewed by Mike Abbott


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.


CONSTRUCTION

Although the Acorn is available in kit form, we received for review a ready built and tested unit, and so cannot comment on the ease of assembly, but I would say that anyone who can solder components to a p.c.b. could put it together without difficulty, the procedure being largely self-evident.

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!

Acorn System 1

MANUALS

Documentation is a most important aspect, since even a perfect computer may end up collecting dust if there is nothing to tell the owner how to get the best from it. In my view the scales do not tip decisively either way when judging the Acorn User's Manual. Certainly, the way in which the manual leads from one 6502 instruction to the next as the need for it becomes apparent, is nice; building on, and modifying the same program as an introduction to the methodology of machine code programming.

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.

FIRMWARE

The monitor program occupies addresses FFFF down to FE00, and its purpose in life is to scan the keyboard for instructions and data, and strobe the seven segment displays with specified information. Because of its function, the monitor naturally contains useful routines, or more specifically subroutines—terminated by the RTS (return from subroutine) instruction, and as mentioned before, it is explained in the User's Manual how to access these.

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.

KEYPAD

Apart from hex keys 0–9 and a–f, a number of control keys exist, and the layout of these can be seen in the photograph:
rstReset
mMemory inspect. Allows you to inspect and modify the contents of any memory location. Can be used with the Ù and Ú keys.
lLoad from tape, explained later.
gGo. Execute program.
rRestore from break. See Debug Firmware.
pSet or clear break point. See Debug Firmware.
ÙStep up (through memory).
sSave on tape, explained later.
ÚStep down (through memory).

System 1 keyboard

CASSETTE INTERFACE

It is possible to save a program on cassette with the Acorn by use of the s key, which simply allows you to "dump" the contents of an occupied section of memory serially on to tape using a domestic cassette recorder. The firmware requires that you press key s, after which it prompts you (F. XXXX on the display) to enter the start address of the program you wish to save. The Xs signify that those display digits will probably be meaningless garbage; keying in the start address will override these, and any command key will enter this new data. Having done so Acorn will now prompt you for the end address—you should in fact enter the end address + 1. The second prompt may also be garbage, which will again be overwritten, but this time you do not press any command key until you have all your connections made to the recorder, and the cassette running.

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
View of both boards

DEBUG FIRMWARE

A large chunk of the Acorn Monitor, starting at FFB3, is devoted to providing a debug facility. Using the p key in much the same way as the m key it is possible to display an address, but instead of showing the contents of that location, the 6502 BREAK instruction is inserted (00) which when executed, puts a "1" on the microprocessor's IRQ (Interrupt Request) line. This is known as a software interrupt, and the MPU jumps to a location vectored at FFFE and FFFF in the monitor. This then jumps the PC to a scratchpad location where you will have entered the start address of your new task (interrupt routine) for the microprocessor.

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.


FIRST DISPLAY
AXYP
PCSP
SECOND DISPLAY

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.

RAM I/O

There are two 40-pin I/O device sockets on the Acorn MPU board. One of these has an occupant which interfaces to the keyboard and display p.c.b., and the other can be filled for around £8 with a second 8154 RAM I/O device for external interfacing to, for example, a VDU.

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.

REGULATOR

The supply requirement is stated as being 7–35V unregulated, but minimal emphasis is placed on the need to put a "surplus power" dissipating resistor in the line if the supply source is greater than 9V. Even running the Acorn at 10V produced excessive heat at the regulator chip, which has no heatsink. Alternatively a heatsink could be added.

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.

FOR THOSE WITH "L" PLATES

The User's manual contains an assortment of printing errors ranging from the immediately obvious to those which, for the owner struggling along with minimal background knowledge, might cause confusion. An outbreak of mistakes occur in Chapter 6.2 where an unspecified program example is said to produce the answer 03, but should produce 30. Just above this program a set of brackets indicate the way to enter the diagnostic routine start address FFB3; here the second 001E should read 001F. However, anyone fooled by these simple errors should revert to reading a basic primer on the subject—therein lies the yard-stick!

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.

CONCLUSION

The Acorn is designed to be an attractive proposition in all fields of the microprocessor technology. It could form the heart of a sophisticated home or small business computer, with all the trappings, such as extra memory and BASIC interpreter, VDU, printer, and floppy disk. In fact, at the time of writing this article, a fast 4K BASIC was already at an advanced state of development by Acorn Computers, and a TV interface plus slightly modified ROMS. Both of these may be available by now. Naturally, to put the Acorn computer into the high level language class of machine, it would need to be coupled to a full ASCII keyboard, also coming soon. Alternatively, the Acorn could be employed as a machine code computer and used, for example, to develop software for dedicated 6502 automated systems. BASIC might even be considered for control applications if easily changed routines are desirable.

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.



2006 Comments



Chronological listing
Back to chronological list

Home Page
Home Page