❄️ Vintage Computing Christmas Challenge 2025 ❄️
*
* * *
* * *** * *
** * **
*** * * * ***
* *** *
* * *
* * * * * * *
* * *** * *
*******************
* * *** * *
* * * * * * *
* * *
* *** *
*** * * * ***
** * **
* * *** * *
* * *
*
Author: DrSnuggles
Category: Christmas Challenge and Wild
System: Amstrad CPC, Amiga, modern
Vintage Languages: Locomotive BASIC 1.1, WinApe Z80 ASM, CP/M 2.2 8080 ASM, A68k
Wild: JavaScript, PHP
Lengths:
Len source code
- A68k = 2321
- BASIC = 203
- JS = 206
- PHP = 198
Len exe file:
- A68k = 512 (Bootblock)
- BASIC = 358
- JS = 206
- PHP = 206
Len code only:
- A68k = 290
- BASIC = 228, somehow i had 5b less but source code is now smaller
Story / Description:
I see bit mirrored a lot. Just 1/8 of the full image should be enough.
I started with JS+PHP versions and tried around if mirroring second half and/or
right half is more efficient.
Had no idea for using the diagonals and was still fixed in seeing bits.
Followed up i switched to more vintage languages.
BASIC data contains bits of left half, reversed to the right half.
No arrays or 19 bits here but very compact and clean.
Was thinking of Z80+CPM versions but i decided to do it in an Amiga Bootblock.
Happy Birthday Amiga.
My first Amiga bootblock ever and a result of a lot of disassemblies.
Xcopy for example and also tricks i found in EAB forum. Thanks.
BCPL DOS output should be much shorter.
Instructions:
For BASIC:
INSERT disc into CPC real or emulated, i used WinApe.
Type RUN"VCCC2025.BAS"
Sorry, i used a CPM disk, wasn't sure if i will also do a CPM and Z80 version
but Xmas took more time in advance than expected.
For A68k:
INSERT disc into Amiga real or emulated, i used WinUAE.
For JS:
Open your browsers debug console and paste code in here.
For PHP:
You will need a PHP environment. Create file there and access it.
If you miss line breaks in browser have a look at the response.
Comment:
None of my tries made use of ASCII difference of 10 between " " and "*"
Also the diagonal mirror axis wasn't useful in my eyes.
I'm aware that the JS version is against the rules because an error is thrown.
I love the uncaught snowflake ;)
Merry Xmas to all of us !!!