@PCBASICBot

Send a tweet with a short BASIC program to @PCBASICBot and your program will run on an emulated DOS PC. The bot will tweet you back with a video your program’s output!

The bot accepts programs in GW-BASIC by default (whose code is 100% compatible with BASICA). It also accepts programs in QBASIC: to do this, just start your tweet with {Q}

GW-BASIC and BASICA require line numbers. (Immediate mode is not supported.) QBASIC doesn’t require line numbers, but does allow them. Your tweet must start with a line number or the {Q} directive, otherwise the bot will quietly ignore it.

Don’t type RUN at the end of your tweet. The bot does that automatically.

For GW-BASIC, the bot uses the PC-BASIC emulator. Its documentation is great! It probably does everything you want, but if you’re trying to do something fancy that doesn’t seem to be working, check out PC-BASIC’s list of unsupported/not implemented commands.

For QBASIC, the bot uses QBASIC 1.1 running in DOSBox. You’ll find good tutorial and reference material here and here.

The emulated machine has a DOSBox setting of 3000 cycles, which is roughly equivalent to a 286 at 14 MHz.

Directives for Bot Pros

By default, the bot runs your program and starts recording 3 seconds later. It records your program running for 5 seconds. (May raise this later.)

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 5 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 {G} directive gives you an authentic, old-school green screen. The {A} directive gives you an authentic, old-school amber screen.

The bot only allows one set of bracketed directives, but is flexible about the order you use them. For example, you can record a green-screen QBASIC program with {QB10S10G} or {GB20QS15}

Direct questions to Kay Savetz.