%EXTERNALROUTINESPEC PROTECT(%STRING (63) S) %EXTERNALROUTINESPEC CHERISH(%STRING (63) S) %EXTERNALROUTINESPEC DEFINE(%STRING (63) S) %EXTERNALROUTINE FAULTS(%STRING (63) FILE) %ROUTINE READ LINE(%STRINGNAME L) %INTEGER S L = '' READCH(S) %IF S = 25 %START PRINTCH(7); NEWLINE *LM_4,15,16(8) *BCR_15,15 %FINISH %CYCLE L = L.TOSTRING(S) %RETURN %IF S = NL READCH(S) %REPEAT %END %STRING (255) L1, L2 FILE = 'SS#LIST' %IF FILE = '' DEFINE('ST01,'.FILE) SELECTINPUT(1) READ LINE(L1) %CYCLE READ LINE(L2) %IF CHARNO(L2,1) = '*' %START PRINTSTRING(L1) %CYCLE PRINTSTRING(L2) READ LINE(L2) %EXIT %UNLESS CHARNO(L2,1) = '*' %REPEAT %FINISH L1 = L2 %REPEAT %END %EXTERNALROUTINE C(%STRING (255) FILE) %DYNAMICROUTINESPEC PARM(%STRING (63) S) %DYNAMICROUTINESPEC IMPS(%STRING (63) S) %SYSTEMINTEGERMAPSPEC COMREG(%INTEGER N) %STRING (63) SOURCE, OBJECT, LISTING, PARMS, TEMP %IF FILE -> FILE.(':').PARMS %START PRINTSTRING('PARM('.PARMS.') ') PARM(PARMS) %FINISH PARMS = '' %IF CHARNO(FILE,LENGTH(FILE)) = 'S' %C %THEN FILE = FROMSTRING(FILE,1,LENGTH(FILE)-1) %C %AND PARMS = 'S' %IF (FILE -> LISTING.('.').TEMP %AND LENGTH(TEMP) > 7) %C %OR LENGTH(FILE) > 7 %START PRINTSTRING('NAME TOO LONG: '.TEMP.' ') %RETURN %FINISH SOURCE = FILE.PARMS OBJECT = FILE.'Y' LISTING = FILE.'L' FILE = SOURCE.','.OBJECT.','.LISTING PRINTSTRING('IMPS('.FILE.') ') IMPS(FILE) %IF COMREG(24) # 0 %THEN FAULTS(LISTING) %C %ELSE CHERISH(SOURCE) %AND PROTECT(OBJECT) %END %EXTERNALROUTINE PAGE(%STRING (63) FILE) %INTEGER LINES, S DEFINE('ST01,'.FILE) DEFINE('ST02,.LP,500') SELECTINPUT(1); SELECTOUTPUT(2) S = 0 %CYCLE NEWPAGE %UNLESS S = 12 NEWLINE %CYCLE LINES = 1,1,60 %UNTIL S = 10 %OR S = 12 %CYCLE READCH(S) %IF S = 25 %START SELECTOUTPUT(0); SELECTINPUT(0) PRINTSTRING(FILE.' PAGINATED ') %RETURN %FINISH PRINTCH(S) %REPEAT %EXIT %IF S = 12 %REPEAT %REPEAT %END %INTEGERFN STOI(%STRING (15) SYM) %INTEGER J, S, N %RESULT = 0 %IF LENGTH(SYM) = 0 N = 0 %CYCLE J = 1,1,LENGTH(SYM) S = CHARNO(SYM,J) %IF S > '9' %THEN S = S-'A'+10 %ELSE S = S-'0' N = N*16+S %REPEAT %RESULT = N %END %SYSTEMROUTINE CDUMP(%STRING (63) FILES) %SYSTEMROUTINESPEC IIDUMP(%INTEGER J, K) %SYSTEMROUTINESPEC LPDUMP(%INTEGER J, K) %STRING (63) START, FINISH, FILE %INTEGER ST, FN FILE = '' %IF FILES -> FILES.('/').FILE %START DEFINE('ST01,'.FILE) SELECTOUTPUT(1) %FINISH %UNLESS FILES -> START.(',').FINISH %START PRINTSTRING('PARAM: '.FILES.' ? ') %RETURN %FINISH ST = STOI(START) FN = STOI(FINISH)+ST %IF FILE = '.LP' %START SET MARGINS(1,1,132) LPDUMP(ST,FN) %FINISH %ELSE IIDUMP(ST,FN) %END %SYSTEMROUTINE CODE(%STRING (63) FILES) %STRING (15) START, LENGTH, FILE %INTEGER ST, LEN %SYSTEMROUTINESPEC DECODE(%INTEGER J, K, L) %IF FILES -> FILES.('/').FILE %START DEFINE('ST02,'.FILE) SELECTOUTPUT(2) %FINISH %UNLESS FILES -> START.(',').LENGTH %START PRINTSTRING('PARAM: '.FILES.' ? ') %RETURN %FINISH ST = STOI(START) LEN = STOI(LENGTH) DECODE(ST,ST+LEN,ST) %END %ENDOFFILE