Minor correction in the article: The Oric-1 did ship with 16K RAM initially, but was widely available not long after in the 48K (really, 64K) configuration, and users could easily upgrade their 16K Oric-1's to the beefier RAM, and also conversions to Atmos-level Orics' were available widely as well.
The Oric-1, however, did far better than the Jupiter Ace on the market - which isn't to say it was successful, just that it didn't quite flop as hard as the Ace did. The Jupiter Ace definitely has its quirky appeal, meanwhile, as a FORTH Machine - but it should be noted that the Oric-1/Atmos machines get far, far better software written for them, even today .. and some of the new stuff is just great.
The earliest home computers had tiny amounts of memory: my TRS-80 Color Computer started out with 4K of RAM and BASIC in ROM although within a few years I had it filled out with 64K of RAM. There weren't a lot of languages that would fit in 4K, but they included BASIC, FORTH and assembler (like the actual assembler.) [1]
My FORTH experience with that was writing a subroutine-threaded FORTH for the 6809 under the OS-9 operating system in about 3000 lines of assembler. I wrote to the Forth Interest Group and they sent me a card which had a list of standard words in FIG FORTH, mine complied with that except that I used the Unix-like system calls from OS-9 for file I/O instead of the block scheme most FORTHs used.
[1] The popular 6502 (Apple ][, Atari 400/800, C-64, ...) was particularly weak in support for compiled languages because it had few registers and fewer addressing modes but it was easy to write a FORTH for too.
"[Bill Mensch]:Rod Orgill and I had completed the designs of a few microprocessors before the 6501/6502. In other words, Rod and I already knew what was successful in an instruction set. And lower cost was key. So we looked at what instructions we really needed. And we figured out how to have addressable registers by using zero page [the first 256 bytes in RAM]. So you can have one byte for the op code and one byte for the address, and [the code is compact and fast]. There are limitations, but compared to other processors, zero page was a big deal."
Steve Vickers was my university lecturer circa 1995. His course was legendarily difficult, in contrast to his lucid tutorials in both the Jupiter Ace and ZX81 manuals! The list of his papers on Wikipedia should give you a flavour of what the course was about: https://en.wikipedia.org/wiki/Steve_Vickers_(computer_scient...
I had one of the early Jupiter Aces - the
circuit board said something like v1.00 - and it had some added
soldered wires on the board, correcting some errors, but it worked
well enough. Forth was definitely what attracted me to it - I was frustrated with Basic on my Sinclair XZ81, and Forth seemed like a big step forward. And I think it was.
I was 14 or 15 at the time. The first summer I wrote a whole load of games, mostly in Forth, but
sometimes Forth just wasn't fast enough. I got a copy of "Mastering
Machine Code on Your ZX81", and learned Z80 machine code. If there was
an assembler available, I didn't have it, so this was all
hand-assembled. Getting jumps right was a total pain, as was
debugging. Generally, it either worked first time, or you started from
scratch again. Usually I got there in the end.
I sold those games through a ad in "Your Computer" magazine, and
earned back the price of the computer several times. But recording and
shipping tapes one at a time got tedious really fast, so I didn't take
that any further.
My Ace got modified quite a bit over the next couple of years. An extra
16KB RAM pack was an early addition, taking it to a whopping 19KB.
Because Forth was so compact, I never filled that up.
My mother worked for Chubb cash dispensers (ATMs for Americans) at the time, and at some
point they scrapped a lot of equipment. She tipped me off, and we
went round there one evening and liberated lots of cash dispenser
pieces from a skip. Amongst these were several numeric keypads with
lovely mechanical keys. I dismantled several keypads to take out all
the individual keys and made a proper keyboard to replace the original
dead rubber monstrosity.
At school, I was taking O-level Technology, and you had to do a final
year project. I'd seen articles in "Your Computer" about competitions
where a micro-mouse robot would have to find its way through a maze.
That seemed like a cool idea to me, so I decided to make one, despite
not really having much idea how. I hadn't done any digital
electronics at that time, but my friend Johnny Tombs (who later went
on to be a Professor of Electronic Engineering) had decided to make a
parallel I/O port for his ZX Spectrum using TTL logic for his Technology project. I'm not
sure where Johnny learned about digital electronics, but he knew what
he was doing, and designed a nice elegant circuit board and etched it
at home. The Ace had the same Z80A CPU as the Spectrum, so I figured his
design could be adapted. After a lot of pleading, he gave my his
design and spent some time explaining to me how it worked and loaned
me his copy of Watford Electronics catalog. A couple of weeks later
all the components arrived, and I spent a busy few days soldering up
my modified I/O port on veroboard. Compared to Johnny's professional
looking version, mine looked like a mess of wires and chips, but it
worked!
So then when it wasn't playing games, my Ace rode about on the top of
a fairly flaky micromouse, made in the school metalwork shop out of
aluminium sheet, some lego motors, and some light sensors to detect
maze walls, exploring mazes. It didn't win any prizes but it did get
me an A in O-level Technology.
My school was throwing out an old teletype, so I scavenged that. Then
I modified the parallel I/O port to output +/- 12V on one pin, and
wrote software to bit-bang RS232 at 110 baud. Back before the
Internet, just finding the specs for RS232 was not so simple - our
local library was a bit limited in that way - but I got there in the
end. A lot of guesswork and trial and error. I don't think anyone made
a printer for the Ace, so I may have had the only one. Being able to
print code listings really helped, even though the teleprinter only printed capital letters.
Somewhere over the years, with my parents moving house multiple times,
the Ace disappeared. Many years later, I found one on Ebay, and still
have it. But somehow I never fell back in love with it - it just
wasn't as good as I remembered my rather non-stock one being at
that formative time in my life.
It's great to read a recollection by someone from the UK of a similar age to me. I remember the Jupiter Ace very well and was so interested in Forth that I got the Acornsoft Forth ROM for my BBC Micro. I too made money selling software (and writing magazine articles---mostly about the Research Machines 380Z/480Z).
I think the biggest difference between then and now is the sense of discovery. I spent an enormous amount of time just discovering everything I could about computers and the machines I had access to. Everything from circuit diagrams to compilers. I don't think there's the same level of discovery now because so much else is available. In some ways, a lot of what we could do with a computer was understand the computer itself because other stuff (like games or programs to buy and run) was relatively difficult to get.
I agree completely about that sense of discovery. No-one around me knew anything about computers and the information available was limited, but somehow figuring things out for myself was a key part of the attraction for me. And it served me very well as the foundation for a lifetime of research too. If you're passing through London and fancy a beer, look me up, and we can reminisce!
Meanwhile, I managed to roast an EEPROM that contained a assembler/disassembler for Z80 by pluging it the wrong way in a weird expansion board for a CPC 6128. It was an expensive Xmas present, I almost passed out when I realized my mistake. I don't remember how old I was when it happened, but definitely not enough to RTFM cautiously.
So I had to stick with Basic until I finally got my first PC. It was the time when one could order floppy disks preloaded with "sharewares" you selected from a catalog. The first and only I order contained A86/D86 [2] and PygmyForth [1]. I picked up a Forth because I saw ads in magazines for Forth systems featuring multitasking and other wonderful things.
I spent a lot of time with those two, and eventually started to program my own Forth interpreter as any sane person should do... I ended up writing a minimal assembler with the help of A86's extensive manual in order to be able to boot my system from a floppy, modify its source with a block editor, and recompile it from scratch, boot sector included. It's sole use ever was to prove myself I could do those "difficult" things.
Given how much any kind of peripheral used to cost in the 8 bit home computer days I imagine how much that hurted.
All my stuff on those days were equally Christmas or birthdays gifts, or having to save up during months.
My first Assemblers were a mix of hand translating opcodes into DATA code blocks, and then I upgraded to hexdump editors, never managed to acquire a proper 8 bit Assembler, and during the first year of PC, MS-DOS debug was the only way.
My first Assembler was also A86/D86 shipped on a 5 inch floppy in a book I think from Sybex, no longer certain.
The micromouse would have been spring 1983 I think. If there were any pictures, they'd probably be in my parents huge pile of unindexed old 35mm slides!
I think I saw a black and white photograph of your micro mouse in British magazine back then. I used to subscribe to “Your Computer” to feed my ZX Spectrum habit.
I suspect that the Ace would have failed quickly in the market, at least as an end-user machine, even if it had matched the ZX Spectrum for graphics and memory. It was extremely difficult to corrupt memory in BASIC unless one got too eager with POKE; but every memory set in Forth is basically a POKE.
Might have been a popular hobbyist machine, though.
Minor correction in the article: The Oric-1 did ship with 16K RAM initially, but was widely available not long after in the 48K (really, 64K) configuration, and users could easily upgrade their 16K Oric-1's to the beefier RAM, and also conversions to Atmos-level Orics' were available widely as well.
The Oric-1, however, did far better than the Jupiter Ace on the market - which isn't to say it was successful, just that it didn't quite flop as hard as the Ace did. The Jupiter Ace definitely has its quirky appeal, meanwhile, as a FORTH Machine - but it should be noted that the Oric-1/Atmos machines get far, far better software written for them, even today .. and some of the new stuff is just great.
The earliest home computers had tiny amounts of memory: my TRS-80 Color Computer started out with 4K of RAM and BASIC in ROM although within a few years I had it filled out with 64K of RAM. There weren't a lot of languages that would fit in 4K, but they included BASIC, FORTH and assembler (like the actual assembler.) [1]
My FORTH experience with that was writing a subroutine-threaded FORTH for the 6809 under the OS-9 operating system in about 3000 lines of assembler. I wrote to the Forth Interest Group and they sent me a card which had a list of standard words in FIG FORTH, mine complied with that except that I used the Unix-like system calls from OS-9 for file I/O instead of the block scheme most FORTHs used.
[1] The popular 6502 (Apple ][, Atari 400/800, C-64, ...) was particularly weak in support for compiled languages because it had few registers and fewer addressing modes but it was easy to write a FORTH for too.
The 6502's lack of registers is one point of view.
Another point of view is that the zero page provides 256 registers:
https://spectrum.ieee.org/q-a-with-co-creator-of-the-6502-pr...
"[Bill Mensch]:Rod Orgill and I had completed the designs of a few microprocessors before the 6501/6502. In other words, Rod and I already knew what was successful in an instruction set. And lower cost was key. So we looked at what instructions we really needed. And we figured out how to have addressable registers by using zero page [the first 256 bytes in RAM]. So you can have one byte for the op code and one byte for the address, and [the code is compact and fast]. There are limitations, but compared to other processors, zero page was a big deal."
https://news.ycombinator.com/item?id=38627821
http://forum.6502.org/viewtopic.php?f=2&t=7304
I see this idea a lot, but I don't really buy it. I've coded in 6502 assembly for years, and the zero page is not register-like at all.
Best thing you can say about zero page is that it only requires one read cycle to fetch a value from. (Or one write cycle to store a value to it.)
Why ZP isn't like registers: You can't do register operations with it. For example, you can do this with the accumulator:
LDA #03 ; load immediate value of 3. STA $c000 ; store it at $c000.
or
LDA $1004 ; load a value from $1004. ADC $4000 ; add the value stored at $4000. STA $4001 ; store to $4001.
You can't do this at all with a zero page address. You have to go through an actual register first.
The Jupiter Ace was before my time, but I found the user manual to be a very well written Forth tutorial: https://archive.org/details/Jupiter_Ace_Users_Manual_1982_Ju...
Steve Vickers was my university lecturer circa 1995. His course was legendarily difficult, in contrast to his lucid tutorials in both the Jupiter Ace and ZX81 manuals! The list of his papers on Wikipedia should give you a flavour of what the course was about: https://en.wikipedia.org/wiki/Steve_Vickers_(computer_scient...
I had one of the early Jupiter Aces - the circuit board said something like v1.00 - and it had some added soldered wires on the board, correcting some errors, but it worked well enough. Forth was definitely what attracted me to it - I was frustrated with Basic on my Sinclair XZ81, and Forth seemed like a big step forward. And I think it was.
I was 14 or 15 at the time. The first summer I wrote a whole load of games, mostly in Forth, but sometimes Forth just wasn't fast enough. I got a copy of "Mastering Machine Code on Your ZX81", and learned Z80 machine code. If there was an assembler available, I didn't have it, so this was all hand-assembled. Getting jumps right was a total pain, as was debugging. Generally, it either worked first time, or you started from scratch again. Usually I got there in the end.
I sold those games through a ad in "Your Computer" magazine, and earned back the price of the computer several times. But recording and shipping tapes one at a time got tedious really fast, so I didn't take that any further.
My Ace got modified quite a bit over the next couple of years. An extra 16KB RAM pack was an early addition, taking it to a whopping 19KB. Because Forth was so compact, I never filled that up.
My mother worked for Chubb cash dispensers (ATMs for Americans) at the time, and at some point they scrapped a lot of equipment. She tipped me off, and we went round there one evening and liberated lots of cash dispenser pieces from a skip. Amongst these were several numeric keypads with lovely mechanical keys. I dismantled several keypads to take out all the individual keys and made a proper keyboard to replace the original dead rubber monstrosity.
At school, I was taking O-level Technology, and you had to do a final year project. I'd seen articles in "Your Computer" about competitions where a micro-mouse robot would have to find its way through a maze. That seemed like a cool idea to me, so I decided to make one, despite not really having much idea how. I hadn't done any digital electronics at that time, but my friend Johnny Tombs (who later went on to be a Professor of Electronic Engineering) had decided to make a parallel I/O port for his ZX Spectrum using TTL logic for his Technology project. I'm not sure where Johnny learned about digital electronics, but he knew what he was doing, and designed a nice elegant circuit board and etched it at home. The Ace had the same Z80A CPU as the Spectrum, so I figured his design could be adapted. After a lot of pleading, he gave my his design and spent some time explaining to me how it worked and loaned me his copy of Watford Electronics catalog. A couple of weeks later all the components arrived, and I spent a busy few days soldering up my modified I/O port on veroboard. Compared to Johnny's professional looking version, mine looked like a mess of wires and chips, but it worked!
So then when it wasn't playing games, my Ace rode about on the top of a fairly flaky micromouse, made in the school metalwork shop out of aluminium sheet, some lego motors, and some light sensors to detect maze walls, exploring mazes. It didn't win any prizes but it did get me an A in O-level Technology.
My school was throwing out an old teletype, so I scavenged that. Then I modified the parallel I/O port to output +/- 12V on one pin, and wrote software to bit-bang RS232 at 110 baud. Back before the Internet, just finding the specs for RS232 was not so simple - our local library was a bit limited in that way - but I got there in the end. A lot of guesswork and trial and error. I don't think anyone made a printer for the Ace, so I may have had the only one. Being able to print code listings really helped, even though the teleprinter only printed capital letters.
Somewhere over the years, with my parents moving house multiple times, the Ace disappeared. Many years later, I found one on Ebay, and still have it. But somehow I never fell back in love with it - it just wasn't as good as I remembered my rather non-stock one being at that formative time in my life.
It's great to read a recollection by someone from the UK of a similar age to me. I remember the Jupiter Ace very well and was so interested in Forth that I got the Acornsoft Forth ROM for my BBC Micro. I too made money selling software (and writing magazine articles---mostly about the Research Machines 380Z/480Z).
I think the biggest difference between then and now is the sense of discovery. I spent an enormous amount of time just discovering everything I could about computers and the machines I had access to. Everything from circuit diagrams to compilers. I don't think there's the same level of discovery now because so much else is available. In some ways, a lot of what we could do with a computer was understand the computer itself because other stuff (like games or programs to buy and run) was relatively difficult to get.
I agree completely about that sense of discovery. No-one around me knew anything about computers and the information available was limited, but somehow figuring things out for myself was a key part of the attraction for me. And it served me very well as the foundation for a lifetime of research too. If you're passing through London and fancy a beer, look me up, and we can reminisce!
Meanwhile, I managed to roast an EEPROM that contained a assembler/disassembler for Z80 by pluging it the wrong way in a weird expansion board for a CPC 6128. It was an expensive Xmas present, I almost passed out when I realized my mistake. I don't remember how old I was when it happened, but definitely not enough to RTFM cautiously.
So I had to stick with Basic until I finally got my first PC. It was the time when one could order floppy disks preloaded with "sharewares" you selected from a catalog. The first and only I order contained A86/D86 [2] and PygmyForth [1]. I picked up a Forth because I saw ads in magazines for Forth systems featuring multitasking and other wonderful things.
I spent a lot of time with those two, and eventually started to program my own Forth interpreter as any sane person should do... I ended up writing a minimal assembler with the help of A86's extensive manual in order to be able to boot my system from a floppy, modify its source with a block editor, and recompile it from scratch, boot sector included. It's sole use ever was to prove myself I could do those "difficult" things.
[1] https://pygmy.utoh.org/pygmyforthmanual.html [2] http://eji.com/a86/
Given how much any kind of peripheral used to cost in the 8 bit home computer days I imagine how much that hurted.
All my stuff on those days were equally Christmas or birthdays gifts, or having to save up during months.
My first Assemblers were a mix of hand translating opcodes into DATA code blocks, and then I upgraded to hexdump editors, never managed to acquire a proper 8 bit Assembler, and during the first year of PC, MS-DOS debug was the only way.
My first Assembler was also A86/D86 shipped on a 5 inch floppy in a book I think from Sybex, no longer certain.
Awesome story. Which year did you create the micromouse?
Any change you have pictures of it?
The micromouse would have been spring 1983 I think. If there were any pictures, they'd probably be in my parents huge pile of unindexed old 35mm slides!
I think I saw a black and white photograph of your micro mouse in British magazine back then. I used to subscribe to “Your Computer” to feed my ZX Spectrum habit.
I suspect that the Ace would have failed quickly in the market, at least as an end-user machine, even if it had matched the ZX Spectrum for graphics and memory. It was extremely difficult to corrupt memory in BASIC unless one got too eager with POKE; but every memory set in Forth is basically a POKE.
Might have been a popular hobbyist machine, though.
There were extensions for the Speccy to use Forth instead of BASIC, I remember such ads.
Don't remember if it was ROM replacements, or plugged into extension port on the back.