This dir contains various programs and subroutines for RT-11, by John Wilson unless otherwise stated. Programs are contained in one source file each, so for example to build CROCK, all you have to type is "MACRO CROCK" and "LINK CROCK"; or simply type "EXECUTE CROCK". Files containing only subroutines need to be attached to something to be useful, obviously. algol DECUS ALGOL. I'm lazy so currently this is a ZIPped RL01 image in RT-11 format (mostly empty so the ZIPfile is small), with the files on it and a built ALGOL.SAV. Everything with a date in 1980 is original, while the stuff from 1997 was from me playing with it (so there's a built ALGOL.SAV). I think I included a copy of the listing file (which was the only source distributed in the DECUS kit) with the listing crap stripped off. I forget whether it compiled OK though. copflp Copy between 8" floppy disks (DX:/DY:/PD:) and image files. Uses .SPFUN to access raw sectors so non-PDP11 SSSD disks may be copied too (such as common CP/M 8" disks), or any RX01 or RX02 disk with a non-standard file structure. Image files are in raw sector order starting with track 0 sector 1 and are compatible with several PDP-8 and PDP-11 emulators including Ersatz-11. SD disks are not an exact multiple of 512 bytes so you'll get a 256,512-byte image file, which should be truncated to 256,256 bytes when moved to a file system which allows that. crock Full-screen analog clock program for VT52 or VT100 terminals. Translated from the PDP-10 program of the same name (originally by Guy Steele of Common Lisp fame). I haven't done DCROCK yet. decout Subroutine to convert a number to decimal w/o division in very few iterations. Extremely cute algorithm stolen from TSS/8.24 System Interpreter. It treats numbers as BCD, sort of. disasm PDP-11 disassembler written as an undergrad long ago. Performs execution trace to distinguish code from data and assigns labels to jump targets. I'm sure the source is in an embarrassing state. dissav Upgraded version of DISASM, which allows disassembled .MAC file to be edited and fed back through to disassemble newly discovered code blocks and insert them in the proper place. New /B switch allows extremely crude access to overlays. EIS/SOB instructions removed so it should run on any PDP-11 model. Documentation is in a large comment block at the beginning of dissav.mac. dupe Stand-alone program to run a diskette duplicating machine (I have a Victory V3000, but it should work with any autoloader that uses the "Mountain" serial protocol). The input and output diskette drives must be connected to an MSCP controller, and the PDP-11 must have enough physical memory to hold the program plus the entire disk. I use this with E11, but it should work just as well with real PDP-11s. You'll need an aftermarket controller that supports RX23s to be able to do 1.44 MB disks. dutest Stand-alone program to allow user to fiddle with MSCP controllers. Handy for reverse-engineering all those undocumented/semi-documented doodads. Type "MSCP" or "TMSCP" to select protocol and CSR addr, then "INIT" to do the four-step init sequence. After that you can build a command packet by first typing "OP xxx" to init the packet and set the opcode ("xxx" is the rest of the "OP.xxx" opcode symbol name from the UDA50 manual, you definitely want to use OP SCC first to set up the controller). Other commands like "UNIT n" of "FLAGS nnn" or "BA nnnnnn" (in this case the nnnnnn can be omitted to use an internal 512-byte buffer by default) set the other fields of the packet, and "GO" sends it to the controller. DUTEST checks for response packets before each prompt, so just hit RETURN a few times until the response pops up. SHOW [RESPONSE] shows the current command (or response) packet. OSHOW is the same but shows it as raw octal instead of labeling the fields. em.mac em.sys emx.sys FIS emulator for machines with FP11, written by Sergey L. Ovchinnikov of GelioSoft, Ltd. (Moscow, Russia). Works as a device driver; SET EM: ON and SET EM: OFF enable/disable emulation. ibb Itsy Bitsy BASIC interpreter. Almost useless, integer only, no strings (except in PRINT), no INPUT, but it does work. Written mostly in one night, just for fun (FOR/NEXT and GOSUB/RETURN were added later). Does not require EIS. Rewrite it for the 8080A and become ruler of an evil software empire in just 10 short years! km.sys kmx.sys Kermit serial drivers, pre-assembled for users who are missing MACRO and/or LINK (these are from the Kermit distribution, and are NOT written by John Wilson, they're just here because the Kermit archive doesn't include the .SYS files). kserve Server-only Kermit for RT-11. Written entirely from scratch (well OK, based partly on another RT-11 Kermit I *did* write from scratch). It has nothing to do with K11. It has no long packet or sliding window support (although my mostly-finished development version has both, so if you would have a use for that, nag me to finish it, via email to wilson@dbit.com), but on the bright side it can be assembled under V4 and is FAR smaller than K11 (which for some reason is written in the style of compiler output). Use "REM K SET FILE TYPE BINARY" to set binary mode (as opposed to just "REM SET FILE TYPE BINARY". The protocol for this command is not in the on-line Kermit spec and I didn't find out how to do it until after I'd written the REM K version -- again, the mostly-finished next version supports the new way though). It uses double-buffered file I/O and maintains 9600 baud w/o pauses even with DECtape. There's no prompt or anything since it's just a server. Just type "RUN KSERVE" and escape back to your local Kermit. palx PDP-8 cross-assembler. Sneered at as a "pet" project by Charles Lasner because it's not PAL-8 compatible. Well who said it was! The syntax is not far from PAL-D (which is what I had been using -- TSS/8 never had PAL-8). Only the pseudo-ops have been changed to protect the innocent. Also it has local labels, with names like ".10". As in PAL-D, there are no macros or conditional assembly. Output is suitable for feeding to the BIN loader over a serial line (which BIN thinks is a paper tape reader). I wrote it as a freshman long ago, so please don't laugh at my code! It stores complex expressions for evaluation between passes, which is messy and now I find out most assemblers don't do it (I did it to mimic an RCA CDP1802 cross-assembler I wrote in BASIC where storing strings is easy), but it means you can say "A=B", "B=C", "C=1" in that order w/o getting an "undefined variable" error for the "A=B" statement on pass 2, which can be puzzling if you don't know how assemblers work. putr Unfinished program which was supposed to read TSS/8 DECtapes on a TC11/TU56 setup. That part doesn't work, but what does work is the READ command, which takes a snapshot of the 12-bit tape on DT0: into a 1474-block RT-11 file. Each block contains 129 12-bit data words, in PDP-11 byte order, followed by 127 zero words. Which is probably not what you want, so write a small program to pick out the parts you need. Anyway the code does searches properly (even on tapes written with junk in the high bits of the block #, which I've come across occasionally with 12-bit tapes), and figures the checksum OK. Currently it requires a CPU with EIS and the MTPS instruction, so you'll need to tweak it if yours is missing either. r50out Subroutine to convert a .RAD50 number to ASCII in only 12 iterations w/o division, using the same cute algorithm (from TSS/8) as DECOUT.MAC. raid A Really Awesome Interactive Debugger, formerly DECUS #11-772. Kills bugs dead. I wrote it in high school, I can't even bring myself to look at the code now since it would be so embarrassing. But it does work. Breakpoints, disassembly, single stepping... rdtoy A program which I hope will read the 11/94 time of year clock. It works with Ersatz-11 but I don't have access to a real 11/94. Well OK I do now, but I haven't gotten around to testing RDTOY. uncomp Uncompressor for UNIX ".Z" files, as created by the "compress" program. Uses a swap file if necessary to handle up to the full 16-bit code sizes, instead of the 12-bit limit imposed by the standard UNIX version when running on 16-bit CPUs. This program's time has passed, but I still haven't picked through the gzip/gunzip code enough to be able to write a MACRO-11 version of that (which would definitely come in handy). The file "lzw.txt" contains a nice writeup of Lempel-Ziv Welch compression by Steve Blackstock.