1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-13 15:27:28 +00:00

Created source for JEDGAR.

From disassembly of MOON; TS JEDGAR, dated 1976-10-17.

TS JEDGAR shows signs of multiple layers of binary patching.  No
attempts were made to recreate this process in the build script.
This commit is contained in:
Lars Brinkhoff 2018-10-01 08:16:23 +02:00
parent b7fe5b0dd7
commit 7caf0cd962
4 changed files with 242 additions and 2 deletions

View File

@ -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)

Binary file not shown.

View File

@ -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"

237
src/moon/jedgar.1 Normal file
View File

@ -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