Welcome, Guest. Please login or register.

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

Description:

0 Members and 1 Guest are viewing this topic.

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
jAMOS - new AMOS BASIC reimplementation in Java
« on: January 31, 2012, 08:06:43 AM »
I present a new AMOS BASIC reimplementation:



Following on from my jAMAL project, this uses an interpreter based on my MequaScript project, and includes all the AMAL support found in jAMAL.
A subset of AMOS BASIC is already supported, albeit with simplified syntax at present.

Written in Java, and fully cross-platform, this is completely unrelated to previous AMOS implementations such as Alvyn Basic and Mattathias Basic.
Like jAMAL before it, this is fully open source with a permissive BSD-style license, and utilises the JGame engine.

jAMOS alpha 0.1 is now ready for public download:
Get it here!
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #1 on: January 31, 2012, 08:09:07 PM »
I am in contact with François Lionet, he gave me permission to use the names AMOS and AMAL in my projects. I also obtained permission from Boris van Schooten to use the JGame engine (which wasn't strictly necessary as the license allows for my usage).

The MequaScript project I based this on (my own) has the beginnings of object orientation and multiple threads already, as well as support for C-style syntax in addition to BASIC, and support for changing the type of variables (as with Javascript).

I ported my MequaScript interpreter from C++ to Java which provides the AMOS interpretation, it is working in both languages. The C++ version could be compiled to run on AmigaOS 3.x and AROS 68k and x86 (which I may try), as well as AmigaOS 4.x and MorphOS (which I lack suitable hardware to attempt).

Then the AMAL interpreter could be ported from Java to C++, a suitable sprite engine and editor added, and (with a bit of work) this working without Java on Classic and NG Amigas.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #2 on: January 31, 2012, 08:16:35 PM »
Quote from: ChaosLord;678400
Congrats. :)

Why not compile the AMOS source into Java Byte Code?

The resulting program would run much faster then, yes?

Probably not by much, but I have planned to implement compilation from the AMOS source into Java source, which will be compilable into Java Byte Code using javac. This is already largely working for AMAL and AMAL EnvGen scripts.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #3 on: January 31, 2012, 10:52:16 PM »
Update: jAMOS 0.11 adds mouse and cursor keys (simulated joystick) input and corresponding examples.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #4 on: February 03, 2012, 01:48:36 AM »
Update: jAMOS 0.12

A major milestone has been reached with the first fully playable game created with jAMOS, a simple Breakout clone "jAMOSOut", now added to the examples. Some more AMOS functions have been implemented too.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #5 on: February 18, 2012, 02:58:17 AM »
Update: jAMOS Alpha 0.13 (February 18th 2012)

- A text output console is now spawned on creation (for HelloWorld.jamos, etc.).
- Default example changed to jAMOSOut (original still available under AMAL examples).
- AMAL examples now default to the first AMAL program in the editor when opened (as with jAMAL).
- More examples were added demonstrating dynamic types, concurrent jAMOS programs and hybrid syntax.
- jAMAL's startup sound is playable from the menu alongside jAMOS's.
- Some minor bug-fixes.
« Last Edit: February 23, 2012, 04:41:06 AM by Mequa »
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #6 on: February 23, 2012, 04:41:24 AM »
Update: Alpha 0.14 (February 23rd 2012)

- Can now load AMOS sprite banks (.abk) directly.
- Built-in sprite bank viewer now supports image zooming.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #7 on: February 27, 2012, 07:17:27 PM »
Update:

Alpha 0.15 (February 25th 2012)
- Graphical drawing subsystem is now operational.
- Paste Bob implemented, including support for AMOS .abk files and two new examples.
- Plot implemented, with two new examples including a simple Mandelbrot generator.

Alpha 0.16 (February 27th 2012)
- Refactored AMOS command wrapper in the source code.
- Fixed some bugs with the graphical subsystem.
- Added more drawing commands and related examples.
- Split the jAMOS example menu.
- Random number generation is now operational in jAMOS code.
- Bob flipping now works with loaded .abk files and with Paste Bob
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #8 on: February 28, 2012, 10:39:39 PM »
jAMOS Alpha 0.17 (February 28th 2012)

- Added many maths and string functions.
- Added early support for Rainbows (high-level emulated Amiga Copper effects).
- Rainbow and maths examples were added.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #9 on: March 21, 2012, 06:29:33 PM »
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.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #10 on: March 25, 2012, 05:57:38 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.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
Re: jAMOS - new AMOS BASIC reimplementation in Java
« Reply #11 on: March 28, 2012, 08:25:16 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.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
jAMOS alpha 0.21
« Reply #12 on: April 29, 2012, 08:51:59 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.
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
jAMOS alpha 0.22
« Reply #13 on: May 11, 2012, 12:05:34 AM »
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".
 

Offline MequaTopic starter

  • Newbie
  • *
  • Join Date: Feb 2011
  • Posts: 31
    • Show all replies
jAMOS alpha 0.23
« Reply #14 on: May 24, 2012, 06:51:32 AM »
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.