About the bots

Atari8BitBot and AppleIIBot are made by @KaySavetz with massive technical help from @BillKendrick. They 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 is co-host of ANTIC: The Atari 8-Bit Podcast, where he has interviewed hundreds of people who did interesting things with Atari computers. He is also half of Eaten By A Grue, a podcast where he and another buddy 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.

How the Bot Works

The bots run on a Raspberry Pi in Kay’s basement. The Atari bot runs the Atari800 emulator in an X virtual frame buffer. The Apple bot runs the linapple emulator. Python scripts check Twitter every two minutes for incoming tweets directed at @Atari8BitBot and @AppleIIBot, and imports them into the emulator. ffmpeg records the emulator’s output as a video, then the script uploads that video to Twitter as a reply to you.

Directives for Bot Pros (Atari edition)

By default, the Atari bot boots the computer and starts recording 4 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. If you’re going to tie up the bot for that long, make it good.

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.)

Directives for Bot Pros (Apple edition)

By default, the Apple bot starts running your program, lets it run for 3 seconds before starting to record the video. It records the video for 30 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. {B20} will let your program run for 20 seconds before recording begins. {B0} will start recording immediately. The maximum wait is currently 99 seconds.

The S directive tells the bot how many Seconds to record your program running. {S2} will will record it running for just 2 seconds. {S99} will record it for the maximum 99 seconds. If you’re going to tie up the bot for that long, make it good.

The {G} directive gives you an authentic, old-school green screen. The {A} directive gives you an authentic, old-school amber screen. Who needs all those fancy colors?

You can combine directives in one set of brackets, like this: {B30S25} or {GS5B5}

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 maximum 280-character code with the Atari8BitBot, 10 lines will feel like a luxury!