diff --git a/Makefile b/Makefile index 0551611c..f9766080 100644 --- a/Makefile +++ b/Makefile @@ -25,14 +25,15 @@ SRC = syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \ tensor transl wgd zz graphs lmlib pratt quux scheme gsb ejs mudsys \ draw wl taa tj6 budd sharem ucode rvb kldcp math as imsrc gls demo \ macsym lmcons dmcg hack hibou agb gt40 rug maeda ms kle aap common \ - fonts zork 11logo kmp info aplogo bkph bbn pdp11 chsncp sca music1 + fonts zork 11logo kmp info aplogo bkph bbn pdp11 chsncp sca music1 \ + moon DOC = info _info_ sysdoc sysnet syshst kshack _teco_ emacs emacs1 c kcc \ chprog sail draw wl pc tj6 share _glpr_ _xgpr_ inquir mudman system \ xfont maxout ucode moon acount alan channa fonts games graphs humor \ kldcp libdoc lisp _mail_ midas quux scheme manual wp chess ms macdoc \ aplogo _klfe_ pdp11 chsncp cbf rug bawden BIN = sys2 emacs _teco_ lisp liblsp alan inquir sail comlap c decsys \ - moon graphs draw datdrw fonts fonts1 fonts2 games macsym maint imlac \ + graphs draw datdrw fonts fonts1 fonts2 games macsym maint imlac \ _www_ hqm MINSRC = midas system $(DDT) $(SALV) $(KSFEDR) $(DUMP) diff --git a/bin/moon/ts.jedgar b/bin/moon/ts.jedgar deleted file mode 100644 index d8f11b72..00000000 Binary files a/bin/moon/ts.jedgar and /dev/null differ diff --git a/build/misc.tcl b/build/misc.tcl index 5bd6688a..67f924e4 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -272,6 +272,8 @@ expect ":KILL" # jedgar respond "*" ":midas sys2; ts jedgar_sysen3; jedgar\r" expect ":KILL" +respond "*" ":midas moon; ts jedgar_moon; jedgar\r" +expect ":KILL" # ports respond "*" ":midas sys2;ts ports_sysen2;ports\r" diff --git a/src/moon/jedgar.1 b/src/moon/jedgar.1 new file mode 100644 index 00000000..60f84a92 --- /dev/null +++ b/src/moon/jedgar.1 @@ -0,0 +1,237 @@ +TITLE JEDGAR + +;This is not the original source code. It's created from disassembly +;of the file MOON; TS JEDGAR, dated 1976-10-17. The assembled binary +;is identical. + +;The original binary shows signs of binary patching. This source file +;recreates the patched binary without any intermediary steps. + +A=1 +B=2 +C=3 +D=4 +T=5 +TT=6 +P=7 +U=10 +N=11 + +CH=16 +CH2=17 + +SYMS: SQUOZE 0,USRHI +USRHI: 0 + SQUOZE 0,LUBLK +LUBLK: 0 + SQUOZE 0,FLSINS +FLSINS: (U) + SQUOZE 0,UNAME +UNAME: (U) + SQUOZE 0,EPDL +EPDL: (U) + SQUOZE 0,SUPPRO +SUPPRO: (U) + SQUOZE 0,TTYTBL +TTYTBL: (U) + SQUOZE 0,UHANG +UHANG: 0 + SQUOZE 0,TOOP +TOOP: (N) + SQUOZE 0,UMAPS +UMAPS: (U) + SQUOZE 0,UPGMP +UPGMP: (U) + SQUOZE 0,USTP +USTP: (U) +SYMP: SYMS-.,,SYMS + +BADGE: 0 + +PDL: -40,,. + BLOCK 40 + +JEDGAR: MOVE P,PDL + MOVEI T,-1 + TDNE T,USRHI + JRST RESTRT + MOVE T,SYMP +EVAL: MOVE TT,(T) + .EVAL TT, + JFCL + HRRM TT,1(T) + AOBJN T,.+1 + AOBJN T,EVAL + +RESTRT: .OPEN CH,['#TTY] + .VALUE + MOVEI T,CH + .SUSET [.RIOC+CH,,T] + LDB N,[220600,,T] + MOVE T,ASKPTR + .IOT CH,T + .CLOSE CH, + + MOVEI T,401001 +ABSCOR: MOVSI TT,1000 + IOR TT,T + .CBLK TT, + JFCL + ADDI T,1001 + TRNN T,400 + JRST ABSCOR + + .OPEN CH,['TTY] + .VALUE + .IOT CH,T + SETZM BADGE + CAIE T,"y + CAIN T,BADGE + SETOM BADGE + .CLOSE CH, + + .VALUE [ASCIZ /:PROCED +/] + +LOOP: SETZM U +NXTUSR: CAMG U,@USRHI + JRST LOOKU + MOVEI T,60. + .SLEEP T, + JRST LOOP + +LOOKU: SKIPE @USTP + JRST NXUSR + MOVEI TT,@UHANG + HRLI TT,(PUSHJ 15,) + CAME TT,@FLSINS + JRST NXUSR + HRRZ A,@EPDL + MOVE B,A + LSH B,-10. + ROT B,-1 + SKIPE @UMAPS + JRST NXUSR + MOVEI TT,@UPGMP + ADD TT,B + SKIPGE B + SKIPA B,(TT) + MOVS B,(TT) + TRNN B,600000 + JRST NXUSR + ANDI B,777 + LSH B,6 + ANDI A,1777 + IOR A,B + CAIN A,@TOOP + JRST CAUGHT +NXUSR: ADDI U,@LUBLK + JRST NXTUSR + +CLIOPN: SIXBIT / 'CLI/ + SIXBIT /UNAME / + SIXBIT /HACTRN/ + +CLIMES: ASCII / You are the subject of an illegal wiretap by +convicted Watergate conspirator "/ +CLINAM: BLOCK 2 +CLIPTR: CLIMES-.,,CLIMES +CLIMS2: ASCII / +The miscreant has been executed. / +CLIPT2: CLIMS2-.,,CLIMS2 +ASKMES: ASCII /Am I licensed to kill? / +ASKPTR: ASKMES-.,,ASKMES + +CAUGHT: MOVE TT,@UNAME + MOVE B,[440700,,CLINAM] +CT1: SETZM T + LSHC T,6 + ADDI T,40 + IDPB T,B + JUMPN TT,CT1 + MOVEI T,"" +CT2: IDPB T,B + MOVEI T," + CAME B,[010700,,CLINAM+1] + JRST CT2 + .SUSET [.RUNAME,,CLIOPN+1] + .OPEN CH,CLIOPN + .VALUE + MOVE T,CLIPTR + .IOT CH,T + SKIPE BADGE + JRST JUSTIC +DEPUTY: .CLOSE CH, + .BREAK 16,60000 + +JUSTIC: PUSHJ P,SPCTTY +WHO1: MOVE B,@SUPPRO + CAME B,[-1] + JRST [HRR U,B ? JRST WHO1] + HRRZ D,U + IDIVI D,@LUBLK + JRST PATCH + JFCL +PRETT: MOVEI T,90. + .SLEEP T, + MOVEI C,'T00 + JUMPL A,JUST00 + LSHC A,-3 + LSH A,3 + LSHC A,3 + IOR C,A + HRLI C,3 + .OPEN CH2,C + JRST JUST00 + MOVE T,MRLPTR + .IOT CH2,T + .CLOSE CH2, +JUST00: MOVE T,CLIPT2 + .IOT CH,T + .CLOSE CH, + JRST LOOP + +MRLMES: ASCII /Crime does not pay +/ +MRLPTR: MRLMES-.,,MRLMES + +SPCTTY: MOVE A,@TTYTBL + JUMPGE A,SPCGOT +SPCUP: MOVE B,@SUPPRO + CAME B,[-1] + JRST [HRR U,B ? JRST SPCUP] +SPCDWN: MOVE A,@TTYTBL + JUMPGE A,SPCGOT + HRR U,A + TLNN A,200000 + JRST SPCDWN + MOVSI A,-1 +SPCGOT: POPJ P, + +CONSTANTS + + 0 +PATCH: MOVE T,@UNAME + .WSNAME T, + JFCL + JFCL + JRST 503 + .CLOSE + JRST DEPUTY + 0 + +UDIRF: SIXBIT / DSK/ + SIXBIT /.FILE./ + SIXBIT /(DIR) / + +.=503 + IORI D,400000 + .CALL 514 + JFCL + JRST PRETT +.=514 + SETZ + SIXBIT /DETACH/ + SETZ D + +END JEDGAR