From c168596d0780beb52188757862073ee7ffc7042c Mon Sep 17 00:00:00 2001 From: Paul Kimpel Date: Wed, 23 Nov 2016 09:43:56 -0800 Subject: [PATCH] Commit corrections to Mark XVI SYMBOL/ALGOL and ALGOLXEM obtained by comparing Mark XV SYMBOL/ALGOL to the Mark XVI transcribed file. --- Mark-XVI/SYMBOL/ALGOL.alg_m | 1182 +++++++++++++------------ Unisys-Emode-Tools/xem/ALGOLXEM.alg_m | 371 ++++---- 2 files changed, 783 insertions(+), 770 deletions(-) diff --git a/Mark-XVI/SYMBOL/ALGOL.alg_m b/Mark-XVI/SYMBOL/ALGOL.alg_m index a76a897..b1a69b3 100644 --- a/Mark-XVI/SYMBOL/ALGOL.alg_m +++ b/Mark-XVI/SYMBOL/ALGOL.alg_m @@ -1,9 +1,9 @@ $SET OMIT LISTA = LIST %121-00000999 %#######################################################################00001000 % 00001010 -% B-5700 ALGOL/TSPOL SYMBOLIC 00001020 -% MARK XVI.0.122 %123-00001030 -% MAY 9, 1977 %123-00001040 +% B-5700 ALGOL/TSPOL SYMBOLIC 00001020 +% MARK XVI.0.122 %123-00001030 +% MAY 9, 1977 %123-00001040 % 00001050 %#######################################################################00001060 % 00001070 @@ -98,7 +98,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00002000 042 HANDLESWLIST: ILLEGAL LIST ID APPEARING IN SWITCH LIST. 00069400 043 IODEC: MISSING ] AFTER DISK IN FILEDEC. 00069500 044 IODEC: MISSING [ AFTER DISK IN FILEDEC. 00069600 -045 DEFINEDEC: MISSING "*" AFTER DEFINE ID. 00069700 +045 DEFINEDEC: MISSING "=" AFTER DEFINE ID. 00069700 046 ARRAE: NON-LITERAL ARRAY BOUND NOT GLOBAL TO ARRAY DECL. 00069800 047 TABLE: ITEM FOLLOWING @ NOT A NUMBER. 00069900 048: PROCEDUREDEC: NUMBER OF PARAMETERS DIFFERS FROM FWD DECL. 00069910 @@ -112,9 +112,9 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00002000 060 FAULTSTMT: MISSING ~ IN FAULT STATEMENT. 00069940 061 FAULTDEC: INVALID FAULT TYPE: MUST BE FLAG, EXPOVR, ZERO, 00069950 INTOVR, OR INDEX. 00069960 - 070 CASESTMT: MISSING BEGIN. 00069970 - 071 CASESTMT: MISSING END. 00069980 - 080 PRIMARY: MISSING COMMA . 00069990 + 070 CASESTMT: MISSING BEGIN. 00069970 + 071 CASESTMT: MISSING END. 00069980 + 080 PRIMARY : MISSING COMMA . 00069990 090 PARSE: MISSING LEFT BRACKET 00069991 091 PARSE: MISSING COLON 00069992 092 PARSE: ILLEGAL BIT NUMBER 00069993 @@ -135,7 +135,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00002000 107 BEXP: THE EXPRESSION IS NOT OF BOOLEAN TYPE. 00081000 108 EXPRSS: A RELATION MAY NOT HAVE CONDITIONAL EXPRESSIONS 00082000 AS THE ARITHMETIC EXPRESSIONS. 00083000 - 109 BOOSEC,SIMBOO, AND BOOCOMP: THE PRIMARY IS NOT BOOLEAN. 00084000 + 109 BOOSEC,SIMPBOO, AND BOOCOMP: THE PRIMARY IS NOT BOOLEAN. 00084000 110 BOOCOMP: A NON-BOOLEAN OPERATOR OCCURS IN A BOOLEAN 00085000 EXPRESSION. 00086000 111 BOOPRIM: NO EXPRESSION (ARITHMETIC, BOOLEAN, OR DESIGNA- 00087000 @@ -152,7 +152,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00002000 118 BANA: MISSING RIGHT BRAKET. 00098000 119 COMPOUNDTAIL: MISSING SEMICOLON OR END. 00099000 120 COMPOUNDTAIL: MISSING END. 00100000 - 121 ACTUALPARAPART: AN INDEXED FILE MAY BE PASSED BY NAME 00101000 + 121 ACTUALPARAPART: AN INDEXED FILE MAY BE PASSED BY NAME 00101000 ONLY AND ONLY TO A STREAM PROCEDURE - THE STREAM 00102000 PROCEDURE MAY NOT DO A RELEASE ON THIS TYPE PARA- 00103000 METER. 00104000 @@ -209,7 +209,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00002000 155 IFEXP: MISSING ELSE 00155000 156 LISTELEMENT: A DESIGNATIONAL EXPRESSION MAY NOT BE A LIST00156000 ELEMENT. 00157000 - 157 LISTELEMENT: A ROW DESIGNATOR MAY NOT BE A LIST ELEMENT. 00158000 + 157 LISTELEMENT: A ROW DESIGNATOR MAY NOT BE A LISTELEMENT 00158000 158 LISTELEMENT: MISSING RIGHT BRAKET IN GROUP OF ELEMENTS 00159000 159 PROCSTMT: ILLEGAL USE OF PROCEDURE OR FUNCTION IDENTIFIER00160000 160 PURGE: DECLARED LABEL DOES NOT OCCUR. 00161000 @@ -226,7 +226,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00002000 PARAMETRIC DEFINE INVOCATION. 00164745 175 FIXDEFINEINFO: LEFT BRACKET OR LEFT PARENTHESIS EXPECTED. 00164750 185 IMPFUN: LAST PARAMETER MUST BE A SIMPLE OR SUBSCRIPTED 00164850 - VARIABLE, OR A TYPE PROCEDURE IDENTIFIER. 00164851 + VARIABLE, OR A TYPED PROCEDURE IDENTIFIER. 00164851 199 E: INFO ARRAY HAS OVERFLOWED. 00164900 200 EMIT: SEGMENT TOO LARGE ( > 4093SYLLABLES). 00165000 201 SIMPLE VARIABLE: PARTIAL WORD DESIGNATOR NOT LEFT-MOST 00166000 @@ -242,7 +242,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00002000 208 SUBSCRIPTED VARIABLE: WRONG NUMBER OF SUBSCRIPTS. 00176000 209 SUBSCRIPTED VARIABLE: PARTIAL WORD DESIGNATOR NOT LEFT- 00177000 MOST IN A LEFT PART LIST. 00178000 - 210 SUBSCRIPTED VARIABLE: MISSING , OR ~ . 00179000 + 210 SUBSCRIPTED VARIABLE: MISSING . OR ~ . 00179000 211 VARIABLE: PROCEDURE ID USED OUTSIDE OF SCOPE IN LEFT PART.00180000 212 VARIABLE: SUB-ARRAY DESIGNATOR PERMITTED AS ACTUAL 00180100 PARAMETER ONLY. 00180200 @@ -268,7 +268,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00002000 266 IFS: MISSING THEN INIF STATEMENT. 00200000 267 FREDFIX: THERE ARE GO TO STATEMENTS IN WHICH THE LABEL IS 00201000 UNDEFINED. 00202000 - 268 EMITC: A REPEAT INDEX }64 WAS SPECIFIED OR TOO MANY 00203000 + 268 EMITC: A REPEAT INDEX } 64 WAS SPECIFIED OR TOO MANY 00203000 FORMAL PARAMETERS,LOCALS AND LABELS. 00204000 269 TABLE: A CONSTANT IS SPECIFIED WHICH IS TOO LARGE 00205000 OR TOO SMALL. 00206000 @@ -302,7 +302,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00002000 351 OUTPROCHECK: ILLEGAL TYPE FOR SORT OR MERGE OUTPUT PROC. 00218220 352 OUTPROCHECK: OUTPUT PROCEDURE IN SORT OR MERGE STMT DOES 00218230 NOT HAVE EXACTLY TWO PARAMETERS. 00218240 - 353 OUTPROCHECK: FIRST PAREMETER OF OUTPUT PROCEDURE MUST 00218250 + 353 OUTPROCHECK: FIRST PARAMETER OF OUTPUT PROCEDURE MUST 00218250 BE BOOLEAN. 00218260 354 OUTPROCHECK: SECOND PARAM OF OUTPUT PROCEDURE MUST BE 00218270 ONE-DIM ARRAY. 00218280 @@ -450,17 +450,17 @@ BEGIN COMMENT OUTERMOST BLOCK; 00500000 INTEGER ERRORCOUNT; COMMENT NUMBER OF ERROR MSGS. MCP WILL TYPE 00501000 SYNTX ERR AT EOJ IF THIS IS NON-ZERO. MUST BE @R+25; 00502000 INTEGER SAVETIME; COMMENT SAVE-FACTOR FOR CODE FILE, GIVEN BY MCP. 00503000 - IF COMPILE & GO =0, FOR SYNTAX, =-1. MUST BE AT R+26;00504000 + IF COMPILE & GO =0. FOR SYNTAX, =-1. MUST BE AT R+26;00504000 INTEGER CARDNUMBER; % SEQ # OF CARD BEING PROCESSED. 00504100 INTEGER CARDCOUNT; % NUMBER OF CARDS PROCESSED. 00504150 INTEGER LASTADDRESS; 00504200 - ARRAY ENIL[0:7,0:127]; 00504300 + ARRAY ENIL[0:7,0:127]; 00504300 INTEGER ENILPTR; 00504400 - DEFINE ENILSPOT = ENIL[ENILPTR.[38:3], ENILPTR.[41:7]]#; 00504500 - ARRAY LDICT[0:7,0:127]; 00504600 + DEFINE ENILSPOT = ENIL[ENILPTR.[38:3], ENILPTR.[41:7]]#; 00504500 + ARRAY LDICT[0:7,0:127]; 00504600 BOOLEAN BUILDLINE; 00504700 BOOLEAN REL; 00504801 - COMMENT RR1-RR11 ARE USED BY SOME PROCEDURES IN LIEU OF LOCALS. 00505000 + COMMENT RR1-RR11 ARE USED BY SOME PROCEDURES IN LIEU OF LOCALS, 00505000 TO SAVE SOME STACK SPACE; 00506000 REAL RR1,RR2,RR3,RR4,RR5,RR6,RR7,RR8,RR9,RR10,RR11; 00507000 COMMENT SOME OF THE RRI ARE USED TO PASS FILE INFORMATION TO 00508000 @@ -475,12 +475,12 @@ BOOLEAN REL; 00504801 DS ~ 1 CHR; 00512500 END EXAMINELAST; 00512600 COMMENT MOVECHARACTERS MOVES N CHARACTERS FROM THE SK-TH CHARACTER 00513000 - IN SORCE TO THE DK-TH CHARACTER IN DEST, 0{N{63,0{SK{127; 00514000 + IN SORCE TO THE DK-TH CHARACTER IN DEST. 0{N{63,0{SK{127; 00514000 DEFINE DK=DSK#; 00514500 STREAM PROCEDURE MOVECHARACTERS(N,SORCE,SK,DEST,DSK); 00515000 VALUE N, SK, DSK ; 00516000 BEGIN SI~LOC SK; SI~SI+6; 00517000 - IF SC!"0" THEN BEGIN SI~SORCE; 2(SI~SI+32);SORCE~SI END; 00518000 + IF SC!"0" THEN BEGIN SI~SORCE; 2(SI~SI+32); SORCE~SI END; 00518000 SI~LOC DK; SI~SI+6; DI~DEST; 00519000 IF SC!"0" THEN 2(DI~DI+32); 00520000 SI~SORCE; SI~SI+SK; DI~DI+DK; DS~N CHR; 00521000 @@ -511,8 +511,8 @@ BOOLEAN REL; 00504801 01000600 INTEGER NUMSEQUENCEERRORS; 01000700 INTEGER OPINX; % USED FOR INDEXING INTO OPTIONS ARRAY. 01000800 -BOOLEAN SETTING; % USED BY DOLLARCARD FOR AN OPTION"S SETTING 01000802 - BOOLEAN GOGOGO; % TRUE FOR SPECIAL WRITES AND READS 01000810 +BOOLEAN SETTING; % USED BY DOLLARCARD FOR AN OPTION"S SETTING. 01000802 + BOOLEAN GOGOGO;% TRUE FOR SPECIAL WRITES AND READS 01000810 PROCEDURE CHECKBOUNDLVL;FORWARD; 01000830 BOOLEAN ARRAYFLAG;% USED TO INFORM PRIMARY AND BOOPRIM THAT WE ARE 01000840 % EVALUATING AN ARRAY BOUND 01000850 @@ -583,8 +583,8 @@ COMMENT SEQTOG INDICATES RESEQUENCING IS TO BE DONE; 01001410 VOIDING = OPTIONWORD.[VOIDBIT:1] #, 01001450 VOIDTAPE = OPTIONWORD.[VOIDTBIT:1] #, 01001460 XREF = OPTIONWORD.[XREFBIT:1] #, 01001461 - BEND = OPTIONWORD.[BENDBIT:1] #, 01001462 - CODEFILE = OPTIONWORD.[CODEFILEBIT:1] #, %106-01001463 + BEND = OPTIONWORD.[BENDBIT:1]#, 01001462 + CODEFILE = OPTIONWORD.[CODEFILEBIT:1]#, %106-01001463 DUMMY = #; 01001470 BOOLEAN NOHEADING; % TRUE IF DATIME HAS NOT BEEN CALLED. 01001480 BOOLEAN NEWBASE; % NEW BASENUM FOUND ON A NEW $-CARD. 01001490 @@ -716,8 +716,8 @@ DEFINE % %116-01007400 THE INTERNAL CODE ( OR ELBAT WORD AS IT IS USUALLY 01010000 CALLED). THE SECOND WORD CONTAINS THE FORWARD BIT (IN 01011000 [1:1]) FOR PROCEDURES, THE LINK TO PREVIOUS ENTRY (IN 01012000 - [4:8]). THE NUMBER OF CHARACTORS IN THE ALPHA REPRESENTA- 01013000 - TION (IN [12:6]), AND THE FIRST 5 CHARACTERS OF ALPHA. 01014000 + [4:8]), THE NUMBER OF CHARACTORS IN THE ALPHA REPRESENTA- 01013000 + TION (IN [12:6]), AND THE FIRST 5 CHARACTORS OF ALPHA. 01014000 SUCCEDING WORDS CONTAIN THE REMAINING CHARACTORS OF ALPHA,01015000 FOLLOWED BY ANY ADDITIONAL INFORMATION. THE ELBAT WORD 01016000 AND THE ALPHA FOR ANY QUANTITY ARE NOT SPLIT ACROSS A ROW 01017000 @@ -772,7 +772,7 @@ COMMENT INFO FORMAT 01028000 POINTS TO A. 01066000 THE SECOND WORD OF EACH ENTRY IN INFO IS MADE UP AS FOLLOWS: 01067000 FWDPT =[1:1],THIS TELLS WHETHER A PROCEDURE WAS DECLARED 01068000 - FORWARD. IT IS RESET AT THE TIME OF ITS ACTUAL 01069000 + FORWARD.IT IS RESET AT THE TIME OF ITS ACTUAL 01069000 FULL DECLARATION. 01070000 PURPT =[4:8] THIS GIVES A DECREMENT WHICH GIVES THE RELATIVE 01071000 INDEX TO THE PREVIOUS INFO ENTRY WHEN SUBTRACTED 01072000 @@ -825,7 +825,7 @@ COMMENT INFO FORMAT 01028000 THE FIRST WORD OF ADDITIONAL INFO CONTAINS THE NUMBER OF 01119000 PARAMETERS [40:8] 01120000 IF A STREAM PROCEDURE THEN THIS WORD CONTAINS ALSO IN 01121000 - [13:11] ENDING PRT ADDRESS FOR LABELS, 01122000 + [13:11] ENDING PRT ADDRESS FOR LABELS, 01122000 [ 7:6] NO OF LABELS REQUIRING PRT ADDRESSES, AND [1:6] NUMBER 01123000 OF LOCALS. 01124000 SUCCEEDING WORDS (ONE FOR EACH FORMAL PARAMETER,IN ORDER 01125000 @@ -834,9 +834,9 @@ COMMENT INFO FORMAT 01028000 VALUE OR NOT([10:1]). 01128000 THE ADDRESS([16:11]) IS THE F- ADDRESS FOR EACH. 01129000 IF THE PARAMETER IS AN ARRAY THEN THE INCR FIELD([27:8]) 01130000 - CONTAINS THE NUMBER OF DIMENSIONS,OTHERWISE INCR IS MEANINGLESS. 01131000 + CONTAINS THE NUMBER OF DIMENSIONS.OTHERWISE INCR IS MEANINGLESS. 01131000 LINK([35:13]) IS MEANINGLESS. 01132000 - IF A STREAM PROCEDURE THEN THE CLASS OF EACH PARAMETER IS 01133000 + IF A STREAM PROCEDURE THEN THE CLASS OF EACH PARAMATER IS 01133000 THAT OF LOCAL ID OR FILE ID, DEPENDING ON WHETHER OR NOT A RELEASE01134000 IS DONE IN THE STREAM PROCEDURE. 01135000 LABELS: 01136000 @@ -879,11 +879,11 @@ COMMENT INFO FORMAT 01028000 LVL GIVES THE LEVEL AT WHICH A QUANTITY WAS DECLARED. 01167000 ADDRESS GIVES THE STACK OR PRT ADDRESS. 01168000 DYNAM IS USED INSTEAD OF LVL AND ADDRESS FOR DEFINE AND 01168100 - DEFINE PARAMETER ENTRIES, ONLY, IT IS AN INDEX 01168200 + DEFINE PARAMETER ENTRIES, ONLY. IT IS AN INDEX 01168200 INTO THE ARRAY CONTAINING THE DEFINE TEXT. 01168300 THEREFORE, WHEN THE COMPILER CHECKS TO SEE IF A 01168400 DEFINE WAS DECLARED B4 IN THE SAME BLOCK, IT DOES 01168500 - NOT USE THE LVL FIELD, BUT MAKES USE OF NINF00 01168600 + NOT USE THE LVL FIELD, BUT MAKES USE OF NINFOO. 01168600 INCR GIVES A RELATIVE LINK TO ANY ADDITIONAL INFORMATION 01169000 NEEDED, RELATIVE TO THE LOCATION IN INFO. 01170000 LINK CONTAINS A LINK TO THE LOCATION IN INFO IF THE 01171000 @@ -919,7 +919,7 @@ COMMENT INFO FORMAT 01028000 INTID =24#, COMMENT 030; 01201000 BOOARRAYID =25#, COMMENT 031; 01202000 REALARRAYID =26#, COMMENT 032; 01203000 - ALFARRAYID =27#, COMMENT 033; 01204000 + ALFAARRAYID =27#, COMMENT 033; 01204000 INTARRAYID =28#, COMMENT 034; 01205000 LABELID =29#, COMMENT 035; 01206000 COMMENT CLASSES FOR PRIMARY BEGINNERS; 01207000 @@ -928,7 +928,7 @@ COMMENT INFO FORMAT 01028000 LITNO =32#, COMMENT 040; 01210000 STRNGCON =33#, COMMENT 041; 01211000 LEFTPAREN =34#, COMMENT 042; 01212000 - COMMENT CLASSES FOR ALL DECLARATORS; 01213000 + COMMENT CLASS FOR ALL DECLARATORS; 01213000 DECLARATORS =35#, COMMENT 043; 01214000 COMMENT CLASSES FOR STATEMENT BEGINNERS 01215000 READV =36#, COMMENT 044; 01216000 @@ -1029,13 +1029,13 @@ ARRAY FILEATTRIBUTES[0:30] ; 01303500 ALPHA ARRAY ACCUM[0:10]; 01304000 COMMENT ACCUM HOLDS THE ALPHA AND CHARACTER COUNT OF THE LAST 01305000 SCANNED ITEM IN A FORM COMPATIBLE WITH ITS APPEARANCE 01306000 - IN INFO. THAT IS ACCUM[1] = 00NAAAAA, ACCUM[I] , I> 1, 01307000 + IN INFO, THAT IS ACCUM[1] = 00NAAAAA. ACCUM[I] , I> 1, 01307000 HAS ANY ADDITIONAL CHARACTERS. ACCUM[0] IS USED FOR 01308000 THE ELBAT WORD BY THE ENTER ROUTINES; 01309000 ARRAY STACKHEAD,SUPERSTACK[0:124]; %WF 01310000 - COMMENT STACKHEAD[N] CONTAINS AN INDEX INTO INFO, THIS INDEX %WF 01311000 + COMMENT STACKHEAD[N] CONTAINS AN INDEX INTO INFO. THIS INDEX %WF 01311000 POINTS TO THE TOP ITEM IN THE N-TH STACK (ACTUALLY A %WF 01311100 - LINKED-LIST). SUPERSTACK IS NOT A TELEVISION STAR, %WF 01311200 + LINKED-LIST). SUPERSTACK IS NOT A TELEVISION STAR, %WF 01311200 BUT RATHER A SPECIAL STACKHEAD WHICH ALWAYS POINTS %WF 01311300 AT CERTAIN COMMONLY USED RESERVED WORDS. THOSE %WF 01311400 WORDS POINTED TO (IN THREE GROUPS) ARE: %WF 01311500 @@ -1043,7 +1043,7 @@ ARRAY FILEATTRIBUTES[0:30] ; 01303500 2) AND, DIV, EQV, IMP, MOD, NOT, OR, TRUE %WF 01311700 3) BEGIN, DO, ELSE, END, FOR, GO, IF, %WF 01311800 STEP, THEN, TO, UNTIL, WHILE, WRITE. %WF 01311900 - FOR MORE INFORMATION ON THE USE OF SUPERSTACKM SEE %WF 01312000 + FOR MORE INFORMATION ON THE USE OF SUPERSTACK, SEE %WF 01312000 COMMENTS IN THE TABLE PROCEDURE. ; %WF 01312100 INTEGER COUNT; 01313000 COMMENT COUNT CONTAINS THE NUMBER OF CHARACTORS OF THE LAST ITEM 01314000 @@ -1073,6 +1073,7 @@ ARRAY FILEATTRIBUTES[0:30] ; 01303500 THE LAST CHARACTER IN THE TAPE AND CARD BUFFERS. MAXTLCR 01336000 IS THE MAXIMUM OF TLCR WHEN THE INPUT IS BLOCKED; 01337000 DEFINE BUFFSIZE = 56#; 01338000 + 01339000 INTEGER GTIX; 01339050 ARRAY TEN[0:69]; 01340000 INTEGER NOOFARRAYS; COMMENT NOOFARRAYS IS THE SUM OF ARRAYS 01340050 @@ -1097,15 +1098,15 @@ ARRAY FILEATTRIBUTES[0:30] ; 01303500 28-37 SEGMENT NUMBER 01355000 38-47 ZERO 01356000 TYPE 2 ENTRY 01357000 - BIT POSITION KIND OF ENTRY 01358000 - 0 EMPTY 01359000 - 1 ON IFF TYPE 2 (DATA) SEGMENT 01360000 - 2 ON IFF INTRINSIC PROCEDURE 01361000 - 3 ON IFF "PSEUDO-SAVE" SEGMENT 01361050 - 4-12 EMPTY 01361100 - 13-27 DISK ADDRESS OR INTRINSIC NUMBER 01361200 - 28-37 SEGMENT NUMBER 01361300 - 38-47 NUMBER OF WORDS IN SEGMENT 01362000 + BIT POSITION KIND OF ENTRY 01358000 + 0 EMPTY 01359000 + 1 ON IFF TYPE 2 (DATA) SEGMENT 01360000 + 2 ON IFF INTRINSIC PROCEDURE 01361000 + 3 ON IFF "PSEUDO-SAVE" SEGMENT 01361050 + 4-12 EMPTY 01361100 + 13-27 DISK ADDRESS OR INTRINSIC NUMBER 01361200 + 28-37 SEGMENT NUMBER 01361300 + 38-47 NUMBER OF WORDS IN SEGMENT 01362000 THERE IS ONLY ONE TYPE 2 ENTRY PER SEGMENT.THE TYPE 2 ENTRY 01363000 IS DISTINGUISHED BY THE NON ZERO FIELD IN BITS 38-47. THIS 01364000 ENTRY IS USED TO BUILD THE DRUM DESCRIPTOR IN THE SEGMENT 01365000 @@ -1121,12 +1122,12 @@ COMMENT THE FORMAT OF SEGMENT DICTIONARY AND PRT ENTRIES AT THE END OF 01367010 [3:1] EMPTY (USED BY MCP PRESENCE-BIT ROUTINE) 01367075 [4:1] ON IFF "PSEUDO-SAVE" SEGMENT 01367080 [5:1] EMPTY (USED BY MCP OVERLAY ROUTINE) 01367085 - [8:10] R-RELATIVE LINK TO PRT ENTRY FOR THIS SEGMENT 01367090 + [8:10] R-RELATIVE LINK TO A PRT ENTRY FOR THIS SEGMENT 01367090 [18:15] SIZE (NOT USED FOR INTRINSICS) 01367100 [33:15] DISK ADDRESS OR INTRINSIC NUMBER 01367110 PRT ENTRY (IE., PROGRAM DESCRIPTOR FOR SEGMENT NUMBER I) 01367120 - BIT POSITIONS CONTENTS OF FIELD 01367130 - [0:4] 1101 (BINARY) NON-PRESENT PROG, DESC. IDBITS 01367140 + BIT POSITIONS CONTENTS OF FIELD 01367130 + [0:4] 1101(BINARY) NON-PRESENT PROG. DESC. ID BITS 01367140 [4:2] MODE AND ARGUMENT BITS 01367150 [6:1] STOPPER (ON IFF THIS ENTRY LINKS TO SEG. DICT.) 01367160 [7:11] IF [6:1] THEN I ELSE R-RELATIVE LINK TO ANOTHER 01367170 @@ -1144,7 +1145,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:01367210 6 SEGMENT NUMBER OF FIRST SEGMENT TO EXECUTE (IE., 1) 01367290 7 N 01367300 . O U 01367310 - . T S 01367320 + . T S 01367320 . E 01367330 29 D; 01367340 INTEGER PDINX;COMMENT THIS IS THE INDEX FOR PDPRT; 01368000 @@ -1228,8 +1229,8 @@ DEFINE FS = 1#, FP = 2#, FL = 3#, FR = 4#, FA = 5#, 01420000 FP MEANS FROM PRIMARY, 01425000 FL MEANS FROM LIST, 01426000 FR MEANS FROM FOR, 01427000 - FIO MEANS FROM IODEC. 01427250 - FA MEANS FROM ACTUALPARAPART. 01427500 + FIO MEANS FROM IODEC, 01427250 + FA MEANS FROM ACTUALPARAPART, 01427500 FI MEANS FUNNY CALL FROM STATUS (IMPFUN); 01427600 INTEGER L; 01428000 COMMENT L IS THE LOCATION OF THE NEXT SYLLABLE TO BE EMITTED; 01429000 @@ -1251,7 +1252,7 @@ DEFINE FS = 1#, FP = 2#, FL = 3#, FR = 4#, FA = 5#, 01420000 STACK. SEE FOR EXAMPLE THE ARRAY DECLARATIONS. 01445000 LSTRTN IS A CELL USED AS LINKAGE BETWEEN A LIST AND 01446000 THE I-O FORMATING ROUTINES. THE FIRST SYLLABLES EXECUTED 01447000 - BY A LIST ARE: 1) OPDC LSTRTN, 2) BFW, THIS CARRIES YOU 01448000 + BY A LIST ARE: 1) OPDC LSTRTN, 2) BFW. THIS CARRIES YOU 01448000 TO THE PROPER ITEM IN THE LIST. THE FORMATING ROUTINES 01449000 SET LSTRTN INITIALLY TO ZERO. THE LIST ITSELF UPDATES 01450000 LSTRTN. THE LIST EXHAUSTED FLAG IS -1; 01451000 @@ -1263,38 +1264,38 @@ DEFINE FS = 1#, FP = 2#, FL = 3#, FR = 4#, FA = 5#, 01420000 BOOLEAN TB1; 01457000 COMMENT TB1 IS A TEMPORARY BOOLEAN VARIABLE; 01458000 INTEGER JUMPCTR; 01459000 - COMMENT JUMPCTR IS A VARIABLE USED FOR COMMUNICATION BETWEEN BLOCK 01460000 - AND GENGO. IT GIVES HIGHEST LEVEL TO WHICH A JUMP HAS 01461000 - BEEN MADE FROM WITHIN A THE PRESENTLY BEING COMPILED 01462000 - SEGMENT. THE BLOCK COMPILES CODE TO INCREMENT AND DECRE- 01463000 - MENT THE BLOCKCTR ON THE BASIS OF JUMPCTR AT COMPLETION 01464000 - OF COMPILATION OF A SEGMENT - I.E. THE BLOCKCTR IS TALLIED 01465000 - IF LEVEL = JUMPCTR; 01466000 -BOOLEAN GOTOG; 01467000 - COMMENT GOTOG IS SET FALSE BY GOSTMT. DEXP SETS GOTOG TRUE IF ANY 01468000 - LABEL OR SWITCH IS NON LOCAL. GOSTMT FINDS OUT BY THIS 01469000 - MEANS WHETHER OR NOT A CALL ON MCP IS NECESSARY; 01470000 -REAL STLB; 01471000 - COMMENT STLB IS USED BY VARIABLE AND ACTUALPARAPART TO COMMUNICATE 01472000 - THE LOWER BOUND INFORMATION FOR THE LAST DIMENSION OF THE 01473000 - ARRAY INVOLVED IN A ROW DESIGNATOR. THE FORMAT OF THE 01474000 - INFORMATION IS THAT OF INFO. STLB IS ALSO SOMETIMES USED 01475000 - FOR TEMPORARY STORAGE; 01476000 -DEFINE BUMPL = L~L+2#; 01477000 - COMMENT BUMPL IS USED MOSTLY TO PREPARE A FORWARD JUMP; 01478000 -DEFINE IDMAX = LABELID#; 01479000 - COMMENT IDMAX IS THE MAXIMUM CLASS NUMBER FOR IDENTIFIERS; 01480000 -INTEGER DEFINECTR,DEFINEINDEX; 01481000 -ALPHA ARRAY DEFINFO[0:89]; 01481100 -ALPHA ARRAY TEXT[0:31,0:255]; 01481200 -INTEGER DEFSTACKHEAD; % STACKHEAD FOR DEFINE PARAMETERS 01481300 -INTEGER NEXTTEXT; % NEDEX OF NEXT DEFINE TEXT 01481400 - REAL JOINFO, COMMENT POINTS TO PSEUDO LABEL FOR JUMP OUTS; 01482000 - LPRT, COMMENT SHOWS LOCATION OF THE LAST LABEL IN THE PRT ; 01483000 - NESTLEVEL, COMMENT COUNTS NESTING FOR GO TO AND JUMP OUTS; 01484000 - JUMPLEVEL; COMMENT NUMBER OF LEVELS TO BE JUMPED OUT; 01485000 - COMMENT THE REALS ABOVE ARE FOR STREAM STATEMENT; 01486000 - ARRAY MACRO[0:35]; 01487000 + COMMENT JUMPCTR IS A VARIABLE USED FOR COMMUNICATION BETWEEN BLOCK01460000 + AND GENGO. IT GIVES HIGHEST LEVEL TO WHICH A JUMP HAS 01461000 + BEEN MADE FROM WITHIN A THE PRESENTLY BEING COMPILED 01462000 + SEGMENT. THE BLOCK COMPILES CODE TO INCREMENT AND DECRE- 01463000 + MENT THE BLOCKCTR ON THE BASIS OF JUMPCTR AT COMPLETION 01464000 + OF COMPILATION OF A SEGMENT - I.E. THE BLOCKCTR IS TALLIED01465000 + IF LEVEL = JUMPCTR; 01466000 + BOOLEAN GOTOG; 01467000 + COMMENT GOTOG IS SET FALSE BY GOSTMT. DEXP SETS GOTOG TRUE IF ANY01468000 + LABEL OR SWITCH IS NON LOCAL. GOSTMT FINDS OUT BY THIS 01469000 + MEANS WHETHER OR NOT A CALL ON MCP IS NECESSARY; 01470000 + REAL STLB; 01471000 + COMMENT STLB IS USED BY VARIABLE AND ACTUALPARAPART TO COMMUNICATE 01472000 + THE LOWER BOUND INFORMATION FOR THE LAST DIMENSION OF THE 01473000 + ARRAY INVOLVED IN A ROW DESIGNATOR. THE FORMAT OF THE 01474000 + INFORMATION IS THAT OF INFO. STLB IS ALSO SOMETIMES USED 01475000 + FOR TEMPORARY STORAGE; 01476000 + DEFINE BUMPL = L~L+2#; 01477000 + COMMENT BUMPL IS USED MOSTLY TO PREPARE A FORWARD JUMP; 01478000 + DEFINE IDMAX = LABELID#; 01479000 + COMMENT IDMAX IS THE MAXIMUM CLASS NUMBER FOR IDENTIFIERS; 01480000 + INTEGER DEFINECTR,DEFINEINDEX; 01481000 + ALPHA ARRAY DEFINFO[0:89]; 01481100 + ALPHA ARRAY TEXT[0:31,0:255]; 01481200 + INTEGER DEFSTACKHEAD; % STACKHEAD FOR DEFINE PARAMETERS 01481300 + INTEGER NEXTTEXT; % NEDEX OF NEXT DEFINE TEXT 01481400 + REAL JOINFO, COMMENT POINTS TO PSEUDO LABEL FOR JUMP OUTS; 01482000 + LPRT, COMMENT SHOWS LOCATION OF THE LAST LABEL IN THE PRT ; 01483000 + NESTLEVEL, COMMENT COUNTS NESTING FOR GO TO AND JUMP OUTS;01484000 + JUMPLEVEL; COMMENT NUMBER OF LEVELS TO BE JUMPED OUT; 01485000 + COMMENT THE REALS ABOVE ARE FOR STREAM STATEMENT; 01486000 + ARRAY MACRO[0:35]; 01487000 COMMENT MACRO IS FILLED WITH SYLLABLES FOR STREAM STATEMENT; 01488000 REAL P, COMMENT CONTAINS NUMBER OF FORMALS FOR STREAM PROCS; 01489000 Z; COMMENT CONTAINS 1ST WORD OF INFO FOR STREAM FUNCTIONS; 01490000 @@ -1372,7 +1373,7 @@ DEFINE DUMPOR = [24:11]#; COMMENT THE DUMPOR FIELD IN THE FIRST 01552000 ARRAY LIN[0:20]; COMMENT PRINT OUTPUT BUILT IN LIN; 01559010 INTEGER DA; 01559020 SAVE FILE OUT NEWTAPE DISK SERIAL [20:2400] (RR5,RR6,RR7,SAVE 1); 01560000 - FILE IN TAPE "OCRDIMG" (2,RR8,RR9); 01561000 + FILE IN TAPE "0CRDIMG" (2,RR8,RR9); 01561000 SAVE FILE OUT PNCH DISK SERIAL [20:2400](2,10,RR10,SAVE 1); 01561005 COMMENT THE FOLLOWING ARE DECLARATIONS FOR THE SYMBOLIC LIBRARIES; 01561010 FILE IN CASTA DISK SERIAL "CASTA" "LIBRARY"(1,BUFFSIZE); 01561020 @@ -1391,10 +1392,10 @@ ARRAY LIBARRAY[0:24]; % LIBARRAY IS USED TO KEEP INFORMATION AS 01561065 NEXTENTRY =[32:16]#; COMMENT SECOND WORD IS THE $$ SEQ NO; 01561100 DEFINE NCRLINK = [18:15]#, LCRLINK= [33:15]#; 01561110 INTEGER LIBINDEX,LTLCR,MAXLTLCR,FILEINX,SEQSUM; 01561120 - COMMENT LIBINDEX IS A INDEX INTO LIBRARRAY 01561130 + COMMENT LIBINDEX IS A INDEX INTO LIBARRAY 01561130 INDICATING LAST ENTRY MADE IN THE ARRAY. 01561140 LTLCR AND MAXLTLCR CORRESPOND TO TLCR AND 01561150 - MAXTLCR USED IN READACARD, FILEINX IS THE 01561160 + MAXTLCR USED IN READACARD. FILEINX IS THE 01561160 LIBRARY SWITCH FILE INDEX. SEQSUM IS THE 01561170 SUM OF BASE SEQUENCE NUMBERS AT THIS POINT. 01561180 FINISHPT IS THE LAST RECORD NUMBER TO COMPILE; 01561190 @@ -1402,28 +1403,28 @@ ARRAY LIBARRAY[0:24]; % LIBARRAY IS USED TO KEEP INFORMATION AS 01561065 BOOLEAN FIRSTIMEX; COMMENT USED TO INDICATE WHEN 01561202 PROCESSING FIRST CARDIMAGE OF A NESTED CALL; 01561204 BOOLEAN CARDCALL; COMMENT TRUE IF NESTED CALL CAME FROM THE 01561206 - CARD READER ELSE FALSE; 01561208 - COMMENT RECOUNT IS THE LIBRARY RECORD COUNT; 01561210 + CARD READER ELSE FALSE; 01561208 + COMMENT RECOUNT IS THE LIBRARY RECORD COUNT; 01561210 BOOLEAN NORELEASE; COMMENT NORELEASE ALLOWS PRINTING 01561215 OF CURRENT BUFFER WHEN COMMING OUT OF LIBRARIES; 01561217 DEFINE NOROWS = 3#; COMMENT THIS IS THE MAXIMUM NUMBER OF DIRECTORY 01561220 BLOCKS PER LIBRARY TAPE; 01561230 ARRAY DIRECTORY[0:3|NOROWS-1, 0:55]; COMMENT THIS IS THE ACTUAL 01561240 DIRECTORY AND IS MADE UP AS FOLLOWS: 01561250 - A: 1 CAR- NUMBER OF DIRECTORY BLOCKS. 01561260 + A: 1 CAR- NUMBER OF DIRECTORY BLOCKS, 01561260 B: 1 CHR - NUMBER OF CHARACTERS IN THE LIBRARY 01561270 - IDENTIFIER NAME. 01561280 - C N CHR - ACTUAL ALPHA OF THE LIBRARY IDENTIFIER. 01561290 + IDENTIFIER NAME, 01561280 + C N CHR - ACTUAL ALPHA OF THE LIBRARY IDENTIFIER, 01561290 D: 3 CHR - STARTING RECORD NUMBER FOR THE ACTUAL 01561300 ENTRIES. 01561310 ITEMS B,C,D ARE THE REPEATED FOR EACH IDENTIFIER. 01561320 LIBRARY DIRECTORY ENTRIES ARE NOT SPLIT ACROSS 01561330 DIRECTORY BLOCKS. 01561340 ITEM B WHEN 0 INDICATES THE END OF THE DIRECTORY 01561350 - AND THE ITEM D WILL FOLLOW INDICATING THE 01561360 + AND THEN ITEM D WILL FOLLOW INDICATING THE 01561360 LAST SEQUENCE NUMBER + 1 PUT ON THE LIBRARY. 01561370 ITEM B WHEN INDICATS LAST DIRECTORY ITEM IN THIS 01561380 - BLOCK. 01561390 + BLOCK, 01561390 IN ORDER TO CHANGE: 01561400 NUMBER OF LIBRARY TAPES - ADD FILE DECLARATIONS AT 01561410 01561020 - 01561050. 01561420 @@ -1459,7 +1460,7 @@ REAL STREAM PROCEDURE CMPD(A,B); %107-01561620 INTEGER TCOUNT; 01566000 COMMENT TCOUNT IS A VARIABLE WHICH HOLDS A PREVIOUS VALUE OF COUNT 01567000 FOR THE USE OF CONVERT; 01568000 - REAL STACKCT; %A01568500 + REAL STACKCT; %A 01568500 DEFINE LOGI =443#, 01569000 EXPI =440#, 01570000 XTOTHEI =480#, 01571000 @@ -1565,7 +1566,7 @@ DEFINE PURPT=[4:8]#,SECRET=2#; 01628000 LNG = 19#, COMMENT (0115) 7.4.3.4 LOGICAL NEGATE; 01657000 LOD = 260#, COMMENT (2021) 7.4.10.1 LOAD OPERATOR; 01658000 LOR = 35#, COMMENT (0215) 7.4.3.2 LOGICAL OR; 01659000 - LQV = 131#, COMMENT (1015) 7.4.3.3 LOGICAL EQUIVALENCE; 01660000 + LQV = 131#, COMMENT (1015) 7.4.3.3 LOGICAL EQIVALENCE; 01660000 LSS = 549#, COMMENT (4225) 7.4.4.5 LESS THAN; 01661000 MDS = 515#, COMMENT (4015) 7.4.7.7 SET FLAG BIT; 01661100 MKS = 72#, COMMENT (0441) 7.4.8.1 MARK STACK; 01662000 @@ -1600,7 +1601,7 @@ INTEGER F; 01688000 BEGIN LOCAL T1,T2,T3; 01688020 SI~EDOC;T1~SI;SI~TEDOC;T2~SI;SI~LOC EDOC;SI~SI+3;DI~LOC T3; 01688030 DI~DI+5;SKIP 3 DB;15(IF SB THEN DS~1 SET ELSE DS~1 RESET; 01688040 - SKIP 1 SB);SI~LOC EDOC;DI~LOC T2; DS~5 CHR;3(IF SB THEN DS~ 01688050 + SKIP 1 SB);SI~LOC EDOC;DI~LOC T2; DS~ 5 CHR;3(IF SB THEN DS~ 01688050 1 SET ELSE DS ~ 1 RESET; SKIP 1 SB);DI~T3;SI~LOC T2;DS~WDS; 01688060 DI~LOC T3;DI~DI+5;SKIP 3 DB;SI~LOC TEDOC;SI~SI+3;15(IF SB 01688070 THEN DS~1 SET ELSE DS~1 RESET;SKIP 1 SB);SI~ LOC TEDOC;DI~LOC 01688080 @@ -1650,7 +1651,7 @@ DEFINE CPLUS2 = 770#; COMMENT CPLUS1 AND CPLUS2 ARE EXPLICIT CONSTANTS 01714000 COMMENT LSTR GIVES THE LOCATION OF FIRST SYLABLE OF A LIST. IT IS 01724000 USED BY LISTELEMENT TO COMPUTE VALUES TO STORE IS LSTRTN; 01725000 PROCEDURE SCANNER; FORWARD; 01730000 - COMMENT MKABS CONVERTS A DESCRIPTOR TO AN ABSOLTE ADDRESS; 01732000 + COMMENT MKABS CONVERTS A DESCRIPTOR TO AN ABSOLUTE ADDRESS; 01732000 REAL STREAM PROCEDURE MKABS(A); 01733000 BEGIN DI ~ A; MKABS ~ DI END MKABS; 01734000 STREAM PROCEDURE MOVE(W)"WORDS FROM"(A)"TO"(B); VALUE W; 01735000 @@ -1692,7 +1693,7 @@ STREAM PROCEDURE SEQUENCEWARNING(L); 01742100 NED: TALLY~TALLY+1; 01743100 NONBLANK~TALLY 01743200 END NONBLANK; 01743300 - INTEGER FAULTLEVEL; COMMENT THIS IS FOR THE RUN0TIME ERROR KLUDGE-- 01750000 + INTEGER FAULTLEVEL; COMMENT THIS IS FOR THE RUN-TIME ERROR KLUDGE-- 01750000 GIVES THE LOWEST LEVEL AT WHICH THERE IS AN ACTIVE 01751000 FAULT DECL OR LABEL USED IN A FAULT STATEMENT; 01752000 BOOLEAN FAULTOG; COMMENT FAULTSTMT USES THIS TO TELL DEXP TO WORRY 01753000 @@ -1727,7 +1728,7 @@ TRANS: 01778000 SI:=NCR; DI:=VP; DI:=DI+8; % RESTORE POINTERS. 01780000 N:=TALLY; DI:=DI-N; DS:=N CHR; 01781000 DI:=DI-8; VP:=DI; % I.E., "LOC VP":=DI. 01782000 - DI:=VR; SI:=LOC VP; DS:=WDS; % ADDRESS OF VOID RANGE. 01783000 + DI:=VR; SI:=LOC VP; DS:=WDS;% ADDRESS OF VOID RANGE. 01783000 END OF GETVOID; 01784000 REAL VOIDCR,VOIDPLACE; 01785000 BOOLEAN SORTMERGETOG; 01786000 @@ -1747,10 +1748,9 @@ PROCEDURE DATIME; 01820000 WRITE(LINE, 01829000 $ SET OMIT = NOT ALGOL 01829900 0 THEN BEGIN GTI1~LIBARRAY[LIBINDEX].NEXTENTRY; 02013567 DIRECTORY[FILEINX|3,0]~RECOUNT; RECOUNT~GTI1+2; END ELSE 02013568 DIRECTORY[FILEINX|3,0] ~ RECOUNT; 02013570 @@ -2064,9 +2065,9 @@ PROCEDURE SEARCHLIB(DOLLAR); VALUE DOLLAR; BOOLEAN DOLLAR; 02013165 FINISHPT ~ LIBARRAY[LIBINDEX].STOPPOINT; 02013600 IF LIBINDEX ! 0 THEN 02013610 MOVE(1,LIBARRAY[LIBINDEX -3 +1], SEQSUM); 02013615 - IF LASTUSED{2 OR LASTUSED=5 THEN LCR:=MKABS(CBUFF[0]) ELSE 02013617 + IF LASTUSED{2 OR LASTUSED=5 THEN NCR:=MKABS(CBUFF[0]) ELSE 02013617 NCR ~ LIBARRAY[LIBINDEX+2].NCRLINK; 02013620 - IF LASTUSED{2 OR LASTUSED=5 THEN LCR:=MKABS(CBUFF[9]) ELSE 02013621 + IF LASTUSED{2 OR LASTUSED=5 THEN LCR:=MKABS(CBUFF[9]) ELSE 02013621 LCR ~ LIBARRAY[LIBINDEX+2].LCRLINK; 02013625 NORELEASE~TRUE; 02013627 IF LASTUSED=6 THEN FIRSTIMEX~TRUE; 02013628 @@ -2157,7 +2158,7 @@ COMMENT "SCAN" IS THE STREAM PROCEDURE WHICH DOES THE ACTUAL SCANNING. 02067000 IT IS DRIVEN BY A SMALL WORD MODE PROCEDURE CALLED "SCANNER", 02067500 WHICH CHECKS FOR A QUANTITY BEING BROKEN ACROSS A CARD. "SCAN" 02068000 IS CONTROLLED BY A VARIABLE CALLED "RESULT". "SCAN" ALSO 02068500 - INFORMS THE WORLD OF ITS ACTION BY MEANS OF THE SAME VARIABLE, 02069000 + INFORMS THE WORLD OF ITS ACTION BY MEANS OF THE SAME VARIABLE. 02069000 HENCE THE VARIABLE "RESULT" IS PASSED BY BOTH NAME AND VALUE. 02069500 THE MEANING OF "RESULT" AS INPUT IS: 02070000 VALUE MEANING 02070500 @@ -2189,7 +2190,7 @@ COMMENT "SCAN" IS THE STREAM PROCEDURE WHICH DOES THE ACTUAL SCANNING. 02067000 "COUNT" IS THE VARIABLE THAT GIVES THE NUMBER OF CHARACTERS 02083500 "SCAN" HAS PUT INTO THE "ACCUMULATOR". SINCE "SCAN" NEEDS 02084000 THE VALUE SO THAT IT CAN PUT MORE CHARACTERS INTO THE "ACCUM- 02084500 - ULATOR" AND NEEDS TO UPDATE "COUNT" FOR THE OUTSIDE WORLD. 02085000 + ULATOR" AND NEEDS TO UPDATE "COUNT" FOR THE OUTSIDE WORLD, 02085000 "COUNT" IS PASSED BY BOTH NAME AND VALUE. IT IS ALSO 02085500 CONVENIENT TO HAVE (63-COUNT). THIS IS CALLED "COMCOUNT". 02086000 "NCR" (NEXT CHARACTER TO BE SCANNED) IS ALSO PASSED BY 02086500 @@ -2288,7 +2289,7 @@ L: 02128000 READACARD; 02133500 NORELEASE:=FALSE; 02134000 END; 02134500 - GO TO L; % GO DIRECTLY TO L, DO NOT PASS GO, 02135500 + GO TO L; % GO DIRECTLY TO L. DO NOT PASS GO, 02135500 % DO NOT COLLECT $200. 02136000 END; 02136500 END SCANNER; 02137000 @@ -2349,7 +2350,7 @@ PROCEDURE OUTPUTSOURCE; 02190500 CHANGESEQ(GTI1,LCR); 02193250 END; 02193500 IF NEWTOG THEN 02193750 - IF INSERTDEPTH > 0 AND INSERTCOP=1 OR INSERTDEPTH=0 THEN %107- 02193800 + IF INSERTDEPTH > 0 AND INSERTCOP=1 OR INSERTDEPTH=0 THEN %107-02193800 IF WRITNEW(LIN,FCR) THEN WRITE(NEWTAPE,10,LIN[*]); 02194000 IF OMITTING THEN IF NOT LISTATOG THEN GO AWAY; 02194250 GO SW[LASTUSED]; 02194500 @@ -2434,7 +2435,7 @@ END; %105-02202090 SWITCH USESWITCH := CARDONLY,CARDLAST,TAPELAST,FIRSTTIME, 02210750 LIBCLAST, LIBTLAST, COPYLIB; %107-02211000 BOOLEAN DOLLAR2TOG; 02211250 - IF ERRORCOUNT}ERRMAX THEN ERR(611);% ERR LIMIT EXCEEDED - STOP. 02211500 + IF ERRORCOUNT}ERRMAX THEN ERR(611); % ERR LIMIT EXCEEDED - STOP. 02211500 USETHESWITCH: 02211750 GO TO USESWITCH[LASTUSED]; 02212000 MOVE(1,TEXT[LASTUSED.LINKR,LASTUSED.LINKC], 02212250 @@ -2467,7 +2468,7 @@ EOF: 02217000 TURNONSTOPLIGHT("%",CLCR-8); 02218250 % 02218400 GO COMPAR; 02218500 -COMMENT THIS RELEASES THE PREVIOUS CARD FROM THE CARD READER AND 02218750 +COMMENT THIS RELEASES THE PREVIOUS CARD FROM CARD READER AND 02218750 SETS UP CLCR; 02219000 TAPELAST: 02219250 READTAPE(TLCR,MAXTLCR,FALSE); GO TO COMPAR; 02219500 @@ -2510,7 +2511,7 @@ COMPAR: 02224250 EXIT: 02225000 NCR := FCR:= LCR - 9; 02225250 COMMENT SETS UP NCR AND FCR; 02225500 - IF CHECKTOG AND EXAMIN(FCR)!"$" THEN %$-CARDS DON"T COUNT. 02225750 + IF CHECKTOG AND EXAMIN(FCR)!"$" THEN % $-CARDS DON"T COUNT. 02225750 IF COMPARE(MKABS(INFO[LASTSEQROW,LASTSEQUENCE]),LCR)=1 THEN 02226000 IF SEQERRTOG THEN BEGIN FLAG(610); 02226250 NUMSEQUENCEERRORS:=NUMSEQUENCEERRORS+1;END 02226300 @@ -2775,7 +2776,7 @@ XMODE1: % NOT FIRST OPTION AND NOT BEING SET, RESET, OR POPPED. 02333000 OPTIONS[OPINX+1]:=REAL(TRUE); 02334000 IF XBIT69 THEN FLAG(269) 02824000 @@ -3320,7 +3321,7 @@ FINISHNUMBER: 02847000 COMMENT THE CODE BETWEEN IDENT AND COMPOST DOES A LOOKUP IN INFO. 02853000 IF QUANTITY IS NOT FOUND THE ELBAT WORD EXPECTS TO BE 02854000 ZERO. THE SCRAMBLE FOR APPROPRIATE STACK IS FIRST THING 02855000 - TO BE DONE. THEN A CHECK IS MADE, USING SUPERSTACK. 02856000 + TO BE DONE. THEN A CHECK IS MADE, USING SUPERSTACK, 02856000 TO DETERMINE WHETHER THE IDENTIFIER IS ONE OF OUR 02857000 COMMON RESERVED WORDS. IF IT IS, EXIT IS MADE TO 02858000 COMPLETE, OTHERWISE THE LOOP BETWEEN COMPOST AND 02859000 @@ -3483,7 +3484,7 @@ PROCEDURE NEXTENT; 02932000 BEGIN LABEL DEBLANK; 02933000 COUNT:=ACCUM[1]:=0; LASTELCLASS:=ELCLASS; 02934000 DEBLANK: 02935000 - IF EXAMIN(NCR)=" "THEN 02936000 + IF EXAMIN(NCR)=" " THEN 02936000 BEGIN 02937000 RESULT:=7; SCANNER; 02938000 END; 02939000 @@ -3693,12 +3694,12 @@ PROCEDURE EMITC(REPEAT,OPERATOR); VALUE REPEAT,OPERATOR; 04010000 COMMENT EMITUP IS RESPONSIBLE FOR COMPILING THE CODE TO RAISE AN 04035000 EXPRESSION TO SOME POWER IF THE EXPONENT IS A LITERAL 04036000 OR A NEGATIVE LITERAL THEN IN LINE CODE IS COMPILED. THIS04037000 - CODE CONSISTS OF A SERIES OF DUPS AND MULS, AS WITH 04038000 + CODE CONSISTS OF A SERIES OF DUPS AND MULS. AS WITH 04038000 EMITLNG CARE MUST BE TAKEN TO AVOID CONFUSION WITH LINKS 04039000 AND CONDITIONAL EXPRESSIONS. IF THESE SPECIAL CASES DO 04040000 NOT HOLD, THEN A CALL ON AN INTRINSIC PROCEDURE, XTOTHEI, 04041000 IS CONSTRUCTED. XTOTHEI PRODUCES A SERIES OF MULTIPLIES 04042000 - (APPROXIMATELY LN I MULTIPLIES) IF I IS AN INTEGER. 04043000 + (APROXIMATELY LN I MULTIPLIES) IF I IS AN INTEGER. 04043000 OTHERWISE IT CALLS LN AND EXP; 04044000 PROCEDURE EMITUP; 04045000 BEGIN INTEGER BACKUP, CTR; 04046000 @@ -3785,7 +3786,7 @@ PROCEDURE EMITC(REPEAT,OPERATOR); VALUE REPEAT,OPERATOR; 04010000 EMITNUM(ABS(GT1)); 04121000 EMITO(BRANCH&(REAL(GT1} 0)+1)[42:46:2]); 04122000 IF BOOLEAN(BRANCH.[38:1]) THEN DIALA ~ DIALB ~ 0; 04123000 - L ~ TL; 04124000 + L ~ TL 04124000 END EMITB; 04125000 COMMENT DEBUGWORD FORMATS TWO FIELDS FOR DEBUGGING OUTPUT IN 04126000 OCTAL, NAMELY : 04127000 @@ -3888,7 +3889,7 @@ PROCEDURE EMITC(REPEAT,OPERATOR); VALUE REPEAT,OPERATOR; 04010000 END; 04224000 FINISHED:END EMITNUM ; 04225000 COMMENT SEARCH PERFORMS A BINARY SEARCH ON THE COP AND WOP 04226000 - ARRAYS, GIVEN THE OPERATOR BITS SEARCH YIELDS THE BCD 04227000 + ARRAYS. GIVEN THE OPERATOR BITS SEARCH YIELDS THE BCD 04227000 MNEUMONIC FOR THAT OPERATOR. IF THE OPERATOR CANNOT 04228000 BE FOUND SEARCH YIELDS BLANKS. 04229000 NOTE: DIA,DIB,TRB ARE RETURNED AS BLANKS. ; 04230000 @@ -3902,14 +3903,15 @@ PROCEDURE EMITC(REPEAT,OPERATOR); VALUE REPEAT,OPERATOR; 04010000 N ~ 64 ; 04238000 FOR I ~ 66 STEP IF Q[I] SUBLEVEL+1 THEN 04611000 BEGIN 04612000 EMIT(0); 04613000 - EMITPAIR(A,STD); 04614000 + EMITPAIR(A, STD); 04614000 END; 04615000 EMITN(A); 04616000 END CHECKDISJOINT; 04617000 @@ -4066,7 +4069,7 @@ END CHECKDISJOINT; 04617000 COMMENT PUT PLACES A WORD INTO INFO; 05007000 PROCEDURE PUT(WORD,INDEX); VALUE WORD,INDEX; REAL WORD,INDEX; 05008000 INFO[INDEX.LINKR,INDEX.LINKC] ~ WORD; 05009000 - COMMENT FLAG FLAGS ERROR MESSAGES, COUNTS THEM AND SUPRESS FUTURE 05010000 + COMMENT FLAG FLAGS ERROR MESSAGES, COUNTS THEM AND SUPPRESS FUTURE 05010000 ERROR MESSAGES UNTIL THE COMPILER THINKS IT HAS RECOVERED;05011000 PROCEDURE FLAG(ERRNUM); VALUE ERRNUM; INTEGER ERRNUM; 05012000 BEGIN 05013000 @@ -4075,9 +4078,9 @@ END CHECKDISJOINT; 04617000 STREAM PROCEDURE WRITERROR(RMT,ERRNUM,ACCUM,LINE,COUNT,LSTSEQ); 05016000 VALUE ERRNUM,COUNT; 05017000 BEGIN 05018000 - DI:=LINE; 11(DS:=8 LIT " "); % BLANK LINE 05019000 + DI:=LINE; 11(DS:=8 LIT " "); %BLANK LINE 05019000 SI ~LSTSEQ; SI ~ SI-8; DS ~WDS; 05020000 - DS:=24 LIT " <<<<<<<<<<<<<<<<<<<<"; % SET FLAG 05021000 + DS:=24 LIT " <<<<<<<<<<<<<<<<<<<<"; %SET FLAG 05021000 SI ~ LSTSEQ; DI ~ LSTSEQ; DI ~ DI-8; DS ~ WDS; 05023000 DI~LINE; SI~RMT; SI~SI+7; 05024000 IF SC="1" THEN 05024100 @@ -4100,8 +4103,8 @@ END CHECKDISJOINT; 04617000 IF NOT(LISTER OR REMOTOG) THEN 05036000 BEGIN 05037000 EDITLINE(LIN,FCR," ",0,0,MEDIUM,0); %114-05038000 - MOVE(1,INFO[LASTSEQROW,LASTSEQUENCE],LIN[12]); 05039000 - IF NOHEADING THEN DATIME; WRITELINE; 05039500 + MOVE(1,INFO[LASTSEQROW,LASTSEQUENCE],LIN[12]); 05039500 + IF NOHEADING THEN DATIME; WRITELINE; 05039600 END; 05041000 COMMENT PRINT CARDIMAGE IF WE ARE NOT LISTING; 05042000 ACCUM[1] ~ Q; COMMENT RESTORE ACCUMULATOR; 05043000 @@ -4109,7 +4112,7 @@ END CHECKDISJOINT; 04617000 INFO[LASTSEQROW,LASTSEQUENCE]); 05045000 IF REMOTOG THEN WRITE(REMOTE,10,LIN[*]); 05045900 IF NOT NOHEADING THEN BEGIN WRITE (LINE); WRITELINE; END; 05046000 - ERRORTOG ~ FALSE; COMMENT INHIBIT MESSAGES; 05047000 + ERRORTOG ~ FALSE; COMMENT INHIBIT MESSAGES; 05047000 IF PUNCHTOG THEN 05048000 BEGIN 05049000 STREAM PROCEDURE PUNCH(FL,ST); 05050000 @@ -4128,13 +4131,13 @@ IF PUNCHTOG THEN 05048000 COMMENT ERR,IS THE SAME AS FLAG EXCEPT THAT IT MAKES AN ATTEMPT TO 05102000 RECOVER FROM ERROR SITUATIONS BY SEARCHING FOR A 05103000 SEMICOLON, END, OR BEGIN; 05104000 -PROCEDURE ERR(ERRNUM); VALUE ERRNUM; INTEGER ERRNUM; 05105000 - BEGIN FLAG(ERRNUM); 05106000 - I ~ I-1; 05107000 - IF ERRNUM=200 THEN GO TO ENDOFITALL; 05107100 - IF ERRNUM=611 THEN GO TO ENDOFITALL;%ERRMAX EXCEEDED. 05107200 - DO IF STEPI = BEGINV THEN STMT UNTIL 05108000 - ELCLASS = ENDV OR ELCLASS = SEMICOLON END ERR; 05109000 + PROCEDURE ERR(ERRNUM); VALUE ERRNUM; INTEGER ERRNUM; 05105000 + BEGIN FLAG(ERRNUM); 05106000 + I ~ I-1; 05107000 + IF ERRNUM=200 THEN GO TO ENDOFITALL; 05107100 + IF ERRNUM=611 THEN GO TO ENDOFITALL;%ERRMAX EXCEEDED.05107200 + DO IF STEPI = BEGINV THEN STMT UNTIL 05108000 + ELCLASS = ENDV OR ELCLASS = SEMICOLON END ERR; 05109000 DEFINE ERROR = ERR#; COMMENT ERROR IS A SYNONM FOR ERR; 05110000 COMMENT CHECKER IS A SMALL PROCEDURE THAT CHECKS TO SEE THAT THE 05111000 UPLEVEL ADDRESSING CONVENTIONS ARE OBEYED; 05112000 @@ -4191,7 +4194,7 @@ PROCEDURE PASFILE; 05157000 DEFINE LTEMP = RR2#; COMMENT LTEMP IS USED TO HOLD THE L 05163000 REGISTER SETTING FOR THE SAVE OR 05164000 RELEASE LITERAL THAT GETS PASSED TO 05165000 - KEN MYERS; 05166000 + KEN MEYERS; 05166000 EMITO(MKS); L~(LTEMP~L)+1; EMITL(0); 05167000 EMITL(2); CHECKER(ELBATWORD~ELBAT[I]); 05168000 IF RRB1~(RRB2~ ELCLASS = SUPERFILEID)OR 05169000 @@ -4218,7 +4221,7 @@ COMMENT PROCEDURE PASSLIST WILL BRING THE LIST PROGRAM DESCRIPTOR 05187500 PROCEDURE PASSLIST; 05187520 BEGIN 05187530 INTEGER LISTADDRESS; 05187540 -COMMENT PASSLIST ASSUMES I IS POINTING AT LIST ID; 05187550 +COMMENT PASSLIST ASSUMES I POINTING AT LIST ID; 05187550 CHECKER(ELBAT[I]); 05187560 LISTADDRESS:=ELBAT[I].ADDRESS; 05187570 IF ELCLASS = SUPERLISTID THEN % SUBSCRIPTED LIST ID. 05187580 @@ -4285,7 +4288,7 @@ STREAM PROCEDURE DEBUGDESC(LIN,PRT,TYP,RELAD,SGNO); 05237000 SI:=LOC SGNO; SI:=SI+4; DS:=4 CHR; DS:=LIT"."; 05243000 END DEBUGDESC; 05243500 REAL PROCEDURE PROGDESCBLDR(TYPE,RELAD,SPAC); 05245000 - COMMENT THIS PROCEDURE BUILDS PDPRT AS DESCRIBED ABOVE, IT IS 05246000 + COMMENT THIS PROCEDURE BUILDS PDPRT AS DESCRIBED ABOVE.IT IS 05246000 CONCERNED WITH TYPE 1 ENTRIES.THE INFORMATION FURNISHED 05247000 BY PDPRT ALLOWS A DRUM DESCRIPTOR TO BE BUILT FOR EACH 05248000 SEGMENT AND A PSEUDO PROGRAM DESCRIPTOR TO BE BUILT INTO 05249000 @@ -4457,7 +4460,7 @@ INTEGER PROCEDURE GETSPACE(PERMANENT,L); VALUE PERMANENT,L; 05331000 COL ~ COL+35; 05354000 L1: IF REAL(M AND Q) ! 0 05355000 THEN BEGIN 05356000 - IF REAL(BOOLEAN(GS~4294967296-REAL(M)) AND Q) =GS 05357000 + IF REAL(BOOLEAN(GS~4294967296-REAL(M)) AND Q) = GS 05357000 THEN BEGIN 05358000 COL ~ 0; M ~ TRUE; 05359000 IF ROW ~ ROW+1 > 31 05360000 @@ -4479,7 +4482,7 @@ INTEGER PROCEDURE GETSPACE(PERMANENT,L); VALUE PERMANENT,L; 05331000 IF GS > 1023 THEN GS ~ GS-1024; 05376000 IF PRTOG THEN WRITEPRT(IF Q THEN "PRT " ELSE "STACK",L,B2D(GS)); 05376100 END GETSPACE; 05378000 - COMMENT ARRAYCHECK CHECKS A PARAMTER-INFO WORD FOR SORT/MERGE; 05379000 + COMMENT ARRAYCHECK CHECKS A PARAMETER-INFO WORD FOR SORT/MERGE; 05379000 BOOLEAN PROCEDURE ARRAYCHECK(AAW); VALUE AAW; REAL AAW; 05380000 ARRAYCHECK~AAW.CLASSINTARRAYID 05381000 OR AAW.INCR !1; 05382000 @@ -4488,7 +4491,7 @@ INTEGER PROCEDURE GETSPACE(PERMANENT,L); VALUE PERMANENT,L; 05331000 BEGIN IF NOT(COMMACHECK~(STEPI=COMMA)) THEN ERR(350); 05385000 STEPIT 05386000 END COMMACHECK; 05387000 - COMMENT HVCHECK CHECKS VALIDITY OF HIVALU PROCEDURE FOR SORT; 05388000 + COMMENT HVCHECK CHECKS VALIDITY OF HIVALU PROCEDURE FOR SORT; 05388000 BOOLEAN PROCEDURE HVCHECK(ELBW); VALUE ELBW; REAL ELBW; 05389000 IF ELBW.CLASS!PROCID THEN ERR(356) ELSE 05390000 IF BOOLEAN(ELBW.FORMAL) THEN HVCHECK~TRUE ELSE 05390100 @@ -4512,7 +4515,7 @@ INTEGER PROCEDURE GETSPACE(PERMANENT,L); VALUE PERMANENT,L; 05331000 IF ARRAYCHECK(TAKE(GT1+2)) THEN ERR(362) ELSE 05406000 EQLESCHECK~TRUE; 05407000 COMMENT ROUTINES IN THIS SECTION COMPILE CODE FOR ALL EXPRESSIONS;06000000 - COMMENT AEXP IS THE ARITHMETIC EXRESSION ROUTINE; 06001000 + COMMENT AEXP IS THE ARITHMETIC EXPRESSION ROUTINE; 06001000 PROCEDURE AEXP; 06002000 BEGIN 06003000 IF ELCLASS = IFV 06004000 @@ -4528,13 +4531,13 @@ INTEGER PROCEDURE GETSPACE(PERMANENT,L); VALUE PERMANENT,L; 05331000 THEN BEGIN 06014000 STEPIT; 06015000 IF ELBAT[I-1].ADDRESS = ADD THEN PRIMARY 06016000 - ELSE BEGIN 06017000 - PRIMARY; 06018000 - WHILE ELCLASS = FACTOP DO %WF 06019000 - BEGIN STEPIT; PRIMARY; EMITUP END; %WF 06020000 - ENDTOG ~ LINKTOG; EMITO(CHS); 06021000 - LINKTOG ~ ENDTOG; ENDTOG ~ FALSE END END 06022000 - ELSE PRIMARY END ARITHSEC; 06023000 + ELSE BEGIN 06017000 + PRIMARY; 06018000 + WHILE ELCLASS = FACTOP DO %WF 06019000 + BEGIN STEPIT; PRIMARY; EMITUP END; %WF 06020000 + ENDTOG ~ LINKTOG; EMITO(CHS); 06021000 + LINKTOG ~ ENDTOG; ENDTOG ~ FALSE END END 06022000 + ELSE PRIMARY END ARITHSEC; 06023000 COMMENT SIMPARITH COMPILES SIMPLE ARITHMETIC EXPRESSIONS ON THE 06024000 ASSUMPTION THAT AN ARITHMETIC PRIMARY HAS ALREADY BEEN 06025000 COMPILED. IT ALSO HANDLES THE CASE OF A CONCATENATE 06026000 @@ -4565,7 +4568,7 @@ INTEGER PROCEDURE GETSPACE(PERMANENT,L); VALUE PERMANENT,L; 05331000 ELSE BEGIN 06051000 WHILE OPCLASS < ELCLASS DO ARITHCOMP; 06052000 COMMENT THE CLASSES ARE ARRANGED IN ORDER OF HIERARCHY; 06053000 - STACKCT ~ 1; %A06053500 + STACKCT ~ 1; %A 06053500 EMIT(OPERATOR) END 06054000 END UNTIL OPCLASS ! ELCLASS END ARITHCOMP; 06055000 COMMENT IMPFUN HANDLES ALL OF THE SPECIAL FUNCTIONS; 06056000 @@ -4585,13 +4588,13 @@ INTEGER PROCEDURE GETSPACE(PERMANENT,L); VALUE PERMANENT,L; 05331000 IF STEPI!LEFTPAREN THEN ERRX(105); STEPIT ; 06062120 IF T2<24 THEN 06062125 BEGIN 06062130 -L3: IF TABLE(I+1)=COMMA THEN 06062135 + L3: IF TABLE(I+1)=COMMA THEN 06062135 IF ELCLASS>BOOID AND ELCLASS 47 THEN FLAG(95); 06331100 + SKIP2: IF THIRD {0 OR THIRD > 47 THEN FLAG(95); 06331100 END ELSE 06331200 BEGIN 06331300 L3: IF NOT P2 THEN 06331500 @@ -5089,7 +5092,8 @@ COMMENT SET UP CODE FOR RELATIONAL OPERATOR TO BE 06284600 THOSE CASES HANDLED BY THE VARIABLE ROUTINE ; 06337100 PROCEDURE DOTIT; 06338000 BEGIN INTEGER FIRST,SECOND; LABEL EXIT; 06339000 - IF DOTSYNTAX(FIRST,SECOND) THEN GO TO EXIT; 06340000 + 06340000 + IF DOTSYNTAX(FIRST,SECOND) THEN GO TO EXIT; 06341000 %A 06342000 EMITI(0,FIRST,SECOND); %A 06343000 %A 06344000 @@ -5117,11 +5121,11 @@ COMMENT SET UP CODE FOR RELATIONAL OPERATOR TO BE 06284600 THEN BEGIN 06366000 COMMENT OUR BAD GO TO IS JUMPING OUTSIDE OF ALL PROCEDURES; 06367000 EMIT(0); 06368000 - EMITL(TLEVEL); END 06369000 + EMITL(TLEVEL) END 06369000 ELSE BEGIN 06370000 EMITN(512); 06371000 EMITV(513); COMMENT PICK UP BLOCKCTR AT ENTRY 06372000 - FROM F+1; 06373000 + FROM F+1; 06373000 IF TLEVEL ~ TLEVEL - SUBLEVEL -1 ! 0 06374000 THEN BEGIN 06375000 EMITL(TLEVEL); 06376000 @@ -5275,7 +5279,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 TO REDUCING TOTAL NUMBER; 07077000 PCTR ~ 1; 07078000 ANOTHER: ACLASS ~ STEPI; WHOLE ~ ELBAT[I]; SCATTERELBAT; 07079000 - STACKCT ~ 0; %A 07079500 + STACKCT ~ 0; %A 07079500 COMMENT SETUP FIELDS OF AN ACTUAL PARAMETER; 07080000 IF FBIT THEN BEGIN VBIT ~ FALSE; SCLASS ~ LOCLID END 07081000 COMMENT IF PROCEDURE IS FORMAL ALL CALLS ARE BY NAME AND NO CHECK 07082000 @@ -5289,7 +5293,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 THEN SCLASS ~ SCLASS-GT1+1 07090000 COMMENT IF PROCEDURE IS NOT FORMAL WE OBTAIN VBIT FROM THE ADDITION-07091000 AL INFO FOR THE PROCEDURE. WE ALSO GET SCLASS FROM THIS 07092000 - SOURCE. HOWEVER SCLASS IS NORMALIZED TO REAL, IF NEEDED; 07093000 + SOURCE, HOWEVER SCLASS IS NORMALIZED TO REAL, IF NEEDED; 07093000 END; 07094000 IF T1 ~ TABLE(I+1) ! COMMA THEN 07095000 IF T1 ! RTPAREN THEN 07096000 @@ -5355,7 +5359,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 IF WHOLE.ADDRESS>1023 THEN EMITO(PRTE); 07122520 EMITO(LOD); 07122530 ACLASS~LISTID; GO TO BS END; 07122540 - COMMENT NORMAL IS REACHED ONLY IF THE PARAMETER IS AN EXPRESSION; 07123000 + COMMENT NORMAL IS REACHED ONLY IF THE PARAMETER IS AN EXPRESSION; 07123000 NORMAL: IF VBIT THEN 07124000 VE: T1 ~ EXPRSS COMMENT VALUE CALL EXPRESSION; 07125000 ELSE BEGIN COMMENT NAME CALL EXPRESSION; 07126000 @@ -5367,7 +5371,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 AROUND CODE FOR EXPRESSION; 07132000 T1 ~ EXPRSS; COMMENT COMPILE EXPRESSION; 07133000 STORE: EMITPAIR(JUNK,STD); EMITN(JUNK); 07134000 - COMMENT THIS PROVIDES FOR PROTECTION IF ONE ATTEMPTS INSIDE OF A 07135000 + COMMENT THIS PROVIDES FOR PROTECTION IF ONE ATTEMPTS INSIDE OF A 07135000 PROCEDURE TO STORE INTO AN EXPRESSION - THE STORE GOES 07136000 INTO JUNK; 07137000 LRTS: EMITO(RTS); CONSTANTCLEAN; EMITB(BFW,T2,L); STUFFF(T3) 07138000 @@ -5383,7 +5387,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 COMMENT IF WE REACH THIS POINT THE ACTUAL PARAMETER STARTS WITH AN 07148000 ARRAY NAME FOLLOWED BY SOMETHING ELSE; 07149000 IF SCLASS } BOOARRAYID THEN 07150000 - IF SCLASS {INTARRAYID THEN 07151000 + IF SCLASS { INTARRAYID THEN 07151000 BEGIN T2 ~ TAKE(INDEX+PCTR).INCR; 07152000 COMMENT THE FORMAL PARAMETER CALLS FOR AN ARRAY AS ACTUAL PARAMETER.07153000 THUS WE MUST HAVE A ROW DESIGNATOR; 07154000 @@ -5411,7 +5415,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 THAN THIS IT SETS T6 TO ZERO; 07179000 COMMENT IF THIS PLACE IS REACHED WE HAVE A NON-STREAM PROCEDURE. 07180000 WE HAVE NOT YET DECEIDED WHETHER WE HAVE 07181000 - 1) A ROW DESIGNATOR WITH FORMAL PROCEDURE. 07182000 + 1) A ROW DESIGNATOR WITH FORMAL PROCEDURE, 07182000 2) A SUBSCRIPTED VARIABLE, OR 07183000 3) A GENUINE NAME CALL EXPRESSION; 07184000 IF TABLE(I+2) = LITNO AND 07185000 @@ -5508,10 +5512,10 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 EMITO(RTS); EMITB(BFW,T2,L); STUFFF(T3); GO TO NSBS; 07272000 L10: 07273000 COMMENT PROCEDURE; 07274000 - TB1 ~ TRUE; IF FORMALF THEN GO LODPOINT; 07275000 + TB1 ~ TRUE; IF FORMALF THEN GO TO LODPOINT; 07275000 LP: IF T1 ~ TAKE(WHOLE ~ GIT(WHOLE)).[40:8] = 0 07276000 THEN BEGIN 07277000 - COMMENT THE PRCOEDURE BEING PASSED HAS ZERO PARAMETERS; 07278000 + COMMENT THE PROCEDURE BEING PASSED HAS ZERO PARAMETERS; 07278000 IF TB1 THEN GO TO LODPOINT; 07279000 COMMENT IF THE PROCEDURE IS NOT A FUNCTION, WE PASS THE PROCEDURE 07280000 DESCRIPTOR ITSELF (IN BOTH CASES THE PARAMETER PROCEDURE);07281000 @@ -5521,16 +5525,16 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 GO TO NORMAL; COMMENT WE LET OUT NORMAL MECHANISM FOR 07284000 EXPRESSIONS HANDLE THIS CASE; 07285000 END THE CASE OF ZERO PARAMETERS; 07286000 - TB1 ~ TRUE; 07287000 - FOR T2 ~ 1 STEP 1 UNTIL T1 07288000 - DO BEGIN 07289000 - IF BOOLEAN(T3~TAKE(WHOLE+T2)).VO 07290000 - THEN 07291000 - IF T4 ~ T3.CLASS < BOOARRAYID OR T4 > INTARRAYID 07292000 - THEN BEGIN 07293000 + TB1 ~ TRUE; 07287000 + FOR T2 ~ 1 STEP 1 UNTIL T1 07288000 + DO BEGIN 07289000 + IF BOOLEAN(T3~TAKE(WHOLE+T2)).VO 07290000 + THEN 07291000 + IF T4 ~ T3.CLASS < BOOARRAYID OR T4 > INTARRAYID 07292000 + THEN BEGIN 07293000 COMMENT THE T2-TH PARAMETER TO THE PROCEDURE BEING PASSED IS VALUE; 07294000 - IF TB1 THEN 07295000 - BEGIN 07296000 + IF TB1 THEN 07295000 + BEGIN 07296000 COMMENT THIS IS THE FIRST VALUE PARAMETER. IF ANY PARAMETERS ARE 07297000 VALUE WE BUILD A THINK WHICH SEES THAT WHEN THIS 07298000 PROCEDURE IS CALLED FORMALLY, ITS PARAMETERS THAT ARE 07299000 @@ -5571,7 +5575,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 IF VBIT 07334000 THEN BEGIN EMITV(ADDRSF); GO TO BS END 07335000 ELSE GO TO LODPOINT; 07336000 - COMMENT IF VBIT WE DO VALUE CALL. OTHERWISE WE PASS PROCEDURE 07337000 + COMMENT IF VBIT WE DO VALUE CALL, OTHERWISE WE PASS PROCEDURE 07337000 DESCRIPTOR ALONG; 07338000 END; 07339000 TB1 ~ FALSE; GO TO LP; 07340000 @@ -5623,7 +5627,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 COMMENT PROCSTMT COMPILES CODE FOR ALL PROCEDURE STATEMENTS AND 07386000 FUNCTION CALLS (EXCEPT FOR STREAM PROCEDURES). THE 07387000 PARAMETERS, FROM, TELLS WHO CALLED. IF STMT CALLED FROM 07388000 - IS TRUE, PROCSTMT ALSO HANDLES FUNCTION NAME ASSIGNMENT 07389000 + IS TRUE. PROCSTMT ALSO HANDLES FUNCTION NAME ASSIGNMENT 07389000 OPERATIONS; 07390000 PROCEDURE PROCSTMT(FROM); VALUE FROM; BOOLEAN FROM; 07391000 BEGIN 07392000 @@ -5654,7 +5658,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 THEN BEGIN COMMENT THIS IS A MONITORED FUNCTION DESIGNATOR07416000 ; 07417000 EMITL(JUNK); EMITO(SND); EMITO(MKS); 07418000 - EMITL(JUNK); EMITL(PASSTYPE(HOLE)); 07419000 + EMITV(JUNK); EMITL(PASSTYPE(HOLE)); 07419000 EMITPAIR(GNAT(POWERSOFTEN),LOD);PASSALPHA(HOLE);07420000 EMITPAIR(GNAT(CHARI ),LOD); PASSMONFILE(TAKE07421000 (GIT(HOLE)).FUNCMONFILE); %109-07422000 @@ -5686,7 +5690,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; %104-07025030 JUMPS INSIDE OF STREAM PROCEDURES; 07447000 GT4 ~ GT2.[1:6]; 07448000 FOR GT1 ~ 1 STEP 1 UNTIL GT4 DO EMIT(0); 07449000 - COMMENT THIS CODE CALLS ZERO LISTS TO MAKE SPACE FOR LOCALS INSIDE07450000 + COMMENT THIS CODE CALLS ZERO LITS TO MAKE SPACE FOR LOCALS INSIDE 07450000 OF STREAM PROCEDURES; 07451000 IF ELCLASS ! LEFTPAREN THEN ERR(128) 07452000 ELSE BEGIN 07453000 @@ -5707,7 +5711,7 @@ PROCEDURE RELSESTMT; 07461250 IF STEPI!LEFTPAREN THEN 07462000 BEGIN ERR(105); GO EXIT END; 07462250 IF STEPI=UNKNOWNID THEN 07462500 - BEGIN ERR(100); GO EXIT END; 07462750 + BEGIN ERR(100); GO EXIT END; 07462750 IF ELCLASS=PROCID OR RANGE(BOOPROCID,INTPROCID) THEN 07463000 BEGIN 07463250 EMITPAIR(ELBAT[I].ADDRESS,LOD); EMITPAIR(38,COM); 07463500 @@ -5932,10 +5936,10 @@ PROCEDURE CASESTMT; 07646100 BEGIN COMMENT THE CASE STATEMENT HAS THE FOLLOWING FORM: 07646110 CASE OF BEGIN 07646120 AT EXECUTION THE CASE STATEMENT SELECTS ONE OF THE STATEMENTS 07646130 - IN THE , DEPENDING ON THE VALUE OF THE , 07646140 + IN THE , DEPENDING ON THE VALUE OF THE . 07646140 ONLY THE SELECTED STATEMENT IS EXECUTED AND CONTROL RESUMES AFTER 07646150 THE . IF THERE ARE N STATEMENTS IN THE 07646160 - , THEY MAY BE CONSIDERED NUMBERED 0,1,...,N-1. 07646170 + , THEY MAY BE CONSIDERED NUMBERED 0,1,...,N-1, 07646170 AND THE MUST TAKE ON ONLY THESE VALUES. OTHER VALUES 07646180 WILL RESULT IN AN INVALID INDEX TERMINATION OF THE OBJECT PROGRAM. 07646190 THE STATEMENTS IN THE MAY BE ANY EXECUTABLE 07646200 @@ -5997,7 +6001,7 @@ LOOP: 07646470 END; 07646580 ENDTOG ~ TRUE; 07646585 COMMENT SKIP ANY COMMENTS AFTER "END"; 07646590 - DO STOPDEFINE ~ TRUE UNTIL STEPI { ENDV AND ELCLASS }UNTILV 07646595 + DO STOPDEFINE ~ TRUE UNTIL STEPI { ENDV AND ELCLASS } UNTILV 07646595 OR NOT ENDTOG; 07646600 ENDTOG ~ FALSE; 07646610 COMMENT DEFINE TEDOC AS TYPE-2 SEGMENT; 07646620 @@ -6035,7 +6039,7 @@ COMMENT THE FOLLOWING PROCEDURE HANDLES THE FILL STATEMENT. 07647000 BY THE FILL STATEMENT EVERY TIME THE FILL STATEMENT IS 07650000 EXECUTED.STRINGCONSTANTS,LITERAL ,AND NONLITERAL NUMBERS 07650500 ARE ALL CONVERTED BY THE SCANNER AND NUMBER BUILDER.OCTAL 07651000 - NUMBERS LOOK LIKE IDENITIFERS TO FILLSTMT AND ARE CONVERTED 07651500 + NUMBERS LOOK LIKE IDENTIFIERS TO FILLSTMT AND ARE CONVERTED 07651500 BY OCTIZE.AFTER BUILDING THE SEGMENT AN ENTRY IS MADE IN 07652000 PDPRT TO SUPPLY INFO TO BUILD A DISK DESCRIPTOR IN THE 07652500 SEGMENT DICTIONARY.THE COMMUNICATE LITERAL IS 7; 07653000 @@ -6173,8 +6177,8 @@ LVAR, 07722000 IF ELCLASS=FILEID OR ELCLASS=SUPERFILEID THEN 07729190 BEGIN GT1~FILEATTRIBUTEHANDLER(FS); GO EXIT END ; 07729200 FLAG(145); 07729500 -LERR: ERR(144); GO TO EXIT; 07730000 -LDEC: FLAG(146); 07731000 + LERR: ERR(144); GO TO EXIT; 07730000 + LDEC: FLAG(146); 07731000 IF TABLE(I-2) = ENDV AND MODE > 0 07732000 THEN BEGIN I ~ I-2; ELCLASS ~ ENDV; GO TO EXIT END; 07733000 I ~ I-1; ERRORTOG ~ TRUE; BLOCK(FALSE); 07734000 @@ -6182,28 +6186,28 @@ LDEC: FLAG(146); 07731000 07735500 07735510 07735520 -LPROC: PROCSTMT(TRUE); GO TO EXIT; 07736000 -LSPROC: STRMPROCSTMT; GO TO EXIT; 07737000 -LVAR: VARIABLE(FS); GO TO EXIT; 07738000 -LAB: LABELR; GO TO AGAIN; 07739000 -LREAD: READSTMT; GO TO EXIT; 07740000 -LWRITE: WRITESTMT; GO TO EXIT; 07741000 -LSPACE: SPACESTMT; GO TO EXIT; 07742000 -LCLOSE: CLOSESTMT; GO TO EXIT; 07743000 -LLOCK: LOCKSTMT; GO TO EXIT; 07744000 -LRWND: RWNDSTMT; GO TO EXIT; 07745000 -LDBL: DBLSTMT; GO TO EXIT; 07746000 -LFOR: FORSTMT; GO TO EXIT; 07747000 -LWHILE: WHILESTMT; GO TO EXIT; 07748000 -LDO: DOSTMT; GO TO EXIT; 07749000 -LFILL: FILLSTMT; GO TO EXIT; 07750000 -LIF: IFSTMT; GO TO EXIT; 07751000 -LGO: GOSTMT; GO TO EXIT; 07752000 -LRELSE: RELSESTMT; GO TO EXIT; 07753000 -LBEG: IF STEPI = DECLARATORS 07754000 + LPROC: PROCSTMT(TRUE); GO TO EXIT; 07736000 + LSPROC: STRMPROCSTMT; GO TO EXIT; 07737000 + LVAR: VARIABLE(FS); GO TO EXIT; 07738000 + LAB: LABELR; GO TO AGAIN; 07739000 + LREAD: READSTMT; GO TO EXIT; 07740000 + LWRITE: WRITESTMT; GO TO EXIT; 07741000 + LSPACE: SPACESTMT; GO TO EXIT; 07742000 + LCLOSE: CLOSESTMT; GO TO EXIT; 07743000 + LLOCK: LOCKSTMT; GO TO EXIT; 07744000 + LRWND: RWNDSTMT; GO TO EXIT; 07745000 + LDBL: DBLSTMT; GO TO EXIT; 07746000 + LFOR: FORSTMT; GO TO EXIT; 07747000 + LWHILE: WHILESTMT; GO TO EXIT; 07748000 + LDO: DOSTMT; GO TO EXIT; 07749000 + LFILL: FILLSTMT; GO TO EXIT; 07750000 + LIF: IFSTMT; GO TO EXIT; 07751000 + LGO: GOSTMT; GO TO EXIT; 07752000 + LRELSE: RELSESTMT; GO TO EXIT; 07753000 + LBEG: IF STEPI = DECLARATORS 07754000 THEN BEGIN I ~ I-1; BLOCK(FALSE) END 07755000 ELSE COMPOUNDTAIL; 07756000 -EXIT: END STMT; 07757000 + EXIT: END STMT; 07757000 PROCEDURE CMPLXSTMT; FORWARD ; 07777777 PROCEDURE UNKNOWNSTMT; 07800000 BEGIN LABEL XXX,E; 07801000 @@ -6242,9 +6246,9 @@ PROCEDURE CMPLXSTMT; FORWARD ; 07777777 IF Q = "4WAIT0" THEN 07824000 BEGIN N ~ 1; C ~ 2 END ELSE 07825000 IF Q = "4CASE0" THEN BEGIN CASESTMT; GO TO XXX END ELSE 07825500 - IF Q = "4SORT0" THEN BEGIN SORTSTMT; GO XXX END ELSE 07826000 - IF Q = "5MERGE" THEN BEGIN MERGESTMT; GO XXX END ELSE 07827000 - IF Q = "6SEARC" THEN 07828000 + IF Q="4SORT0" THEN BEGIN SORTSTMT; GO XXX END ELSE 07826000 + IF Q="5MERGE" THEN BEGIN MERGESTMT; GO XXX END ELSE 07827000 + IF Q="6SEARC" THEN 07828000 BEGIN IF STEPI!LEFTPAREN THEN 07829000 BEGIN ERR(105); GO TO XXX END; 07830000 IF STEPI=FILEID OR ELCLASS=SUPERFILEID THEN 07831000 @@ -6288,24 +6292,26 @@ PROCEDURE CMPLXSTMT; FORWARD ; 07777777 GO TO XXX 07859090 END ELSE 07859100 $ SET OMIT = NOT TSPOL 07859900 - $ POP OMIT % [NOT IN ORIGINAL LISTING] 07899000 - BEGIN ERROR(100); GO TO XXX END; 07900000 - IF STEPI ! LEFTPAREN THEN 07901000 - BEGIN ERR(105); GO TO XXX END; 07902000 - STEPIT; AEXP; 07903000 - FOR J ~ 1 STEP 1 UNTIL N DO 07904000 - BEGIN IF ELCLASS ! COMMA THEN 07905000 - E: BEGIN ERR(164); GO TO XXX END; 07906000 - STEPIT; AEXP; 07907000 - END; 07908000 - IF ELCLASS ! RTPAREN THEN 07909000 - BEGIN ERR(104); GO TO XXX END; 07910000 - EMITL(C); EMITO(COM); 07911000 - FOR J ~ 0 STEP 1 UNTIL N DO EMITO(DEL); 07912000 - STEPIT; 07913000 + IF Q="@COMMU" THEN % [NOT IN ORIGINAL LISTING]07860000 + BEGIN PANA; EMITO(COM); GO XXX END ELSE % [NOT IN LISTING]07861000 + $ POP OMIT % [NOT IN ORIGINAL LISTING]07862000 + BEGIN ERROR(100); GO TO XXX END; 07900000 + IF STEPI ! LEFTPAREN THEN 07901000 + BEGIN ERR(105); GO TO XXX END; 07902000 + STEPIT; AEXP; 07903000 + FOR J ~ 1 STEP 1 UNTIL N DO 07904000 + BEGIN IF ELCLASS ! COMMA THEN 07905000 + E: BEGIN ERR(164); GO TO XXX END; 07906000 + STEPIT; AEXP; 07907000 + END; 07908000 + IF ELCLASS ! RTPAREN THEN 07909000 + BEGIN ERR(104);GO TO XXX END; 07910000 + EMITL(C); EMITO(COM); 07911000 + FOR J ~ 0 STEP 1 UNTIL N DO EMITO(DEL); 07912000 + STEPIT; 07913000 XXX: END; 07914000 PROCEDURE FAULTSTMT; COMMENT THIS IS WHAT HAPPENS FOR THE"~" 07920000 - KIND OF STATEMENT. FOR THE RUN-TIME ERROR MESS; 07921000 + KIND OF STATEMENT, FOR THE RUN-TIME ERROR MESS; 07921000 BEGIN REAL ELBW,STR; DEFINE ADRES=ELBW.ADDRESS#; 07922000 CHECKER(ELBW~ELBAT[I]); STR~IF FAULTOG THEN SND ELSE STD; 07923000 FAULTOG ~ BOOLEAN(1) OR FAULTOG; COMMENT TELLS DEXP TO MESS 07923100 @@ -6341,11 +6347,11 @@ PROCEDURE KLUDGE(T); VALUE T; INTEGER T; 07930000 END ELSE STEPIT ELSE STEPIT;% WALTZ ON BY... 07952000 EMITV(GNAT(SUPERMOVER));% BET YOU THOUGHT I"D NEVER DO IT 07953000 EXIT: END THIS HAIRY KLUDGE;% 07954000 - COMMENT FORSTMT IS RESPONSIBLE FOR THE COMPILATION OF FOR STATEMENTS. 08000000 + COMMENT FORSTMT IS REPONSIBLE FOR THE COMPILATION OF FOR STATEMENTS. 08000000 IF THE FOR STATEMENT HAS A SINGLE STEP-UNTIL ELEMENT SUCH 08001000 THAT THE INITIAL VALUE, THE STEP AND THE FINAL VALUE ARE 08002000 ALL OF THE FORM V,+V, OR -V WHERE V IS A VARIABLE OR A 08003000 - CONSTANT, THEN THE CODE TAKES ON MORE EFFICIENT FORM. 08004000 + CONSTANT, THEN THE CODE TAKES ON A MORE EFFICIENT FORM. 08004000 IN OTHER CASES THE CODE IS SOMEWHAT LESS EFFICIENT, SINCE 08005000 THE BODY OF THE FOR STATEMENT BECOMES A SUBROUTINE. THE 08006000 STEP ALSO BECOMES A SUBROUTINE IF IT IS NOT SIMPLE; 08007000 @@ -6392,7 +6398,7 @@ PROCEDURE KLUDGE(T); VALUE T; INTEGER T; 07930000 ELSE BEGIN 08036000 B ~ FALSE; A ~ ELBAT[I]; 08037000 SIMPLE ~ REALID { ELCLASS AND ELCLASS { INTID END; 08038000 - END SIMPLE; 08038100 + END SIMPLE; 08039000 COMMENT TEST EMITS THE STEP-UNTIL ELEMENT TEST; 08040000 PROCEDURE TEST; 08041000 BEGIN 08042000 @@ -6651,7 +6657,7 @@ PROCEDURE HANDLETHETAILENDOFAREADORSPACESTATEMENT; 08233000 EMITTIME=BEGIN EMITN(2); EMITO(259); AEXP ; 08289020 EMITPAIR(JUNK,ISN); EMITO(965) END#;08289030 PROCEDURE READSTMT; 08290000 - BEGIN COMMENT READSTMT GENERATES CODE TO CALL INTERPTI)WHICH IS08291000 + BEGIN COMMENT READSTMT GENERATES CODE TO CALL INTERPTI(WHICH IS08291000 SHORT FOR INTERPRET INPUT) AN INTRINSIC PROCEDURE ON THE 08292000 DRUM, PASSING TO IT PARAMETERS DETERMINED BY THE FORMAT OF08293000 THE READ OR SPACE STATEMENT. 08294000 @@ -6679,7 +6685,7 @@ PROCEDURE READSTMT; 08290000 VALUE IS ONE MORE THAN THE NUMBER OF RECORDS TO BE 08316000 PROCESSED. 08317000 END OF FILE LABEL IS A DATA DESCRIPTOR POINTING TO A LABEL08318000 - DESCRIPTOR FOR THE END OF FILE JUMPS. 08319000 + DESCRIPTOR FOR END OF FILE JUMPS. 08319000 PARITY LABEL IS A DATA DESCRIPTOR POINTING TO A LABEL 08320000 DESCRIPTOR FOR PARITY CONDITION JUMPS. 08321000 + OR - N IS SIMILAR TO ACTION TYPE. IT CONTAINS THE EXACT08322000 @@ -6748,143 +6754,143 @@ PROCEDURE READSTMT; 08290000 SECOND PARAMETER; 08385000 LABEL READXFORM; 08385100 INTEGER LISTADDRESS; COMMENT TEMP TO HOLD LIST ADD DESC; 08385500 - BOOLEAN SEEKTOG,LOCKTOG,GRABTOG;% 08385600 - BOOLEAN MAYI; COMMENT TRUE IF "FILE" IS ARRAY ROW; 08385700 - INTEGER HOLD; COMMENT L MAY GET CUT BACK TO HERE; 08385800 - IF STEPI = LEFTPAREN 08386000 - THEN REVERSETOG~SEEKTOG~FALSE 08387000 - ELSE BEGIN COMMENT THIS HAD BETTER SAY REVERSE; 08388000 - REVERSETOG~ACCUM[1]="7REVER"; 08389000 - LOCKTOG~ELCLASS=LOCKV; 08390000 - SEEKTOG~ACCUM[1]="4SEEK0"; 08390500 - IF REVERSETOG OR LOCKTOG OR SEEKTOG THEN STEPIT 08391000 - ELSE BEGIN ERR(420); 08392000 - GO TO EXIT; 08393000 - END; 08394000 - IF CHECK(LEFTPAREN,421) 08395000 - THEN GO TO EXIT; 08396000 - COMMENT ERROR 421 MEANS MISSING LEFT 08397000 - PARENTHESIS IN READ REVERSE STATEMENT; 08398000 - END; 08399000 - EMITO(MKS); 08400000 - IF STEPI } BOOARRAYID AND ELCLASS { INTARRAYID THEN 08401000 - BEGIN VARIABLE(FL); 08401020 - IF TABLE(I-2) ! FACTOP THEN 08401030 - BEGIN ERR(422); GO TO EXIT END; 08401040 - MAYI ~ TRUE; HOLD ~ L; 08401045 - EMIT(11); EMIT(4); EMITO(280); 08401050 - EMITPAIR(GNAT(POWERSOFTEN),LOD); 08401060 - EMITO(XCH); EMITL(0); EMITL(1); 08401070 - END ELSE 08401080 - BEGIN 08401090 - EMITPAIR(GNAT(POWERSOFTEN),LOD); 08402000 - IF NOT RANGE(FILEID,SUPERFILEID) 08403000 - THEN BEGIN COMMENT ERROR 422 MEANS MISSING FILE IN READ 08404000 - STATEMENT; 08405000 - ERR(422); GO TO EXIT; 08406000 - END; 08407000 - PASSFILE; 08408000 - IF ELCLASS = LFTBRKET 08409000 - THEN BEGIN %%% COMPILES CODE FOR [NS],[NS,*],[NS,], 08410000 - %%% [*],[*,*],[*,],[],[,*], 08410010 - %%% AND [,]. THE FIRST (LEFTMOST) 08410020 - %%% IS THE READSEEKDISTADDRESS, RESIDING 08410030 - %%% IN THE C-FIELD OF THE DSKADDR. THE SECOND 08411000 - %%% IS THE WAIT-TIME, RESIDING IN THE 08411010 - %%% F-FIELD OF THE DSKADDR, AND ALSO TURNING-ON 08411020 - %%% THE EXP-SIGN BIT OF DSKADDR,X"S ARE EMPTIES 08411030 - %%% IN THE ABOVE, NS = NO OR STOP. 08411040 - STEPIT; %%% STEP OVER [, AND POINT AT NEXT ITEM. 08412000 - IF RR1~IF ACCUM[1]="2NO000" THEN 1 ELSE 08412010 - IF ACCUM[1]="4STOP0" THEN 2 ELSE 08412020 - 0 ! 0 THEN %%% HAVE [NS 08412030 - IF STEPI=COMMA THEN %%% HAVE [NS, 08412040 - IF STEPI=FACTOP THEN %%% HAVE [NS,* 08412050 - BEGIN 08412060 - IF RR1=1 THEN EMITNO(1) 08412070 - ELSE BEGIN EMITL(1); EMITL(2) END ; 08412080 - STEPIT ; 08412090 - END 08413000 - ELSE 08413010 - IF ACCUM[1]="4LOCK0" THEN 08413012 - BEGIN %%% [NS,LOCK 08413014 - EMITL(1); EMITD(47,4,1); 08413016 - STEPIT; 08413018 - END ELSE 08413020 - BEGIN %%% HAVE [NS,AEXP 08413022 - IF RR1=2 THEN EMITL(1) ; 08413030 - EMITTIME ; 08413040 - IF RR1=2 THEN 08413050 - BEGIN EMITO(LOR); EMITL(2) END 08413060 - ELSE EMITL(1) ; 08413080 - END 08413090 - ELSE IF RR1=1 THEN EMITNO(1) %%% ONLY HAVE [NS 08413100 - ELSE BEGIN EMITL(1); EMITL(2) END 08413110 - ELSE IF ELCLASS=FACTOP THEN %%% HAVE [* 08413120 - IF STEPI=COMMA THEN %%% HAVE [*, 08413130 - IF STEPI=FACTOP THEN %%% HAVE [*,* 08414000 - BEGIN EMITNO(2); STEPIT END 08414010 - ELSE IF ACCUM[1]="4LOCK0" THEN 08414012 - BEGIN %%% [*,LOCK 08414014 - EMITL(1); EMITD(47,4,1); 08414016 - STEPIT; 08414018 - END ELSE 08414020 - BEGIN EMITTIME; EMITL(2); END % [*,A 08414022 - ELSE EMITNO(2) %%% HAVE ONLY [* 08414030 - ELSE BEGIN %%% HAVE [AEXP 08415000 - AEXP;EMITO(SSP);EMITL(1);EMITO(ADD); 08415010 - IF SEEKTOG THEN EMITO(CHS) ; 08415020 - EMITPAIR(JUNK,ISN) ; 08415030 - IF ELCLASS=COMMA THEN %%% HAVE [AEXP, 08416000 - IF STEPI=FACTOP THEN STEPIT %%%[AEXP,* 08416010 - ELSE IF ACCUM[1]="4LOCK0" THEN 08416012 - BEGIN %%% [AEXP,LOCK 08416014 - EMITL(1); EMITD(47,4,1); 08416016 - STEPIT; 08416018 - END ELSE 08416020 - BEGIN EMITTIME; EMITO(LOR) END ; 08416022 - EMITL(2) ; %%% ABOVE ELSE WAS [AEXP,AEXP 08416030 - END ; 08417000 - IF CHECK(RTBRKET,424) THEN GO EXIT ELSE STEPIT ; 08417010 - END 08418000 - ELSE IF ELCLASS=LEFTPAREN THEN 08418100 - BEGIN STEPIT; AEXP; IF ELCLASS=COMMA THEN 08418200 - IF STEPI!FACTOP THEN% 08418250 - BEGIN AEXP; EMITPAIR(JUNK,ISN) END ELSE% 08418300 - BEGIN EMITL(1); GRABTOG~TRUE; STEPIT END ELSE 08418350 - EMITPAIR(0,LNG); 08418400 - EMITD(33,33,15); 08418500 - EMITO(IF LOCKTOG THEN SSN ELSE SSP); 08418600 - EMITL(REAL(SEEKTOG)); EMITD(33,18,15); 08418650 - IF CHECK(RTPAREN,104) THEN GO EXIT; 08418700 - EMITL(REAL(GRABTOG)+2); STEPIT;% 08418800 - END 08418900 - ELSE BEGIN EMITL(0); EMITL(2); END; 08419000 - IF REVERSETOG 08420000 - THEN EMITO(CHS); 08421000 - END; 08421500 - IF ELCLASS = RTPAREN 08422000 - THEN BEGIN COMMENT NO FORMAT,NO LIST CASE; 08423000 - EMITL(0); EMITL(0); EMITL(0); 08424000 - GOGOGO ~ NOT MAYI;% 08424100 - GO CHKACTIONLABELS; 08425000 - END; 08426000 - IF CHECK(COMMA,424) 08427000 - THEN GO TO EXIT; 08428000 - COMMENT ERROR 424 MEANS IMPROPER FILE DELIMITER IN READ 08429000 - STATEMENT; 08430000 - IF STEPI = FACTOP 08431000 - THEN BEGIN COMMENT *,LIST CASE; 08432000 - EMITL(0); EMITL(0); GO PASSLIST; 08433000 - END; 08434000 - IF ELCLASS = MULOP 08435000 - THEN BEGIN COMMENT FREE FIELD FORMAT CASE; 08436000 - IF STEPI=MULOP THEN EMITL(2) ELSE 08437000 - BEGIN EMITL(1); I~I-1; END ; 08437050 - EMITL(0); GO TO PASSLIST ; 08437075 - END; 08438000 - IF RANGE(FRMTID,SUPERFRMTID) 08439000 - THEN BEGIN COMMENT THE SECOND PARAMETER IS A FORMAT; 08440000 + BOOLEAN SEEKTOG,LOCKTOG,GRABTOG;% 08385600 + BOOLEAN MAYI; COMMENT TRUE IF "FILE" IS ARRAY ROW; 08385700 + INTEGER HOLD; COMMENT L MAY GET CUT BACK TO HERE; 08385800 + IF STEPI = LEFTPAREN 08386000 + THEN REVERSETOG~SEEKTOG~FALSE 08387000 + ELSE BEGIN COMMENT THIS HAD BETTER SAY REVERSE; 08388000 + REVERSETOG~ACCUM[1]="7REVER"; 08389000 + LOCKTOG~ELCLASS=LOCKV; 08390000 + SEEKTOG~ACCUM[1]="4SEEK0"; 08390500 + IF REVERSETOG OR LOCKTOG OR SEEKTOG THEN STEPIT 08391000 + ELSE BEGIN ERR(420); 08392000 + GO TO EXIT; 08393000 + END; 08394000 + IF CHECK(LEFTPAREN,421) 08395000 + THEN GO TO EXIT; 08396000 + COMMENT ERROR 421 MEANS MISSING LEFT 08397000 + PARENTHESIS IN READ REVERSE STATEMENT; 08398000 + END; 08399000 + EMITO(MKS); 08400000 + IF STEPI } BOOARRAYID AND ELCLASS { INTARRAYID THEN 08401000 + BEGIN VARIABLE(FL); 08401020 + IF TABLE(I-2) ! FACTOP THEN 08401030 + BEGIN ERR(422); GO TO EXIT END; 08401040 + MAYI ~ TRUE; HOLD ~ L; 08401045 + EMIT(11); EMIT(4); EMITO(280); 08401050 + EMITPAIR(GNAT(POWERSOFTEN),LOD); 08401060 + EMITO(XCH); EMITL(0); EMITL(1); 08401070 + END ELSE 08401080 + BEGIN 08401090 + EMITPAIR(GNAT(POWERSOFTEN),LOD); 08402000 + IF NOT RANGE(FILEID,SUPERFILEID) 08403000 + THEN BEGIN COMMENT ERROR 422 MEANS MISSING FILE IN READ 08404000 + STATEMENT; 08405000 + ERR(422); GO TO EXIT; 08406000 + END; 08407000 + PASSFILE; 08408000 + IF ELCLASS = LFTBRKET 08409000 + THEN BEGIN %%% COMPILES CODE FOR [NS],[NS,*],[NS,], 08410000 + %%% [*],[*,*],[*,],[],[,*], 08410010 + %%% AND [,]. THE FIRST (LEFTMOST) 08410020 + %%% IS THE READSEEKDISTADDRESS, RESIDING08410030 + %%% IN THE C-FIELD OF THE DSKADDR. THE SECOND 08411000 + %%% IS THE WAIT-TIME, RESIDING IN THE 08411010 + %%% F-FIELD OF THE DSKADDR, AND ALSO TURNING-ON08411020 + %%% THE EXP-SIGN BIT OF DSKADDR.X"S ARE EMPTIES08411030 + %%% IN THE ABOVE, NS = NO OR STOP. 08411040 + STEPIT; %%% STEP OVER [, AND POINT AT NEXT ITEM. 08412000 + IF RR1~IF ACCUM[1]="2NO000" THEN 1 ELSE 08412010 + IF ACCUM[1]="4STOP0" THEN 2 ELSE 08412020 + 0 ! 0 THEN %%% HAVE [NS 08412030 + IF STEPI=COMMA THEN %%% HAVE [NS, 08412040 + IF STEPI=FACTOP THEN %%% HAVE [NS,* 08412050 + BEGIN 08412060 + IF RR1=1 THEN EMITNO(1) 08412070 + ELSE BEGIN EMITL(1); EMITL(2) END ; 08412080 + STEPIT ; 08412090 + END 08413000 + ELSE 08413010 + IF ACCUM[1]="4LOCK0" THEN 08413012 + BEGIN %%% [NS,LOCK 08413014 + EMITL(1); EMITD(47,4,1); 08413016 + STEPIT; 08413018 + END ELSE 08413020 + BEGIN %%% HAVE [NS,AEXP 08413022 + IF RR1=2 THEN EMITL(1) ; 08413030 + EMITTIME ; 08413040 + IF RR1=2 THEN 08413050 + BEGIN EMITO(LOR); EMITL(2) END 08413060 + ELSE EMITL(1) ; 08413080 + END 08413090 + ELSE IF RR1=1 THEN EMITNO(1) %%% ONLY HAVE [NS 08413100 + ELSE BEGIN EMITL(1); EMITL(2) END 08413110 + ELSE IF ELCLASS=FACTOP THEN %%% HAVE [* 08413120 + IF STEPI=COMMA THEN %%% HAVE [*, 08413130 + IF STEPI=FACTOP THEN %%% HAVE [*,* 08414000 + BEGIN EMITNO(2); STEPIT END 08414010 + ELSE IF ACCUM[1]="4LOCK0" THEN 08414012 + BEGIN %%% [*,LOCK 08414014 + EMITL(1); EMITD(47,4,1); 08414016 + STEPIT; 08414018 + END ELSE 08414020 + BEGIN EMITTIME; EMITL(2); END % [*,A 08414022 + ELSE EMITNO(2) %%% HAVE ONLY [* 08414030 + ELSE BEGIN %%% HAVE [AEXP 08415000 + AEXP;EMITO(SSP);EMITL(1);EMITO(ADD); 08415010 + IF SEEKTOG THEN EMITO(CHS) ; 08415020 + EMITPAIR(JUNK,ISN) ; 08415030 + IF ELCLASS=COMMA THEN %%% HAVE [AEXP, 08416000 + IF STEPI=FACTOP THEN STEPIT %%%[AEXP,*08416010 + ELSE IF ACCUM[1]="4LOCK0" THEN 08416012 + BEGIN %%% [AEXP,LOCK 08416014 + EMITL(1); EMITD(47,4,1); 08416016 + STEPIT; 08416018 + END ELSE 08416020 + BEGIN EMITTIME; EMITO(LOR) END ; 08416022 + EMITL(2) ; %%% ABOVE ELSE WAS [AEXP,AEXP 08416030 + END ; 08417000 + IF CHECK(RTBRKET,424) THEN GO EXIT ELSE STEPIT ;08417010 + END 08418000 + ELSE IF ELCLASS=LEFTPAREN THEN 08418100 + BEGIN STEPIT; AEXP; IF ELCLASS=COMMA THEN 08418200 + IF STEPI!FACTOP THEN% 08418250 + BEGIN AEXP; EMITPAIR(JUNK,ISN) END ELSE% 08418300 + BEGIN EMITL(1); GRABTOG~TRUE; STEPIT END ELSE 08418350 + EMITPAIR(0,LNG); 08418400 + EMITD(33,33,15); 08418500 + EMITO(IF LOCKTOG THEN SSN ELSE SSP); 08418600 + EMITL(REAL(SEEKTOG)); EMITD(33,18,15); 08418650 + IF CHECK(RTPAREN,104) THEN GO EXIT; 08418700 + EMITL(REAL(GRABTOG)+2); STEPIT;% 08418800 + END 08418900 + ELSE BEGIN EMITL(0); EMITL(2); END; 08419000 + IF REVERSETOG 08420000 + THEN EMITO(CHS); 08421000 + END; 08421500 + IF ELCLASS = RTPAREN 08422000 + THEN BEGIN COMMENT NO FORMAT,NO LIST CASE; 08423000 + EMITL(0); EMITL(0); EMITL(0); 08424000 + GOGOGO ~ NOT MAYI;% 08424100 + GO CHKACTIONLABELS; 08425000 + END; 08426000 + IF CHECK(COMMA,424) 08427000 + THEN GO TO EXIT; 08428000 + COMMENT ERROR 424 MEANS IMPROPER FILE DELIMITER IN READ 08429000 + STATEMENT; 08430000 + IF STEPI = FACTOP 08431000 + THEN BEGIN COMMENT *,LIST CASE; 08432000 + EMITL(0); EMITL(0); GO PASSLIST; 08433000 + END; 08434000 + IF ELCLASS = MULOP 08435000 + THEN BEGIN COMMENT FREE FIELD FORMAT CASE; 08436000 + IF STEPI=MULOP THEN EMITL(2) ELSE 08437000 + BEGIN EMITL(1); I~I-1; END ; 08437050 + EMITL(0); GO TO PASSLIST ; 08437075 + END; 08438000 + IF RANGE(FRMTID,SUPERFRMTID) 08439000 + THEN BEGIN COMMENT THE SECOND PARAMETER IS A FORMAT; 08440000 PASSFORMAT; 08441000 READXFORM: IF TABLE(I+1) = COMMA 08442000 THEN GO PASSLIST; 08443000 @@ -7017,7 +7023,7 @@ COMMENT FILEATTRIBUTEHANDLER HANDLES FILE ATTRIBUTE STUFF. IT CONSTRUCTS08493200 PASSES N=FP, AND DOES THE SAME AS #3 (ABOVE). 08493410 5. IODEC: 08493420 PASSES N=FIO, AND TELLS FAH THAT A MKS & FILE DESC 08493430 - HAVE ALREADY BEEN EMITTED, THE ATTRIBUTEINDX IS 08493440 + HAVE ALREADY BEEN EMITTED. THE ATTRIBUTEINDX IS 08493440 DETERMINED BY IODEC, AND IS PASSED VIA GT1. 08493450 END OF COMMENT ; 08493460 INTEGER PROCEDURE FILEATTRIBUTEHANDLER(N); VALUE N; REAL N ; 08493470 @@ -7155,7 +7161,7 @@ PROCEDURE WRITESTMT; 08528000 LABEL CHKSECOND; COMMENT I IS NOW POINTING AT THE COMMA 08573000 SEPARATING THE FIRST AND SECOND 08574000 PARAMETERS; 08575000 - LABEL ONEPARENSH; COMMENT I IS POINT AT THE RIGHT 08576000 + LABEL ONEPARFNSH; COMMENT I IS POINTING AT THE RIGHT 08576000 PARENTHESIS AT THIS POINT AND I HAVE 08577000 JUST DISCOVERED THAT THIS IS THE ONE 08578000 PARAMETER CASE; 08579000 @@ -7206,7 +7212,7 @@ PROCEDURE WRITESTMT; 08528000 EMITL(0); EMITL(1); 08608000 IF RRB1 08609000 THEN GO CHKSECOND; 08610000 - ONEPARENSH:STEPIT; EMITL(0); EMITL(0); 08611000 + ONEPARFNSH:STEPIT; EMITL(0); EMITL(0); 08611000 GOGOGO ~ NOT ARC;% 08611100 EMITL(0); GO EMITCALL; 08612000 END; 08613000 @@ -7220,21 +7226,21 @@ PROCEDURE WRITESTMT; 08528000 IF CHECK(LFTBRKET,440) 08614000 THEN GO TO EXIT; 08615000 COMMENT ERROR 440 MEANS IMPROPER DELIMITER FOR FIRST 08616000 - PARAMETER IN A WRITE STATEMENT; 08617000 + PARARAMETER IN A WRITE STATEMENT; 08617000 STEPIT; 08618000 %%% THE FOLLOWING CODE COMPILES CODE FOR [DPN],[DPN,*], 08619000 %%% [DPN,],[*],[*,*],[*,],[],[,*] 08619010 - %%% AND [,], WHERE DPN IN STOP, DBL, PAGE, OR 08619020 + %%% AND [,], WHERE DPN IS STOP, DBL, PAGE, OR 08619020 %%% NO. THE FIRST (LEFTMOST) IS THE CHANNELSKIP, 08619030 %%% RIGHT JUSTIFIED TO ITS C-FIELD. THE SECOND IS 08619040 %%% THE WAIT-TIME, RESIDING IN THE F-FIELD OF CHANNELSKIP,08619050 - %%% AND ALSO TURNING ON THE EXP-SIGN BIT OF CHANNELSKIP, 08619060 + %%% AND ALSO TURNING ON THE EXP-SIGN BIT OF CHANNELSKIP. 08619060 %%% *"S ARE CONSIDERED TO BE EMPTIES. 08619070 IF ACCUM1~IF ACCUM1~ACCUM[1]="3DBL00" THEN 2 ELSE 08619080 IF ACCUM1="4PAGE0" THEN 4 ELSE 08619090 IF ACCUM1="4STOP0" THEN 16 ELSE 08619095 IF ACCUM1="2NO000" THEN 8 ELSE 0!0 THEN %%% [DPN08620000 - IF STEPI=COMMA THEN %%% HAVE [DPN, 08620010 + IF STEPI=COMMA THEN %%% HAVE [DPN, 08620010 IF STEPI=FACTOP THEN %%% HAVE [DPN,* 08620020 BEGIN EMITNO(ACCUM1); STEPIT END 08621000 ELSE IF ACCUM[1]="6UNLOC" THEN %%% [NS,UNLOCK 08621002 @@ -7263,7 +7269,7 @@ PROCEDURE WRITESTMT; 08528000 COMMENT ERROR 441 MEANS MISSING RIGHT BRACKET IN CARRIAGE08635000 CONTROL PART; 08636000 CHKRTPAREN:IF STEPI = RTPAREN 08637000 - THEN GO TO ONEPARENSH; 08638000 + THEN GO TO ONEPARFNSH; 08638000 IF CHECK(COMMA,442) 08639000 THEN GO TO EXIT; 08640000 COMMENT ERROR 442 MEANS ILLEGAL CARRIAGE CONTROL 08641000 @@ -7339,7 +7345,7 @@ WRITXFORM: IF STEPI = RTPAREN 08647000 IF STEPI ! LISTID AND ELCLASS ! SUPERLISTID 08687000 THEN BEGIN RR1~LISTGEN; GO TO EMITCALL END; 08688000 CHECKER(ELBAT[I]); 08688500 - IF ELCLASS = SUPERLISTID THEN 08689000 + IF ELCLASS = SUPERLISTID THEN 08689000 BEGIN COMMENT SUBSCRIPTED SWITCH LIST ID; 08690000 LISTADDRESS~ELBAT[I].ADDRESS; 08692000 BANA; 08693000 @@ -7441,7 +7447,7 @@ PROCEDURE CLOSESTMT; 08756000 ::=CLOSE(,SAVE)/ 08761000 - - - - - - - - - - - - - - 08762000 (3,0,FILE,4) 08763000 - ** ** ** ** ** ** ** ** ** ** ** ** ** ** 08764000 + ** ** ** ** ** ** ** ** ** ** ** ** ** ** 08764000 CLOSE(,RELEASE)/ 08765000 - - - - - - - - - - - - - - 08766000 (7,0,FILE,4) 08767000 @@ -7451,16 +7457,16 @@ PROCEDURE CLOSESTMT; 08756000 (1,0,FILE,4) 08771000 ::= CLOSE(, PURGE) 08771100 -- -- -- -- -- --- -- -- -- -- -- -- 08771200 - (4,0,FILE,4) 08771300 - ** ** ** ** ** ** *** ** ** ** ** ** ; 08771400 - LABEL EXIT; COMMENT THE LABEL EXIT APPEARS AFTER THE LAST 08772000 - EXECUTABLE STATEMENT IN THE CLOSESTMT ROUTINE; 08773000 - DEFINE THISL = RR1#; COMMENT THISL IS A TEMP CELL 08774000 - FOR THE CURRENT LREGISTER; 08775000 - DEFINE LTEMP = RR2#; COMMENT LTEMP CONTAINS THE 08776000 - L REGISTER SETTING FOR THE 08777000 - SAVE OR RELEASE LITERAL THAT 08778000 - GETS PASSED TO KEN MEYERS; 08779000 + (4,0,FILE,4) 08771300 + ** ** ** ** ** ** *** ** ** ** ** ** ; 08771400 + LABEL EXIT; COMMENT THE LABEL EXIT APPEARS AFTER THE LAST08772000 + EXECUTABLE STATEMENT IN THE CLOSESTMT ROUTINE;08773000 + DEFINE THISL = RR1#; COMMENT THISL IS A TEMP CELL 08774000 + FOR THE CURRENT LREGISTER; 08775000 + DEFINE LTEMP = RR2#; COMMENT LTEMP CONTAINS THE 08776000 + L REGISTER SETTING FOR THE 08777000 + SAVE OR RELEASE LITERAL THAT 08778000 + GETS PASSED TO KEN MEYERS; 08779000 LABEL EMITREST; COMMENT I IS POINTING AT THE UNIT 08780000 DISPOTION PART AND CODE FOR THE LAST THREE08781000 PARAMETERS TO THE FILE CONTROL ROUTINE 08782000 @@ -7489,11 +7495,11 @@ PROCEDURE CLOSESTMT; 08756000 EMITL(7); GO EMITREST; 08803000 END; 08804000 IF ELCLASS = FACTOP 08805000 - THEN BEGIN COMMENT ASTERISK UNTI DISPOSITION PART CASE; 08806000 + THEN BEGIN COMMENT ASTERISK UNIT DISPOSITION PART CASE; 08806000 EMITL(1); GO EMITREST; 08807000 END; 08808000 IF ELCLASS = DECLARATORS AND ELBAT[I].ADDRESS = SAVEV 08809000 - THEN BEGIN COMMENT SAVE UNIT DISPOSITION PART CASE; 08810000 + THEN BEGIN COMMENT SAVE UNIT DISPOSTION PART CASE; 08810000 EMITL(3); GO EMITREST; 08811000 END; 08812000 IF ACCUM[1] ="5PURGE" THEN BEGIN COMMENT FILE PURGE; 08812100 @@ -7523,7 +7529,7 @@ PROCEDURE RWNDSTMT; 08825000 EXECUTABLE STATEMENT IN THE REWIND ROUTINE; 08834000 DEFINE THISL = RR1#; COMMENT THISL IS A TEMP CELL 08835000 FOR THE CURRENT L REGISTER; 08836000 - DEFINE LTEMP = RR2#; COMMENT LTEMP SETTING FOR THE08837000 + DEFINE LTEMP = RR2#; COMMENT LTEMP CONTAINS THE 08837000 L REGISTER SETTING FOR THE 08838000 SAVE OR RELEASE LITERAL THAT 08839000 GETS PASSED TO KEN MEYERS; 08840000 @@ -7574,12 +7580,12 @@ PROCEDURE EXPLICITFORMAT; 08860050 ... 2,3,4,5,6,7 NUMBER OF FILES TO MERGE, OR 08870000 0,3,4,5 ... NUMBER OF SORTTAPES TO USE 08871000 TP5 FL7 SCRATCH TAPES FOR SORT, 08872000 - TP4 FL6 OR MERGE FILES, POINTERS TO 08873000 + TP4 FL6 OR MERGE FILES. POINTERS TO 08873000 TP3 FL5 TOP I/O DESCRIPTORS, OR ZERO 08874000 TP2 FL4 IF NOT USED. 08875000 TP1 FL3 08876000 0 FL2 DISK FILES FOR SORT 08877000 - DK0 FL1 08878000 + DKO FL1 08878000 0/1 0 TRUE IF INPUT PROCEDURE 08879000 0/1 0/1 TRUE IF OUTPUT PROCEDURE 08880000 INF 0 POINTER TO I/O DESC FOR INPUT 08881000 @@ -7725,9 +7731,9 @@ PROCEDURE EXPLICITFORMAT; 08860050 BEGIN 09004000 STREAM PROCEDURE MDESC(WD,TOLOC);VALUE WD; 09005000 BEGIN DI~LOC WD; DS~ SET;SI~ LOC WD; DI~TOLOC;DS~WDS END; 09006000 - COMMENT THE FOLLOWING PROCEDURE PRINTS OUT THE PRT, NAME, AND 09007000 - SEGMENT NUMBER OF THE INTRINSIC PROCEDURES USED IN THE 09008000 - OBJECT PROGRAM; 09009000 +COMMENT THE FOLLOWING PROCEDURE PRINTS OUT THE PRT, NAME, AND 09007000 + SEGMENT NUMBER OF THE INTRINSIC PROCEDURES USED IN THE 09008000 + OBJECT PROGRAM; 09009000 STREAM PROCEDURE WRTINTRSC(SGNO,ALFA,PRT,FIL); 09010000 VALUE SGNO,PRT; 09011000 BEGIN LOCAL COUNT,DEST; 09012000 @@ -7775,7 +7781,7 @@ FILL OPTIONS[*] WITH "5CHECK",0, % 0, 1 09027002 "4XREF0",0, % 52, 53 09027054 "7INCLU",0, % 54,55 %107-09027056 "8CODEF",0, % 56,57 %106-09027058 -0; 09027100 + 0; 09027100 LISTOG:=LISTER:=BOOLEAN(1-ERRORCOUNT.[46:1]); 09028000 OPTIONS[13] := REAL(LISTER); 09028005 COMMENT LISTOG IS NOT SET BY DEFAULT ON TIMESHARING; 09028010 @@ -7982,7 +7988,7 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 09081000 OCT1360001000000000, COMMENT |; OCT0000000000000000, 09206000 OCT0000000000040000, COMMENT $; OCT1370000000000000, COMMENT *; 09207000 OCT1350000600000000, COMMENT -; OCT1240000000160000, COMMENT ); 09208000 - OCT0620000000000000, COMMENT .,; OCT1340010250003470, COMMENT {; 09209000 + OCT0620000000000000, COMMENT .,; OCT1340010250003470, COMMENT .{; 09209000 OCT0000000000000000, OCT1360002000000000, COMMENT /; 09210000 OCT1170000000000000, COMMENT ,; OCT0000000000020000, COMMENT %; 09211000 OCT1340001050002561, COMMENT !; OCT1340011050002460, COMMENT =; 09212000 @@ -8040,9 +8046,9 @@ FILL INFO[2,*] WITH OCT0030000120000000, "2LB000", % THESE ENTRIES ARE 09214105 OCT0130000000040000, "5GAMMA", OCT0000000012600000,%654 09214415 OCT0130000000040000, "5LNGAM", OCT0000000012700000,%657 09214420 OCT0130000000040000, "3TAN00", OCT0000000011100007,%660 09214425 - OCT0130000260000000, "4FAST0", %663 09214426 - OCT0130000270000000, "4SLOW0", %665 09214427 - OCT0130000240000000, "7PROTE", "CT000000", %667 09214428 + OCT0030000260000000, "4FAST0", %663 09214426 + OCT0030000270000000, "4SLOW0", %665 09214427 + OCT0030000240000000, "7PROTE", "CT000000", %667 09214428 OCT2000000000004050, COMMENT POWERS OF TEN ; %670 09214430 OCT0430000250000000, "5FIELD", %671 09214432 0, ">SORT ", "TEMPORAR", "Y0000000", % SORTA %673 09214435 @@ -8110,7 +8116,7 @@ DO PUT(TAKE(NEXTINFO)&STACKHEAD[GT2~TAKE(NEXTINFO+1)MOD 125][35:35:13], 09214520 "2# ", 09251105 "2# ", 09251106 "0# " 09251107 - ; 09251200 +; 09251200 NEXTTEXT~26 ; 09251300 DO UNTIL STEPI = BEGINV; 09252000 BUILDLINE.[45:1]~FALSE; 09252050 @@ -8120,7 +8126,7 @@ NEXTTEXT~26 ; 09251300 LITC 0 --- THIS PUTS A BOTTOM ON THE STACK 09255000 AND IS ALSO USED AS A ONE SYLLABLE 09256000 CHARACTER MODE PROGRAM TO CAUSE AN EXIT. 09257000 - ITS PRIMARY FUNCTION IS TO CUT BACK 09258000 + ITS PRIMARY FUNTION IS TO CUT BACK 09258000 THE STACK AFTER A COMMUNICATE OPERATOR. 09259000 MKS --- THIS SETS THE PROGRAM UP FOR RUNNING 09260000 IN SUBPROGRAM LEVEL.THIS IS TO ALLOW 09261000 @@ -8139,12 +8145,12 @@ NEXTTEXT~26 ; 09251300 GT1 := GETSPACE(TRUE,-5); % SEG.#2 DESCR. 09274000 INSERTCOP:=1; %107-09274100 ERRORTOG~TRUE; BLOCK(FALSE); 09275000 - COMMENT THIS CODE WILL PUT AN EXTRA CARD ON OCRDIMG TAPE 09275100 + COMMENT THIS CODE WILL PUT AN EXTRA CARD ON 0CRDIMG TAPE 09275100 THUS AVOIDING E.O.F. NO LABEL CONDITION WHEN PATCHING 09275200 THE END. CARD OFF AN INPUT TAPE; 09275250 IF NEWTOG THEN 09275300 BEGIN FILL LIBARRAY[*] WITH "END;END."," ","LAST CAR", 09275350 - "D ON OCR","DING TAP","E ", " "," ", 09275400 + "D ON 0CR","DING TAP","E ", " "," ", 09275400 " ","99999999"; 09275450 WRITE(NEWTAPE,10,LIBARRAY[*]) 09275500 END; 09275550 @@ -8165,7 +8171,7 @@ NEXTTEXT~26 ; 09251300 PRT AS AN ABSENT DATA DESCRIPTOR.IT MAY BE RECOGNIZED IN 09282000 INFO BECAUSE IT IS MINUS. THE FIRST WORD IN EACH OF THESE 09283000 ENTRIES LOOKS LIKE THE REST OF INFO EXCEPT THAT THE INCR 09284000 - FIELD IS BROKEN INTO 2 PARTS, [33:2] IS USED TO ADD TO THE 09285000 + FIELD IS BROKEN INTO 2 PARTS. [33:2] IS USED TO ADD TO THE 09285000 INDEX OF CURRENT WORD TO LINK TO NEXT ENTRY.THE REST OF 09286000 THE INCR FIELD IS USED BY IMPFUN. THE ADDITIONAL INFO 09287000 PORTION INDICATES AN INDEX THAT ALLOWS THE MCP TO ASSIGN 09288000 @@ -8263,7 +8269,7 @@ COMMENT ADD IN CORE ESTIMATE FOR SORT; 09361181 IF GTI1 } 32000 THEN GTI1~ 32000; 09361200 COMMENT AT THIS POINT GTI1 HAS THE NEEDED TOTAL CORE REQD; 09361210 COMMENT WRITE OUT FILE PARAMETER BLOCK; 09393000 - GT1~MIN((IDLOC-IDLOCTEMP).[33:15]+1, 128);% AHA 09394000 + GT1~MIN((IDLOC-IDLOCTEMP).[33:15]+1, 128);% AHA 09394000 MOVE(GT1,IDARRAY[0],EDOC[0,0]); 09395000 ZEROUT(IDARRAY[0],0,30); 09395500 IDARRAY[4]:=MOVEANDBLOCK(EDOC,GT1,0); %106-09396000 @@ -8291,12 +8297,12 @@ COMMENT WRITE DISK SEGMENT ZERO; 09406000 LOCK(NEWTAPE,*); % CLOSE WITH CRUNCH. %119-09407400 IF LISTER OR NOT NOHEADING THEN 09408000 BEGIN FORMAT PAN("NUMBER OF ERRORS DETECTED =",I4,". COMPILAT"09409000 - ,"ION TIME = ",I5," SECONDS."X22,2A4/ 09410000 + ,"ION TIME =",I5," SECONDS.",X22,2A4/ 09410000 "PRT SIZE =",I4,"; TOTAL SEGMENT SIZE =",I6, 09411000 " WORDS; DISK SIZE =",I4," SEGS; NO. PGM. SEGS =", 09412000 I4/"ESTIMATED CORE STORAGE REQUIRED =",I6," WORDS.", 09413000 /"ESTIMATED AUXILIARY MEMORY REQUIRED =",I6," WORDS.", 09414000 - /"NUMBER OF CARD-IMAGES PROCESSED =",F7.0); 09414100 + /"NUMBER OF CARD-IMAGES PROCESSED = ",F7.0); 09414100 FORMAT SERR("THERE WERE ",V8," SEQUENCE ERRORS"); 09414101 MOVECHARACTERS(4,INFO[LASTSEQROW,LASTSEQUENCE-1],0,GT1,4);09415000 MOVECHARACTERS(4,INFO[LASTSEQROW,LASTSEQUENCE-1],4,GT2,4);09416000 @@ -8313,7 +8319,7 @@ END END END PROGRAM; 09420000 FORMATING ROUTINES TO PRODUCE DESIRED I/O. THERE IS ONE 10002000 WORD OF PSEUDO CODE PRODUCED FOR EACH EDITING PHRASE. IN 10003000 ADDITION ONE WORD IS PRODUCED FOR EACH LEFT PARENTHESIS, 10004000 - RIGHT PARENTHESIS, AND STROKE. EACH SIX CHARACTERS OF 10005000 + RIGHT PARENTHESIS, AND STROKE. EACH SIX CHARACTORS OF 10005000 STRING ALSO PRODUCES ONE WORD. IN ADDITION THERE IS ONE 10006000 EXTRA WORD FOR EACH LEFT PARENTHESIS WITH NO REPEAT PART. 10007000 THIS IS AN IMPLIED STROKE TO CONTROL END OF LINE CONDI- 10008000 @@ -8323,7 +8329,7 @@ END END END PROGRAM; 09420000 SKIP = [32:6], 10012000 CODE = [2:4], 10013000 W = [6:6], 10014000 - W1 = [28:4], W2 = [24:4], D1 = [20:4], D2 = [16:4], 10015000 + W1 = [28:4], W2 = [24:4], D1 = [20:4], D2 = [16:4]. 10015000 S IS A DISTINGUISHER BETWEEN EDITING PHRASES AND OTHER 10016000 TYPE WORDS. CODE IS THE INTERNAL CODE TO DISTINGUISH 10017000 BETWEEN THE VARIOUS EDITING PHRASES OR BETWEEN THE OTHER 10018000 @@ -8331,7 +8337,7 @@ END END END PROGRAM; 09420000 IF CODE = 0 THEN RIGHTPAREN, 10020000 IF CODE = 2 THEN STRING, 10021000 IF CODE = 4 THEN LEFTPAREN, 10022000 - IF CODE = 6 THEN STROKE, 10023000 + IF CODE = 6 THEN STROKE. 10023000 IF CODE = 8 THEN SCALE. 10023100 GIVEN S = 0 WE HAVE 10024000 IF CODE = 0 THEN D, 10025000 @@ -8344,8 +8350,8 @@ END END END PROGRAM; 09420000 IF CODE = 11 THEN U, 10030100 IF CODE =12 THEN O, 10031000 IF CODE = 13 THEN V, 10031100 - IF CODE =14 THEN L, 10032000 - IF CODE = 15 THEN R, 10032100 + IF CODE =14 THEN L. 10032000 + IF CODE = 15 THEN R. 10032100 W IS THE FIELD WIDTH. 10033000 FOR STRINGS [12:36] IS W CHARACTORS OF ALPHA, RIGHT 10034000 ADJUSTED. THE REST OF THE FIELDS ARE MEANINGLESS. 10035000 @@ -8356,33 +8362,33 @@ END END END PROGRAM; 09420000 A NON-ZERO REPEAT FIELDS. 10040000 THE DESCRIPTION OF W1,W2, D1, AND D2 APPLIES ONLY TO 10041000 FORMATING TYPES. FOR THE PURPOSES OF DESCRIPTION LET 10042000 - D BE THE DECIMAL PART. W IS, OF COURSE, THE WIDTH, 10043000 + D BE THE DECIMAL PART. W IS, OF COURSE, THE WIDTH. 10043000 THEN FOR D, W1=W2=D1=D2=SKIP=0. 10044000 FOR X, W = SKIP = WIDTH MOD 64 AND W1 = WIDTH DIV 64. 10045000 W2 = D1 = D2 =0. 10046000 FOR T, W=(WIDTH-1) MOD 64, W1=(WIDTH-1) DIV 64, AND 10046010 W2=D1=D2=0. 10046020 - FOR A, W1 = W, SKIP = 0 IF W < 6, OTHERWISE 10047000 - W1 = 6, SKIP = W-6, W2=D1=D2=0. 10048000 + FOR A, W1 = W, SKIP = 0 IF W < 6. OTHERWISE 10047000 + W1 = 6, SKIP = W-6. W2=D1=D2=0. 10048000 FOR I: SKIP = IF W > 16 THEN W-16 ELSE 0. 10049000 IF W > 8 THEN W1 = 8, W2 = W-SKIP-8. 10050000 - IF W < 8 THEN W1 = W, W2 = 0, ALWAYS D1=D2=0. 10051000 - FOR F IF D < 8 THEN D1 = D, D2=0, 10052000 - IF D > 8 THEN D1 = 8, D2=D-8, 10053000 + IF W < 8 THEN W1 = W, W2 = 0. ALWAYS D1=D2=0. 10051000 + FOR F IF D < 8 THEN D1 = D, D2=0. 10052000 + IF D > 8 THEN D1 = 8, D2=D-8. 10053000 IF D >16 THEN ERROR. 10054000 IF W-D-1 > 16 THEN SKIP = W-D-17, OTHERWISE 10055000 SKIP=0. 10056000 - IF W-D-1 > 8 THEN W1=8, W2=W-D-1-SKIP-8, 10057000 + IF W-D-1 > 8 THEN W1=8, W2=W-D-1-SKIP-8. 10057000 IF W-D-1 < 8 THEN W1=W-D-1,W2=0. 10058000 FOR E D1 AND D2 ARE CALCULATED AS IN F EXCEPT THAT WE 10059000 - D+1 FOR D, SKIP = W-D-6, W1=W2=0. 10060000 - FOR O, W1=W2=D1=D2=SKIP=0, 10061000 - FOR L, W2=D1=D2=0, IF W > 5 THEN W1=5 ELSE W1 = W, 10062000 - SKIP = W-W1, 10063000 + D+1 FOR D. SKIP = W-D-6. W1=W2=0. 10060000 + FOR O, W1=W2=D1=D2=SKIP=0. 10061000 + FOR L, W2=D1=D2=0. IF W > 5 THEN W1=5 ELSE W1 = W. 10062000 + SKIP = W-W1. 10063000 FOR U: SKIP = W1 = W2 = D1 = D2 = 0. 10063100 FOR B: SEE U-PHRASE DESCRIPTION. 10063110 FOR R: SEE ABOVE F-PHRASE DESCRIPTION. 10063200 - FOR V: SKIP = W1 = W2 = UNSET, D1,D2 AS IN ABOVE 10063300 + FOR V: SKIP = W1 = W2 = UNSET. D1,D2 AS IN ABOVE 10063300 F-PHRASE DESCRIPTION. 10063400 FORMATPHRASE USES RECURSION TO DO ANALYSIS OF SYNTAX. THE10064000 WORDS ARE GENERATED AND PLACED DIRECTLY INTO THE CODE 10065000 @@ -8421,7 +8427,7 @@ END END END PROGRAM; 09420000 & REAL(S) [ 1:47:1]; 10098000 WHIPOUT(W) END EMITFORMAT; 10099000 STREAM PROCEDURE PACKALPHA(PLACE,LETTER,CTR); 10100000 - VALUE LETTER, CTR; 10101000 + VALUE LETTER,CTR; 10101000 BEGIN DI ~ PLACE; DS ~ LIT "B"; 10102000 SI ~ LOC CTR; SI ~ SI+7; DS ~ CHR; 10103000 SI ~ PLACE; SI ~ SI+3; DS ~ 5 CHR; 10104000 @@ -8445,7 +8451,7 @@ END END END PROGRAM; 09420000 SKIP ~ F; 10116000 EMITFORMAT(TRUE,RLEFT,REPEAT,1,0,0,0,0,0); 10117000 DO BEGIN NEXTENT; 10118000 - EL: IF FORMATPHRASE THEN GO TO EX END 10119000 + EL: IF FORMATPHRASE THEN GO TO EX END 10119000 UNTIL ELCLASS ! ","; 10120000 WHILE ELCLASS = "/" 10121000 DO BEGIN EMITFORMAT(TRUE,RSTROKE,0,1,0,0,0,0,0); 10122000 @@ -8496,7 +8502,7 @@ END END END PROGRAM; 09420000 WHIPOUT(W) 10148000 END UNTIL FALSE END 10149000 ELSE BEGIN CODE~ELCLASS; 10150000 - IF CODE = "U" OR CODE = "B" THEN 10150100 + IF CODE = "U" OR CODE = "B" THEN 10150100 BEGIN %%% ALL OF COMPILER CODE TO HANDLE U-PHRASE. 10150110 NEXTENT ; 10150120 SKIP ~ 0 ; 10150125 @@ -8517,8 +8523,8 @@ END END END PROGRAM; 09420000 ELSE GO TO EX 10150205 END 10150210 END 10150215 - ELSE W ~-63 ; %%% PHRASE IS D. 10150220 - EMITFORMAT(FALSE,RD,REPEAT,SKIP,W,REAL(CODE="B"), 10150225 + ELSE W ~-63 ; %%% PHRASE IS U. 10150220 + EMITFORMAT(FALSE,RU,REPEAT,SKIP,W,REAL(CODE="B"), 10150225 REAL(W<0),0,0) ; 10150230 GO TO EXIT ; 10150260 END OF U PHRASE HANDLER ; 10150270 @@ -8554,7 +8560,7 @@ END END END PROGRAM; 09420000 IF EXAMIN(NCR)="." THEN 10167600 BEGIN NEXTENT; 10167700 IF GETINT THEN REPEAT.[14:1]~1 ELSE 10167800 - GT1~DIVIDE(ELCLASS,D1,D2); 10167900 + GT1~DIVIDE(ELCLASS,D1,D2); 10167900 ELCLASS :=-ELCLASS; 10167910 END; END ELSE IF CODE="L" 10168000 THEN BEGIN CODE ~ RL; W1 ~ 5; 10169000 @@ -8653,11 +8659,11 @@ END END END PROGRAM; 09420000 LABEL FINAL,PACKIN; 10258300 LABEL BACK,SKSC,EXIT; 10259000 REAL DINFO; 10259200 - BOOLEAN TSSTREAMTOG; % 1289 10259400 + BOOLEAN TSSTREAMTOG; % 1289 10259400 DINFO ~ J.[18:15]; 10259600 J ~ J.[33:15]; 10259700 TB1~ FALSE; 10260000 - TSSTREAMTOG~ STREAMTOG; % 1289 10260050 + TSSTREAMTOG~ STREAMTOG; % 1289 10260050 STREAMTOG~TRUE; 10260100 CHARCOUNT ~ 0; 10261000 DEFINECTR ~ 1; LASTRESULT ~ 2; 10262000 @@ -8719,9 +8725,9 @@ EXIT: DEFINECTR := 0; STREAMTOG~TSSTREAMTOG; % 1289 10284000 REAL T1,T2,T3; 10291000 LABEL BOOFINISH,STORE,LRTS; 10292000 DIALA ~ DIALB ~ 0; 10293000 - IF ELCLASS= FORV THEN FORSTMT COMMENT FORCLAUSE; 10294000 + IF ELCLASS = FORV THEN FORSTMT COMMENT FORCLAUSE; 10294000 ELSE IF ELCLASS = LFTBRKET 10295000 - THEN BEGIN COMMENT GORUP OF LIST ELEMENTS; 10296000 + THEN BEGIN COMMENT GROUP OF LIST ELEMENTS; 10296000 DO BEGIN STEPIT; LISTELEMENT END UNTIL ELCLASS!COMMA;10297000 IF ELCLASS = RTBRKET THEN STEPIT ELSE ERR(158) END 10298000 ELSE BEGIN COMMENT THE MEAT OF THE MATTER: 10299000 @@ -8765,7 +8771,7 @@ EXIT: DEFINECTR := 0; STREAMTOG~TSSTREAMTOG; % 1289 10284000 FLAG FOR A LIST, THE CODE TO JUMP AROUND THE LIST, 10336000 THE INITIAL JUMP OF THE LIST, THE OBTAINING OF A PRT CELL 10337000 FOR THE LIST, THE OBTAINING OF AN ACCIDENTAL PROGRAM 10338000 - DESCRIPTOR, THE STUFFING OF F INTO THIS DESCRIPTOR, 10339000 + DESCRIPTOR, THE STUFFING OF F INTO THIS DESCRIPTOR. 10339000 LISTGEN EXPECTS I TO POINT AT FIRST LIST ELEMENT AND 10340000 LEAVES I POINTING AT FIRST ITEM BEYOND RIGHTPAREN. THE 10341000 VALUE RETURNED BY LISTGEN IS THE LOCATION OF THE 10342000 @@ -8796,14 +8802,14 @@ EXIT: DEFINECTR := 0; STREAMTOG~TSSTREAMTOG; % 1289 10284000 EMITB(BFW,JUMPLACE,L); 10366000 STUFFF(LISTPLACE); 10367000 IF ELCLASS ! RTPAREN THEN ERR(104) ELSE STEPIT 10368000 - END LISTGEN; 10369000 + END LISTGEN; 10369000 BOOLEAN PROCEDURE MERRIMAC; 10370000 BEGIN COMMENT THIS TIME THE MERRIMAC WILL HANDLE THE MONITOR. 10371000 03 JULY 1963 10372000 THERE ARE SIX TYPES OF MONITOR LIST ELEMENTS. THEY ARE 10373000 LABELS, SWITCHES, SIMPLE VARIABLES, SUBSCRIPTED VARIABLES,10374000 ARRAYS, AND FUNCTION DESIGNATORS. 10375000 - WITH ONE EXCEPTION, THE MERRIMAX ROUTINES ONLY FUNCTION 10376000 + WITH ONE EXCEPTION, THE MERRIMAC ROUTINES ONLY FUNCTION 10376000 IS TO SAVE INFORMATION SO THAT OTHER ROUTINES, SUCH AS THE10377000 VARIABLE ROUTINE, CAN GENERATE THE ACTUAL CODE THAT CALLS 10378000 THE PRINTI ROUTINE AT OBJECT TIME. THE ONE EXCEPTION IS 10379000 @@ -8844,13 +8850,13 @@ EXIT: DEFINECTR := 0; STREAMTOG~TSSTREAMTOG; % 1289 10284000 FORMAT TYPE PRINTOUT 10414000 ----------- -------- 10415000 0 ID 10416000 - --------- ----- 10417000 + --------- ------ 10417000 1 ID=V 10418000 - --------- ----- 10419000 + --------- ------ 10419000 2 ID[S1---SN]=V 10420000 - --------- ----- 10421000 + --------- ------ 10421000 3 ID[S1---SN]=V 10422000 - --------- ----- 10423000 + --------- ------ 10423000 4 ID=V1---VN 10424000 *********** ******** 10425000 THE FORMAT THAT V IS PRINTED IN WILL BE DETERMINED BY10426000 @@ -8882,7 +8888,7 @@ EXIT: DEFINECTR := 0; STREAMTOG~TSSTREAMTOG; % 1289 10284000 --------- ------------------------- 10452000 4 (DESCRIPTOR FOR THE ARRAY,N,TYPEV, 10453000 POWERSOFTEN,ID,CHARI,FILE,4) 10454000 - *********** *************************** 10455000 + *********** **************************** 10455000 SINCE THE RESTRICTION EXISTS THAT THE SCOPE OF THE 10456000 MONITOR FOR A LABEL OR SWITCH MUST BE THE SAME AS 10457000 THE SCOPE OF THE LABEL OR SWITCH, THE INFORMATION 10458000 @@ -8898,7 +8904,7 @@ EXIT: DEFINECTR := 0; STREAMTOG~TSSTREAMTOG; % 1289 10284000 WORD WILL BE SET. 10468000 SIMPLE VARIABLES- A NEW ENTRY IS MADE IN INFO WITH 10469000 ONE EXTRA WORD WHICH CONTAINS THE ADDRESS OF 10470000 - THE MONITOR FILE IN [37:11], I WILL HAVE A 10471000 + THE MONITOR FILE IN [37:11]. I WILL HAVE A 10471000 DEFINE SVARMONFILE = [37:11]#. 10472000 ARRAYS- A NEW ENTRY IS MADE IN INFO WITH THE SAME 10473000 NUMBER OF WORDS AS THE ORIGIONAL ENTRY. THE 10474000 @@ -9097,14 +9103,14 @@ IF LEVEL=(RR2~ELBAT[I]).LVL THEN 10656010 PUT(ABS(TAKE(RR2.LINK+1)),RR2.LINK+1) ; 10656015 END ; 10656016 PUTNBUMP(NOPAR ~ TAKEFRST & 10656030 - FILEIDENT[INSERTFILE]); TESTVARB~(NOPAR10657000 + FILEIDENT[INSERTFILE]); TESTVARB~(NOPAR 10657000 ~NOPAR. NOPARPART )+(INC~(ELBATWORD~ELBAT[I]). 10658000 LINK+ELBATWORD.INCR); 10659000 DO PUTNBUMP(TAKE(INC~INC+1)) 10660000 UNTIL INC } TESTVARB; 10661000 GO CHKCOMMA; 10662000 END; 10663000 - ERROR(406); GO TO EXIT; 10664000 + ERROR(406); GO TO EXIT; 10664000 COMMENT ERROR 406 IS IMPROPER MONITOR LIST ELEMENT; 10665000 CHKCOMMA:IF STEPI = COMMA 10666000 THEN GO MARKMONITORED; 10667000 @@ -9142,12 +9148,12 @@ PROCEDURE DMUP; 10681000 ENTRY TO THE BLOCK CONTAINING THE DUMP DECLARATION. THE 10699000 OTHER TYPE CODE IS ONLY EXECUTED WHEN THE DUMPOR IS PASSED10700000 . THIS CODE THEN COMPARES THE DUMPORS COUNTER WITH THE 10701000 - DUMP INDICATOR, IF THEY ARE NOT EQUAL IT JUMPS TO EXIT. 10702000 + DUMP INDICATOR. IF THEY ARE NOT EQUAL IT JUMPS TO EXIT. 10702000 IF THEY ARE EQUAL IT THEN PROCEEDS TO CALL PRINTI ONCE 10703000 FOR EACH DUMP LIST ELEMENT. FOR A DESCRIPTION OF PRINTI 10704000 SEE THE COMMENTS FOR THE MERRIMAC ROUTINE; 10705000 LABEL START; COMMENT WHEN START IS REACHED, I MUST BE 10706000 - POINTING AT THE FILE IDENTIFIER IN THE DUMP 10707000 + POINTING AT THE FILE INDENTIFIER IN THE DUMP 10707000 DECLARATION; 10708000 LABEL EXIT; COMMENT EXIT APPEARS AT THE END OF THE DMUP 10709000 ROUTINE. NO STATMENTS ARE EXECUTED AFTER IT 10710000 @@ -9176,7 +9182,7 @@ PROCEDURE DMUP; 10681000 ZERO AS SUBSCRIPT CODE IS GENERATED;10733000 LABEL PASSN; COMMENT THE CODE AT PASSN PASSES N (THE 10734000 NUMBER OF DIMENSIONS) TO THE PRINTI ROUTINE; 10735000 - LABEL SUBSLOOP; COMMENT THE CODE AT SUBLOOP PASSES 10736000 + LABEL SUBSLOOP; COMMENT THE CODE AT SUBSLOOP PASSES 10736000 SUBSCRIPTS TO PRINTI; 10737000 ARRAY LABELCTR[0:100]; COMMENT LABELCTR IS AN ARRAY THAT 10738000 HOLDS THE ADDRESSES OF ALL LABEL 10739000 @@ -9347,7 +9353,7 @@ PROCEDURE DMUP; 10681000 IF CHECK(RTPAREN,416) 10902000 THEN GO TO EXIT; 10903000 COMMENT ERROR 416 MEANS ILLEGAL DUMP LIST ELEMENT 10904000 - DELIMETER; 10905000 + DELIMITER; 10905000 LEXIT~L; EMITL(0); EMITO(RTS); 10906000 JUMPCHKX; STEPIT; 10907000 IF CHECK(LABELID,417) 10908000 @@ -9397,12 +9403,12 @@ PROCEDURE DMUP; 10681000 OF EFFICIENCY. IF A SWITCH IS ONLY CALLED ONE THE CODE 10944000 IS QUITE A BIT BETTER. AFTER SWITCHGEN GOTOG IS TRUE IF 10945000 A COMMUNICATE MUST BE USED. THE BLOCK ROUTINE MARKS SUCH 10946000 - SWITCHES FORMAL. THIS IS, OF COURSE, A FICTION, FOR 10947000 + SWITCHES FORMAL. THIS IS, OF COURSE, A FICTION. FOR 10947000 SIMPLE SWITCHES SWITCHGEN LEAVES THE INDEX TO INFO IN EDOC10948000 SO THAT PURGE CAN FIND THE LABELS. IT SHOULD BE NOTED 10949000 THAT A SWITCH EXPECTS THE SWITCH INDEX TO BE FOUND IN 10950000 JUNK. THE RESULT RETURNED BY SWITCHGEN IS WHETHER OR NOT 10951000 - TO STUFF F INOT A SWITCH DESCRIPTOR, SINCE A SWITCH DE- 10952000 + TO STUFF F INTO A SWITCH DESCRIPTOR, SINCE A SWITCH DE- 10952000 SCRIPTOR IS AN ACCIDENTAL ENTRY DESCRIPTOR; 10953000 BOOLEAN PROCEDURE SWITCHGEN(BEFORE,PD); %113-10954000 VALUE BEFORE; BOOLEAN BEFORE; REAL PD; %113-10954100 @@ -9509,7 +9515,7 @@ BOOLEAN PROCEDURE SWITCHGEN(BEFORE,PD); %113-10954000 IF ELCLASS=FACTOP THEN 12041100 BEGIN 12041110 EMITO(MKS); EMITL(4); EMITV(GNAT(POWERALL)) ; 12041130 - EMITO(DEL); EMITO(DEL); GO L4 ; 12041140 + EMITO(DEL); EMITO(DEL); GO L4 ; 12041140 END ; 12041160 IF ELCLASS{INTID AND ELCLASS}BOOID THEN 12042000 BEGIN 12043000 @@ -9591,28 +9597,28 @@ ERROR: 12065100 ERR(T) ; 12065200 EXIT: 12065300 END OF CMPLXSTMT ; 12065400 -REAL PROCEDURE FIXDEFINEINFO(T); VALUE T; REAL T; 12101000 - BEGIN REAL K,S,P,J,EL; 12102000 - MACROID~TRUE; 12107000 - P ~ GIT(FIXDEFINEINFO ~ T); 12108000 - STOPDEFINE~TRUE; 12111000 - EL~TABLE(NXTELBT); 12112000 - NXTELBT~NXTELBT-1; 12113000 - IF EL!LEFTPAREN AND EL!LFTBRKET THEN 12114000 - FLAG(175) % [ OR ( EXPECTED. 12115000 - ELSE DO BEGIN J~J+1; 12116000 - TEXT[NEXTTEXT.LINKR,NEXTTEXT.LINKC] := TAKE(P); %122- 12117000 - NEXTTEXT := NEXTTEXT + 1; %122- 12118000 - PUT(TAKE(P) & NEXTTEXT[11:32:16] & 12121000 - DEFSTACKHEAD[35:35:13], P); 12122000 - DEFSTACKHEAD ~ P.LINK; 12123000 - P ~ GIT(K~P); 12123500 - DEFINEGEN(TRUE,0); 12124000 - END UNTIL EL ~ ELBAT[NXTELBT].CLASS ! COMMA OR K = P; 12125000 - IF EL!RTPAREN AND EL!RTBRKET OR K!P THEN 12126000 - FLAG(174);%INCORRECT # OF PARAMS IN DEFINE INVOCATION. 12126100 - MACROID~FALSE; 12127000 - END; 12128000 + REAL PROCEDURE FIXDEFINEINFO(T); VALUE T; REAL T; 12101000 + BEGIN REAL K,S,P,J,EL; 12102000 + MACROID~TRUE; 12107000 + P ~ GIT(FIXDEFINEINFO ~ T); 12108000 + STOPDEFINE~TRUE; 12111000 + EL~TABLE(NXTELBT); 12112000 + NXTELBT~NXTELBT-1; 12113000 + IF EL!LEFTPAREN AND EL!LFTBRKET THEN 12114000 + FLAG(175) % [ OR ( EXPECTED. 12115000 + ELSE DO BEGIN J~J+1; 12116000 + TEXT[NEXTTEXT.LINKR,NEXTTEXT.LINKC] := TAKE(P); %122-12117000 + NEXTTEXT := NEXTTEXT + 1; %122-12118000 + PUT(TAKE(P) & NEXTTEXT[11:32:16] & 12121000 + DEFSTACKHEAD[35:35:13], P); 12122000 + DEFSTACKHEAD ~ P.LINK; 12123000 + P ~ GIT(K~P); 12123500 + DEFINEGEN(TRUE,0); 12124000 + END UNTIL EL ~ ELBAT[NXTELBT].CLASS ! COMMA OR K = P; 12125000 + IF EL!RTPAREN AND EL!RTBRKET OR K!P THEN 12126000 + FLAG(174);%INCORRECT # OF PARAMS IN DEFINE INVOCATION. 12126100 + MACROID~FALSE; 12127000 + END; 12128000 PROCEDURE DEFINEPARAM(DINFO, N); 12150000 COMMENT DEFINEPARAM GENERATES EVERYTHING (EXCEPT THE ELBAT 12150100 WORD) FOR AN INFO TABLE ENTRY FOR A PARAMETER OF A 12150200 @@ -9837,7 +9843,7 @@ END DEFINEPARAM; 12166000 BEGIN ERR(291); GO START END 13164000 ELSE BEGIN 13165000 EMITO(MKS); EMITL(5); EMITN(SAVADDRSF) ; 13166000 - GT1~FILEATTRIBUTEHANDLER(FIO); 13167000 + GT1~FILEATTRIBUTEHANDLER(FIO) ; 13167000 END ; 13168000 END ; 13169000 END ; 13170000 @@ -9875,7 +9881,7 @@ END DEFINEPARAM; 12166000 EMITL(1); 13196450 EMITV(5); COMMENT CREATE AN ARRAY TO HOLD 13196460 LIST DESCRIPTORS FOR SWITCH LIST; 13196470 - COMMENT USED TO USE EMITN(XITR), DOESN"T ANYMORE; 13196480 + COMMENT USED TO USE EMITN(XITR). DOESN"T ANYMORE; 13196480 J~-1; STOPENTRY ~ FALSE; 13196490 DO 13196500 BEGIN 13196510 @@ -10030,7 +10036,7 @@ MOVE(WORDCOUNT,ACCUM,INFO[NEXTINFO.LINKR,NEXTINFO.LINKC]); 13310000 LASTINFO~NEXTINFO; 13311000 IF NEXTINFO ~ NEXTINFO+WORDCOUNT } 8192 THEN 13312000 BEGIN FLAG(199); GO TO ENDOFITALL END; 13312500 - END; 13313000 + END; 13313000 PROCEDURE ENTRY(TYPE); 13314000 VALUE TYPE; 13315000 REAL TYPE; 13316000 @@ -10042,17 +10048,17 @@ COMMENT 13317000 FOR THE UPCOMING COMMUNICATE TO GET STORAGE FOR THE ARRAY(S) ;13322000 BEGIN 13323000 BOOLEAN SVTOG;% 13323010 - J~0;I~I-1; 13324000 - DO 13325000 - BEGIN 13326000 - STOPDEFINE ~TRUE; STEPIT; SCATTERELBAT; 13327000 - IF FORMALF~SPECTOG 13328000 - THEN 13329000 - BEGIN 13330000 - IF TYPE{INTARRAYID AND TYPE}BOOARRAYID THEN% 13330550 - IF VONF THEN BEGIN SVTOG ~ ERRORTOG; FLAG(15);% 13330600 - SPECTOG ~ ERRORTOG ~ SVTOG; END;% 13330650 - IF ELCLASS!SECRET 13331000 + J~0;I~I-1; 13324000 + DO 13325000 + BEGIN 13326000 + STOPDEFINE ~TRUE; STEPIT; SCATTERELBAT; 13327000 + IF FORMALF~SPECTOG 13328000 + THEN 13329000 + BEGIN 13330000 + IF TYPE{INTARRAYID AND TYPE}BOOARRAYID THEN% 13330550 + IF VONF THEN BEGIN SVTOG ~ ERRORTOG; FLAG(15);% 13330600 + SPECTOG ~ ERRORTOG ~ SVTOG; END;% 13330650 + IF ELCLASS!SECRET 13331000 THEN FLAG(002); 13332000 BUP~BUP+1 13333000 END 13334000 @@ -10077,7 +10083,7 @@ COMMENT 13317000 EMITL(ADDRSF); EMITN(10); 13347500 END 13347510 ELSE CHECKDISJOINT(ADDRSF); 13347520 - END; 13348000 + END; 13348000 IF XREF AND NOT SPECTOG THEN % ERASE PREVIOUS XREF ENTRY. 13348100 XREFPT~XREFPT-REAL(ELBAT[I]!0); % GET RID OF LAST CREF 13348200 KLASSF~TYPE; MAKEUPACCUM;E; J~J+1; 13349000 @@ -10130,17 +10136,17 @@ COMMENT 13377000 MKS 13396000 DESC B 13397000 DESC C 13398000 - LITC 0 (LOWER BOUND MUST BE PASSED FOR OWN) 13399000 + LITC 0 (LOWER BOUND MUST BE PASSED FOR OWN) 13399000 OPDC X 13400000 - LITC JUNK (JUNK CELL) 13401000 - ISN (INTEGERIZE UPPER BOUND) 13402000 - LITC 1 (COMPUTE SIZE 13403000 - ADD OF DIMENSION 13404000 - LITC 1 (LOWER BOUND,SECOND DIMENSION) 13405000 + LITC JUNK (JUNK CELL) 13401000 + ISN (INTEGERIZE UPPER BOUND) 13402000 + LITC 1 (COMPUTE SIZE 13403000 + ADD OF DIMENSION 13404000 + LITC 1 (LOWER BOUND,SECOND DIMENSION) 13405000 CHS 13406000 - LITC 12 (SIZE SECOND DIMENSION) 13407000 - LITC 2 (NUMBER DIMENSIONS) 13408000 - LITC 2 (NUMBER ARRAYS) 13409000 + LITC 12 (SIZE SECOND DIMENSION) 13407000 + LITC 2 (NUMBER DIMENSIONS) 13408000 + LITC 2 (NUMBER ARRAYS) 13409000 LITC OWNCOM (OWN ARRAY COMMUNICATE) 13410000 COM 13411000 DESC XITR 13412000 @@ -10160,7 +10166,7 @@ COMMENT 13377000 SUB UPPER 13426000 LITC 1 -LOWER 13427000 ADD +1) 13428000 - OPDC M (COMPUTER LOWER BOUND 13429000 + OPDC M (COMPUTE LOWER BOUND 13429000 OPDC N SECOND DIM) 13430000 ADD 13431000 LITC MNT (GET CELL FOR SECOND LOWER BOUND) 13432000 @@ -10227,17 +10233,17 @@ TWO:IF STEPI=ADOP THEN 13474000 ADDCON~SUBC 13492000 END; 13493000 T2~T3|4+ADDCON 13494000 - END 13495000 - ELSE 13496000 - BEGIN 13497000 - LLITOG~FALSE; 13498000 - IF T1!0 THEN I~I-1; 13499000 - T2:=GETSPACE(P2,-1);%TEMP. 13500000 - AEXP;EMITSTORE(T2,ISN); 13501000 - T2~T2|4+SUBC+2; 13502000 - IF ELCLASS!COLON THEN 13503000 - FLAG(017);I~I-1 13504000 - END; 13505000 + END 13495000 + ELSE 13496000 + BEGIN 13497000 + LLITOG~FALSE; 13498000 + IF T1!0 THEN I~I-1; 13499000 + T2:=GETSPACE(P2,-1);%TEMP. 13500000 + AEXP;EMITSTORE(T2,ISN); 13501000 + T2~T2|4+SUBC+2; 13502000 + IF ELCLASS!COLON THEN 13503000 + FLAG(017);I~I-1 13504000 + END; 13505000 IF P2 THEN 13506000 BEGIN 13507000 IF LLITOG AND T3=0 THEN EMITL(0);13508000 @@ -10249,8 +10255,8 @@ TWO:IF STEPI=ADOP THEN 13474000 T=RTBRKET 13514000 THEN 13515000 BEGIN 13516000 - EMITL(T4~ELBAT[I-1].ADDRESS);13517000 - ULITOG~TRUE;GO TO CSZ 13518000 + EMITL(T4~ELBAT[I-1].ADDRESS); 13517000 + ULITOG~TRUE;GO TO CSZ 13518000 END 13519000 ELSE 13520000 I~I-1 13521000 @@ -10294,12 +10300,12 @@ COMMENT KEEP COUNT OF NO. OF ARRAYS DECLARED; 13551400 END; 13555000 PUT(LBJ,SAVEINFO2-1); 13556000 DO BEGIN 13557000 - T~TAKE(SAVEINFO); 13558000 - K~T.INCR; 13559000 - T.INCR~SAVEINFO2-SAVEINFO-1; 13560000 - PUT(T,SAVEINFO); 13561000 + T~TAKE(SAVEINFO); 13558000 + K~T.INCR; 13559000 + T.INCR~SAVEINFO2-SAVEINFO-1; 13560000 + PUT(T,SAVEINFO); 13561000 END 13562000 - UNTIL SAVEINFO~SAVEINFO+K=SAVEINFO2-1; 13563000 + UNTIL SAVEINFO~SAVEINFO+K=SAVEINFO2-1; 13563000 IF STEPI!COMMA THEN GO TO START; 13564000 IF NOT SPECTOG THEN EMITO(MKS); 13565000 SAVEINFO~NEXTINFO; 13566000 @@ -10424,9 +10430,9 @@ PROCEDURE ENTER(TYPE); VALUE TYPE; INTEGER TYPE; 13714000 IF NOT P2 THEN 13719000 IF P2:=(G=OWNV) THEN G:=GTA1[J:=J-1]; 13720000 IF NOT P3 THEN 13721000 - IF P3:=(G=SAVEV) THEN G:=GTA1[J:=J-1]; 13722000 + IF P3:=(G=SAVEV) THEN G:=GTA1[J:=J-1]; 13722000 IF NOT P4 THEN 13723000 - IF P4:=(G=AUXMEMV) THEN G:=GTA1[J:=J-1]; 13724000 + IF P4:=(G=AUXMEMV) THEN G:=GTA1[J:=J-1]; 13724000 END; 13725000 IF G!0 THEN FLAG(25) ELSE ENTRY(TYPE) 13726000 END ENTER; 13727000 @@ -10441,7 +10447,7 @@ PROCEDURE HTTEOAP(GOTSTORAGE,RELAD,STOPPER,PRTAD); 13731000 BOOLEAN BT; 13736000 REAL K,LS; 13737000 LS~RELAD; 13738000 - BT~JUMPCTR=LEVEL; 13739000 + BT~JUMPCTR=LEVEL; 13739000 IF FUNCTOG 13740000 THEN 13741000 BEGIN 13742000 @@ -10525,7 +10531,7 @@ L: GT1:=(2|SGAVL-1)&2[4:46:2]; STOPENTRY:=TRUE; 13780000 PUT(TAKE(LASTINFO)&PRT[16:37:11]&F[27:40:8],LASTINFO); 13807000 TB1~FORMATPHRASE; 13808000 END 13809000 - UNTIL ELCLASS!"," OR TB1~F}256 ; 13810000 + UNTIL ELCLASS!"," OR TB1~F}256 ; 13810000 13811000 13812000 END; 13813000 @@ -10543,7 +10549,7 @@ PROCEDURE CHECKBOUNDLVL ; 13819100 IF NOT SPECTOG AND ELBAT[I].LVL=LEVEL 13819400 THEN FLAG(IF REAL(ARRAYFLAG)=3 THEN 509 ELSE 46) ; 13819410 COMMENT 46-ARRAE NON-LITERAL ARRAY BOUND NOT GLOBAL TO 13819500 - ARARY DECLARATION; 13819600 + ARRAY DECLARATION; 13819600 PROCEDURE FAULTDEC; COMMENT FAULTDEC HANDLES THE MONITOR 13900000 THING, FOR THE RUN-TIME ERROR BUSINESS. IT GETS STACK OR 13901000 PRT SPACE AND PASSES SOME STUFF TO THE BLOCK CONTROL 13902000 @@ -10856,7 +10862,7 @@ SWITCHDEC: 14200000 GO TO START; 14253000 DEFINEDEC: 14254000 BEGIN LABEL START; 14254050 - REAL J,K,DINFO,LINKA,LINKB; %118 14254100- + REAL J,K,DINFO,LINKA,LINKB; %118-14254100 STOPENTRY~STOPGSP~TRUE;I~I-1; 14255000 DEFINING := BOOLEAN(REAL(DEFINING) & 1[47:47:1]); 14255500 DO 14256000 @@ -11090,7 +11096,7 @@ HF: 14382000 IF STREAMTOG 14385000 THEN BEGIN 14386000 JUMPCHKNX;G~PROGDESCBLDR(CHAR,L,PROAD);PJ~P; 14387000 - PTOG~FALSE; 14388000 + PTOG~FALSE; 14388000 IF FUNCTOG 14389000 THEN 14390000 PUT((Z~TAKE(PROINFO))&LOCLID[2:41:7]&(PJ~PJ+1)[16:37:11] 14391000 @@ -11207,7 +11213,7 @@ HF: 14382000 JUMPCHKNX; 14486000 RELAD~L ; 14487000 IF NEXTSAVE THEN FLAG(052); 14487010 - STMT; 14488000 + STMT; 14488000 IF FAULTOG.[46:1] THEN BEGIN EMITL(10); EMITO(COM); END;14488500 HTTEOAP(FALSE,RELAD,PINFOO,PROAD); 14489000 END; 14490000 @@ -11275,7 +11281,7 @@ BEGIN 14526000 THEN MAXSTACK~STACKCTR; 14536000 IF GOTSTORAGE OR JUMPCTR=LEVEL OR FAULTOG.[46:1] 14537000 THEN 14538000 - IF NOT(GOTSTORAGE OR FAULTOG.[46:1]) 14539000 + IF NOT(GOTSTORAGE OR FAULTOG.[46:1]) 14539000 THEN 14540000 BEGIN 14541000 EMITV(BLOCKCTR); 14542000 @@ -11406,11 +11412,11 @@ PROCEDURE PASSALPHA(ELBATWORD); 15020000 DEFINE LTEMP = RR11#; COMMENT LTEMP IS A TEMP FOR L; 15030000 EMITV(IF BOOLEAN(L.[46:1]) 15031000 THEN CPLUS2 15032000 - ELSE CPLUS1);LTEMP~BUMPL; EMITWORD(GETALPHA( 15033000 + ELSE CPLUS1);LTEMP~BUMPL; EMITWORD(GETALPHA( 15033000 INFO[(INDEX~ELBATWORD.LINK+1).LINKR,INDEX.LINKC], 15034000 IF SIZEALPHA~TAKE(INDEX).ALPHASIZE > 7 15035000 THEN 7 15036000 - ELSE SIZEALPHA)); EMITB(BFW,LTEMP,L); 15037000 + ELSE SIZEALPHA)); EMITB(BFW,LTEMP,L); 15037000 END PASSALPHA; 15038000 COMMENT THE FOLLOWING BLOCK HANDLES THE FOLLOWING CASES 15039000 OF SIMPLE VARIABLES: 15040000 @@ -11428,7 +11434,7 @@ PROCEDURE PASSALPHA(ELBATWORD); 15020000 5. ZEROL,VV,T . 15052000 6. VV . 15053000 WHERE VN = DESC V 15054000 - EXP= ARITH, OR BOOLEAN EXPRESSION,AS REQUIRED. 15055000 + EXP= ARITH. OR BOOLEAN EXPRESSION,AS REQUIRED. 15055000 M* = CALL ON MONITOR ROUTINE,IF REQUIRED. 15056000 VL = LITC V 15057000 VV = OPDC V 15058000 @@ -11455,7 +11461,7 @@ PROCEDURE PASSALPHA(ELBATWORD); 15020000 % CAN XREF IT CORRECTLY. %116-15075552 LABEL EXIT; 15076000 TALL~ELBAT[I] ; 15077000 - IF ELCLASS { INTPROCID THEN 15078000 + IF ELCLASS { INTPROCID THEN 15078000 BEGIN 15079000 IF TALL.LINK !PROINFO.LINK THEN 15080000 BEGIN ERR(211); GO TO EXIT END; 15081000 @@ -11497,7 +11503,7 @@ L1: 15092000 BEGIN IF DOTSYNTAX(T1,T2) THEN GO TO EXIT ; 15112000 IF STEPI=ASSIGNOP THEN 15113000 BEGIN %116-15113100 - IF P1! FS THEN 15114000 + IF P1! FS THEN 15114000 BEGIN %116-15115000 ERR(201); % PARTIAL WORD NOT LEFT-MOST 15115100 GO TO EXIT; %116-15115200 @@ -11622,7 +11628,7 @@ PROCEDURE M4(TALL,J); 15215000 THEN BEGIN COMMENT CALL SUBSCRIPT; 15229000 EMITV(JUNK); EMITO(XCH); 15230000 END; 15231000 - END; END; %A 15232000 + END; END; %A 15232000 IF STEPI ! LFTBRKET THEN BEGIN ERR(207);GO TO EXIT END; 15233000 THENUMBEROFDECLAREDDIMENSIONS ~ TAKE(GIT(TALL)).[40:8]; 15233100 J ~ 0; 15234000 @@ -11897,7 +11903,7 @@ F~GET( S); 16033000 REAL SAVL ,LINK; 16087000 SAVL ~ L; 16088000 L ~ TAKE(GIT(E)).LASTGT ; 16089000 - WHILE L ! 4095 DO 16090000 + WHILE L! 4095 DO 16090000 BEGIN 16091000 LINK ~ GET(L); 16092000 EMITJUMP( E); 16093000 @@ -11909,7 +11915,7 @@ F~GET( S); 16033000 A VARIABLE NEST INDEX CAUSES THE CODE, 16099000 CRF V, BNS 0 ,NOP,NOP, TO BE GENERATED INITIALLY. 16100000 AT THE RIGHT PAREN THE BNS IS FIXED WITH THE LENGTH OF 16101000 - THE NEST (NUMBER OF SYLLABLES) IF THE LENGTH{63,OTHERWISE 16102000 + THE NEST (NUMBER OF SYLLABLES) IF THE LENGTH {63,OTHERWISE16102000 IT IS FIXED WITH A 1 AND THE NOPS REPLACED WITH JFW 1, 16103000 RCA P. THIS IS DONE BECAUSE THE VALUE OF V AT EXECUTION 16104000 MAY = 0 AND THIS CODE CAUSES A JUMP AROUND THE NEST. 16105000 @@ -12050,7 +12056,7 @@ IFTOG: IF STEPI!THENV THEN BEGIN ERR(266); GO EXIT END; 16217000 ELCLASS = STLABID OR 16224000 ELCLASS = LOCLID AND TABLE(I+1) = LFTPAREN THEN 16225000 BEGIN 16226000 - EMIT (NOP); EMIT (NOP) 16227000 + EMIT (NOP);EMIT (NOP) 16227000 END; 16228000 IF ELCLASS= ELSEV THEN ELSE 16228500 STREAMSTMT; 16229000 @@ -12077,7 +12083,7 @@ IFTOG: IF STEPI!THENV THEN BEGIN ERR(266); GO EXIT END; 16217000 BEGIN 16250000 LABEL EXIT; 16251000 IF STEPI !TOV THEN I~I-1 ; 16252000 - IF STEPI ! STLABID THEN BEGIN ERR(260); GO TO EXIT END; 16253000 + IF STEPI ! STLABID THEN BEGIN ERR(260);GO TO EXIT END; 16253000 IF(GT2~TAKE(GIT(GT1~ELBAT[I]))).MON=1 16254000 OR GT2.LOC!0 THEN EMITJUMP(GT1) 16255000 ELSE 16256000 @@ -12155,8 +12161,8 @@ PROCEDURE INDEXS; 16311000 IF STEPI!LITNO AND ELCLASS!LOCLID THEN 16326100 BEGIN ERR(253); GO EXIT END; 16327000 INDEX ~ TCLASS-SIV 16328000 - +REAL(ELBAT[I-1].ADDRESS=SUB) | 4 16329000 - + REAL(ELCLASS =LOCLID) | 8; 16330000 + +REAL(ELBAT[I-1].ADDRESS=SUB) | 4 16329000 + + REAL(ELCLASS =LOCLID) | 8; 16330000 END 16331000 ELSE 16332000 BEGIN 16333000 @@ -12164,11 +12170,11 @@ PROCEDURE INDEXS; 16311000 + ( IF ELCLASS = LOCLID THEN 16 ELSE 16335000 IF ELCLASS = LOCV THEN 20 ELSE 16336000 IF ELCLASS = SCV THEN 24 ELSE 16337000 - IF ELCLASS= DCV THEN 28 ELSE 25); 16338000 + IF ELCLASS= DCV THEN 28 ELSE 25); 16338000 IF ELCLASS = LOCV THEN 16339000 IF STEPI ! LOCLID THEN GO TO L; 16340000 IF ELCLASS = LITNO AND TCLASS = TALLYV THEN 16341000 - BEGIN EMITC(ELBAT[I].ADDRESS,SEC); GO TO EXIT END; 16342000 + BEGIN EMITC(ELBAT[I].ADDRESS,SEC);GO TO EXIT END; 16342000 END ; 16343000 ADDR ~ ELBAT[I].ADDRESS; 16344000 GENERATE: 16345000 @@ -12205,7 +12211,7 @@ PROCEDURE DSS; 16362000 ADDR ~ ELBAT[I].ADDRESS; STEPIT ; 16376000 END 16377000 ELSE ADDR ~ 1 ; 16378000 - IF ELCLASS = TRNSFER OR ELCLASS = FILLV THEN %A 16379000 + IF ELCLASS = TRNSFER OR ELCLASS = FILLV THEN %A 16379000 EMITC(ADDR,ELBAT[I].OPCODE) %A 16379500 ELSE 16380000 IF ELCLASS = LITV THEN 16381000 @@ -12702,7 +12708,7 @@ IF (XREF OR DEFINING.[1:1]) AND XLUN > 0 THEN %116-17001000 PRINTXREFSTATISTICS; %116-17119200 END; %DFB17120000 END; %DFB17121000 - END OF MAIN BLOCK; 17121500 + END MAIN BLOCK; 17121500 END. %DFB17122000 %NUMBER OF ERRORS DETECTED = 1. COMPILATION TIME = 532 SECONDS. 99990000 %NUMBER OF CARD-IMAGES PROCESSED = 12712. 99991000 diff --git a/Unisys-Emode-Tools/xem/ALGOLXEM.alg_m b/Unisys-Emode-Tools/xem/ALGOLXEM.alg_m index c397ccf..7e95a5e 100644 --- a/Unisys-Emode-Tools/xem/ALGOLXEM.alg_m +++ b/Unisys-Emode-Tools/xem/ALGOLXEM.alg_m @@ -2,9 +2,9 @@ $SET OMIT LISTOMITTED = LIST 00001000=00000999= %#######################################################################00002000=00001000= % 00003000=00001010= -% B-5700 ALGOL/TSPOL XEM SYMBOLIC 00004000=00001020= -% MARK XVI.0.122 00005000=00001030= -% MAY 9, 1977 00006000=00001040= +% B-5700 ALGOL/TSPOL XEM SYMBOLIC 00004000161030PK +% MARK XVI.0.122 00005000161030PK +% MAY 9, 1977 00006000161030PK % 00007000=00001050= %#######################################################################00008000=00001060= % 00009000=00001070= @@ -99,7 +99,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 042 HANDLESWLIST: ILLEGAL LIST ID APPEARING IN SWITCH LIST. 00098000=00069400= 043 IODEC: MISSING ] AFTER DISK IN FILEDEC. 00099000=00069500= 044 IODEC: MISSING [ AFTER DISK IN FILEDEC. 00100000=00069600= -045 DEFINEDEC: MISSING "*" AFTER DEFINE ID. 00101000=00069700= +045 DEFINEDEC: MISSING "=" AFTER DEFINE ID. 00101000161030PK 046 ARRAE: NON-LITERAL ARRAY BOUND NOT GLOBAL TO ARRAY DECL. 00102000=00069800= 047 TABLE: ITEM FOLLOWING @ NOT A NUMBER. 00103000=00069900= 048: PROCEDUREDEC: NUMBER OF PARAMETERS DIFFERS FROM FWD DECL. 00104000=00069910= @@ -113,9 +113,9 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 060 FAULTSTMT: MISSING ~ IN FAULT STATEMENT. 00112000=00069940= 061 FAULTDEC: INVALID FAULT TYPE: MUST BE FLAG, EXPOVR, ZERO, 00113000=00069950= INTOVR, OR INDEX. 00114000=00069960= - 070 CASESTMT: MISSING BEGIN. 00115000=00069970= - 071 CASESTMT: MISSING END. 00116000=00069980= - 080 PRIMARY: MISSING COMMA . 00117000=00069990= + 070 CASESTMT: MISSING BEGIN. 00115000161030PK + 071 CASESTMT: MISSING END. 00116000161030PK + 080 PRIMARY : MISSING COMMA . 00117000161030PK 090 PARSE: MISSING LEFT BRACKET 00118000=00069991= 091 PARSE: MISSING COLON 00119000=00069992= 092 PARSE: ILLEGAL BIT NUMBER 00120000=00069993= @@ -136,7 +136,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 107 BEXP: THE EXPRESSION IS NOT OF BOOLEAN TYPE. 00135000=00081000= 108 EXPRSS: A RELATION MAY NOT HAVE CONDITIONAL EXPRESSIONS 00136000=00082000= AS THE ARITHMETIC EXPRESSIONS. 00137000=00083000= - 109 BOOSEC,SIMBOO, AND BOOCOMP: THE PRIMARY IS NOT BOOLEAN. 00138000=00084000= + 109 BOOSEC,SIMPBOO, AND BOOCOMP: THE PRIMARY IS NOT BOOLEAN. 00138000161030PK 110 BOOCOMP: A NON-BOOLEAN OPERATOR OCCURS IN A BOOLEAN 00139000=00085000= EXPRESSION. 00140000=00086000= 111 BOOPRIM: NO EXPRESSION (ARITHMETIC, BOOLEAN, OR DESIGNA- 00141000=00087000= @@ -153,7 +153,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 118 BANA: MISSING RIGHT BRAKET. 00152000=00098000= 119 COMPOUNDTAIL: MISSING SEMICOLON OR END. 00153000=00099000= 120 COMPOUNDTAIL: MISSING END. 00154000=00100000= - 121 ACTUALPARAPART: AN INDEXED FILE MAY BE PASSED BY NAME 00155000=00101000= + 121 ACTUALPARAPART: AN INDEXED FILE MAY BE PASSED BY NAME 00155000161030PK ONLY AND ONLY TO A STREAM PROCEDURE - THE STREAM 00156000=00102000= PROCEDURE MAY NOT DO A RELEASE ON THIS TYPE PARA- 00157000=00103000= METER. 00158000=00104000= @@ -208,9 +208,9 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 153 FORSTMT: MISSING UNTIL OR WHILE IN STEP ELEMENT. 00207000=00153000= 154 FORSTMT: MISSING DO IN FOR CLAUSE. 00208000=00154000= 155 IFEXP: MISSING ELSE 00209000=00155000= - 156 LISTELEMENT: A DESIGNATIONAL EXPRESSION MAY NOT BE A LIST 00210000=00156000= + 156 LISTELEMENT: A DESIGNATIONAL EXPRESSION MAY NOT BE A LIST00210000161030PK ELEMENT. 00211000=00157000= - 157 LISTELEMENT: A ROW DESIGNATOR MAY NOT BE A LIST ELEMENT 00212000=00158000= + 157 LISTELEMENT: A ROW DESIGNATOR MAY NOT BE A LISTELEMENT 00212000161030PK 158 LISTELEMENT: MISSING RIGHT BRAKET IN GROUP OF ELEMENTS 00213000=00159000= 159 PROCSTMT: ILLEGAL USE OF PROCEDURE OR FUNCTION IDENTIFIER00214000 160 PURGE: DECLARED LABEL DOES NOT OCCUR. 00215000=00161000= @@ -227,7 +227,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 PARAMETRIC DEFINE INVOCATION. 00226000=00164745= 175 FIXDEFINEINFO: LEFT BRACKET OR LEFT PARENTHESIS EXPECTED. 00227000=00164750= 185 IMPFUN: LAST PARAMETER MUST BE A SIMPLE OR SUBSCRIPTED 00228000=00164850= - VARIABLE, OR A TYPE PROCEDURE IDENTIFIER. 00229000=00164851= + VARIABLE, OR A TYPED PROCEDURE IDENTIFIER. 00229000161030PK 199 E: INFO ARRAY HAS OVERFLOWED. 00230000=00164900= 200 EMIT: SEGMENT TOO LARGE ( > 4093SYLLABLES). 00231000=00165000= 201 SIMPLE VARIABLE: PARTIAL WORD DESIGNATOR NOT LEFT-MOST 00232000=00166000= @@ -243,7 +243,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 208 SUBSCRIPTED VARIABLE: WRONG NUMBER OF SUBSCRIPTS. 00242000=00176000= 209 SUBSCRIPTED VARIABLE: PARTIAL WORD DESIGNATOR NOT LEFT- 00243000=00177000= MOST IN A LEFT PART LIST. 00244000=00178000= - 210 SUBSCRIPTED VARIABLE: MISSING , OR ~ . 00245000=00179000= + 210 SUBSCRIPTED VARIABLE: MISSING . OR ~ . 00245000161030PK 211 VARIABLE: PROCEDURE ID USED OUTSIDE OF SCOPE IN LEFT PART.00246000=00180000= 212 VARIABLE: SUB-ARRAY DESIGNATOR PERMITTED AS ACTUAL 00247000=00180100= PARAMETER ONLY. 00248000=00180200= @@ -303,7 +303,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 351 OUTPROCHECK: ILLEGAL TYPE FOR SORT OR MERGE OUTPUT PROC. 00302000=00218220= 352 OUTPROCHECK: OUTPUT PROCEDURE IN SORT OR MERGE STMT DOES 00303000=00218230= NOT HAVE EXACTLY TWO PARAMETERS. 00304000=00218240= - 353 OUTPROCHECK: FIRST PAREMETER OF OUTPUT PROCEDURE MUST 00305000=00218250= + 353 OUTPROCHECK: FIRST PARAMETER OF OUTPUT PROCEDURE MUST 00305000161030PK BE BOOLEAN. 00306000=00218260= 354 OUTPROCHECK: SECOND PARAM OF OUTPUT PROCEDURE MUST BE 00307000=00218270= ONE-DIM ARRAY. 00308000=00218280= @@ -454,7 +454,7 @@ INTEGER 00505000 SYNTX ERR AT EOJ IF THIS IS NON-ZERO. MUST BE @R+25; 00520000=00502000= INTEGER 00525000=00503000= SAVETIME; COMMENT SAVE-FACTOR FOR CODE FILE, GIVEN BY MCP. 00530000 - IF COMPILE & GO =0, FOR SYNTAX, =-1. MUST BE AT R+26;00540000=00504000= + IF COMPILE & GO =0. FOR SYNTAX, =-1. MUST BE AT R+26;00540000161030PK INTEGER 00545000=00504100= CARDNUMBER; % SEQ # OF CARD BEING PROCESSED. 00550000=00504100= INTEGER 00555000=00504150= @@ -473,7 +473,7 @@ BOOLEAN 00615000 BUILDLINE; 00620000=00504700= BOOLEAN 00625000=00504801= REL; 00630000=00504801= - COMMENT RR1-RR11 ARE USED BY SOME PROCEDURES IN LIEU OF LOCALS. 00635000=00505000= + COMMENT RR1-RR11 ARE USED BY SOME PROCEDURES IN LIEU OF LOCALS, 00635000161030PK TO SAVE SOME STACK SPACE; 00640000=00506000= REAL 00645000=00507000= RR1, 00650000=00507000= @@ -1831,7 +1831,7 @@ REAL 01101560 END EXAMINELAST; 01102200=00512600= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%01102300 COMMENT MOVECHARACTERS MOVES N CHARACTERS FROM THE SK-TH CHARACTER 01102400=00513000= - IN SORCE TO THE DK-TH CHARACTER IN DEST, 0<=N<=63,0<=SK<=127; 01102500=00514000= + IN SORCE TO THE DK-TH CHARACTER IN DEST. 0<=N<=63,0<=SK<=127; 01102500161030PK PROCEDURE MOVECHARACTERS(N, SORCE, SX, SK, DEST, DX, DK); 01102600=00515000= VALUE 01102700=00516000= N, SX, SK, DX, DK; 01102800=00516000= @@ -1857,7 +1857,7 @@ ARRAY 01102950 INTEGER 01270000=01000800= OPINX; % USED FOR INDEXING INTO OPTIONS ARRAY. 01275000=01000800= BOOLEAN 01280000=01000802= - SETTING; % USED BY DOLLARCARD FOR AN OPTION"S SETTING 01285000=01000802= + SETTING; % USED BY DOLLARCARD FOR AN OPTION"S SETTING. 01285000161030PK BOOLEAN 01290000=01000810= GOGOGO; % TRUE FOR SPECIAL WRITES AND READS 01295000=01000810= PROCEDURE CHECKBOUNDLVL; 01300000=01000830= @@ -2116,8 +2116,8 @@ XLUN; % THIS VARIABLE CONTROLS THE ASSIGNING OF 02295000 THE INTERNAL CODE (OR ELBAT WORD AS IT IS USUALLY 02580000=01010000= CALLED). THE SECOND WORD CONTAINS THE FORWARD BIT (IN 02585000=01011000= [46:1]) FOR PROCEDURES, THE LINK TO PREVIOUS ENTRY (IN 02590000=01012000= - [43:8]). THE NUMBER OF CHARACTORS IN THE ALPHA REPRESENTA-02595000=01013000= - TION (IN [35:6]), AND THE FIRST 5 CHARACTERS OF ALPHA. 02600000=01014000= + [43:8]), THE NUMBER OF CHARACTORS IN THE ALPHA REPRESENTA-02595000161030PK + TION (IN [35:6]), AND THE FIRST 5 CHARACTORS OF ALPHA. 02600000161030PK SUCCEDING WORDS CONTAIN THE REMAINING CHARACTORS OF ALPHA,02605000=01015000= FOLLOWED BY ANY ADDITIONAL INFORMATION. THE ELBAT WORD 02610000=01016000= AND THE ALPHA FOR ANY QUANTITY ARE NOT SPLIT ACROSS A ROW 02615000=01017000= @@ -2226,7 +2226,7 @@ COMMENT INFO FORMAT 02675000 THE FIRST WORD OF ADDITIONAL INFO CONTAINS THE NUMBER OF 03130000=01119000= PARAMETERS [7:8] 03135000=01120000= IF A STREAM PROCEDURE THEN THIS WORD CONTAINS ALSO IN 03140000=01121000= - [34:11] ENDING PRT ADDRESS FOR LABELS, 03145000=01122000= + [34:11] ENDING PRT ADDRESS FOR LABELS, 03145000161030PK [40:6] NO OF LABELS REQUIRING PRT ADDRESSES, AND [46:6] NUMBER 03150000=01123000= OF LOCALS. 03155000=01124000= SUCCEEDING WORDS (ONE FOR EACH FORMAL PARAMETER,IN ORDER 03160000=01125000= @@ -2235,9 +2235,9 @@ COMMENT INFO FORMAT 02675000 VALUE OR NOT([37:1]). 03175000=01128000= THE ADDRESS([31:11]) IS THE F- ADDRESS FOR EACH. 03180000=01129000= IF THE PARAMETER IS AN ARRAY THEN THE INCR FIELD([20:8]) 03185000=01130000= - CONTAINS THE NUMBER OF DIMENSIONS,OTHERWISE INCR IS MEANINGLESS. 03190000=01131000= + CONTAINS THE NUMBER OF DIMENSIONS.OTHERWISE INCR IS MEANINGLESS. 03190000161030PK LINK([12:13]) IS MEANINGLESS. 03195000=01132000= - IF A STREAM PROCEDURE THEN THE CLASS OF EACH PARAMETER IS 03200000=01133000= + IF A STREAM PROCEDURE THEN THE CLASS OF EACH PARAMATER IS 03200000161030PK THAT OF LOCAL ID OR FILE ID, DEPENDING ON WHETHER OR NOT A RELEASE03205000=01134000= IS DONE IN THE STREAM PROCEDURE. 03210000=01135000= LABELS: 03215000=01136000= @@ -2284,11 +2284,11 @@ COMMENT INFO FORMAT 02675000 LVL GIVES THE LEVEL AT WHICH A QUANTITY WAS DECLARED. 03420000=01167000= ADDRESS GIVES THE STACK OR PRT ADDRESS. 03425000=01168000= DYNAM IS USED INSTEAD OF LVL AND ADDRESS FOR DEFINE AND 03430000=01168100= - DEFINE PARAMETER ENTRIES, ONLY, IT IS AN INDEX 03435000=01168200= + DEFINE PARAMETER ENTRIES, ONLY. IT IS AN INDEX 03435000161030PK INTO THE ARRAY CONTAINING THE DEFINE TEXT. 03440000=01168300= THEREFORE, WHEN THE COMPILER CHECKS TO SEE IF A 03445000=01168400= DEFINE WAS DECLARED B4 IN THE SAME BLOCK, IT DOES 03450000=01168500= - NOT USE THE LVL FIELD, BUT MAKES USE OF NINF00 03455000=01168600= + NOT USE THE LVL FIELD, BUT MAKES USE OF NINFOO. 03455000161030PK INCR GIVES A RELATIVE LINK TO ANY ADDITIONAL INFORMATION 03460000=01169000= NEEDED, RELATIVE TO THE LOCATION IN INFO. 03465000=01170000= LINK CONTAINS A LINK TO THE LOCATION IN INFO IF THE 03470000=01171000= @@ -2327,7 +2327,7 @@ COMMENT INFO FORMAT 02675000 INTID = 24 #, COMMENT 030; 03635000=01201000= BOOARRAYID = 25 #, COMMENT 031; 03640000=01202000= REALARRAYID = 26 #, COMMENT 032; 03645000=01203000= - ALFARRAYID = 27 #, COMMENT 033; 03650000=01204000= + ALFAARRAYID = 27 #, COMMENT 033; 03650000161030PK INTARRAYID = 28 #, COMMENT 034; 03655000=01205000= LABELID = 29 #, COMMENT 035; 03660000=01206000= 03665000=01207000= @@ -2338,7 +2338,7 @@ COMMENT INFO FORMAT 02675000 STRNGCON = 33 #, COMMENT 041; 03690000=01211000= LEFTPAREN = 34 #, COMMENT 042; 03695000=01212000= 03700000=01213000= - COMMENT CLASSES FOR ALL DECLARATORS; 03705000=01213000= + COMMENT CLASS FOR ALL DECLARATORS; 03705000161030PK DECLARATORS = 35 #, COMMENT 043; 03710000=01214000= 03715000=01215000= COMMENT CLASSES FOR STATEMENT BEGINNERS 03720000=01215000= @@ -2452,15 +2452,15 @@ COMMENT INFO FORMAT 02675000 ACCUM[0:10]; 04265000=01304000= COMMENT ACCUM HOLDS THE ALPHA AND CHARACTER COUNT OF THE LAST 04270000=01305000= SCANNED ITEM IN A FORM COMPATIBLE WITH ITS APPEARANCE 04275000=01306000= - IN INFO. THAT IS ACCUM[1] = 00NAAAAA, ACCUM[I] , I> 1, 04280000=01307000= + IN INFO, THAT IS ACCUM[1] = 00NAAAAA. ACCUM[I] , I> 1, 04280000161030PK HAS ANY ADDITIONAL CHARACTERS. ACCUM[0] IS USED FOR 04285000=01308000= THE ELBAT WORD BY THE ENTER ROUTINES; 04290000=01309000= ARRAY 04295000=01310000= STACKHEAD, 04300000=01310000= SUPERSTACK[0:124]; 04305000=01310000= - COMMENT STACKHEAD[N] CONTAINS AN INDEX INTO INFO, THIS INDEX 04310000=01311000= + COMMENT STACKHEAD[N] CONTAINS AN INDEX INTO INFO. THIS INDEX 04310000161030PK POINTS TO THE TOP ITEM IN THE N-TH STACK (ACTUALLY A 04315000=01311100= - LINKED-LIST). SUPERSTACK IS NOT A TELEVISION STAR, 04320000=01311200= + LINKED-LIST). SUPERSTACK IS NOT A TELEVISION STAR, 04320000161030PK BUT RATHER A SPECIAL STACKHEAD WHICH ALWAYS POINTS 04325000=01311300= AT CERTAIN COMMONLY USED RESERVED WORDS. THOSE 04330000=01311400= WORDS POINTED TO (IN THREE GROUPS) ARE: 04335000=01311500= @@ -2468,7 +2468,7 @@ COMMENT INFO FORMAT 02675000 2) AND, DIV, EQV, IMP, MOD, NOT, OR, TRUE 04345000=01311700= 3) BEGIN, DO, ELSE, END, FOR, GO, IF, 04350000=01311800= STEP, THEN, TO, UNTIL, WHILE, WRITE. 04355000=01311900= - FOR MORE INFORMATION ON THE USE OF SUPERSTACKM SEE 04360000=01312000= + FOR MORE INFORMATION ON THE USE OF SUPERSTACK, SEE 04360000161030PK COMMENTS IN THE TABLE PROCEDURE. ; 04365000=01312100= INTEGER 04370000=01313000= COUNT; 04375000=01313000= @@ -2543,15 +2543,15 @@ COMMENT INFO FORMAT 02675000 28-37 SEGMENT NUMBER 04745000=01355000= 38-47 ZERO 04750000=01356000= TYPE 2 ENTRY 04755000=01357000= - BIT POSITION KIND OF ENTRY 04760000=01358000= - 0 EMPTY 04765000=01359000= - 1 ON IFF TYPE 2 (DATA) SEGMENT 04770000=01360000= - 2 ON IFF INTRINSIC PROCEDURE 04775000=01361000= - 3 ON IFF "PSEUDO-SAVE" SEGMENT 04780000=01361050= - 4-12 EMPTY 04785000=01361100= - 13-27 DISK ADDRESS OR INTRINSIC NUMBER 04790000=01361200= - 28-37 SEGMENT NUMBER 04795000=01361300= - 38-47 NUMBER OF WORDS IN SEGMENT 04800000=01362000= + BIT POSITION KIND OF ENTRY 04760000161030PK + 0 EMPTY 04765000161030PK + 1 ON IFF TYPE 2 (DATA) SEGMENT 04770000161030PK + 2 ON IFF INTRINSIC PROCEDURE 04775000161030PK + 3 ON IFF "PSEUDO-SAVE" SEGMENT 04780000161030PK + 4-12 EMPTY 04785000161030PK + 13-27 DISK ADDRESS OR INTRINSIC NUMBER 04790000161030PK + 28-37 SEGMENT NUMBER 04795000161030PK + 38-47 NUMBER OF WORDS IN SEGMENT 04800000161030PK THERE IS ONLY ONE TYPE 2 ENTRY PER SEGMENT.THE TYPE 2 ENTRY 04805000=01363000= IS DISTINGUISHED BY THE NON ZERO FIELD IN BITS 38-47. THIS 04810000=01364000= ENTRY IS USED TO BUILD THE DRUM DESCRIPTOR IN THE SEGMENT 04815000=01365000= @@ -2568,12 +2568,12 @@ COMMENT THE FORMAT OF SEGMENT DICTIONARY AND PRT ENTRIES AT THE END OF 04835000 [44:1] EMPTY (USED BY MCP PRESENCE-BIT ROUTINE) 04870000=01367075= [43:1] ON IFF "PSEUDO-SAVE" SEGMENT 04875000=01367080= [42:1] EMPTY (USED BY MCP OVERLAY ROUTINE) 04880000=01367085= - [39:10] R-RELATIVE LINK TO PRT ENTRY FOR THIS SEGMENT 04885000=01367090= + [39:10] R-RELATIVE LINK TO A PRT ENTRY FOR THIS SEGMENT04885000161030PK [29:15] SIZE (NOT USED FOR INTRINSICS) 04890000=01367100= [14:15] DISK ADDRESS OR INTRINSIC NUMBER 04895000=01367110= PRT ENTRY (IE., PROGRAM DESCRIPTOR FOR SEGMENT NUMBER I) 04900000=01367120= - BIT POSITIONS CONTENTS OF FIELD 04905000=01367130= - [47:4] 1101 (BINARY) NON-PRESENT PROG, DESC. IDBITS 04910000=01367140= + BIT POSITIONS CONTENTS OF FIELD 04905000=01367130= + [47:4] 1101(BINARY) NON-PRESENT PROG. DESC. ID BITS 04910000161030PK [43:2] MODE AND ARGUMENT BITS 04915000=01367150= [41:1] STOPPER (ON IFF THIS ENTRY LINKS TO SEG. DICT.)04920000=01367160= [40:11] IF [41:1] THEN I ELSE R-RELATIVE LINK TO 04925000=01367170= @@ -2592,7 +2592,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 6 SEGMENT NUMBER OF FIRST SEGMENT TO EXECUTE (IE., 1) 04990000=01367290= 7 N 04995000=01367300= . O U 05000000=01367310= - . T S 05005000=01367320= + . T S 05005000161030PK . E 05010000=01367330= 29 D; 05015000=01367340= INTEGER 05020000=01368000= @@ -2709,8 +2709,8 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 FP MEANS FROM PRIMARY, 05595000=01425000= FL MEANS FROM LIST, 05600000=01426000= FR MEANS FROM FOR, 05605000=01427000= - FIO MEANS FROM IODEC. 05610000=01427250= - FA MEANS FROM ACTUALPARAPART. 05615000=01427500= + FIO MEANS FROM IODEC, 05610000161030PK + FA MEANS FROM ACTUALPARAPART, 05615000161030PK FI MEANS FUNNY CALL FROM STATUS (IMPFUN); 05620000=01427600= INTEGER 05625000=01428000= L; 05630000=01428000= @@ -2737,7 +2737,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 STACK. SEE FOR EXAMPLE THE ARRAY DECLARATIONS. 05735000=01445000= LSTRTN IS A CELL USED AS LINKAGE BETWEEN A LIST AND 05740000=01446000= THE I-O FORMATING ROUTINES. THE FIRST SYLLABLES EXECUTED 05745000=01447000= - BY A LIST ARE: 1) OPDC LSTRTN, 2) BFW, THIS CARRIES YOU 05750000=01448000= + BY A LIST ARE: 1) OPDC LSTRTN, 2) BFW. THIS CARRIES YOU 05750000161030PK TO THE PROPER ITEM IN THE LIST. THE FORMATING ROUTINES 05755000=01449000= SET LSTRTN INITIALLY TO ZERO. THE LIST ITSELF UPDATES 05760000=01450000= LSTRTN. THE LIST EXHAUSTED FLAG IS -1; 05765000=01451000= @@ -2754,31 +2754,31 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 COMMENT TB1 IS A TEMPORARY BOOLEAN VARIABLE; 05820000=01458000= INTEGER 05825000=01459000= JUMPCTR; 05830000=01459000= - COMMENT JUMPCTR IS A VARIABLE USED FOR COMMUNICATION BETWEEN BLOCK 05835000=01460000= - AND GENGO. IT GIVES HIGHEST LEVEL TO WHICH A JUMP HAS 05840000=01461000= - BEEN MADE FROM WITHIN A THE PRESENTLY BEING COMPILED 05845000=01462000= - SEGMENT. THE BLOCK COMPILES CODE TO INCREMENT AND DECRE- 05850000=01463000= - MENT THE BLOCKCTR ON THE BASIS OF JUMPCTR AT COMPLETION 05855000=01464000= - OF COMPILATION OF A SEGMENT - I.E. THE BLOCKCTR IS TALLIED 05860000=01465000= - IF LEVEL = JUMPCTR; 05865000=01466000= + COMMENT JUMPCTR IS A VARIABLE USED FOR COMMUNICATION BETWEEN BLOCK05835000=01460000= + AND GENGO. IT GIVES HIGHEST LEVEL TO WHICH A JUMP HAS 05840000=01461000= + BEEN MADE FROM WITHIN A THE PRESENTLY BEING COMPILED 05845000=01462000= + SEGMENT. THE BLOCK COMPILES CODE TO INCREMENT AND DECRE- 05850000=01463000= + MENT THE BLOCKCTR ON THE BASIS OF JUMPCTR AT COMPLETION 05855000=01464000= + OF COMPILATION OF A SEGMENT - I.E. THE BLOCKCTR IS TALLIED05860000=01465000= + IF LEVEL = JUMPCTR; 05865000=01466000= BOOLEAN 05870000=01467000= GOTOG; 05875000=01467000= - COMMENT GOTOG IS SET FALSE BY GOSTMT. DEXP SETS GOTOG TRUE IF ANY 05880000=01468000= - LABEL OR SWITCH IS NON LOCAL. GOSTMT FINDS OUT BY THIS 05885000=01469000= - MEANS WHETHER OR NOT A CALL ON MCP IS NECESSARY; 05890000=01470000= + COMMENT GOTOG IS SET FALSE BY GOSTMT. DEXP SETS GOTOG TRUE IF ANY05880000=01468000= + LABEL OR SWITCH IS NON LOCAL. GOSTMT FINDS OUT BY THIS 05885000=01469000= + MEANS WHETHER OR NOT A CALL ON MCP IS NECESSARY; 05890000=01470000= REAL 05895000=01471000= STLB; 05900000=01471000= - COMMENT STLB IS USED BY VARIABLE AND ACTUALPARAPART TO COMMUNICATE 05905000=01472000= - THE LOWER BOUND INFORMATION FOR THE LAST DIMENSION OF THE 05910000=01473000= - ARRAY INVOLVED IN A ROW DESIGNATOR. THE FORMAT OF THE 05915000=01474000= - INFORMATION IS THAT OF INFO. STLB IS ALSO SOMETIMES USED 05920000=01475000= - FOR TEMPORARY STORAGE; 05925000=01476000= + COMMENT STLB IS USED BY VARIABLE AND ACTUALPARAPART TO COMMUNICATE 05905000=01472000= + THE LOWER BOUND INFORMATION FOR THE LAST DIMENSION OF THE 05910000=01473000= + ARRAY INVOLVED IN A ROW DESIGNATOR. THE FORMAT OF THE 05915000=01474000= + INFORMATION IS THAT OF INFO. STLB IS ALSO SOMETIMES USED 05920000=01475000= + FOR TEMPORARY STORAGE; 05925000=01476000= DEFINE 05930000=01477000= BUMPL = L:= L+2 #; 05935000=01477000= - COMMENT BUMPL IS USED MOSTLY TO PREPARE A FORWARD JUMP; 05940000=01478000= + COMMENT BUMPL IS USED MOSTLY TO PREPARE A FORWARD JUMP; 05940000=01478000= DEFINE 05945000=01479000= IDMAX = LABELID #; 05950000=01479000= - COMMENT IDMAX IS THE MAXIMUM CLASS NUMBER FOR IDENTIFIERS; 05955000=01480000= + COMMENT IDMAX IS THE MAXIMUM CLASS NUMBER FOR IDENTIFIERS; 05955000=01480000= INTEGER 05960000=01481000= DEFINECTR, 05965000=01481000= DEFINEINDEX; 05970000=01481000= @@ -2796,10 +2796,10 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 NESTLEVEL, COMMENT COUNTS NESTING FOR GO TO AND JUMP OUTS; 06030000=01484000= JUMPLEVEL; COMMENT NUMBER OF LEVELS TO BE JUMPED OUT; 06035000=01485000= 06045000=01486000= - COMMENT THE REALS ABOVE ARE FOR STREAM STATEMENT; 06050000=01486000= + COMMENT THE REALS ABOVE ARE FOR STREAM STATEMENT; 06050000=01486000= ARRAY 06055000=01487000= MACRO[0:35]; 06060000=01487000= - COMMENT MACRO IS FILLED WITH SYLLABLES FOR STREAM STATEMENT; 06065000=01488000= + COMMENT MACRO IS FILLED WITH SYLLABLES FOR STREAM STATEMENT; 06065000=01488000= REAL 06070000=01489000= P, COMMENT CONTAINS NUMBER OF FORMALS FOR STREAM PROCS; 06075000=01489000= Z; COMMENT CONTAINS 1ST WORD OF INFO FOR STREAM FUNCTIONS; 06080000=01490000= @@ -3029,7 +3029,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 LNG = 19#, COMMENT (0115) 7.4.3.4 LOGICAL NEGATE; 07845000=01657000= LOD = 260#, COMMENT (2021) 7.4.10.1 LOAD OPERATOR; 07850000=01658000= LOR = 35#, COMMENT (0215) 7.4.3.2 LOGICAL OR; 07855000=01659000= - LQV = 131#, COMMENT (1015) 7.4.3.3 LOGICAL EQUIVALENCE; 07860000=01660000= + LQV = 131#, COMMENT (1015) 7.4.3.3 LOGICAL EQIVALENCE; 07860000161030PK LSS = 549#, COMMENT (4225) 7.4.4.5 LESS THAN; 07865000=01661000= MDS = 515#, COMMENT (4015) 7.4.7.7 SET FLAG BIT; 07870000=01661100= MKS = 72#, COMMENT (0441) 7.4.8.1 MARK STACK; 07875000=01662000= @@ -3266,7 +3266,7 @@ COMMENT "BLANKET" BLANKS OUT N+1 WORDS IN "THERE"; 09000000 END #; 09135000=01742110= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%09222000 INTEGER 09225000=01750000= - FAULTLEVEL; COMMENT THIS IS FOR THE RUN0TIME ERROR KLUDGE-- 09230000=01750000= + FAULTLEVEL; COMMENT THIS IS FOR THE RUN-TIME ERROR KLUDGE-- 09230000161030PK GIVES THE LOWEST LEVEL AT WHICH THERE IS AN ACTIVE 09240000=01751000= FAULT DECL OR LABEL USED IN A FAULT STATEMENT; 09245000=01752000= BOOLEAN 09250000=01753000= @@ -3300,9 +3300,9 @@ COMMENT "BLANKET" BLANKS OUT N+1 WORDS IN "THERE"; 09000000 WRITE(LINE, 09735000=01829100= $ SET OMIT = NOT ALGOL 09735100=01829900= = 0)+1)[5:1:2]); 26650000=04122000= IF BOOLEAN(BRANCH.[9:1]) THEN 26655000=04123000= DIALA:= DIALB:= 0; 26660000=04123000= - L:= TL; 26665000=04124000= + L:= TL 26665000161030PK END EMITB; 26670000=04125000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%26675000=04125000= COMMENT DEBUGWORD FORMATS TWO FIELDS FOR DEBUGGING OUTPUT IN 26680000=04126000= @@ -6276,7 +6276,7 @@ FINISHED: 27380000 END EMITNUM; 27385000=04225000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%27390000=04225000= COMMENT SEARCH PERFORMS A BINARY SEARCH ON THE COP AND WOP 27395000=04226000= - ARRAYS, GIVEN THE OPERATOR BITS SEARCH YIELDS THE BCD 27400000=04227000= + ARRAYS. GIVEN THE OPERATOR BITS SEARCH YIELDS THE BCD 27400000161030PK MNEUMONIC FOR THAT OPERATOR. IF THE OPERATOR CANNOT 27405000=04228000= BE FOUND SEARCH YIELDS BLANKS. 27410000=04229000= NOTE: DIA,DIB,TRB ARE RETURNED AS BLANKS. ; 27415000=04230000= @@ -6375,7 +6375,7 @@ L: SEARCH:= Q[I+1]; 27555000 COMMENT 200 EMIT - SEGMENT GREATER THAN 4093 SYLLABLES *; 27910000=04301000= END EMIT; 27915000=04302000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%27920000=04302000= - COMMENT THE PRINCIPLE FUNCTION OF DEBUG IS TO COMPUTER THE PROPER 27925000=04303000= + COMMENT THE PRINCIPLE FUNCTION OF DEBUG IS TO COMPUTE THE PROPER 27925000161030PK PARAMETERS FOR STREAM PROCEDURE BUG; 27930000=04304000= COMMENT EMITD EMITS THE DIA,DIB,TRB SEQUENCE OF CODE. THE 27935000=04305000= PREVIOUS SETTING OF THE G-H AND K-V REGISTERS IS COMPARED 27940000=04306000= @@ -6422,8 +6422,8 @@ NORMAL: 28120000 EMIT(((DIALB:= B) DIV 6)*512+(B:= B MOD 6)*64+DIB); 28150000=04317000= EMIT(TRB+64*T); 28155000=04318000= DIALA:= DIALB:= 0; 28160000=04319000= - COMMENT THE PRECEEDING STATEMENT CAN BE REMOVED FOR OPTIMIZING 28165000=04320000= - G-H AND K-V REGISTERS, OTHERWISE NO OPTIMIZING OCCURS; 28170000=04321000= + COMMENT THE PRECEEDING STATEMENT CAN BE REMOVED FOR OPTIMIZING 28165000161030PK + G-H AND K-V REGISTERS,OTHERWISE NO OPTIMIZING OCCURS; 28170000161030PK END EMITD; 28175000=04322000= EXIT: 28180000=04322100= END; 28185000=04322100= @@ -6581,7 +6581,7 @@ EXIT: 28625000 INFO[INDEX.LINKR, INDEX.LINKC]:= WORD; 28940000=05009000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%28945000=05009000= 28950000=05010000= - COMMENT FLAG FLAGS ERROR MESSAGES, COUNTS THEM AND SUPRESS FUTURE 28955000=05010000= + COMMENT FLAG FLAGS ERROR MESSAGES, COUNTS THEM AND SUPPRESS FUTURE 28955000161030PK ERROR MESSAGES UNTIL THE COMPILER THINKS IT HAS RECOVERED;28960000=05011000= PROCEDURE FLAG(ERRNUM); 28965000=05012000= VALUE 28970000=05012000= @@ -6609,13 +6609,13 @@ EXIT: 28625000 29030300 TALLY:= 0; 29030400 STREAMSETDI(LINE, 0); 29035000=05019000= - STREAMSMEARLIT(11*8, 6" "); % BLANK LINE 29040000=05019000= + STREAMSMEARLIT(11*8, 6" "); %BLANK LINE 29040000161030PK STREAMSETSI(LSTSEQ, QX); 29045000=05020000= STREAMSKIPSI(-8); 29050000=05020000= STREAMTRANSFERWDS(1); 29055000=05020000= STREAMTRANSFERLIT(8, 6" <<<<"); 29060000=05021000= STREAMTRANSFERLIT(8, 6"<<<<<<<<"); 29060100 - STREAMTRANSFERLIT(8, 6"<<<<<<<<"); % SET FLAG 29060200 + STREAMTRANSFERLIT(8, 6"<<<<<<<<"); %SET FLAG 29060200161030PK STREAMSETSI(LSTSEQ, QX); 29065000=05023000= STREAMSETDI(LSTSEQ, QX); 29070000=05023000= STREAMSKIPDI(-8); 29075000=05023000= @@ -6799,7 +6799,7 @@ EXIT: 28625000 LTEMP = RR2 #; COMMENT LTEMP IS USED TO HOLD THE L 30025000=05163000= REGISTER SETTING FOR THE SAVE OR 30035000=05164000= RELEASE LITERAL THAT GETS PASSED TO 30040000=05165000= - KEN MYERS; 30045000=05166000= + KEN MEYERS; 30045000161030PK EMITO(MKS); 30050000=05167000= L:= (LTEMP:= L)+1; 30055000=05167000= EMITL(0); 30060000=05167000= @@ -6842,7 +6842,7 @@ COMMENT PROCEDURE PASSLIST WILL BRING THE LIST PROGRAM DESCRIPTOR 30225000 INTEGER 30245000=05187540= LISTADDRESS; 30250000=05187540= 30255000=05187550= -COMMENT PASSLIST ASSUMES I IS POINTING AT LIST ID; 30260000=05187550= +COMMENT PASSLIST ASSUMES I POINTING AT LIST ID; 30260000161030PK CHECKER(ELBAT[I]); 30265000=05187560= LISTADDRESS:= ELBAT[I].ADDRESS; 30270000=05187570= IF ELCLASS = SUPERLISTID THEN % SUBSCRIPTED LIST ID. 30275000=05187580= @@ -6993,7 +6993,7 @@ COMMENT PASSLIST ASSUMES I IS POINTING AT LIST ID; 30260000 END DEBUGDESC; 30895000=05243500= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%30896000 REAL PROCEDURE PROGDESCBLDR(TYPE, RELAD, SPAC); 30900000=05245000= - COMMENT THIS PROCEDURE BUILDS PDPRT AS DESCRIBED ABOVE, IT IS 30905000=05246000= + COMMENT THIS PROCEDURE BUILDS PDPRT AS DESCRIBED ABOVE.IT IS 30905000161030PK CONCERNED WITH TYPE 1 ENTRIES.THE INFORMATION FURNISHED 30910000=05247000= BY PDPRT ALLOWS A DRUM DESCRIPTOR TO BE BUILT FOR EACH 30915000=05248000= SEGMENT AND A PSEUDO PROGRAM DESCRIPTOR TO BE BUILT INTO 30920000=05249000= @@ -7389,7 +7389,7 @@ EXIT: 32735000 WRITEPRT(IF Q THEN 6"PRT " ELSE 6"STACK", L, B2D(GS)); 32760000=05376100= END GETSPACE; 32765000=05378000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%32770000=05378000= - COMMENT ARRAYCHECK CHECKS A PARAMTER-INFO WORD FOR SORT/MERGE; 32775000=05379000= + COMMENT ARRAYCHECK CHECKS A PARAMETER-INFO WORD FOR SORT/MERGE; 32775000161030PK BOOLEAN PROCEDURE ARRAYCHECK(AAW); 32780000=05380000= VALUE 32785000=05380000= AAW; 32790000=05380000= @@ -7406,7 +7406,7 @@ EXIT: 32735000 STEPIT 32845000=05387000= END COMMACHECK; 32850000=05387000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%32855000=05387000= - COMMENT HVCHECK CHECKS VALIDITY OF HIVALU PROCEDURE FOR SORT; 32860000=05388000= + COMMENT HVCHECK CHECKS VALIDITY OF HIVALU PROCEDURE FOR SORT; 32860000161030PK BOOLEAN PROCEDURE HVCHECK(ELBW); 32865000=05389000= VALUE 32870000=05389000= ELBW; 32875000=05389000= @@ -7474,7 +7474,7 @@ EXIT: 32735000 33185000=06000000= COMMENT ROUTINES IN THIS SECTION COMPILE CODE FOR ALL EXPRESSIONS;33190000=06000000= 33195000=06001000= - COMMENT AEXP IS THE ARITHMETIC EXRESSION ROUTINE; 33200000=06001000= + COMMENT AEXP IS THE ARITHMETIC EXPRESSION ROUTINE; 33200000161030PK PROCEDURE AEXP; 33205000=06002000= BEGIN 33210000=06003000= IF ELCLASS = IFV THEN 33215000=06005000= @@ -8121,7 +8121,7 @@ EXIT: 36115000 ALSO HANDLES THE CASE OF A CONCATENATE WHERE ACTUALPARA- 36395000=06163000= PART CAUSED THE VARIABLE ROUTINE TO COMPILE ONLY PART OF 36400000=06164000= A PRIMARY. MOST OF THE WORK OF SIMPBOO IS DONE BY BOO- 36405000=06165000= - COMP. AN ARTIFIAL ROUTINE WHICH DOES THE HIERARCHY ANA- 36410000=06166000= + COMP, AN ARTIFIAL ROUTINE WHICH DOES THE HIERARCHY ANA- 36410000161030PK LYSIS USING RECURSION; 36415000=06167000= PROCEDURE SIMPBOO; 36420000=06168000= BEGIN 36425000=06169000= @@ -8180,7 +8180,7 @@ EXIT: 36115000 EMITLNG; 36690000=06203000= EMITO(LND); 36695000=06204000= EMITO(LNG); 36700000=06205000= - EMITO(0); 36705000=06206000= + EMIT(0); 36705000161030PK L:= L-1 36710000=06207000= END 36715000=06208000= ELSE 36720000=06208000= @@ -8445,7 +8445,7 @@ COMMENT SET UP CODE FOR RELATIONAL OPERATOR TO BE 37990000 EMITTED LATER (AFTER PROCESSING SECOND HALF). 37995000=06284800= THE HIGH-ORDER BITS OF THE BINARY OPERATOR 38000000=06285000= ARE TAKEN FROM THE [30:10] FIELD OF THE 38005000=06285200= - ELBAT WORD FRO THE RELATIONAL SYMBOL; 38010000=06285400= + ELBAT WORD FOR THE RELATIONAL SYMBOL; 38010000161030PK IF MANY THEN 38015000=06285600= IF SIMPLE THEN 38020000=06285800= PLUG(CONSTANA, A, SIGNA) 38025000=06285800= @@ -8736,7 +8736,7 @@ EXIT: 39315000 BEGIN 39460000=06366000= COMMENT OUR BAD GO TO IS JUMPING OUTSIDE OF ALL PROCEDURES; 39465000=06367000= EMIT(0); 39470000=06368000= - EMITL(TLEVEL); 39475000=06369000= + EMITL(TLEVEL) 39475000161030PK END 39480000=06370000= ELSE 39485000=06370000= BEGIN 39490000=06370000= @@ -9099,7 +9099,7 @@ ANOTHER: 41195000 SCLASS:= SCLASS-GT1+1 41295000=07091000= COMMENT IF PROCEDURE IS NOT FORMAL WE OBTAIN VBIT FROM THE ADDITION-41300000=07091000= AL INFO FOR THE PROCEDURE. WE ALSO GET SCLASS FROM THIS 41305000=07092000= - SOURCE. HOWEVER SCLASS IS NORMALIZED TO REAL, IF NEEDED; 41310000=07093000= + SOURCE, HOWEVER SCLASS IS NORMALIZED TO REAL, IF NEEDED; 41310000161030PK END; 41315000=07094000= IF T1:= TABLE(I+1) ^= COMMA THEN 41320000=07095000= IF T1 ^= RTPAREN THEN 41325000=07096000= @@ -9292,7 +9292,7 @@ ANOTHER: 41195000 THAN THIS IT SETS T6 TO ZERO; 42265000=07179000= COMMENT IF THIS PLACE IS REACHED WE HAVE A NON-STREAM PROCEDURE. 42270000=07180000= WE HAVE NOT YET DECEIDED WHETHER WE HAVE 42275000=07181000= - 1) A ROW DESIGNATOR WITH FORMAL PROCEDURE. 42280000=07182000= + 1) A ROW DESIGNATOR WITH FORMAL PROCEDURE, 42280000161030PK 2) A SUBSCRIPTED VARIABLE, OR 42285000=07183000= 3) A GENUINE NAME CALL EXPRESSION; 42290000=07184000= IF TABLE(I+2) = LITNO AND 42295000=07187000= @@ -9466,10 +9466,10 @@ L10: 43145000 43155000=07275000= TB1:= TRUE; 43160000=07275000= IF FORMALF THEN 43165000=07275000= - GO LODPOINT; 43170000=07275000= + GO TO LODPOINT; 43170000161030PK LP: IF T1:= TAKE(WHOLE:= GIT(WHOLE)).[7:8] = 0 THEN 43175000=07277000= BEGIN 43180000=07277000= - COMMENT THE PRCOEDURE BEING PASSED HAS ZERO PARAMETERS; 43185000=07278000= + COMMENT THE PROCEDURE BEING PASSED HAS ZERO PARAMETERS; 43185000161030PK IF TB1 THEN 43190000=07279000= GO TO LODPOINT; 43195000=07279000= COMMENT IF THE PROCEDURE IS NOT A FUNCTION, WE PASS THE PROCEDURE 43200000=07280000= @@ -9552,7 +9552,7 @@ L18: 43520000 END 43595000=07336000= ELSE 43600000=07336000= GO TO LODPOINT; 43605000=07336000= - COMMENT IF VBIT WE DO VALUE CALL. OTHERWISE WE PASS PROCEDURE 43610000=07337000= + COMMENT IF VBIT WE DO VALUE CALL, OTHERWISE WE PASS PROCEDURE 43610000161030PK DESCRIPTOR ALONG; 43615000=07338000= END; 43620000=07339000= TB1:= FALSE; 43625000=07340000= @@ -9642,7 +9642,7 @@ EXIT: 44020000 COMMENT PROCSTMT COMPILES CODE FOR ALL PROCEDURE STATEMENTS AND 44045000=07386000= FUNCTION CALLS (EXCEPT FOR STREAM PROCEDURES). THE 44050000=07387000= PARAMETERS, FROM, TELLS WHO CALLED. IF STMT CALLED FROM 44055000=07388000= - IS TRUE, PROCSTMT ALSO HANDLES FUNCTION NAME ASSIGNMENT 44060000=07389000= + IS TRUE. PROCSTMT ALSO HANDLES FUNCTION NAME ASSIGNMENT 44060000161030PK OPERATIONS; 44065000=07390000= PROCEDURE PROCSTMT(FROM); 44070000=07391000= VALUE 44075000=07391000= @@ -9695,7 +9695,7 @@ EXIT: 44020000 EMITL(JUNK); 44305000=07418000= EMITO(SND); 44310000=07418000= EMITO(MKS); 44315000=07418000= - EMITL(JUNK); 44320000=07419000= + EMITV(JUNK); 44320000161030PK EMITL(PASSTYPE(HOLE)); 44325000=07419000= EMITPAIR(GNAT(POWERSOFTEN), LOD); 44330000=07420000= PASSALPHA(HOLE); 44335000=07420000= @@ -9732,7 +9732,7 @@ EXIT: 44365000 GT4:= GT2.[46:6]; 44490000=07448000= FOR GT1:= 1 STEP 1 UNTIL GT4 DO 44495000=07449000= EMIT(0); 44500000=07449000= - COMMENT THIS CODE CALLS ZERO LISTS TO MAKE SPACE FOR LOCALS INSIDE44505000=07450000= + COMMENT THIS CODE CALLS ZERO LITS TO MAKE SPACE FOR LOCALS INSIDE 44505000161030PK OF STREAM PROCEDURES; 44510000=07451000= IF ELCLASS ^= LEFTPAREN THEN 44515000=07452000= ERR(128) 44520000=07453000= @@ -10183,10 +10183,10 @@ EXIT: 46745000 COMMENT THE CASE STATEMENT HAS THE FOLLOWING FORM: 46770000=07646110= CASE OF BEGIN 46775000=07646120= AT EXECUTION THE CASE STATEMENT SELECTS ONE OF THE STATEMENTS 46780000=07646130= - IN THE , DEPENDING ON THE VALUE OF THE , 46785000=07646140= + IN THE , DEPENDING ON THE VALUE OF THE . 46785000161030PK ONLY THE SELECTED STATEMENT IS EXECUTED AND CONTROL RESUMES AFTER 46790000=07646150= THE . IF THERE ARE N STATEMENTS IN THE 46795000=07646160= - , THEY MAY BE CONSIDERED NUMBERED 0,1,...,N-1. 46800000=07646170= + , THEY MAY BE CONSIDERED NUMBERED 0,1,...,N-1, 46800000161030PK AND THE MUST TAKE ON ONLY THESE VALUES. OTHER VALUES 46805000=07646180= WILL RESULT IN AN INVALID INDEX TERMINATION OF THE OBJECT PROGRAM. 46810000=07646190= THE STATEMENTS IN THE MAY BE ANY EXECUTABLE 46815000=07646200= @@ -10331,7 +10331,7 @@ COMMENT THE FOLLOWING PROCEDURE HANDLES THE FILL STATEMENT. 47480000 BY THE FILL STATEMENT EVERY TIME THE FILL STATEMENT IS 47510000=07650000= EXECUTED.STRINGCONSTANTS,LITERAL ,AND NONLITERAL NUMBERS 47515000=07650500= ARE ALL CONVERTED BY THE SCANNER AND NUMBER BUILDER.OCTAL 47520000=07651000= - NUMBERS LOOK LIKE IDENITIFERS TO FILLSTMT AND ARE CONVERTED 47525000=07651500= + NUMBERS LOOK LIKE IDENTIFIERS TO FILLSTMT AND ARE CONVERTED 47525000161030PK BY OCTIZE.AFTER BUILDING THE SEGMENT AN ENTRY IS MADE IN 47530000=07652000= PDPRT TO SUPPLY INFO TO BUILD A DISK DESCRIPTOR IN THE 47535000=07652500= SEGMENT DICTIONARY.THE COMMUNICATE LITERAL IS 7; 47540000=07653000= @@ -10881,7 +10881,14 @@ EXIT: 49280000 END 50210000=07859900= ELSE 50215000=07859900= $ SET OMIT = NOT TSPOL 50220000=07859900= - $ POP OMIT % NOT SURE ABOUT THIS... 50220100 + IF Q = 6"@COMMU" THEN % [NOT IN ORIGINAL LISTING]50220100161030PK + BEGIN % [NOT IN ORIGINAL LISTING]50220200161030PK + PANA; % [NOT IN ORIGINAL LISTING]50220300161030PK + EMITO(COM); % [NOT IN ORIGINAL LISTING]50220400161030PK + GO XXX % [NOT IN ORIGINAL LISTING]50220500161030PK + END % [NOT IN ORIGINAL LISTING]50220600161030PK + ELSE % [NOT IN ORIGINAL LISTING]50220700161030PK + $ POP OMIT % [NOT IN ORIGINAL LISTING]50220800161030PK BEGIN 50225000=07900000= ERROR(100); 50230000=07900000= GO TO XXX 50235000=07900000= @@ -11013,11 +11020,11 @@ EXIT: 50860000 END THIS HAIRY KLUDGE; % 50865000=07954000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%50870000=07954000= 50875000=08000000= - COMMENT FORSTMT IS RESPONSIBLE FOR THE COMPILATION OF FOR STATEMENTS. 50880000=08000000= + COMMENT FORSTMT IS REPONSIBLE FOR THE COMPILATION OF FOR STATEMENTS. 50880000161030PK IF THE FOR STATEMENT HAS A SINGLE STEP-UNTIL ELEMENT SUCH 50885000=08001000= THAT THE INITIAL VALUE, THE STEP AND THE FINAL VALUE ARE 50890000=08002000= ALL OF THE FORM V,+V, OR -V WHERE V IS A VARIABLE OR A 50895000=08003000= - CONSTANT, THEN THE CODE TAKES ON MORE EFFICIENT FORM. 50900000=08004000= + CONSTANT, THEN THE CODE TAKES ON A MORE EFFICIENT FORM. 50900000161030PK IN OTHER CASES THE CODE IS SOMEWHAT LESS EFFICIENT, SINCE 50905000=08005000= THE BODY OF THE FOR STATEMENT BECOMES A SUBROUTINE. THE 50910000=08006000= STEP ALSO BECOMES A SUBROUTINE IF IT IS NOT SIMPLE; 50915000=08007000= @@ -11564,7 +11571,7 @@ EXIT: 53560000 EMITO(965) 53635000=08289030= END #; 53640000=08289030= PROCEDURE READSTMT; 53645000=08290000= - BEGIN COMMENT READSTMT GENERATES CODE TO CALL INTERPTI)WHICH IS53650000=08291000= + BEGIN COMMENT READSTMT GENERATES CODE TO CALL INTERPTI(WHICH IS53650000161030PK SHORT FOR INTERPRET INPUT) AN INTRINSIC PROCEDURE ON THE 53660000=08292000= DRUM, PASSING TO IT PARAMETERS DETERMINED BY THE FORMAT OF53665000=08293000= THE READ OR SPACE STATEMENT. 53670000=08294000= @@ -11592,7 +11599,7 @@ EXIT: 53560000 VALUE IS ONE MORE THAN THE NUMBER OF RECORDS TO BE 53780000=08316000= PROCESSED. 53785000=08317000= END OF FILE LABEL IS A DATA DESCRIPTOR POINTING TO A LABEL53790000=08318000= - DESCRIPTOR FOR THE END OF FILE JUMPS. 53795000=08319000= + DESCRIPTOR FOR END OF FILE JUMPS. 53795000161030PK PARITY LABEL IS A DATA DESCRIPTOR POINTING TO A LABEL 53800000=08320000= DESCRIPTOR FOR PARITY CONDITION JUMPS. 53805000=08321000= + OR - N IS SIMILAR TO ACTION TYPE. IT CONTAINS THE EXACT53810000=08322000= @@ -11733,7 +11740,7 @@ EXIT: 53560000 %%% IN THE C-FIELD OF THE DSKADDR. THE SECOND 54520000=08411000= %%% IS THE WAIT-TIME, RESIDING IN THE 54525000=08411010= %%% F-FIELD OF THE DSKADDR, AND ALSO TURNING-ON 54530000=08411020= - %%% THE EXP-SIGN BIT OF DSKADDR,X"S ARE EMPTIES 54535000=08411030= + %%% THE EXP-SIGN BIT OF DSKADDR.X"S ARE EMPTIES 54535000161030PK %%% IN THE ABOVE, NS = NO OR STOP. 54540000=08411040= STEPIT; %%% STEP OVER [, AND POINT AT NEXT ITEM. 54545000=08412000= IF RR1:= 54550000=08412010= @@ -12066,7 +12073,7 @@ COMMENT FILEATTRIBUTEHANDLER HANDLES FILE ATTRIBUTE STUFF. IT CONSTRUCTS56130000 PASSES N=FP, AND DOES THE SAME AS #3 (ABOVE). 56235000=08493410= 5. IODEC: 56240000=08493420= PASSES N=FIO, AND TELLS FAH THAT A MKS & FILE DESC 56245000=08493430= - HAVE ALREADY BEEN EMITTED, THE ATTRIBUTEINDX IS 56250000=08493440= + HAVE ALREADY BEEN EMITTED. THE ATTRIBUTEINDX IS 56250000161030PK DETERMINED BY IODEC, AND IS PASSED VIA GT1. 56255000=08493450= END OF COMMENT ; 56260000=08493460= INTEGER PROCEDURE FILEATTRIBUTEHANDLER(N); 56265000=08493470= @@ -12255,7 +12262,7 @@ EXIT: 56945000 SEPARATING THE FIRST AND SECOND 57215000=08574000= PARAMETERS; 57220000=08575000= LABEL 57225000=08576000= - ONEPARENSH; COMMENT I IS POINT AT THE RIGHT 57230000=08576000= + ONEPARFNSH; COMMENT I IS POINTING AT THE RIGHT 57230000161030PK PARENTHESIS AT THIS POINT AND I HAVE 57240000=08577000= JUST DISCOVERED THAT THIS IS THE ONE 57245000=08578000= PARAMETER CASE; 57250000=08579000= @@ -12328,7 +12335,7 @@ EXIT: 56945000 EMITL(1); 57600000=08608000= IF RRB1 THEN 57605000=08610000= GO CHKSECOND; 57610000=08610000= - ONEPARENSH: 57615000=08611000= + ONEPARFNSH: 57615000161030PK STEPIT; 57620000=08611000= EMITL(0); 57625000=08611000= EMITL(0); 57630000=08611000= @@ -12358,15 +12365,15 @@ EXIT: 56945000 IF CHECK(LFTBRKET, 440) THEN 57750000=08615000= GO TO EXIT; 57755000=08615000= COMMENT ERROR 440 MEANS IMPROPER DELIMITER FOR FIRST 57760000=08616000= - PARAMETER IN A WRITE STATEMENT; 57765000=08617000= + PARARAMETER IN A WRITE STATEMENT; 57765000161030PK STEPIT; 57770000=08618000= %%% THE FOLLOWING CODE COMPILES CODE FOR [DPN],[DPN,*], 57775000=08619000= %%% [DPN,],[*],[*,*],[*,],[],[,*] 57780000=08619010= - %%% AND [,], WHERE DPN IN STOP, DBL, PAGE, OR 57785000=08619020= + %%% AND [,], WHERE DPN IS STOP, DBL, PAGE, OR 57785000161030PK %%% NO. THE FIRST (LEFTMOST) IS THE CHANNELSKIP, 57790000=08619030= %%% RIGHT JUSTIFIED TO ITS C-FIELD. THE SECOND IS 57795000=08619040= %%% THE WAIT-TIME, RESIDING IN THE F-FIELD OF CHANNELSKIP,57800000=08619050= - %%% AND ALSO TURNING ON THE EXP-SIGN BIT OF CHANNELSKIP, 57805000=08619060= + %%% AND ALSO TURNING ON THE EXP-SIGN BIT OF CHANNELSKIP. 57805000161030PK %%% *"S ARE CONSIDERED TO BE EMPTIES. 57810000=08619070= IF ACCUM1:= 57815000=08619080= IF ACCUM1:= ACCUM[1] = 6"3DBL00" THEN 57820000=08619080= @@ -12454,7 +12461,7 @@ EXIT: 56945000 CONTROL PART; 58230000=08636000= CHKRTPAREN: 58235000=08637000= IF STEPI = RTPAREN THEN 58240000=08638000= - GO TO ONEPARENSH; 58245000=08638000= + GO TO ONEPARFNSH; 58245000161030PK IF CHECK(COMMA, 442) THEN 58250000=08640000= GO TO EXIT; 58255000=08640000= COMMENT ERROR 442 MEANS ILLEGAL CARRIAGE CONTROL 58260000=08641000= @@ -12727,7 +12734,7 @@ EXIT: 59610000 ::=CLOSE(,SAVE)/ 59660000=08761000= - - - - - - - - - - - - - - 59665000=08762000= (3,0,FILE,4) 59670000=08763000= - ** ** ** ** ** ** ** ** ** ** ** ** ** ** 59675000=08764000= + ** ** ** ** ** ** ** ** ** ** ** ** ** ** 59675000161030PK CLOSE(,RELEASE)/ 59680000=08765000= - - - - - - - - - - - - - - 59685000=08766000= (7,0,FILE,4) 59690000=08767000= @@ -12737,8 +12744,8 @@ EXIT: 59610000 (1,0,FILE,4) 59710000=08771000= ::= CLOSE(, PURGE) 59715000=08771100= -- -- -- -- -- --- -- -- -- -- -- -- 59720000=08771200= - (4,0,FILE,4) 59725000=08771300= - ** ** ** ** ** ** *** ** ** ** ** ** ; 59730000=08771400= + (4,0,FILE,4) 59725000=08771300= + ** ** ** ** ** ** *** ** ** ** ** ** ; 59730000=08771400= LABEL 59735000=08772000= EXIT; COMMENT THE LABEL EXIT APPEARS AFTER THE LAST 59740000=08772000= EXECUTABLE STATEMENT IN THE CLOSESTMT ROUTINE; 59750000=08773000= @@ -12783,12 +12790,12 @@ EXIT: 59610000 GO EMITREST; 59970000=08803000= END; 59975000=08804000= IF ELCLASS = FACTOP THEN 59980000=08806000= - BEGIN COMMENT ASTERISK UNTI DISPOSITION PART CASE; 59985000=08806000= + BEGIN COMMENT ASTERISK UNIT DISPOSITION PART CASE; 59985000161030PK EMITL(1); 59995000=08807000= GO EMITREST; 60000000=08807000= END; 60005000=08808000= IF ELCLASS = DECLARATORS AND ELBAT[I].ADDRESS = SAVEV THEN 60010000=08810000= - BEGIN COMMENT SAVE UNIT DISPOSITION PART CASE; 60015000=08810000= + BEGIN COMMENT SAVE UNIT DISPOSTION PART CASE; 60015000161030PK EMITL(3); 60025000=08811000= GO EMITREST; 60030000=08811000= END; 60035000=08812000= @@ -12828,7 +12835,7 @@ EXIT: 60130000 THISL = RR1 #; COMMENT THISL IS A TEMP CELL 60220000=08835000= FOR THE CURRENT L REGISTER; 60230000=08836000= DEFINE 60235000=08837000= - LTEMP = RR2 #; COMMENT LTEMP SETTING FOR THE60240000=08837000= + LTEMP = RR2 #; COMMENT LTEMP CONTAINS THE 60240000161030PK L REGISTER SETTING FOR THE 60250000=08838000= SAVE OR RELEASE LITERAL THAT 60255000=08839000= GETS PASSED TO KEN MEYERS; 60260000=08840000= @@ -12903,12 +12910,12 @@ EXIT: 60380000 ... 2,3,4,5,6,7 NUMBER OF FILES TO MERGE, OR 60610000=08870000= 0,3,4,5 ... NUMBER OF SORTTAPES TO USE 60615000=08871000= TP5 FL7 SCRATCH TAPES FOR SORT, 60620000=08872000= - TP4 FL6 OR MERGE FILES, POINTERS TO 60625000=08873000= + TP4 FL6 OR MERGE FILES. POINTERS TO 60625000161030PK TP3 FL5 TOP I/O DESCRIPTORS, OR ZERO 60630000=08874000= TP2 FL4 IF NOT USED. 60635000=08875000= TP1 FL3 60640000=08876000= 0 FL2 DISK FILES FOR SORT 60645000=08877000= - DK0 FL1 60650000=08878000= + DKO FL1 60650000161030PK 0/1 0 TRUE IF INPUT PROCEDURE 60655000=08879000= 0/1 0/1 TRUE IF OUTPUT PROCEDURE 60660000=08880000= INF 0 POINTER TO I/O DESC FOR INPUT 60665000=08881000= @@ -13544,7 +13551,7 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 63020000 3"1360001000000000", COMMENT x; 3"0000000000000000", 63710000=09206000= 3"0000000000040000", COMMENT $; 3"1370000000000000", COMMENT *; 63715000=09207000= 3"1350000600000000", COMMENT -; 3"1240000000160000", COMMENT ); 63720000=09208000= - 3"0620000000000000", COMMENT .,; 3"1340010250003470", COMMENT <=; 63725000=09209000= + 3"0620000000000000", COMMENT .,; 3"1340010250003470", COMMENT .<=; 63725000161030PK 3"0000000000000000", 3"1360002000000000", COMMENT /; 63730000=09210000= 3"1170000000000000", COMMENT ,; 3"0000000000020000", COMMENT %; 63735000=09211000= 3"1340001050002561", COMMENT ^=; 3"1340011050002460", COMMENT =; 63740000=09212000= @@ -13602,9 +13609,9 @@ FILL INFO[2,*] WITH 3"0030000120000000", 6"2LB000", % THESE ENTRIES ARE 63760000 3"0130000000040000", 6"5GAMMA", 3"0000000012600000",%65464000000=09214415= 3"0130000000040000", 6"5LNGAM", 3"0000000012700000",%65764005000=09214420= 3"0130000000040000", 6"3TAN00", 3"0000000011100007",%66064010000=09214425= - 3"0130000260000000", 6"4FAST0", %66364015000=09214426= - 3"0130000270000000", 6"4SLOW0", %66564020000=09214427= - 3"0130000240000000", 6"7PROTE",6"CT000000", %66764025000=09214428= + 3"0030000260000000", 6"4FAST0", %66364015000161030PK + 3"0030000270000000", 6"4SLOW0", %66564020000161030PK + 3"0030000240000000", 6"7PROTE",6"CT000000", %66764025000161030PK 3"2000000000004050", COMMENT POWERS OF TEN ; %67064030000=09214430= 3"0430000250000000", 6"5FIELD", %67164035000=09214432= 0, 6">SORT ",6"TEMPORAR",6"Y0000000", % SORTA %67364040000=09214435= @@ -13685,7 +13692,7 @@ FILL INFO[2,*] WITH 3"0030000120000000", 6"2LB000", % THESE ENTRIES ARE 63760000 LITC 0 --- THIS PUTS A BOTTOM ON THE STACK 64410000=09255000= AND IS ALSO USED AS A ONE SYLLABLE 64415000=09256000= CHARACTER MODE PROGRAM TO CAUSE AN EXIT. 64420000=09257000= - ITS PRIMARY FUNCTION IS TO CUT BACK 64425000=09258000= + ITS PRIMARY FUNTION IS TO CUT BACK 64425000161030PK THE STACK AFTER A COMMUNICATE OPERATOR. 64430000=09259000= MKS --- THIS SETS THE PROGRAM UP FOR RUNNING 64435000=09260000= IN SUBPROGRAM LEVEL.THIS IS TO ALLOW 64440000=09261000= @@ -13713,7 +13720,7 @@ FILL INFO[2,*] WITH 3"0030000120000000", 6"2LB000", % THESE ENTRIES ARE 63760000 PRT AS AN ABSENT DATA DESCRIPTOR.IT MAY BE RECOGNIZED IN 64605000=09282000= INFO BECAUSE IT IS MINUS. THE FIRST WORD IN EACH OF THESE 64610000=09283000= ENTRIES LOOKS LIKE THE REST OF INFO EXCEPT THAT THE INCR 64615000=09284000= - FIELD IS BROKEN INTO 2 PARTS, [14:2] IS USED TO ADD TO THE 64620000=09285000= + FIELD IS BROKEN INTO 2 PARTS. [14:2] IS USED TO ADD TO THE 64620000161030PK INDEX OF CURRENT WORD TO LINK TO NEXT ENTRY.THE REST OF 64625000=09286000= THE INCR FIELD IS USED BY IMPFUN. THE ADDITIONAL INFO 64630000=09287000= PORTION INDICATES AN INDEX THAT ALLOWS THE MCP TO ASSIGN 64635000=09288000= @@ -13860,12 +13867,12 @@ COMMENT WRITE DISK SEGMENT ZERO; 65285000 IF LISTER OR NOT NOHEADING THEN 65350000=09408000= BEGIN 65355000=09409000= FORMAT PAN("NUMBER OF ERRORS DETECTED =",I4,". COMPILAT" 65360000=09409200= - ,"ION TIME = ",I5," SECONDS."X22,2A4/ 65365000=09410000= + ,"ION TIME =",I5," SECONDS.",X22,2A4/ 65365000161030PK "PRT SIZE =",I4,"; TOTAL SEGMENT SIZE =",I6, 65370000=09411000= " WORDS; DISK SIZE =",I4," SEGS; NO. PGM. SEGS =", 65375000=09412000= I4/"ESTIMATED CORE STORAGE REQUIRED =",I6," WORDS.", 65380000=09413000= /"ESTIMATED AUXILIARY MEMORY REQUIRED =",I6," WORDS.", 65385000=09414000= - /"NUMBER OF CARD-IMAGES PROCESSED =",F7.0); 65390000=09414100= + /"NUMBER OF CARD-IMAGES PROCESSED = ",F7.0); 65390000161030PK FORMAT SERR("THERE WERE ",V6," SEQUENCE ERRORS"); 65395000=09414101= EBCDICBUFF[0]:= GT1; 65395100 MOVECHARACTERS 65400000=09415000= @@ -13902,7 +13909,7 @@ COMMENT WRITE DISK SEGMENT ZERO; 65285000 FORMATING ROUTINES TO PRODUCE DESIRED I/O. THERE IS ONE 65505000=10002000= WORD OF PSEUDO CODE PRODUCED FOR EACH EDITING PHRASE. IN 65510000=10003000= ADDITION ONE WORD IS PRODUCED FOR EACH LEFT PARENTHESIS, 65515000=10004000= - RIGHT PARENTHESIS, AND STROKE. EACH SIX CHARACTERS OF 65520000=10005000= + RIGHT PARENTHESIS, AND STROKE. EACH SIX CHARACTORS OF 65520000161030PK STRING ALSO PRODUCES ONE WORD. IN ADDITION THERE IS ONE 65525000=10006000= EXTRA WORD FOR EACH LEFT PARENTHESIS WITH NO REPEAT PART. 65530000=10007000= THIS IS AN IMPLIED STROKE TO CONTROL END OF LINE CONDI- 65535000=10008000= @@ -13912,7 +13919,7 @@ COMMENT WRITE DISK SEGMENT ZERO; 65285000 SKIP = [15:6], 65555000=10012000= CODE = [45:4], 65560000=10013000= W = [41:6], 65565000=10014000= - W1 = [19:4], W2 = [23:4], D1 = [27:4], D2 = [31:4], 65570000=10015000= + W1 = [19:4], W2 = [23:4], D1 = [27:4], D2 = [31:4]. 65570000161030PK S IS A DISTINGUISHER BETWEEN EDITING PHRASES AND OTHER 65575000=10016000= TYPE WORDS. CODE IS THE INTERNAL CODE TO DISTINGUISH 65580000=10017000= BETWEEN THE VARIOUS EDITING PHRASES OR BETWEEN THE OTHER 65585000=10018000= @@ -13920,7 +13927,7 @@ COMMENT WRITE DISK SEGMENT ZERO; 65285000 IF CODE = 0 THEN RIGHTPAREN, 65595000=10020000= IF CODE = 2 THEN STRING, 65600000=10021000= IF CODE = 4 THEN LEFTPAREN, 65605000=10022000= - IF CODE = 6 THEN STROKE, 65610000=10023000= + IF CODE = 6 THEN STROKE. 65610000161030PK IF CODE = 8 THEN SCALE. 65615000=10023100= GIVEN S = 0 WE HAVE 65620000=10024000= IF CODE = 0 THEN D, 65625000=10025000= @@ -13933,8 +13940,8 @@ COMMENT WRITE DISK SEGMENT ZERO; 65285000 IF CODE = 11 THEN U, 65660000=10030100= IF CODE =12 THEN O, 65665000=10031000= IF CODE = 13 THEN V, 65670000=10031100= - IF CODE =14 THEN L, 65675000=10032000= - IF CODE = 15 THEN R, 65680000=10032100= + IF CODE =14 THEN L. 65675000161030PK + IF CODE = 15 THEN R. 65680000161030PK W IS THE FIELD WIDTH. 65685000=10033000= FOR STRINGS [35:36] IS W CHARACTORS OF ALPHA, RIGHT 65690000=10034000= ADJUSTED. THE REST OF THE FIELDS ARE MEANINGLESS. 65695000=10035000= @@ -13945,33 +13952,33 @@ COMMENT WRITE DISK SEGMENT ZERO; 65285000 A NON-ZERO REPEAT FIELDS. 65720000=10040000= THE DESCRIPTION OF W1,W2, D1, AND D2 APPLIES ONLY TO 65725000=10041000= FORMATING TYPES. FOR THE PURPOSES OF DESCRIPTION LET 65730000=10042000= - D BE THE DECIMAL PART. W IS, OF COURSE, THE WIDTH, 65735000=10043000= + D BE THE DECIMAL PART. W IS, OF COURSE, THE WIDTH. 65735000161030PK THEN FOR D, W1=W2=D1=D2=SKIP=0. 65740000=10044000= FOR X, W = SKIP = WIDTH MOD 64 AND W1 = WIDTH DIV 64. 65745000=10045000= W2 = D1 = D2 =0. 65750000=10046000= FOR T, W=(WIDTH-1) MOD 64, W1=(WIDTH-1) DIV 64, AND 65755000=10046010= W2=D1=D2=0. 65760000=10046020= - FOR A, W1 = W, SKIP = 0 IF W < 6, OTHERWISE 65765000=10047000= - W1 = 6, SKIP = W-6, W2=D1=D2=0. 65770000=10048000= + FOR A, W1 = W, SKIP = 0 IF W < 6. OTHERWISE 65765000161030PK + W1 = 6, SKIP = W-6. W2=D1=D2=0. 65770000161030PK FOR I: SKIP = IF W > 16 THEN W-16 ELSE 0. 65775000=10049000= IF W > 8 THEN W1 = 8, W2 = W-SKIP-8. 65780000=10050000= - IF W < 8 THEN W1 = W, W2 = 0, ALWAYS D1=D2=0. 65785000=10051000= - FOR F IF D < 8 THEN D1 = D, D2=0, 65790000=10052000= - IF D > 8 THEN D1 = 8, D2=D-8, 65795000=10053000= + IF W < 8 THEN W1 = W, W2 = 0. ALWAYS D1=D2=0. 65785000161030PK + FOR F IF D < 8 THEN D1 = D, D2=0. 65790000161030PK + IF D > 8 THEN D1 = 8, D2=D-8. 65795000161030PK IF D >16 THEN ERROR. 65800000=10054000= IF W-D-1 > 16 THEN SKIP = W-D-17, OTHERWISE 65805000=10055000= SKIP=0. 65810000=10056000= - IF W-D-1 > 8 THEN W1=8, W2=W-D-1-SKIP-8, 65815000=10057000= + IF W-D-1 > 8 THEN W1=8, W2=W-D-1-SKIP-8 65815000161030PK IF W-D-1 < 8 THEN W1=W-D-1,W2=0. 65820000=10058000= FOR E D1 AND D2 ARE CALCULATED AS IN F EXCEPT THAT WE 65825000=10059000= - D+1 FOR D, SKIP = W-D-6, W1=W2=0. 65830000=10060000= - FOR O, W1=W2=D1=D2=SKIP=0, 65835000=10061000= - FOR L, W2=D1=D2=0, IF W > 5 THEN W1=5 ELSE W1 = W, 65840000=10062000= - SKIP = W-W1, 65845000=10063000= + D+1 FOR D. SKIP = W-D-6. W1=W2=0. 65830000161030PK + FOR O, W1=W2=D1=D2=SKIP=0. 65835000161030PK + FOR L, W2=D1=D2=0. IF W > 5 THEN W1=5 ELSE W1 = W. 65840000161030PK + SKIP = W-W1. 65845000161030PK FOR U: SKIP = W1 = W2 = D1 = D2 = 0. 65850000=10063100= FOR B: SEE U-PHRASE DESCRIPTION. 65855000=10063110= FOR R: SEE ABOVE F-PHRASE DESCRIPTION. 65860000=10063200= - FOR V: SKIP = W1 = W2 = UNSET, D1,D2 AS IN ABOVE 65865000=10063300= + FOR V: SKIP = W1 = W2 = UNSET. D1,D2 AS IN ABOVE 65865000161030PK F-PHRASE DESCRIPTION. 65870000=10063400= FORMATPHRASE USES RECURSION TO DO ANALYSIS OF SYNTAX. THE65875000=10064000= WORDS ARE GENERATED AND PLACED DIRECTLY INTO THE CODE 65880000=10065000= @@ -14220,8 +14227,8 @@ COMMENT WRITE DISK SEGMENT ZERO; 65285000 END 67120000=10150220= END 67125000=10150220= ELSE 67130000=10150220= - W:= -63; %%% PHRASE IS D. 67135000=10150220= - EMITFORMAT(FALSE, RD, REPEAT, SKIP, W, REAL(CODE = 6"B"), 67140000=10150230= + W:= -63; %%% PHRASE IS U. 67135000161030PK + EMITFORMAT(FALSE, RU, REPEAT, SKIP, W, REAL(CODE = 6"B"), 67140000161030PK REAL(W < 0), 0, 0); 67145000=10150230= GO TO EXIT; 67150000=10150260= END OF U PHRASE HANDLER; 67155000=10150270= @@ -14622,7 +14629,7 @@ EXIT: 68955000 FORSTMT COMMENT FORCLAUSE; 69060000=10294000= ELSE 69065000=10295000= IF ELCLASS = LFTBRKET THEN 69070000=10296000= - BEGIN COMMENT GORUP OF LIST ELEMENTS; 69075000=10296000= + BEGIN COMMENT GROUP OF LIST ELEMENTS; 69075000161030PK DO BEGIN 69085000=10297000= STEPIT; 69090000=10297000= LISTELEMENT 69095000=10297000= @@ -14701,7 +14708,7 @@ EXIT: 68955000 FLAG FOR A LIST, THE CODE TO JUMP AROUND THE LIST, 69490000=10336000= THE INITIAL JUMP OF THE LIST, THE OBTAINING OF A PRT CELL 69495000=10337000= FOR THE LIST, THE OBTAINING OF AN ACCIDENTAL PROGRAM 69500000=10338000= - DESCRIPTOR, THE STUFFING OF F INTO THIS DESCRIPTOR, 69505000=10339000= + DESCRIPTOR, THE STUFFING OF F INTO THIS DESCRIPTOR. 69505000161030PK LISTGEN EXPECTS I TO POINT AT FIRST LIST ELEMENT AND 69510000=10340000= LEAVES I POINTING AT FIRST ITEM BEYOND RIGHTPAREN. THE 69515000=10341000= VALUE RETURNED BY LISTGEN IS THE LOCATION OF THE 69520000=10342000= @@ -14749,7 +14756,7 @@ EXIT: 68955000 THERE ARE SIX TYPES OF MONITOR LIST ELEMENTS. THEY ARE 69735000=10373000= LABELS, SWITCHES, SIMPLE VARIABLES, SUBSCRIPTED VARIABLES,69740000=10374000= ARRAYS, AND FUNCTION DESIGNATORS. 69745000=10375000= - WITH ONE EXCEPTION, THE MERRIMAX ROUTINES ONLY FUNCTION 69750000=10376000= + WITH ONE EXCEPTION, THE MERRIMAC ROUTINES ONLY FUNCTION 69750000161030PK IS TO SAVE INFORMATION SO THAT OTHER ROUTINES, SUCH AS THE69755000=10377000= VARIABLE ROUTINE, CAN GENERATE THE ACTUAL CODE THAT CALLS 69760000=10378000= THE PRINTI ROUTINE AT OBJECT TIME. THE ONE EXCEPTION IS 69765000=10379000= @@ -14790,13 +14797,13 @@ EXIT: 68955000 FORMAT TYPE PRINTOUT 69940000=10414000= ----------- -------- 69945000=10415000= 0 ID 69950000=10416000= - --------- ----- 69955000=10417000= + --------- ------ 69955000161030PK 1 ID=V 69960000=10418000= - --------- ----- 69965000=10419000= + --------- ------ 69965000161030PK 2 ID[S1---SN]=V 69970000=10420000= - --------- ----- 69975000=10421000= + --------- ------ 69975000161030PK 3 ID[S1---SN]=V 69980000=10422000= - --------- ----- 69985000=10423000= + --------- ------ 69985000161030PK 4 ID=V1---VN 69990000=10424000= *********** ******** 69995000=10425000= THE FORMAT THAT V IS PRINTED IN WILL BE DETERMINED BY70000000=10426000= @@ -14828,7 +14835,7 @@ EXIT: 68955000 --------- ------------------------- 70130000=10452000= 4 (DESCRIPTOR FOR THE ARRAY,N,TYPEV, 70135000=10453000= POWERSOFTEN,ID,CHARI,FILE,4) 70140000=10454000= - *********** *************************** 70145000=10455000= + *********** **************************** 70145000161030PK SINCE THE RESTRICTION EXISTS THAT THE SCOPE OF THE 70150000=10456000= MONITOR FOR A LABEL OR SWITCH MUST BE THE SAME AS 70155000=10457000= THE SCOPE OF THE LABEL OR SWITCH, THE INFORMATION 70160000=10458000= @@ -14844,7 +14851,7 @@ EXIT: 68955000 WORD WILL BE SET. 70210000=10468000= SIMPLE VARIABLES- A NEW ENTRY IS MADE IN INFO WITH 70215000=10469000= ONE EXTRA WORD WHICH CONTAINS THE ADDRESS OF 70220000=10470000= - THE MONITOR FILE IN [10:11], I WILL HAVE A 70225000=10471000= + THE MONITOR FILE IN [10:11]. I WILL HAVE A 70225000161030PK DEFINE SVARMONFILE = [10:11]#. 70230000=10472000= ARRAYS- A NEW ENTRY IS MADE IN INFO WITH THE SAME 70235000=10473000= NUMBER OF WORDS AS THE ORIGIONAL ENTRY. THE 70240000=10474000= @@ -15124,13 +15131,13 @@ EXIT: 71640000 ENTRY TO THE BLOCK CONTAINING THE DUMP DECLARATION. THE 71755000=10699000= OTHER TYPE CODE IS ONLY EXECUTED WHEN THE DUMPOR IS PASSED71760000=10700000= . THIS CODE THEN COMPARES THE DUMPORS COUNTER WITH THE 71765000=10701000= - DUMP INDICATOR, IF THEY ARE NOT EQUAL IT JUMPS TO EXIT. 71770000=10702000= + DUMP INDICATOR. IF THEY ARE NOT EQUAL IT JUMPS TO EXIT. 71770000161030PK IF THEY ARE EQUAL IT THEN PROCEEDS TO CALL PRINTI ONCE 71775000=10703000= FOR EACH DUMP LIST ELEMENT. FOR A DESCRIPTION OF PRINTI 71780000=10704000= SEE THE COMMENTS FOR THE MERRIMAC ROUTINE; 71785000=10705000= LABEL 71790000=10706000= START; COMMENT WHEN START IS REACHED, I MUST BE 71795000 - POINTING AT THE FILE IDENTIFIER IN THE DUMP 71805000=10707000= + POINTING AT THE FILE INDENTIFIER IN THE DUMP 71805000161030PK DECLARATION; 71810000=10708000= LABEL 71815000=10709000= EXIT; COMMENT EXIT APPEARS AT THE END OF THE DMUP 71820000 @@ -15168,7 +15175,7 @@ EXIT: 71640000 PASSN; COMMENT THE CODE AT PASSN PASSES N (THE 72015000 NUMBER OF DIMENSIONS) TO THE PRINTI ROUTINE; 72025000=10735000= LABEL 72030000=10736000= - SUBSLOOP; COMMENT THE CODE AT SUBLOOP PASSES 72035000 + SUBSLOOP; COMMENT THE CODE AT SUBSLOOP PASSES 72035000161030PK SUBSCRIPTS TO PRINTI; 72045000=10737000= ARRAY 72050000=10738000= LABELCTR[0:100]; COMMENT LABELCTR IS AN ARRAY THAT 72055000 @@ -15378,7 +15385,7 @@ STARTCALL: 72530000 IF CHECK(RTPAREN, 416) THEN 73195000=10903000= GO TO EXIT; 73200000=10903000= COMMENT ERROR 416 MEANS ILLEGAL DUMP LIST ELEMENT 73205000=10904000= - DELIMETER; 73210000=10905000= + DELIMITER; 73210000161030PK LEXIT:= L; 73215000=10906000= EMITL(0); 73220000=10906000= EMITO(RTS); 73225000=10906000= @@ -15443,12 +15450,12 @@ EXIT: 73495000 OF EFFICIENCY. IF A SWITCH IS ONLY CALLED ONE THE CODE 73540000=10944000= IS QUITE A BIT BETTER. AFTER SWITCHGEN GOTOG IS TRUE IF 73545000=10945000= A COMMUNICATE MUST BE USED. THE BLOCK ROUTINE MARKS SUCH 73550000=10946000= - SWITCHES FORMAL. THIS IS, OF COURSE, A FICTION, FOR 73555000=10947000= + SWITCHES FORMAL. THIS IS, OF COURSE, A FICTION. FOR 73555000161030PK SIMPLE SWITCHES SWITCHGEN LEAVES THE INDEX TO INFO IN EDOC73560000=10948000= SO THAT PURGE CAN FIND THE LABELS. IT SHOULD BE NOTED 73565000=10949000= THAT A SWITCH EXPECTS THE SWITCH INDEX TO BE FOUND IN 73570000=10950000= JUNK. THE RESULT RETURNED BY SWITCHGEN IS WHETHER OR NOT 73575000=10951000= - TO STUFF F INOT A SWITCH DESCRIPTOR, SINCE A SWITCH DE- 73580000=10952000= + TO STUFF F INTO A SWITCH DESCRIPTOR, SINCE A SWITCH DE- 73580000161030PK SCRIPTOR IS AN ACCIDENTAL ENTRY DESCRIPTOR; 73585000=10953000= BOOLEAN PROCEDURE SWITCHGEN(BEFORE, PD); 73590000=10954000= VALUE 73595000=10954100= @@ -16249,7 +16256,7 @@ START: 77375000 EMITL(1); 77480000=13196450= EMITV(5); COMMENT CREATE AN ARRAY TO HOLD 77485000=13196460= LIST DESCRIPTORS FOR SWITCH LIST; 77495000=13196470= - COMMENT USED TO USE EMITN(XITR), DOESN"T ANYMORE; 77500000=13196480= + COMMENT USED TO USE EMITN(XITR). DOESN"T ANYMORE; 77500000161030PK J:= -1; 77505000=13196490= STOPENTRY:= FALSE; 77510000=13196490= DO BEGIN 77515000=13196510= @@ -16601,17 +16608,17 @@ COMMENT 79160000 MKS 79255000=13396000= DESC B 79260000=13397000= DESC C 79265000=13398000= - LITC 0 (LOWER BOUND MUST BE PASSED FOR OWN) 79270000=13399000= + LITC 0 (LOWER BOUND MUST BE PASSED FOR OWN) 79270000161030PK OPDC X 79275000=13400000= - LITC JUNK (JUNK CELL) 79280000=13401000= - ISN (INTEGERIZE UPPER BOUND) 79285000=13402000= - LITC 1 (COMPUTE SIZE 79290000=13403000= - ADD OF DIMENSION 79295000=13404000= - LITC 1 (LOWER BOUND,SECOND DIMENSION) 79300000=13405000= + LITC JUNK (JUNK CELL) 79280000161030PK + ISN (INTEGERIZE UPPER BOUND) 79285000161030PK + LITC 1 (COMPUTE SIZE 79290000161030PK + ADD OF DIMENSION 79295000161030PK + LITC 1 (LOWER BOUND,SECOND DIMENSION) 79300000161030PK CHS 79305000=13406000= - LITC 12 (SIZE SECOND DIMENSION) 79310000=13407000= - LITC 2 (NUMBER DIMENSIONS) 79315000=13408000= - LITC 2 (NUMBER ARRAYS) 79320000=13409000= + LITC 12 (SIZE SECOND DIMENSION) 79310000161030PK + LITC 2 (NUMBER DIMENSIONS) 79315000161030PK + LITC 2 (NUMBER ARRAYS) 79320000161030PK LITC OWNCOM (OWN ARRAY COMMUNICATE) 79325000=13410000= COM 79330000=13411000= DESC XITR 79335000=13412000= @@ -16631,7 +16638,7 @@ COMMENT 79160000 SUB UPPER 79405000=13426000= LITC 1 -LOWER 79410000=13427000= ADD +1) 79415000=13428000= - OPDC M (COMPUTER LOWER BOUND 79420000=13429000= + OPDC M (COMPUTE LOWER BOUND 79420000161030PK OPDC N SECOND DIM) 79425000=13430000= ADD 79430000=13431000= LITC MNT (GET CELL FOR SECOND LOWER BOUND) 79435000=13432000= @@ -17143,7 +17150,7 @@ L: GT1:= (2*SGAVL-1) & 2[43:1:2]; 81620000 FLAG(IF REAL(ARRAYFLAG) = 3 THEN 509 ELSE 46); 81970000=13819410= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%81975000=13819410= COMMENT 46-ARRAE NON-LITERAL ARRAY BOUND NOT GLOBAL TO 81980000=13819500= - ARARY DECLARATION; 81985000=13819600= + ARRAY DECLARATION; 81985000161030PK PROCEDURE FAULTDEC; 81990000=13900000= COMMENT FAULTDEC HANDLES THE MONITOR 81995000=13900000= THING, FOR THE RUN-TIME ERROR BUSINESS. IT GETS STACK OR 82000000=13901000= @@ -18395,7 +18402,7 @@ CALLSTATEMENT: 87135000 5. ZEROL,VV,T . 88300000=15052000= 6. VV . 88305000=15053000= WHERE VN = DESC V 88310000=15054000= - EXP= ARITH, OR BOOLEAN EXPRESSION,AS REQUIRED. 88315000=15055000= + EXP= ARITH. OR BOOLEAN EXPRESSION,AS REQUIRED. 88315000161030PK M* = CALL ON MONITOR ROUTINE,IF REQUIRED. 88320000=15056000= VL = LITC V 88325000=15057000= VV = OPDC V 88330000=15058000=