information for Jupiter Ace

Lets talk about The Jupiter Ace (inc some techie bits!)

Ok where to start, We shall very dangerously assume ( hey why not live life on the edge!) this is a wide ranging audience from those that know little about the internals of a Z80 micro or the jupiter ace and those that know more, so chances are this is going to be a total mess and keep things quick and basic!... Anyway hope it gives you some idea of how it looks...

The Cantab Jupiter Ace
The Jupiter Ace was a Z80 micro using a modified version of Forth as a primary Language which gained greater performance over the usual Basic at the time, It was released in the early 80s by a cambridge based company called Jupiter Cantab Limited, The two founders of the company Richard Altwasser and Steven Vickers were both Ex- Sinclair Research employees who had previously worked on projects such as the ZX80, ZX81 & the ZX Spectrum

Here's some non-interesting (I mean non-techie info).. Did you know? Do you care?

The name "ACE" was used as reference from the British computer created by Alan Turning (Automatic Computing Machine) a great mathematical mind and huge influence which created the basis of computing we know today .. well worth some researching.

The name "Cantab" refers to the abbreviation used for the latin for Cambridge (Cantabrigia)

The Jupiter Ace was a small rubber key' d white computer, With the keyboard circuit etched directly onto the PCB, much like the ZX80, It 1k(2x 2114) of Program RAM, 1k(2x 2114) of Character RAM, 1k(2x 2114) of Video RAM, 8k(2x 2532) ROM(s) Which housed the Forth / Operating Code, The Video/Character RAM transferred the data to the screen by some clever circuitry and timing designed to relieve the CPU of display drawing and to concentrate on program code - Using the CPU to display would require the CPU read/calculate/draw 192x256x50 dots per second preferably non-interrupted!

There were no ULA/Custom chips used as they were very expensive, The flimsy low production case made it feel fragile and wasn't much thicker than a margarine tub, This was improved in the following model the Ace 4000 with a injection molded case, although both machines where never sold in huge numbers.

The Jupiter Ace seemed to follow Sinclair's idea to build and sell cheaply (works for me!) reportedly around £89. In order to keep the cost down memory was to a minimum, as RAM was very expensive and changed price almost continually as it does today and the Jupiter Ace was released with an onboard 1k of RAM most users would need to upgrade this in order to make it practical to use but the 16k RAM pack at the time was around the same price as original computer!

CPU (Central Processing Unit) Z80
This was a Zilog Z80 - the brain that crunches all the binary bits ( the 1s and 0s ) and acts out what is being asked (more often than not - if you're to believe us programmers!), We communicate with this chip through machine code which gives the instructions on what to do.

The timing of the Z80 is referred to as Tstates, these are lengths of time it which it takes the Z80 to carry out operations, For instance NOP (no operation) takes the Z80 4Tstates this is providing there is no contention / delays, if the memory was busy being accessed by other electronics such as the screen drawing process then the Z80 could be asked to a wait adding further Tstates to the particular operation at that particular time. And as the Ace has additional back/front door memory access we need to cater for this by calculating where the CRT beam of the TV would be at any given time.

Writing code for our Z80 we access Registers, Flags, and Memory, these are places which show, store and manipulate the data, to be quick lets imagine this...

We use Hexadecimal numbering system through out...
Hex to Decimal think of Hex as a count above the numerical digits instead of counting to 10 we count to 9 then A, B, C, D E, F, then 10(hex) which is 16(decimal).

A byte can hold 8 bits (8 * combination of 1s & 0s) which represents a number 0 - FF (hex) or 0 - 255 (decimal).

Simple example to help explain how it works together....
bits 128 64 32 16 8 4 2 1
(128+64+8+1) = 201


our byte value in this case would be 201 decimal or C9 hex - bits 128, 64, 8, and 1 are on, just add these together.

Now a little simple maths in Assembly Language- lets load the 'A' Register "the accumulator" (this register does the maths ) with our byte value C9

LD A, C9

Now lets add another C9 (remember that's 201 + 201 in decimal )

Remember the single byte register can only hold a maximum value of 255 or FF hex, as we have created a number larger than this the carry flag will be set (carry = 1) by the Z80 this will lets us know that a number was carried over in the last ADD operation we performed.

This code will now need to be converted to Machine code by an Assembler for the Z80 to understand it, Once assembled the code is placed in memory as a specified location where we can run it.

Rom & Forth
The Ace had 4k of ROM (Read Only Memory) Which held the Forth language and the O\S machine code routines.
One of the definitions in the Ace dictionary was "vlist" to show a list of the current definitions on the screen handy when your trying to remember the name of one! - Thanks to some dedicated individuals you can find some great scans of the Jupiter Ace User Manuals here which are a big help when new to the Ace Forth.

On the side of memory the ace used 6x 2114 1K 4bit (takes 2 Ics to address 1Kb of 8bit RAM) Remember RAM was expensive then and most companies building micros based them around the idea of get them out cheap and let the user purchase additional ram as an after sale purchase, Some times costing more than the micro itself! So 2x RAM Chips where used for the character tables, 2 more for the video display memory, and then final 2 RAM left over chips where used as the main memory for around a whooping 1k!!!

I/O ( Input Output Ports )
These are the places where the outside would communicates with the computer, the inputs Keyboard, Joystick, Microphone, Tape audio, the outputs Sound, Printer. Inputs and Outputs ram packs etc.
External add-ons use the rear I\O slot on the back of the micro to communicate with the Ace.

Tapes & File types
In order to load and save programs the Ace like many home micros at the time used audio tapes the Ace had an audio input which could be feed from a line out\headphones socket on a consumer tape deck or cassette recorder.
The analogue wave from the audio was squared using a gate on one of the 74LS367 IC chips and using the ROMs load/save, bload/bsave (binary) routines which used the Z80s IN/OUT ops could sample this on/off at a given rate and thus producing a stream of 1s & 0s to build up the bytes. Jupiter Ace leader loading pulse in action here

Ok it is a mess but hope that helps show a little of what's involved! and I'm sure you could write this better with time focused on the new projects ( keep dropping back, some stuff you may find interesting! ) this will have to do for now.

If you like the site, emulator or any of the tools or just the Jupiter Ace then please link to us, help us climb the Google.

Thanks for reading, please if you can help out do so - Enjoy micro emulator .net Team.

Key Points

we need your help!

Jupiter Ace Cassette Database

In order to maximise the database we need to find as many cassettes as possible, from unknown ones to ones known but we are unable to locate.

If you can help us with any old cassettes you may have in the loft you no longer want or know someone that has then please contact us and give them to a good home, If we can't get there in person we can get them collected by courier - please don't throw them!

Help by donating

Don't worry if you have no old hardware or software to donate, We greatfully accept funds via paypal to help us secure bits from others.

A big "THANK YOU!" to everyone the has donated, time, money, knowledge, tapes and hardware we are truly grateful - micro emulator .net Team.

micro emulator

Free Jupiter Ace Emulator for Windows

It emulates all known Jupiter Ace behaviour, Inc. Z80 (doc'd and undoc'd), Screen, Memory access, Ram packs, Audio tape files, Tape deck emulation, Sound, Forth, Snapshot saving and loading and more ...

The Jupiter Ace emulator is an attempt to preserve this old micro for all to enjoy.


Microsoft Windows 7, Vista, XP
( XP requires microsoft .net framework )

NO install required, and NO registry garbage.

Download the
Latest Version 1.0.4247 Build: 37209 (3412)