Catalina 4.0 is now available

RossHRossH Posts: 4,494
edited 2019-10-31 - 10:19:53 in Propeller 2
Catalina 4.0 is now available on Sourceforge - https://sourceforge.net/projects/catalina-c/

Catalina 4.0 is the latest release of Catalina, supporting both the Propeller 1 and the Propeller 2. It replaces all previous releases and is validated on the Propeller 2 P2_EVAL board for all memory model, library, optimization level and floating point combinations. It is also validated on many Propeller 1 platforms.

This release adds a new library for the 2 Port Serial plugin on the Propeller 2, XEPROM support (i.e. execute XMM code from EEPROM) for the Propeller 1, and several significant bug fixes for the Propeller 1 and Propeller 2. It also improves the Code::Blocks support for the Propeller 2, which had been lagging behind the command line support. However, the main purpose of this release is that it is the first release for the Propeller 2 that also updates the documentation. All documents have been updated to reflect the Propeller 2 support, and there is a new Catalina Reference Manual specific to the Propeller 2.

This release is intended to provide a baseline release for further incremental updates, which will mainly now concentrate on adding new plugins to Catalina's Propeller 2 support, until Catalina on the Propeller 2 has as rich a range of plugins as Catalina already has on the Propeller 1.

Catalina 4.0 includes both Windows and Linux releases.

This release will be supported for both the Propeller 1 and the Propeller 2.

Here is the README.WhatsNew
Catalina release 4.0 is a full release. You can install this over an 
existing version of Catalina, but it is recommended that you instead uninstall 
any previous Catalina release before installing, or install this release to a 
different location. 

If you are installing under Linux, you should execute the following command 
to set your permissions correctly after installing (this command is a script 
in the Catalina bin directory):

   Set_Linux_Permissions

The following changes have been made since the previous release of Catalina. 
If you have not used a previous release of Catalina, you can ignore the
following list:

RELEASE 4.0

1. Updated Code::Blocks to include the XEPROM option. Now you can select
   XEPROM in the Catalina Project Wizard (by selecting the menu entry for
   File->New->Project and then selecting "Catalina Project") and you can
   also use 2 new tools for loading XEPROM projects (by selecting the 
   Tools menu entry)

2. Added a new named platform to Catalina_platforms.inc. This is the P2_CUSTOM
   platform, which by default is identical to the P2_EVAL platform, but which
   is intended to be customized for new Propeller 2 boards.

3. Because the support for the Propeller 2 is (at least at present!) much 
   simpler than that for the Propeller 1 (e.g. it does not require XMM support
   to run large C programs, and complex loaders to load them), the Catalina 
   Reference Manual now has two versions - one specifically for the original
   Propeller 1 (which removes most of the details that are relevant only to 
   the Propeller 2), and another for the Propeller 2 (that removes most of the
   details that are only relevant to the Propeller 1). All other documents
   have also been updated to reflect the functionality now available in 
   Catalina 4.0.

4. Moved the inline PASM demos to the spinc folder, and updated the README.TXT
   in that folder. Also added the program "test_inline_pasm.c" as a project in 
   the Code::Blocks "Spinc Demos" workspace.

5. Added tty_txcheck() functions to the tty and tty256 libraries, to match the
   s4_txcheck() function recently added to the s4 library. These functions all
   return the number of spaces left in the transmit buffer. The important
   point is that if they ever return 0, it means a call to the corresponding
   tx function may block.

6. Fixed a bug that affected Propeller 1 XMM programs that used the cache. 
   Typically, it meant that a program would work with a smaller cache size 
   (e.g 1K, 2K or 4K) but not with a larger cache size (e.g. 2K, 4K or 8K)
   even though there was enough Hub RAM to accommodate the larger cache.

7. The batch files p2_asm.bat and p2_asm have been modified to include the
   -v33 flag to the p2asm assembler. This enables the differences in the 
   instructions set in the latest (and hopefully last) version of the 
   Propeller 2 chip used in the rev B version of the P2_EVAL board. Note 
   that Catalina itself does not use the different instruction sets, but 
   some plugins or user programs may do so. If it is ever necessary to 
   revert to the previous instruction set (e.g. to run a program on a revA 
   version of the P2_EVAL board), these files must be edited to remove this 
   flag. 

8. Fixed a bug where the plugin type of the kernel cog was being overwritten 
   during registry initialization, so the cog would appear to be unused.

9. Added the 2 port serial driver as a plugin, and a library (libserial2) 
   to use it. The 2 port serial driver is only supported on the Propeller 2.
   The functions in the 2 port serial library are similar to the existing 
   libtty, libtty256 and libserial4 functions. Catalina will load the 2 port
   serial plugin automatically if you compile your program with the -lserial2
   option. Note that you should not use the 2 port serial driver with the 
   TTY HMI option - they will conflict. This means that when compiling with 
   -lserial2 you should also either specify -C NO_HMI, or use another 
   supported HMI option. For instance:
   
      catalina -p2 test_serial2.c -lci -lserial2 -C NO_HMI

