scene.org File Archive

File download

<root>­/­parties­/­2025­/­vccc25­/­christmas_challenge/shiela_commodorevic-20_assembler_158b_vc3-2025.zip

File size:
600 097 bytes (586.03K)
File date:
2025-12-30 23:34:07
Download count:
all-time: 1

Preview

  • __MACOSX/._file_id.diz 602B
  • __MACOSX/._main.ass 313B
  • __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.