BASIC-DOS

A PCjs Retro-Programming Project

BASIC-DOS is on Twitter Project maintained by jeffpar

BASIC-DOS on an IBM PC XT with Dual Monitors

The machine below is an IBM PC XT (Model 5160) with a 4.77Mhz 8088, 640K of memory, two monitors (a Monochrome Display and a Color Display), two diskette drives, and a 10Mb hard disk. It boots the BASICDOS-360K-DUAL diskette and runs one session on each monitor: PRIMES.BAT on the Monochrome Display, while the Color Display switches to the hard disk’s SRC directory and runs MK to build BASIC-DOS itself, with MAKE, MASM, and LINK. Since the machine has a hard disk, the boot sector first displays Press a key to start... on the Monochrome Display; press any key (or wait 5 seconds) to boot from the diskette, or press Esc to boot from the hard disk instead.

IBM PC XT, 640Kb RAM, 10Mb Hard Disk, MDA and CGA

Monochrome Display
Color Display
Caps
Num
Scroll
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
Esc
1 !
2 @
3 #
4 $
5 %
6 ^
7 &
8 *
9 (
0 )
- _
= +
Back
-
Num
Scroll
Tab
Q
W
E
R
T
Y
U
I
O
P
[ {
] }
↵
7
↑ 8
9
Ctrl
A
S
D
F
G
H
J
K
L
; :
' "
` ~
← 4
5
→ 6
+
Shift
\ |
Z
X
C
V
B
N
M
, <
. >
/ ?
Shift
PrtSc
1
↓ 2
3
Alt
Space
Caps
Ins 0
Del .
Esc
Tab
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
Num
Scroll
1 !
2 @
3 #
4 $
5 %
6 ^
7 &
8 *
9 (
0 )
- _
= +
Back
-
+
Q
W
E
R
T
Y
U
I
O
P
[ {
] }
↵
7
↑ 8
9
A
S
D
F
G
H
J
K
L
; :
' "
` ~
← 4
5
→ 6
\ |
Z
X
C
V
B
N
M
, <
. >
/ ?
Shift
PrtSc
1
↓ 2
3
Ctrl
Shift
Alt
Space
Caps
Ins 0
Del .

Use SHIFT-TAB to move keyboard focus from one session to the next. For even more sessions, try the Dueling Monitors demo, which runs FOUR sessions, two on each monitor.

This demo is also available on an IBM PC, an IBM PC AT, and a COMPAQ DeskPro 386.

The BASICDOS-360K-DUAL diskette’s CONFIG.SYS runs one full-screen session on each monitor: PRIMES.BAT on the Monochrome Display, and on the Color Display, a build of BASIC-DOS itself (with MAKE, MASM, and LINK) from the hard disk’s SRC directory. If there’s no hard disk (eg, on an IBM PC), the Color Display session runs PIPES.BAT instead, which pipes the output of DIR through the CASE filter over and over.

At first glance, it might appear there are two machines running, but it really is just a single machine running two BASIC-DOS sessions. Use SHIFT-TAB to toggle keyboard focus between them. Since these sessions don’t use borders, the presence of a blinking cursor indicates which session has focus.

A MEMSIZE line in CONFIG.SYS (eg, MEMSIZE=128) can limit the total memory used by BASIC-DOS. You might be tempted to think that MEMSIZE is a way to “partition” memory, so that each session has a dedicated amount, but no – MEMSIZE is simply a means of testing BASIC-DOS with different memory sizes. And in any case, partitioning memory would not be a good strategy.

CONFIG.SYS from the BASICDOS-360K-DUAL Diskette

REM Demonstration of dual monitors with full-screen sessions
FILES=20
BUFFERS=4
SESSIONS=4
CONSOLE=CON:80,25,0,0,0
SHELL=COMMAND.COM PATH$="A:\;A:\BIN;A:\SAMPLES;A:\DEMOS":PRIMES.BAT
CONSOLE=CON:80,25,0,0,0,1
SHELL=COMMAND.COM PATH$="A:\;A:\BIN;A:\DEMOS":IF EXISTS("C:\SRC") THEN PATH$="C:\;C:\BIN;C:\DEMOS;C:\TESTS;C:\TOOLS":C: :CD SRC :MK :ELSE PIPES.BAT

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