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.

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

Roadmap

These are the next steps, roughly in priority order:

  1. Add the REN command and input redirection
  2. Handle zero-length writes (truncation), the read-only attribute, and file attribute/date/time functions
  3. FCB create, write, delete, and rename functions
  4. Essential BASIC statements: INPUT and READ/DATA
  5. BASIC file I/O statements, and the remaining string features (the MID$ statement, LINE INPUT, and comma print zones)
  6. The rest of runtime error handling (RESUME, RESUME NEXT, and ERL)
  7. Critical error handling
  8. Subdirectory support

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