2017-08-03 06:20:26 UTC
As you may be aware, BASIC.SYSTEM only supports CHR$(4) from BASIC apps,
and not from machine language apps. This is the reason a fair number of
machine language apps written for DOS 3.3 do not run under ProDOS.
Some time ago, I proposed "porting" DOS 3.3 to ProDOS, such that low-level
DOS calls were reinterpreted as ProDOS calls, as one way DOS 3.3 programs
could be ported to ProDOS, if they could not be made to run under
BASIC.SYSTEM. I've actually come up with a simpler version of that idea.
Many applications, even those not written in BASIC, only interact with DOS
via the PRINT CHR$(4) route. The idea would be to either rewrite the
interpreter, or create a wedge between the program and BASIC.SYSTEM -
preferably the former but even the latter may work and be easier! - so
that when a program does the equivalent of PRINT CHR$(4);"COMMAND" it
knows to do the right thing. At most, a hook commonly used for regaining
control from the error handler, and the CALL 1002 hook, will need to be
For a more complete implementation, paths could be assigned to virtual
drives to emulate ,D1 or ,D2 on a hard-disk system.
I suspect that simply supporting this method will be enough for a lot of
(There is MECC.SYSTEM, but it is a crutch!)