rewriting legacy OS for new iron

From: Kevin Handy <>
Date: Tue Sep 14 14:17:59 2004

Paul Koning wrote:

>>>>>>"Ron" == Ron Hudson <> writes:
> Ron> Would there be any interest in re-writing somthing like RSTS/E,
> Ron> ITS, TWENEX or one of the other legacy OS to work on x86
> Ron> machines? The idea would be to do something like Linux has done
> Ron> for unix but for one of the other OSs, I think all the ones I
> Ron> mentioned ran on pdp machines, whatever we choose to write could
> Ron> have once run on anything.
>What would it mean to "run" such an OS on an x86? Consider RSTS,
>which is the only one of those three I know well. The OS itself is
>100% assembly language. The system services are defined in terms of
>request blocks in low user memory along with system call instructions
>(EMT opcode of the PDP-11). Applications were generally written in
>Basic-Plus (or -2), or in PDP11 assembler; rarely in some other
>language such as TECO, or FORTH, or others.
>I could imagine creating a Basic-Plus environment that emulates that
>aspect of RSTS. I could also imagine a BP2 compiler that generates
>X86 code. The surrounding machinery -- "run time systems", the system
>service semantics, etc. -- that would be tricky. Assuming you get
>that far, you have a user mode analog of the original, so old
>applications (if written in Basic-Plus or BP2) would run. The same
>would go for TECO. Assembly language applications have no chance
>short of running an emulator at least for user mode. The same goes
>for FORTH, since it tends to hook right into the assembly style system
>service API, though obviously you could replace just that small part
>and keep the rest.
It would be better to just create a compiler for the languages like
basic-plus than trying to rewrite the entire OS. It would allow you
to use the old programs on new systems. Make a BP2 front-end for
GCC, and you can natively run RSTS/E programs on your Linux

If you want to play with a BP2 to C++ translator:
pre-alpha, plenty of bugs, ugly code, lots of missing features.
Has configure problems. Run configure/make in each subdirectory (src,
lib, examples) and it mostly works. You may have to edit generated
example file '' and change an 'atof' to 'basic::atof'.
Received on Tue Sep 14 2004 - 14:17:59 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:37:29 BST