Previous Page > Software House Index > John Kennedy (Plasma Software).
John Kennedy (Plasma Software)
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
Click for a bigger image from Flickr
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.
Where is he now?
Now working in the UK computer software industry.