Ultimate Amiga

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2]   Go Down

Author Topic: AMOS: jAMOS - new AMOS BASIC reimplementation in Java  (Read 19614 times)

0 Members and 1 Guest are viewing this topic.

Mequa

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 64
Re: AMOS: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #15 on: March 21, 2012, 06:22:13 AM »

Update: jAMOS alpha 0.18 (March 21st 2012)

- Basic support for procedures implemented. (To do: passing arguments, local/shared variables, global variable definitions, call without "Proc".)
- Some groundwork done for array support - implementation coming soon!
- AMOS Boom and Shoot sounds implemented (alongside Bell), and added to jAMOSOut and a new procedure example.
Logged

Mequa

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 64
Re: AMOS: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #16 on: March 24, 2012, 04:35:15 AM »

Update: jAMOS alpha 0.19 (March 24th 2012)

- Can now return an argument from procedures using Param/Param#/Param$. An example was added under the Tutorial menu.
- Some groundwork done for passing arguments to procedures - implementation coming soon.
Logged

Mequa

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 64
Re: AMOS: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #17 on: March 25, 2012, 03:24:53 AM »

I did a bit of performance testing, comparing jAMOS to AMOS Professional running under WinUAE (with Direct JIT + Fastest Possible CPU, 8MB Fast RAM, ECS chipset, hardware collisions disabled).

For the Mandelbrot plotter (on my i7 machine), using almost identical code and producing identical output, jAMOS performed 8 times faster than AMOSPro in WinUAE using the AMOSPro interpreter, and around 4-5 times faster than the AMOSPro Compiler. (Bear in mind that jAMOS uses 24-bit plotting and an interpreter running on a JIT-compiled Java VM.) Both maxed out one hardware thread out of 8, i.e. half a physical CPU core.

Of course this is still pretty slow for a Mandelbrot plotter (it took over a second to draw a 720x576 image in jAMOS on my i7), but already has major performance gains over emulated AMOSPro. If I have time I'll add the ability to compile jAMOS code to Java source compilable to Java bytecode, which should improve performance some more.

Sprite and screen display in jAMOS is still quite sluggish on slower PCs however, due to its somewhat inefficient usage of JGame's sprite engine at the moment. The sound engine may also cause occasional freeze-ups due to the JVM heap size being too small and forcing garbage collection. This can be fixed by launching jAMOS from a command prompt and specifying a larger heap size using JVM command line options.

From my tests, its interpreter is surprisingly nippy though, as is its AMAL interpreter.
Logged

Mequa

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 64
Re: AMOS: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #18 on: March 28, 2012, 07:22:30 AM »

Update: jAMOS alpha 0.20 (March 28th 2012)

- Can now pass arguments to procedures as well as return an argument (variable scoping and "call without Proc" still to do). The example was updated.
- Some bugfixes with number-to-string conversion. Type conversion is automatic unlike AMOS, so you can now do number+string as well as string+number.
Logged

Mequa

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 64
jAMOS alpha 0.21
« Reply #19 on: April 29, 2012, 07:36:34 PM »

Update: jAMOS alpha 0.21 (April 29th 2012)

- Arrays are now implemented, including multi-dimensional support surpassing the AMOS original.
- An example was added using two-dimensional arrays for plotting to and from a buffer.
Logged

Mequa

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 64
jAMOS alpha 0.22
« Reply #20 on: May 10, 2012, 11:03:33 PM »

Update: jAMOS alpha 0.22 (May 10th 2012)

- Various bug fixes and code refactoring.
- Now supports whitespace in expressions without hanging (bug fix); examples updated.
- Tidied up several examples.
- Back-port of the parser/interpreter core from Java to C++ almost completed, to be released soon as "MequaScript".
Logged

BooBoo

  • Amiga Guru
  • A600
  • ****
  • Karma: 3
  • Offline Offline
  • Posts: 168
Re: AMOS: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #21 on: May 16, 2012, 03:12:30 PM »

What about something like this for blitz to make converting AMOS to blitz a nice easy process :)
Logged

Mequa

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 64
Re: AMOS: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #22 on: May 17, 2012, 12:37:01 AM »

What about something like this for blitz to make converting AMOS to blitz a nice easy process :)
Amiga Blitz in Java, or AMOS to Amiga Blitz?


I've recently ported almost all of the interpreter core (apart from AMAL) to C++. I've been getting to grips with SDL too, so I've been wondering if a C++/SDL port of jAMOS (to be renamed of course) would be of interest? (Only this is the same platform that was used for Alvyn, but unlike Alvyn I don't use the GPL.)

This should work on NG Amigas too, and be faster than jAMOS. In all honesty I am sick of Java, it seems a dead-end platform now and suffers from performance issues, particularly on anything other than x86.
So would a native version be of interest?

I'd also like to try this on my recently acquired Mac Mini G4 with registered MorphOS, and I'll be getting a Raspberry Pi next month. ;)
« Last Edit: May 17, 2012, 12:38:58 AM by Mequa »
Logged

Mequa

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 64
jAMOS alpha 0.23
« Reply #23 on: May 23, 2012, 03:33:03 PM »

Update: jAMOS alpha 0.23 (May 23rd 2012)

- Various more bug fixes and code refactoring.
- A new, non-AMAL Abk example was added with easier code to follow.
- jAMOS now has a sister project - XAMOS! Fully re-written runtime engine in C++ with SDL libraries, compatible with jAMOS projects.
Logged

Mequa

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 64
jAMOS alpha 0.24
« Reply #24 on: June 03, 2012, 02:59:19 PM »

Update: jAMOS alpha 0.24 (June 3rd 2012)

- Various more bug fixes and code refactoring in line with XAMOS 0.24.
- Can now translate AMAL and AMAL EnvGen code into C++ as well as Java, in line with XAMOS's new AMAL support.
Logged

DarkN3mo

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 22
  • Generic Amiga User
Re: AMOS: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #25 on: January 10, 2023, 03:12:01 AM »

It's a shame it's not done anymore, it would have been really cool
Logged
Pages: 1 [2]   Go Up
 

TinyPortal 2.2.2 © 2005-2022