Way not use the old extension format for Amos Kittens?
Well let me list some key problems with it:
- Can’t be shared between Amos Pro instances.
- Does not support relocatable code.
- Is 680x0 assembler code, it can’t be recompiled for different CPU.
- It does not have garbage collector; it does know clean up memory when its closed.
- Seems extensions are kind of hacked on top Amos Pro.
- A lot of tokens space is wasted, as text is also stored in the same table, and names are not referenced.
- It was designed for time when did space on floppy disks for common libraries, to the compiled the routines into the executables, this outdated concept.
- Old extensions assume old structures in Amos Pro editor.
- Old extensions assume bitmap image format for bobs, icons, sprites, screens, etc.
So, what is new in Amos Kittens extensions.
- Written in C code, so it can be recompiled for different CPU types. Runs natively no emulation.
- Use Amiga library format on AmigaOS or clones, routines are shared between different instances of Amos Kittens. This saves memory.
- New extensions, token tables only contain address of routines, lots of space is freed up for new routines. 65535/4 = this gives you max of 16383 routines per extension.
- Has context for etch instance of Amos Kittens, allows the extension to automatically clean up when it's not used.
- Because new extensions meant to be used as a normal library, bugs can be fixed in library without recompiling the game.