Starting in 1990 each December I would write a Christmas "Demo" to show
off at the most awesome of demo scenes, by which of course I mean
the computer room of my Grandmother's Christmas Party attended by
You can watch my coding skills progress over the years:
1990 -- ANSI art tree with off-key PC speaker music (GW-BASIC)
A lot of PRINT and COLOR statements using the IBM extended ASCII
table found in the back of a book. The music is off key; quite possibly
the frequency table I had for music didn't differentiate for
The code itself is remarkably obfuscated in retrospect.
1991 -- ANSI art santa scene with more off-key PC speaker music (GW-BASIC)
ASCII/ANSI art getting a bit better. Eventually I would make
mediocre ANSI art for local BBSes.
1992 -- EGA manger scene with PC-speaker music (QBASIC)
By now I had moved onto QBASIC and graphics programming.
I had some trouble with transparent sprites (note that they are
walking on a black background). A lot of flickering as I didn't
know about page flipping. There was also some levity at my
expense because I was too lazy to make appropriately colored
feet for the African wise man.
Looking at the code, I drew the whole things out of dots and lines,
and generated the sprites on the fly, also out of dots and lines.
1993 -- EGA flying santa with BGI graphics, no music (Turbo Pascal)
Now I was coding in Turbo Pascal 5. The book I had (no internet
access then) only described the BGI graphics, so that's what I used.
Mercifily I didn't bother with music this year.
1994 -- VGA shepherd with soundblaster effects (Turbo Pascal + x86 asm)
I think this one is my favorite.
I had been an exchange student in Germany and while there picked
up Turbo Pascal 6 as well as a copy of the PCGPE (PC Game Programmer's
Encyclopedia) which had all kinds of fun info on VGA mode 13h
320x200x256 graphics from assembly language.
The nice graphics were made with Deluxe Paint.
I then had a TSR I wrote that read the image out of VGA RAM into
disk, which I compressed with my own custom "PaintPro" format
using RLE compression (which I had independently invented,
still didn't have easy access to the internet. The file
format of mine was co-incidentally very similar to PCX).
The music and sound were using assembly language calls into
the CTVOICE and SBFM drivers. And yes, Dance of the Sugar Plum
Fairy is an odd choice of music, but it came with the sound
card I had.
1995 -- no demo this year?
1996 -- VGA flying santa with soundblaster effects (Turbo Pascal + x86 asm)
This was only a half-hearted effort. It was a brief new demo
combined with a mildly updated version of the 1994 demo.
For sound I was now using Ethan Brodsky's sound libraries
(re-using a lot of code I was using in my
Tom Bombem game).
After this I went off to college and was too busy with finals in
December to do much coding (in fact the party was often right
in the middle of finals)
2018 -- Apple II demo
I restarted making Christmas demos after a long absence.
Look at the 2018 version here
Here is a zip file containing the files. You probably want to run
this under DOSbox,
I'm pretty sure they aren't all going to work
on Windows. Also tried to include the source code.
Also the time stamps on some of them are a bit more recent; I had to
go back and "fix" some of the code that was using hard-coded path names