diff --git a/build/misc.tcl b/build/misc.tcl index 8d017b5f..dbec62e5 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -1211,6 +1211,10 @@ respond "*" ":midas sys1; ts imload_syseng; imload\r" expect ":KILL" respond "*" ":link sys1; ts imtran, sys1; ts imload\r" +# UNTRAN +respond "*" ":midas imlac; ts untran_untran\r" +expect ":KILL" + # IMPRNT respond "*" ":midas sys1; ts imprnt_syseng; imprnt\r" expect ":KILL" diff --git a/doc/programs.md b/doc/programs.md index da02d5ae..a3da490f 100644 --- a/doc/programs.md +++ b/doc/programs.md @@ -353,6 +353,7 @@ - UFIND, find users. - ULISP, Lisp in Lisp. - UNTALK, split-screen comm-link program. +- UNTRAN, untranslate an Imlac program. - UP/DOWN, check if host is online. - UPTIME, Chaosnet uptime server. - UPTIME, record ITS uptimes. diff --git a/src/imlac/untran.3 b/src/imlac/untran.3 new file mode 100644 index 00000000..d4af28e7 --- /dev/null +++ b/src/imlac/untran.3 @@ -0,0 +1,42 @@ +TITLE UNTRAN +;THIS READS IMTRAN'D ASCII FILES (WITH BLOCK LOADER REMOVED) +;AND WRITES A BINARY FILE FOR THE CODE REPRESENTED. +;I.E., THIS IS AN UN-IMTRAN PROGRAM. +;AS THERE IS NO FILE SPEC READER, YOU HAVE TO HACK +;FILE SPECS FROM DDT. THE INPUT FILE SPEC IS AT IFN1,IFN2 +;AND OUTPUT IS AT OFN1,OFN2. INITIAL SETTINGS ARE +;ILLEGAL FOR RUNNING. SNAME IS SET TO IMLAC;. +A=1 +CH=2 +DSKI=10 +DSKO=11 +.MLLIT==1 +GO: .SUSET [.SSNAM,,[SIXBIT \IMLAC\]] + .OPEN DSKI,ISPEC + .VALUE + .OPEN DSKO,OSPEC + .VALUE +LP: SETZ A, +REPEAT 4,[ + .IOT DSKI,CH + CAIGE CH,100 + JRST [JUMPL CH,WINDUP ? JRST .-2] + ANDI CH,17 + LSH A,4 + IOR A,CH] + .IOT DSKO,A + JRST LP +WINDUP: .CLOSE DSKI, + .CLOSE DSKO, + .VALUE [ASCII \:DONEî\] + JRST GO +ISPEC: 0,,'DSK +IFN1: 0 +IFN2: 0 +OSPEC: 5,,'DSK +OFN1: 0 +OFN2: 0 + +PATCH: +PAT: BLOCK 100 +END GO