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

Catalina 3.1

RossHRossH Posts: 5,462
edited 2012-12-03 22:26 in Propeller 1
UPDATE: Catalina 3.2 has now been released! For details, see this thread.

Release 3.1 of Catalina is now available on SourceForge (here). Linux and Windows versions are both available. The win32 version works fine on both 32 and 64 bit versions of Windows, but there are now separate releases for 64 and 32 bit versions of Linux (so Linux 64 bit users no longer need to compile Catalina from source!).

Release 3.1 is a full release of Catalina. It contains new features, improvements and bug fixes. See the file README.WhatsNew (attached) for more details. One thing to note is that this release eliminates many of the redundant target files of previous releases, and also moves and renames some of the directories of previous releases. It is therefore recommended that you either remove any old versions of Catalina before installing release 3.1, or install release 3.1 to a different location.

There are only a few functional changes to Catalina in this release, since most of the functional changes were in release 3.0.4. The main change in 3.1 is a massive clean up and restructuring of the various "target" directories. It is now much easier to customize Catalina. Everything from adding a new platform, to adding a new plugin, to adding a new target, to adding an entirely new target package has been made easier, and also the documentation in this area has been brought up to date and expanded. Here is a brief overview of the changes:
  • Cleaned up the HMI plugins - there is now only one plugin for each screen type, not three!
  • Removed the Reserve Cog functionality - it was too complex, and is no longer needed.
  • Cleaned up the default Spin target files - they are now all very simple (and uniform) in structure.
  • Cleaned up the use of "include" files - these sometimes made things more confusing, not less!
  • Adopted a uniform method of setting up and starting plugins from all Spin target files - each plugin now contains a very simple Setup method and a Start method.
  • Extracted out the configurable parts of each supported platform - now each one has only two files (or three if the platform has XMM RAM available):
    • <platform>_DEF.inc - Pin definitions and clock configuration.
    • <platform>_HMI.inc - Defines the supported HMI variants (VGA, TV, PC etc)
    • <platform>_XMM.inc - Defines the XMM API for the platform (if XMM is available)
  • Added a new file (Extras.spin) which is included by all nine target files - this allows a new plugin to be trivially added to all targets by just adding a few lines to a single file. A fully worked example (a new gamepad plugin) is included. This also makes it much easier to associate command line symbols to plugins (e.g. GAMEPAD for the gamepad plugin)
  • Added a new "basic" target package. There are now three different target packages:
    • target - the standard target package. Supports all platforms, all plugins, all memory models, and all load options. Basically, it supports everything!
    • basic - a smaller target package. Supports only a single platform (which you must configure) and the minimum set of plugins required for ANSI C compliance (and which are only loaded if you actually use them). It supports all memory models and load options, but it doesn't include some of the complex and esoteric features that most people won't ever need (e.g. POD debugger support, proxy drivers, multiple HMI options). This makes it a good basis to start from if you have a specific platform or application to support. It's much easier to add the few extra things you may need to this package than to remove all the things you don't need from the standard package. For deeply embedded applications, you don't need to do anything more than configure your own pin definitions and clock configuration.
    • simple - renamed from the old "custom" target package (to avoid confusion with the CUSTOM platform, which is something completely different). This package is mainly used to illustrate the process of adding a new plugin, although it is fully functional target package consisting of only a few files, which would be perfectly adequate for a deeply embedded application that could run entirely within the 32kb Hub RAM of a standard Propeller. This package supports only one platform (which you must configure) one plugin, one memory model and one load option.
  • It is now possible to use standard Spin OBEX objects as Catalina plugins. There are now two different ways you can re-use existing SPIN/PASM objects in Catalina. Both are documented in the Catalina Reference manual, and fully worked examples of both are included:
    • as unmodified Spin/PASM objects (e.g. the"tiny HMI" example in demos\spinc, which uses two drivers - keyboard and screen - taken straight from the OBEX in place of the usual Catalina HMI plugin). There are new Spin functions (in Catalina_Common.spin) specifically designed to support this approach, and simplify interaction with the Catalina registry from Spin.
    • as modified PASM-only objects (e.g. the new plugin Catalina_Gamepad.spin in the target directory)
This version of Catalina marks a milestone. From now on, my main aim is to make Catalina easier to use for Spin programmers wishing to learn C, but without sacrificing any of the rich functionality that Catalina offers professional C programmers.

