mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
2475 lines
196 KiB
Plaintext
2475 lines
196 KiB
Plaintext
REMOTE / CARD 00000100
|
|
WRITTEN BY RON BRODY; BURROUGHS CORP.; PAOLI, PA. 00000200
|
|
BEGIN 00000300
|
|
DEFINE VERSION = 75# ; % AUGUST 7, 1968. 00000400
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00000500
|
|
ALPHA FILE IN TWXINPUT 14 (3, 8) ; 00000600
|
|
DEFINE TWXIN = TWXINPUT (0, 300)# ; 00000700
|
|
ALPHA FILE OUT TWXOUTPUT 14 (4, 5) ; 00000800
|
|
DEFINE TWXOUT = TWXOUTPUT (STATION)# ; 00000900
|
|
ALPHA ARRAY RECORD [0 : 9] ; 00001100
|
|
INTEGER N, 00001300
|
|
AT, 00001400
|
|
D ; 00001500
|
|
REAL ARRAY LINKLIST [0 : 31, 0 : 255] ; 00001600
|
|
DEFINE LEFTSIDE = [35 : 5]#, 00001700
|
|
RIGHTSIDE = [40 : 8]# ; 00001800
|
|
DEFINE LINKLISTSUBD = LINKLIST [D.LEFTSIDE, D.RIGHTSIDE]#, 00001900
|
|
LINKLISTSUBAT = LINKLIST [AT.LEFTSIDE, AT.RIGHTSIDE]# ; 00002000
|
|
DEFINE S = [1 : 21]#, 00002100
|
|
SF = 1 : 27 : 21#, 00002200
|
|
F = [22 : 13]#, 00002300
|
|
FF = 22 : 35 : 13#, 00002400
|
|
T = [35 : 13]#, 00002500
|
|
TF = 35 : 35 : 13# ; 00002600
|
|
DEFINE INFINITY = 2097151# ; % MAX SEQ NO. = 2*21 - 1. 00002700
|
|
DEFINE MAXFILELENGTH = 8191# ; % = 2*13 - 1. 00002800
|
|
INTEGER M, 00002900
|
|
INC ; 00003000
|
|
INTEGER I ; 00003100
|
|
BOOLEAN BOOL ; 00003200
|
|
DEFINE B = BOOL.[47 : 1]#, 00003300
|
|
INLINETOG = BOOL.[46 : 1]#, 00003400
|
|
EXTRALFCR = BOOL . [45:1]#, 00003450
|
|
PRINTING = BOOL.[44 : 1]#, 00003500
|
|
TRANSLATING = BOOL.[43 : 1]#, 00003550
|
|
ALREADYSEQ = BOOL.[42 : 1]#, 00003560
|
|
QUICK = BOOL.[41 : 1]#, 00003570
|
|
SCANTOG = BOOL.[40 : 1]#, 00003580
|
|
NUM0 = BOOL.[39 : 1]#, 00003581
|
|
NUM1 = BOOL.[38 : 1]#, 00003582
|
|
NUM2 = BOOL.[37 : 1]#, 00003583
|
|
NUM3 = BOOL.[36 : 1]#, 00003584
|
|
NUM4 = BOOL.[35 : 1]#, 00003585
|
|
EMPTY0 = BOOL.[34 : 1]#, 00003586
|
|
EMPTY1 = BOOL.[33 : 1]#, 00003587
|
|
EMPTY2 = BOOL.[32 : 1]#, 00003588
|
|
EMPTY3 = BOOL.[31 : 1]#, 00003589
|
|
EMPTY4 = BOOL.[30 : 1]#, 00003590
|
|
FILESECURITY = BOOL.[29 : 1]#, 00003591
|
|
CHANGETOG = BOOL.[28 : 1]#, 00003592
|
|
EDITTOG = BOOL.[27 : 1]#, 00003593
|
|
POSTING = BOOL.[26 : 1]#, 00003594
|
|
PUNCHING = BOOL.[25 : 1]#, 00003595
|
|
ZIPPING = BOOL.[24:1]#, 00003596
|
|
MOREINPUT = BOOL.[23:1]#, 00003597
|
|
NOSTAR = BOOL.[22:1]#, 00003598
|
|
INORDER = BOOL.[1 : 1]# ; 00003600
|
|
DEFINE CONTROLTOP = 34# ; 00003650
|
|
ARRAY CONTROLS [0 : CONTROLTOP] ; 00003700
|
|
DEFINE 00003710
|
|
STRINGJ = CONTROLS [34]#, 00003725
|
|
VN = CONTROLS [33]#, 00003730
|
|
PREWHERE = CONTROLS [32]#, 00003740
|
|
STRING = CONTROLS [17]#, % THRU CONTROLS [31]. 00003750
|
|
PAGELENGTH = CONTROLS [14]#, 00003760
|
|
LINECOUNT = CONTROLS [16]#, 00003770
|
|
SAVEFACTOR = CONTROLS [15]#, 00003780
|
|
TIME1 = CONTROLS [13]#, 00003800
|
|
STRINGI = CONTROLS [12]#, 00003810
|
|
STATION = CONTROLS [11]#, 00003900
|
|
PREFIX = CONTROLS [10]#, 00004000
|
|
SUFFIX = CONTROLS [9]#, 00004100
|
|
TABAMOUNT = CONTROLS [8]#, 00004200
|
|
FILETYPE = CONTROLS [7]#, 00004300
|
|
RSWDL = CONTROLS [6]#, 00004400
|
|
USERCODE = CONTROLS [5]# ; 00004500
|
|
ARRAY IMAGE [0 : 9] ; 00004600
|
|
DEFINE RSWDM = 27# ; 00004700
|
|
DEFINE READONLYLIMIT = 6# ; 00004750
|
|
DEFINE SETRSWDL = 00004800
|
|
BEGIN 00004900
|
|
RSWDL := 13 ; 00005000
|
|
END # ; 00005200
|
|
ARRAY RSWD [0 : RSWDM] ; 00005300
|
|
DEFINE 00005310
|
|
00005320
|
|
RWTEACH = RSWD [RSWDM - 3]#, 00005330
|
|
RWTEACHINDEX = RSWDM - 3# ; 00005335
|
|
LABEL NEXT, 00005400
|
|
TIMING, 00005500
|
|
STOP ; 00005600
|
|
00005700
|
|
00005800
|
|
00005820
|
|
00005830
|
|
00005840
|
|
00005850
|
|
00005860
|
|
00005870
|
|
00005880
|
|
00005900
|
|
00005910
|
|
00005950
|
|
00005960
|
|
00006000
|
|
00006100
|
|
00006200
|
|
00006300
|
|
00006400
|
|
00006500
|
|
00006600
|
|
00006700
|
|
00006800
|
|
00006900
|
|
00007000
|
|
00007100
|
|
00007200
|
|
00007250
|
|
00007300
|
|
00007400
|
|
00007500
|
|
00007600
|
|
00007610
|
|
00007620
|
|
00007630
|
|
00007700
|
|
00007800
|
|
00007880
|
|
00007900
|
|
00008000
|
|
00008010
|
|
00008020
|
|
00008030
|
|
00008040
|
|
00008050
|
|
00008100
|
|
00008200
|
|
00008300
|
|
00008350
|
|
00008360
|
|
00008400
|
|
00008500
|
|
00008600
|
|
00008800
|
|
00008900
|
|
00008950
|
|
00009000
|
|
SAVE FILE SCRATCH DISK SERIAL [20 : 90] (1, 10, 30, SAVE 7) ; 00009100
|
|
FILE DISC DISK SERIAL (2, 10, 30) ; 00009200
|
|
FILE FEEDBACK DISK SERIAL (1, 15, 30) ; 00009300
|
|
FILE LIBRARY DISK SERIAL (2, 10, 30) ; 00009400
|
|
FILE RECOVER DISK SERIAL (2, 256) ; 00009450
|
|
ARRAY ZIPPY [0 : 19] ; 00009500
|
|
FORMAT 00009600
|
|
ZIPPER ("CC COMPILE ", A1, A6, "/", A1, A6, " WITH ", A1, A6, 00009700
|
|
" LIBRARY; ALGOL FILE CARD=", A1, A6, 00009800
|
|
"/", A1, A6, " SERIAL; ALGOL FILE LINE=", 00009900
|
|
"LINE/", A1, A6, " SERIAL; END."), 00010000
|
|
X96I8 (X96, I8), 00010400
|
|
X116I4 (X116, I4), 00010410
|
|
SEGMENT (X8, " SEGMENT = ", I4, "; ~"), 00010420
|
|
RELADDR (X8, " REL. ADDR. = ", I4, ".~"), 00010430
|
|
X108I4 (X108, I4), 00010440
|
|
X96I4 (X96, I4), 00010450
|
|
X101I4 (X101, I4), 00010460
|
|
X84I4 (X84, I4), 00010470
|
|
X91I4 (X91, I4), 00010480
|
|
X92A4 (X92, A4), 00010490
|
|
A1 (A1), 00010500
|
|
X5I6 (X5,I6), 00010600
|
|
I6 (I6), 00010700
|
|
X72I8 (X72, I8), 00010800
|
|
SEQC (X8, "{!", I6, "~"), 00010810
|
|
SEQA (X8, "{!", I8, ":~"), 00010820
|
|
SEQCO (X8, "{!", A6, "~"), 00010830
|
|
SEQAO (X8, "{!", O, ":~"), 00010840
|
|
TABIT (X8, X *, "~"), 00010900
|
|
EOJ (X8, "{!", I3, " MINS", I3, " SECS ", A6, "~"), 00011000
|
|
WAIT (X8, "WAIT...~"), 00011100
|
|
SEQERR (X8, "SEQ ERR -", I8, " WAIT...~"), 00011200
|
|
XON (X8, ">~"), 00011300
|
|
TEACH1 (X8, "{!THE VALID REQUESTS ARE:~"), 00011400
|
|
TEACH2 (X8, "* ", A1, A6, " ~"), 00011500
|
|
TEACH3 (X8, "FOR SYNTAX OF A VERB~"), 00011510
|
|
TEACH4 (X8, " (E.G. TAB), INPUT: * TEACH~"), 00011520
|
|
TEACH5 (X8, " VERB. (E.G. * TEACH TAB)~"), 00011530
|
|
ALLNINES (X8, "{!{99999999:~"), 00011550
|
|
NEWPAGE (X8, "{!!PAGE ", I3, ".{!!---{!~"), 00011560
|
|
DATE (X52," LISTED AT", I3, ":", I2, " ON ", A5, " BY", X40), 00011570
|
|
LFCR (X8, "{!~") ; 00011600
|
|
LIST LISTN (N), 00011700
|
|
TEACHOUT (RSWD [I] . [6:6], RSWD [I]), 00011750
|
|
TIMEOUT (I DIV 3600, I DIV 60 MOD 60, M) ; 00011800
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00011900
|
|
STREAM PROCEDURE OCTDEC (N, I9) ; 00012000
|
|
VALUE N ; 00012050
|
|
BEGIN 00012100
|
|
SI := LOC N ; 00012200
|
|
DI := I9 ; 00012300
|
|
DS := 8 DEC ; 00012400
|
|
END OCTDEC ; 00012500
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00012600
|
|
STREAM PROCEDURE COBOLSEQ (N, D, T, S, M) ; 00012700
|
|
VALUE M ; 00012800
|
|
BEGIN 00012900
|
|
SI := N ; 00013000
|
|
DI := T ; 00013100
|
|
DS := 6 DEC ; 00013200
|
|
SI := D ; 00013300
|
|
M (SI := SI + 6) ; %IF ALREADY SEQ THEN SKIP. 00013400
|
|
DS := 33 CHR ; 00013500
|
|
DS := 33 CHR ; 00013600
|
|
SI := S ; 00013700
|
|
SI := SI + 1 ; 00013800
|
|
DS := 1 LIT " " ; 00013810
|
|
DS := 7 CHR ; 00013820
|
|
SI := T ; 00013900
|
|
DI := D ; 00014000
|
|
DS := 10 WDS ; 00014100
|
|
END COBOLSEQ ; 00014200
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00014300
|
|
DEFINE SEQUENCE = IF FILETYPE LEQ 1 THEN 00014500
|
|
OCTDEC (IF N = INFINITY - 1 THEN 99999999 ELSE N, IMAGE [9]) 00014600
|
|
ELSE IF FILETYPE = 2 THEN 00014700
|
|
COBOLSEQ (N, IMAGE, RECORD, SUFFIX, ALREADYSEQ)# ; 00014800
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00014900
|
|
STREAM PROCEDURE SHIFTLEFT (N, A, B) ; 00015000
|
|
VALUE N ; 00015100
|
|
BEGIN 00015200
|
|
SI := A ; 00015300
|
|
SI := SI + N ; 00015400
|
|
DI := B ; 00015500
|
|
2 (DS := 33 CHR) ; 00015600
|
|
N (DS := 1 LIT " ") ; 00015650
|
|
SI := B ; 00015700
|
|
DI := A ; 00015800
|
|
2 (DS := 33 CHR) ; 00015900
|
|
END SHIFTLEFT ; 00016000
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00016100
|
|
STREAM PROCEDURE MOVE (S, D, SKPS, SKPD, N) ; 00016200
|
|
VALUE SKPS, 00016300
|
|
SKPD, 00016400
|
|
N ; 00016500
|
|
BEGIN 00016600
|
|
SI := S ; 00016700
|
|
DI := D ; 00016800
|
|
SI := SI + SKPS ; 00016900
|
|
DI := DI + SKPD ; 00017000
|
|
DS := N CHR ; 00017100
|
|
END MOVE ; 00017200
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00017300
|
|
STREAM PROCEDURE INSERT (N, S, D) ; 00017400
|
|
VALUE N, 00017500
|
|
S ; 00017600
|
|
BEGIN 00017700
|
|
SI := LOC S ; 00017800
|
|
SI := SI + 7 ; 00017900
|
|
DI := D ; 00018000
|
|
DS := 1 CHR ; 00018100
|
|
N (SI := SI - 1 ; 00018200
|
|
DS := 1 CHR) ; 00018300
|
|
END INSERT ; 00018305
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00018310
|
|
STREAM PROCEDURE BLANKOUTSPECIALCHARACTERS (S,D,N) ; VALUE N ; 00018315
|
|
BEGIN 00018320
|
|
LABEL YES, NO, NEXT ; 00018325
|
|
DI := D ; 00018330
|
|
DS := 8 LIT " " ; 00018335
|
|
SI := D ; 00018340
|
|
DS := 8 WDS ; 00018345
|
|
SI := S ; 00018350
|
|
DI := D ; 00018355
|
|
2(36(IF SC = " " THEN 00018360
|
|
BEGIN 00018365
|
|
N(SI := SI - 1 ; 00018370
|
|
IF SC = " " THEN DI := DI - 1 ; 00018375
|
|
SI := SI + 1) ; 00018380
|
|
GO TO NO ; 00018385
|
|
END ; 00018390
|
|
IF SC = ALPHA THEN GO TO NO ; 00018395
|
|
IF SC GTR "R" THEN GO TO YES ; % NEQ 00018400
|
|
IF SC GEQ "+" THEN GO TO NO ; 00018405
|
|
IF SC GTR ":" THEN GO TO YES ; % GTR, GEQ 00018410
|
|
IF SC GEQ "-" THEN GO TO NO ; 00018415
|
|
IF SC GTR ";" THEN GO TO YES ; % LEQ 00018420
|
|
IF SC GEQ "&" THEN GO TO NO ; 00018425
|
|
IF SC GTR "(" THEN GO TO YES ; % LSS, LEFT-ARROW 00018430
|
|
GO TO NO ; 00018435
|
|
YES: 00018440
|
|
DS := 1 LIT "$" ; 00018445
|
|
SI := SI + 1 ; 00018446
|
|
GO TO NEXT ; 00018450
|
|
NO: 00018455
|
|
DS := 1 CHR ; 00018460
|
|
NEXT: 00018465
|
|
)) ; 00018470
|
|
SI := D ; 00018475
|
|
DI := S ; 00018480
|
|
DS := 9 WDS ; 00018485
|
|
END BLANKOUTSPECIALCHARACTERS ; 00018490
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00018500
|
|
BOOLEAN STREAM PROCEDURE ALLBLANK (S, SKP, N) ; 00018600
|
|
VALUE SKP, 00018700
|
|
N ; 00018800
|
|
BEGIN 00018900
|
|
LABEL GRPMKIT ; 00019000
|
|
SI := S ; 00019100
|
|
SI := SI + SKP ; 00019200
|
|
SI := SI + N ; 00019300
|
|
N (SI := SI - 1 ; 00019400
|
|
IF SC NEQ " " THEN 00019500
|
|
JUMP OUT TO GRPMKIT) ; 00019600
|
|
TALLY := 1 ; 00019700
|
|
SI := SI - 1 ; 00019800
|
|
GRPMKIT: 00019900
|
|
SI := SI + 1 ; 00020000
|
|
N := SI ; 00020100
|
|
DI := N ; 00020200
|
|
DS := 1 LIT "~" ; 00020300
|
|
ALLBLANK := TALLY ; 00020400
|
|
END ALLBLANK ; 00020500
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00020600
|
|
PROCEDURE WRITEALINE (K) ; 00020810
|
|
VALUE K ; INTEGER K ; 00020820
|
|
BEGIN 00020830
|
|
INTEGER NN ; 00020840
|
|
IF (LINECOUNT := LINECOUNT + 1) MOD PAGELENGTH = 0 THEN 00020850
|
|
BEGIN 00020860
|
|
NN := N ; 00020870
|
|
N := LINECOUNT DIV PAGELENGTH ; 00020880
|
|
WRITE (TWXOUT, NEWPAGE, LISTN) ; 00020890
|
|
N := NN ; 00020900
|
|
END ; 00020910
|
|
IF K = 1 THEN 00020920
|
|
WRITE (TWXOUT, LFCR) 00020930
|
|
ELSE IF K = 3 THEN 00020931
|
|
BEGIN 00020932
|
|
OCTDEC (NN:= N, N) ; 00020933
|
|
IF NN = INFINITY - 1 THEN WRITE (TWXOUT, ALLNINES) 00020934
|
|
ELSE IF FILETYPE = 2 THEN WRITE (TWXOUT, SEQCO, LISTN) 00020935
|
|
ELSE WRITE (TWXOUT, SEQAO, LISTN) ; 00020936
|
|
N := NN ; 00020937
|
|
END 00020938
|
|
ELSE IF K = 2 THEN 00020940
|
|
IF N = INFINITY - 1 THEN 00020950
|
|
WRITE (TWXOUT, ALLNINES) 00020960
|
|
ELSE 00020970
|
|
IF FILETYPE = 2 THEN 00020975
|
|
WRITE (TWXOUT, SEQC, LISTN) 00020980
|
|
ELSE WRITE (TWXOUT, SEQA, LISTN) ; 00020985
|
|
END WRITEALINE ; 00020990
|
|
DEFINE ANOTHERLINE = WRITEALINE (0)#, 00021000
|
|
WRITELFCR = WRITEALINE (1)#, 00021010
|
|
WRITESEQ = WRITEALINE (2)#, 00021020
|
|
WRITEOLDSEQ = WRITEALINE (3)# ; 00021030
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00021100
|
|
SWITCH FORMAT ERRS := (X8, "{!", 2 (A1, A6), "~"), 00021200
|
|
(X8, "{!INPUT LOST (TOO LONG).~", 4A1), 00021300
|
|
(X8, "{!BAD NAME ", A1, A6, "/", A1, A6, "~"), 00021400
|
|
(X8, "{!", A1, A6, " INVALID(*", A1, A6, ")~"), 00021500
|
|
(X8, "{!DUP. FILE ", A1, A6, "/", A1, A6, "~"), 00021600
|
|
(X8, "{!NO FILE ", A1, A6, "/", A1, A6, "~"), 00021700
|
|
(X8, "{!NUMERIC EXPECTED- ", A1, A6, "~", 2A1), 00021800
|
|
(X8, "{!BAD FILE ", A1, A6, "/", A1, A6, "~"), 00021900
|
|
(X8, "{!INLINE TYPE ", 2 (A1, A6), "~"), 00022300
|
|
(X8, "{!INV USER: ", A1, A6, "/", A1, A6, "~") ; 00022310
|
|
DEFINE ERRF = ERRS [IF K = -1 THEN 0 ELSE K]# ; 00022400
|
|
PROCEDURE ERROR (K, A, B) ; 00022500
|
|
VALUE K, 00022600
|
|
A, 00022700
|
|
B ; 00022800
|
|
INTEGER K ; 00022900
|
|
REAL A, 00023000
|
|
B ; 00023100
|
|
BEGIN 00023200
|
|
ANOTHERLINE ; 00023210
|
|
IF A = "#000000" THEN 00023220
|
|
A := " " ; 00023230
|
|
IF B = "#000000" THEN 00023240
|
|
B := " " ; 00023250
|
|
WRITE (TWXOUT, ERRF, A.[6 : 6], A, B.[6 : 6], B) ; 00023300
|
|
IF K GEQ 0 THEN 00023325
|
|
MOREINPUT := FALSE ; 00023350
|
|
GO TO NEXT ; 00023400
|
|
END ERROR ; 00023500
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00023600
|
|
PROCEDURE READIN ; 00023700
|
|
BEGIN 00023800
|
|
INTEGER STREAM PROCEDURE CHRSBEFOREGRPMK (S) ; 00023900
|
|
BEGIN 00024000
|
|
SI := S ; 00024100
|
|
56 (IF SC = "~" THEN 00024200
|
|
JUMP OUT ; 00024300
|
|
SI := SI + 1 ; 00024400
|
|
TALLY := TALLY + 1) ; 00024500
|
|
CHRSBEFOREGRPMK := TALLY ; 00024600
|
|
END CHRSBEFOREGRPMK ; 00024700
|
|
BOOLEAN STREAM PROCEDURE MORE (IMAGE, INPUT) ; 00024800
|
|
BEGIN 00024805
|
|
LOCAL QUOTES, ENDQUOTE, TEMP ; 00024810
|
|
LABEL NOTHINGYET, BUMP, FOUNDQUOTE, FOUNDSEMICOLON, LOOP, XIT ; 00024815
|
|
SI := IMAGE ; 00024820
|
|
DI := LOC QUOTES ; 00024825
|
|
DS := 2 LIT """ ; 00024830
|
|
DS := 4 LIT "()[]" ; 00024835
|
|
2 ( 40 ( CI := CI + MORE ; 00024840
|
|
GO TO NOTHINGYET ; 00024845
|
|
GO TO FOUNDSEMICOLON ; 00024850
|
|
GO TO FOUNDQUOTE ; 00024855
|
|
NOTHINGYET: 00024860
|
|
IF SC = ALPHA THEN 00024865
|
|
GO TO BUMP ; 00024870
|
|
IF SC = " " THEN 00024875
|
|
GO TO BUMP ; 00024880
|
|
DI := LOC QUOTES ; 00024885
|
|
3 (IF SC = DC THEN JUMP OUT ; 00024890
|
|
SI := SI - 1 ; 00024895
|
|
DI := DI + 1) ; 00024900
|
|
IF TOGGLE THEN 00024905
|
|
BEGIN 00024910
|
|
TEMP := SI ; 00024915
|
|
ENDQUOTE := DI ; 00024920
|
|
DI := LOC ENDQUOTE ; 00024925
|
|
SI := ENDQUOTE ; 00024930
|
|
DS := 1 CHR ; 00024935
|
|
TALLY := 2 ; 00024940
|
|
MORE := TALLY ; 00024945
|
|
SI := TEMP ; 00024950
|
|
GO TO LOOP ; 00024955
|
|
END ; 00024960
|
|
IF SC = "." THEN 00024965
|
|
JUMP OUT 2 TO XIT ; 00024970
|
|
IF SC = ";" THEN 00024975
|
|
BEGIN 00024980
|
|
TALLY := 1 ; 00024985
|
|
MORE := TALLY ; 00024990
|
|
TEMP := SI ; 00024995
|
|
SI := INPUT ; 00025000
|
|
DI := INPUT ; 00025005
|
|
DS := 8 LIT " " ; 00025010
|
|
DS := 9 WDS ; 00025015
|
|
SI := TEMP ; 00025020
|
|
DI := INPUT ; 00025025
|
|
END ; 00025030
|
|
BUMP: 00025035
|
|
SI := SI + 1 ; 00025040
|
|
GO TO LOOP ; 00025045
|
|
FOUNDSEMICOLON: 00025050
|
|
DS := 1 CHR ; 00025055
|
|
GO TO LOOP ; 00025060
|
|
FOUNDQUOTE: 00025065
|
|
DI := LOC ENDQUOTE ; 00025070
|
|
IF SC = DC THEN 00025075
|
|
BEGIN 00025080
|
|
TALLY := 0 ; 00025085
|
|
MORE := TALLY ; 00025090
|
|
END ; 00025095
|
|
LOOP: )) ; 00025100
|
|
XIT: 00025105
|
|
END MORE ; 00025110
|
|
STREAM PROCEDURE FIX (IM, TAB, N, Z) ; 00025115
|
|
VALUE TAB, N ; 00025120
|
|
BEGIN 00025125
|
|
LABEL XIT ; 00025130
|
|
SI := Z ; 00025135
|
|
DI := Z ; 00025140
|
|
DS := 8 LIT " " ; 00025145
|
|
DS := 9 WDS ; 00025150
|
|
SI := IM ; 00025155
|
|
DI := Z ; 00025160
|
|
DI := DI + TAB ; 00025165
|
|
N (2 (DS := 40 CHR) ; JUMP OUT TO XIT) ; 00025170
|
|
2 (40 (IF SC = "~" THEN JUMP OUT 2 TO XIT ; DS := 1 CHR)) ; 00025175
|
|
XIT: 00025180
|
|
SI := Z ; 00025185
|
|
DI := IM ; 00025190
|
|
DS := 10 WDS ; 00025195
|
|
END FIX ; 00025200
|
|
BOOLEAN STREAM PROCEDURE STAR (S) ; 00025500
|
|
BEGIN 00025600
|
|
SI := S ; 00025700
|
|
IF SC = "*" THEN 00025800
|
|
TALLY := 1 ; 00025900
|
|
STAR := TALLY ; 00026000
|
|
END STAR ; 00026100
|
|
INTEGER C, 00026200
|
|
CHRS ; 00026300
|
|
OWN ALPHA ARRAY INPUT [0 : 9] ; 00026350
|
|
LABEL AGAIN, EXIT ; 00026400
|
|
IF MOREINPUT THEN 00026401
|
|
BEGIN 00026402
|
|
READ (INPUT [*], 10, IMAGE [*]) ; 00026403
|
|
GO TO EXIT ; 00026404
|
|
END ; 00026405
|
|
IF FILESECURITY THEN 00026406
|
|
BEGIN 00026410
|
|
SEARCH (RECOVER, IMAGE [*]) ; 00026411
|
|
IF IMAGE [0] = -1 THEN 00026412
|
|
BEGIN 00026413
|
|
FILL SCRATCH WITH USERCODE, USERCODE ; 00026414
|
|
WRITE (SCRATCH, *, LISTN) ; 00026415
|
|
LOCK (SCRATCH) ; 00026416
|
|
END ; 00026417
|
|
READ SEEK (RECOVER [0]) ; 00026418
|
|
WRITE (RECOVER, RSWDM + 1, RSWD [*]) ; 00026420
|
|
CONTROLS [0] := N ; 00026425
|
|
CONTROLS [1] := AT & D [22 : 35 : 13] ; 00026430
|
|
CONTROLS [2] := M ; 00026435
|
|
CONTROLS [3] := INC ; 00026440
|
|
CONTROLS [4] := REAL (BOOL) ; 00026445
|
|
WRITE (RECOVER, CONTROLTOP + 1, CONTROLS [*]) ; 00026450
|
|
IF RSWDL LEQ READONLYLIMIT THEN 00026455
|
|
FOR I := D DIV 256 STEP -1 UNTIL 0 DO 00026460
|
|
WRITE (RECOVER, 256, LINKLIST [I, *]) ; 00026465
|
|
CLOSE (DISC) ; PREWHERE := -1 ; 00026470
|
|
CLOSE (RECOVER) ; 00026475
|
|
END ; 00026480
|
|
INSERT (39, " ", IMAGE [0]) ; 00026500
|
|
INSERT (39, " ", IMAGE [5]) ; 00026510
|
|
EMPTY1 := FALSE ; 00026550
|
|
AGAIN: 00026600
|
|
IF C := STATUS (INPUT [*]) GTR 2 THEN 00026700
|
|
FOR C := 0, 2 DO 00026800
|
|
IF STATION.[9 : 9] NEQ INPUT [C].[9 : 9] THEN 00026900
|
|
BEGIN 00027000
|
|
WRITE (TWXOUTPUT (INPUT [C]), ERRS [0], "U", "SE EXE", "C", 00027100
|
|
"UTE. ") ; 00027200
|
|
RELEASE (INPUT [C]) ; 00027300
|
|
GO TO AGAIN ; 00027400
|
|
END ; 00027500
|
|
IF C = 0 THEN 00027510
|
|
GO TO STOP ; 00027520
|
|
INSERT (63, "~", INPUT [0]) ; 00027600
|
|
READ (TWXIN, 8, INPUT [*]) [STOP] ; 00027700
|
|
C := CHRSBEFOREGRPMK (INPUT [1]) ; 00027800
|
|
IF C = 32 THEN 00027900
|
|
IF INPUT [0].[25 : 1] = 1 THEN 00028000
|
|
C := 28 ; 00028100
|
|
00028200
|
|
00028300
|
|
00028400
|
|
IF CHRS + C GTR 80 OR CHRS GTR 63 THEN 00028500
|
|
ERROR (1, 0, 0) ; 00028600
|
|
MOVE (INPUT [1], IMAGE [0], 0, CHRS, C + 1) ; 00028700
|
|
CHRS := CHRS + C ; 00028800
|
|
IF INPUT [0].[25 : 1] NEQ 0 THEN 00028900
|
|
GO TO AGAIN ; 00029000
|
|
EXIT: 00029010
|
|
NOSTAR := NOT STAR (IMAGE) ; 00029015
|
|
IF NOSTAR THEN 00029020
|
|
BEGIN 00029030
|
|
FIX (IMAGE, TABAMOUNT, INLINETOG, ZIPPY) ; 00029040
|
|
MOREINPUT := FALSE 00029050
|
|
END 00029060
|
|
ELSE 00029070
|
|
MOREINPUT := MORE (IMAGE, INPUT) ; 00029080
|
|
END READIN ; 00029100
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00029110
|
|
PROCEDURE RDISC (WHERE, RECAGE) ; 00029120
|
|
VALUE WHERE ; 00029130
|
|
INTEGER WHERE ; 00029140
|
|
ARRAY RECAGE [0] ; 00029150
|
|
BEGIN 00029160
|
|
IF PREWHERE + 1 NEQ PREWHERE := WHERE THEN 00029170
|
|
READ (DISC [WHERE]) ; 00029180
|
|
READ (DISC, 10, RECAGE [*]) ; 00029190
|
|
END RDISC ; 00029195
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00029200
|
|
PROCEDURE WRITEAT ; 00029300
|
|
BEGIN 00029400
|
|
INTEGER I ; 00029500
|
|
LABEL BLANKLINE ; 00029600
|
|
RDISC (AT - 2, RECORD) ; 00029700
|
|
00029800
|
|
N := LINKLISTSUBAT.S ; 00029900
|
|
IF FILETYPE NEQ 2 THEN 00030000
|
|
WRITESEQ 00030100
|
|
ELSE 00030200
|
|
BEGIN 00030205
|
|
WRITELFCR ; 00030210
|
|
COBOLSEQ (N, RECORD, IMAGE, SUFFIX, TRUE) ; 00030220
|
|
END ; 00030230
|
|
EXTRALFCR := FALSE ; 00030250
|
|
BLANKOUTSPECIALCHARACTERS (RECORD,IMAGE,QUICK) ; 00030275
|
|
IF ALLBLANK (RECORD [7], 0, 16) THEN 00030300
|
|
IF ALLBLANK (RECORD [3], 4, 28) THEN 00030400
|
|
IF ALLBLANK (RECORD [0], 0, 28) THEN 00030500
|
|
GO TO BLANKLINE ; 00030600
|
|
IF NOT ALLBLANK (RECORD [8], 0, 8) THEN 00030700
|
|
IF FILETYPE NEQ 2 THEN 00030800
|
|
BEGIN 00030825
|
|
EXTRALFCR := TRUE ; 00030850
|
|
WRITELFCR ; 00030900
|
|
END ; 00030950
|
|
INSERT (7, "~", IMAGE [4]) ; 00031000
|
|
FOR I := 0 STEP 1 UNTIL 2 DO 00031100
|
|
BEGIN 00031200
|
|
MOVE (RECORD [3 | I], IMAGE [1], 4 | I, 0, 28) ; 00031300
|
|
WRITE (TWXOUT, 5, IMAGE [*]) [: NEXT] ; 00031400
|
|
END ; 00031500
|
|
BLANKLINE: 00031600
|
|
END WRITEAT ; 00031700
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00031800
|
|
BOOLEAN PROCEDURE POSTMAN ; 00031900
|
|
BEGIN 00031925
|
|
BOOLEAN STREAM PROCEDURE POSTFROM (SENDER, MESSAGE, Z) ; 00031950
|
|
BEGIN 00031960
|
|
LABEL OK, EXIT ; 00031970
|
|
00031975
|
|
SI := Z ; 00031980
|
|
DI := Z ; 00031990
|
|
DS := 8 LIT " " ; 00032000
|
|
DS := 8 WDS ; 00032010
|
|
SI := MESSAGE ; 00032020
|
|
00032025
|
|
20 (IF SC = ":" THEN 00032030
|
|
JUMP OUT TO OK ; 00032040
|
|
SI := SI + 1) ; 00032050
|
|
TALLY := 1 ; 00032060
|
|
POSTFROM := TALLY ; 00032070
|
|
00032075
|
|
GO TO EXIT ; 00032080
|
|
OK: 00032090
|
|
SI := SI + 1 ; 00032100
|
|
DI := Z ; 00032110
|
|
63 (IF SC = "~" THEN 00032120
|
|
00032125
|
|
JUMP OUT ; 00032130
|
|
DS := 1 CHR) ; 00032140
|
|
DS := 1 LIT "-" ; 00032150
|
|
SI := SENDER ; 00032160
|
|
SI := SI + 1 ; 00032170
|
|
00032175
|
|
DS := 7 CHR ; 00032180
|
|
EXIT: 00032190
|
|
END POSTFROM ; 00032200
|
|
00032225
|
|
00032250
|
|
00032275
|
|
00032300
|
|
00032325
|
|
00032350
|
|
00032375
|
|
IF NUM2 THEN 00032400
|
|
BEGIN 00032425
|
|
OCTDEC (CONTROLS [2], M) ; 00032450
|
|
CONTROLS [2] := M ; 00032475
|
|
END ; 00032500
|
|
FILL LIBRARY WITH "MAIL % ", IF EMPTY1 THEN USERCODE ELSE CONTROLS[2];00032525
|
|
SEARCH (LIBRARY, ZIPPY [*]) ; 00032550
|
|
IF EMPTY1 THEN 00032575
|
|
BEGIN 00032600
|
|
IF ZIPPY [0] = -1 THEN 00032625
|
|
ERROR (0, "SORRY, ", "NO MAIL") ; 00032650
|
|
CONTROLS [1] := "MAIL % " ; 00032675
|
|
EMPTY1 := FALSE ; 00032700
|
|
NUM1 := FALSE ; 00032725
|
|
CONTROLS [2] := USERCODE ; 00032750
|
|
EMPTY2 := FALSE ; 00032775
|
|
NUM2 := FALSE ; 00032800
|
|
NUM3 := FALSE ; 00032825
|
|
POSTMAN := TRUE ; 00032850
|
|
END ELSE 00032875
|
|
BEGIN 00032900
|
|
IF CONTROLS [1] NEQ "TO " THEN 00032925
|
|
ERROR (0, "MISSING", " TO. ") ; 00032950
|
|
IF POSTFROM (USERCODE, IMAGE, RECORD) THEN 00032975
|
|
ERROR (0, "MISSING", " COLON.") ; 00033000
|
|
IF ZIPPY [0] = -1 THEN 00033025
|
|
BEGIN 00033050
|
|
I := STATUS (STATION, 3) ; 00033075
|
|
FILL SCRATCH WITH "MAIL % ", CONTROLS [2] ; 00033100
|
|
WRITE (SCRATCH, 10, RECORD [*]) ; 00033125
|
|
LOCK (SCRATCH) ; 00033150
|
|
I := STATUS (STATION, 4) ; 00033175
|
|
END ELSE 00033200
|
|
BEGIN 00033225
|
|
WRITE (LIBRARY [ZIPPY [5] + 1], 10, RECORD [*]) ; 00033250
|
|
CLOSE (LIBRARY) ; 00033275
|
|
END ; 00033300
|
|
MOREINPUT := FALSE ; 00033302
|
|
POSTMAN := FALSE ; 00033325
|
|
END ; 00033350
|
|
END POSTMAN ; 00033375
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00033400
|
|
00033500
|
|
00033600
|
|
00033700
|
|
00033800
|
|
00033900
|
|
BOOLEAN PROCEDURE ITSOLD (N) ; 00034000
|
|
VALUE N ; 00034100
|
|
INTEGER N ; 00034200
|
|
BEGIN 00034300
|
|
WHILE N LSS LINKLISTSUBAT.S DO 00034400
|
|
AT := LINKLISTSUBAT.F ; 00034500
|
|
WHILE N GTR LINKLISTSUBAT.S DO 00034600
|
|
AT := LINKLISTSUBAT.T ; 00034700
|
|
ITSOLD := N = LINKLISTSUBAT.S ; 00034800
|
|
END ITSOLD ; 00034900
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00035000
|
|
STREAM PROCEDURE STAR (S, D) ; 00035100
|
|
BEGIN 00035200
|
|
LOCAL N, 00035300
|
|
K ; 00035310
|
|
LABEL DEBLANK, 00035400
|
|
NALPHA, 00035410
|
|
BLANK, 00035420
|
|
NUMALPHA ; 00035450
|
|
SI := S ; 00035500
|
|
00035600
|
|
00035700
|
|
DI := S ; 00035800
|
|
2 (DI := DI + 36) ; 00035900
|
|
DS := 1 LIT """ ; 00036000
|
|
DI := D ; 00036100
|
|
5 (DS := 8 LIT "0#000000") ; 00036200
|
|
DI := D ; 00036300
|
|
5 (TALLY := 0 ; 00036400
|
|
K := TALLY ; 00036410
|
|
DEBLANK: 00036500
|
|
TALLY := 0 ; 00036510
|
|
SI := SI + 1 ; 00036600
|
|
IF SC = " " THEN 00036700
|
|
GO TO DEBLANK ; 00036800
|
|
IF SC = ALPHA THEN ELSE 00036802
|
|
BEGIN 00036804
|
|
IF SC = "." THEN 00036810
|
|
JUMP OUT ; 00036820
|
|
IF SC = ";" THEN 00036830
|
|
JUMP OUT ; 00036840
|
|
IF SC = """ THEN 00036900
|
|
JUMP OUT ; 00036920
|
|
IF SC = "(" THEN 00036940
|
|
JUMP OUT ; 00036960
|
|
IF SC = "[" THEN 00036980
|
|
JUMP OUT ; 00037000
|
|
IF SC = "/" THEN 00037010
|
|
TALLY := 1 ; 00037020
|
|
K := TALLY ; 00037030
|
|
GO TO DEBLANK ; 00037040
|
|
END ; 00037050
|
|
IF SC GEQ "0" THEN 00037100
|
|
BEGIN 00037200
|
|
K (JUMP OUT TO NALPHA) ; 00037210
|
|
K := SI ; 00037220
|
|
8 (IF SC LSS "0" THEN 00037300
|
|
JUMP OUT ; 00037400
|
|
TALLY := TALLY + 1 ; 00037500
|
|
SI := SI + 1) ; 00037600
|
|
N := TALLY ; 00037700
|
|
IF TOGGLE THEN 00037705
|
|
BEGIN 00037710
|
|
IF SC = ALPHA THEN 00037715
|
|
GO TO NUMALPHA ; 00037720
|
|
BLANK: IF SC = " " THEN BEGIN SI := SI + 1 ; GO TO BLANK ; END ; 00037722
|
|
IF SC = "/" THEN 00037725
|
|
BEGIN 00037730
|
|
NUMALPHA: 00037735
|
|
SI := K ; 00037740
|
|
GO TO NALPHA ; 00037745
|
|
END ; 00037750
|
|
END ; 00037755
|
|
SI := K ; 00037800
|
|
DS := N OCT ; 00037900
|
|
SI := SI - 1 ; 00037950
|
|
END 00038000
|
|
ELSE 00038100
|
|
BEGIN 00038200
|
|
NALPHA: 00038250
|
|
DS := 1 LIT "+" ; 00038300
|
|
7 (IF SC = ALPHA THEN 00038400
|
|
DS := 1 CHR 00038500
|
|
ELSE DS := 1 LIT " ") ; 00038600
|
|
SI := SI - 1 ; 00038650
|
|
END) ; 00038700
|
|
00038800
|
|
00038900
|
|
00039000
|
|
00039100
|
|
END STAR ; 00039200
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00039300
|
|
BOOLEAN STREAM PROCEDURE INLINEEDIT (S, D, T, INITIAL) ; 00039400
|
|
VALUE INITIAL ; 00039450
|
|
BEGIN 00039500
|
|
LABEL SEARCH, 00039600
|
|
INSERT, 00039700
|
|
DELETE, 00039800
|
|
REPLACE, 00039900
|
|
WRAPUP, 00040000
|
|
LOOP, 00040100
|
|
IDR, 00040150
|
|
XIT ; 00040200
|
|
LOCAL BIDR ; 00040300
|
|
DI := LOC BIDR ; 00040325
|
|
DS := 4 LIT " IDR" ; 00040350
|
|
DI := T ; 00040400
|
|
DS := 8 LIT " " ; 00040500
|
|
SI := T ; 00040600
|
|
DS := 9 WDS ; 00040700
|
|
TALLY := INITIAL ; 00040725
|
|
INLINEEDIT := TALLY ; 00040750
|
|
TALLY := 0 ; 00040775
|
|
2 (36 (CI := CI + INLINEEDIT ; 00040800
|
|
GO TO SEARCH ; 00040900
|
|
GO TO IDR ; 00041000
|
|
GO TO IDR ; 00041100
|
|
GO TO IDR ; 00041200
|
|
GO TO WRAPUP ; 00041300
|
|
SEARCH: 00041400
|
|
SI := D ; 00041500
|
|
DI := T ; 00041600
|
|
DS := 1 CHR ; 00041700
|
|
D := SI ; 00041800
|
|
T := DI ; 00041900
|
|
SI := S ; 00042000
|
|
DI := LOC BIDR ; 00042100
|
|
4 (IF SC = DC THEN 00042200
|
|
JUMP OUT ; 00042300
|
|
SI := SI - 1 ; 00042400
|
|
TALLY := TALLY + 1) ; 00042500
|
|
IF TOGGLE THEN ELSE 00042600
|
|
BEGIN 00042700
|
|
TALLY := 1 ; 00042800
|
|
JUMP OUT 2 TO XIT ; 00042900
|
|
END ; 00043000
|
|
00043100
|
|
00043200
|
|
00043300
|
|
00043400
|
|
00043500
|
|
00043600
|
|
00043700
|
|
00043800
|
|
00043900
|
|
00044000
|
|
INLINEEDIT := TALLY ; 00044100
|
|
TALLY := 0 ; 00044200
|
|
00044300
|
|
S := SI ; 00044400
|
|
GO TO LOOP ; 00044500
|
|
IDR: 00044600
|
|
SI := S ; 00044700
|
|
IF SC = "~" THEN 00044800
|
|
BEGIN 00044810
|
|
SI := D ; 00044820
|
|
DI := T ; 00044830
|
|
TALLY := 4 ; 00044840
|
|
INLINEEDIT := TALLY ; 00044850
|
|
WRAPUP: 00044860
|
|
DS := 1 CHR ; 00044870
|
|
GO TO LOOP ; 00044880
|
|
END ; 00044890
|
|
00044900
|
|
CI := CI + INLINEEDIT ; 00044905
|
|
GO TO WRAPUP ; 00044910
|
|
GO TO INSERT ; 00044915
|
|
GO TO DELETE ; 00044920
|
|
GO TO REPLACE ; 00044925
|
|
INSERT: 00044930
|
|
DI := T ; 00045000
|
|
DS := 1 CHR ; 00045100
|
|
S := SI ; 00045200
|
|
T := DI ; 00045300
|
|
GO TO LOOP ; 00045400
|
|
DELETE: 00045500
|
|
00045600
|
|
00045700
|
|
00045800
|
|
DI := D ; 00045900
|
|
DI := DI + 1 ; 00046000
|
|
D := DI ; 00046100
|
|
SI := SI + 1 ; 00046200
|
|
S := SI ; 00046300
|
|
GO TO LOOP ; 00046400
|
|
REPLACE: 00046500
|
|
00046600
|
|
00046700
|
|
00046800
|
|
DI := T ; 00046900
|
|
DS := 1 CHR ; 00047000
|
|
S := SI ; 00047100
|
|
T := DI ; 00047200
|
|
SI := D ; 00047300
|
|
SI := SI + 1 ; 00047400
|
|
D := SI ; 00047500
|
|
GO TO LOOP ; 00047600
|
|
00047700
|
|
00047800
|
|
00047900
|
|
00048000
|
|
00048100
|
|
00048200
|
|
00048300
|
|
00048400
|
|
LOOP: 00048500
|
|
)) ; 00048600
|
|
TALLY := 0 ; 00048700
|
|
XIT: 00048800
|
|
INLINEEDIT := TALLY ; 00048900
|
|
END INLINE ; 00049000
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00049002
|
|
STREAM PROCEDURE TRANSLATE (RECORD, SCRATCH) ; 00049004
|
|
BEGIN 00049006
|
|
LOCAL N ; 00049008
|
|
SI := SCRATCH ; 00049012
|
|
DI := SCRATCH ; 00049014
|
|
DS := 8 LIT " " ; 00049016
|
|
DS := 8 WDS ; 00049018
|
|
SI := RECORD ; 00049020
|
|
DI := SCRATCH ; 00049022
|
|
2(36( 00049024
|
|
IF TOGGLE THEN 00049028
|
|
BEGIN 00049030
|
|
N := TALLY ; 00049032
|
|
TALLY := 1 ; 00049034
|
|
IF SC = "-" THEN DS := 1 LIT "~" 00049036
|
|
ELSE IF SC = "*" THEN DS := 1 LIT "*" 00049037
|
|
ELSE IF SC = "=" THEN DS := 1 LIT "!" 00049038
|
|
ELSE IF SC = "(" THEN DS := 1 LIT "<" 00049040
|
|
ELSE IF SC = ")" THEN DS := 1 LIT ">" 00049042
|
|
ELSE IF SC = "[" THEN DS := 1 LIT "{" 00049044
|
|
ELSE IF SC = "]" THEN DS := 1 LIT "}" 00049046
|
|
ELSE IF SC = "%" THEN BEGIN DS:=2 RESET; DS:=2 SET; DS:=2 RESET; END00049047
|
|
ELSE 00049048
|
|
BEGIN 00049050
|
|
TALLY := N ; 00049052
|
|
DS := 1 LIT "%" ; 00049054
|
|
DS := 1 CHR ; 00049066
|
|
SI := SI - 1 ; 00049068
|
|
END ; 00049070
|
|
IF SC = "%" THEN IF SC = "A" THEN ; % THIS RESETS TOGGLE. 00049072
|
|
SI := SI + 1 ; 00049074
|
|
END 00049076
|
|
ELSE IF SC = "%" THEN 00049078
|
|
SI := SI + 1 00049080
|
|
ELSE DS := 1 CHR)) ; 00049082
|
|
N := TALLY ; 00049084
|
|
N (SI := SCRATCH ; 00049086
|
|
DI := RECORD ; 00049088
|
|
DS := 9 WDS) ; 00049090
|
|
END TRANSLATE ; 00049092
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00049100
|
|
PROCEDURE ADJUSTFORNUMERICIDS ; 00049200
|
|
BEGIN 00049300
|
|
IF NUM1 THEN 00049400
|
|
BEGIN 00049500
|
|
OCTDEC (CONTROLS [1], M) ; 00049600
|
|
CONTROLS [1] := M ; 00049700
|
|
END ; 00049800
|
|
IF NUM2 THEN 00049900
|
|
BEGIN 00050000
|
|
OCTDEC (CONTROLS [2], M) ; 00050100
|
|
CONTROLS [2] := M ; 00050200
|
|
END ; 00050300
|
|
END ADJUSTFORNUMERICIDS ; 00050400
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00050401
|
|
PROCEDURE FINDSEGRELADDR ; 00050402
|
|
BEGIN 00050403
|
|
LABEL EOF ; FILE LINE 15 (2,15) ; FILL LINE WITH "LINE ", USERCODE ; 00050404
|
|
FILL FEEDBACK WITH "LINE ", USERCODE ; 00050405
|
|
SEARCH (FEEDBACK, IMAGE [*]) ; 00050406
|
|
IF IMAGE [0] LEQ 0 THEN 00050407
|
|
ERROR (9 + 4 | IMAGE [0], "LINE ", USERCODE) ; 00050408
|
|
IF CONTROLS [1] = "ALGOL " THEN 00050409
|
|
I := 0 00050410
|
|
ELSE IF CONTROLS [1] = "FORTRAN" THEN 00050411
|
|
I := 1 00050412
|
|
ELSE IF CONTROLS [1] = "COBOL " THEN 00050413
|
|
I := 2 00050414
|
|
ELSE IF NOT EMPTY1 THEN 00050415
|
|
ERROR (7, "TYPE: ", CONTROLS [1]) ; 00050416
|
|
WRITE (TWXOUT, WAIT) ; CONTROLS [0] := N ; 00050417
|
|
IF NUM2 AND NUM3 AND NUM4 THEN 00050418
|
|
BEGIN 00050419
|
|
B := TRUE ; 00050420
|
|
WHILE B DO 00050421
|
|
BEGIN 00050422
|
|
READ (FEEDBACK, 15, ZIPPY [*]) [EOF] ; 00050423
|
|
IF I = 0 THEN 00050424
|
|
BEGIN 00050425
|
|
READ (ZIPPY [*], X116I4, LISTN) ; 00050426
|
|
IF N = 0 THEN 00050427
|
|
N := M 00050428
|
|
ELSE 00050429
|
|
BEGIN 00050430
|
|
M := N ; 00050431
|
|
N := 0 ; 00050432
|
|
END ; 00050433
|
|
END ELSE 00050434
|
|
IF I = 1 THEN 00050435
|
|
BEGIN 00050436
|
|
READ (ZIPPY [*], X92A4, LISTN) ; 00050437
|
|
IF N NEQ "LONG" THEN 00050438
|
|
BEGIN 00050439
|
|
READ (ZIPPY [*], X91I4, LISTN) ; 00050440
|
|
IF N = 0 THEN 00050441
|
|
N := M 00050442
|
|
ELSE 00050443
|
|
BEGIN 00050444
|
|
M := N ; 00050445
|
|
N := 0 ; 00050446
|
|
END ; 00050447
|
|
END ELSE 00050448
|
|
N := 0 ; 00050449
|
|
END ELSE 00050460
|
|
READ (ZIPPY [*], X96I4, LISTN) ; 00050461
|
|
IF N = CONTROLS [2] THEN 00050462
|
|
BEGIN 00050463
|
|
IF I = 0 THEN 00050464
|
|
READ (ZIPPY [*], X108I4, LISTN) 00050465
|
|
ELSE IF I = 1 THEN 00050466
|
|
READ (ZIPPY [*], X84I4, LISTN) 00050467
|
|
ELSE READ (ZIPPY [*], X101I4, LISTN) ; 00050468
|
|
B := N LEQ CONTROLS [4] ; 00050469
|
|
IF CONTROLS [3] LEQ N AND B THEN 00050470
|
|
BEGIN 00050471
|
|
IMAGE [0] := N ; 00050472
|
|
IF I = 0 THEN 00050473
|
|
READ (ZIPPY [*], X96I8, LISTN) 00050474
|
|
ELSE IF I = 1 THEN 00050475
|
|
READ (ZIPPY [*], X72I8, LISTN) 00050476
|
|
ELSE READ (ZIPPY [*], X5I6, LISTN) ; 00050477
|
|
WRITESEQ ; 00050478
|
|
N := CONTROLS [2] ; 00050479
|
|
WRITE (TWXOUT, SEGMENT, LISTN) [:EOF] ; 00050480
|
|
N := IMAGE [0] ; 00050481
|
|
WRITE (TWXOUT, RELADDR, LISTN) [:EOF] ; 00050482
|
|
END ; 00050483
|
|
END ; 00050484
|
|
END ; 00050485
|
|
END ELSE 00050486
|
|
IF CONTROLS [2] . [6:30] = "ERROR" OR CONTROLS [2] = "SYNTAX " THEN 00050487
|
|
BEGIN 00050488
|
|
M := I ; 00050489
|
|
00050490
|
|
WHILE TRUE DO 00050491
|
|
BEGIN 00050492
|
|
READ (FEEDBACK, 15, ZIPPY [*]) [EOF] ; 00050493
|
|
IF M = 2 THEN 00050494
|
|
BEGIN 00050495
|
|
READ (ZIPPY [*], A1, LISTN) ; 00050496
|
|
IF N = " " OR N = "[" THEN 00050497
|
|
READ (ZIPPY [*], X5I6, LISTN) 00050498
|
|
ELSE 00050499
|
|
N := 0 ; 00050500
|
|
END ELSE 00050501
|
|
IF M = 1 THEN 00050502
|
|
READ (ZIPPY [*], X72I8, LISTN) 00050503
|
|
ELSE 00050504
|
|
READ (ZIPPY [*], X96I8, LISTN) ; 00050505
|
|
IF N NEQ 0 THEN 00050506
|
|
I := N 00050507
|
|
ELSE 00050508
|
|
BEGIN 00050509
|
|
N := I ; 00050510
|
|
WRITESEQ ; 00050511
|
|
BLANKOUTSPECIALCHARACTERS (ZIPPY,IMAGE,1) ; 00050512
|
|
IF ALLBLANK (ZIPPY [7], 0, 16) THEN 00050513
|
|
IF ALLBLANK (ZIPPY [3], 4, 28) THEN 00050514
|
|
B := ALLBLANK (ZIPPY [0], 0, 28) ; 00050515
|
|
INSERT (7, "~", IMAGE [4]) ; 00050516
|
|
FOR I := 0 STEP 1 UNTIL 2 DO 00050517
|
|
BEGIN 00050518
|
|
MOVE (ZIPPY [3 | I], IMAGE [1], 4 | I, 0, 28) ; 00050519
|
|
WRITE (TWXOUT, 5, IMAGE [*]) [:EOF] ; 00050520
|
|
END ; 00050521
|
|
END ; 00050522
|
|
END ; 00050523
|
|
END ELSE 00050524
|
|
IF EMPTY1 THEN 00050525
|
|
WHILE TRUE DO 00050526
|
|
BEGIN 00050527
|
|
READ (FEEDBACK, 15, ZIPPY [*]) [EOF] ; 00050528
|
|
WRITE (LINE [DBL], 15, ZIPPY [*]) ; 00050529
|
|
END ELSE 00050530
|
|
ERROR (6, "3 TIMES", 0) ; 00050531
|
|
EOF: 00050532
|
|
CLOSE (FEEDBACK) ; 00050533
|
|
N := CONTROLS [0] ; 00050534
|
|
END FINDSEGRELADDR ; 00050535
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00050536
|
|
PROCEDURE VERIFAX (XEROX) ; 00050537
|
|
VALUE XEROX ; 00050600
|
|
BOOLEAN XEROX ; 00050700
|
|
BEGIN 00050800
|
|
FILE COPY DISK SERIAL [20 : 15 | ((D + 14) DIV 15)] (2, IF PRINTING 00050900
|
|
THEN 00051000
|
|
15 00051100
|
|
ELSE 10, IF PRINTING THEN 00051200
|
|
15 00051300
|
|
ELSE 150, SAVE SAVEFACTOR) ; 00051400
|
|
DEFINE SAVED = COPY# ; 00051700
|
|
DEFINE ALREADYSEQ = TRUE# ; 00051800
|
|
INTEGER AT ; 00051900
|
|
REAL I ; 00052000
|
|
DEFINE IMAGE = ZIPPY # ; 00052050
|
|
REAL ARRAY LINCLIST [0 : D DIV 256, 0 : 255] ; 00052100
|
|
DEFINE LINKLISTSUBD = LINCLIST [D.LEFTSIDE, D.RIGHTSIDE]# ; 00052200
|
|
00052210
|
|
00052220
|
|
00052230
|
|
00052240
|
|
00052250
|
|
00052260
|
|
00052270
|
|
00052280
|
|
00052290
|
|
IF XEROX THEN 00052300
|
|
BEGIN % XEROX 00052400
|
|
FILL COPY WITH PREFIX, SUFFIX, *, *, *, 12 ; 00052500
|
|
WRITE (TWXOUT, WAIT) ; 00052600
|
|
D := 0 ; 00052700
|
|
LINKLISTSUBD := 2 ; 00052800
|
|
D := 1 ; 00052900
|
|
WHILE AT := LINKLISTSUBAT.T NEQ 1 DO 00053000
|
|
BEGIN 00053100
|
|
RDISC (AT - 2, IMAGE) ; 00053200
|
|
00053300
|
|
N := LINKLISTSUBAT.S ; 00053400
|
|
SEQUENCE ; 00053500
|
|
D := D + 1 ; 00053600
|
|
LINKLISTSUBD := 0 & N [SF] & (D - 1) [FF] & (D + 1) [TF] ; 00053700
|
|
WRITE (COPY, 10, IMAGE [*]) ; 00053800
|
|
END ; 00053900
|
|
LINKLISTSUBD.T := 1 ; 00054000
|
|
RELEASE (STATION) ; 00054025
|
|
CLOSE (DISC, PURGE) ; PREWHERE := -1 ; 00054100
|
|
LOCK (COPY) ; 00054200
|
|
SEEK (TWXINPUT (STATION)) ; 00054225
|
|
IF RSWDL = 0 THEN 00054300
|
|
FOR I := D DIV 256 STEP - 1 UNTIL 0 DO 00054500
|
|
WRITE (LINKLIST [I, *], 256, LINCLIST [I, *]) ; 00054600
|
|
AT := 1 ; 00054700
|
|
INORDER := TRUE ; 00054800
|
|
LINKLISTSUBAT := 0 & INFINITY [SF] & D [FF] & 1 [TF] ; 00054900
|
|
AT := 2 ; 00055000
|
|
LINKLISTSUBAT.F := 0 ; 00055100
|
|
N := N + INC ; 00055150
|
|
IF D = 1 THEN 00055200
|
|
SETRSWDL ; 00055300
|
|
IF FILESECURITY THEN 00055306
|
|
BEGIN 00055308
|
|
SEARCH (RECOVER, IMAGE [*]) ; 00055310
|
|
IF IMAGE [0] = -1 THEN 00055312
|
|
BEGIN 00055314
|
|
FILL SCRATCH WITH USERCODE, USERCODE ; 00055316
|
|
WRITE (SCRATCH, *, LISTN) ; 00055318
|
|
LOCK (SCRATCH) ; 00055320
|
|
END ; 00055322
|
|
READ SEEK (RECOVER [0]) ; 00055324
|
|
WRITE (RECOVER, RSWDM + 1, RSWD [*]) ; 00055326
|
|
READ (CONTROLS [*], 5, IMAGE [*]) ; 00055327
|
|
CONTROLS [0] := N ; 00055328
|
|
CONTROLS [1] := AT & D [22 : 35 : 13] ; 00055330
|
|
CONTROLS [2] := M ; 00055332
|
|
CONTROLS [3] := INC ; 00055334
|
|
CONTROLS [4] := REAL (BOOL) ; 00055336
|
|
WRITE (RECOVER, CONTROLTOP + 1, CONTROLS [*]) ; 00055338
|
|
WRITE (CONTROLS [*], 5, IMAGE [*]) ; 00055339
|
|
IF RSWDL LEQ READONLYLIMIT THEN 00055340
|
|
FOR I := D DIV 256 STEP -1 UNTIL 0 DO 00055342
|
|
WRITE (RECOVER, 256, LINKLIST [I, *]) ; 00055344
|
|
CLOSE (DISC) ; PREWHERE := -1 ; 00055346
|
|
CLOSE (RECOVER) ; 00055348
|
|
END ; 00055350
|
|
END XEROX 00055400
|
|
ELSE 00055500
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00055600
|
|
BEGIN % THERMOFAX 00055700
|
|
FILL SAVED WITH CONTROLS [1], CONTROLS [2], *, *, *, IF PRINTING 00055800
|
|
THEN 00055900
|
|
IF PUNCHING THEN 0 ELSE 15 00056000
|
|
ELSE 12 ; 00056100
|
|
IF NOT PRINTING THEN 00056200
|
|
BEGIN 00056300
|
|
SEARCH (SAVED, IMAGE [*]) ; 00056400
|
|
IF IMAGE [0] NEQ - 1 THEN 00056500
|
|
ERROR (4, CONTROLS [1], CONTROLS [2]) ; 00056600
|
|
CONTROLS [3] := -1 ; 00056625
|
|
CONTROLS [4] := INFINITY ; 00056650
|
|
END ELSE 00056700
|
|
IF NOT NUM4 THEN 00056710
|
|
BEGIN 00056720
|
|
CONTROLS [4] := INFINITY ; 00056730
|
|
IF NOT NUM3 THEN 00056740
|
|
CONTROLS [3] := -1 ; 00056750
|
|
END ; 00056760
|
|
WRITE (TWXOUT, WAIT) ; 00056800
|
|
IF PRINTING AND NOT PUNCHING THEN 00056805
|
|
BEGIN 00056810
|
|
M := TIME (0) ; 00056815
|
|
WRITE (IMAGE [*], DATE, TIMEOUT) ; 00056820
|
|
IMAGE [4] := PREFIX ; 00056825
|
|
INSERT (0, " ", IMAGE [4]) ; 00056830
|
|
IMAGE [5] := SUFFIX ; 00056835
|
|
INSERT (0, "/", IMAGE [5]) ; 00056840
|
|
IMAGE [10] := USERCODE ; 00056845
|
|
INSERT (0, " ", IMAGE [10]) ; 00056850
|
|
WRITE (SAVED [DBL], 15, IMAGE [*]) ; 00056855
|
|
INSERT (7, " ", IMAGE [10]) ; 00056860
|
|
END ; 00056865
|
|
I := N ; 00056900
|
|
AT := N := M := 0 ; 00057000
|
|
WHILE AT := LINKLISTSUBAT.T NEQ 1 DO 00057100
|
|
IF CONTROLS[3] LEQ N:=LINKLISTSUBAT.S AND N LEQ CONTROLS[4] THEN 00057150
|
|
BEGIN 00057200
|
|
RDISC (AT - 2, IMAGE) ; 00057300
|
|
00057400
|
|
OCTDEC (M := M + 1, IMAGE [14]) ; 00057500
|
|
IF NOT ZIPPING THEN 00058000
|
|
SEQUENCE ; 00058100
|
|
IF PRINTING AND NOT PUNCHING AND CONTROLS [2] = "DOUBLE " THEN 00058110
|
|
WRITE (SAVED [DBL], 15, IMAGE [*]) 00058120
|
|
ELSE 00058130
|
|
WRITE (SAVED, 15, IMAGE [*]) ; 00058200
|
|
END ELSE M := M + 1 ; 00058300
|
|
IF ZIPPING THEN 00058325
|
|
ZIP WITH SAVED 00058350
|
|
ELSE 00058375
|
|
LOCK (SAVED) ; 00058400
|
|
N := I ; 00058500
|
|
END THERMOFAX ; 00058600
|
|
END VERIFAX ; 00058700
|
|
00058750
|
|
DEFINE XEROX = VERIFAX (TRUE)# ; 00058800
|
|
DEFINE THERMOFAX = VERIFAX (FALSE)# ; 00058900
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00059000
|
|
PROCEDURE WDISC ; 00059002
|
|
BEGIN 00059004
|
|
LABEL EOT ; 00059006
|
|
IF FALSE THEN 00059008
|
|
BEGIN 00059010
|
|
EOT: 00059012
|
|
AT := LINKLISTSUBD . F ; 00059014
|
|
LINKLISTSUBAT . T := AT := LINKLISTSUBD . T ; 00059016
|
|
LINKLISTSUBAT . F := LINKLISTSUBD . F ; 00059018
|
|
D := D - 1 ; 00059020
|
|
READ SEEK (DISC [0]) ; 00059022
|
|
PREWHERE := -1 ; 00059024
|
|
XEROX ; 00059026
|
|
END ; 00059028
|
|
WHILE N GTR LINKLISTSUBAT.S DO 00059030
|
|
AT := LINKLISTSUBAT.T ; 00059032
|
|
WHILE N LSS LINKLISTSUBAT.S DO 00059034
|
|
AT := LINKLISTSUBAT.F ; 00059036
|
|
IF N NEQ LINKLISTSUBAT.S THEN 00059038
|
|
BEGIN 00059040
|
|
IF D := D + 1 GTR MAXFILELENGTH THEN 00059042
|
|
ERROR (0, "FILE TO", " LONG. ") ; 00059044
|
|
LINKLISTSUBD := 0 & N [SF] & AT [FF] & (LINKLISTSUBAT.T) [TF] ; 00059046
|
|
LINKLISTSUBAT.T := D ; 00059048
|
|
AT := LINKLISTSUBD.T ; 00059050
|
|
IF AT NEQ 1 THEN 00059052
|
|
INORDER := FALSE ; 00059054
|
|
LINKLISTSUBAT.F := D ; 00059056
|
|
AT := D ; 00059058
|
|
END ; 00059060
|
|
SEQUENCE ; 00059062
|
|
IF PREWHERE + 1 NEQ PREWHERE := AT - 2 THEN 00059064
|
|
WRITE (DISC [PREWHERE], 10, IMAGE [*]) [EOT] 00059066
|
|
ELSE 00059068
|
|
WRITE (DISC, 10, IMAGE [*]) [EOT] ; 00059070
|
|
END WDISC ; 00059072
|
|
00059100
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00059200
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00059400
|
|
PROCEDURE INITIALIZE ; 00059420
|
|
BEGIN 00059440
|
|
DEFINE SAVESPACE = # ; 00059460
|
|
B := TRUE ; 00059480
|
|
TIME1 := TIME (1) ; 00059500
|
|
INC := STATUS (CONTROLS [*]) ; 00059600
|
|
STATION := CONTROLS [0] ; 00059700
|
|
SEEK (TWXINPUT (STATION)) ; 00059800
|
|
USERCODE := CONTROLS [1] ; 00059900
|
|
00059920
|
|
IF USERCODE = -1 THEN 00060000
|
|
USERCODE := "T B " & (STATION . [9:4] DIV 10) [12:42:6] 00060100
|
|
& ENTIER (STATION . [9:4] MOD 10) [18:42:6] 00060200
|
|
& (STATION . [14:4] DIV 10) [30:42:6] 00060300
|
|
& ENTIER(STATION . [14:4] MOD 10) [36:42:6] ; 00060400
|
|
FILESECURITY := TRUE ; 00060402
|
|
BEGIN 00060404
|
|
FILL RECOVER WITH USERCODE, USERCODE ; 00060406
|
|
SEARCH (RECOVER, IMAGE [*]) ; 00060408
|
|
IF IMAGE [0] = -1 THEN 00060410
|
|
BEGIN 00060412
|
|
FILL SCRATCH WITH USERCODE, USERCODE ; 00060414
|
|
WRITE (SCRATCH, *, LISTN) ; 00060416
|
|
LOCK (SCRATCH) ; 00060418
|
|
END ELSE 00060420
|
|
IF IMAGE [0] = 7 AND IMAGE [3] = 256 AND IMAGE [4] = 256 THEN 00060422
|
|
BEGIN 00060424
|
|
READ (RECOVER, RSWDM + 1, RSWD [*]) ; 00060426
|
|
I := STATION ; 00060428
|
|
READ (RECOVER, CONTROLTOP + 1, CONTROLS [*]) ; 00060430
|
|
STATION := I ; 00060432
|
|
N := CONTROLS [0] ; 00060434
|
|
AT := CONTROLS [1] . [35:13] ; 00060436
|
|
D := CONTROLS [1] . [22:13] ; 00060438
|
|
M := CONTROLS [2] ; 00060440
|
|
INC := CONTROLS [3] ; 00060442
|
|
BOOL := BOOLEAN (CONTROLS [4]) ; 00060444
|
|
IF RSWDL LEQ READONLYLIMIT THEN 00060446
|
|
FOR I := D DIV 256 STEP -1 UNTIL 0 DO 00060448
|
|
READ (RECOVER, 256, LINKLIST [I,*]) ; 00060450
|
|
CLOSE (RECOVER) ; 00060452
|
|
IF RSWDL GTR READONLYLIMIT THEN 00060454
|
|
IF VN = VERSION THEN 00060455
|
|
ERROR (0, "HELLO ", USERCODE) ; 00060456
|
|
FILL DISC WITH PREFIX, SUFFIX ; 00060458
|
|
SEARCH (DISC, IMAGE [*]) ; 00060460
|
|
IF IMAGE [0] NEQ 7 THEN 00060462
|
|
IF IMAGE [0] LEQ 0 OR RSWDL = 0 THEN 00060464
|
|
BEGIN 00060466
|
|
SETRSWDL ; 00060468
|
|
INORDER := TRUE ; 00060469
|
|
IF VN = VERSION THEN 00060470
|
|
ERROR (IF IMAGE [0] = -1 THEN 5 ELSE 9, 00060471
|
|
PREFIX, SUFFIX) ; 00060472
|
|
END ; 00060474
|
|
IF VN = VERSION THEN ERROR (0, PREFIX, SUFFIX) ; 00060475
|
|
IF NOT INORDER THEN XEROX ; 00060476
|
|
B := TRUE ; 00060477
|
|
END ELSE IF IMAGE [5] NEQ 0 00060478
|
|
OR IMAGE [0] NEQ 7 OR IMAGE [3] NEQ 10 OR IMAGE [4] NEQ 30 THEN 00060479
|
|
BEGIN 00060480
|
|
FILESECURITY := FALSE ; 00060482
|
|
B := FALSE ; 00060484
|
|
END ; 00060486
|
|
END ; 00060488
|
|
INC := 100 ; 00060500
|
|
INORDER := TRUE ; 00060600
|
|
SAVEFACTOR := 7 ; 00060660
|
|
PAGELENGTH := 10000 ; 00060670
|
|
VN := VERSION ; 00060680
|
|
SETRSWDL ; 00060700
|
|
FILL RSWD [*] WITH 00060800
|
|
"DITTO ", "COPY ", "INLINE ", "ZIP ", "CHANGE ", "EDIT ", 00060850
|
|
"SAVE ", "RESEQ ", "PUNCH ", "PRINT ", "DELETE ", "CLOSE ", 00060860
|
|
"COMPILE", 00060870
|
|
"PAGE ", "TIME ", "SCAN ", "LISTING", "INC ", "TAB ", 00060900
|
|
"PERCENT", "QUICK ", "LIST ", "OPEN ", 00061000
|
|
"MAIL ", "TEACH ", "REMOVE ", "REPLACE", "END " ; 00061100
|
|
IF NOT B THEN 00061110
|
|
ERROR (9 - 2 | REAL (IMAGE [0] = 7), USERCODE, USERCODE) ; 00061120
|
|
FILL LIBRARY WITH "MAIL % ", "ALL " ; 00061121
|
|
SEARCH (LIBRARY, IMAGE [*]) ; 00061122
|
|
M := IMAGE [5] ; 00061123
|
|
IF IMAGE [0] GEQ 2 THEN 00061124
|
|
BEGIN 00061125
|
|
FILL SCRATCH WITH "MAIL % ", USERCODE ; 00061126
|
|
SEARCH (SCRATCH, IMAGE [*]) ; 00061127
|
|
IF IMAGE [0] = -1 THEN 00061128
|
|
BEGIN N := STATUS (STATION, 3) ; 00061129
|
|
FOR N := 0 STEP 1 UNTIL M DO 00061130
|
|
BEGIN 00061131
|
|
READ (LIBRARY, 10, IMAGE [*]) ; 00061132
|
|
WRITE (SCRATCH, 10, IMAGE [*]) ; 00061133
|
|
END ; 00061134
|
|
LOCK (SCRATCH) ; N := STATUS (STATION, 4) ; 00061135
|
|
END ELSE 00061136
|
|
IF IMAGE [0] GEQ 3 THEN 00061137
|
|
BEGIN 00061138
|
|
FILL DISC WITH "MAIL % ", USERCODE ; 00061139
|
|
SPACE (DISC, IMAGE [5] + 1) ; 00061140
|
|
FOR N := 0 STEP 1 UNTIL M DO 00061141
|
|
BEGIN 00061142
|
|
READ (LIBRARY, 10, IMAGE [*]) ; 00061143
|
|
WRITE (DISC, 10, IMAGE [*]) ; 00061144
|
|
END ; 00061145
|
|
CLOSE (DISC) ; 00061146
|
|
END ; 00061147
|
|
CLOSE (LIBRARY) ; 00061148
|
|
END ; 00061149
|
|
FILL LIBRARY WITH "MAIL % ", USERCODE ; 00061150
|
|
SEARCH (LIBRARY, IMAGE [*]) ; 00061151
|
|
IF IMAGE [0] GEQ 3 THEN 00061152
|
|
ERROR (0, " MAIL% ", USERCODE) ; 00061160
|
|
ERROR (0, "HELLO ", USERCODE) ; 00061200
|
|
END INITIALIZE ; 00061250
|
|
INITIALIZE ; 00061275
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00061300
|
|
NEXT: 00061301
|
|
BEGIN 00061302
|
|
LABEL MAIL, 00061303
|
|
COPY, 00061304
|
|
LISTING, 00061305
|
|
PAGED, 00061306
|
|
TIMING, 00061307
|
|
SCAN, 00061308
|
|
CHANGESTRING, 00061309
|
|
EDIT, 00061310
|
|
PUNCH, 00061311
|
|
PRINT, 00061312
|
|
ZIPIT, 00061313
|
|
PERCENT, 00061314
|
|
QUICKLIST, 00061315
|
|
LISTIT, 00061316
|
|
OPEN, 00061317
|
|
CLOSEIT, 00061318
|
|
INCCHANGE, 00061319
|
|
RESEQ, 00061320
|
|
TAB, 00061321
|
|
INLINE, 00061322
|
|
SAVEIT, 00061323
|
|
DELETE, 00061324
|
|
COMPILE, 00061325
|
|
DITTO, 00061326
|
|
REMOVE, 00061327
|
|
TEACH, 00061328
|
|
REPLACE, 00061329
|
|
STOP ; 00061330
|
|
SWITCH TYPE := DITTO, 00061331
|
|
COPY, 00061332
|
|
INLINE, 00061333
|
|
ZIPIT, 00061334
|
|
CHANGESTRING, 00061335
|
|
EDIT, 00061336
|
|
SAVEIT, 00061337
|
|
RESEQ, 00061338
|
|
PUNCH, 00061339
|
|
PRINT, 00061340
|
|
DELETE, 00061341
|
|
CLOSEIT, 00061342
|
|
COMPILE, 00061343
|
|
PAGED, 00061344
|
|
TIMING, 00061345
|
|
SCAN, 00061346
|
|
LISTING, 00061347
|
|
INCCHANGE, 00061348
|
|
TAB, 00061349
|
|
PERCENT, 00061350
|
|
QUICKLIST, 00061351
|
|
LISTIT, 00061352
|
|
OPEN, 00061353
|
|
MAIL, 00061354
|
|
TEACH, 00061355
|
|
REMOVE, 00061356
|
|
REPLACE, 00061357
|
|
STOP ; 00061358
|
|
00061400
|
|
BEGIN 00061410
|
|
LABEL 00061420
|
|
INLINEOK, 00061422
|
|
INLINEESCAPE, 00061424
|
|
VERBEXIT ; 00061430
|
|
ZIPPING := FALSE ; 00061448
|
|
QUICK := FALSE ; 00061450
|
|
SCANTOG := FALSE ; 00061452
|
|
CHANGETOG := FALSE ; 00061454
|
|
EDITTOG := FALSE ; 00061456
|
|
POSTING := FALSE ; 00061458
|
|
IF RSWDL GTR READONLYLIMIT THEN 00061460
|
|
N := VERSION ; 00061470
|
|
IF N GEQ INFINITY THEN 00061500
|
|
BEGIN 00061600
|
|
N := INFINITY - 1 ; 00061700
|
|
ERROR (0, "SEQ. OV", "ER-FLOW") ; 00061800
|
|
END ELSE IF N LEQ 0 THEN 00061900
|
|
N := 1 ; 00061925
|
|
IF NOT MOREINPUT THEN 00061926
|
|
BEGIN 00061927
|
|
IF RSWDL LEQ READONLYLIMIT THEN 00061930
|
|
BEGIN 00061935
|
|
IF ITSOLD (N) THEN 00061940
|
|
WRITEOLDSEQ 00061945
|
|
ELSE 00061950
|
|
WRITESEQ ; 00061955
|
|
END ELSE 00061960
|
|
WRITESEQ ; 00062000
|
|
IF INLINETOG AND EXTRALFCR THEN WRITELFCR ; 00062050
|
|
IF TABAMOUNT NEQ 0 THEN 00062100
|
|
WRITE (TWXOUT, TABIT, TABAMOUNT) ; 00062200
|
|
WRITE (TWXOUT, XON) ; 00062300
|
|
END ; 00062350
|
|
READIN ; 00062400
|
|
CONTROLS [0] := 0 ; 00062500
|
|
IF INLINETOG THEN 00062600
|
|
BEGIN 00062700
|
|
IF TRANSLATING THEN 00062710
|
|
TRANSLATE (IMAGE, ZIPPY) ; 00062720
|
|
IF NOT INLINEEDIT (IMAGE, RECORD, ZIPPY, 00062800
|
|
IF M := ABS (M) LEQ 3 THEN M ELSE 0) THEN 00062825
|
|
BEGIN 00062850
|
|
WRITE (IMAGE [*], 10, ZIPPY [*]) ; 00062900
|
|
GO TO INLINEOK ; 00062925
|
|
END 00062950
|
|
ELSE IF NOSTAR THEN 00063000
|
|
ERROR ( 8, "NOT I,R", " OR D. ") ; 00063100
|
|
GO TO INLINEESCAPE ; 00063125
|
|
END ; 00063200
|
|
IF NOSTAR THEN 00063300
|
|
BEGIN 00063400
|
|
IF RSWDL = READONLYLIMIT THEN 00063410
|
|
ERROR (0, "READ ON", "LY FILE") ; 00063420
|
|
IF RSWDL NEQ 0 THEN 00063500
|
|
BEGIN 00063550
|
|
EMPTY1 := TRUE ; 00063560
|
|
I := RWTEACHINDEX ; 00063600
|
|
GO TO VERBEXIT ; 00063610
|
|
END ; 00063620
|
|
INLINEOK: 00063625
|
|
IF TRANSLATING THEN 00063650
|
|
TRANSLATE (IMAGE, ZIPPY) ; 00063660
|
|
00063700
|
|
WDISC ; 00063800
|
|
00063900
|
|
00064000
|
|
00064100
|
|
IF INLINETOG THEN 00064200
|
|
BEGIN 00064300
|
|
WRITEAT ; 00064400
|
|
INLINETOG := FALSE ; 00064500
|
|
END ; 00064600
|
|
N := INC | ((N + INC) DIV INC) ; 00064700
|
|
GO TO NEXT ; 00064800
|
|
END ; 00064900
|
|
INLINEESCAPE: 00064925
|
|
INLINETOG := FALSE ; 00065000
|
|
STAR (IMAGE, CONTROLS) ; 00065001
|
|
EMPTY0 := CONTROLS [0] = "#000000" ; 00065002
|
|
EMPTY1 := CONTROLS [1] = "#000000" ; 00065004
|
|
EMPTY2 := CONTROLS [2] = "#000000" ; 00065006
|
|
EMPTY3 := CONTROLS [3] = "#000000" ; 00065008
|
|
EMPTY4 := CONTROLS [4] = "#000000" ; 00065010
|
|
NUM0 := NOT (BOOLEAN (CONTROLS [0] . [1 : 1]) OR EMPTY0) ; 00065012
|
|
NUM1 := NOT (BOOLEAN (CONTROLS [1] . [1 : 1]) OR EMPTY1) ; 00065014
|
|
NUM2 := NOT (BOOLEAN (CONTROLS [2] . [1 : 1]) OR EMPTY2) ; 00065016
|
|
NUM3 := NOT (BOOLEAN (CONTROLS [3] . [1 : 1]) OR EMPTY3) ; 00065018
|
|
NUM4 := NOT (BOOLEAN (CONTROLS [4] . [1 : 1]) OR EMPTY4) ; 00065020
|
|
FOR I := 0 STEP 1 UNTIL 4 DO 00065100
|
|
IF BOOLEAN (CONTROLS [I] . [1 : 1]) THEN 00065200
|
|
CONTROLS [I] . [1 : 1] := 0 00065225
|
|
ELSE 00065250
|
|
IF CONTROLS [I] GEQ INFINITY THEN 00065300
|
|
CONTROLS [I] := INFINITY - 1 00065400
|
|
ELSE IF CONTROLS [I] = 0 THEN 00065500
|
|
CONTROLS [I] := 1 ; 00065600
|
|
IF NUM0 THEN 00065700
|
|
IF RSWDL GTR READONLYLIMIT THEN 00065710
|
|
BEGIN 00065720
|
|
OCTDEC (N, CONTROLS [0]) ; 00065730
|
|
ERROR (3, CONTROLS [0], RWTEACH) ; 00065740
|
|
END ELSE 00065750
|
|
N := CONTROLS [0] 00065800
|
|
ELSE 00065900
|
|
BEGIN 00066000
|
|
FOR I := RSWDL STEP 1 UNTIL RSWDM DO 00066100
|
|
IF CONTROLS [0] = RSWD [I] THEN 00066200
|
|
GO TO VERBEXIT ; 00066300
|
|
ERROR (3, CONTROLS [0], RWTEACH) ; 00066400
|
|
END ; 00066500
|
|
IF NOT MOREINPUT THEN 00066550
|
|
IF ITSOLD (N) THEN 00066600
|
|
WRITEAT ; 00066700
|
|
GO TO NEXT ; 00066800
|
|
VERBEXIT: 00066810
|
|
END ; 00066820
|
|
GO TO TYPE [I + 1] ; 00066830
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00066900
|
|
QUICKLIST: 00066910
|
|
QUICK := TRUE ; 00066920
|
|
GO TO LISTIT ; 00066930
|
|
SCAN: 00066940
|
|
SCANTOG := TRUE ; 00066950
|
|
GO TO LISTIT ; 00066960
|
|
CHANGESTRING: 00066970
|
|
CHANGETOG := TRUE ; 00066980
|
|
GO TO LISTIT ; 00066982
|
|
EDIT: 00066984
|
|
IF NOT (NUM1 AND NUM2 AND NUM3) THEN 00066986
|
|
ERROR (6, "3 TIMES", 0) ; 00066988
|
|
IF NOT ITSOLD (CONTROLS [3]) THEN 00066990
|
|
ERROR (0, "MISSING", " FORMAT") ; 00066992
|
|
EDITTOG := TRUE ; 00066994
|
|
RDISC (AT - 2, ZIPPY) ; 00066996
|
|
IF FILETYPE = 2 THEN SHIFTLEFT (6, ZIPPY, IMAGE) ; 00066997
|
|
WRITE (TWXOUT, WAIT) ; 00066998
|
|
LISTIT: 00067000
|
|
BEGIN 00067001
|
|
BOOLEAN STREAM PROCEDURE PRESENT (S, R, I, T, N, J, Z) ; 00067002
|
|
VALUE I, J, T, N ; 00067003
|
|
BEGIN 00067004
|
|
LABEL XIT, LOOP1, LOOP2 ; LOCAL K, M ; 00067005
|
|
DI := Z ; SI := Z ; DS := 8 LIT " " ; DS := 9 WDS ; 00067006
|
|
SI := LOC T ; 00067007
|
|
DI := LOC K ; 00067008
|
|
SI := SI + 6 ; 00067009
|
|
DI := DI + 7 ; 00067010
|
|
DS := 1 CHR ; 00067011
|
|
00067012
|
|
K(2(32(M(TALLY:=M;TALLY:=TALLY+63;M:=TALLY;TALLY:=1;JUMP OUT TO LOOP1) ;00067013
|
|
SI:=S; DI:=R; IF I SC=DC THEN BEGIN TALLY:=1; N(JUMP OUT 4 TO XIT); 00067014
|
|
R:=DI; DI:=Z; DS:=J CHR; Z:=DI; TALLY:=I; TALLY:=TALLY+63 ; 00067015
|
|
M:=TALLY;TALLY:=1;END ELSE BEGIN DI:=DI-I; N(DI:=DI+1; R:=DI; 00067016
|
|
JUMP OUT TO LOOP1) ; R:=DI; SI:=R; DI:=Z; DS:=CHR; 00067017
|
|
R:=SI; Z:=DI; END ; LOOP1:))); 00067018
|
|
T(M(TALLY:=M; TALLY:=TALLY+63; M:=TALLY; TALLY:=1;JUMP OUT TO LOOP2) ; 00067019
|
|
SI:=S; DI:=R; IF I SC=DC THEN BEGIN TALLY:=1; N(JUMP OUT 2 TO XIT) ; 00067020
|
|
R:=DI; DI:=Z; DS:=J CHR; Z:=DI; TALLY:=I; TALLY:=TALLY+63; 00067021
|
|
M:=TALLY;TALLY:=1; END ELSE BEGIN DI:=DI-I; N(DI:=DI+1; R:=DI; 00067022
|
|
JUMP OUT TO LOOP2) ; R:=DI; SI:=R; DI:=Z; DS:=CHR; 00067023
|
|
R:=SI; Z:=DI; END; LOOP2:) ; 00067024
|
|
00067025
|
|
00067026
|
|
00067027
|
|
00067028
|
|
XIT: 00067029
|
|
PRESENT := TALLY ; 00067030
|
|
END PRESENT ; 00067031
|
|
INTEGER STREAM PROCEDURE ISOLATE (S, D, N) ; VALUE N ; 00067032
|
|
BEGIN 00067033
|
|
LOCAL STOPCHR ; 00067034
|
|
LABEL OK, XIT ; 00067035
|
|
SI := S ; 00067036
|
|
N (DI := LOC STOPCHR ; 00067037
|
|
63 (SI := SI + 1 ; 00067038
|
|
IF SC = """ THEN 00067039
|
|
BEGIN 00067040
|
|
DS := 1 CHR ; 00067041
|
|
JUMP OUT TO OK ; 00067042
|
|
END ; 00067043
|
|
IF SC = "(" THEN 00067044
|
|
BEGIN 00067045
|
|
DS := 1 LIT ")" ; 00067046
|
|
SI := SI + 1 ; 00067047
|
|
JUMP OUT TO OK ; 00067048
|
|
END ; 00067049
|
|
IF SC = "[" THEN 00067050
|
|
BEGIN 00067051
|
|
DS := 1 LIT "]" ; 00067052
|
|
SI := SI + 1 ; 00067053
|
|
JUMP OUT TO OK ; 00067054
|
|
END ; IF SC="." THEN JUMP OUT; IF SC=";" THEN JUMP OUT) ; 00067055
|
|
JUMP OUT TO XIT ; 00067056
|
|
OK: 00067057
|
|
63 (DI := LOC STOPCHR ; 00067058
|
|
IF SC = DC THEN 00067059
|
|
JUMP OUT ; 00067060
|
|
SI := SI - 1 ; 00067061
|
|
DI := D ; 00067062
|
|
DS := 1 CHR ; 00067063
|
|
D := DI ; 00067064
|
|
TALLY := TALLY + 1) ; N := TALLY ; TALLY := 0) ; TALLY := N ; 00067065
|
|
XIT: 00067066
|
|
ISOLATE := TALLY ; 00067067
|
|
END ISOLATE ; 00067068
|
|
STREAM PROCEDURE EDITS (F, S, D, N) ; VALUE N ; 00067069
|
|
BEGIN 00067070
|
|
DI := D ; DS := 8 LIT " " ; SI := D ; DS := 9 WDS ; DI := D ; 00067071
|
|
2 (N (SI := F ; 00067072
|
|
IF SC = "@" THEN 00067073
|
|
BEGIN 00067074
|
|
SI := SI + 1 ; F := SI ; SI := S ; DS := CHR ; S := SI ; 00067075
|
|
END ELSE 00067076
|
|
IF SC = "#" THEN 00067077
|
|
BEGIN 00067078
|
|
SI := SI + 1 ; F := SI ; SI := S ; SI := SI + 1 ; S := SI ; 00067079
|
|
END ELSE 00067080
|
|
BEGIN 00067081
|
|
DS := CHR ; F := SI ; 00067082
|
|
END)) ; 00067083
|
|
END EDITS ; 00067084
|
|
IF SCANTOG OR CHANGETOG THEN 00067085
|
|
BEGIN 00067086
|
|
IF TRANSLATING THEN 00067087
|
|
TRANSLATE (IMAGE, ZIPPY) ; 00067088
|
|
IF I := ISOLATE (IMAGE, STRING, 1) = 0 THEN 00067089
|
|
I := STRINGI 00067090
|
|
ELSE 00067091
|
|
STRINGI := I ; 00067092
|
|
IF I = 0 THEN 00067093
|
|
ERROR (0, "MISSING", " STRING") ; 00067094
|
|
IF CHANGETOG THEN BEGIN STRINGJ:=ISOLATE(IMAGE,STRING,2) ; 00067095
|
|
IF STRINGJ=0 THEN ERROR (0, "MISSING", " STRING") ; 00067096
|
|
IF 72 DIV STRINGI | STRINGJ GTR 160 THEN ERROR (0, "SIZ DIF", 00067097
|
|
" EXCESS") ; ALREADYSEQ := TRUE ; END ; WRITE (TWXOUT, WAIT) ; 00067098
|
|
END ; 00067099
|
|
IF NUM1 AND (NUM2 OR EMPTY2) THEN 00067100
|
|
BEGIN 00067200
|
|
N := CONTROLS [1] ; 00067300
|
|
IF NUM2 THEN 00067400
|
|
M := CONTROLS [2] + 1 00067500
|
|
ELSE IF SCANTOG OR EDITTOG THEN 00067600
|
|
M := INFINITY 00067610
|
|
ELSE 00067620
|
|
M := N ; 00067630
|
|
END 00067700
|
|
ELSE IF NOT EMPTY1 THEN 00067800
|
|
BEGIN 00067900
|
|
ADJUSTFORNUMERICIDS ; 00067910
|
|
FILL SCRATCH WITH CONTROLS [1], CONTROLS [2] ; 00068000
|
|
SEARCH (SCRATCH, IMAGE [*]) ; 00068100
|
|
IF IMAGE [0] LEQ 0 THEN 00068200
|
|
ERROR (9 + 4 | IMAGE [0], CONTROLS [1], CONTROLS [2]) ; 00068300
|
|
BEGIN 00068400
|
|
FILE RO DISK SERIAL (2, IMAGE [3], IMAGE [4]) ; 00068500
|
|
INTEGER K ; 00068550
|
|
LABEL MORE, 00068600
|
|
EOF ; 00068700
|
|
K := N ; 00068750
|
|
FILL RO WITH IMAGE [1], IMAGE [2] ; 00068800
|
|
N := 0 ; 00068900
|
|
M := IMAGE [5] + 1 ; 00068910
|
|
IF NUM3 THEN 00068920
|
|
BEGIN 00068930
|
|
SPACE (RO, N := CONTROLS [3] - 1) [EOF] ; 00068940
|
|
IF NUM4 THEN 00068960
|
|
M := CONTROLS [4] ; 00068970
|
|
END ELSE IF NOT EMPTY3 THEN 00068980
|
|
POSTING := TRUE ; 00068990
|
|
MORE: 00069000
|
|
B := TRUE ; 00069005
|
|
IF N := N + 1 GTR M THEN 00069010
|
|
GO TO EOF ; 00069020
|
|
READ (RO, 10, ZIPPY [*]) [EOF] ; 00069100
|
|
IF SCANTOG THEN 00069110
|
|
IF NOT PRESENT (STRING, ZIPPY, STRINGI, 73 - STRINGI, 00069120
|
|
1, STRINGJ, IMAGE) THEN 00069121
|
|
GO TO MORE ; 00069130
|
|
IF NOT POSTING THEN 00069190
|
|
WRITESEQ ; 00069200
|
|
BLANKOUTSPECIALCHARACTERS (ZIPPY,IMAGE,QUICK) ; 00069250
|
|
IF ALLBLANK (ZIPPY [7], 0, 16) THEN 00069300
|
|
IF ALLBLANK (ZIPPY [3], 4, 28) THEN 00069400
|
|
IF ALLBLANK (ZIPPY [0], 0, 28) THEN 00069500
|
|
GO TO MORE ; 00069525
|
|
IF NOT ALLBLANK (ZIPPY [8], 0, 8) OR POSTING THEN 00069550
|
|
WRITELFCR ; 00069560
|
|
INSERT (7, "~", IMAGE [4]) ; 00069600
|
|
B := FALSE ; 00069620
|
|
FOR I := 0 STEP 1 UNTIL 2 DO 00069700
|
|
BEGIN 00069800
|
|
MOVE (ZIPPY [3 | I], IMAGE [1], 4 | I, 0, 28) ; 00069900
|
|
WRITE (TWXOUT, 5, IMAGE [*]) [: EOF] ; 00070000
|
|
END ; 00070100
|
|
IF POSTING AND CONTROLS [1] = "MAIL % " THEN 00070110
|
|
BEGIN 00070120
|
|
SPACE (RO, -1) ; 00070130
|
|
INSERT (39, " ", IMAGE [0]) ; 00070140
|
|
INSERT (39, " ", IMAGE [5]) ; 00070150
|
|
WRITE (RO, 10, IMAGE [*]) ; 00070160
|
|
END ; 00070170
|
|
GO TO MORE ; 00070200
|
|
EOF: 00070300
|
|
IF POSTING AND B AND CONTROLS [1] = "MAIL % " THEN 00070320
|
|
CLOSE (RO, PURGE) ; 00070340
|
|
N := K ; 00070360
|
|
END ; 00070400
|
|
GO TO NEXT ; 00070500
|
|
END 00070600
|
|
ELSE 00070700
|
|
BEGIN 00070800
|
|
IF NOT SCANTOG THEN 00070850
|
|
N := 1 ; 00070900
|
|
M := INFINITY ; 00071000
|
|
END ; 00071100
|
|
IF RSWDL GTR READONLYLIMIT THEN 00071200
|
|
ERROR (5, " FOR ", CONTROLS [0]) ; 00071300
|
|
B := ITSOLD (N) ; 00071400
|
|
IF LINKLISTSUBAT.S LEQ M THEN 00071500
|
|
IF AT GEQ 2 THEN 00071600
|
|
DO 00071700
|
|
BEGIN 00071800
|
|
IF SCANTOG OR CHANGETOG THEN 00071810
|
|
BEGIN 00071820
|
|
RDISC (AT - 2, RECORD) ; 00071830
|
|
00071835
|
|
IF PRESENT (STRING, RECORD, STRINGI, IF SCANTOG THEN 73 - STRINGI 00071840
|
|
ELSE 72, SCANTOG, STRINGJ, ZIPPY) THEN 00071841
|
|
BEGIN 00071845
|
|
IF SCANTOG THEN 00071850
|
|
BEGIN 00071851
|
|
WRITEAT ; 00071855
|
|
AT := LINKLISTSUBAT . T ; 00071860
|
|
N := LINKLISTSUBAT . S ; 00071865
|
|
GO TO NEXT ; 00071870
|
|
END ; 00071871
|
|
N := LINKLISTSUBAT . S ; WRITE (IMAGE [*], 10, ZIPPY [*]) ; 00071872
|
|
SEQUENCE ; SPACE (DISC, -1) ; WRITE (DISC, 10, IMAGE [*]) ; 00071873
|
|
END ; 00071875
|
|
END ELSE 00071880
|
|
IF EDITTOG THEN 00071882
|
|
BEGIN 00071884
|
|
RDISC (AT - 2, RECORD) ; 00071886
|
|
IF FILETYPE = 2 THEN SHIFTLEFT (6, RECORD, IMAGE) ; 00071887
|
|
EDITS (ZIPPY, RECORD, IMAGE, IF FILETYPE = 3 THEN 40 ELSE 36) ; 00071888
|
|
N := LINKLISTSUBAT . S ; 00071889
|
|
SEQUENCE ; 00071890
|
|
SPACE (DISC, -1) ; 00071892
|
|
WRITE (DISC, 10, IMAGE [*]) ; 00071894
|
|
END ELSE 00071896
|
|
WRITEAT ; 00071900
|
|
AT := LINKLISTSUBAT.T ; 00072000
|
|
END UNTIL LINKLISTSUBAT.S GEQ M ; 00072100
|
|
AT := LINKLISTSUBAT.F ; 00072200
|
|
N := INC | (LINKLISTSUBAT.S DIV INC + 1) ; 00072300
|
|
IF SCANTOG THEN 00072310
|
|
ERROR (0, "EOF NO ", "STRING.") ; 00072340
|
|
ALREADYSEQ := FALSE ; 00072350
|
|
GO TO NEXT ; 00072400
|
|
END ; 00072450
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00072500
|
|
MAIL: 00072520
|
|
IF POSTMAN THEN 00072530
|
|
BEGIN 00072540
|
|
POSTING := TRUE ; 00072550
|
|
GO TO QUICKLIST ; 00072560
|
|
END ; 00072570
|
|
GO TO NEXT ; 00072580
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00072590
|
|
COPY: 00072600
|
|
ADJUSTFORNUMERICIDS ; 00072700
|
|
FILL LIBRARY WITH CONTROLS [1], CONTROLS [2] ; 00072800
|
|
SEARCH (LIBRARY, IMAGE [*]) ; 00072900
|
|
IF IMAGE [0] LSS 2 THEN 00073000
|
|
ERROR (9 + 4 | IMAGE [0], CONTROLS [1], CONTROLS [2]) ; 00073100
|
|
IF IMAGE [3] NEQ 10 OR IMAGE [4] MOD 30 NEQ 0 THEN 00073200
|
|
ERROR (7, CONTROLS [1], CONTROLS [2]) ; 00073300
|
|
IF NUM3 THEN 00073400
|
|
BEGIN 00073500
|
|
I := CONTROLS [3] - 1 ; 00073600
|
|
IF NUM4 THEN 00073700
|
|
BEGIN 00073800
|
|
M := CONTROLS [4] - 1 ; 00073900
|
|
IF M GTR IMAGE [5] THEN 00074000
|
|
M := IMAGE [5] ; 00074100
|
|
END 00074200
|
|
ELSE M := I ; 00074300
|
|
END 00074400
|
|
ELSE 00074500
|
|
BEGIN 00074600
|
|
I := 0 ; 00074700
|
|
M := IMAGE [5] ; 00074800
|
|
END ; 00074900
|
|
ALREADYSEQ := TRUE ; 00074950
|
|
SPACE (LIBRARY, I) ; 00075000
|
|
IF M - I GTR 10 THEN 00075050
|
|
WRITE (TWXOUT, WAIT) ; 00075060
|
|
FOR I := I STEP 1 UNTIL M DO 00075100
|
|
BEGIN 00075200
|
|
READ (LIBRARY, 10, IMAGE [*]) ; 00075300
|
|
00075350
|
|
00075400
|
|
WDISC ; 00075450
|
|
00075500
|
|
00075600
|
|
00075700
|
|
N := N + INC ; 00075800
|
|
END ; 00075900
|
|
ALREADYSEQ := FALSE ; 00075950
|
|
CLOSE (LIBRARY) ; 00076000
|
|
GO TO NEXT ; 00076100
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00076200
|
|
PUNCH: 00076225
|
|
PUNCHING := TRUE ; 00076250
|
|
PRINT: 00076300
|
|
ADJUSTFORNUMERICIDS ; 00076310
|
|
PRINTING := TRUE ; 00076400
|
|
I := TIME (1) DIV 60 ; 00076450
|
|
THERMOFAX ; 00076500
|
|
PRINTING := FALSE ; 00076600
|
|
PUNCHING := FALSE ; 00076625
|
|
GO TO NEXT ; 00076700
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00076702
|
|
ZIPIT: 00076704
|
|
IF NOT INORDER THEN XEROX ; 00076705
|
|
CONTROLS [0] := N ; 00076706
|
|
AT := M := 0 ; 00076708
|
|
B := TRUE ; 00076710
|
|
WHILE AT := LINKLISTSUBAT . T NEQ 1 DO 00076712
|
|
BEGIN 00076714
|
|
RDISC (AT - 2, IMAGE) ; 00076716
|
|
READ (IMAGE [*], A1, LISTN) ; 00076718
|
|
IF N = 12 THEN 00076720
|
|
BEGIN 00076722
|
|
B := FALSE ; 00076724
|
|
RDISC (M, IMAGE) ; 00076726
|
|
IMAGE [9] := AT - 2 ; 00076728
|
|
WRITE (DISC [M], 10, IMAGE [*]) ; 00076730
|
|
PREWHERE := M - 1 ; 00076731
|
|
M := AT - 2 ; 00076732
|
|
END ELSE 00076734
|
|
IF B THEN 00076736
|
|
00076737
|
|
ERROR (0, "INV FIR", "ST CARD") ; 00076738
|
|
00076739
|
|
END ; 00076740
|
|
IF N NEQ 12 THEN 00076742
|
|
00076743
|
|
ERROR (0, "INV LAS", "T CARD.") ; 00076744
|
|
00076745
|
|
RDISC (M, IMAGE) ; 00076746
|
|
IMAGE [9] := M ; 00076748
|
|
WRITE (DISC [M], 10, IMAGE [*]) ; 00076750
|
|
IF NOT EMPTY1 THEN 00076752
|
|
BEGIN 00076754
|
|
PREWHERE := M - 1 ; 00076756
|
|
ZIPPING := TRUE ; 00076758
|
|
ADJUSTFORNUMERICIDS ; 00076760
|
|
00076761
|
|
THERMOFAX ; 00076762
|
|
N := CONTROLS [0] ; 00076763
|
|
END ELSE 00076764
|
|
BEGIN 00076766
|
|
SETRSWDL ; 00076768
|
|
PREWHERE := -1 ; 00076770
|
|
ZIP WITH DISC ; 00076772
|
|
END ; 00076774
|
|
GO TO NEXT ; 00076776
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00076800
|
|
CLOSEIT: 00076825
|
|
SETRSWDL ; 00076850
|
|
IF NOT INORDER THEN 00076875
|
|
XEROX ; 00076900
|
|
CLOSE (DISC) ; PREWHERE := -1 ; 00076925
|
|
GO TO NEXT ; 00076950
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00076975
|
|
OPEN: 00077000
|
|
BEGIN 00077025
|
|
DEFINE SAVESPACE = # ; 00077050
|
|
SETRSWDL ; 00077060
|
|
IF NOT INORDER THEN 00077100
|
|
XEROX ; 00077200
|
|
CLOSE (DISC) ; PREWHERE := -1 ; 00077300
|
|
ADJUSTFORNUMERICIDS ; 00077500
|
|
IF CONTROLS [3] = "ALGOL " THEN 00077600
|
|
FILETYPE := 0 00077700
|
|
ELSE IF CONTROLS [3] = "FORTRAN" THEN 00077800
|
|
FILETYPE := 1 00077900
|
|
ELSE IF CONTROLS [3] = "COBOL " THEN 00078000
|
|
FILETYPE := 2 00078100
|
|
ELSE IF CONTROLS [3] = "DATA " THEN 00078200
|
|
FILETYPE := 3 00078300
|
|
ELSE ERROR (7, "TYPE: ", CONTROLS [3]) ; 00078400
|
|
IF CONTROLS [4] = "NEW " THEN 00078500
|
|
BEGIN 00078600
|
|
FILL SCRATCH WITH CONTROLS [1], CONTROLS [2] ; 00078700
|
|
SEARCH (SCRATCH, IMAGE [*]) ; 00078800
|
|
IF IMAGE [0] NEQ - 1 THEN 00078900
|
|
ERROR (4, CONTROLS [1], CONTROLS [2]) ; 00079000
|
|
WRITE (SCRATCH, 10, IMAGE [*]) ; 00079100
|
|
LOCK (SCRATCH) ; 00079200
|
|
RSWDL := 0 ; 00079210
|
|
END 00079300
|
|
ELSE 00079400
|
|
BEGIN 00079500
|
|
FILL DISC WITH CONTROLS [1], CONTROLS [2] ; 00079600
|
|
SEARCH (DISC, IMAGE [*]) ; 00079700
|
|
IF IMAGE [0] LEQ 0 THEN 00079800
|
|
ERROR (9 + 4 | IMAGE [0], CONTROLS [1], CONTROLS [2]) ; 00079900
|
|
IF IMAGE [3] NEQ 10 OR IMAGE [4] MOD 30 NEQ 0 THEN 00080000
|
|
ERROR (7, CONTROLS [1], CONTROLS [2]) ; 00080200
|
|
IF IMAGE [6] NEQ 0 THEN 00080300
|
|
ERROR (0, "FILE IN", " USE. ") ; 00080400
|
|
RSWDL := READONLYLIMIT | REAL (IMAGE [0] NEQ 7) ; 00080500
|
|
END ; 00080600
|
|
PREFIX := CONTROLS [1] ; 00080700
|
|
SUFFIX := CONTROLS [2] ; 00080800
|
|
IF CONTROLS [4] = "NEW " THEN 00080900
|
|
BEGIN 00081000
|
|
FILL DISC WITH CONTROLS [1], CONTROLS [2] ; 00081100
|
|
READ SEEK (DISC [0]) ; 00081200
|
|
D := 0 ; 00081300
|
|
LINKLISTSUBD := 1 ; 00081400
|
|
D := 1 ; 00081500
|
|
LINKLISTSUBD := 0 & INFINITY [SF] & 1 [TF] ; 00081600
|
|
AT := 0 ; 00081700
|
|
N := INC ; 00081800
|
|
GO TO NEXT ; 00081900
|
|
END ; 00082000
|
|
D := IMAGE [5] + 2 ; 00082100
|
|
IF D GTR MAXFILELENGTH THEN 00082200
|
|
BEGIN 00082210
|
|
SETRSWDL ; 00082220
|
|
ERROR (0, "FILE TO", " LONG. ") ; 00082300
|
|
END ; 00082310
|
|
READ SEEK (DISC [0]) ; 00082400
|
|
N := 0 ; 00082500
|
|
FOR AT := 2 STEP 1 UNTIL D DO 00082600
|
|
LINKLISTSUBAT := 0 & (N := N + INC) [SF] & (AT - 1) [FF] & (AT + 1) 00082700
|
|
[TF] ; 00082800
|
|
LINKLISTSUBD.T := 1 ; 00082900
|
|
AT := 0 ; 00083000
|
|
LINKLISTSUBAT := 2 ; 00083100
|
|
AT := 1 ; 00083200
|
|
LINKLISTSUBAT := 0 & INFINITY [SF] & D [FF] & 1 [TF] ; 00083300
|
|
AT := 2 ; 00083400
|
|
LINKLISTSUBAT.F := 0 ; 00083500
|
|
N := N + INC ; 00083600
|
|
IF CONTROLS [4] = "OLD " OR FILETYPE = 3 THEN 00083700
|
|
BEGIN 00083800
|
|
INORDER := FILETYPE = 3 OR RSWDL = READONLYLIMIT ; 00083900
|
|
IF RSWDL = READONLYLIMIT THEN 00083910
|
|
ERROR (-1, "READ ON", "LY FILE") ; 00083920
|
|
GO TO NEXT ; 00084000
|
|
END ; 00084100
|
|
WRITE (TWXOUT, WAIT) ; 00084400
|
|
FILL LIBRARY WITH CONTROLS [1], CONTROLS [2] ; 00084450
|
|
AT := 0 ; 00084500
|
|
M := 0 ; 00084600
|
|
WHILE AT := LINKLISTSUBAT.T NEQ 1 DO 00084700
|
|
BEGIN 00084800
|
|
IF FILETYPE NEQ 2 THEN 00084900
|
|
READ (LIBRARY, X72I8, LISTN) 00085000
|
|
ELSE READ (LIBRARY, I6, LISTN) ; 00085100
|
|
IF N LEQ 0 THEN 00085300
|
|
N := 1 00085400
|
|
ELSE IF N GEQ INFINITY THEN 00085500
|
|
N := INFINITY - 1 ; 00085600
|
|
IF M GTR M := N THEN 00085700
|
|
BEGIN 00085800
|
|
WRITELFCR ; 00085900
|
|
WRITE (TWXOUT, SEQERR, LISTN) ; 00086000
|
|
END ; 00086100
|
|
LINKLISTSUBAT.S := N ; 00086200
|
|
END ; 00086300
|
|
CLOSE (LIBRARY) ; 00086350
|
|
N := INC | ((N + INC) DIV INC) ; 00086400
|
|
IF RSWDL = READONLYLIMIT THEN 00086410
|
|
ERROR (-1, "READ ON", "LY FILE") ; 00086420
|
|
GO TO NEXT ; 00086500
|
|
END ; 00086550
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00086600
|
|
INCCHANGE: 00086700
|
|
IF NOT NUM1 THEN 00086800
|
|
ERROR (6, CONTROLS [0], CONTROLS [1]) ; 00086900
|
|
INC := CONTROLS [1] ; 00087000
|
|
N := INC | ((N + INC - 1) DIV INC) ; 00087100
|
|
IF N = 0 THEN 00087200
|
|
N := INC ; 00087300
|
|
GO TO NEXT ; 00087400
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00087500
|
|
RESEQ: 00087600
|
|
IF NUM2 THEN 00087602
|
|
BEGIN 00087604
|
|
IF NOT NUM1 THEN 00087606
|
|
ERROR (0, CONTROLS [1], "INVALID") ; 00087608
|
|
IF NUM4 THEN 00087610
|
|
INC := CONTROLS [4] ; 00087612
|
|
IF NUM3 THEN 00087614
|
|
N := CONTROLS [3] - INC 00087616
|
|
ELSE 00087618
|
|
N := CONTROLS [1] - INC ; 00087620
|
|
B := ITSOLD (CONTROLS [1]) ; 00087622
|
|
M := CONTROLS [2] ; 00087624
|
|
WHILE LINKLISTSUBAT . S LSS M DO 00087626
|
|
BEGIN 00087628
|
|
LINKLISTSUBAT . S := N := N + INC ; 00087630
|
|
AT := LINKLISTSUBAT . T ; 00087632
|
|
END ; 00087634
|
|
IF LINKLISTSUBAT . S = M THEN 00087636
|
|
LINKLISTSUBAT . S := N := N + INC ; 00087638
|
|
END ELSE 00087640
|
|
BEGIN 00087642
|
|
IF NUM1 THEN 00087700
|
|
INC := CONTROLS [1] ; 00087800
|
|
N := 0 ; 00087900
|
|
AT := 0 ; 00088000
|
|
WHILE AT := LINKLISTSUBAT.T NEQ 1 DO 00088100
|
|
LINKLISTSUBAT.S := N := N + INC ; 00088200
|
|
END ; 00088202
|
|
N := N + INC ; 00088300
|
|
IF FILETYPE NEQ 3 THEN 00088400
|
|
INORDER := RSWDL = READONLYLIMIT ; 00088500
|
|
GO TO NEXT ; 00088600
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00088700
|
|
TAB: 00088800
|
|
IF NOT NUM1 THEN 00088900
|
|
TABAMOUNT := 1 00089000
|
|
ELSE IF TABAMOUNT := CONTROLS [1] GTR 28 THEN 00089100
|
|
TABAMOUNT := 28 ; 00089200
|
|
IF FILETYPE = 2 THEN 00089300
|
|
TABAMOUNT := TABAMOUNT - 6 ; 00089400
|
|
IF TABAMOUNT := TABAMOUNT - 1 LSS 0 THEN 00089500
|
|
TABAMOUNT := 0 ; 00089600
|
|
GO TO NEXT ; 00089700
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00089800
|
|
SAVEIT: 00089900
|
|
IF EMPTY2 THEN 00090000
|
|
BEGIN 00090100
|
|
IF NUM1 THEN 00090200
|
|
SAVEFACTOR := CONTROLS [1] ; 00090250
|
|
IF NOT FILESECURITY THEN 00090260
|
|
IF NOT INORDER THEN 00090300
|
|
XEROX 00090400
|
|
ELSE CLOSE (DISC) ; PREWHERE := -1 ; 00090500
|
|
END 00090600
|
|
ELSE 00090700
|
|
BEGIN 00090800
|
|
ADJUSTFORNUMERICIDS ; 00090900
|
|
IF NUM3 THEN 00090910
|
|
SAVEFACTOR := CONTROLS [3] ; 00090920
|
|
THERMOFAX ; 00091000
|
|
END ; 00091100
|
|
GO TO NEXT ; 00091200
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00091300
|
|
DELETE: 00091400
|
|
IF NOT NUM1 THEN 00091500
|
|
ERROR (6, CONTROLS [0], CONTROLS [1]) ; 00091600
|
|
INORDER := RSWDL = READONLYLIMIT ; 00091700
|
|
N := CONTROLS [1] ; 00091800
|
|
IF NOT NUM2 THEN 00091900
|
|
M := N 00092000
|
|
ELSE IF M := CONTROLS [2] LSS N THEN 00092100
|
|
M := N ; 00092200
|
|
I := D ; 00092300
|
|
B := ITSOLD (N) ; 00092400
|
|
D := LINKLISTSUBAT.F ; 00092500
|
|
IF ITSOLD (M) THEN 00092600
|
|
AT := LINKLISTSUBAT.T ; 00092700
|
|
LINKLISTSUBD.T := AT ; 00092800
|
|
LINKLISTSUBAT.F := D ; 00092900
|
|
N := LINKLISTSUBD.S + INC ; 00093000
|
|
D := I ; 00093100
|
|
GO TO NEXT ; 00093200
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00093300
|
|
COMPILE: 00093400
|
|
BEGIN 00093500
|
|
00093505
|
|
00093510
|
|
00093515
|
|
00093520
|
|
00093525
|
|
00093530
|
|
00093535
|
|
00093540
|
|
00093545
|
|
00093550
|
|
LABEL AGAIN ; 00093600
|
|
00093700
|
|
00093800
|
|
IF EMPTY2 THEN 00093900
|
|
ERROR (2, CONTROLS [1], CONTROLS [2]) ; 00094000
|
|
ADJUSTFORNUMERICIDS ; 00094100
|
|
FILL FEEDBACK WITH "LINE ", USERCODE ; 00094110
|
|
FILL SCRATCH WITH CONTROLS [1], CONTROLS [2] ; 00094120
|
|
00094200
|
|
00094210
|
|
00094220
|
|
00094230
|
|
00094240
|
|
00094250
|
|
00094260
|
|
00094270
|
|
00094300
|
|
00094305
|
|
IF RSWDL GTR READONLYLIMIT THEN 00094310
|
|
ERROR (5, " FOR ", CONTROLS [0]) ; 00094320
|
|
IF FILETYPE = 3 AND EMPTY3 THEN 00094400
|
|
ERROR (7, PREFIX, SUFFIX) ; 00094500
|
|
IF NOT EMPTY3 THEN 00094510
|
|
BEGIN 00094520
|
|
FILL LIBRARY WITH CONTROLS [3], "DISK " ; 00094530
|
|
SEARCH (LIBRARY, IMAGE [*]) ; 00094540
|
|
IF IMAGE [0] LEQ 0 THEN 00094550
|
|
ERROR (9 + 4 | IMAGE [0], IMAGE [1], IMAGE [2]) ; 00094560
|
|
I := CONTROLS [3] . [6:6] ; 00094570
|
|
M := CONTROLS [3] . [12:36] ; 00094580
|
|
END ; 00094590
|
|
SEARCH (FEEDBACK, IMAGE [*]) ; 00094600
|
|
IF IMAGE [0] NEQ -1 THEN 00094610
|
|
ERROR (4, "LINE ", USERCODE) ; 00094620
|
|
SEARCH (SCRATCH, IMAGE [*]) ; 00094700
|
|
IF IMAGE [0] NEQ - 1 THEN 00094800
|
|
ERROR (4, CONTROLS [1], CONTROLS [2]) ; 00094900
|
|
IF NOT INORDER THEN 00095000
|
|
XEROX ; 00095100
|
|
IF EMPTY3 THEN 00095105
|
|
IF FILETYPE = 0 THEN 00095110
|
|
BEGIN 00095120
|
|
I := "A" ; 00095130
|
|
M := "LGOL " ; 00095140
|
|
END ELSE 00095150
|
|
IF FILETYPE = 1 THEN 00095160
|
|
BEGIN 00095170
|
|
I := "F" ; 00095180
|
|
M := "ORTRAN" ; 00095190
|
|
END ELSE 00095200
|
|
BEGIN 00095210
|
|
I := "C" ; 00095220
|
|
M := "OBOL " ; 00095230
|
|
END ; 00095240
|
|
WRITE (ZIPPY [*], ZIPPER, CONTROLS [1].[6 : 6], CONTROLS [1], 00095300
|
|
CONTROLS [2].[6:6], CONTROLS [2], I, M, PREFIX.[6:6],PREFIX, 00095400
|
|
SUFFIX.[6 : 6], SUFFIX, USERCODE.[6 : 6], USERCODE) ; 00095500
|
|
ZIP WITH ZIPPY [*] ; 00095600
|
|
00095700
|
|
CLOSE (DISC) ; PREWHERE := -1 ; 00095800
|
|
WRITE (TWXOUT, WAIT) ; 00095850
|
|
AGAIN: 00095900
|
|
SEARCH (SCRATCH, IMAGE [*]) ; 00096000
|
|
IF IMAGE [0] NEQ -1 THEN 00096100
|
|
ERROR (0, "COMPILE", "D OK. ") ; 00096200
|
|
SEARCH (FEEDBACK, IMAGE [*]) ; 00096300
|
|
IF IMAGE [0] NEQ -1 THEN 00096400
|
|
BEGIN 00096500
|
|
SEARCH (SCRATCH, IMAGE [*]) ; 00096600
|
|
IF IMAGE [0] NEQ -1 THEN 00096700
|
|
00096710
|
|
00096720
|
|
00096760
|
|
ERROR (0, "COMPILE", "D OK. ") ; 00096800
|
|
CONTROLS [1] := M & I [6:42:6] ; 00096900
|
|
CONTROLS [2] := "ERRORS " ; 00097000
|
|
00097010
|
|
00097020
|
|
00097030
|
|
00097040
|
|
00097050
|
|
00097060
|
|
00097070
|
|
00097080
|
|
00097085
|
|
00097090
|
|
00097095
|
|
FINDSEGRELADDR ; 00097100
|
|
END ELSE 00097200
|
|
BEGIN 00097250
|
|
IF NOT MOREINPUT THEN 00097275
|
|
READ (TWXINPUT (0, 5), 1, IMAGE [*]) [AGAIN] ; 00097300
|
|
SETRSWDL ; 00097350
|
|
END ; 00097375
|
|
END COMPILE ; 00097400
|
|
00097500
|
|
00097600
|
|
00097700
|
|
00097750
|
|
00097800
|
|
00097900
|
|
00098000
|
|
00098100
|
|
00098200
|
|
00098300
|
|
00098400
|
|
00098500
|
|
00098600
|
|
00098700
|
|
00098800
|
|
00098900
|
|
00099000
|
|
00099010
|
|
00099020
|
|
00099030
|
|
00099040
|
|
00099050
|
|
00099060
|
|
00099100
|
|
00099200
|
|
00099250
|
|
00099260
|
|
00099270
|
|
00099280
|
|
00099300
|
|
00099400
|
|
00099500
|
|
00099600
|
|
00099700
|
|
00099800
|
|
00099900
|
|
00100000
|
|
00100100
|
|
00100200
|
|
00100300
|
|
00100400
|
|
00100500
|
|
00100600
|
|
00100700
|
|
00100750
|
|
00100800
|
|
GO TO NEXT ; 00100810
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00100900
|
|
DITTO: 00101000
|
|
CLOSE (DISC) ; 00101050
|
|
IF NOT NUM1 THEN 00101100
|
|
ERROR (6, CONTROLS [0], CONTROLS [1]) ; 00101200
|
|
FILL LIBRARY WITH PREFIX, SUFFIX, *, *, *, 10 ; 00101250
|
|
I := CONTROLS [1] ; 00101300
|
|
IF NUM2 THEN 00101400
|
|
M := CONTROLS [2] + 1 00101500
|
|
ELSE M := I ; 00101600
|
|
ALREADYSEQ := TRUE ; 00101650
|
|
B := ITSOLD (I) ; 00101700
|
|
CONTROLS [1] := D ; 00101750
|
|
IF LINKLISTSUBAT.S LEQ M THEN 00101800
|
|
DO 00101900
|
|
BEGIN 00102000
|
|
READ (LIBRARY [AT - 2], 10, IMAGE [*]) ; 00102100
|
|
READ SEEK (LIBRARY [LINKLISTSUBAT . T - 2]) ; 00102150
|
|
I := AT ; 00102200
|
|
00102300
|
|
WDISC ; 00102400
|
|
00102500
|
|
00102600
|
|
00102700
|
|
AT := I ; 00102800
|
|
00102850
|
|
00102900
|
|
N := N + INC ; 00103000
|
|
AT := LINKLISTSUBAT.T ; 00103100
|
|
END UNTIL LINKLISTSUBAT.S GEQ M OR AT GTR CONTROLS [1] ; 00103200
|
|
ALREADYSEQ := FALSE ; 00103250
|
|
N := INC | ((N + INC - 1) DIV INC) ; 00103300
|
|
CLOSE (LIBRARY) ; 00103325
|
|
FILL LIBRARY WITH *, *, *,*, *, 12 ; 00103350
|
|
GO TO NEXT ; 00103400
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00103500
|
|
REMOVE: 00103600
|
|
ADJUSTFORNUMERICIDS ; 00103700
|
|
IF CONTROLS [1] = PREFIX THEN 00103800
|
|
IF CONTROLS [2] = SUFFIX AND RSWDL = 0 THEN 00103900
|
|
BEGIN 00104000
|
|
READ (DISC [0], 1, CONTROLS [*]) ; 00104050
|
|
CLOSE (DISC, PURGE) ; PREWHERE := -1 ; 00104100
|
|
SETRSWDL ; 00104200
|
|
INORDER := TRUE ; 00104300
|
|
GO TO NEXT ; 00104400
|
|
END ; 00104500
|
|
FILL FEEDBACK WITH CONTROLS [1], CONTROLS [2] ; 00104600
|
|
SEARCH (FEEDBACK, IMAGE [*]) ; 00104700
|
|
IF IMAGE [0] LEQ 0 THEN 00104800
|
|
ERROR (5, CONTROLS [1], CONTROLS [2]) ; 00104900
|
|
IF IMAGE [0] LEQ 3 THEN 00105000
|
|
ERROR (9, CONTROLS [1], CONTROLS [2]) ; 00105100
|
|
IF IMAGE [6] NEQ 0 THEN 00105200
|
|
ERROR (0, "FILE IN", " USE. ") ; 00105300
|
|
READ (FEEDBACK, 10, IMAGE [*]) ; 00105400
|
|
CLOSE (FEEDBACK, PURGE) ; 00105500
|
|
GO TO NEXT ; 00105600
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00105700
|
|
LISTING: 00105710
|
|
FINDSEGRELADDR ; 00105720
|
|
GO TO NEXT ; 00105730
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00105740
|
|
INLINE: 00105800
|
|
IF NUM1 THEN 00105900
|
|
BEGIN 00106000
|
|
N := CONTROLS [1] ; 00106100
|
|
IF NOT ITSOLD (N) THEN 00106200
|
|
ERROR ( 8, "- NO SU", "CH LINE") ; 00106300
|
|
IF NOT MOREINPUT THEN 00106350
|
|
WRITEAT ; 00106400
|
|
I := 2 ; 00106450
|
|
END 00106500
|
|
ELSE 00106600
|
|
BEGIN 00106700
|
|
B := ITSOLD (N) ; 00106800
|
|
AT := LINKLISTSUBAT.F ; 00106900
|
|
N := LINKLISTSUBAT.S ; 00107000
|
|
I := 1 ; 00107050
|
|
END ; 00107100
|
|
RDISC (AT - 2, RECORD) ; 00107200
|
|
INLINETOG := TRUE ; 00107300
|
|
IF FILETYPE = 2 THEN 00107400
|
|
SHIFTLEFT (6, RECORD, IMAGE) ; 00107500
|
|
IF I := CONTROLS [I] . [6:6] = "I" THEN M := 1 00107510
|
|
ELSE IF I = "D" THEN M := 2 00107520
|
|
ELSE IF I = "R" THEN M := 3 00107530
|
|
ELSE M := 0 ; 00107540
|
|
GO TO NEXT ; 00107600
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00107700
|
|
PAGED: 00107710
|
|
IF NUM2 THEN 00107720
|
|
LINECOUNT := (CONTROLS [2] - 1) | PAGELENGTH ; 00107730
|
|
IF NUM1 THEN 00107740
|
|
LINECOUNT := LINECOUNT DIV PAGELENGTH | PAGELENGTH := CONTROLS [1] 00107750
|
|
ELSE 00107760
|
|
LINECOUNT := (LINECOUNT DIV PAGELENGTH + 1) | PAGELENGTH - 1 ; 00107770
|
|
GO TO NEXT ; 00107780
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00107790
|
|
TEACH: 00107800
|
|
IF NOT EMPTY1 THEN 00107802
|
|
BEGIN 00107804
|
|
M := -1 ; 00107806
|
|
FOR I := RSWDM STEP -1 UNTIL 0 DO 00107808
|
|
IF CONTROLS [1] = RSWD [I] THEN 00107810
|
|
BEGIN 00107812
|
|
M := I ; 00107814
|
|
I := -1 ; 00107816
|
|
END ; 00107818
|
|
IF M = -1 THEN 00107820
|
|
ERROR (3, CONTROLS [1], RWTEACH) ; 00107822
|
|
OCTDEC (VERSION, CONTROLS [2]) ; 00107824
|
|
FILL LIBRARY WITH CONTROLS [1] := "TEACHER", CONTROLS [2] ; 00107826
|
|
SEARCH (LIBRARY, IMAGE [*]) ; 00107828
|
|
IF IMAGE [0] LEQ 0 THEN 00107830
|
|
ERROR (5, CONTROLS [1], CONTROLS [2]) ; 00107832
|
|
SPACE (LIBRARY, M) ; 00107834
|
|
I := N ; 00107836
|
|
READ (LIBRARY, I6, LISTN) ; 00107838
|
|
CLOSE (LIBRARY) ; 00107840
|
|
CONTROLS [3] := N DIV 1000 ; 00107842
|
|
NUM3 := TRUE ; 00107843
|
|
CONTROLS [4] := N MOD 1000 ; 00107844
|
|
NUM4 := TRUE ; 00107845
|
|
N := I ; 00107846
|
|
POSTING := TRUE ; 00107847
|
|
GO TO QUICKLIST ; 00107848
|
|
END ; 00107850
|
|
ANOTHERLINE ; 00107890
|
|
WRITE (TWXOUT, TEACH1) ; 00107900
|
|
FOR I := RSWDL STEP 1 UNTIL RSWDM DO 00108000
|
|
BEGIN 00108010
|
|
IF (I - RSWDL) MOD 6 = 0 THEN 00108020
|
|
WRITELFCR ; 00108030
|
|
WRITE (TWXOUT, TEACH2, TEACHOUT) [: NEXT] ; 00108100
|
|
END ; 00108110
|
|
WRITELFCR ; 00108120
|
|
WRITE (TWXOUT, TEACH3) ; 00108130
|
|
WRITE (TWXOUT, TEACH4) ; 00108140
|
|
WRITE (TWXOUT, TEACH5) ; 00108150
|
|
GO TO NEXT ; 00108200
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00108210
|
|
PERCENT: 00108220
|
|
TRANSLATING := CONTROLS [1] = "ON " ; 00108230
|
|
IF NOT TRANSLATING THEN 00108240
|
|
IF CONTROLS [1] NEQ "OFF " THEN 00108250
|
|
ERROR (2, CONTROLS [1], " 0N-OFF") ; 00108260
|
|
GO TO NEXT ; 00108270
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00108300
|
|
REPLACE: 00108305
|
|
FOR I := 0 STEP 1 UNTIL RSWDM DO 00108310
|
|
IF RSWD [I] = CONTROLS [2] THEN 00108315
|
|
ERROR (0, "DUPL. ", CONTROLS [2]) ; 00108320
|
|
FOR I := 0 STEP 1 UNTIL RSWDM DO 00108325
|
|
IF RSWD [I] = CONTROLS [1] THEN 00108330
|
|
BEGIN 00108335
|
|
RSWD [I] := CONTROLS [2] ; 00108340
|
|
GO TO NEXT ; 00108345
|
|
END ; 00108350
|
|
ERROR (0, "NO VERB", CONTROLS [1]) ; 00108355
|
|
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *00108360
|
|
STOP: 00108400
|
|
B := FALSE ; 00108402
|
|
IF FALSE THEN 00108404
|
|
TIMING: 00108406
|
|
B := TRUE ; 00108408
|
|
END ; 00108410
|
|
IF B THEN 00108412
|
|
GO TO TIMING ; 00108414
|
|
STOP: 00108420
|
|
RSWDL := RSWDM ; 00108450
|
|
IF NOT INORDER THEN 00108500
|
|
XEROX ; 00108600
|
|
B := FALSE ; 00108605
|
|
IF FILESECURITY THEN 00108610
|
|
BEGIN 00108620
|
|
READ (RECOVER, *, LISTN) ; 00108630
|
|
CLOSE (RECOVER, PURGE) ; 00108640
|
|
END ; 00108650
|
|
IF EMPTY1 THEN 00108652
|
|
BEGIN 00108654
|
|
IF FALSE THEN 00108656
|
|
TIMING: 00108660
|
|
B := TRUE ; 00108662
|
|
ANOTHERLINE ; 00108670
|
|
I := TIME (2) ; 00108700
|
|
M := "PROC. " ; 00108800
|
|
WRITE (TWXOUT, EOJ, TIMEOUT) ; 00108900
|
|
ANOTHERLINE ; 00108950
|
|
I := TIME (3) ; 00109000
|
|
M := "I / O." ; 00109100
|
|
WRITE (TWXOUT, EOJ, TIMEOUT) ; 00109200
|
|
ANOTHERLINE ; 00109250
|
|
I := TIME (1) - TIME1 ; 00109300
|
|
M := "TOTAL." ; 00109400
|
|
WRITE (TWXOUT, EOJ, TIMEOUT) ; 00109500
|
|
END ; 00109525
|
|
IF B THEN 00109550
|
|
GO TO NEXT ; 00109560
|
|
END. 00109600
|
|
LAST CARD ON CRDIMG TAPE 99999999
|