I thought I'd give it a quick look, but now I've set it aside to peruse later at leisure :-)
I see what you did there!
I have now perused! I really enjoyed reading the document; it reminded me of those tours or videos where a guide takes you behind the scenes of some major piece of infrastructure: you get to see the turbines inside the hydroelectric dam or the control centre with the illuminated diagrammatic map of the railway or whatever it is.
It seems to me that one thing we dearly need is a good way to get lots of files on and off of the Lisa. Better file transfer should be possible in a few ways; 1200 BPS 7E1 is a pretty narrow straw for so much text. Nothing's off-the-shelf, but the most straightforward is probably to write a different program to talk to the serial port instead of the Transfer application. I took a crack at this with moderate but not total success about ten years ago, writing a program that allowed you to transfer files off (but not onto) the Lisa using the YMODEM protocol: you can see it
here. I wouldn't advise trying to adapt this program, but I
would suggest that
the LIBPORT library inside of it can save anyone aiming to write serial port code a whole lot of effort.
At a minimum, the new program could use 8-bit bytes, which might save some of the hassle around Lisa-only characters that don't make it through the 7-bit transfer. You can also imagine coming up with a way that would allow you to transfer many files in one go. YMODEM actually allows this kind of batch transfer, though I never got it to work with the program I linked above. (Incidentally, I think YMODEM is a pretty good protocol to use here: XMODEM lacks batch transfer, while ZMODEM is technically better but more complicated to implement.) But since we are transferring text files, a simpler method could do the job, one where each file is sent straight over the wire with some kind of special divider string separating them. This would require some programming on the other side of the null modem cable too, but not too much.
One of the reasons I avoided writing code to upload files to the Lisa is because careful handling is required for text files. It's fine to send binary files to the Lisa directly, but if you want to send a text file from a modern computer so that it behaves like a text file on a Lisa, you will need to either open a file as text from your Pascal code when creating it or do a binary translation of the modern-computer text file to "The Last Whole Earth Text File Format", which is how text files are represented at a low level (see PDF pages 37-38
here). TL/DR: text comes in 1K blocks, the first block is metadata, lines of text can't straddle blocks, blocks are null-padded and need at least one null, and there is a run-length encoding scheme for the space (that is, ' ') character only.
One final note for text files: for converting \n to \r, the process_source.py script does the job and has proven itself to work. That said, many Linux distributions will be able to install the
dos2unix package, which also contains the helper programs
mac2unix and
unix2mac. I will indulge myself a bit of shell flexing and pose that this line does in bash what the script does:
for i in `find . -name *.unix.txt`; do unix2mac -n $i `echo $i | sed s/.unix.txt$//`; rm $i; doneBeware that I have not tried it
and the command calls `rm` in the context of a recursive directory scan! Use at your own risk!
Coming back to the OS itself, I was surprised not to see more signs that hinted at 7/7's ability to embed stuff made by one tool into a document belonging to another tool. You can put LisaDraw drawings into a LisaWrite document, for example; I might have expected more code that was obviously shared between tools in order to make that possible. Maybe it's there but it's in a regular non-intrinsic library somewhere.
As a minor nitpick, the doc describes files in the Workshop with names like
ALEX/FOO.TEXT as being in the "ALEX" directory, but / is not a path delimiter in the Workshop and is just a part of the filename. For most of its life the Workshop never had directories at all; Workshop 3 finally debuted a hierarchical filesystem with directories called "catalogs" and "subcatalogs". The path delimiter was -.
ref1 ref2. (You may have known this and had just wished to spare readers the extra detail.) It looks like / was a pretty common file naming idiom in lieu of directories.
Other thoughts... I like how LisaTerminal didn't really even turn up in the story; it seems to be a tool that gave you very little trouble!
I really liked
this table at the bottom of the document.
I thought I'd take a look at my Workshop 1.0 installation to see if PACKSEG.OBJ might be there, but no luck unfortunately.
Not much more to say other than continued appreciation for the feat that was (re)building the OS at last. Just for the symbolism of it, someone should run a freshly-compiled Lisa OS on one of those Apple Lisa clones!