The next release of Catalina will concentrate in simplifying the install process, which is still a little daunting for novices. My aim is to make it a "one touch" install process, and also make it possible to use Catalina entirely from within Code::Blocks, so you will never need to use the command line again (unless you want to, of course!). All the pieces are there (compilers, debuggers, loaders, utilities) and are not going to change - they just need to be better integrated.

Ross.
«13

Comments

  • jazzedjazzed Posts: 11,803
    edited 2011-07-31 07:42
    This sounds great Ross! Thanks.
  • KMyersKMyers Posts: 433
    edited 2011-07-31 09:49
    Good Work Ross!
  • Cluso99Cluso99 Posts: 18,069
    edited 2011-07-31 18:04
    Great work Ross.
    May I suggest you also place a link in your first post to the Catalina 3.0 thread.
  • RossHRossH Posts: 5,462
    edited 2011-07-31 18:59
    Cluso99 wrote: »
    Great work Ross.
    May I suggest you also place a link in your first post to the Catalina 3.0 thread.

    Ah yes! forgot that - thanks.

    Ross.
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2011-08-01 15:30
    Ross, these announcements are like an early Christmas!
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-08-01 15:55
    Excellent work Ross. You are racing ahead of me, but I have some boards coming which ought to greatly simplify the hardware side of running large XMM C programs.
  • RossHRossH Posts: 5,462
    edited 2011-08-02 03:54
    All,

    I have just emailed version 3.1 of the Catalina Optimizer to those who have purchased this optional component (or donated money to Catalina). If you have not received your update but believe you are eligible, please let me know.

    Version 3.1 of the Optimizer contains a minor bug fix to the 'inlining' capability, which was ignoring some functions that were able to be inlined. On some programs, this makes a large difference in code size - for example, the Optimizer now saves 42% of the code space on the simple Catalina 'test_leds.c' demo program. On most other programs it will not do that well, but code size savings (and speed improvements) of 10%-20% are typical.

    Ross.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-08-03 04:51
    Hi Ross,

    I'm in the process of porting code from VGA to TV. This is my command line
    catalina -lc -D DEMO -D HIRES_TV NEW.C
    

    and the program is
    #include <stdio.h>
    
    
    void main ()
    {
           printf("Hello, World!\n");
           while (1);                                                    // Prop reboots on exit from main()!
    }
    

    I'm not getting anything on the display, and I suspect catalina does not know what pins the TV is on (it is pins 16,17,18).

    How would I go about fixing this?
  • RossHRossH Posts: 5,462
    edited 2011-08-03 05:07
    Dr_Acula wrote: »
    Hi Ross,

    I'm in the process of porting code from VGA to TV. This is my command line
    catalina -lc -D DEMO -D HIRES_TV NEW.C
    ...
    
    I'm not getting anything on the display, and I suspect catalina does not know what pins the TV is on (it is pins 16,17,18).
    
    How would I go about fixing this?[/QUOTE]
    
    I assume you are using Catalina 3.1? 
    
    In the target folder, there is a  file called [B]Demo_DEF.inc [/B]which contains all the pin and clock definitions for the Demo board. 
    
    Unfortunately, I don't actually have a Demo board (so I can't test it myself) but I believe the TV output on a Demo board should be pin 12. If you believe the TV output should be pin 16, then by all means change the file. 
    
    Also, it would generally be a good idea to try the low resolution TV driver first (this is the original Parallax driver), and also disable any other drivers that might be interfering:
    [code]
    catalina -lc -D DEMO -D TV -D NO_KEYBOARD -D NO_MOUSE NEW.C
    
    Ross.
  • TorTor Posts: 2,010
    edited 2011-08-03 05:23
    void main ()
    {
          printf("Hello, World!\n");
          while (1);                                               // Prop reboots on exit from main()!
    }
    
    Nitpick - 'main' needs to be 'int' in ANSI C, it was void back in the seventies. On most architectures it won't matter, but on some architectures a program will do the wrong thing if not declared as 'int'. Propeller extremely unlikely to be affected as there's no OS running, but if you write C it's best to avoid bad habits if you want your C-fu to be universally applicable.. :-)

    So, strictly speaking, it should be 'int main (void)' (to include ANSI style function prototyping as well.. and GCC is coming, as we know, and may start to complain, or at least not issue the warnings that it could have).

    -Tor
  • RossHRossH Posts: 5,462
    edited 2011-08-03 05:32
    Yes, quite right - my fault!

    Catalina currently does nothing with the return value, but eventually it will return the exit value to Catalyst - so it is good practice to declare main as 'int main()'

    Ross.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-08-03 06:47
    Thanks Tor. If I change it to int, I get a warning "no return value". Is there a workaround for this?

    Hi Ross,

    I'm on version 3.0 and I can't find any file demo_def.inc (searched all subdirectories). I have constants.inc, debug.inc, fp.inc, hmi.inc, kernel.inc, loader.inc, xmm.inc

    However, the demo one is probably not so important as I mainly use that as a test to see if a program compiles, without downloading it. The DRACBLADE version is the more important one to change, and this one is producing an error in the compilation (first time this has been tested with TV so not surprising)
       ===================
       SETTING UP CATALINA
       ===================
    
    
    CATALINA_DEFINE  = [default]
    CATALINA_INCLUDE = [default]
    CATALINA_LIBRARY = [default]
    CATALINA_TARGET  = [default]
    CATALINA_LCCOPT  = [default]
    CATALINA_TEMPDIR = [default]
    LCCDIR           = [default]
    catalina -lcx -D PLUGIN -x5 -M 256k -D DRACBLADE -D SHARED_XMM -D HIRES_TV NEW.C
    Catalina Compiler 3.0
    Homespun Spin Compiler 0.30
    parsing C:\Program Files\Catalina\target\xmm_default.spin
    parsing C:\Program Files\Catalina\target\Catalina_Common.spin
    parsing C:\Program Files\Catalina\target\Catalina_HUB_XMM_Loader.spin
    parsing C:\Program Files\Catalina\target\Catalina_XMM.spin
    Error: HMI.inc (786, 11): Expected object file name
      ERROR : HMI OPTION NOT SUPPORTED ON THE SPECIFIED PLATFORM
              ^
    Payload XMM NEW
    Using Propeller (version 1) on port COM1 for first upload
    Using port COM1 for subsequent uploads
    Press any key to continue . . .
    

    Any suggestions would be most appreciated. :)
  • RossHRossH Posts: 5,462
    edited 2011-08-03 06:57
    Dr_Acula wrote: »
    Hi Ross,

    I'm on version 3.0 and I can't find any file demo_def.inc (searched all subdirectories). I have constants.inc, debug.inc, fp.inc, hmi.inc, kernel.inc, loader.inc, xmm.inc

    Any suggestions would be most appreciated. :)

    Hi Dr_A,

    In version 3.0, edit the file Catalina_Common.spin in the target directory. The file will contain a section starting with the line #elseifdef DEMO - I have shown this section below:
    #elseifdef DEMO
    '===============================================================================
    '
    ' Demo Board General definitions:
    ' 
    '===============================================================================
    KBD_PIN    = 26                 ' BASE PIN  (Demo)
    MOUSE_PIN  = 24                 ' BASE PIN  (Demo)
    TV_PIN     = 12                 ' BASE PIN  (Demo)
    VGA_PIN    = 16                 ' BASE PIN  (Demo)
    SD_DO_PIN  = -1                 ' Demo has no SD Card
    SD_CLK_PIN = -1                 ' Demo has no SD Card 
    SD_DI_PIN  = -1                 ' Demo has no SD Card
    SD_CS_PIN  = -1                 ' Demo has no SD Card
    I2C_PIN    = 28                 ' I2C Boot EEPROM SCL Pin
    I2C_DEV    = $A0                ' I2C Boot EEPROM Device Address
    SI_PIN     = 31                 ' PIN (Demo)
    SO_PIN     = 30                 ' PIN (Demo)
    '
    ' Demo Board Clock definitions:
    ' 
    CLOCKMODE = xtal1 + pll16x      ' (Demo)
    XTALFREQ  = 5_000_000           ' (Demo)
    CLOCKFREQ = 80_000_000          ' (Demo) Nominal clock frequency (required by some drivers)
    '
    ' Demo Board Loader and InterProp Comms definitions:
    '
    SIO_BAUD      = 115200          ' Baud rate to use for all interprop comms                 
    SIO_LOAD_MODE = %0000           ' Demo has only one CPU - this is for serial loading
    SIO_COMM_MODE = %0000           ' Demo has only one CPU - this is for serial loading
    TX_PIN        = -1              ' Demo has only one CPU
    RX_PIN        = -1              ' Demo has only one CPU
    '
    ' Demo Board XMM Base Address:
    '
    XMM_BASE_ADDRESS = -1           ' Demo board has no XMM
    '
    ' Demo Board SPI Base Address:
    '
    SPI_RW_BASE_ADDRESS  = -1       ' Demo board has no SPI
    SPI_RO_BASE_ADDRESS  = -1       ' Demo board has no SPI
    '
    ' Demo Board Payload pins (SI/SO pins)
    '
    PAYLOAD_RXPIN = SI_PIN          ' Rx pin to use for Payload comms
    PAYLOAD_TXPIN = SO_PIN          ' Tx pin to use for Payload comms
    '
    ' Demo Board BlackCat debug pins (SI/SO pins)
    '
    BLACKCAT_RXPIN = SI_PIN         ' Rx pin to use for BlackCat comms
    BLACKCAT_TXPIN = SO_PIN         ' Tx pin to use for BlackCat comms
    BLACKCAT_MODE  = %0000          ' SIO mode to use for BlackCat comms
    '
    ' Demo Board Cog Allocation. The value LAST_COG specifies the last cog that will 
    ' be restarted during the load process. It should be set to one less than
    ' the cog used for the CogStore. If the Cache is in use it will always be
    ' sarted in Cog 7, and if CogStore is in use it will always be started in
    ' the next lower cog. Set this value lower still to reserve another cog 
    ' for other purposes. Note that it is still the users responsibility to 
    ' ensure that the combination of loaded drivers and plugins does not 
    ' exceed this value. Note also that the CogStore cog can be used by
    ' an application - it simply is not restarted during the load process 
    ' (otherwise its values will be lost). Finally, note that this logic
    ' is replicated for each platform even though it is currently the same
    ' on all - there may one day be a platform that needs to reserve some
    ' additional cogs.
    '
    #ifdef CACHED
    
    CACHE_COG    = 7                ' XMM Cache driver will use this cog
    
    #ifdef RESERVE_COG
    RESERVED_COG = 6                ' Cog 6 is reserved
    LAST_COG     = 4                ' Last cog to be restarted is 4
    #else
    RESERVED_COG = -1               ' No Reserved Cogs
    LAST_COG     = 5                ' Last cog to be restarted is 5
    #endif
    
    #else
    
    CACHE_COG = -1                  ' XMM Cache driver not loaded
    
    #ifdef RESERVE_COG
    RESERVED_COG = 7                ' Cog 6 is reserved
    LAST_COG     = 5                ' Last cog to be restarted is 5
    #else
    RESERVED_COG = -1               ' No Reserved Cogs
    LAST_COG     = 6                ' Last cog to be restarted is 6
    #endif
    
    #endif
    

    Just edit this to suit your needs.

    Ross.
  • RossHRossH Posts: 5,462
    edited 2011-08-03 07:07
    Dr_Acula wrote: »
    The DRACBLADE version is the more important one to change, and this one is producing an error in the compilation (first time this has been tested with TV so not surprising)

    Any suggestions would be most appreciated. :)

    Hi Dr_A,

    Yes, I don't support TV on the DracBlade, since it has no TV outputs. However, if you have modified your DracBlade, it is easy enough to fix - I've posted a fix in the Catalina 3.0 thread. Please add any more 3.0 specific queries to that thread.

    Ross.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-08-03 07:10
    That works!!!

    Ok, I have Hello World white on blue on a TV. On my tiny TV the low res one is better, and on the 7" screen the hi res one is better.

    This works for LMM. For XMM I'm getting another error - post edited #13 above
  • RossHRossH Posts: 5,462
    edited 2011-08-03 07:10
    Dr_Acula wrote: »
    If I change it to int, I get a warning "no return value". Is there a workaround for this?

    Yes - return a value ...
    int main () { 
       printf("Hello, World!\n"); 
       while (1;         // Prop reboots on exit from main()!
    
       return 0;         // return any value here
    
    }
    
  • jazzedjazzed Posts: 11,803
    edited 2011-08-03 10:18
    Hi Ross.

    I've successfully used catalina/payload to run hello_world.c on my C3 with TV.

    I tried the same using a Custom_def.inc with 96MHz clock.
    While it eventually works, payload is truly struggling and quite unusable.

    I could not get -D PC option to work until i did "build_all PC"
    No idea what's happening there.

    Looks like you need to update the Catalina revision??? I'm getting 3.0
    I deleted the Catalina 3.0 directory entirely and my path only points to c:\Catalina.
    There is no catalina in either "Program Files" directory.
    c:\Catalina\demos>catalina -lc hello.c -D CUSTOM
    Catalina Compiler 3.0
            1 file(s) moved.  ...
    

    I'll try to add one of my cache drivers now.
  • RossHRossH Posts: 5,462
    edited 2011-08-03 16:03
    Hi jazzed,

    What platform are you on? Windows 7? I'm still struggling with some truly bizarre behavior on that platform (I think it has to do with Microsoft's bizarre VirtualStore "feature").

    I'll check the revisions in the release, but is it possible you have mixed up some Catalina 3.0 and 3.1 files?

    Also, what do you mean by payload "struggling"? Slow? Or getting timeouts? Try adding -t 1000 to the payload command line.

    I'm hoping to have my "one touch" installer sorted out shortly, which should solve a lot of potential set-up issues.

    Ross.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-08-03 16:56
    Hi Ross,

    What is the 'official' way to change from PAL to NTSC?

    I've got three different LCD TV displays of various sizes that are originally designed for car reversing videocams. Very reasonably priced on ebay and they accept Pal and NTSC.

    On multiple propeller drivers, the NTSC video is a lot more solid looking, where the Pal tends to have wavy lines on the screen.

    So I hacked into the TV driver for catalina and changed the commented out line to the line below
        'screen.start(ptv, common#TV_PIN, @long[pscreen][buffer], @long[pscreen][colors], NTSC_PAL, INTERLACE)
        screen.start(ptv, common#TV_PIN, @long[pscreen][buffer], @long[pscreen][colors], 0, 1)    '00 doesn't work, 01 is perfect, 10 doesn't work, 11 is default and has wavy diagonal lines
    

    so with the values I think the one that looks the best is NTSC and Interlaced.

    I couldn't find the variable NTSC_PAL in that local spin file, so I figured it might be in the common file but this seems to be set by variables from another file
    ' For TV modes, select PAL_NTSC, INTERLACE
    '
    #ifdef NTSC
    NTSC_PAL = 0                    ' 0 = NTSC                       
    #else
    NTSC_PAL = 1                    ' 1 = PAL
    #endif
    
    #ifdef NO_INTERLACE
    INTERLACE = 0                   ' 0 = non-interlace
    #else
    INTERLACE = 1                   ' 1 = interlace
    #endif
    

    So what would be the best way to set the TV driver to NTSC?
  • RossHRossH Posts: 5,462
    edited 2011-08-03 17:04
    Dr_Acula wrote: »
    Hi Ross,

    What is the 'official' way to change from PAL to NTSC?

    Add -D NTSC to your compile command. Same thing for -D NO_INTERLACE - for example:
    catalina -lc hello_world.c -D TV -D NTSC
    
    Ross.
  • jazzedjazzed Posts: 11,803
    edited 2011-08-03 17:44
    RossH wrote: »
    I'll check the revisions in the release, but is it possible you have mixed up some Catalina 3.0 and 3.1 files?
    I don't think so. Where exactly would I find the revision number?
    me wrote:
    I deleted the Catalina 3.0 directory entirely and my path only points to c:\Catalina.
    There is no catalina in either "Program Files" directory.
    All of that means "I wiped out Catalina 3.0 completely and replaced it with 3.1." AFAIK
    RossH wrote: »
    Also, what do you mean by payload "struggling"? Slow? Or getting timeouts? Try adding -t 1000 to the payload command line.
    No timeouts, just much slower than Propellent or other loaders.
    For C3 it loads 5x faster (12 secs) than for my CUSTOM platform (60 secs) defined below.
    '
    ' Comment out the following line when you have configured the Custom platform:
    '
    ' ERROR : CUSTOM PLATFORM HAS NOT BEEN CONFIGURED!
    '
    '===============================================================================
    '
    ' Custom platform General definitions:
    '
    '===============================================================================
    
    KBD_PIN    = -1                 ' BASE PIN  (Custom)
    MOUSE_PIN  = -1                 ' BASE PIN  (Custom)
    TV_PIN     = 12                 ' BASE PIN  (Custom)
    VGA_PIN    = -1                 ' BASE PIN  (Custom)
    SD_DO_PIN  = -1                 ' Custom has no SD Card
    SD_CLK_PIN = -1                 ' Custom has no SD Card
    SD_DI_PIN  = -1                 ' Custom has no SD Card
    SD_CS_PIN  = -1                 ' Custom has no SD Card
    I2C_PIN    = 28                 ' I2C Boot EEPROM SCL Pin
    I2C_DEV    = $A0                ' I2C Boot EEPROM Device Address
    SI_PIN     = 31                 ' PIN (Custom)
    SO_PIN     = 30                 ' PIN (Custom)
    '
    ' Custom platform Clock definitions:
    '
    CLOCKMODE = xtal1 + pll16x      ' (Custom)
    XTALFREQ  = 6_000_000           ' (Custom)
    CLOCKFREQ = 96_000_000          ' (Custom) Nominal clock frequency
                                    ' (required by some drivers)
    '
    ' Custom platform Loader and InterProp Comms definitions:
    '
    SIO_BAUD      = 115200          ' Baud rate to use for all interprop comms
    SIO_LOAD_MODE = %0000           ' Custom has only one CPU - this is for serial loading
    SIO_COMM_MODE = %0000           ' Custom has only one CPU - this is for serial loading
    TX_PIN        = -1              ' Custom has only one CPU
    RX_PIN        = -1              ' Custom has only one CPU
    ' Custom platform XMM Base Address:
    '
    XMM_BASE_ADDRESS = -1           ' Custom board has no XMM
    '
    ' Custom platform SPI Base Address:
    '
    SPI_RW_BASE_ADDRESS  = -1       ' Custom platform has no SPI
    SPI_RO_BASE_ADDRESS  = -1       ' Custom platform has no SPI
    '
    ' Custom platform Payload pins (SI/SO pins)
    '
    PAYLOAD_RXPIN = SI_PIN          ' Rx pin to use for Payload comms
    PAYLOAD_TXPIN = SO_PIN          ' Tx pin to use for Payload comms
    '
    ' Custom platform BlackCat debug pins (SI/SO pins)
    '
    BLACKCAT_RXPIN = SI_PIN         ' Rx pin to use for BlackCat comms
    BLACKCAT_TXPIN = SO_PIN         ' Tx pin to use for BlackCat comms
    BLACKCAT_MODE  = %0000          ' SIO mode to use for BlackCat comms
    '
    ' Cog Allocation. The value LAST_COG specifies the last cog that will
    ' be restarted during the load process. It should be set to one less than
    ' the cog used for the CogStore. If the Cache is in use it will always be
    ' started in Cog 7, and if CogStore is in use it will always be started in
    ' the next lower cog. Set this value lower still to reserve one or more cogs
    ' for other purposes. Note that it is still the users responsibility to
    ' ensure that the combination of loaded drivers and plugins does not
    ' exceed this value. Note also that the CogStore cog can be used by an
    ' application - it is not restarted during the load process (otherwise
    ' its values would be lost) - but it is restarted before any user
    ' plugins are loaded.
    '
    #ifdef CACHED
    
    CACHE_COG    = 7                ' XMM Cache driver will use this cog
    STORE_COG    = 6                ' Catalina CogStore will use this cog
    LAST_COG     = 5                ' Last cog to be restarted is 5
    
    #else
    
    CACHE_COG    = -1               ' XMM Cache driver not loaded
    STORE_COG    = 7                ' Catalina CogStore will use this cog
    LAST_COG     = 6                ' Last cog to be restarted is 6
    
    #endif
    
    
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-08-03 18:15
    Add -D NTSC to your compile command. Same thing for -D NO_INTERLACE - for example:

    Fantastic. All working very nicely now.
    1024 x 768 - 148K
  • RossHRossH Posts: 5,462
    edited 2011-08-03 20:09
    jazzed wrote: »
    I don't think so. Where exactly would I find the revision number?

    ...

    No timeouts, just much slower than Propellent or other loaders.
    For C3 it loads 5x faster (12 secs) than for my CUSTOM platform (60 secs) defined below.

    Each program (catalina, catbind, payload etc) should print the revision number if you include the -v flag on the command line. Unless I have stuffed up the build process (entirely possible!) they should all say 3.1 - I'll check this out when I get home.

    As to payload being slow - I can't think of any reason why load time would be affected by the actual board in use. Possibly some FTDI/USB issue. But for simple LMM programs you don't have to use payload if you don't like it - you can use any loader you like (e.g. Propellent). As for XMM programs ... well, since payload is currently the only such loader currently available, it is by definition the fastest option :smile:. I agree that loading a 1mb program into Flash on the C3 via payload can be a bit tedious - which is why I tend to use Catalyst.


    Ross.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-08-03 20:19
    Regarding speed, is it not limited by the baud rate 115k?

    I'm finding that programs more than about 200k are getting a bit tedious to download. A partial solution is to test components of a program individually with a quick LMM download which is only a few seconds. Minimum XMM via payload is 10 secs or so.

    My longer term solution is a board which is being made at the moment which simply has a 4PDT toggle switch, to quickly switch the SD card between the propeller and as a drive on the PC. That gets things up to USB speeds. Untested as yet, but I am not sure that any download solution is going to work for huge programs if the speed is stuck at a maximum of 115200.
  • jazzedjazzed Posts: 11,803
    edited 2011-08-03 20:38
    Ross, I'm not trying to have some kind of fight.

    All I want is a solution that i can use to load and test the drivers i have that work perfectly in another nice environment. The drivers are compatible for the most part with the C3 cache driver.

    Waiting over a minute for the default tool is just a little awkward. I would like to use your work since that's presumably what others might use.

    I downloaded your Catalina_3.1_win32.zip from sourceforge. All the versions in the precompiled binaries are 3.0 or 3.0.x as far as i can tell. There must be some problem with that .zip.

    I can't really believe the day I want to do something with your product that there is some kind of a problem. Let's figure it out and move on.
  • RossHRossH Posts: 5,462
    edited 2011-08-03 23:57
    jazzed wrote: »
    I downloaded your Catalina_3.1_win32.zip from sourceforge. All the versions in the precompiled binaries are 3.0 or 3.0.x as far as i can tell. There must be some problem with that .zip.

    I usually download the file after uploading it to see if I have stuffed something up, but I have to admit I didn't do that this time (see where overconfidence gets you?). I can't do this from work, but I'll do so when I get home.

    Ross.
  • RossHRossH Posts: 5,462
    edited 2011-08-04 01:34
    All,

    The packages for release 3.1 on SourceForge are correct - the main changes in the 3.1 release (over the previous 3.0.x releases) are in the various target packages (i.e. basic, target & simple). Normally, I increment the executable version number whenever I change their source file, but in this case there were no changes to any executables since release 3.0.x, and I just plain forgot!

    To avoid future confusion (it confused the heck out of me!) I will increment the revision number when I release the new "one touch" installer.

    As for the payload speed, I accept that this is an annoyance to some users, but it is not a bug. Payload works very reliably on all the computers to which I have access (32 bit, 64 bit, Windows 6, Windows 7 and various incarnations of Linux). For me, this is more important than raw speed. However, I will work on improving the speed as time permits . Anyone who is good with USB/FTDI/Serial drivers on Windows and Linux is welcome to pitch in and help - the payload program itself is quite trivial - it's the serial port handling that's complex!

    Ross.
  • jazzedjazzed Posts: 11,803
    edited 2011-08-04 03:01
    RossH wrote: »
    However, I will work on improving the speed as time permits . Anyone who is good with USB/FTDI/Serial drivers on Windows and Linux is welcome to pitch in and help - the payload program itself is quite trivial - it's the serial port handling that's complex!
    David's solution works nicely for Windows, Linux, and Mac OS-X.
  • RossHRossH Posts: 5,462
    edited 2011-08-04 05:44
    WE INTERRUPT THIS PROGRAM FOR A MAJOR ANNOUNCEMENT!!!

    A beta version of the Catalina "one touch" installer for Windows (Windows 6, Windows 7, 32 bit and 64 bit) has just been uploaded to SourceForge. Now you can install (or uninstall) both Catalina and Code::Blocks in a single step!

    If I'd known it was so easy, I'd have done this months ago!

    What this installer does (N.B. some of this is selectable during install, but the following list assumes you leave all the options at their default value):
    1. Installs Catalina, to whatever directory you choose (default is C:\Program Files\Catalina on 32 bit Windows, or C:\Program Files (X86)\Catalina on 64 bit Windows);
    2. Sets the permissions of that directory to disable the Microsoft "VirtualStore" nonsense (Windows 7 only);
    3. Sets the environment variable LCCDIR to that directory.
    4. Installs a shortcut on your desktop to launch the Catalina Command Line - all configured and ready to go!
    5. Installs Code::Blocks.
    6. Installs a Catalina program group, with shortcuts to both the Catalina Command Line, and Catalina CodeBlocks (and also a shortcut to Uninstall Catalina - but who'd ever want to do that?)
    7. Installs the Code::Blocks Catalina Compiler plugin, and the Code::Blocks Catalina Project Wizard, and the Code::Blocks Catalina Tools.
    After all that, you're pretty much ready to just start programming in Catalina C!

    Refer to the document in the main Catalina folder called Gettting Started with CodeBlocks - but you can now completely ignore the installation section, and start with the Using Code::Blocks section (page 11).

    Good luck!


    Now for the fine print:
    1. Please keep in mind that this is a BETA release! Let me know if you try the installer and have problems, or try it and hate it for any reason.
    2. The installer currently only installs the Catalina Code::Blocks Tools for the current user. I have yet to figure out how to install these tools for "all users" - this may need to be a manual step for any users other than the one who actually does the install (currently, this will require manual editing of each user's codeblocks\default.conf file).
    3. This installer should not interfere with any existing Catalina installation (provided you install to a different directory) apart possibly from changing the setting of the LCCDIR environment variable. However - just in case - please first back up any critical source files you wish to preserve!
    Ross.
  • SapiehaSapieha Posts: 2,964
    edited 2011-08-04 06:45
    Hi Ross.

    For me on XP SP3 Swedish Language ----> IT function Correctly!

    THANKS



    RossH wrote: »
    WE INTERRUPT THIS PROGRAM FOR A MAJOR ANNOUNCEMENT!!!

    A beta version of the Catalina "one touch" installer for Windows (Windows 6, Windows 7, 32 bit and 64 bit) has just been uploaded to SourceForge. Now you can install (or uninstall) both Catalina and Code::Blocks in a single step!

    If I'd known it was so easy, I'd have done this months ago!

    What this installer does (N.B. some of this is selectable during install, but the following list assumes you leave all the options at their default value):

    1. Installs Catalina, to whatever directory you choose (default is C:\Program Files\Catalina on 32 bit Windows, or C:\Program Files (X86)\Catalina on 64 bit Windows);
    2. Sets the permissions of that directory to disable the Microsoft "VirtualStore" nonsense (Windows 7 only);
    3. Sets the environment variable LCCDIR to that directory.
    4. Installs a shortcut on your desktop to launch the Catalina Command Line - all configured and ready to go!
    5. Installs Code::Blocks.
    6. Installs a Catalina program group, with shortcuts to both the Catalina Command Line, and Catalina CodeBlocks (and also a shortcut to Uninstall Catalina - but who'd ever want to do that?)
    7. Installs the Code::Blocks Catalina Compiler plugin, and the Code::Blocks Catalina Project Wizard, and the Code::Blocks Catalina Tools.

    After all that, you're pretty much ready to just start programming in Catalina C!

    Refer to the document in the main Catalina folder called Gettting Started with CodeBlocks - but you can now completely ignore the installation section, and start with the Using Code::Blocks section (page 11).

    Good luck!


    Now for the fine print:

    1. Please keep in mind that this is a BETA release! Let me know if you try the installer and have problems, or try it and hate it for any reason.
    2. The installer currently only installs the Catalina Code::Blocks Tools for the current user. I have yet to figure out how to install these tools for "all users" - this may need to be a manual step for any users other than the one who actually does the install (currently, this will require manual editing of each user's codeblocks\default.conf file).
    3. This installer should not interfere with any existing Catalina installation (provided you install to a different directory) apart possibly from changing the setting of the LCCDIR environment variable. However - just in case - please first back up any critical source files you wish to preserve!

    Ross.


    Ps. Very Professional
Sign In or Register to comment.