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 a garbage collector; it does know clean up memory when its closed.
- Seems like extensions are kind of a hacked on top Amos Pro.
- A lot of tokens space is wasted, as text is also stored in the same tables, and names are not referenced.
- It was designed for a time when we did not have space on floppy disks for common libraries, so it compiled the routines into to the executables, this is a 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 the library without recompiling the game.