Snowflake A 2025 Author: Kaszi75 Category: Christmas Challenge System: ZX-Spectrum 48K Language: BASIC Len source code: 218 characters in a simple text file, 48 symbols / tokens / keys Len .tap file: 351 bytes Len code only: 332 bytes Snowflake B 2025 Author: Kaszi75 Category: Christmas Challenge System: ZX-Spectrum 48K Language: BASIC Len source code: 219 characters, 45 symbols / tokens / keys Len .tap file: 306 bytes Len code only: 287 bytes Snowflake C 2025 Author: Kaszi75 Category: Christmas Challenge System: ZX-Spectrum 48K Language: BASIC Len source code: 317 characters, 190 symbols / tokens / keys Len .tap file: 250 bytes Len code only: 231 bytes We can save a lot of bytes with economical data storing (Snowflake C): number --> VAL "number" 0 --> NOT PI 1 --> PI/PI My program is operating with 10 bites long numbers. a$ holds a space character (CHR$ 32) if the actual bit of the number is 0 and * symbol (CHR$ 42) if it is 1. Cycle variables starting with zeros, so at first time they printing on the same place on the axes with AT function. I tested it in Fuse emulator: (downloadable for various platforms) https://fuse-emulator.sourceforge.net/ it works also in qaop online emulator: https://torinak.com/qaop/ All programs in one .tap file, check them and their size in Media / Tape / Browse menu! I subtracted 19 bytes (header: 17 byte, flag + checksum: 2 bytes) from their size! https://sinclair.wiki.zxnet.co.uk/wiki/TAP_format Type R (RUN command) and enter key to run the code type J (LOAD command) then hold ALT gr. and press P key two times (symbol shift + p = "") and enter key to LOAD"" the next example. Merry Xmas! Cheers: Kaszi75 (Budapest, Hungary) Kaszanyitzky, Andras kaszi75@gmail.com