Sunday, July 26, 2020

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 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.