Atari8BitBot is made by Kay Savetz with massive technical help from Papá Robot, Bill Kendrick and Rob PlayerMissile. We took inspiration from BBCMicroBot (which does a similar thing but with an emulated BBC Micro, a computer that was popular in the United Kingdom.) Kay also maintains AppleIIBot and PCBasicBot.
Kay is co-host of ANTIC: The Atari 8-Bit Podcast, where they have interviewed hundreds of people who did interesting things with Atari computers. They are also half of Eaten By A Grue, a podcast where they have played every single Infocom text adventure game.
Bill Kendrick is creator of Tux Paint, the award-winning open source drawing software for young children, and Chief Tech Officer at Smashwords.
Rob McMullen is host of the Player/Missile podcast, contributor to the atari800 open source emulator project, and author of tutorials on advanced programming concepts for Atari 8-bit computers.
How the Bot Works
The bot runs on a Raspberry Pi in Kay’s basement. A Python script checks Bluesky every two minutes for posts tagged #Atari8BitBot, and imports them into the Atari800 emulator which runs headless, creating an AVI file of the program running. ffmpeg converts that AVI into a video format that Bluesky prefers, then the script uploads that video as a reply to you.
Directives for Bot Pros
By default, the Atari bot boots the computer and starts recording 3 seconds later. This is just enough time to finish booting into Turbo-BASIC XL and start your program. (The exception is Logo and Action! programs, which start recording immediately.) It records your program running for 20 seconds.
If you don’t like this standard recording behavior — for instance, if your program takes a long time to draw a fractal — you can change it with a directive at the start of your tweet.
The {B} directive tells the bot how many seconds to wait before Beginning to record. {B25} will let the computer run for 25 seconds before recording begins. {B0} will start recording immediately — you’ll record the boot-up process. The maximum wait is currently 99 seconds.
The {S} directive tells the bot how many Seconds to record your program running. The default is 20 seconds. {S2} will will record it running for just 2 seconds. {S99} will record it for the maximum 99 seconds.
The bot only allows one set of bracketed directives, but is flexible about the order you use them. For example, you can record a Logo program with {LB10S10} or a Pilot program with {S20PB0} or a BASIC program with {B5S50} … (remember the B stands for Begin, not BASIC.)
The code that runs the bot is available at https://github.com/savetz/Atari8BitBot/
More Fun
Also try your hand at our friend, BBCMicroBot.
For more adventures in constrained programming of microcomputers, check out BASIC10Liners, an annual competition to create games in just 10 lines of BASIC code, on your choice of ancient microcomputer. After trying your hand at Bluesky’s 300-character code with the Atari8BitBot, 10 lines will feel like a luxury!