Shop OBEX P1 Docs P2 Docs Learn Events
Catalina 3.12 — Parallax Forums

Catalina 3.12

RossHRossH Posts: 5,462
edited 2014-02-09 03:13 in Propeller 1
NOTE: Catalina 3.13 is now available (here) - it is a full release that replaces all previous releases.

I've just posted the latest (non-beta) release of Catalina (3.12) to SourceForge. I've posted the usual Windows "one touch" installer (here). Linux 32 bit and 64 bit versions are also available (here).

Here is a brief list of the main improvements in this release. For a full list, see the README.WhatsNew file (attached) or the Catalina Reference Manual:
  • At the request of the maintainers of the “openspin” open source Spin compiler, Catalina's version has been renamed (from openspin to spinnaker). This makes no functional difference to Catalina.
  • The Catalina cache operation has been speeded up significantly (in most cases the program execution speed has more than doubled). This means that in some cases C programs executing from XMM RAM will execute faster than the equivalent SPIN program executing from Hub RAM.
  • Support has been added for the RamBlade3. This is enabled via the RAMBLADE3 symbol. See the file RamBlade3_README.TXT in the Catalina target directory for more details.
  • Support has been added for the Propeller Memory Card. This is enabled via the PMC symbol. See the file PMC_README.TXT in the Catalina target directory for more details.
  • Explicit support has been added for the QuickStart board, and for the QuickStart Human Interface Board. This is enabled via the QUICKSTART symbol. See the file QuickStart_README.TXT in the Catalina target directory for more details. Note that the QuickStart was already supported in previous versions, but via the CUSTOM symbol. Now, it has been allocated a symbol of its own.
  • Catalina now differentiates between base platforms and XMM add-on boards, allowing both to be specified. Support has been added for the following XMM add-on boards, which can now be used in conjunction with any of the supported base platforms:
SuperQuad
RamPage
RamPage 2
Hydra Xtreme
Propeller Memory Card

You can now "mix and match" any XMM add-on card with any supported platform.

One consequence of this is that you can now override the built-in XMM supported by a platform with an XMM add-on board. For instance, when compiling on the C3, you would normally use the C3's built-in XMM RAM:
catalina hello_world.c -lci -C LARGE -C C3
However, you can now overrride this if you want, to use the Propeller Memory Card XMM RAM (for example):
catalina hello_world.c -lci -C LARGE -C C3 -C PMC
  • Fixed a problem with the SD Plugin introduced with Catalina 3.11, which was not correctly clocking the SD card after raising the Chip Select. This could lead to the SD card plugin not working with some XMM memory add-on boards.
  • Fixed a problem with the Catalina File System call _close_unmanaged(), which was not correctly clearing out the file handle. This meant that after a small number of file handles had been used (8 in total), no more files could be opened since it looked like all the available file handles were still in use.
  • Fixed a problem with the special register names (e.g. DIRA, OUTA, etc) which meant that if constant values were assigned to them, they could be interpreted as cog addresses rather than constants in some circumstances. For instance, OUTA = 0 might assign the value contained in cog address 0 to OUTA rather than the constant value 0. This did not affect inline PASM, or the library functions (e.g. _dira(), _outa() etc).

For those who downloaded the beta version of 3.12, there are a few additional minor bug fixes - see items 11-15 in the README.WhatsNew (attached).

Ross.
«1

