The Amiga Bootblock Crystal
Author: atsampson
Category: Christmas Challenge
System: Commodore Amiga
Language: Assembler
Len source code: 2804
Len exe file: 208
Len code only: 196
Instructions:
crystal.adf is an Amiga disk image that will boot into the program.
Start the FS-UAE emulator in its default PAL Amiga 500 configuration
with the disk image:
fs-uae crystal.adf
Or do the same with MAME:
mame a500 -flop1 crystal.adf
Description:
The program is written as a disk bootblock, with no dependencies on the
operating system. It relies on being loaded into chip RAM, though;
on an Amiga with non-chip RAM it won't work with Kickstart 2+. I've tested
it successfully on a 2.5MB A500 with 1.3, and a 2MB A500+ with 2.04.
The 68000 code generates a single-bitplane image of three stars and a
program for the Amiga's "copper" graphics coprocessor, then starts the
copper and enters an infinite loop. The copper does most of the work: it
sets up a custom graphics mode and palette, then displays the stars
twice for each line using a pair of playfields, with different
horizontal offsets and colours.
The program was cross-assembled using asmotor and the disk image built
with xdftool. MAME's unidasm was useful for optimising instruction
encodings.
Comments:
I was surprised that nobody did an Amiga version last year. I liked the
idea of doing this with copperlists - you could add some subtle animation
with a few more bytes. I suspect that using a single bitplane for the whole
image and drawing it with the CPU would be smaller overall, though...