Asm and BASIC Fun: RiscAri
Home RISCOS News Docs CBM128 Files Links Apple2
Page last updated on Jan 18th of 2021.
Atari Programs on RISC OS:

This project is to create a compatibility layer for porting Atari GEM
programs to RISC OS, by providing a TOS+GEM API in RISC OS.
As it grows it will add support for emulating the 680x0 CPU to run
Atari GEM programs natively without porting.

This has become my primary RISC OS project. There is an amazing amount of software out there for the 68K Atari computers that would be a huge benifit to have on RISC OS, so having the ability to run that software is a big push for me. Also this will make writing programs for the two different targets at the same time a lot easier in many cases, as the Atari version recompiled to ARM native will get it going until ported to the RISC OS API later.

It will still take a little while before it gets far enough to be useful. Once it does downloads will begin to apear.

This is a project to provide a few modules that provide the API of Atari TOS on RISC OS. Once it is at a point that porting software to run on it can be done without any modification to the software being ported, then will be the time to add in a 680x0 emulation layer, for running 68K native GEM and some TOS applicaitons.

This relies on the software being well behaved. In time it is likely that some of the HW will be simulated to support things where the OS falls short (like sound DMA, and Yamaha sound). Though for the most part if it access the Atari HW directly do not expect it to ever run in this environment.

The components of this system are RISC OS modules, these are to be:
  • TOSBIOS: Implements the BIOS functions of TOS.
  • TOSXBIOS: Implements the XBIOS functions of TOS.
  • TOSGEMDOS: GEMDOS, the core OS, somewhat DOS like, add some MiNT for a bit of Unix like system.
  • TOSALine: A-Line graphics functions.
  • GEMVDI: Implements the GSX and VDI graphics systems and API, on top of RISC OS.
  • GEMAES: Gives a functional AES and API of AES, integrates with the RISC OS Window Manager to provide near seamless operation.
  • GEMACCLdr: Gives support for loading GEM Desk Accessories, both 68K and ARM.
  • TOSProgLdr: For loading TOS programs of all kinds, both using ARM and 680x0 ISAs.
  • Layer68K: Provides emulation for the 68K ISA on RISC OS. On many processors it takes advantage of the support of Big Endian data operation support in ARM.
  • TOSXFS: Extensible File System support. That is the TOS way of doing multiple forign file systems, this also provides enough integration to allow using these File Systems from RISC OS programs.
  • GEMDesk: A level of integration with the Filers, Pinboard, and IconBar to allow for some of the GEM Specific Desktop functionality to work.
Not all of the above is needed for all programs. Many programs will work just fine with only a small subset of these modules. Initially I am implementing just enough to run some GEM applications. That is just some TOS, VDI, and AES calls.

This is a work in progress, will be uploading early pre-release versions for people to look at. And it is extremely early in development at present, with very little that actually works. Downloads will start apearing when the system is able to run at least one GEM program correctly. Also likely to give it a better IconSprite by then :) .

Should also note that I am taking this opertunity to have a bit of fun. While much will be in assembly (as is logical), some will be in C, some in PASCAL, and a bit in Compiled BASIC V for the fun of it. It is also of note that each of the languages has its strong points, and it will be to that advantage that the language for each part is selected, including the use of Compiled BASIC V. The Pascal will be slow comming, as there will be in large part a dependant on the progress of a Pascal compiler evolving out of a PL/0 compiler.

Note that at the same time as working on this system I am working on a similar system for running on Atari computers and allowing the use of RISC OS programs. I am attempting to keep both projects in sync as far as level of completeness at any given time. Though the RISC OS on Atari layer will only emulate older CPU's, as the 68K ISA is not quite as good for emulating ARM as ARM is for emulating 68K.