Comments

  • RossHRossH Posts: 5,462
    edited 2013-11-24 03:44
    All,

    There is a new Errata file for Catalina 3.12. This Errata includes a fix for two problems that only occur when using the Compact (CMM) memory model. One is that programs that used the threads library gave a compilation error when using the Spinnaker (i.e. OpenSpin) PASM compiler (they compiled with HomeSpun), and the other is that programs using the Optimizer might not execute correctly (they executed correctly if the optimizer was not used).

    This Errata also includes the previous errata, which addressed issues encountered when compiling Catalina under OSX using the clang compiler.
    Ross.
  • Cluso99Cluso99 Posts: 18,069
    edited 2013-11-24 10:29
    Thanks Ross. Keep up the excellent work!
  • RossHRossH Posts: 5,462
    edited 2013-11-24 14:29
    All,

    I just re-read my first point. I should point out that it was not Catalina that blew up my C3! At least not directly - I was using the C3 to test a dodgy micro SD card that would work some boards but not on others, and I think that was most likely the reason. Prior to that, the C3 worked fine with all my other SD cards. I have since thrown that particular micro SD card away!

    Moral of this story: stick to reputable brand micro SD cards!

    Ross.
  • RetrobitsRetrobits Posts: 46
    edited 2013-11-24 16:12
    Thanks VERY much for supporting the Propeller Memory Card.

    Downloading and installing as we speak.

    - Earl
  • RossHRossH Posts: 5,462
    edited 2013-11-24 16:47
    Retrobits wrote: »
    Thanks VERY much for supporting the Propeller Memory Card.

    Downloading and installing as we speak.

    - Earl

    No worries Earl.

    One point - I just realized I did not include the code necessary to power the PMC from propeller I/O pins (as I have done for the SuperQuad and RamPage boards). This means you currently have to tie the Vdd and Vss pins of the PMC to the appropriate power and ground rails (note that if you are using the QuickStart board, this is already done for you).

    I was going to add this when I tested it on the C3 board (which was my default platform for testing add-on boards) - but then I blew it up! I'll add this to the non-beta release.

    Ross.
  • RetrobitsRetrobits Posts: 46
    edited 2013-11-24 17:10
    Sorry your C3 blew up!

    No problem on the power pins. I'm planning to test this first on the Demo board, and the pin config already provides the power in the right spot.

    Also, I copied the PMC SD card override section from the QuickStart DEF file to the Demo board DEF file, so it will either disable SD when no PMC is in use, or select the right SD pins when the PMC is present.

    - Earl
  • RossHRossH Posts: 5,462
    edited 2013-11-24 19:43
    Retrobits wrote: »
    Sorry your C3 blew up!

    No problem on the power pins. I'm planning to test this first on the Demo board, and the pin config already provides the power in the right spot.

    Also, I copied the PMC SD card override section from the QuickStart DEF file to the Demo board DEF file, so it will either disable SD when no PMC is in use, or select the right SD pins when the PMC is present.

    - Earl

    Good! - I didn't realize the PMC also plugs straight in to the Demo board (I don't actually have a Demo board).

    I'll add the necessary override to the Demo board pin definitions for the non-beta release. (EDIT: Now done!)

    Ross.
  • RossHRossH Posts: 5,462
    edited 2013-12-01 05:23
    All,

    See post 2 in this thread for a new tutorial document on selecting the memory model to use, and a couple of great games for Catalina!

    Ross.
  • RossHRossH Posts: 5,462
    edited 2013-12-10 17:35
    All,

    I've just posted the non-beta version of Catalina 3.12 (see first post in this thread). Now includes Windows and Linux distributions. OSX is also supported, but it must be compiled from source (use either of the Linux distributions).

    Ross.
  • RaymanRayman Posts: 14,659
    edited 2013-12-12 17:35
    Thanks for the new games and improving the XMM speed!
    The XMM games are really a great way to show the power of Catalina...
  • RossHRossH Posts: 5,462
    edited 2013-12-12 18:31
    Rayman wrote: »
    Thanks for the new games and improving the XMM speed!
    The XMM games are really a great way to show the power of Catalina...

    Thanks, Rayman - they're not really intended to demonstrate the power of Catalina, they're just a fun way to illustrate the use of the various compiler options.

    Now, if you want something that demonstrates the power of Catalina, try the spacewar demo in the folder demos\vgraphics (requires a board with VGA output) ... :cool:
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-12 18:35
    Rayman wrote: »
    Thanks for the new games and improving the XMM speed!
    The XMM games are really a great way to show the power of Catalina...
    Which games are included to demonstrate XMM? I'm afraid I haven't used Catalina much recently because I'm almost always using a Mac and the last I heard there wasn't a Mac port. Or has that changed?

    Edit: Never mind. I found them. The Chimaera game is fun. You can compile it for the C3 using PropGCC with the following command:
    propeller-elf-gcc -Os -mxmm-split -o chimaera.elf chimaera.c -lm
    
    You can run it on the C3 with this command:
    propeller-load -b c3 chimaera.elf -r -t
    

    I'm not sure which memory models work under Catalina but Chimaera seems to be too big for anything other than xmm-split on the C3.
  • RossHRossH Posts: 5,462
    edited 2013-12-12 18:47
    David Betz wrote: »
    Which games are included to demonstrate XMM? I'm afraid I haven't used Catalina much recently because I'm almost always using a Mac and the last I heard there wasn't a Mac port. Or has that changed?

    Yes, Catalina supports OSX. But you have to compile it from source. I don't own a Mac, so I can't generate a binary distribution.

    The games Rayman is referring to are sumeria.c and chimaera.c - they are now included in the Catalina\demos directory. I chose them based mainly on size, to demonstrate the use of various compiler options. There is a new document called Selecting Catalina Options that guides you through compiling them in various ways (compact, small or large; flash or sram; cache or no cache, etc etc).

    Ross.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-12 18:50
    RossH wrote: »
    Yes, Catalina supports OSX. But you have to compile it from source. I don't own a Mac, so I can't generate a binary distribution.

    The games Rayman is referring to are sumeria.c and chimaera.c - they are now included in the Catalina\demos directory. I chose them based mainly on size, to demonstrate the use of various compiler options. There is a new document called Selecting Catalina Options that guides you through compiling them in various ways (compact, small or large; flash or sram; cache or no cache, etc etc).

    Ross.
    Thanks! I may be having trouble with PropGCC since I typed the following sequence which generated a nonsense response:
    It is pitch dark and you can't see a thing, if you move you are likely 
    to fall into a pit! 
    > light lamp
    You put the ring on your finger. 
    
    If you're saying I can build Catalina under Mac OS X I guess I ought to try that. Thanks for letting me know that the Mac build is working.
  • RossHRossH Posts: 5,462
    edited 2013-12-12 18:55
    I'm not sure which memory models work under Catalina but Chimaera seems to be too big for anything other than xmm-split on the C3.

    I don't know what "xmm-split" means, but with Catalina you just compile it as a LARGE program. For example:
    catalina chimaera.c -lcx -lm -C RAMBLADE3 -C LARGE
    
    Ross.
  • RossHRossH Posts: 5,462
    edited 2013-12-12 18:57
    David Betz wrote: »
    Thanks! I may be having trouble with PropGCC since I typed the following sequence which generated a nonsense response:
    It is pitch dark and you can't see a thing, if you move you are likely 
    to fall into a pit! 
    > light lamp
    You put the ring on your finger. 
    
    If you're saying I can build Catalina under Mac OS X I guess I ought to try that. Thanks for letting me know that the Mac build is working.

    Offhand, I'd say you are having memory allocation problems with propgcc - can you try another memory model? On the C3 you probably need to use FLASH RAM.

    Ross.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-12 19:00
    RossH wrote: »
    Offhand, I'd say you are having memory allocation problems with propgcc - can you try another memory model? On the C3 you probably need to use FLASH RAM.

    Ross.
    The xmm-split memory model is what I used and it puts code in flash and data in SRAM.

    Where do I get the source code for Catalina 3.12? I looked on SourceForge and could only find binary distributions.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-12 19:08
    FYI, I got a warning when I compiled sumeria.c:
    david-betzs-macbook-pro:Catalina_3.12_Options dbetz$ propeller-elf-gcc -Os -mcmm -o sumeria.elf sumeria.c -lm
    sumeria.c: In function 'terminate':
    sumeria.c:70:4: warning: incompatible implicit declaration of built-in function 'exit' [enabled by default]
    
    This is caused by a missing include of <stdlib.h> which includes the prototype for the exit() function.
  • RossHRossH Posts: 5,462
    edited 2013-12-12 19:16
    Hi David,

    The sources are always included in all the binary distributions.

    I corrected a couple of warnings on sumeria.c - nothing that affects the program itself, just missing prototypes. I missed that one - GCC must be a bit pickier than LCC in some cases.
  • RossHRossH Posts: 5,462
    edited 2013-12-12 19:17
    David Betz wrote: »
    The xmm-split memory model is what I used and it puts code in flash and data in SRAM.

    Where does it put the stack?

    Ross.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-12 19:19
    RossH wrote: »
    Where does it put the stack?

    Ross.
    PropGCC always puts the stack in hub memory.
  • RossHRossH Posts: 5,462
    edited 2013-12-12 19:28
    David Betz wrote: »
    PropGCC always puts the stack in hub memory.

    Then I think there should be enough memory for the game to work properly. Mind you, I've only played it on the RamBlade - the C3 may not have enough SRAM.

    Ross.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-12 19:33
    RossH wrote: »
    Hi David,

    The sources are always included in all the binary distributions.

    I corrected a couple of warnings on sumeria.c - nothing that affects the program itself, just missing prototypes. I missed that one - GCC must be a bit pickier than LCC in some cases.
    I downloaded the 64 bit Linux archive and it contains a "source" directory but I get a permissions error if I try to open it. Maybe I just need to change the file permissions on that directory.

    Okay, I did that and was able to build some pieces like catbind and payload but I get huge numbers of warnings and a few errors if I try to build blackbox. I guess this is going to take longer than I have time for at the moment. Who did you say was able to build under OS X? Maybe he/she will be able to offer some advice. I do know that the Xcode compiler from Apple has gotten a lot pickier recently. I had to turn off some warnings to get propgcc to compile since its build system is setup to treat warnings as errors. Maybe something similar will have to be done with Catalina.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-12 19:35
    RossH wrote: »
    Then I think there should be enough memory for the game to work properly. Mind you, I've only played it on the RamBlade - the C3 may not have enough SRAM.

    Ross.
    That could be a problem if the program requires more than 64k of SRAM. However, it's also possible that there is a bug in the version of propgcc I'm using. I'm using the default branch which now includes a completely different interface to external memory drivers. This could be a good test of that! I'll have to try it with the release_1_0 branch that Steve uses with SimpleIDE to see if that has similar behavior.

    Anyway, I'll try again to get Catalina built in a few days after my concert week is over. Thanks for your advice!
  • RossHRossH Posts: 5,462
    edited 2013-12-12 20:27
    David Betz wrote: »
    I downloaded the 64 bit Linux archive and it contains a "source" directory but I get a permissions error if I try to open it. Maybe I just need to change the file permissions on that directory.

    Okay, I did that and was able to build some pieces like catbind and payload but I get huge numbers of warnings and a few errors if I try to build blackbox. I guess this is going to take longer than I have time for at the moment. Who did you say was able to build under OS X? Maybe he/she will be able to offer some advice. I do know that the Xcode compiler from Apple has gotten a lot pickier recently. I had to turn off some warnings to get propgcc to compile since its build system is setup to treat warnings as errors. Maybe something similar will have to be done with Catalina.

    Hi David,

    I compiled it under an old Hackintosh virtual of OSX, and didn't get any unusual warnings. I'll did out the virtual and find out what version of gcc I used.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-13 06:59
    RossH wrote: »
    Hi David,

    I compiled it under an old Hackintosh virtual of OSX, and didn't get any unusual warnings. I'll did out the virtual and find out what version of gcc I used.
    I'm not surprised. These aggressive warnings seem to have appeared in the most recent release of Xcode. There may be a way to turn them off and revert back to the old warning levels but I haven't found it yet. To get propgcc to compile I had to disable the following warnings:
    export CFLAGS="\
    -Wno-string-plus-int \
    -Wno-deprecated-declarations \
    -Wno-empty-body \
    -Wno-self-assign \
    -Wno-sometimes-uninitialized"
    
    In addition, I had to fix a bug in the GCC source code that was causing a warning but was actually incorrect in the standard GCC code.
  • RossHRossH Posts: 5,462
    edited 2013-12-13 17:23
    Then I think there should be enough memory for the game to work properly. Mind you, I've only played it on the RamBlade - the C3 may not have enough SRAM.

    Hi David,

    I've now played Chimaera on the C3, and it seems to run fine when compiled under Catalina - I think you must have a propgcc problem.

    While playing, I noticed that the code that is supposed to set up the random number generator is not working properly (it tries to use the system clock, which on a Propeller without a real-time clock is always going to return the same result). So I modified the code for both chimaera.c and sumeria.c to use the system counter instead. I've added the modified code to the Catalina_3.12_Options.zip file attached to the second post in this thread.

    Ross.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-13 19:35
    RossH wrote: »
    Hi David,

    I've now played Chimaera on the C3, and it seems to run fine when compiled under Catalina - I think you must have a propgcc problem.

    While playing, I noticed that the code that is supposed to set up the random number generator is not working properly (it tries to use the system clock, which on a Propeller without a real-time clock is always going to return the same result). So I modified the code for both chimaera.c and sumeria.c to use the system counter instead. I've added the modified code to the Catalina_3.12_Options.zip file attached to the second post in this thread.

    Ross.
    Thanks Ross! I'll use your updated version when I get back to this. First I'd like to try it with the released version of propgcc to see if the problem I'm seeing has to do with the new memory drivers that are in the default branch on Google Code. By the way, the program seems to work mostly okay. I was able to move around from location to location and pick things up. I only got one response that didn't make sense to me and suggested there might be a problem.

    What memory model do you use with Catalina to run on the C3? Do you use both flash and the SRAM at the same time?
  • RossHRossH Posts: 5,462
    edited 2013-12-13 20:00
    David Betz wrote: »
    I only got one response that didn't make sense to me and suggested there might be a problem.

    That could indicate a memory problem, but there could be a problem with the game itself - I didn't write it, so I can't guarantee it doesn't have any bugs.
    David Betz wrote: »
    What memory model do you use with Catalina to run on the C3? Do you use both flash and the SRAM at the same time?

    I used the LARGE memory model with the FLASH option. In that case, Catalina will use both the SRAM and the FLASH.

    Ross.
  • David BetzDavid Betz Posts: 14,516
    edited 2013-12-13 20:37
    RossH wrote: »
    That could indicate a memory problem, but there could be a problem with the game itself - I didn't write it, so I can't guarantee it doesn't have any bugs.
    FYI, I just ran chimaera compiled with the released version of propgcc and it doesn't show the odd response that I got with the version of propgcc that uses the new memory drivers. Looks like I have a bug to fix! Thanks for providing me with a program that provokes the bug! :-)
Sign In or Register to comment.