Commented Disassembly of Li-Chen Wang's classic Kaleidoscope program for the Cromemco Dazzler
Kaleidoscope is a rather tiny (127 Bytes) demo program for the Cromemco Dazzler by Li-Chen Wang. It displays a 64x64 colour graphic much like a mechanical/optical kaleidoscope using the repetitive structure of the Dazzlers memroy. The program was sold by Cromemco as on its own for 15 USD on paper tape or later on floppy disk as part of their DAZZLER Games pack at 95 USD.
Here an example what it might look like (*1):
While Kaleidoscope might be considered more like a short demo for same new hardware, it had an amazing effect in its time - and honest, it's still catchy - which other program can claim to have slowed down trafic to a stand still on NYC's 5th Avenue? It may also have influenced some other well known programmers to write similar programs - like the Low Res Kaleidoscope delivered as part of COLOR DEMO on the Apples DOS 3.2 Disk for the Apple II.
In early October 2022 Maury Markowitz asked on RetroComputing.SE if there's some high level analysis for that program, as all he could find was a basic disassembly. I tried some Google-Fu, found are many sites mentioning Kaleidoscope, including a few running some emulation to show it's output (*1), but none offering a commented source or high level description - the only one attempting to do so in 2020 closed his blog right before touching that part :(
Being curious (and a bit bored) I decided to take a look at the disassembly, resulting in what's found here.
A few hours after the commented disassembly was linked on Retrocomputing.SE, Spektre posted a C++ recreation. A copy is added with permission - might be a more pleasant reading to today's programmer than Assembler :))
- "Build the TV Dazzler" from February 1976 issue of Popular Elecronics (at Bitsavers)
- Dazzler as Interface Age's Card of the Month of March 1977 (at Bitsavers)
- Cromemco Dazzler Instruction Manual Revision C of March 1976 (at Bitsavers)
- TV-Dazzler advertisement in the August 1976 Cromemco Catalogue (at Archive.Org). It includes pictures of their program offerings (on Paper tape :)).
- The Cromemco Story, a 1980 article about the company's history (so far) in the IACO I/O News Vol.1 Issue.1 (at Archive.Org)
- Disassembly Listing -> Disassembly Listing used as base to regenerate the source
- Kaleidoscope.asm -> Commented source listing of the Dazzler Kaleidoscope program
- Kaleidoscope_Manual.png -> Kaleidoscope's 'manual' page from p.32 of the Cromemco Dazzler Games Manual (at Bitsavers)
- Kaleidoscope in CPP.md -> Spektre's C++ recreation of Kaleidoscope
- Kaleidoscope_CPP.gif -> Exemplary output using Spektre's C++ recreation
- README.md -> This file
*1 - Well, the real output of a real Dazzler on a real CRT isn't as shiney and sterile as those modern browser implementations make it look:)) Also, the modern variant runs at about 2-3 times the original speed.