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...