When I was a kid, my Atari 800XL was my favorite thing. Back then most of my friends were using their home computers (usually an Atari or a Commodore) to play games. Although I did play games with my Atari, I mostly used it to learn how to program in BASIC.
I thought, why play a game when I could learn how to completely control the computer myself? Learning to program in BASIC was way more fun than any game!
I devoured magazines and books about programming in BASIC on the Atari, but one that I remember fondly is a book with a crazy title: Dr. C. Wacko’s Miracle Guide to Designing and Programming Your Own Atari Computer Arcade Games.



This book was written by David Heller, John Johnson and Robert Kurcina in the persona of Dr. C. Wacko. It was based on a programming series that had appeared in Atari Connection magazine on occasion.
This is without doubt a weird book. It it written in the first person and filled with lots of fun cartoons to help get points across. It also came with a floppy disk of everything so you didn’t have to type everything in, although typing things in was (and still is) a great way to learn.1
As an aside, this book was spiral bound, making it easy to lay flat. I especially liked the odd way the book worked: The front cover was the back and the back cover could be used as a bookmark of sorts.
It may not be as zany or irreverent2, but there is new book I just received could be considered a spiritual successor of this Dr. C. Wacko book: Introduction to Computer Programming for kids of all ages.
Written by Joe Strout, a former coworker of mine and an all-around great guy. Joe is one of the smartest folks I know and he’s decided to put his considerable talents towards creating a free, open-source language (Mini Script) to help teach programming concepts3.
By itself that may not be all that interesting to retro enthusiasts, but there are two things he’s done that I think make this appealing to the retro computing community:
First, there is the Mini Micro, a standalone app that lets you use MiniScript in a command-line scripting environment, similar to how many 8-bit computers worked back in the day. Back then it was easy to get started with programming because as soon as you turned on your computer it was sitting at BASIC’s “Ready” prompt, waiting for you to type commands. The Mini Micro tries to bring that back.
Second, there is the open-source (and also public domain) implementation of BASIC using Mini Script, called MiniBASIC. This is not the focus of the book, but it is still especially cool because it shows off the capabilities of the Mini Script language itself and gives you a BASIC programming environment that is very similar to the ones you may have used in the 80s, such as AppleSoft or Commodore BASIC.
Sadly it does not seem to emulate Atari BASIC all that closely, but since the full source code is available, perhaps I might try tweaking it for that!
Getting back to the book, Joe has put together a lovely 54 page color book to introduce programming concepts using MiniScript with the Mini Micro app. Plus it is filled with fun cartoons and illustrations by Allie Daigle. This could be a great way to get young folks interested in computing and could also be useful for teachers in elementary to middle school settings.
As I mentioned, Mini Micro (and MiniScript) are all free. You can download Mini Micro from here (with versions for Window, macOS and Linux):
https://miniscript.org/MiniMicro/
You can even use it in a web browser, if you don’t want to install anything!
Note that for macOS, I had to open Terminal and run these commands after unzipping to allow MiniMicro to run on macOS Ventura:
cd Downloads
xattr -cr MiniMicro.app
The book does a good job of slowly rolling out programming concepts in ways that keep things interesting. It starts with a few simple commands, but before things start to get boring, it jumps into showing how to do some fun graphics and games. The book itself is only about 50 pages making it easy for anyone to get through quickly.
I don’t want to go into too many details about Mini Micro or MiniScript as that’s what the book is for, but I thought I should point out a few things about the MiniScript language itself.
MiniScript:
does not use line numbers.
is object-oriented.
is written in C# and C++ with full source on GitHub
has all the usual commands you’d expect (see the Quick Reference)
Has another book, Learn to Code in 30 Days that is available on Amazon
A while ago I wrote a post on Goto 10 about the Archimedes Spiral in BASIC, Xojo and Python. Here is the equivalent code to run in Mini Micro:
gfx.color = color.white
gfx.fillRect(0, 0, 960, 640)
xp = 144
xr = 4.71238905
xf = xr / xp
for zi in range(-64, 64, 1)
zt = zi * 2.25
zs = zt * zt
xl = round(sqrt(xp * xp - zs), 1)
for xi in range(0-xl, xl, 1)
xt = sqrt(xi * xi + zs) * xf
yy = (sin(xt) + sin(xt * 3) * 0.4) * 56
x1 = xi + zi + 160
y1 = 90 - yy + zi
gfx.color = color.black
gfx.line(x1, 640 - y1, x1, 640 - y1)
end for
end for
If you fondly remember programming in BASIC back in the retro days, you might want to give Mini Micro, MiniScript or MiniBasic a try!
Yes, I actually have this book and yes it still has its floppy in the cover, with the seal unbroken.
Which is probably a good thing, to be honest. Some of the silliness in the Dr. C. Wacko book could get exhausting at times.
I’ve worked with Joe for a time when we were both at Xojo and also on consulting projects when neither of us were at Xojo. I can honestly say I’ve learned a lot from him.
Thank you for the shout-out, Paul! I do hope Mini Micro can scratch that retro-computing itch for some of your readers. And I love your Archimedes Spiral program!
Thanks -- MiniBasic sounds cool, but how do you run it on Linux? I'm clearly not understanding what the blog or READMEs are trying to tell me.
The readme says "If you have downloaded MiniBASIC to run on Linux, you should now have a folder with the following files" but there is no user.minidisk (folder), and "simply run MiniMicro.x86_64" doesn't start MiniBasic. Nor does something like copying basic.ms into the same directory as the 'x86_64 and then running ./MiniMicro.x86_64 basic.ms& work.
Any hints?