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.

Thursday, April 30, 2020

QA: Amos Kittens

Olaf Schönweiß and Jens Christian Ingvartsen Thomsen asked me few questions about Amos Kittens and Amos Pro, I think I should clarify.

Question: Where do you find Amos Professional.


Answer: 

There number place you talk about Amos, and find help, many of places host Amos professional.
and can help you find what your looking, Amos Pro is no longer on sale, so no way you buy it today.

You can go to “Amos Coding” on Facebook.

https://www.facebook.com/groups/AmosPro

there is also the STOS group there also friendly.

https://www.facebook.com/groups/stoscoders/

EAB has forum about AMOS Professional.

https://eab.abime.net/forumdisplay.php?f=119


AmigaCoding is also great resource for AMOS.

http://amigacoding.com

Kittens is hosted on GitHub.

https://github.com/khval/AmosKittens


Exotica is also good resource of information.

https://www.exotica.org.uk/wiki/AMOS_extensions


There used be a site called “AMOS Forum at Ultimate Amiga”,

https://www.ultimateamiga.co.uk

Question: Does Amos Kittens compile the code. 


Answer:
No Amos kittens make no attempt to translate token to native code, 
the interpreter read the token in .amos file and execute the Amos program/game as it is, 
in its pure form.

Question: how can I distributed my game? With a run-time interpreter?


A: Well you have few options how to distribute your game.

  • You bundle your .amos game /program with interpreter. you can use start script, or you can include icon with default tool Amos Kittens.
  • Or you can distribute .amos file only with icon, you can use start script, or you can include icon with default tool Amos Kittens.
  • You are allowed to modify the interpreter, so you can convert your .amos file into a C/C++ tabel / binrary and compile into the interpreter. Maybe add some encryption.


Question: But I really, really want to convert my Amos games/programs to C.


Answer:

there is program on Aminet, Amos2C,

http://aminet.net/package/dev/amos/Amos2C

if you need to convert your token .amos files to asc files, you can use Amos2asc

https://github.com/khval/Amos2AscII

You can also export to asc from
Amos Professional

Amos2c it will not generate code you can compile, but it should help you do the translation, C does not have commands you need to execute program, you need a support library, Amos Kittens was written as interpreter, with stack engine, the format of the commands is there for not organized so be easy to use, in this way, there is a project that tries to make it possible. have a look at “AmOS4.library” project. The last news was from 30.08.2016, I do not know if there is any work being done on it.

http://sharynn.free.fr/



Question: AMOS is not the right language for me what other languages can I use, that is cross platform.


Answer:

Well you have Hollywood Designer, it’s not so great on slower computers.

https://www.hollywood-mal.com/designer.html

"Free Pascal" often considered easier to learn then C, work on MorphOS and AmigaOS and Linux.
Python pygames, Phyton is extremely popular, its used almost everywhere this days, it’s a interpreted language, so its not as fast as C/C++. (AmigaOS 4.1 use Phyton for the installation scripts.)


Protable E
https://en.wikibooks.org/wiki/Aros/Developer/Docs/E




Tuesday, April 28, 2020

AMOS, 3 solutions for 3 different problems.

 

 3 solutions for 3 different problems.

AOZ is a web-based solution written in Javascript, intended to run on anything that supports web gl, and Web Assembly. Written
by author Francois lionet.

Amos Kittens a portable interpreter written in C / C ++, with the ability run native and has access to native filesystem and other resources, with the intent of remove EUAE from
the depenency, Amos Kittens was written by me Kjetil Hvalstrand, project was started around 2017.

Amos Proseronal a development tool meant for beginners in programming, created for Classic Amiga at 198x / 199x, with long history with many extensions. written by Francois lionet. the AGA version is being worked on by Frédéric Cordier.

Before Amos Kittens there was something called XAMOS, but it has no relation to Amos kittens project, XAMOS/JAMOS was written in C and Java, by
author Stephen Harvey-Brooks (Mequa), Stephen Harvey-Brooks passed away in 2015. project stopped,

So way AMOS in 2020, well it’s because there are people not like me who has little or no time, but wont be creative, and need safe simple to write programming language, that do not wont mess around programming language’s that crash or freeze the operating system, and just want have fun, playground bobs / sprites and collation detection.  

In addition to this Amiga community is fragmented, this makes hard for developers to make money, because you only can sell your product ¼ of the community, I wonted to give the developers to expand there market, and to become more successful.


By keeping Amos kittens open source, its now possible to see ports to MorphOS and AROS, becouse I'm only one person working on Amos Kittens, I'm focusing on AmigaOS4.1, AmigaOS1.3 - 3.9 has Amos Professional, of couse as prof of consept it be interesting to backport it AmgaOS1.3-3.9, and also for fun compare it the orginal Amos on same CPU, we need to cut down memory foot print, but should be doable. 



Normally C/C++ programs run slower and take more RAM then things written in assembler, but there are some advantages as its easier to work in C/C++ then its to work with 680x0 assembler, there many cases where source code is sold, but nothing is done because source code is impossible to read.