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.