My interest in all of this Monitor stuff, besides getting Smalltalk usable on more systems, was to be able to run some of the old tooling. With everything working reasonably well so far, I decided to try something I've wondered about for a while...
Some time ago, Al announced the recovery and posting of some old Monitor sources to bitsavers. So I cobbled together a Monitor 12 image with the assembler and necessary files, and gave it a whirl – and the sources compiled without any error. I've tried replacing the monitor.obj of a v11 disk with the output from this build, but that hasn't worked (I guess these Monitor sources *are* that old). But it is neat to be able to assemble this for the first time in who knows how long, it seems plausible that it could be made to work, and the listing file matches the same format as the Monitor 11 sources scan on bitsavers, so this may make it easier to transcribe the sources in that PDF.
One thing I learned is that it is vital to set the pretty listing option – otherwise the listing will have some placeholders in it (forward references that it doesn't immediately know how to resolve).
I've attached a zip containing the assembler output files (the listing, object and symbols file), as well as two 5MB Profile images (raw and dc42) and an 800KB image. While I've been successful running the assembler in lisaem with both floppy and Profile images, the output files are only correct when ran from the Profile image. On the 800KB, it looks like random bits of memory were written instead of what should've been, and on subsequent launches of lisaem it complains about invalid checksums in the dc42 file. Hopefully these are lisaem issues with 800KB disk handling. If somebody would like to try the floppy image on hardware, afterwards you could probably search the dc42 file in a hex editor for
FILE:monitor.TEXT, or use the Python script from
https://github.com/d235j/lisa-utilities, or send me the file.
(Also I realize I should stop posting images and provide the tooling I use to make these... I do plan on cleaning them up and getting them into a useful state for others. Presently its hodgepodge of a C executable, an ObjC executable, and four python scripts...)
For those that would like to play along at home, from the Monitor prompt type
A to enter the Assembler, type
? to enter the options, type
+p to turn on pretty, press
return to exit the options, type
monitor for the input file, and type
oldmon for the next three options (listing, output and symbols). While you could type anything for those last three options, I'd advise against leaving the defaults as it'd overwrite the image's built in monitor.obj and monitor.symbols, leaving you with an image that will no longer boot properly.
I would also warn that the process is rather slow at 5MHz - certainly enough time to go make some tea...
