BASIC-DOS

A PCjs Retro-Programming Project

BASIC-DOS is on Twitter Project maintained by jeffpar

BASIC-DOS on an IBM PC with 64K, No Video, and a VT100 Terminal

The machine below is an IBM PC (Model 5150) with a 4.77Mhz 8088, 64K of memory, two diskette drives, a serial port, and no video adapter: its only display is a DEC VT100 terminal connected to COM1 at 9600 baud. It boots the BASIC-DOS Terminal Only Demo diskette and runs a single session on the VT100.

IBM PC, 64Kb RAM, Dual Floppy Drives, COM1, No Video

VT100 Terminal

VT100 Display
ON LINE
LOCAL
LOCKED
L1
L2
L3
L4
CAPS

Wait a few seconds for the BASIC-DOS banner to appear on the VT100, then type a command, such as DIR or PRINT "Hello from the VT100" (the VT100 has keyboard focus when the page loads; click its screen to give it focus again). Use the MEM command to display current memory usage. The PC has no screen of its own, so its diskette drive and Reset controls are below the VT100.

With only 64K of memory, there isn’t room for all of COMMAND.COM, so BASIC-DOS loads only its core: the graphics statements (CIRCLE, DRAW, GET, LINE, PAINT, PRESET, PSET, and PUT), the sound statements (PLAY and SOUND), the file statements (eg, OPEN and CLOSE), and LOAD’s support for tokenized BAS files are left out, and using one of them reports Not enough memory. There is no floating-point either: numbers are 32-bit integers, and numeric functions like SQR are unavailable.

This demo is also available on an IBM PC XT with 640K and a 10Mb hard disk.

No Video Required

The IBM PC doesn’t require a video adapter. SW1 switches 5 and 6 tell the BIOS which display is installed, and when both are ON (the setting an EGA uses, since it has its own BIOS), POST skips its video tests and initialization. The BIOS video functions still run, but with no display to update, the BIOS has nothing to show until BASIC-DOS opens COM1.

BASIC-DOS doesn’t require one either. The diskette’s CONFIG.SYS skips the VKD$ (video and keyboard) driver, along with FPU$ and PIPE$ (as on the Monochrome demo), and opens the only console on COM1 with the COM driver’s VT100 terminal type. Commands like CLS and LOCATE use VT100 escape sequences, the VT100’s DELETE key erases the previous character (like the PC’s BACKSPACE key), and XON/XOFF flow control is enabled, which the VT100 relies on whenever it falls behind (eg, while smooth scrolling).

BASIC Samples

The diskette’s SAMPLES directory contains text copies of the BASIC samples from the IBM PC DOS 1.00 diskette, but most of them use graphics (and some use floating-point), so try the Color (with FPU) machine demo instead.

CONFIG.SYS from the BASIC-DOS Terminal Only Demo Diskette

REM 64K demonstration with no video: one session on a VT100 connected to COM1
REM Drivers for missing hardware (eg, other COM ports) are automatically skipped
SKIP=VKD$,FPU$,PIPE$
BUFFERS=2
FILES=8
SESSIONS=1
CON=COM1:9600,N,8,1,VT100
SHELL=COMMAND.COM PATH$="A:\;A:\EXT;A:\DEMOS;A:\SAMPLES"

Copyright (c) 2020-2026 Jeff Parsons Released under MIT License