This has been massaged lightly by me, dtrg, to assemble with zmac. The main
issue is that zmac has different keyword rules to the assembler it was
originally written in, and doesn't allow labels like OR and AND. It also
ignores $ in labels, so PUSH and PUSH$ are considered the same. I've renamed
these. I've also removed the checksum verification code, as I don't have the
tool to generate the checksum and it's not really needed. Very little else
The original source provided to me by R.T.Russell is available in the VCS.