🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.folklore.computers
1 messages
1 total messages Started by d8... Jan Gustavsson Sat, 13 Oct 1990 22:29
Acorn Atom
#5392
Author: d8... Jan Gustavsson
Date: Sat, 13 Oct 1990 22:29
92 lines
5276 bytes
I'm posting this for a friend who can't post to Alt groups.
Please don't send any email to me, but to him at the address in his signature.

Jan.
=============================================================================


One of the funniest (though certainly not the most powerful or
user-friendly!) machines it's ever been my pleasure to hack was my first
own computer - the Acorn Atom. I bought mine back in 1982 by air mail from
the British manufacturer. It cost me about 200 pounds, which was about what
I could afford (I was in high school att the time). I think the alternative
was a VIC-20, but the introduction of the VIC was delayed by several months,
and in the mantime, three classmates who had bought Atoms persuaded me to buy
one instead. I didn't regret my decision - although the Atom wasn't nearly
as good for games, I must have learned lots more about computers from the
Atom than I would from the VIC.

I'm a bit surprised that I haven't seen any mention of the  Atom on this
group, since it was very fun to hack. Perhaps it's because it was rather
unknown outside Britain (and even there it was soon replaced by Acorn's BBC
computers). Anyway, if some old Atom hacker is reading this, I'd be very
glad to hear from you!

The machine was based around a 1 MHz 6502 with 6 K of user RAM and 6 K of
video RAM. To me, who'd only been using a ZX 80 with 1 (!) K and my school's
ABC80 with 16 K before, this was really rather much, especially since you
could put both programs and data in unused parts of the video RAM (though
that made the picture look 'snowy'). It also had a real keyboard (which the
ZX 80 hadn't) and high-res graphics (which neither the ZX80 nor the ABC 80
had).

The Basic (in ROM) was a strange mixture of powerful and primitive
features. In some ways, it looked like your usual Tiny Basic (just
twenty-six integer variables and twenty-six one-dimensional arrays
allowed). On the other hand, the integers were 32 bits long, you had a
DO-UNTIL construct, symbolic labels (written as lower-case letters, which
showed up as inverted upper-case on the screen) and a lot of almost C-like
operators. The operators were fun: ?A meant the byte at address A, A?B the
byte at address A+B, !A the word at address A, and so on. $A meant the
CR-terminated string starting at A, with the consequence that to
concatenate two strings you had to use the really weird syntax
$A+LEN(A)=$B.
Also, you could abbreviate all commands and write e.g. G. instead of GOTO.
This made the programs rather difficult to read, but saved a lot of space.
The code tended to look like this:

300m!D=!A+!B+4;F.J=4TO!D+4S.4
310D!J=0;N.;W=D-4
320F.J=4TO!B S.4;c=0;G=B!J
330Q=A!L*G+C+V!L;V!L=Q%H
340C=!/H;N.;V!L=C;N.
370DO!D=!D-4;U.D!!D<>0;E=D;D=A;R.

(This example is from the manual, with the witty title 'Atomic Theory and
Practice', but most of my own code looked more or less the same).
Note also that the Basic used semicolon instead of colon to separate
statements - just to add to the confusion!

You could also get a floating point expansion ROM; it added 26 floating
point variables %A, %B,..., %Z, floating-point functions and special
floating point commands like FIF (floating-point IF). The trouble was it was
so incredibly slow - calculating a trigonometric function took several
tenths of a second!

Perhaps the best feature was the inline assembler. Anywhere in your Basic
program, you could put assembler code in square brackets. When you executed
this part of the program, the code was assembled and put in memory at the
location specified by Basic variable P. All Basic variables were accessible
from assembler, too, and you could even use the Basic to do some primitive
macro assembly. Apart from being fun, assembler was also sorely needed on a
machine as slow as this.

The worst feature was probably the casette interface - at 300, bauds, it
took almost seven minutes to load the Forth interpreter from tape. One
small mistake, and it crashed, and you had to reload it...

I could go on raving for hours about the nice things you could do with the
Atom: hunting through the ROM with a disassembler was great fun, I've still
got my notes of interesting routines and POKE's (or, rather, ?'s), but I
think I'd better leave that to another time...

My trusty Atom has long since been replaced by other, more useful
computers. But I still take it out from the cupboard every now and then,
connect it to my TV and power it on...


Magnus Olsson		     	| \e+ 	   /_	      
Dept. of Theoretical Physics 	|  \  Z	  / q	      
University of Lund, Sweden	|   >----<	      
Internet: mag...@thep.lu.se	|  /	  \===== g    
Bitnet: THEPMO@SELDC52 		| /e-	   \q	      
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads