AMOS: jAMOS - new AMOS BASIC reimplementation in Java

Started by Mequa, January 31, 2012, 06:29:09 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Mequa

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!

FOL

Fixed your link, but the link is dead.

Can you email file to me, I will upload it here for you. Or attach it here.
QuoteResolute and Industrious
Grand ruler of the yellow people and the Ultimate Amiga Empire

Hungry Horace

Looks very cool, although I must admit i'm struggling a bit with it at a first glance.

I'm sure as it gets more in-depth (and hopefulyl when support for certain extension commands appears) it will be very nice to translate a few of my programs to other platforms.

FOL: the download seems to work fine here.
Quote from: KillerGorillabecause winuae is made of code and your amiga is made of stuff


FOL

QuoteResolute and Industrious
Grand ruler of the yellow people and the Ultimate Amiga Empire

Mequa

Update: jAMOS 0.11 adds mouse and cursor keys (simulated joystick) input and corresponding examples.

MadAngus

Mequa

Will users be able to use the AMOS manuals as is for jAMOS, or would there be some notable differences.

I'm thinking that once I've finished porting the AMOS manuals to be AMOS Pro specific, aka The AMOS Pro Resource Kit, if necessary that resource kit could also be ported to a separate jAMOS specific manual set.
My shadow says otherwise.

Mequa

Quote from: MadAngus on February 01, 2012, 02:51:10 AM
Mequa

Will users be able to use the AMOS manuals as is for jAMOS, or would there be some notable differences.

I'm thinking that once I've finished porting the AMOS manuals to be AMOS Pro specific, aka The AMOS Pro Resource Kit, if necessary that resource kit could also be ported to a separate jAMOS specific manual set.
Sure, jAMOS is still in its infancy, but much from the original AMOS manuals still applies. The aim is to implement the same language.

MadAngus

Good stuff. That would mean only a small addendum to the resource kit to cover jAMOS. :)

The resource kit is also in it's infancy. I'm not expecting it to be completed until early next year, that is the manuals part of the resource kit. ;)
My shadow says otherwise.

Mequa

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.

Mequa

#9
Guys :)

jAMOS is more than just AMOS. It adds some powerful features to the language. No new updates here - these have always been in jAMOS, courtesy of the MequaScript interpreter at its core.

Try adding this to the bottom of any of the examples:

Brain Second
   X=20
   Do
      If X>500 : X=20 : End If
      Bob 81,X,300,7
      X=X+5
      Wait Vbl
   Loop
EndBrain


And would you believe it? 2 jAMOS programs running in parallel. :)

You can share variables between brains too:

Brain Third
Do
Bob 82,Second.X,400,8
Wait Vbl
Loop
EndBrain


And while you can use traditional BASIC type identifiers such as A$ for a string and A# for a floating point variable, that is optional. Types are dynamic, so you could just as easily:

A=2
Print A+2
A="I just changed my type!!!111oneoneone11!!"
Print A+1


Don't worry about case though, just like in good old AMOS, variables are not case-sensitive.

A="Hello World"
Print a


You currently need to run jAMOS from a console to see text output though.

Oh and don't worry about using hundreds of sprites, this isn't the Amiga. :)

Mequa

#10
Update: 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.

Mequa

Update: Alpha 0.14 (February 23rd 2012)

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

Mequa

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.

Mequa

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

Mequa

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.