This autoboot file will load the loading screen, all code and then start the SAM MOD player.
This is the initial front end. It provides a screen to select the output device:
And the type of Amiga the mod was intended for:
Once these have been selected, the burst player code is generated.
The disk (or mass storage device) is then scanned for mod files, the drive can be changed or rescanned. Mass storage device records can be selected with cursor left or right, when holding shift the selection jumps 10 records, when holding symbol the selecting jumps 50 records.
When a file is selected, it is loaded and the "demo" starts.
This generates the code for the burst player based on the output device:
The burst player outputs the samples from the sample buffers to the output device.
The playback rate is 10,400 Hz, this is achieved by outputting sample data 208 times a frame, this is once every 1.5 scan line. During the border area, timing is manual. During the screen area line interrupts are set every 3 lines, the first output is on the line interrupt, the second is timed manually at 1.5 line, after which control is given back to the "demo" until the next line interrupt occurs.
This shows information on the module being played via various screens:
This is the tracker. It is called every frame. It reads the pattern and sample information and fills the pointers for the sample playback buffers.
This is a simple example that replaces the "demo".
Ant is used to invoke pyz80 for assembling, this can be executed from Eclipse or Visual Studio Code.
"all" will assemble loader, demo, burstplayer and tracker, the four object files are then assembling boot which produces an autoboot disk image. SimCoupe is then started with the disk image.
The properties used to find python, pyz80 and SimCoupe are at the top of the build.xml file.