Catalina 3.2
RossH
Posts: 5,471
UPDATE: Catalina 3.3 has been released. See here.
All,
Release 3.2 of Catalina is now available on SourceForge (here!). Presently, only the Windows version is available. I will post the Linux versions (32 and 64 bit) in the next few days.
Release 3.2 is a full release of Catalina. It contains various new features, improvements and bug fixes. See the file README.WhatsNew (attached) for more details.
The main change in 3.2 is that the Windows "one touch" installer that installs both Catalina and Code::Blocks is now official! This will now be the only way Catalina is released on Windows ... and it makes installing both Catalina and Code::Blocks an absolute breeze!
Also, with this release Catalina is now fully integrated into Code::Blocks. There is now no need to ever resort to using the Catalina command line again (although it will of course remain available). Everything can now be done from within Code::Blocks, including building all utilities and demo programs (even Catalyst). Even confirmed IDE skeptics (like me) might change their minds once they see how easy it is to write, compile, download and debug C programs on the Propeller using Catalina and Code::Blocks!
New Code::Blocks workspaces and project files are provided for all the non-trivial Catalina demo programs, including the Catalyst demo programs such as the vi text editor, the lua scripting language, the jzip Infocom game interpreter, Super Star Trek etc.
Also, Catalina and Code::Blocks now form a completely stand-alone development environment for Propeller C programs! There is no need to install any other software (such as MinGW or MSYS or make) to build or run any C programs on the Propeller. While the existing build_all scripts and makefiles which used to be used to build some of the more complex demos remain, they are no longer required since everything can now be done using the Code::Blocks internal build system - which is much simpler than make to use (so simple that most people may never even realize they are using it!).
Here is a brief overview of the other significant changes:
All,
Release 3.2 of Catalina is now available on SourceForge (here!). Presently, only the Windows version is available. I will post the Linux versions (32 and 64 bit) in the next few days.
Release 3.2 is a full release of Catalina. It contains various new features, improvements and bug fixes. See the file README.WhatsNew (attached) for more details.
The main change in 3.2 is that the Windows "one touch" installer that installs both Catalina and Code::Blocks is now official! This will now be the only way Catalina is released on Windows ... and it makes installing both Catalina and Code::Blocks an absolute breeze!
Also, with this release Catalina is now fully integrated into Code::Blocks. There is now no need to ever resort to using the Catalina command line again (although it will of course remain available). Everything can now be done from within Code::Blocks, including building all utilities and demo programs (even Catalyst). Even confirmed IDE skeptics (like me) might change their minds once they see how easy it is to write, compile, download and debug C programs on the Propeller using Catalina and Code::Blocks!
New Code::Blocks workspaces and project files are provided for all the non-trivial Catalina demo programs, including the Catalyst demo programs such as the vi text editor, the lua scripting language, the jzip Infocom game interpreter, Super Star Trek etc.
Also, Catalina and Code::Blocks now form a completely stand-alone development environment for Propeller C programs! There is no need to install any other software (such as MinGW or MSYS or make) to build or run any C programs on the Propeller. While the existing build_all scripts and makefiles which used to be used to build some of the more complex demos remain, they are no longer required since everything can now be done using the Code::Blocks internal build system - which is much simpler than make to use (so simple that most people may never even realize they are using it!).
Here is a brief overview of the other significant changes:
- Multi-cog programs and combined C/Spin programs are much simpler to create, since all the details have now been rolled up into two new library functions. In addition to the basic _coginit function, and the various thread functions (which were already fully integrated into the thread library) there are two new ways to start programs in another cog:
- _coginit_C - start a C void function in a dynamic kernel cog
- _coginit_Spin - start a Spin program in a spin interpreter cog
- The Payload loader now auto-detects all the necessary ports automatically - even on the Hydra and Hybrid platforms where a special serial mouse cable is required to load programs into XMM RAM. It wasn't documented at the time, but a previous Catalina release (3.0.3) also added the capability for BlackBox to detect the debug port automatically - so now for most users there is never any need to mess about figuring out what serial ports to use!
- The Windows installer now creates links to all Catalina documents and Code::Blocks work spaces in the Windows Start menu - so now all Catalina documents and demo programs are available at the click of a mouse!
Comments
Thanks
Ray
All,
Something I keep tripping up on ... Code::Blocks does not enable autocompletion for C library functions unless you explicitly set the include path. To do this, open Code::Blocks and select the menu item Settings -> Compiler and Debugger ... Then, in the dialog box that opens, make sure the selected compiler is the Catalina C Compiler, select the Search Directories tab, and add an entry for %LCCDIR%\include, as shown below:
You only need to do this once. Next time you open a project, the auto-completion should include all C library functions. Very convenient!
Ross.
Thank you,
T o n y
Today I started to see if I can compile anything --- And have problems FIND Catalina compiler on my installation.
Look on attached picture
Ps before I only tested if Installer install files but not tested functions (sorry)
Hi Sapieha,
Can you tell me what version of Code::Blocks that is? From within Code::Blocks, select Help->About... Here is what I see:
I think you must be running a different version of Code::Blocks, since your compiler plugin does not even seem to contain the Catalina C compiler. Perhaps you have another version of Code::Blocks installed as well? Catalina will leave that version alone if you have - you have to start the one installed in the Catalina program group in the Start menu (or alternatively install the new Compiler plugin manually in your existing Code::Blocks installation).
Also, you can try Help->Plugins->Compiler ... Here is what I see:
Thanks.
With You question I found problem.
In Catalina DIR I have 2 versions of CodeBlocks.
I have NOT deleted old files in this DIR before installing Catalina by Installer - And Now in Catalina ROOT I have one CodeBloks that are older and in Catalina\Bin\CodeBloks other one that is correct and find Catalina compiler correctly.
Hi Sapieha,
You can either delete the old version of Code::Blocks, or just ignore it - it won't cause any problems having two versions. However, if you have nothing in the Catalina directory you want to save, I'd recommend simply deleting the whole directory and then installing the new version again.
Ross.
In the docs, I did not find a listing of built in Propeller functions, i.e. pause, high, low, ..., etc, am I to assume those functions have to be built? I also noticed that you do not have a selection for the Gadget Gangster USB board, so I chose hybrid, should I have chosen something else? At the moment I am using the GG board that has the built in RTC module, and an SD card, I guess I am expecting a bit of trouble when I try to access the RTC, and SD card.
So far the experience has been very positive, I expect to see some positive outcomes out of this software, in other words I have not run into any major stumbling blocks. Back to some programming in C...
Ray
Hi Ray,
By default, the output will be displayed on the TV output. However, it is likely that the HYBRID board you chose does not have the same pinouts as the Gadget Gangster board. I don't know anything about that particular board (I don't own one) - but if you can point me to some documents about it (all I really need is its clock speed and pin configuration), then I willl post you configuration files suitable for it. Or you may find it is equivalent to one of the other supported boards (perhaps the DEMO board?)
Or you can configure the CUSTOM platform yourself. The two files you may need to modify (Custom_DEF.inc and Custom_HMI.inc) are in the target directory - just open these files in Code::Blocks (or in any text editor) and it should all be self-explanatory. Actually, you can ignore the Custom_HMI.inc file, since by default this file just enables all possible HMI options - you only ever need to modify this if you have some unusual HMI drivers, or need to disable some of them.
So really you only need to modify the Custom_DEF.inc file (the section you need to modify is quite small - I have attached it below). Then you should choose the CUSTOM board as your Propeller platform and recompile your project. If the Gadget Gangster board has no TV output at all, just leave the pin settings at -1, but change the Project->Build Options to use the VGA or PC HMI driver. All boards should support at least the PC option - the only problem is that by the time you open the serial terminal emulator, the standard "hello world" program will have already have sent it's message - in that case (just to see that the program works) change it to loop forever - e.g:
You will find equivalents of all the Propeller functions described in the documentation. For example, for the keyboard, mouse and screen functions (e.g. k_read, m_button, t_print) see the Catalina Reference Manual starting around page 28. For cog functions (e.g. ina, dira, waitcnt etc) see page 42. You don't need to build any of these library functions.
Ross.
The standard Gadget Gangster USB board has a built in SD, which is accessible through pins p0,p1,p2, p3, and I had no trouble accessing it using fsrw. Other than that, it is sort like a proto board, which you also do not list as a selection. The actual board that I am using, is a discontinued GG board, that also has an RTC attached, which uses p28, and p29 if I am not mistaken. The GG USB board is being sold, and backed by Parallax, so you may want to include that as a choice.
Now to figure out how to display output to a terminal screen ...
Ray
Top effort.
This is what ICCV7 should have been and what the Propeller GCC effort should aspire to be.
Cheers.
Ray
Congratulations Ross, great work as always!
Works great on my C3 and 32 bit Vista laptop!! Nice and easy install also....
Hi Ray
Good point about not specifying that the TV output is the default on all platforms (except those that don't have it, of course). This is mentioned in a few places in the documentation, but I should probably add it to the QuickStart guide as well.
What do you mean by "terminal screen"? Do you mean VGA? Catalina supports VGA output on most boards (e.g. on the C3). In Project->Build Options, specify the C3 as your platform and select the VGA HMI option and everything should work. If not, please post me a copy of the build log and I will investigate.
There are so many Propeller boards out there that I cannot possibly support them all - hence the CUSTOM option. You don't need to use the command line to set up that option - you can edit the Custom_DEF.inc file from within Code::Blocks. This is no different to what you have to do in Spin - you generally need to set up the pin configurations for various Spin drivers in each program - but in Catalina you only ever have to do it once for all drivers and all programs.
Ross.
Hi Rayman,
Most of the games are so large they require XMM RAM (from memory. "othello" is the only one that doesn't).
Fortunately, Catalina will soon support both your SuperQuad and RamPage memory boards! The SuperQuad should support the SMALL memory mode, and the RamPage should support both the SMALL and LARGE memory models.
Ross.
Thanks, Ken. I don't actually have a copy of Vista, so this is good to hear.
Ross.
Now I can get even more dangerous with 'C"
BTW: Can those XMM games also run from SD card?
It always makes me chuckle when a "hello world" uses 3/4 of the memory. Years ago I tried a Kiel C compiler for a 8052, and dismissed it because it used 90% of the Demo limit on a simular trial program. I should have stuck with it a bit more and so possibly be better at another language.
I too gravitate to IDE fronted programs, out of ignorance and indolence on my part, so that is another case of past learnt opertunites lost.
Hi Toby,
That's why there is also "hello_world_1, 2 and 3". A couple of simple changes reduces the size of hello world down to just a couple of hundred bytes - the initial version (which is the traditional C version) occupies so much memory because it pulls in most of the C standard library along with it - including all the floating point support!
The Catalina Reference Guide also goes through this in detail.
Still, maybe I should use another program as my example
Ross.
Hi Rayman,
No, I can't use SD card as XMM. Although this is technically possible using the caching driver, the performance would be slooooooow!
EDIT: Actuallly, just re-read your question - yes, they can be LOADED and RUN from the SD card, provided you have XMM RAM installed for them to execute in!
Ross.
Yes I now realize that. It just amused me that if the target has 8KB flash,or 32KB RAM, the compiler seemes to use all that is available.
After I have to get my head around a "Cisco course" I'll get into this "C".
Thanks for all your hard work on our behalf.
Alan
I have decided to reduce the price of the Catalina Optimizer to US$20 - the main reason being that this is the most common amount people seem to choose for a donation to Catalina, and I feel I should reward those generous contributors with something!
For those who have already paid $25, don't feel miffed - as compensation I will be extending your support for an extra year. I have not had much time to work on the Optimizer recently, but I expect this extension to have real value - now that GCC appears to finally be gaining some traction, Catalina will have to sharpen it's propeller blades in response!
Expect some improvements in both the standard code generator and the optimizer!
Ross.
I'm looking around for info on Star Trek, VI and JZIP... I found the startrek.c file. Is there no "project" file for these?
Maybe because they're just one file?
I just tried "build" on startrek.c, but nothing happens. Guess I'll have to do something crazy like read the manual...
BTW: Do these programs expect an 80-column display?
Are you outputting the display over serial port in these examples?
Thanks.
I look forward to seeing what you do to add cache for the flashpoint boards. It is very easy for me to add new cache platform drivers the original cache model. Your cache driver doesn't seem to follow that model exactly. Catalina drivers have inter-dependencies and access methods that I don't understand just yet. I could just send you hardware, but am not really sure why I should need to do that. Maybe your update will help clear the fog.
Thanks, Martin!
Optimizer will be sent when I get home tonight.
Ross.