Shop OBEX P1 Docs P2 Docs Learn Events
JupiterACE FORTH retro computer — Parallax Forums

JupiterACE FORTH retro computer

prof_brainoprof_braino Posts: 4,313
edited 2013-07-31 00:45 in Robotics
One of the the earliest personal computers was the JupiterACE. These were gone before my time, so the propforth team made our own.

http://code.google.com/p/propforth/wiki/JupiterACE

Compared to the original, the prop JutiperACE has 7 more CPU's, runs 24 times faster, has 32 times more RAM, has optional unlimited storage, and unlimited peripheral sensors and actuators via software drivers, and costs less.

A) You can make a standalone JupiterACE with a Prop Demo Board, a VGA monitor, and a keyboard. If you add an SD you can have 4G (or more) of removable storage for code, applications script, and data.

B) Another option is to use ANY standard prop board, add a cheap bluetooth module (HC05/HC06), and add any android device 3.0 or higher as a wireless keyboard and display. This is actually orders if magnitude cooler and more useful then the standalone VGA option, particularly for programming and monitoring multiple devices and systems in the field for no extra cost.

This project is not in any way compatible with the original JupiterACE.

Comments

  • mindrobotsmindrobots Posts: 6,506
    edited 2013-07-23 08:36
    PB,

    Very cool! Thanks for the updated write-up on the Jupiter ACE Forth.

    This begs to be tried with one of Jeff's (OBC's) PMC setups. It has all the components (VGA, KBD, SC, EEPROM, etc.) a retro kid could want!

    If anyone else beats me to trying this, go for it!! (as always, my timeframes for ANYTHING are largely unpredictable!)
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-07-23 10:15
    mindrobots wrote: »
    This begs to be tried with one of Jeff's (OBC's) PMC setups.

    A while back we started talking how he was running out of space for BASIC, and implementing his favorite BASIC in propforth. If we restructure such that the BASIC functions are calls to paged assembler routines on SD, there might be a way to in increase execution speed and allow unlimited program size. Of course, kernel + BASIC routine + data would have to fit on any given cog +hub, so there are limits, and I don't know whether this would be transparent to the user. But it might be worth a look.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2013-07-29 07:44
    Congrats on some "Hackaday" exposure!

    http://hackaday.com/2013/07/28/rekindling-forth-with-a-propeller-jupiter-ace/

    Any plans of supporting the ability to run Jupiter Ace programs in the future?

    Jeff
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-07-29 08:12
    Wow! 15 seconds of fame has started!

    There have been no requests to run original JupiterACE code, so there is no perceived need at this time.

    Any hardware specific low level code would have to be rewritten, I imagine; this is the nature of forth.

    If anybody has a particular program in mind we could give it a try. In any case a given program should only take a few minutes if its possible. Most likely writing a function from scratch based on functional requirements would be much simpler than writing an emulator.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2013-07-29 10:42
    There's a bunch of software on this site, (you are probably aware of). Your VGA driver should be able to handle something along the lines of this...

    http://jupiter-ace.co.uk/sw_wordace_util_tape.html

    (Memory permitting of course.. :) \

    Jeff
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-07-29 19:10
    There's a bunch of software on this site, (you are probably aware of). Your VGA driver should be able to handle something along the lines of this...

    http://jupiter-ace.co.uk/sw_wordace_util_tape.html

    (Memory permitting of course.. :) \

    Jeff

    None of that appear to be high level forth code, at least I could not find any source code.

    Somebody that knew both the origianl CPU and the prop would need to work on an emulator. It would probably be eaiser to just write a given application from scratch rather then write an emulator from scratch.

    So while the prop and propforth could easily achive the same result as the original, I don't the original code running on a propforth rig anytime soon.
  • Dave HeinDave Hein Posts: 6,347
    edited 2013-07-29 19:21
    prof_braino, So I'm a bit puzzled about the PropForth implementation of the Jupiter ACE. Does it implement the same words that the Juipiter ACE supported? How did you implement the DOES> word that the Jupiter ACE had? Since it doesn't execute Jupiter ACE binaries, can it compile Jupiter ACE source code?
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-07-30 06:37
    Nope, nope, and nope.

    This is a standalone forth terminal, similar to the JupiterACE. Apart from that, it has absolutely no relationship to the original JupiterACE, as it says.

    Which kind of makes sense, since forth is very processor specific at the low level, and its pretty much all low level.

    Any implemented high level forth words would execute with ok, but anything else would need a bunch of work. This is left to the folks that enjoy that activity.

    The goal was to exceed the original, not reproduce the limitations of the original. This was achieved, with seven available processors at 80MHz (compared to one at 4 Mhz), 32K RAM instead of 1k, 32K of Program EEprom (instead of what 4K?), and the ability to add unlimited external memory via SD card. And we have all the stock propforth abilities, the ability to add additional physical prop chips with MCS, the ability add arbitrary peripherals via software drivers, etc.

    The original retro games are trivial and can be implemented from a high level functional description quicker and more effective than writing an emulator, but writing an emulator could be fun in itself.
  • Dave HeinDave Hein Posts: 6,347
    edited 2013-07-30 07:37
    OK, I was under the incorrect impression that your implementation had something to do with the JupiterACE. I had never heard of the JupiterACE before, so it was interesting to see the web site that has so much information on it. It would be interesting to try to implement one of the games. I wonder if there is any source code available. It may be possible to run one of the emulators that is listed on the JupiterACE website, and disassemble one of the binaries to produce a source. I read somewhere that the JupiterACE disassembler did a good job of regenerating source.
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-07-30 11:26
    Dave Hein wrote: »
    ...web site that has so much information on it. It would be interesting to try to implement one of the games. I wonder if there is any source code available. It may be possible to run one of the emulators that is listed on the JupiterACE website, and disassemble one of the binaries to produce a source. I read somewhere that the JupiterACE disassembler did a good job of regenerating source.

    The folks that liked the JupiterACE REALLY liked it. I had several people, (real engineers not hackers) tell me what great, unique thing it was and what a pity it didn't catch on. This was more than for any other retro device, which was why I got interested in it.

    Taking this further by getting original games to run would be really cool. That's beyond my project scope and my abilities. It might even be better suited for pfth rather than propforth. If one were embark on this journey, one might find enthusiasts that still retain key pieces of information.
  • Dave HeinDave Hein Posts: 6,347
    edited 2013-07-30 11:51
    I downloaded the SpudACE emulator to my Windows box and tried it out. It came up with the initial vocabulary, which can be viewed by typing VLIST. I then tried a few simple things on it, and it worked OK, except that it would drop characters if I typed too fast. I downloaded the lunar.tap file, and found that I first had to load it into the simulated tape drive before I could run it. Once it's in the tape drive it is loaded by typing "LOAD LUNAR". It seems to run OK under the emulator. I then did a LIST LUNAR, which did a nice job of regenerating the source. So it does appear that the source can be regenerated from the binary. This must be because words like DO and AGAIN are not compiled into primitive kernel words, but are kernel words themselves.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-07-30 11:59
    An interesting question is how hard it would be to port a program from the JupiterACE to the FIGNition or this platform. Obviously any interaction with the graphics or sound hardware wouldn't port, but how much would?
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-07-30 12:09
    Dave Hein wrote: »
    ... lunar.tap file, and found that I first had to load it into the simulated tape drive ... LIST LUNAR, which did a nice job of regenerating the source...

    That explains a lot. I don't even think of tape drive. Can you post a listing?
  • Dave HeinDave Hein Posts: 6,347
    edited 2013-07-30 19:45
    I was able to piece together the lunar program by doing a list on each of the individual words. The resulting program is attached below. There is also a JUPITER.FTH file that implements the JupiterACE words that are used by the lunar program. There were three words that conflicted with existing words in ANS Forth, so I prefixed them with "j_", and provided definitions for them. The three words were KEY, PICK and ROLL. I changed the END word so it just does a quit instead of spinning in an infinite loop.

    I was able to run this under pfth. It required the buffered serial driver, so I had to include bufser.fth and run bufser before including jupiter.fth and lunar.fth. I've yet to land the lander without running out of fuel or crashing, but I'm going to keep trying.
  • HumanoidoHumanoido Posts: 5,770
    edited 2013-07-31 00:45
    Dave Hein wrote: »
    I was able to piece together the lunar program... I've yet to land the lander without running out of fuel or crashing, but I'm going to keep trying.
    Very nice projects. Your work, and Prof_Braino's work, are appreciated. You're only about 10-feet away from the lunar surface (according to your avatar).
Sign In or Register to comment.