__MACOSX/._Screenshot 2025-12-12 at 19.44.54.png 531B
__MACOSX/._Screenshot 2025-12-12 at 19.45.16.png 531B
__MACOSX/._Screenshot 2025-12-12 at 19.45.25.png 531B
__MACOSX/._Screenshot 2025-12-12 at 20.40.49.png 531B
__MACOSX/._vc32025.prg 176B
file_id.diz 1.07K
main.ass 3.89K
Screenshot 2025-12-12 at 19.44.54.png 160.30K
Screenshot 2025-12-12 at 19.45.16.png 163.82K
Screenshot 2025-12-12 at 19.45.25.png 180.26K
Screenshot 2025-12-12 at 20.40.49.png 138.59K
vc32025.prg 175B
file_id.diz
Snowflake
Author: Shiela Dixon
Category: Christmas Challenge
System: Vic20
Language: Assembler
Len source code:
Len exe file: 175
Len code only: 158
Instructions:
Either attach the D64 in an emulator, LOAD"star.bas",8 or copy the file and Edit>Paste into the emulator (Vice allows this)
Description:
As per my BASIC version (which I wrote first) it stores one-quarter of the snowflake and uses calculations to mirror those points vertically and horizontally. Each point is stored as a single byte - an x and y offset from the centre of the screen. The high nybble (4 bits) of the data byte is the 'y' co-ordinate (number of rows) and the low nybble is the 'x' (columns). These are used to calculate the position of the point in each quarter of the screen. So I'm saving bytes by using 4-way symmetry and saving bytes by combining the x & y co-ordinates (which are easy to split out).
Comments:
For the code-only size, I've taken off the 15 bytes of the basic stub, plus the two-byte load address. That leaves the actual machine code from my first 'lda' to the last byte of the data.