$+STREAM 00000000 BEGIN % INITIAL MCALGOL LANGUAGE FILE LOADER 00001000 DEFINE NUD = 0#, LUD = 0#, 00002000 BLVL = 1#, RCCNT = -1#, 00003000 LANGLVL = 3#, 00004000 BECT = 1#, OHM = 0#, 00005000 PT = 0#, DECP = 0#, 00006000 GALFBAS = 1279#, GINTBAS = 1791#, GPTRBAS = 2815#, 00007000 NPTCH = -2#; 00008000 FILE CARD(2,150,10); 00009000 REAL P2; 00010000 INTEGER ND,COUNT,I,SUB,CODEWORD,P1,CW,J,L,LD; 00011000 ARRAY A,BFR,IDENT[0:9],DLIST[0:249],DICT[0:127,0:255]; 00012000 LABEL START, EOF; 00013000 STREAM PROCEDURE SCANNER(S,A,CW,SU,C); 00014000 BEGIN 00015000 LOCAL T, TT; 00016000 LABEL DEBL1, DEBL2, DEBL3; 00017000 SI~S; DI~A; DI~DI+3; 00018000 DEBL1: IF SC=" " THEN BEGIN SI~SI+1; GO DEBL1; END; 00019000 63(IF SC!" " THEN BEGIN DS~ CHR;TALLY~ TALLY+1;END ELSE JUMP 00020000 OUT); 00021000 DS~7 LIT " "; TT~SI; T~TALLY; 00022000 SI~LOC T; DI~C; DS~WDS; SI~TT; DI~CW; 00023000 DEBL2: IF SC=" " THEN BEGIN SI~SI+1; GO DEBL2; END; 00024000 DS~2 OCT; DI~SU; 00025000 DEBL3: IF SC=" " THEN BEGIN SI~SI+1; GO DEBL3; END; 00026000 DS~3 OCT; 00027000 END SCANNER; 00028000 STREAM PROCEDURE MOV(N1,N2,A,B); VALUE N1,N2; BEGIN 00029000 SI~A; DI~B; N1(DS~32 WDS; DS~32 WDS); DS~N2 WDS END; 00030000 STREAM PROCEDURE MOVE(A,B,I,L,D); VALUE A,B,L; BEGIN 00031000 DI~D; SI~LOC A; DS~2 WDS; SI~I; DS~L WDS; 00032000 END; 00033000 DLIST[0] ~ -1; 00034000 MOV(3,57,DLIST,DLIST[1]); 00035000 START: READ(CARD,10,BFR[*])[EOF]; 00036000 SCANNER(BFR,IDENT,CW,SUB,COUNT); 00037000 IDENT[0].[1:17]~ COUNT; 00038000 I~ IDENT[0] MOD 125; 00039000 IF ND.[40:8]+L~(COUNT+10) DIV 8>254 THEN 00040000 ND~ 0&(ND+256)[33:33:7]; 00041000 IF CODEWORD