BASIC-DOS

A PCjs Retro-Programming Project

BASIC-DOS is on Twitter Project maintained by jeffpar

PC DOS Reimagined

Read the Blog, then check out the Preview, which highlights a few of the original Demos.

BASIC-DOS 1.00

Project Status

BASIC-DOS began as a technology demo: a reimagining of what the first IBM PC operating system could have been, with a unified DOS and BASIC command interpreter, preemptive multitasking sessions, and other features that PC DOS wouldn’t offer for years (if ever). The goal now is to turn it into a usable product.

It is not a goal to provide every PC DOS function, or to be 100% compatible with PC DOS. BASIC-DOS implements what its own commands and BASIC programs need, plus enough of the PC DOS API to run typical DOS programs, so unchecked items below are possibilities, not commitments.

This section tracks what’s been completed ([x]) and what remains ([ ]). Items marked partial work, but with known gaps.

Boot and System Configuration

Device Drivers

Kernel: Processes, Memory, and Sessions

Kernel: File System

Command Interpreter: DOS Commands

Command Interpreter: BASIC Language

Floating-Point

BASIC-DOS will support only one floating-point type: IEEE 754 64-bit (double-precision) values. It won’t use any MBF (Microsoft Binary Format) code.

DONKEY.BAS

DONKEY.BAS, from the original IBM PC DOS 1.00 diskette, is a good test of BASIC-DOS’s compatibility with IBM PC BASIC programs. These are the items it needed, followed by related work that remains. Since BASIC-DOS compiles an entire program before running it, every statement must at least be recognized, even ones that DONKEY.BAS rarely or never runs (eg, PLAY and CHAIN).

Build, Tests, and Documentation

Non-features

BASIC-DOS uses BASIC for batch files, so reproducing PC DOS batch syntax is not a project goal.

Roadmap

These are the next steps, roughly in priority order:

  1. Add input redirection
  2. The read-only attribute, and file attribute/date/time functions
  3. Remaining string and input/output features (the MID$ statement and comma print zones)
  4. The rest of runtime error handling (RESUME, RESUME NEXT, and ERL)
  5. Critical error handling

License

BASIC-DOS is an open-source project on GitHub released under the terms of an MIT License.

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