Jupiter Ace

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Jupiter Ace
Jupiter Ace
Type Home computer
Release date 1982; 42 years ago (1982)
Introductory price 89.95 GBP (today $283.51)[1]
Discontinued 1984; 40 years ago (1984)
Operating system ACE Forth
CPU Z80 @ 3.25 MHz
Memory 1 kB (maximum 49 kB)

The Jupiter Ace was a British home computer of the early 1980s, produced by a company, set up for the purpose, named Jupiter Cantab. The Ace differed from other microcomputers of the time[2] in that it used Forth instead of the more common BASIC.

Introduction

Jupiter Cantab was formed by Richard Altwasser and Steven Vickers.[3] Both had been on the design team for the Sinclair ZX Spectrum: Altwasser did some work on the development of the ZX-81 and in the design of the hardware of the Spectrum. Vickers adapted and expanded the 4K ZX-80 ROM to the 8K ZX-81 ROM and wrote most of the ROM for the Spectrum.

The Jupiter Ace was named after the early British computer, the ACE. The name was chosen to emphasize the "firsts" of using FORTH environment as more efficient for personal computers. FORTH is a threaded code programming language that also acted as operating system.

In contrast to previous introductory computers and as its major characteristic, its default programming language was Forth. Forth was considered well adapted to microcomputers (with small memory and relatively low-performance processors) for being fast. About 10 times faster than BASIC,[4] it also allowed implementation of machine code routines, if needed for a particular task.

For such reasons it was designed with FORTH, chosen to deliver better performance and Structured Programming flexibility as found in Pascal Language.[5]

System characteristics

The Jupiter ACE is often compared with ZX81 due to its similar size, low cost, and similar form factor[who?], although internally it is an independent design. The ZX81 used 75% of its Z80 CPU time to drive the video. In ACE the Z80 CPU was fully used for running programs. The ACE used dedicated video memory of 2 kB, leaving the 1 kB main memory free for user programming.

The Jupiter ACE was new to the market and the designers couldn't afford to use an uncommitted logic array (ULA), a design approach then gaining popularity in other computers (such as the ZX 81) to reduce component count, because these weren't economical in small quantities. Instead they reduced the number of chips required via clever design.

Like the Spectrum, the Ace used black rubber keys. Audio capabilities were CPU controlled with programmable frequency and duration. Sound output was through a small built-in speaker. A television was needed as a display - which was in black and white only.

ACE's FORTH was "ten times faster than Basic"[6] (a reference to ACE FORTH),[7] and used less than half the memory (which was a costly luxury at the time) of an equivalent program written in interpreted BASIC.[8] Forth programs tend to be more memory efficient than the bigger programs; as they become bigger, they reuse more previously-defined code.[9]

Control structures could be nested to any level, limited only by available memory. It also allowed recursive programming, if desired. Programs and data storage was by means of a common cassette tape, which was typical of home computers of the time.

Specifications

Characteristic Value
Processor Zilog Z80A clocked at 3.25 MHz.[10]
Memory 1 kB, expandable to 17kB, or up to 49 kB (Video SRAM excluded)
Video Independent sub-system using 2 dedicated banks of 1 kB SRAM
Sound Internal Speaker.
Keyboard 40 keys
Expansion 2 connectors. A main connector, CPU related (like other similar computers). An extra connector, to the Video sub-system RAM and to its generated Video signals.

References to the ACE RAM usually include the separate 2 kB video memory, which is not available for user programs, thus leading to some confusion.

Hardware

Video

One 1K bank allowed redefinition of most of its 128 ASCII based characters in 8×8 pixel bitmap format. The other 1K bank stored the full screen display of 24 rows × 32 columns of characters in black and white. Colour could be achieved as expansion. Although a colour graphics board was designed[11] none was ever produced commercially.

Both graphics and text could be displayed at the same time: redefinition of the character Tiles could provide graphics in a low resolution of 64×48, and a higher resolution mode of 256×192 graphics, limited by the 128 available (definable) 8×8 chars.

Memory

1 kB RAM (equivalent to near 2-4 kB on Basic). With the option of a 16 kB RAM-Pack extension (later extended to 32K extensions).

Sound

Internal speaker directly controlled by the CPU in single task mode, with control of sound frequency and duration in ms.

External Storage

Storage was through a cassette tape interface at 1500 baud.

Add-ons

Originally developed to receive ZX-81 add-ons, with a compatible expansion slot, it was actually delivered in a different configuration. A simple rewiring adapter could be used, but not very effectively due to power losses. Dedicated add-ons were needed and built by external companies, after the initial 16 kB by Jupiter Cantab.

RAM[12]
  1. Pack 16 kB by Jupiter Cantab.
  2. Pace 16 kB and 32 kB by Stonechip Electronics.
  3. Pack 48 kB by Boldfield (new Jupiter ACE owner after Jupiter Cantab).
Keyboard[13]
Sound[14]
  • SoundBoard (1983) by Essex Micro Electronics,
