Shop OBEX P1 Docs P2 Docs Learn Events
Catalina 2.6 - a FREE C compiler for the Propeller - The Final Frontier! - Page 3 — Parallax Forums

Catalina 2.6 - a FREE C compiler for the Propeller - The Final Frontier!

1356720

Comments

  • RossHRossH Posts: 5,573
    edited 2009-10-14 22:04
    @heater,

    smile.gif

    Ross.

    P.S. I'd like to see a PASM version of PINT. If you have that then you can use PINT to interpret the pascal version of PCOM (whereas I compile the C version), and you're done!

    I'd be interested to see how the PASM version performs compared to the C version. BTW It's my intention (if I ever get time!) to upgrade to P5 - P5 is a far more complete implementation of Pascal than P4, but not quite so simple to get running.
  • RossHRossH Posts: 5,573
    edited 2009-10-19 12:29
    @All,

    Dumbo BASIC has been updated to version 0.2. The new version includes a substantial rewrite of much of the original Mini Basic code. The core of the language is now virtually complete, with only a few statements and functions remaining to be added to make it a fully functional basic interpreter. Full GWBASIC compatiblity will take longer, but will be added over time.

    Ross.
  • RossHRossH Posts: 5,573
    edited 2009-10-25 10:43
    @All,

    I;ve been busy the last few weeks (I still have to work for a living unfortunately) so I haven't made as much progres on Catalina as I would have liked.

    However, in the meantime I have upgraded Dumbo BASIC to version 0.3. The new version is a far more substantive basic interpeter, and now includes a huge variery of new demo programs - i.e. three different versions of ... (you guessed it!) ... Star Trek!

    There's no documentation for Dumbo BASIC yet, but the GWBASIC manual is available online, so I have included (in the README file) a summary of which GWBASIC features have been implemented in Dumbo BASIC and which haven't.

    Apart from a few trivial tweaks here and there, all three versions of Star Trek run pretty much completely intact under Dumbo BASIC, and are all quite playable (at least they are on the TriBladeProp using a PC emulator, since they all assume an 80 character terminal). The largest and most sophisticated version (trek15.bas), weighing in at nearly 60kb of basic source code, was first written for a CDC in 1974. Now, almost exactly 30 years on, it's back - resurrected for the Propeller!

    Ross.

    P.S. Dumbo Basic will now go on hold for a couple of weeks while I get Catalina running on Morpheus. Bill Henning has been kind enough to send me a Morpheus platform to play with, so expect a new release of Catalina with Morpheus support in a week or two (or three).
  • Ron SutcliffeRon Sutcliffe Posts: 420
    edited 2009-10-25 11:54
    Hi Ross

    Can I run Catalina with the standard HX512k card and are the binaries available for Windows XP ??


    I have changed the Pin out assignments to suit my Demo board. I wanted to keep 31, 32 clear for VT100. I have re-worked the standard HX512K_ASM_DRV and it works fine. HX512k API is unchahged. I don't care if I can only use the 64K, that would be fine for now.

    Otherwise I might have to wait until we see Clusso99 new boards, preloaded with Catalina. [noparse]:)[/noparse]


    Ron
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-10-25 13:17
    Excellent news Ross. Basic and Catalina C on the TriBlade and Morpheus as well smile.gif The more platforms the more use it will get. Sorry I still have not had time to try Catalina, not that I know much C anyway.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-10-25 14:48
    I use locks to coordinate multiple cogs running PASM code accessing my XMM on Morpheus; it works just fine.
    heater said...
    RossH: In answer to you question to Clusso. Currently in ZiCog only the PASM Z80 emulator or the Spin peripheral hardware emulator object are executing at any moment. They both wait for each other like co-routines so there is no contention for EXT RAM access.

    Not sure where Clusso is headed with this but I guess all Spin codes using RAM should go through a common driver object, probably with locks. Accessing from PASM may always be a bit specialized for a given application.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-10-25 14:51
    Oooo! StarTrek on Morpheus !!!

    (even better, Catalina on it... Native LAS and PropellerBasic, here you come!)

    Thanks Ross!
    RossH said...
    @All,

    I;ve been busy the last few weeks (I still have to work for a living unfortunately) so I haven't made as much progres on Catalina as I would have liked.

    However, in the meantime I have upgraded Dumbo BASIC to version 0.3. The new version is a far more substantive basic interpeter, and now includes a huge variery of new demo programs - i.e. three different versions of ... (you guessed it!) ... Star Trek!

    There's no documentation for Dumbo BASIC yet, but the GWBASIC manual is available online, so I have included (in the README file) a summary of which GWBASIC features have been implemented in Dumbo BASIC and which haven't.

    Apart from a few trivial tweaks here and there, all three versions of Star Trek run pretty much completely intact under Dumbo BASIC, and are all quite playable (at least they are on the TriBladeProp using a PC emulator, since they all assume an 80 character terminal). The largest and most sophisticated version (trek15.bas), weighing in at nearly 60kb of basic source code, was first written for a CDC in 1974. Now, almost exactly 30 years on, it's back - resurrected for the Propeller!

    Ross.

    P.S. Dumbo Basic will now go on hold for a couple of weeks while I get Catalina running on Morpheus. Bill Henning has been kind enough to send me a Morpheus platform to play with, so expect a new release of Catalina with Morpheus support in a week or two (or three).
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-10-25 23:16
    Wow, some interesting things have happened on this thread recently!

    Can I just clarify, DumboBasic is a program written in C, and you are running a C program on a Propeller?

    I know heater said ho-hum to Eliza (and other basic programs like star trek) running on the Prop and indeed I've been running those too, but there is a difference here. If you run Basic in interpreter mode it is instant but slower to run. And tedious to edit. If you go to compiling on the board itself (which Zicog can do), you are constantly going back and forward between a word processor and a compiler. It works, but the edit/compile/run cycle is several minutes. Very slow (though not as tedious as changing the BIOS on a N8VEM which involves an eprom reprogram every time. Or punch cards etc).

    What is very nice about the Prop is the F11 is very fast, and the F10 is even faster. So a compiled program behaves like an interpreted program, ie instant compilation and also the speed of pasm (and spin).

    My understanding is that Catalina has now achieved the same thing for C, which is a huge effort and kudos++ to RossH.

    Once I can get my head around what Dumbo is doing, I wonder if there might be a cunning way to compile Basic fast on a PC - somehow converting it to something that is C, and hence something that can be compiled off-board into pasm/spin, and hence something that can run fast on a prop? It might be a roundabout way of getting basic to compile fast on a propeller?

    (I've done something similar on the N8VEM and Zicog where it shells out to a Z80 emulation [noparse][[/noparse]Altair SIMH] which is the same as a 200Mhz Z80, then sends the compiled program back to a real board. Edit/compile/run cycle times of 30 secs for larger programs. I'm sure that can be decreased, especially as the main thing taking the time is the download at 38k baud).

    Could you please explain a bit more about DumboBasic as it sounds quite intriguing.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/build
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-10-25 23:36
    I am working on PropellerBasic, which is written in C and compiles to code that is assembled by my LAS assembler.

    It would be possible, using Eclipse or some similar IDE, to have an "F10" like compile-and-download of PropellerBasic programs, by having the IDE invoke PropellerBasic, then LAS, then download the .eeprom image.

    It won't be quite as fast as F10 in spin, but faster than F11 [noparse]:)[/noparse]

    Either my PropellerBasic, Bean's PropBasic, or some other basic may eventually end up in the Propeller IDE.
    Dr_Acula said...
    Wow, some interesting things have happened on this thread recently!

    Can I just clarify, DumboBasic is a program written in C, and you are running a C program on a Propeller?

    I know heater said ho-hum to Eliza (and other basic programs like star trek) running on the Prop and indeed I've been running those too, but there is a difference here. If you run Basic in interpreter mode it is instant but slower to run. And tedious to edit. If you go to compiling on the board itself (which Zicog can do), you are constantly going back and forward between a word processor and a compiler. It works, but the edit/compile/run cycle is several minutes. Very slow (though not as tedious as changing the BIOS on a N8VEM which involves an eprom reprogram every time. Or punch cards etc).

    What is very nice about the Prop is the F11 is very fast, and the F10 is even faster. So a compiled program behaves like an interpreted program, ie instant compilation and also the speed of pasm (and spin).

    My understanding is that Catalina has now achieved the same thing for C, which is a huge effort and kudos++ to RossH.

    Once I can get my head around what Dumbo is doing, I wonder if there might be a cunning way to compile Basic fast on a PC - somehow converting it to something that is C, and hence something that can be compiled off-board into pasm/spin, and hence something that can run fast on a prop? It might be a roundabout way of getting basic to compile fast on a propeller?

    (I've done something similar on the N8VEM and Zicog where it shells out to a Z80 emulation [noparse][[/noparse]Altair SIMH] which is the same as a 200Mhz Z80, then sends the compiled program back to a real board. Edit/compile/run cycle times of 30 secs for larger programs. I'm sure that can be decreased, especially as the main thing taking the time is the download at 38k baud).

    Could you please explain a bit more about DumboBasic as it sounds quite intriguing.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • RossHRossH Posts: 5,573
    edited 2009-10-26 02:32
    Hi Dr_Acula,

    Yes, Dumbo BASIC is a BASIC interpreter written entirely in ANSI C. But it is not a full blown BASIC development environment like Bywater Basic - but on the other hand it is 10 times faster than Bywater BASIC (and I expect making it 2 or 3 times faster yet will not be difficult). However, Dumbo BASIC is not a competitor to PropellerBasic - Dumbo BASIC will always remain an interpreter, whereas I believe PropellerBasic is intended to be a true compiler (if I am reading Bill's response correctly). For my own purposes, if I want a compiled language then I use C - Dumbo BASIC is just a curiosity (i.e. I was curious to see if I could do it).

    I am basing the Dumbo basic dialect on GWBASIC - for no particular reason other than that GWBASIC was widespread, popular, and is reasonably well documented. Also, even though GWBASIC was a fairly simple language, it helped make Bill Gates a gazillionaire, so who knows ? :idea:
    The current status is that Dumbo BASIC is essentially complete apart from two main categories of GWBASIC features:

    1. File system support. This will be easy to add since Catalina already has it - I plan to add this to the next release.

    2. Graphics and comms support. I'm not sure about this yet - the choice is whether to try and emulate PC-style comms and graphics on the Prop, or abandon GWBASIC compatibility and add some Prop-specific support.

    One big advantage of Dumbo BASIC is that (because it is written in ANSI C) it can also execute on a PC under Windows (it can be compiled with MinGW/GCC), or under Linux (with GCC). So it is possible to write/develop/test BASIC programs on a PC and then just download the final result for execution on the Prop. You could in fact have the best of both worlds - i.e. a fancy development environment on the PC, plus a more modest (but self-hosted) one on the Prop. The main thing missing from Dumbo BASIC for self-hosted prop development is a decent text editor that runs locally on the Prop. I've downloaded various sources and it's on my list of things to do - but then so are so many other things smile.gif However, if I do end up getting my Prop Editor running, I will certainly add a 'Dumbo' key to instantly execute the file using Dumbo BASIC.

    Catalina self-hosted development for the Prop (when it arrives - it's not here yet - got to get Morpheus support working first!) will probably be the more traditional edit-save-compile-run approach.

    Ross.

    P.S. For those who are wondering - 'Dumbo BASIC' is not my comment on the BASIC language or its practitioners - 'Dumbo' was a term used for Catalina flying boats. One reason is that a Catalina looks like it would fly about as well as an elephant does, and people commonly compared them to the Disney character of the same name. The other is that Air/Sea Rescue missions were apparently known as 'Dumbo' missions. Since Catalinas were extensively used for Air/Sea rescue, I'm not exactly sure which meaning came first.
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-10-26 02:47
    Hi,

    You are reading me right, PropellerBasic is a true compiler - it reads a ".bas" file, and emits a ".las" assembly language source file, which is assembled by LAS to (currently) produce a ".binary" or ".eeprom" image. Later I will be writing "LLN" (Largos Linker) at which point LAS will also emit ".obj" files that "LLN" will turn into Largos executables - but .binary and .eeprom images will be supported as long as the Propeller and PropellerTool supports them.

    PropellerBasic is a command line based compiler, but it is designed to be easy to integrate into IDE's - it emits text files for errors, warnings, etc.

    FYI, my Largos graphics API is the API defined in my "xmm_gpu.spin" file in the Morpheus drivers, and the graphics API in PropellerBasic is also identical.
    RossH said...
    Hi Dr_Acula,

    Yes, Dumbo BASIC is a BASIC interpreter written entirely in ANSI C. But it is not a full blown BASIC development environment like Bywater Basic - but on the other hand it is 10 times faster than Bywater BASIC (and I expect making it 2 or 3 times faster yet will not be difficult). However, Dumbo BASIC is not a competitor to PropellerBasic - Dumbo BASIC will always remain an interpreter, whereas I believe PropellerBasic is intended to be a true compiler (if I am reading Bill's response correctly). For my own purposes, if I want a compiled language then I use C - Dumbo BASIC is just a curiosity (i.e. I was curious to see if I could do it).

    I am basing the Dumbo basic dialect on GWBASIC - for no particular reason other than that GWBASIC was widespread, popular, and is reasonably well documented. Also, even though GWBASIC was a fairly simple language, it helped make Bill Gates a gazillionaire, so who knows ? idea.gif

    The current status is that Dumbo BASIC is essentially complete apart from two main categories of GWBASIC features:

    1. File system support. This will be easy to add since Catalina already has it - I plan to add this to the next release.

    2. Graphics and comms support. I'm not sure about this yet - the choice is whether to try and emulate PC-style comms and graphics on the Prop, or abandon GWBASIC compatibility and add some Prop-specific support.

    One big advantage of Dumbo BASIC is that (because it is written in ANSI C) it can also execute on a PC under Windows (it can be compiled with MinGW/GCC), or under Linux (with GCC). So it is possible to write/develop/test BASIC programs on a PC and then just download the final result for execution on the Prop. You could in fact have the best of both worlds - i.e. a fancy development environment on the PC, plus a more modest (but self-hosted) one on the Prop. The main thing missing from Dumbo BASIC for self-hosted prop development is a decent text editor that runs locally on the Prop. I've downloaded various sources and it's on my list of things to do - but then so are so many other things smile.gif However, if I do end up getting my Prop Editor running, I will certainly add a "Dumbo" key to instantly execute the file using Dumbo BASIC.

    Catalina self-hosted development for the Prop (when it arrives - it's not here yet - got to get Morpheus support working first!) will probably be the more traditional edit-save-compile-run approach.

    Ross.

    P.S. For those who are wondering - "Dumbo BASIC" is not my comment on the BASIC language or its practitioners - "Dumbo" was a term used for Catalina flying boats. One reason is that a Catalina looks like it would fly about as well as an elephant does, and people commonly compared them to the Disney character of the same name. The other is that Air/Sea Rescue missions were apparently known as "Dumbo" missions. Since Catalinas were extensively used for Air/Sea rescue, I'm not exactly sure which meaning came first.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-10-26 12:13
    Ah, Dumbo sounds nifty. I'm still digesting what this all means, but it certainly opens up a lot of possibilities.

    Did you code all that yourself? It looks like a lot of work, and is a great insight to how an interpreter works underneath the hood.

    Just brainstorming here, but Mbasic (very similar to GWBasic) has both an interpreter (MBASIC.COM) and a compiler (BASCOM.COM) under CP/M/Zicog. Both are great, but those line numbers are so old fashioned!

    But with your code, you can make a language whatever you want it to be. Why not add some PASM in a Basic program? How about some custom commands, eg to open a serial port on pin x at baudrate n, output a byte and then close the port? We did something similar on the Triblade by trapping an OUT statement to a particular port number.

    Does your code allow opening a small file, writing a few bytes and closing the file? Hmm - where would that file reside? Inside some spare space in the eeprom? On an SD card?

    As for displays, for text you can do almost anything with two VT100 commands:
    CLS to clear the screen
    ESC[noparse][[/noparse]x,y to move the cursor to x,y

    You could trap those with specific OUT instructions if you didn't want to change the GWBasic syntax.

    How much of that C code did you write, and how much needed modifying from a working version (was it ANSI 100%?).

    I'm just pondering other variants that might be out there. Though I have to say that for Basic, I prefer something more structured. Something more like C in fact. RobotBasic comes close to the mark. If only C didn't have == Though Catalina looks so good that maybe I'll just move over to C!

    I need to look at Catalina in more detail, but does it allow mix-n-match with PASM code by any chance?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/build
  • RossHRossH Posts: 5,573
    edited 2009-10-27 00:39
    @Dr_Acula,

    I based Dumbo BASIC on Mini BASIC, originally written by Malcolm Mclean. I've had to rewrite nearly all of his original code, and have nearly tripled the total code size (so far - there's more to come!). But I chose Mini Basic because even though it only implemented a trivially small subset of basic (no while...wend, no on..goto or on..gosub, no nested ifs or fors, no read or data statements, very simpleminded expression evaluator - not even a gosub!) the original was in ANSI C, and the fundamental design looked sound - credit for that goes to Malcom Mclean.

    I have thought about adding PASM (GWBASIC allows user callable assembly language functions). Also, I could extend Dumbo BASIC to have Propeller-specific functions for i/o as you suggest (using INP and OUT). And I will add full file system access to the next release.

    But the question is - who would use it? I do this mainly for my own amusement. As you point out, once you get past a certain level of sophistication, most people would already have moved to C.

    By the way, Catalina allows including and calling PASM functions, but it's not trivial to do. I suppose I should include an example of how to do it in the next release (there are actually several examples in the Catalina standard C library, but you have to dig around to find them).

    Ross.
  • AleAle Posts: 2,363
    edited 2009-10-27 13:55
    RossH:

    To add a new XMM host, I need to modify all _XMM_Input.spin files, right ?

    Thanks

    Ale

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Visit some of my articles at Propeller Wiki:
    MATH on the propeller propeller.wikispaces.com/MATH
    pPropQL: propeller.wikispaces.com/pPropQL
    pPropQL020: propeller.wikispaces.com/pPropQL020
    OMU for the pPropQL/020 propeller.wikispaces.com/OMU
  • RossHRossH Posts: 5,573
    edited 2009-10-27 23:56
    @Ale,

    That's right. You will have to include your XMM access code in all of the following files, surrounded by appropriate #define statements:

    Catalina_HUB_XMM_Loader_Input.spin
    Catalina_XMM_EEPROM_Loader_Input.spin
    Catalina_XMM_Input.spin
    Catalina_XMM_SD_Loader_Input.spin
    Catalina_XMM_SIO_Loader_Input.spin

    Ross.

    P.S. The XMM code in all the files is actuallly identical - I just comment out various unused parts here and there to save space.
  • Capt. QuirkCapt. Quirk Posts: 872
    edited 2009-11-09 22:23
    Ross H.,

    Do you plan to amend your reference guide·further, and show how to recompile Catalina in 64bit Win7? The current notes are beyond my skill level, or I just have a lack of understanding.

    Thanks

    Bill M.
  • RossHRossH Posts: 5,573
    edited 2009-11-09 23:30
    Hi Bill,

    I don't have a copy of 64 bit Windows, but I know others have recompiled Catalina for 64 bits, so its definitely possible. I'm not aware of anything special that is required, but Windows 7 may have some new peculiarities. Tell me where you're stuck and I'll try and help.

    Have you successfully downloaded and installed MinGW and MSYS?

    Ross.
  • RossHRossH Posts: 5,573
    edited 2009-11-10 09:15
    The Matrix said...
    Neo: This... this isn't the Matrix?
    Morpheus: No. It is another training program designed to teach you one thing: if you are not one of us, you are one of them.
    At last! Catalina comes to the Matrix ... er, I mean ... to Morpheus!.

    Enclosed is Super Star Trek, compiled with Catalina. Thanks to Bill for the Morpheus platform, and also for his help in getting Catalina's XMM access working on Morpheus. The next release of Catalina will include full Morpheus support - this is just a short trailer - and unfortunately nowhere near as sexy as Bill's XGA Morpheus demo!

    To run the game, you need a Morpheus (obviously!) with an SD Card connected to CPU #1. The simplest way to attach an SD card is to use the header provided on the Mem+ board, but if you DON'T hava a Mem+, but DO have a Hydra SD MAX explansion card then you can use this card by connecting it directly to the EXP1 interface on the Morpheus board - all you need is a couple of suitablly wired connectors. You also need a 512Kb SRAM chip installed on the Morpheus board. The game requires less than 100k of XMM RAM, so you don't need a Mem+ board to run it.

    The program uses a terminal emulator for all I/O. The Parallax Serial Terminal works fine.

    On the Morpheus, only CPU #1 has direct access to the SD Card, but we need to run the demo program on CPU #2 to use the XMM RAM, so we use Catalina's Generic SD Card loader and Serial I/O loader capabilities (similar to how Catalina loads programs into the multiple blades of the TriBladeProp). Unfortunately, this does make getting it running a little complex:
    • Load the 'Generic_SD_Loader_1.binary' program into the EEPROM of CPU #1 (just use the Parallax Propeller tool). This program can reads files off the SD Card and send them to CPU #2 for execution serially via the pins shared between CPU #1 and CPU #2.
    • Load the 'Generic_SIO_Loader_2.binary' program into the EEPROM of CPU #2 (again using the Parallax Propeller tool). This program can receive files sent serially from CPU #1 and load them into XMM RAM for execution.
    • Put the file 'startrek.bin' onto an SD Card formatted as FAT16, insert it and reboot the Morpheus.
    • The next step is much simpler to do if you have two serial terminals open - one connected to CPU #1, the other to CPU #2. To do this you need two PropPlugs, or one PropPlug and the RS-232 serial port provided by the Mem+ board. If you only have one PropPlug and don't have a Mem+ then you should start with the PropPlug connected to CPU #1 and then swap it to CPU #2 once the demo program has been loaded.

    On the terminal connected to CPU #1 you should see something like:
    SD Card Program Loader
               ================
    
       SHIFT + 0, 1, or 2 to set CPU, or
       Enter file:
    

    Press SHIFT+2 (i.e. '@') to select CPU #2 (the prompt will change to show which CPU will be loaded). Then enter the filename STARTREK.BIN and press RETURN. The program will take about 15 seconds to load into CPU #2. If you have a serial terminal already open on CPU #2 you will see progress messages, then the Super Star Trek program will start. If you only have one PropPlug, wait till the program finishes loading (i.e. the SD Card Program Loader prompt reappears) and then swap the PropPlug to CPU #2. By doing this you will probably miss both the program banner and possibly also the chance to display the instructions - so I have included the source code as well since the instructions are embedded in there. But the game should be running ok, so just press enter to redisplay the normal game command options.
    [/list]
    Happy Trekking!

    P.S. The next release of Catalina will include full local mouse, keyboard and VGA support, plus a plugin designed to allow direct access to the SD Card from CPU #2 - so it will be much easier to get programs loaded and running.

    P.P.S. The Generic SD Card Program Loader can also be used to load normal (i.e. non-XMM) program binaries from the SD Card into either CPU #1 or CPU #2. The only limitation is that non-XMM binaries (e.g. compiled SPIN programs) must be less than 31k in size.
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-11-13 06:48
    WOW!

    I come up for air from PropellerBasic and look what I find...

    Thanks Ross!!!

    (there goes any possible free time for me this weekend...)
    RossH said...
    The Matrix said...

    Neo: This... this isn't the Matrix?
    Morpheus: No. It is another training program designed to teach you one thing: if you are not one of us, you are one of them.

    At last! Catalina comes to the Matrix ... er, I mean ... to Morpheus!.

    Enclosed is Super Star Trek, compiled with Catalina. Thanks to Bill for the Morpheus platform, and also for his help in getting Catalina's XMM access working on Morpheus. The next release of Catalina will include full Morpheus support - this is just a short trailer - and unfortunately nowhere near as sexy as Bill's XGA Morpheus demo! smile.gif

    To run the game, you need a Morpheus (obviously!) with an SD Card connected to CPU #1. The simplest way to attach an SD card is to use the header provided on the Mem+ board, but if you DON'T hava a Mem+, but DO have a Hydra SD MAX explansion card then you can use this card by connecting it directly to the EXP1 interface on the Morpheus board - all you need is a couple of suitablly wired connectors. You also need a 512Kb SRAM chip installed on the Morpheus board. The game requires less than 100k of XMM RAM, so you don't need a Mem+ board to run it.

    The program uses a terminal emulator for all I/O. The Parallax Serial Terminal works fine.

    On the Morpheus, only CPU #1 has direct access to the SD Card, but we need to run the demo program on CPU #2 to use the XMM RAM, so we use Catalina's Generic SD Card loader and Serial I/O loader capabilities (similar to how Catalina loads programs into the multiple blades of the TriBladeProp). Unfortunately, this does make getting it running a little complex:
    • Load the "Generic_SD_Loader_1.binary" program into the EEPROM of CPU #1 (just use the Parallax Propeller tool). This program can reads files off the SD Card and send them to CPU #2 for execution serially via the pins shared between CPU #1 and CPU #2.
    • Load the "Generic_SIO_Loader_2.binary" program into the EEPROM of CPU #2 (again using the Parallax Propeller tool). This program can receive files sent serially from CPU #1 and load them into XMM RAM for execution.
    • Put the file "startrek.bin" onto an SD Card formatted as FAT16, insert it and reboot the Morpheus.
    • The next step is much simpler to do if you have two serial terminals open - one connected to CPU #1, the other to CPU #2. To do this you need two PropPlugs, or one PropPlug and the RS-232 serial port provided by the Mem+ board. If you only have one PropPlug and don't have a Mem+ then you should start with the PropPlug connected to CPU #1 and then swap it to CPU #2 once the demo program has been loaded.

      On the terminal connected to CPU #1 you should see something like:

      SD Card Program Loader
      ================

      SHIFT + 0, 1, or 2 to set CPU, or
      Enter file:

      Press SHIFT+2 (i.e. '@') to select CPU #2 (the prompt will change to show which CPU will be loaded). Then enter the filename STARTREK.BIN and press RETURN. The program will take about 15 seconds to load into CPU #2. If you have a serial terminal already open on CPU #2 you will see progress messages, then the Super Star Trek program will start. If you only have one PropPlug, wait till the program finishes loading (i.e. the SD Card Program Loader prompt reappears) and then swap the PropPlug to CPU #2. By doing this you will probably miss both the program banner and possibly also the chance to display the instructions - so I have included the source code as well since the instructions are embedded in there. But the game should be running ok, so just press enter to redisplay the normal game command options.
    Happy Trekking!

    P.S. The next release of Catalina will include full local mouse, keyboard and VGA support, plus a plugin designed to allow direct access to the SD Card from CPU #2 - so it will be much easier to get programs loaded and running.

    P.P.S. The Generic SD Card Program Loader can also be used to load normal (i.e. non-XMM) program binaries from the SD Card into either CPU #1 or CPU #2. The only limitation is that non-XMM binaries (e.g. compiled SPIN programs) must be less than 31k in size.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • RossHRossH Posts: 5,573
    edited 2009-11-13 09:15
    @Bill,

    I'm nearly finished the 'proxy' SD plugin that will allow programs running on one CPU to use the SD card attached to another CPU as a file system - then we will really see some benefit out of Morpheus's large XMM memory space.

    This new plugin will work on both the TriBladeProp and Morpheus, and can also be adapted to any multi-cpu Prop system. After that will come something similar for the HMI plugin (i.e. keyboard/screen/mouse).

    Ross.
  • neotericneoteric Posts: 144
    edited 2009-11-13 19:53
    can we see some screen shots (for those of us who would are considering some Morpheus purchases?)
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-11-13 20:19
    Hi Ross,

    Thanks - that is excellent news!
    RossH said...
    @Bill,

    I'm nearly finished the "proxy" SD plugin that will allow programs running on one CPU to use the SD card attached to another CPU as a file system - then we will really see some benefit out of Morpheus's large XMM memory space.

    This new plugin will work on both the TriBladeProp and Morpheus, and can also be adapted to any multi-cpu Prop system. After that will come something similar for the HMI plugin (i.e. keyboard/screen/mouse).

    Ross.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-11-13 20:26
    Hi neoteric!

    You can find screen shots starting on page 7 of the "official" Morpheus thread:

    http://forums.parallax.com/showthread.php?p=818362

    and there are some more in my 5.0" VGA LCD thread:

    http://forums.parallax.com/showthread.php?p=853673

    You can find the build manual and the "Morpheus System Architecture and Developer's Guide" manuals on my downloads page:

    mikronauts.com/downloads/

    Best Regards,

    Bill
    neoteric said...
    can we see some screen shots (for those of us who would are considering some Morpheus purchases?)
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • RossHRossH Posts: 5,573
    edited 2009-11-13 22:55
    @neoteric,

    If you mean screen shots of Morpheus, follow Bill's links. If you mean screen shots of star trek, the're not very interesting. Star trek is a text-based computer game from the 70's. I use it as one of my my standard test programs when I'm porting Catalina to a new platform - it's a bit more fun than watching the compiler test suite executing.

    I haven't yet written any drivers to take advantage of the graphics capabilities of Morheus - I'm still working on getting the basic infrastructure in place - XMM, SD Card, Program Loaders, etc, etc - i.e. all the boring bits!

    Another week maybe (yes, yes, I know - I always say that, and it always takes me longer!)

    Ross.
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-11-15 05:20
    ROSSH said...
    This is a beta release of Dumbo BASIC - Dumbo BASIC will eventually be a substantially complete GWBASIC clone for the Propeller....The ELIZA basic program and several versions of Star Trek are included, along with Dumbo BASIC binaries for the TriBladeProp and the Hydra.
    RossH, this is totally fantastic. Thanks for your fine work, and happy to see it works on the HYDRA.

    humanoido
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-12-06 00:34
    Very cool!

    It will be awesome to run Zork I, II, III on Morpheus!

    There are a TON of older C games that can be adapted... Rogue, Nethack (as suggested by someone else above), and many many others! (see http://techtinkering.com/articles/?id=31 and many other indexes)
    RossH said...
    Another Catalina Curiosity ...

    This is JZIP - an Infocom game interpreter from the grand old days of text-based computer games.

    With this interpreter, and suitable game files, you can play all the Infocom greats - Zork, Deadline, Suspended, Witness, Hitchhikers Guide to the Galaxy,
    A Mind Forever Voyaging, Starcrossed ... etc etc ... all on the Propeller!

    ...

    I can't claim the performance of the games is outstanding, but they are quite playable. The only problem (for me at least, since I'm such a lousy typist) is that the backspace key doesn't work!

    Note there are NO changes to the original JZIP source code required to compile and run JZIP under Catalina - but I have added a couple of progress
    messages that are displayed while the game is loading and initializing from the SD Card, since this can take about 30 seconds.

    Enjoy!

    Ross.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • RossHRossH Posts: 5,573
    edited 2009-12-06 01:02
    @Bill,

    As I mentioned in another thread - Morhpeus support for Catalina will be released soon. It will have local XMM and VGA support for programs running on CPU #2, plus proxy support for the devices connected to CPU #1 - i.e. Catalina programs runnning on CPU #2 will be able to use all 8Mb of local XMM RAM, have high-resoluton 256 colour VGA displays - and also have access to the mouse, keyboard and SD Card running remotely on CPU #1.

    The same proxy drivers will also support the TriBladeProp - i.e. programs running on Blade #2 will be able to access the local XMM RAM and the local SD card, plus use the VGA/TV/keyboard/mouse devices on Blade #1. And Blade #3 is still available for other peripherals.

    The future of completely self-hosted Prop development is definitely looking bright - using one or the other of these multi-prop boards!

    Ross.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-12-06 01:15
    RossH: Very nice work - pitty I have had no time to check anything out yet.

    Have you seen the·thread· Prop IDE - Linux: Customized Linux system entirely from source. Add the apps we want···· http://forums.parallax.com/showthread.php?p=860027

    I have an idea that we could compile the mini *nix using Catalina targetting the prop as the processor - "Propnix". Any comments?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-12-06 01:23
    Hmmm... possible, however it would need a LOT of XMM!

    Best starting points would be:

    uC Linux, MMU less version for ARM

    -or-

    Minix v1, for 8086
    Cluso99 said...
    RossH: Very nice work - pitty I have had no time to check anything out yet.

    Have you seen the thread Prop IDE - Linux: Customized Linux system entirely from source. Add the apps we want http://forums.parallax.com/showthread.php?p=860027

    I have an idea that we could compile the mini *nix using Catalina targetting the prop as the processor - "Propnix". Any comments?
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • RossHRossH Posts: 5,573
    edited 2009-12-06 05:12
    @All,

    Yes, I'm following these threads with interest. I'm not sure Linux is a good fit for the Prop, but if I had more time, I'd certainly be giving it a go!

    Ross.
Sign In or Register to comment.