No-Code Xmas Star
Author: Urchlay (aka B. Watson)
Category: Christmas Challenge
System: Atari
Language: Assembly (ca65 v2.19)
Len source code: 2210
Len exe file: 270
Len code only: 0
Instructions:
Install Atari800 and the *real* XL or OSB ROM images (this will NOT work
with the Altirra ROMs). Drag and drop xmasxl.xex to the emulator, or run
from command line with "atari800 xmasxl.xex". You can also use a peripheral
emulator such as atariserver or APE to run this on real hardware.
Description:
The .xex file contains no executable code, only data. This includes screen
display data, a display list, and data loaded into shadow registers to make
the Atari display the screen data. Also, the init address is set to the
"wait for keypress" OS routine, and the run address does a warmstart (after
a key is pressed).
To build from source on Linux or other Unix-flavoured systems, you should
be able to just type "make" in the source directory (provided cc65 is
installed properly, with its tools in your shell's $PATH).
Comments:
The source is called "xmasstar.s". I didn't name it "source.txt" because
ca65 really wants asm source filenames to end in ".s".
Because the "wait for keypress" routine isn't part of the official Atari
OS API, there have to be different executables for different Atari models.
xmasxl.xex is for the 600XL, 800XL, 65XE, 130XE, and XEGS/XEGM (but NOT
the 1200XL).
xmas800.xex is for the 400 and 800 (OS revision A or B).
xmas1200.xex is for the 1200XL, but only OS revision 10 (the most commonly
found 1200XL OS in the wild).
Running the wrong executable will crash the machine.
Since I used a cross-assembler that runs on modern machines (not the Atari),
there's no PNG image of the source listing on the Atari.