Storage[15]
  1. Jet-Disc Disc Drive System (1983) by MPE (control up to four 3", 5", or 8" drives).
  2. "Deep Thought" Disc interface with a 4K AceDOS in an EPROM (1986) by J Shepherd & S Leask.
Printer Adapters
  • ADS Centronics Interface Machine (1983), by Advanced Digital Systems,[16]
  • RS232 & Centronics PrinterCard (1984) by Essex Micro Electronics.[17]
Graphics Card
  1. Gray Scale card - 4 shades of gray by S Leask (1986)

Firmware

The ACE had an 8 kB ROM containing the Forth kernel and operating system, and the predefined dictionary of Forth words in about 5 kB. The remaining 3 kB of ROM were used for tape control, floating point numbers library and character definitions table.[18] Some of the ROM was written in Z80 machine code, but some was also coded in Forth.

The next 8 kB were split in 2 blocks of 4 kB each. The video subsystem access allowing two different priorities by the user to the 2 kB VRAM, Regular or Overriding video. The 1 kB of user RAM was only partially decoded, so it echoed in the full 4 kB block address space it resides. So a 16 kB space was used for ROM, VIDEO, and USER, leaving free a 16 kB space for RAM extension plus 32 kB space free for all possible usages.

ACE's Forth

File:Jupiter Ace vlist png.png
ACE's Forth Vocabulary

ACE's Forth was based mostly on Forth-79, with some relevant differences.[19] Runtime error checking could be turned off to raise speed by 25% to 50%. A few extra words were named similar to known BASIC sound, video and tape commands, as behavior was the same. The implementation lacked less frequently used Forth words, but these were easily implemented if needed.

The ACE's dialect of FORTH introduced several innovations. First As FORTH programming environment, it added syntax checking to control structures and definer constructions (a.k.a. "Safe Compiling").

Then, It simplified usual Forth definer and compiler words creation, replacing the CREATE .. DOES>,[20] creation pair with:

  1. DEFINER .... DOES> : Create new Defining words, usually used to define and build data structures. Similar to CREATE..DOES usage in standard FORTH.[21] ( Example: Adding Data Structures as Arrays, Records, ... ).
  2. COMPILER .. RUNS> : Create new Compiling words, less frequently used to extend the language with compiler words where CREATE..DOES> is FORTH implementation dependent.[22] ( Example: New Compiler Control Structures as Case, Infinite Loop, ... ).

Also, the ACE's Forth could decompile its programs, unlike usual Forth systems. This decompiling ability had several advantages as a solution to the absence of the more flexible disk system used by Forth. It did not store the text of a Forth program, instead it compiled the code after editing and stored it in ready-to-run format. While this saved computer memory it also saved time in reading and writing programs from cassette tape. This tape-friendly and RAM-saving solution was unique to the Jupiter ACE Forth.

Finally, its FORTH was adapted to the disk-less tape-using home computer hardware, being able to save/load user vocabularies instead of the usual numbered programming blocks used by diskette systems.

Commercial

Forth delivered several advantages over the interpreted BASIC used on all other contemporary home computers, as being more comprehensible and fast, but it was obscure and difficult to learn by the general public[23] exposed to GOTOs (and hence unaware of structured programming). This, the lack of published software, the weak box, and the small initial memory kept the sales low despite technical interest.[24]

Models

File:Jupiter Ace 4000.jpg
Jupiter ACE 4000

1982 - Original Jupiter ACE in a vacuum-drawn case - Reported 8000 units built.[25]

1983 - Jupiter ACE 4000 on stronger injection moulded case - Reported 800 units built.[26]

Sales

Sales of the machine were never very large; as of the early 2000s, surviving machines are quite uncommon, fetching high prices as collector's items. One main reason for low sales seems to have been the need to buy an extra 16 kB RAM-extension which almost doubled the ACE's price. It happened that the designed 4 kB of base RAM was not built in favour of the less costly 1 kB delivered. The absence of colour kept the ACE squarely in a niche market of programming enthusiasts.

A 1982 review stated that "The success of the Jupiter Ace will depend on the machine-buying public's acceptance of another microcomputer language."[27] This acceptance never materialised. Attempts to push the Ace in the education market failed, partly because children were more interested in learning the widely used BASIC than a language used by only one machine (and that uncommon) with a peculiar syntax;[28] a knowledge of BASIC acquired from familiarity with other home computers was of practically no help in learning Forth.

Also, there were doubts over whether Forth would be relevant for exam syllabuses, and decent support for Forth from teaching staff was considered unlikely due to lack of knowledge.[29] While more comprehensible, Forth was considered difficult to learn (mainly due the use of a stack, for parameter passing). Further, there was a reduced list of published software - either commercial programs or listings printed in hobby magazines - for the machine, growing slowly as the base model was RAM crippled.[30]

Furthermore, the primitive low-resolution monochrome-only graphics compared poorly with the high(ish)-resolution colour facilities of contemporary machines like the ZX Spectrum and Commodore 64.[31] The obscure, awkward language and primitive graphics/sound capabilities ensured that the machine would only appeal to a very limited number of people (a "niche market") and only around 8000 machines were made before the company went bust.[32]

Other Forth based microcomputers

The Canon Cat was a task-dedicated, desktop computer released by Canon Inc. in 1987 at a price of US$1495. The fr (Hector HRX) made by French manufacturer fr (Hector) from 1983 to 1985, was also relatively upmarket for the time.[33]

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found. Page1
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. "The Complete FORTH", by Alan Winfield, 1983, Sigma Technical Press, page xi
  5. "Electronics & Computing - Jupiter Ace Review, 1982, November", page 70
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Popular Computing Weekly, 1982, August, 26: Spectrum team deal their Ace
  9. James, John S.: "Byte Magazine, 1980, Aug. - What is Forth?", page 102, "Characteristics of FORTH Code" section
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found. article in ETI Magazine, April 1984
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Vickers, S: "Jupiter ACE Manual", page 176, 1982.
  20. Winfield, Alan: "The Complete Forth", Chapter 9 "Extending FORTH", Sigma Technical Press, 1983.
  21. Vickers, S: "Jupiter ACE Manual", page 120, 1982.
  22. Vickers, S: "Jupiter ACE Manual", page 136, 1982.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.

External links