Catalina 3.12
RossH
Posts: 5,462
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:
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.
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
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:
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.
Comments
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.
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.
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.
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.
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.
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.
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:
Edit: Never mind. I found them. The Chimaera game is fun. You can compile it for the C3 using PropGCC with the following command:
You can run it on the C3 with this command:
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.
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.
I don't know what "xmm-split" means, but with Catalina you just compile it as a LARGE program. For example:
Ross.
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.
Where do I get the source code for Catalina 3.12? I looked on SourceForge and could only find binary distributions.
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.
Where does it put the stack?
Ross.
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.
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.
Anyway, I'll try again to get Catalina built in a few days after my concert week is over. Thanks for your advice!
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.
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.
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?
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.
I used the LARGE memory model with the FLASH option. In that case, Catalina will use both the SRAM and the FLASH.
Ross.