John Kennedy (Plasma Software)
W
hen I bought my Jupiter Ace, I was still in my first years in Secondary School and my
friends and I were all frothing at the mouth for the newly announced ZX Spectrum. We had
all owned ZX81s, knew Z80 machine code and assembly language (yes, we coded in hex bytes -
trying to work out the values for relative loops was fun), had bought or built RAM packs,
and played all the games on the market. We were ready for the next generation.As it turned
out, there were delays in shipping the Spectrum, and several of us grew impatient. I give
in and bought an Ace, another friend got an Acorn Atom. I still remember asking my mother
to write a cheque, and posting the order in a local post box on a dark, cold night. And
beginning the long wait for delivery.
The Ace was certainly designed to be budget-conscious, to put it nicely. It was really an
order of magnitude cheaper in materials and design than the Spectrum, and initially I was
very disappointed. If only I had waited, I could have had a computer with colour and some
metal in its casing rather than yoghurt-pot plastic.. My friends definitely took the mickey
when they saw it. However, despite this - or probably because of it - I persevered. Also,
the Ace had used up all my savings, so I couldn't get a Spectrum even if I wanted to. So,
after learning ZX Basic and Z80 assembler, I was introduced to FORTH. I learnt how to write
a word that displayed Hamilton Academical Boot Boys (some kind of in-joke in the manual
that I didn't get. I wrote a word that played Holst's Jupiter. I finally understood the
concept of Dictionaries, and started to think in RPN. OK? Yes, it was OK! I loved using @
and !, and still miss that.
FORTH appeared an elegant, sophisticated language. It broke my mind free of the linear 10
PRINT "HELLO WORLD" 20 GOTO 10 nature of programming. But, most of all, it was screamingly
fast. And that meant perfect for games. And I wrote dozens of them!
Most were terrible of course, but each one was a little better and taught me something
more. I could fake 3D vector graphics if I had enough squared paper to draw out my
wireframe tanks. Or I could scroll lines of the screen left and right very easily. No-one
else ever got to play them (until now, that is - if my master cassette tape survived),
which was a shame as some user feedback would have done me the world of good.
After constant use, the keyboard started to stop working. This was irritating. I followed
all the home remedies - cleaned the circuit board, glued little disks of metal foils
underneath the keys, but it got worse and worse. I eventually wrote to Jupiter Cantab and
received a personal letter back from the founders, and a new keyboard. I don't know which I
was more delighted to see: the letter or the keyboard.
The user defined character memory really confused me. I still to this day can't understand
how there was issues with reading and writing to the memory to define graphics. It seemed
impossible that a normally completely predictable computer, composed of electronics that I
knew pretty well, would randomly corrupt data - seemingly by design - when writing/reading
to a certain address range. This blew my mind a little.
I know I spent an unhealthy amount of time on this little computer. I wired up two RAM
packs to one to get 32Kb of memory, and broke something and had to get a second one (cheap
from Boldfield). I built a robot from electric motors and relays, and steered it around
with FORTH words using IN and OUT. I had a "sound card" in a box, that gave me three
channel sound AND white noise. I was seriously thinking about building the colour video
circuit I found online, but the parts were too expensive and I couldn't manufacture the
PCB.
Needless to say, when I should have been learning valuable social skills and meeting girls,
I was in my room programming, or reading about programming (and there was a Jupiter Ace
newsletter which was superb) and basically exploring my own mental universe.
Towards the end of my Ace life, I was having some tentative talks with Boldfield about
selling some games, but of course, there was no market and the ZX Spectrum was unstoppable
at this point.
Eventually I had a little bit of luck and my father bought me an Amstrad CPC464 computer.
From there I started getting my games published in magazines, then I moved onto the Amiga,
and from there to Windows and Windows Mobile. In 1999, I got a job with Microsoft in
Redmond as a programmer/writer, and last month as a Senior Project Manager in the Windows
Mobile team, I quit (October 2007) in order to return to the UK and see what new challenges
I could find for myself.
I've no doubt that the decision to get the Ace was one that caused me to think just that
little bit differently, and that's something I've never regretted.
John's Forth Programming Note book
This is a little notebook I kept whilst I was developing stuff (i.e. playing) with my
Jupiter Ace computer in the early 80's.
Learning FORTH was a huge thing for me - it definitely did me the world of good, and
predated languages such as C or Java in terms of breaking free of GOTO loops. I developed a
lot of software for the Ace, including some games They were ALMOST about to be sold
commercially when the Ace pretty much sank.
Some scans from my, clearly da Vinci class notebook, full of little FORTH and Z80 snippets.
At this point in my life I was about 15 and should have been out drinking and meeting
girls. Needless to say, I wasn't.
On the left page of the notebook - various secret information on reading keyboard states.
On the right - a Z80 Assembler scrolling routine. For the life of me, I can't remember
now how I embedded it into the FORTH keywords. Clearly I had to convert the mnemonics
into decimal machine codes by hand, and then enter those somehow into the Ace's
dictionary.
Imagine that, all my games were written in assembler and then converted by hand into a
stream of numbers. I was forever miscounting the loops - see that "jrnz"? That stands for
"jump relative not zero", which means if the last instruction didn't cause a zero to
appear in the "a" register, the program counter would skip back the specified number of
steps: and that's how we did IF/THEN statements in those days.
On the left, some code to make funny noises. There was no "sound chip" as such - one of
the CPU's I/O channels was connected to a speaker. When it went "beep", the entire
computer stopped until the beep was over.
On the right - I have absolutely no idea. Looks complicated. :-)
Bottom right - some doodles. Girls may practice writing out their first name followed by
the surname of a favourite movie star, but nerd boys wrote out made-up names for their
Software Companies and game titles.
The archive team would like to thank John for making material available and sending his
Jupiter Ace software to be archive. From John's master tape we managed to recover a number
of Jupiter Ace programs that are some of the best Jupiter Ace software we have ever seen.
One can only imagine what software the Ace missed out on when John moved on to other
projects when Jupiter Cantab closed and Boldfield Computing sold off the Jupiter Cantab's
assets.
SOFTOGRAPHY
Where is he now?
Now working in the UK computer software industry.