Acorn Atom - 1979

This was a superb little computer and it remains my all-time favourite. It cost about twice the price of, say, a ZX80 of the same period (£170 built) but offered a proper and very good quality keyboard, 2K of memory expandable internally to 12K and a working tape interface. It came with integer BASIC like the Sinclair but this could be expanded with an additional ROM to full BASIC. The build quality was superb and it was a lovely looking computer. Its unusual attribute, carried on by the BBC micros, was that it also had an Assembler built in. If you skip back to my section on BASIC you will remember this piece of code:

LDA 15
MOV B,A
LDA 30
ADD B

Which managed to add up 15 and 30.

This is a bit of Atom assembler (which had a 6502 processor)

20[
30 LDA #80
40 CLC
50 ADC #81
60 STA #82
70 RTS
80]

It looks a bit like BASIC because it is written within a BASIC program. The [ means "everything from here to ] is in assembler". The RTS bit means "go back to where you were in BASIC". If you ran this program you would get:

20 824D
30 824D A5 80 LDA #80
40 824F 18 CLC
50 8250 65 81 ADC #81
60 8252 85 82 STA #82
70 8254 60 RTS

All the computer had done is converted the program to machine code (A5 80 18 65 81 85 82 60). You have to do something else to make it work, basically, simply call the code from within your BASIC program.

You might ask why the excitement? The reason is that BASIC is very slow. If you were to program a Space Invaders game in BASIC then everything would move VERY SSSSLLLLOOOOWWWWLLLLYYYY. On the other hand, machine code is a horrible way to provide menus etc. You now had the best of both worlds, use simple BASIC to display the invaders on the screen then use ultra-fast machine code to move them around.