MUSS Restoration

I am now working to get MUSS running once again. The work is being done on GitHub. You can find the project here.

The approach is first to hand build a processor to implement the Flocoder FLIP (Form LInear Program) program to extract the MUSL from the documentation, and then build a MUSL compiler that cross compiles to C. This will allow me to bootstrap the building of MUSS. It looks like it may be possible to get MUSS built for PDP-11 and VAX. I also have some floppy disk images for a Motorola 68K system, if I can build an emulator for that system, then this is another avenue for getting MUSS to run once again. I hope one day to be able to get it running on my MU5 Emulator as well.

The sections below explain the current state of the restoration.

Flocoder

I have now got a crude implementation of the Flocoder FLIP program written using Flex and Bison. It can take a Flocoder file from the MUSS sources and extract MUSL code. I have run it successfully over all the Flocoder files for Flocoder itself and for the MUSL compiler.

MUSL

I also have the beginnings of a MUSL compiler. This is hand-translated by adding a second “level” to the Flocoder files for the MUSL compiler sources. The second level is in C and targets cross compiling on Windows. I can use the above implementation of FLIP to generate a MUSL compiler in C. There is also the beginnings of an implementation of MUTL (the target language). The MUTL implementation produces ELF modules and there is also a linker.

The compiler can currently translate some simple programs into code that runs on the MU5 emulator. It is now able to compile simple multi-module programs, calling procedures, accessing global variables and literals exported by other modules.