The AgonLight is an amazing device combining retro vibes with a modern programming environment.
The Agon Electron Operating System is a EZ80 microkernel that is able to spawn different Z80 'personalities'.
A 'personality' is a Z80 operating environment so that it mimics a retro or fantasy machine. Currently two personalities exist:
- CP/M 2.2 machine having 64kB at it's disposal and can run CP/M DSK images (128 byte sectors)
- MSX-DOS machine that can run CP/M and MSX-DOS programs on MS-DOS compatible DSK images (512 byte sectors, 9 sectors, 80 tracks, 2 sides).
Currently the OS has the following commands:
Initialises a personality / Z80 operating environment. This is a mandatory first step before we can RUN a personality.
Load a binary image into memory. Binary images have a header that presedes the real code that specifies it's location in memory and start address. Check MSX binary format to get an idea how this works.
- -w specifies a warmboot image that is reloaded when requested, needed for CP/M.
- -0 to -3 specifies the 'slot' the image is loaded in. 0 is 0x50000 and 1 is 0x60000, etc.
Saves a binary image from memory in slot 0. This also creates the header as mentioned before.
- [begin address]
- [end address]
- [start address]
Mount a DSK image to function as a virtual floppy drive.
- -c to specify CP/M sector size, otherwise 512kB sectors are presumed.
- [filename]
Run the personality from the specified slot and starting address
- -0 to -3 specify the 'slot' where the Z80 is starting. 0 when omitted.
- [start address]
Show a directory from the SD card.
- [subdirectory] or the current directory when omitted.
Change directory to.
- [subdirectory]
Make directory.
- [subdirectory]
Delete a file or empty directory
- [filename/directoryname]
Type a file contents to the screen
- [filename]
Open and run the contents of a batch file
- [filename]
The batch files contain a collection of abovementioned commands and can be used to automate things.
init
load /cpm/bios.bin
load -w /cpm/CPM22-ccp-bdos.bin
load /cpm/CPM22-bios.bin
mount -c /cpm/floppy.dsk
run 0x0000
The bios is loaded in both slot 0 and slot 1 to avoid some interslot call issues. We have plenty of RAM on the Agon so that's not an issue. We have slot 0 identifying as ROM and slot 1 identify as RAM so that's what MSX-DOS will use to load MSXDOS.SYS and COMMAND.COM. This will overwrite the bios in slot 1 in the end but the diskrom is remaining. The EZ80 internal RAM is mapped into HIMEM from E000 to FFFF and is remapped on slot-switches so the important MSX page 3 is seemingly always there.
init
load -0 /msx/bios.bin
load -1 /msx/bios.bin
load -1 /msx/diskrom.bin
mount /msx/MSXDOS.DSK
run -0 0000