2,23d1 < %EXTERNALROUTINESPEC CLOSE OUTPUT < < %integer outstream < %routine select output(%integer stream) < outstream = stream < %end < < %routine newline < %if outstream = 0 %then print ch(10) < %end < < %routine newlines(%integer i) < %integer j < %for j = 1, 1, i %cycle < newline < %repeat < %end < < %routine print symbol(%integer sym) < %if outstream = 0 %then print ch(sym) < %end < 218c196 < %MONITOR %AND %STOP %IF FAULTY # 0 --- > %MONITOR 192 %IF FAULTY # 0 250c228 < %IF SSTYPE&8_400000 # 0 %START; !START OR END OF BLOCK --- > %IF SSTYPE < 0 %START; !START OR END OF BLOCK 252c230 < %EXIT %IF SSTYPE&8_200000 # 0; !END --- > %EXIT %IF SSTYPE<<1 # 0; !END 331,342c309,320 < S(0): PRINTSTRING("FORM"); ->F < S(1): PRINTSTRING("ATOM"); ->F < S(2): PRINTSTRING("NAME"); ->F < S(3): PRINTSTRING("SIZE"); ->F < S(4): PRINTSTRING("DUPLICATE"); ->F < S(5): PRINTSTRING("%BEGIN"); ->M < S(6): PRINTSTRING("%CYCLE"); ->M < S(7): PRINTSTRING("%START"); ->M < S(8): PRINTSTRING("%END"); ->M < S(9): PRINTSTRING("%REPEAT"); ->M < S(10): PRINTSTRING("%FINISH"); ->M < S(11): PRINTSTRING("%RESULT"); ->M --- > S(0): %PRINTTEXT 'FORM'; ->F > S(1): %PRINTTEXT 'ATOM'; ->F > S(2): %PRINTTEXT 'NAME'; ->F > S(3): %PRINTTEXT 'SIZE'; ->F > S(4): %PRINTTEXT 'DUPLICATE'; ->F > S(5): %PRINTTEXT '%BEGIN'; ->M > S(6): %PRINTTEXT '%CYCLE'; ->M > S(7): %PRINTTEXT '%START'; ->M > S(8): %PRINTTEXT '%END'; ->M > S(9): %PRINTTEXT '%REPEAT'; ->M > S(10): %PRINTTEXT '%FINISH'; ->M > S(11): %PRINTTEXT '%RESULT'; ->M 346,352c324,330 < M: PRINTSTRING(" MISSING"); ->F < S(13): PRINTSTRING("BOUNDS"); ->F < S(14): PRINTSTRING("INDEX"); ->F < S(15): PRINTSTRING("CONTEXT"); ->E < S(16): PRINTSTRING("ACCESS"); ->A < S(17): PRINTSTRING("ORDER"); ->F < S(18): PRINTSTRING("MATCH") --- > M: %PRINTTEXT ' MISSING'; ->F > S(13): %PRINTTEXT 'BOUNDS'; ->F > S(14): %PRINTTEXT 'INDEX'; ->F > S(15): %PRINTTEXT 'CONTEXT'; ->E > S(16): %PRINTTEXT 'ACCESS'; ->A > S(17): %PRINTTEXT 'ORDER'; ->F > S(18): %PRINTTEXT 'MATCH' 367c345 < ->Z2 %UNLESS SYM = NL --- > ->2 %UNLESS SYM = NL 369,370c347,348 < Z1: SYMTYPE = 1 < Z2: READ SYMBOL(SYM) --- > 1: SYMTYPE = 1 > 2: READ SYMBOL(SYM) 375,376c353,354 < ->Z1 %IF SYM = ' ' < SYMTYPE=2 %AND ->Z2 %IF SYM = '%' --- > ->1 %IF SYM = ' ' > SYMTYPE=2 %AND ->2 %IF SYM = '%' 389c367 < Z1: POS1 = POS --- > 1: POS1 = POS 422c400 < ->Z1 %IF ATOM1 = 0 %AND SUBATOM = 0; !% C NL, (SHORT) --- > ->1 %IF ATOM1 = 0 %AND SUBATOM = 0; !% C NL, (SHORT) 432c410 < ->Z1 %IF SYMTYPE > 0 --- > ->1 %IF SYMTYPE > 0 496,497c474,475 < ->REP %UNLESS INDEX(I)&(\511) = HEAD < J = INDEX(I)&511; K = MAX --- > ->REP %UNLESS INTEGER(I)&(\511) = HEAD > J = INTEGER(I)&511; K = MAX 523c501 < READ SYM; ->Z25 %IF SYMTYPE >= 0 --- > READ SYM; ->25 %IF SYMTYPE >= 0 532c510 < Z25: ATOM1 = -2; ATOM2 = 70; !IDENT --- > 25: ATOM1 = -2; ATOM2 = 70; !IDENT 546c524 < TEXT = DBOUND; INDEX0 = 0 --- > TEXT = DBOUND; INDEX0 = ADDR(INDEX(0)) 555c533 < ->Z91 %IF ATOM1 <= 0 --- > ->91 %IF ATOM1 <= 0 557c535 < ->Z91 %IF GG = 0 --- > ->91 %IF GG = 0 566c544 < NMIN = NMIN-1; ->Z90 %IF NMIN = NMAX --- > NMIN = NMIN-1; ->90 %IF NMIN = NMAX 584c562 < ->Z91 %IF GG >= 0 --- > ->91 %IF GG >= 0 587c565 < NMAX = NMAX+1; ->Z90 %IF NMAX = NMIN --- > NMAX = NMAX+1; ->90 %IF NMAX = NMIN 606c584 < ->Z91 %IF GG >= 0 --- > ->91 %IF GG >= 0 617,618c595,596 < Z90: ATOM1 = -3 < Z91: READ SYM %WHILE SYM # NL --- > 90: ATOM1 = -3 > 91: READ SYM %WHILE SYM # NL 635,636d612 < BOWN = 0 < 639c615 < I = IMOD(X) --- > I = !X! 681,682c657,658 < %ROUTINE OP(%INTEGER OPC); !OUTPUT OP-CODE < PRINT SYMBOL(OPC); ICOUNT = ICOUNT+1 --- > %ROUTINE OP(%INTEGER OP); !OUTPUT OP-CODE > PRINT SYMBOL(OP); ICOUNT = ICOUNT+1 753c729 < EXPEND; ->Z1 --- > EXPEND; ->1 759c735 < Z1: OP(C+16); !* T0 --- > 1: OP(C+16); !* T0 847c823 < TTX == TAGTYPE(X); K = TTX&255 --- > TTX == TT0++X; K = TTX&255 903c879 < X = SUB(NEXT); TTX == TAGTYPE(X) --- > X = SUB(NEXT); TTX == TT0++X 919,920c895,896 < Z1: GET NEXT < Z2: ->C(X) %IF CLASS <= 31; !OPERATORS,SIMP --- > 1: GET NEXT > 2: ->C(X) %IF CLASS <= 31; !OPERATORS,SIMP 922,924c898,900 < Z9: ->Z1 %IF NEXT # LINK < Z10: %RETURN %IF LABCODE = 0 < Z11: JUMP(-(LMIN+1)) %AND ACCESS=0 %IF LABCODE&1=0; !JUMP BACK FOR LOOPS --- > 9: ->1 %IF NEXT # LINK > 10: %RETURN %IF LABCODE = 0 > 11: JUMP(-(LMIN+1)) %AND ACCESS=0 %IF LABCODE&1=0; !JUMP BACK FOR LOOPS 947,948c923,924 < ->Z811 %IF TTX&EXT # 0 < ->Z9 %IF TTX&(REF+ARRAY) # ARRAY; !SCALAR --- > ->811 %IF TTX&EXT # 0 > ->9 %IF TTX&(REF+ARRAY) # ARRAY; !SCALAR 960c936 < ->Z9 --- > ->9 966,967c942,943 < Z701: TTX = DMAX<<8+TTX < ->Z9 --- > 701: TTX = DMAX<<8+TTX > ->9 971c947 < ->Z701 --- > ->701 979c955 < ->Z9 --- > ->9 984c960 < ->Z9 %IF TTX&2 = 0 --- > ->9 %IF TTX&2 = 0 986c962 < ->Z9 --- > ->9 989c965 < ->Z9 --- > ->9 993c969 < ->Z9 --- > ->9 1003,1004c979,980 < Z811:PRINT SYMBOL('('); !BODY OR EXT SPEC < ->Z9 %IF TTX&BODY # 0; !BODY --- > 811:PRINT SYMBOL('('); !BODY OR EXT SPEC > ->9 %IF TTX&BODY # 0; !BODY 1008c984 < ->Z9 --- > ->9 1021,1024d996 < %if global = 0 %start < %if tmax = 0 %then tmax = 1 < tbase = tmax; global = tbase < %finish 1058c1030 < %MONITOR; %STOP --- > %MONITOR 192 1093c1065 < ->Z9 --- > ->9 1106c1078 < ->Z9 --- > ->9 1128c1100 < ->Z9 --- > ->9 1131c1103 < ->Z11 --- > ->11 1144c1116 < ->Z9 --- > ->9 1156c1128 < ->Z9 --- > ->9 1159c1131 < ->Z9 --- > ->9 1162c1134 < ->Z9 --- > ->9 1210c1182 < ->Z9 --- > ->9 1216c1188 < %MONITOR %AND %STOP %IF LSTACK < 0 --- > %MONITOR 21 %IF LSTACK < 0 1223c1195 < ->Z9 --- > ->9 1232c1204 < ->Z9 --- > ->9 1239c1211 < ->Z9 --- > ->9 1248c1220 < ->Z9 --- > ->9 1264c1236 < ->Z10 --- > ->10 1272c1244 < ->Z9 --- > ->9 1275c1247 < Z171:I = 4; !SHOULD BE PRED --- > 171:I = 4; !SHOULD BE PRED 1279c1251 < ->Z171 --- > ->171 1294c1266 < ->Z9 --- > ->9 1301c1273 < ->Z9 --- > ->9 1304c1276 < ->Z9 --- > ->9 1318c1290 < ->Z9 --- > ->9 1352c1324 < ->Z9 --- > ->9 1355c1327 < ->Z2 --- > ->2 1358c1330 < ->Z9 --- > ->9 1361c1333 < ->Z9 --- > ->9 1365c1337 < ->Z9 --- > ->9 1374c1346 < ->Z9 --- > ->9 1383c1355 < ->Z9 --- > ->9 1389c1361 < ->Z9 --- > ->9 1397c1369 < ->Z9 --- > ->9 1403c1375 < ->Z9 --- > ->9 1409c1381 < ->Z9 --- > ->9 1413c1385 < ->Z9 --- > ->9 1416c1388 < ->Z9 --- > ->9 1419c1391 < ->Z9 --- > ->9 1422c1394 < ->Z9 --- > ->9 1425c1397 < ->Z9 --- > ->9 1433c1405 < ->Z9 --- > ->9 1435c1407 < C(111): ->Z9; !SEP --- > C(111): ->9; !SEP 1441c1413 < ->Z9 --- > ->9 1444c1416 < ->Z9 --- > ->9 1456c1428 < ->Z9 --- > ->9 1459c1431 < ->Z9 --- > ->9 1471c1443 < ->Z9 --- > ->9 1474c1446 < ->Z9 --- > ->9 1477c1449 < ->Z9 --- > ->9 1480c1452 < ->Z9 --- > ->9 1492c1464 < ->Z9 --- > ->9 1500c1472 < TTX == TAGTYPE(PEND&255) --- > TTX == TT0++(PEND&255) 1509c1481 < ->Z9 --- > ->9