10. Fixed a problem with the Code::Blocks "Download to Hub Ram and Interact at
    230400 baud" tool, which was not setting the directory correctly, and so
    would sometimes not find the file to download. After installing, you may
    need to run the "Reset_CodeBlocks" script (found in the Catalina bin 
    directory).

11. Made some small changes to the test_dosfs.c program in the "validation"
    subdirectory, to allow more variants of the program to run on P1 platforms
    with very limited XMM SRAM (such as the C3). On such platforms, this test
    program may still fail to run when compiled in LARGE mode unless the FLASH
    option is also used, because 64kb of XMM SRAM is simply insufficient in 
    some cases (e.g. if the program is compiled with the libx library variant).
    However, this is not a Catalina failiure, and the test program now runs 
    correctly in most cases.

Catalina - a FREE ANSI C compiler for the Propeller.
Download it from http://catalina-c.sourceforge.net/

Comments

  • JonnyMacJonnyMac Posts: 6,270
    edited 2019-10-31 - 15:49:45
    The version of Code::Blocks that gets installed with Catalina is 13.12, while the latest version of Code:Blocks is 17.12. Since the former gets installed in the Catalina path, it seems unknown to the rest of the system except through Catalina CodeBlocks in the Catalina group. I did a normal install of 17.12 and there seems to be no conflict. That said, 17.12 shows user tools that correspond to the Propeller, though the New Projects pane does not include Catalina.
    Jon McPhalen
    Hollywood, CA
    It's Jon or JonnyMac -- please do not call me Jonny.
  • JonnyMac wrote: »
    The version of Code::Blocks that gets installed with Catalina is 13.12, while the latest version of Code:Blocks is 17.12.

    Odd! I must have packaged the wrong version :( It should be 17.12.

    I'll investigate.
    Catalina - a FREE ANSI C compiler for the Propeller.
    Download it from http://catalina-c.sourceforge.net/
  • RossHRossH Posts: 4,494
    edited 2019-10-31 - 22:44:06
    JonnyMac wrote: »
    The version of Code::Blocks that gets installed with Catalina is 13.12, while the latest version of Code:Blocks is 17.12. Since the former gets installed in the Catalina path, it seems unknown to the rest of the system except through Catalina CodeBlocks in the Catalina group. I did a normal install of 17.12 and there seems to be no conflict. That said, 17.12 shows user tools that correspond to the Propeller, though the New Projects pane does not include Catalina.

    Hello Jon

    I've investigated, and the version of codeblocks installed by the Catalina 4.0 installer is definitely 17.12.

    And yes, Catalina installs its own version of Code::Blocks - this should not interfere with any other version you already already have installed, except possibly for any settings saved in your local "default.conf" file (such as the Tools menu entries). However, those other versions of codeblocks will not include the Catalina-specific extensions, and it probably means that if you just start codeblocks from the command line, you may be getting the wrong version (this will depend on your path settings). You must start Catalina's version using the Start Menu, which knows where it is installed.

    If doing so is starting version 13.12 of Code::Blocks, it could be that you installed Catalina 4.0 over an older version, and for some reason it did not update the codeblocks files. If this is the case, please try completely uninstalling the previous version of Catalina before installing version 4.0.

    Let me know how you go.

    Ross.
    Catalina - a FREE ANSI C compiler for the Propeller.
    Download it from http://catalina-c.sourceforge.net/
  • May have found the problem: The big green download button at this link

    -- https://sourceforge.net/projects/catalina-c/

    ... is connected to version 3.13.2. I missed this when I downloaded. I had to manually navigate to Files/Releases/4.0 to get the correct installer.

    Just a note: Windows defender was not happy. I installed anyway and my very-high horsepower machine went full blast for a while. Everything seems now. I ran from Start menu and everything is in place.
    Jon McPhalen
    Hollywood, CA
    It's Jon or JonnyMac -- please do not call me Jonny.
  • JonnyMac wrote: »
    May have found the problem: The big green download button at this link

    -- https://sourceforge.net/projects/catalina-c/

    ... is connected to version 3.13.2. I missed this when I downloaded. I had to manually navigate to Files/Releases/4.0 to get the correct installer.

    Ah! I have no control over that. There must be a delay before it switches to the latest release. I will delete some of the older releases - this may help, and they are very out of date anyway.
    Just a note: Windows defender was not happy. I installed anyway and my very-high horsepower machine went full blast for a while. Everything seems now. I ran from Start menu and everything is in place.

    Odd. I run Windows and it installs without comment. I did see this once before (months ago!) but it seemed to go away again. There is a process you can use to tell Microsoft this is a false detection, but I can't remember what it is. I will try and look it up.

    What does Windows Defender say on your machine? That may help me identify which file is causing the problem.

    Ross.
    Catalina - a FREE ANSI C compiler for the Propeller.
    Download it from http://catalina-c.sourceforge.net/
  • I just reloaded the page (https://sourceforge.net/projects/catalina-c/) and the big Green download button now correctly points to the latest release.

    Next time, I will try and remember to wait for this before announcing it :(

    Ross.
    Catalina - a FREE ANSI C compiler for the Propeller.
    Download it from http://catalina-c.sourceforge.net/
  • First errata ... :(

    The Catalina 4.0 Linux release contains an old version of the Catalina "New Project" wizard script. Easy to fix - just overwrite the existing version with the one attached. NOTE: the Windows installer installs the correct version.

    If you installed codeblocks to the recommended location under Linux, the original file will be found in:
    /opt/codeblocks-17.12/share/codeblocks/templates/wizard/catalina/wizard.script
    

    The new version adds XEPROM support (to the wizard only - XEPROM support can still be specified on the command-line, or manually selected within Code::Blocks).

    Ross.
    Catalina - a FREE ANSI C compiler for the Propeller.
    Download it from http://catalina-c.sourceforge.net/
  • Another (fairly trivial) errata ...

    I accidentally left the pin definitions for the second serial port on the P2_EVAL board set to 50 & 52 (which I test with a PropPlug) instead of 56 and 57 (which are the pins intended to be used by the 2nd USB port, if you have it enabled). This might cause some head scratching because the second serial port would not work as expected "out of the box" with the 2 port serial plugin.

    This is fixed in the attached file, which applies to both Windows and Linux (I have left the pins set to 50 & 52 in the P2_CUSTOM platform).

    Also, I have now added CUSTOM and P2_CUSTOM as synonyms for the configuration intended to be modified to support other boards. This is because the many of the batch files now set the -p2 flag automatically if the platform name starts with P2 (e.g. P2_EVAL, P2D2), whereas in other cases (e.g. in Code::Blocks) it is still assumed this platform will just be called CUSTOM. So now you can use either one.

    Just copy the attached file over the existing version in your catalina/target_p2 directory.

    Ross.
    Catalina - a FREE ANSI C compiler for the Propeller.
    Download it from http://catalina-c.sourceforge.net/
  • OK @RossH,

    I have to say upfront that I am born and raised to be a COBOL programmer and I have never liked C. I was threatened to use the net framework and C# when migrating things from big iron to PC hardware, but - hmm- was able to avoid C, mostly in my life.

    But besides Mainframes I like those micro controllers. Just for fun. Since you stated at some time that you used my 2-port driver serial, I sort of HAD to install Catalina. Not that I need it but, gosh a SERIOUS product for the Propellers and my 2-port-driver used? I still am to shy to ask @ersmith to put that into flexgui and you are using it. COOL.

    So I HAD to install it.

    I am seriously impressed by Catalina and the Code Blocks integration. Really nice done. Just WOW.

    I never used Catalina on the P1, I was just fine with PASM and SPIN, but I think I missed out somehow there. You even support my Ramblade from @Cluso99, incredible!

    so a big THANK YOU for doing that, even if I do not need C but, hell YES you did a good job and someone has to say that.

    Enjoy!

    Mike
    I am just another Code Monkey.
    A determined coder can write COBOL programs in any language. -- Author unknown.
    Press any key to continue, any other key to quit

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this post are to be interpreted as described in RFC 2119.
  • Thanks, Mike.

    I may make a C programmer out of you yet! :)
    Catalina - a FREE ANSI C compiler for the Propeller.
    Download it from http://catalina-c.sourceforge.net/
  • msrobotsmsrobots Posts: 2,936
    edited 2019-11-03 - 07:44:20
    no, the OBOL is missing from that C.

    But if you would be able to add some POSIX stuff I might be able to run GnuCOBOL, it does transpile COBOL to C but does even have a hard time to run on Windows without mingw or a virtual whatever.

    Anyways, VERY cool what you did.

    And, YES I did wrote a small C program just to test Catalina. I sort of had to.

    guess what, it even worked on P1 and P2 eval A.

    Mike
    I am just another Code Monkey.
    A determined coder can write COBOL programs in any language. -- Author unknown.
    Press any key to continue, any other key to quit

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this post are to be interpreted as described in RFC 2119.
  • msrobots wrote: »
    But if you would be able to add some POSIX stuff I might be able to run GnuCOBOL, it does transpile COBOL to C ...
    No way!

    I really, really, REALLY don't want to ever see the C code that results from that process! :)

    Ross.

    Catalina - a FREE ANSI C compiler for the Propeller.
    Download it from http://catalina-c.sourceforge.net/
  • me neither, even if it does not look too bad on a first glance. The basic idea behind this is to look at the beautiful COBOL code and let the compiler look at the C code.

    I do really like the GnuCobol project, but it is quite Linux centric, and I am not.

    Enjoy!

    Mike
    I am just another Code Monkey.
    A determined coder can write COBOL programs in any language. -- Author unknown.
    Press any key to continue, any other key to quit

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this post are to be interpreted as described in RFC 2119.
  • I'v only just noticed (while messing about with something else) that the blink.c program (included in the Catalina demos folder) makes a very pretty test program for the 64006-ES (c) accessory board (i.e. the LED MATRIX) - so I've updated it slightly to make the base pin more easily configurable.

    A compiled version using base pin 56 is attached (this is the default because it also flashes the LEDs on the P2_EVAL board).

    Ross.
    Catalina - a FREE ANSI C compiler for the Propeller.
    Download it from http://catalina-c.sourceforge.net/
Sign In or Register to comment.