&&&&&&&&&&&& UTIL.SUB UTIL.SUB ALIST.IMP ALIST.RNH ALIST.HLP RECODE.IMP RECODE.RNH RECODE.HLP MAKREL.IMP MAKREL.RNH MAKREL.HLP RELDUM.IMP RELDUM.RNH RELDUM.HLP DIAGFS.IMP $$$$$$$$$$$$ &&&&&&&&&&&& ALIST.IMP %BEGIN; ! PDP 10 ALIST ! %CONSTINTEGER SOURCE = 1, OBJECT = 2 %INTEGER WORD %INTEGER CURRENT LINE, HERE %INTEGER TYPE, LENGTH, J, S, CA %SWITCH LT(0:15) %CONSTINTEGER SIZE = 60 %OWNINTEGER LEFT = SIZE %EXTERNALROUTINESPEC DIAGSTREAMS %EXTERNALINTEGERFNSPEC EVENTINFO %ON %EVENT 9 %START NEWLINE %STOP %FINISH %ROUTINE TEST PAGE LEFT = LEFT-1 %IF LEFT <= 0 %START LEFT = SIZE; PRINTSYMBOL(12) %FINISH %IF S=12 %THEN LEFT=SIZE; !WHEN FORM FEED ENCOUNTERED %END %ROUTINE OCTAL(%INTEGER N) %INTEGER J PRINTSYMBOL(N>>J&7+'0') %FOR J = 15, -3, 0 SPACE %END %ROUTINE READ WORD READSYMBOL(WORD) %END %ROUTINE SKIP(%INTEGER N) READ WORD %FOR N = 1, 1, N %END DIAG STREAMS SELECTINPUT(OBJECT); SELECTOUTPUT(1) CURRENT LINE = 0; HERE = 0; CA = -1 LEFT=SIZE %CYCLE READ WORD TYPE = WORD>>18 %WHILE TYPE>8_3777 %CYCLE; !SKIP ASCII TEXT READ WORD TYPE=WORD>>18 %REPEAT LENGTH = WORD&8_777777 ->LT(TYPE) LT(0):! LINE NO READ WORD; READ WORD CURRENT LINE = WORD %CONTINUE LT(1):! CODE/GLA READ WORD; READ WORD %IF WORD&8_400000 = 0 %START SKIP(LENGTH-1) %CONTINUE %FINISH CA = WORD SELECTINPUT(SOURCE) %WHILE CURRENT LINE # HERE %CYCLE HERE = HERE+1; WRITE(HERE, 4); SPACE %IF HERE = CURRENT LINE %THEN OCTAL(CA) %C %ELSE SPACES(7) %CYCLE READSYMBOL(S); PRINTSYMBOL(S) %EXIT %IF NL<=S<=FF %REPEAT TEST PAGE %REPEAT SELECTINPUT(OBJECT) %CYCLE J = LENGTH-1, -1, 1 READ WORD; CA = CA+1 %REPEAT %CONTINUE !LT(*); !***TEMP** LT(2): LT(3): LT(4): LT(6): LT(7): LT(8): LT(9): LT(10): LT(11): LT(12): LT(13): LT(14): LT(15):SKIP(LENGTH+1) %REPEAT LT(5): NEWLINE %ENDOFPROGRAM $$$$$$$$$$$$ &&&&&&&&&&&& ALIST.RNH .FLAGS CAP.LC 0 %CYCLE N = N-1 SKIPSYMBOL %REPEAT %END %ROUTINE REQUEST SELECTINPUT(0); SELECTOUTPUT(0) %CYCLE PRINTSTRING("FROM:"); READ(START) %STOP %IF START = 0 %EXIT %IF START > HERE PRINTSTRING("CURRENTLY AT LINE"); WRITE(HERE+1, 1) NEWLINE %REPEAT PRINTSTRING("TO:"); READ(FINISH) FINISH = START %IF FINISH < START SELECTINPUT(OBJECT); SELECTOUTPUT(LISTING) %END %ROUTINE NEXT OBJECT %INTEGER TYPE %IF LENGTH # 0 %START GOT: LENGTH = LENGTH-1 READSYMBOL(WORD) CA = CA+1 %RETURN %FINISH %CYCLE READSYMBOL(WORD) TYPE = WORD>>18; LENGTH = WORD&8_777777 %IF TYPE = 0 %START READSYMBOL(CODE LINE) LENGTH = LENGTH-1 %FINISH %IF TYPE = 1 %START READSYMBOL(REL); READSYMBOL(CA) LENGTH = LENGTH-1 CA = CA-1 %AND ->GOT %IF CA&8_400000 # 0 LENGTH = LENGTH-1 %FINISH SKIP(LENGTH+1) %REPEAT %UNTIL TYPE = 5; ! END MARKER PRINTSTRING("**END OF REL FILE**"); NEWLINE %STOP %END %ROUTINE SKIP TO LINE(%INTEGER N) %INTEGER S SELECTINPUT(SOURCE) N = N-1 %WHILE N > HERE %CYCLE HERE = HERE+1 READSYMBOL(S) %UNTIL NL<=S<=FF %REPEAT SELECTINPUT(OBJECT) %END %ROUTINE PRINT LINE %INTEGER S SELECTINPUT(SOURCE) HERE = HERE+1; WRITE(HERE, 4); SPACE %CYCLE READSYMBOL(S); PRINTSYMBOL(S) %REPEAT %UNTIL NL<=S<=FF SELECTINPUT(OBJECT) %END %ROUTINE RECODE(%INTEGER START, FINISH) SKIP TO LINE(START) NEXT OBJECT %WHILE CODE LINE < START %WHILE HERE # FINISH %CYCLE PRINT LINE %WHILE CODE LINE = HERE %CYCLE SPACES(6) DECODE(WORD, CA) NEXT OBJECT %REPEAT %REPEAT %END DIAG STREAMS HERE = 0; CODE LINE = 0; LENGTH =0 %CYCLE REQUEST RECODE(START, FINISH) %REPEAT %ENDOFPROGRAM $$$$$$$$$$$$ &&&&&&&&&&&& RECODE.RNH .FLAGS CAP.LC >J&7+'0') %FOR J = 33, -3, 0 PENDING = PENDING-1 %IF PENDING = 0 %START NEWLINE %ELSE SPACE %FINISH %END %PREDICATE TERMINATED(%INTEGER N) %INTEGER J,K %CYCLE J = 1, 1, 5 K = N>>(36-7); N = N<<7 %TRUE %IF K = 0 PRINTSYMBOL(K) %REPEAT %FALSE %END %INTEGER J,K,L,N SETSTREAMS SELECTINPUT(1); SELECTOUTPUT(1) %CYCLE PENDING = 7 READSYMBOL(K) %IF K>>18 > 8_3777 %START;! ASCII PRINTSTRING("ASCII: ") READSYMBOL(K) %WHILE %NOT TERMINATED(K) NEWLINE %ELSE TYPE = K>>18; LEN = K&8_7777 WRITE OCTAL(TYPE, 4); WRITE(LEN, 3) %IF TYPE < 8_40 %START READSYMBOL(K); OCTAL(K); SPACE; !RELOCATION WORD %ELSE SPACES(15) %CYCLE J = 1, 1, LEN READSYMBOL(N); OCTAL(N) %REPEAT NEWLINE %UNLESS PENDING = 0 %EXIT %IF TYPE = 5 %FINISH %REPEAT %ENDOFPROGRAM $$$$$$$$$$$$ &&&&&&&&&&&& RELDUM.RNH .FLAG CAP.LC.NF =' ' %THEN READSYMBOL(S) %AND PRINTSYMBOL(S) NEWLINE ->ST %FINISH %ROUTINE RDFILE(%RECORD(FILESPEC)%NAME FS) READFS(FS) READSYMBOL(NXTCHAR) %END ST: %CYCLE %CYCLE PROMPT("*") %IF NEXTSYMBOL>=' ' %THEN %EXIT SKIPSYMBOL; !IF JUST A NEWLINE %REPEAT INFS=0; IN2FS=0; OUTFS=0 RDFILE(INFS); !READ A SPEC %IF NXTCHAR='=' %START OUTFS=INFS; RDFILE(INFS); !OUT=IN %FINISH %IF NXTCHAR=',' %THEN RDFILE(IN2FS); !OUT=IN1,IN2 OR IN1,IN2 %IF NL<=NXTCHAR<=FF %THEN %EXIT %SIGNAL 10,9 %REPEAT !ADD THE DEFAULT VALUES INFS_EXT="IMP" %IF INFS_EXT="" FS=INFS; FS_PROT=0; FS_SWITCHES="" FS_EXT="REL" DEFAULT(IN2FS,FS) FS_DEV=""; FS_EXT="LST"; FS_PPN=0 DEFAULT(OUTFS,FS) !OPEN THE FILES XDEFINPUT(SOURCE,INFS) XDEFINPUT(OBJECT,IN2FS) XDEFOUTPUT(OUTPUT,OUTFS) %END %ENDOFFILE $$$$$$$$$$$$