XAMOS
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    I know that not many people share any interest in AMOS Basic, or AMOS Pro and that the one best hope for a reimplementation of AMOS Pro known as Matthias has been stopped, but since there doesn't seem to be much in the way of BASIC programming languages for MorphOS and given that SDL is already ported to MorphOS (at least in some kind of version), I am wondering if this:

    http://sourceforge.net/projects/xamos/

    can be ported to MorphOS2.7 and used as a beginner's programming language for people with zero programming experience in the past?

    I know that most programmers tend to suggest AmigaE, or BlitzBasic as beginning points for new potential programmers, but if this new work on using SDL to implement a complete rewrite of AMOS can remove all of the problems contained within the original AMOS Pro, while still keeping enough compatibility so that some or all of the existing source code for AMOS Pro can be reused, or just recompiled, then this XAMOS might be something that is worthwhile porting to MorphOS.

    Only just beginning myself, I can't tell if this XAMOS is any good, or even if the version of SDL that works in MorphOS is current enough to attempt porting XAMOS to MorphOS2.7, or later?
    MorphOS - The best Next Gen Amiga choice.
  • »26.05.12 - 01:41
    Profile
  • MorphOS Developer
    stefkos
    Posts: 96 from 2004/2/4
    Please check on pc first how usuable current version is.
    For me 0.23 is not worth to work on port.
  • »26.05.12 - 10:39
    Profile Visit Website
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    You are right, but maybe if this idea is worthwhile, this XAMOS should be watched, or checked on from time to time as it progresses.

    It appears that JAMOS, which XAMOS is based upon is moving along at a good pace and showing progress. Perhaps XAMOS will progress just as fast.

    The source code of XAMOS may be of little or zero use to us MorphOS users as a potential open source project to port to MorphOS, but I thought it worthwhile to at least ask for opinions from other members here about it.
    MorphOS - The best Next Gen Amiga choice.
  • »26.05.12 - 11:39
    Profile
  • MorphOS Developer
    stefkos
    Posts: 96 from 2004/2/4
    I think that someone will port it if it will be good (you can check state of that project from time to time).
    I see only one problem to port it, boost library...of course this could be trivial thing. We will see later...
  • »26.05.12 - 17:58
    Profile Visit Website
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    Hi, I am the developer of XAMOS and jAMOS. I'm also a MorphOS user and have ported AbkViewer to MorphOS.

    The current version of XAMOS will not work yet on MorphOS, however has already been built and ran successfully on Ubuntu 10.04 on a Mac Mini G4 which also runs MorphOS, so I have PowerPC compatibility confirmed. (I also have a ARM11 Linux build, so it should run on the new Raspberry Pi board.)

    Before attempting a port to Amiga-like systems such as MorphOS and AROS, I would first need to iron out some major bugs in the XAMOS core on those platforms. This may require stripping out all the SDL stuff and doing a minimal build to debug some issues with its core (on both AROS and MorphOS). Then I could try working with SDL on Amiga-like systems. The Boost dependency is merely a header to a hash table, this could also perhaps be removed later on, to more easily allow a MorphOS port.

    I have recently been implementing AMAL subsystems (XAMAL) within the XAMOS core, this should bring the engine up to level with the Java version, jAMOS (and its precursor, jAMAL).

    For an editor, which I plan to add after AMAL to bring XAMOS up to speed with jAMOS, I have been considering using QT, although this doesn't appear compatible with MorphOS. So a future MorphOS build may need a MUI-based editor (preferably with support for other Amiga-like systems too). Perhaps someone would like to contribute one, under a compatible licence?

    Note that as this is intended as a cross-platform AMOS reimplementation, if this is successfully ported to MorphOS, all software created on XAMOS on MorphOS will be usable on both MorphOS and any platform with XAMOS or jAMOS. Similarly, all software created in XAMOS or jAMOS on any other platform will be usable on MorphOS.
  • »29.05.12 - 13:16
    Profile
  • Jim
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Jim
    Posts: 4977 from 2009/1/28
    From: Delaware, USA
    @ Mequa

    Sounds very useful. Good luck getting it ported.
    "Never attribute to malice what can more readily explained by incompetence"
  • »29.05.12 - 13:23
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    @Mequa,

    Good to know that the developer working on this project (I should say both projects), is a MorphOS user and developer.

    Even though I have had many people try to talk me out of learning how to program in AMOS and/or AMOS Pro, I still want to learn it some day, so I would like to see a good re-write of AMOS and/or AMOS Pro completed for MorphOS (Cross Platform would be even better). AMOS is very old, so I am sure it is full of compromises and problems, but a good programmer like you will surely fix those during the re-write process and give us an even better version of AMOS & AMOS Pro with your JAMOS and XAMOS languages.

    Good Luck and let me know where to send my donation toward the completion of these projects.
    MorphOS - The best Next Gen Amiga choice.
  • »30.05.12 - 07:49
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    stefkos,
    Quote:

    I see only one problem to port it, boost library...of course this could be trivial thing. We will see later...

    This seems fairly trivial. It's all in a couple of C++ classes which handle SDL. At the moment the only Boost header I'm using is:

    Code:
    #include <boost/unordered_map.hpp>


    This is also included with C++11, although I'm currently using the Boost version. If C++11 or Boost are not available, I could fall back to a deprecated type such as hash_map...

    The above is used with SDL code as follows:

    Code:
    // Hash table for images:
    boost::unordered_map<std::string, SDL_Surface*> images;

    // Hash table for sounds:
    boost::unordered_map<std::string, Mix_Chunk*> sounds;


    Data is inserted like this:

    Code:
    // Add the optimised image to the hash table:
    images.insert(make_pair<string, SDL_Surface*>("screen0", optimisedImage));

    string name = ..........

    // Add the sound sample to the hash table:
    sounds.insert(make_pair<string, Mix_Chunk*>(name, loadedSound));


    And accessed like this:

    Code:
    string a = ........

    // Blit the new image to the screen:
    SDL_Rect offset;
    offset.x = 0; offset.y = 0;
    SDL_BlitSurface(images[a], NULL, images["screen0"], &offset);

    // Play the sound effect:
    Mix_PlayChannel(-1, sounds["Boom"], 0);



    Now for another technical question: Hardware graphics acceleration (not yet implemented in XAMOS but planned). I could port an unaccelerated SDL version, however for best results I would require something like OpenGL. Is MorphOS's TinyGL implementation able to handle SDL OpenGL calls? Something like this would be required to get smooth scrolling on MorphOS.

    [ Edited by Mequa 31.05.2012 - 15:38 ]
  • »31.05.12 - 15:32
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Posts: 186 from 2003/10/23
    yes, the SDLGL work on morphos :D

    for example :
    screen = SDL_SetVideoMode( SCREENW, SCREENH, 32, SDL_OPENGL | SDL_FULLSCREEN);
    work flawlessy


    [ Edited by raistlin77it 01.06.2012 - 00:08 ]
    I'm nerdy in the extreme
    And whiter than sour cream

    White&Nerdy 2006 Al Yankovic
  • »01.06.12 - 00:02
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    @Mequa,

    With AROS being ported to the Raspberry Pi, a port of XAMOS to AROS running on the Raspberry Pi could be a great combination for kids to learn programming on a very cheap system. My turn to order a R-Pi should be coming up soon and at only $35 or what ever the final price is now, I am definitely buying one of them, or two if buying multiple machines is allowed on the order form.

    The YouTube videos of AROS running on the Raspberry Pi already are encouraging, even though it is not a fast computer, if the video output can be optimized while running AROS, it will be a very useable system IMO. At least it will be comparable to an A500 when running AROS & XAMOS, but I think it will be a little faster than that.
    MorphOS - The best Next Gen Amiga choice.
  • »02.06.12 - 17:21
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    XAMOS has now been updated to version 0.24 and features AMAL support, putting its core in line with the Java version jAMOS 0.24. The AMAL subsystem XAMAL shouldn't be much extra work to get working on MorphOS or AROS (or OS4 :P) compared with the rest of XAMOS.

    XAMOS 0.24 already has an ARM11 Linux binary which should work on Raspberry Pi Debian (at least), as well as a PPC Linux binary working on Mac Mini G4. I got good performance in QEMU already for the ARM build.

    Hardware acceleration is going to be a serious problem to implement on Raspberry Pi AROS though. RISCOS will have the same problem. And the Raspberry Pi has a weak CPU and strong GPU so this would be essential to make the most of the Pi.

    UAE on the Raspberry Pi (especially the likes of UAE4all), on any supported OS, running the original AMOSPro on Kickstart 1.3 should be comparable to an A500 at least. (Just forget about AROS ROM, much too slow!)
  • »03.06.12 - 21:19
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
  • »07.06.12 - 09:58
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    Update: XAMOS alpha 0.241:

    - Removed the dependency on Boost (now available as a compiler option by editing the Makefile). Fallback to deprecated hash_map type is supported without Boost.
    - Added the ability to build a minimal text-only build without SDL, for cross-platform testing (tested on AROS/x86 and MorphOS/PPC).
    - Improved compatibility with 64-bit systems (e.g. Linux/x64).



    I thought this release might be useful for MorphOS users/developers. If anyone has a suitable SDL build environment for MorphOS (which I don't as yet), this is the release to test, to see if XAMOS is finally buildable on MorphOS with SDL (or, for that matter, on any other Amiga-like systems).

    Hint: remove "-D USEBOOST" from CFLAGS in the Makefile. :-)

    P.S. If anyone gets a working MorphOS binary out of this, or alternatively any errors, do let me know. Any modifications to source/Makefiles which are required (other than disabling Boost) will be merged upstream to enable MorphOS compatibility. I'll post any working MorphOS binaries on XAMOS's SourceForge page. (Of course MorphOS Files and Aminet can also host them.)


    [ Edited by Mequa 08.06.2012 - 05:44 ]
  • »08.06.12 - 05:38
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    Update: XAMOS (with SDL) is now working on AROS, bringing it one step closer to a MorphOS port.

    Screenshots, an AROS binary and (more importantly for MorphOS) a compatible Makefile (now in XAMOS.zip) are now on the XAMOS SourceForge page.

    XAMOS_AROS_SDL.png

    I need SDL SDK to build this on MorphOS. Does anyone else with experience building SDL projects on MorphOS wish to try building this in the meantime?
    The AROS-compatible Makefile may be useful as a starting point.
  • »08.06.12 - 16:01
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    Ladies and gentlemen, XAMOS just gained its butterfly wings:

    XAMOS_Butterfly.png

    8-)


    P.S. And it works on MorphOS 3.0 too.





    [ Edited by Mequa 08.06.2012 - 22:47 ]
  • »08.06.12 - 22:34
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    Congrats on completing a build of XAMOS that works on MorphOS3.0. I will take a closer look at your website to see what parts of AMOS Pro are supported in XAMOS and how much of the existing AMOS code and programs will work on XAMOS.

    Thanks for your work on this port to MorphOS. Does your site include a donation button?
    MorphOS - The best Next Gen Amiga choice.
  • »09.06.12 - 06:25
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    Update: XAMOS 0.242 is now available, with some fixes for MorphOS.


    Edit: While I was building XAMOS 0.242 on MorphOS 3.0 (after using OWB), and while XAMOS itself was being built, I noticed an on-screen dancing banana making humorous comments about how long the MorphOS update took. Does anyone know anything about this, and how to get him to appear again? :)

    [ Edited by Mequa 10.06.2012 - 01:15 ]
  • »09.06.12 - 19:31
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    Update: XAMOS 0.242 for MorphOS is now on MorphOS Files.
  • »13.06.12 - 06:12
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    Just downloaded it and will take a look at it this week.

    Thanks!
    MorphOS - The best Next Gen Amiga choice.
  • »13.06.12 - 06:50
    Profile
  • MorphOS Developer
    Krashan
    Posts: 1107 from 2003/6/11
    From: Białystok...
    I wonder how such simple game as arkanoid can fully load 1,67 GHz processor and still not run smoothly...
  • »13.06.12 - 11:17
    Profile Visit Website
  • Moderator
    hooligan
    Posts: 1948 from 2003/2/23
    From: Lahti, Finland
    Its honoring Amos.. it was slow too ;)
    www.mikseri.net/hooligan <- Free music
  • »13.06.12 - 15:34
    Profile Visit Website
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    Hardware acceleration should help with performance eventually (it's pretty slow on PPC Linux too on the same hardware, so not MorphOS-specific, perhaps an issue with PPC implementations of SDL).

    Oddly, it's faster on Raspberry Pi Debian (and uses only half the CPU load), and that's only the ARM equivalent of a 300MHz Pentium 2. As the Windows version runs on Windows 98, perhaps that could also be tested on ancient PCs.

    This seems to be an issue with SDL rather than with the XAMOS interpreter. For something interpreter-heavy, the Mandelbrot demo took 31 seconds on an emulated Raspberry Pi (in QEMU), yet only 6 seconds in MorphOS 3.0 on a Mac Mini G4 1.5GHz, which is what you'd expect given the relative CPU performance.

    [ Edited by Mequa 13.06.2012 - 17:35 ]
  • »13.06.12 - 17:22
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    Update: XAMOS 0.25 is now released, featuring per-pixel collision detection using AMOS syntax.

    An updated MorphOS build is available from the SourceForge page (XAMOS_morphos_ppc.lha), including all required data files to run.
    Updated source (XAMOS.zip) also includes a MorphOS Makefile.

    There are no speed enhancements at this stage, however collision detection (using SDL_Collide routines) is confirmed working on MorphOS. :-)

    [ Edited by Mequa 05.07.2012 - 20:16 ]
  • »05.07.12 - 20:15
    Profile
  • Cocoon
    Cocoon
    Mequa
    Posts: 51 from 2012/3/30
    XAMOS 0.26 brings multiple screen support, bug fixes in collision detection and new examples to XAMOS on multiple platforms (with more ports pending). Freshly built on MorphOS 3.1 for all those butterfly OS enthusiasts. :-)
  • »06.08.12 - 03:27
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    Glad to see this progressing forward. Keep up the great work on this!
    MorphOS - The best Next Gen Amiga choice.
  • »06.08.12 - 04:03
    Profile