From 60acd1318e3be7a1efa4d0b155c68c0e9ad3a2cb Mon Sep 17 00:00:00 2001 From: Paul Kimpel Date: Fri, 24 Aug 2012 04:29:49 +0000 Subject: [PATCH] Commit ESPOLXEM source after first successful compile of SYMBOL/KERNAL bootstrap program; commit accumulated corrections to ESPOL and ALGOLXEM sources from ESPOLXEM debugging; commit original transcription of SYMBOL/KERNAL. --- SYMBOL/ESPOL.alg_m | 60 +-- SYMBOL/KERNAL.esp_m | 113 +++++ tools/xem/ALGOLXEM.alg_m | 987 +++++++++++++++++---------------------- tools/xem/ESPOLXEM.alg_m | 274 +++++++---- 4 files changed, 753 insertions(+), 681 deletions(-) create mode 100644 SYMBOL/KERNAL.esp_m diff --git a/SYMBOL/ESPOL.alg_m b/SYMBOL/ESPOL.alg_m index d92f65a..9e799e1 100644 --- a/SYMBOL/ESPOL.alg_m +++ b/SYMBOL/ESPOL.alg_m @@ -731,7 +731,7 @@ COMMENT INFO FORMAT 01028000 OROP =93#, COMMENT 135; 01275000 ANDOP =94#, COMMENT 136; 01276000 RELOP =95#, COMMENT 137; 01277000 - ADDOP =96#, COMMENT 140; 01278000 + ADOP =96#, COMMENT 140; 01278000 MULOP =97#, COMMENT 141; 01278500 % STRING =99#, COMMENT 143; 01278600 COMMENT SUBCLASSES FOR DECLARATORS (KEPT IN ADDRESS); 01279000 @@ -753,7 +753,7 @@ COMMENT INFO FORMAT 01028000 NAMEV =16#, COMMENT 20; 01295000 FILEV =17#, COMMENT 21; 01296000 STREAMV =18#, COMMENT 22; 01297000 - DEFINEV =19#, COMMENT 23; 01298000 + DEFINEV =19#; COMMENT 23; 01298000 DEFINE DDES = 8#, 01299000 ADES = 28#, 01299010 PDES = 29#, 01299020 @@ -1101,8 +1101,8 @@ DEFINE PURPT=[4:8]#,SECRET=2#; 01628000 XIT = 71#, COMMENT (0435) 7.4.8.2 EXIT; 01676000 ZP1 = 322#, COMMENT (2411) 7.4.10.8 CONDITIONAL HALT; 01677000 SCI =1003#, COMMENT (7655) SCAN OUT INITIALIZE; 01677050 - SAN =1004#, COMMENT (7661) SYSTEM ATTENTION NEEDED 01677100 - SCS =1019#, COMMENT (7755) SCAN OUT STOP; 01677150 + SAN =1004#, COMMENT (7661) SYSTEM ATTENTION NEEDED; 01677100 + SCS =1019#; COMMENT (7755) SCAN OUT STOP; 01677150 COMMENT THESE DEFINES ARE USED BY EMITD; 01678000 DEFINE 01679000 DIA = 45#, COMMENT (XX55) 7.4.7.1 DIAL A; 01680000 @@ -2681,7 +2681,7 @@ PROCEDURE DEBUG(S); VALUE S; REAL S; 04277500 IF DEBUGTOG THEN DEBUG(S); 04297000 L~L+1; 04298000 END ELSE 04299000 - BEGIN ERROR(200); L~1; END; 04300000 + BEGIN ERR(200); L~1; END; 04300000 COMMENT 200 EMIT - SEGMENT GREATER THAN 4093 SYLLABLES *; 04301000 END EMIT ; 04302000 COMMENT EMITD EMITS THE DIA,DIB,TRB SEQUENCE OF CODE. THE 04305000 @@ -3106,7 +3106,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400 IF ELCLASS=ADOP 05344550 THEN 05344560 IF ELBAT[I].ADDRESS=SUBOP 05344570 - THEN GS~FZERO ELSE GS~512; 05344580 + THEN GS~FZERO ELSE GS~512 05344580 ELSE 05344590 BEGIN GS~0;I~I-1 END; 05344600 IF STEPI!LITNO THEN FLAG(51); 05344610 @@ -3212,7 +3212,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400 BEGIN M~ (U+L) DIV 2; 05441000 NESTSORT(L,M); 05442000 NESTSORT(M+1,U); 05443000 - I~K~L; J~M+1 05444000 + I~K~L; J~M+1; 05444000 AGAIN: IF I>M THEN GO TO TOP; 05445000 IF J>U THEN GO TO BOTTOM; 05446000 GT1~NESTPRT[SORTPRT[I].[33:15]].LINK; 05447000 @@ -3307,7 +3307,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400 S ~ S OR COUNT - T2.[11:3] < 0; 06074000 COUNT ~ T2.[14:2]+COUNT-2; 06075000 IF ELCLASS } OPERATOR THEN 06076000 - BEGIN IF T1 ! 0 THEN EMITO(T1); 06077000 + BEGIN IF T1 ! 0 THEN EMITO(T1) 06077000 ELSE BEGIN 06078000 T1 ~ T2.LINK+2; 06079000 T2 ~ T2.INCR+T1; 06080000 @@ -3323,7 +3323,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400 (T2~C DIV 6)[36:45:3]&(C-T2|6) 06090000 [39:45:3]) ELSE 06091000 IF T2 = ISOLATE THEN 06092000 - BEGIN T2 + C; 06093000 + BEGIN T2 ~ C; 06093000 IF STEPI ! LITNO 06094000 THEN BEGIN ERR(500); 06095000 GO TO EXIT END; 06096000 @@ -3440,7 +3440,7 @@ IF NOT(STREAMTOG AND (LEVEL>2))THEN 05344400 BEGIN REAL T1,T2; 06184000 T1 ~ (T2 ~ ELBAT[I]).ADDRESS; 06185000 PANA; 06186000 - IF T1 ! 0 THEN EMITO(T1); 06187000 + IF T1 ! 0 THEN EMITO(T1) 06187000 ELSE BEGIN 06188000 T1 ~ T2.LINK+T2.INCR+1; 06189000 T2 ~ T2.LINK+2; 06190000 @@ -3619,12 +3619,12 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; 07025030 BEGIN IF ACLASS = REALID AND 07069000 BOOLEAN(ELBAT[I].FORMAL)THEN BEGIN 07070000 CHECKER (ELBAT[I]); 07070500 - EMITPAIR(ELBAT[I],ADDRESS,LOD); 07071000 + EMITPAIR(ELBAT[I].ADDRESS,LOD); 07071000 STEPIT; END 07072000 ELSE VARIABLE(FL); 07073000 GO TO COMMON END; 07074000 IF ELCLASS { STRNGCON AND ELCLASS > LABELID 07075000 - THEN BEGIN PRIMARY; GOTO COMMON END; 07076000 + THEN BEGIN PRIMARY; GO TO COMMON END; 07076000 END; 07077000 EMITO(NOP); EMITO(NOP); 07078000 SCLASS ~ L; 07079000 @@ -3689,7 +3689,7 @@ FCR:= (LCR:=MKABS(TBUFF[9]))-9 END; 07025030 EMITO(MKS); 07408000 IF ELCLASS = LEFTPAREN 07409000 THEN ACTUALPARAPART(FALSE,GIT(HOLE)) 07410000 - ELSE IF FORMALF THEN L ~ L-1; 07411000 + ELSE IF FORMALF THEN L ~ L-1 07411000 ELSE IF TAKE(GIT(HOLE)).NODIMPART!0 THEN ERR(128); 07412000 EMITV(ADDRESS); 07413000 EXIT: END PROCSTMT; 07425000 @@ -4037,7 +4037,7 @@ L33:L34:L35:L36:L37:L39: 07730000 EXIT: END STMT; 07771000 07991000 PROCEDURE IOSTMT; 07993000 - IF STEPI ! LITNO OR (GT1~ELBAT[I].ADDRESS>15 THEN ERR(98)ELSE 07994000 + IF STEPI ! LITNO OR (GT1~ELBAT[I].ADDRESS>15) THEN ERR(98)ELSE 07994000 BEGIN EMIT(ELBAT[I-1].ADDRESS>1[41:47:1]>1[36:44:3]); 07995000 STEPIT 07996000 END SCOPE STATEMENT; 07997000 @@ -4496,12 +4496,12 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 09081000 OCT1310441000000002, "3MUL00", %503 09121300 OCT1310441050000002, "3NEQ00", %505 09121400 OCT1310100130000002, "3NOP00", %507 09121500 - OCT0650006550000002, "6SCOPO", "N......."; %509 09121600 + OCT0650006550000003, "6SCOPO", "N......."; %509 09121600 FILL INFO[2,*] WITH 09121650 - OCT131030000020004, "3RDF00", %512 09121700 + OCT1310300000020004, "3RDF00", %512 09121700 OCT0000, COMMENT LITC 0; 09121800 OCT2141, COMMENT FXS ; 09121900 - OCT131030000020004, "3RDS00", %516 09122000 + OCT1310300000020004, "3RDS00", %516 09122000 OCT0004, COMMENT LITC 1; 09122100 OCT2141, COMMENT FXS ; 09122200 OCT1310456000000002, "3RDV00", %520 09122300 @@ -4821,7 +4821,7 @@ STREAM PROCEDURE FIXHDR(F,N); VALUE N; 09393700 OCT0051000000000000, 09395400 OCT0441070001000062; 09395500 Q ~ -1; 09395700 - PUSHEE(SAVEINFO,L,4,5); 09396000 + PUSHEE(SAVINFO,L,4,5); 09396000 SAVNDX:=L; 09397000 END; 09397100 REWIND(CODISK); 09398000 @@ -4863,7 +4863,7 @@ STREAM PROCEDURE FIXHDR(F,N); VALUE N; 09393700 END; 09417500 MDESC(GT1,SAVINFO[I.LINKR,I.LINKC]); 09418000 END ELSE SAVINFO[I.LINKR,I.LINKC]:=0 UNTIL I:=I+1}PRTIMAX;09419000 - MDESC(0&1[2:47:1],SAVINFO[D,PRTBASE-1]); 09419100 + MDESC(0&1[2:47:1],SAVINFO[0,PRTBASE-1]); 09419100 SAVNDX ~ 30 | N; 09420000 END; 09420010 I ~ 0; J ~ -1; 09420020 @@ -5083,7 +5083,7 @@ STREAM PROCEDURE FIXHDR(F,N); VALUE N; 09393700 EL~TABLE(NXTELBT); 12112000 NXTELBT~NXTELBT-1; 12113000 IF EL!LEFTPAREN AND EL!LFTBRKET THEN 12114000 - FLAG(141); 12115000 + FLAG(141) 12115000 ELSE DO BEGIN J~J+1; 12116000 SET(INFO[T.LINKR,T.LINKC],ACCUM[1],K,64|J+12); 12117000 ACCUM[1].[12:6]~K+2; 12118000 @@ -5561,7 +5561,7 @@ INTEGER SGNOO,LOLD,SAVELO,PRTIO,NINFOO; 14030000 BOOLEAN FUNCTOGO,AJUMPO; 14034000 BEGINCTR~BEGINCTR+1; 14035000 IF SOP 14036000 - THEN BEGIN BLKAD~PROADD; 14037000 + THEN BEGIN BLKAD~PROADO; 14037000 IF LASTENTRY ! 0 14038000 THEN BEGIN GT1~BUMPL; 14039000 CONSTANTCLEAN; 14040000 @@ -5735,8 +5735,8 @@ SWITCHDEC: 14200000 DO 14218000 BEGIN 14219000 IF STEPI!LABELID OR ELBAT[I].LVL!LEVEL THEN FLAG(63); 14220000 - PUTNBUMP(ELBAT[I]);GT1~GT1+1; 14221000 - END; 14222000 + PUTNBUMP(ELBAT[I]);GT1~GT1+1 14221000 + END 14222000 COMMENT 14222500 UNTIL STEPI!COMMA; 14223000 14223500 @@ -6014,8 +6014,8 @@ PUT(TAKE(MARK)&NLOC[1:42:6]&L[16:36:12]&P[40:40:8],MARK); 14451200 IF ELCLASS = BEGINV THEN 14479000 BEGIN 14481000 CALLINFO~(CALLX~CALLX+1)+1; 14481100 - NEXTCTR~STACKCTR; 14481200 - BLOCK(TRUE); 14482000 + NESTCTR~STACKCTR; 14481200 + BLOCK(TRUE) 14482000 ; PURGE(PINFOO); 14483000 IF NESTOG THEN 14483100 BEGIN GT1~TAKE(PROINFO).ADDRESS; 14483200 @@ -6071,7 +6071,7 @@ START:END; 14503000 FUNCTOG~FUNCTOGO; 14599000 IF SOP THEN HTTEOAP(FALSE,FIRSTX,NINFOO,BLKAD) 14600000 ELSE BEGIN IF NESTOG THEN SORTNEST; PURGE(NINFOO); END; 14601000 - SEGMENT((L+3)DIV 4,PROADD); 14602000 + SEGMENT((L+3)DIV 4,PROADO); 14602000 IF LEVEL>1 THEN RIGHT(L); 14603000 IF LEVEL ~ LEVEL-1 = 0 THEN CONSTANTCLEAN; 14604000 14605000 @@ -6382,7 +6382,7 @@ COMMENT 208 VARIABLE- NUMBER OF SUBSCRIPTS DOES NOT MATCH WITH * 15298000 AEXP; 15307000 EMITD(48-T2,T1,T2) ; 15308000 EMITO(XCH); 15309000 - IF TALL.ADDRESS>1023 THEN EMITI(PRTE); 15310000 + IF TALL.ADDRESS>1023 THEN EMITO(PRTE); 15310000 EMITO(IF TALL.CLASS MOD 2 = INTARRAYID MOD 2 THEN 15333000 IF P1 = FS THEN ISD ELSE ISN ELSE 15334000 IF P1=FS THEN STD ELSE SND); 15335000 @@ -6660,7 +6660,7 @@ PROCEDURE LABELS; 16156000 BEGIN 16250000 LABEL EXIT; 16251000 IF STEPI !TOV THEN I~I-1 ; 16252000 - IF STEPI ! STLABID THEN ELCLASS { IDMAX THEN 16253000 + IF STEPI ! STLABID THEN IF ELCLASS { IDMAX THEN 16253000 DECLARELABEL ELSE BEGIN ERR(260); GO TO EXIT END; 16253100 IF(GT2~TAKE(GIT(GT1~ELBAT[I]))).MON=1 16254000 OR GT2.LOC!0 THEN EMITJUMP(GT1) 16255000 @@ -6788,7 +6788,7 @@ PROCEDURE DSS; 16362000 END 16377000 ELSE ADDR ~ 1 ; 16378000 IF Q = "4FILL0" THEN EMITC(ADDR,10) ELSE %E 16378500 - IF ELCLASS = TRNSFER THEN EMITC(ADDR,ELBAT[1].OPCODE) 16379000 + IF ELCLASS = TRNSFER THEN EMITC(ADDR,ELBAT[I].OPCODE) 16379000 ELSE 16380000 IF ELCLASS = LITV THEN 16381000 BEGIN 16382000 @@ -6854,7 +6854,7 @@ PROCEDURE JUMPS; 16431000 IF JOINFO = 0 THEN 16440000 BEGIN 16441000 JOINFO ~ NEXTINFO ; 16442000 - PUTNBUMP(STACKHEAD[0],LINK&(STLABID|2+1) 16443000 + PUTNBUMP(STACKHEAD[0].LINK&(STLABID|2+1) 16443000 [2:40:8]&2[27:40:8 ]); 16444000 PUTNBUMP(0&(JOINFO-LASTINFO )[ 4:40:8]); 16445000 PUTNBUMP (0); 16446000 diff --git a/SYMBOL/KERNAL.esp_m b/SYMBOL/KERNAL.esp_m new file mode 100644 index 0000000..184a9fc --- /dev/null +++ b/SYMBOL/KERNAL.esp_m @@ -0,0 +1,113 @@ +$ SET LIST MCP PRT DEBUG DEBUGN 00000011 + B-5500 ESSENCE OF MCP : NOV,1968 P.E.G. 00020000 + COMMENT: * TITLE: B5500/B5700 MARK XVI SYSTEM RELEASE * 00020110 + * FILE ID: SYMBOL/KERNAL TAPE ID: SYMBOL2/FILE000 * 00020111 + * THIS MATERIAL IS PROPRIETARY TO BURROUGHS CORPORATION * 00020112 + * AND IS NOT TO BE REPRODUCED, USED, OR DISCLOSED * 00020113 + * EXCEPT IN ACCORDANCE WITH PROGRAM LICENSE OR UPON * 00020114 + * WRITTEN AUTHORIZATION OF THE PATENT DIVISION OF * 00020115 + * BURROUGHS CORPORATION, DETROIT, MICHIGAN 48232 * 00020116 + * * 00020117 + * COPYRIGHT (C) 1971, 1972, 1974 * 00020118 + * BURROUGHS CORPORATION * 00020119 + * AA320206 AA386657 AA332366 *; 00020120 + BEGIN 00030000 + DEFINE M=MEMORY #, P=POLISH #; 00040000 + ARRAY DATA [*]; 00050000 + DEFINE ADDRESS = M[@40] #; 00060000 + DEFINE BASE = M[0] #; 00070000 + DEFINE DIRECTOP= M[1] #; 00080000 + DEFINE DISK = M[@41] #; 00090000 + DEFINE INDX = M[@42] #; 00100000 + DEFINE MODS = M[@46] #; 00110000 + DEFINE NOSYS = M[@43] #; 00120000 + DEFINE R = M[@44] #; 00130000 + DEFINE SYSTEM = M[@45] #; 00140000 + INTEGER PROCVAL = +1; 00150000 + INTEGER FINDMEM; 00160000 + LABEL TIMER,START,TOPOCODE; 00170000 +SAVE REAL PROCEDURE EOM; 00180000 + BEGIN GO TO TIMER END; 00190000 +SAVE REAL PROCEDURE IO (DESC); %THIS FIRES OFF THE IO 00200000 + VALUE DESC; 00210000 + REAL DESC; 00220000 + BEGIN 00230000 + DO BEGIN 00240000 + P([DESC],IIO); 00250000 + R ~ EOM; 00260000 + IO ~ R.[25:8] 00270000 + END UNTIL (PROCVAL AND 5)=0; 00280000 + END; 00290000 +SAVE PROCEDURE DISKREED (DESC); 00300000 + VALUE DESC; 00310000 + REAL DESC; 00320000 + BEGIN STREAM(A ~ BASE + ADDRESS,B:=DESC.[33:15]); 00330000 + BEGIN SI:=LOC A;DI:=B;DS:=8 DEC; END; 00340000 + IF M[DESC].[5:1] THEN DESC.[3:5]~12;% 00345000 + DO R~ IO(DESC) UNTIL R=0; 00350000 + END; 00360000 +TOPOCODE :@20: GO TO START; % FIRST CODE 00380000 +TIMER :@22: P(INI);IF NOT FINDMEM THEN % TIMER 00390000 + GO TO START; % SET UP FOR INVD ADDR 00400000 + : : GO TO TIMER; % SPO 00410000 + :@25: GO TO TIMER; % LPA 00420000 + :@26: GO TO TIMER; % LPB 00430000 + :@27: P(@14,LOD,RTN); % I-O 1 COMPLETE 00440000 + :@30: P(@15,LOD,RTN); % I-O 2 COMPLETE 00450000 + :@31: P(@16,LOD,RTN); % I-O 3 COMPLETE 00460000 + :@32: P(@17,LOD,RTN); % I-O 4 COMPLETE 00470000 + :@34: GO TO TIMER; % DATA COMM 00480000 + :@36: GO TO TIMER; % DF #1 USED ON FREE ADDRESS00490000 + :@37: GO TO TIMER; % DF #2 RETURN 00500000 + :@61: GO TO START; % P1 INVD ADDRESS 00510000 +START :*: P(@100,STS); % SET STACK TO OCT 100 00530000 + M[MODS := MODS + @10000] := 0; % FIND MOD TO LOAD MCP 00540000 + P(INI); % CHECK FOR INVD ADDRESS 00550000 + IF MODS GTR @70000 THEN 00560000 + BEGIN MODS := 0; 00570000 + GO TO START; 00580000 + END; 00590000 + FINDMEM := TRUE; 00600000 + DATA ~[M[ (*P(.EOM))INX 100]] & 1023[8:38:10]; 00610000 + DISK ~ DATA.[33:15]; 00620000 + M[DISK] ~ @40; 00630000 + INDX ~ 13; 00640000 + IF IO (@140004000000000& DISK [33:33:15]) = 0 THEN 00650000 + BEGIN 00660000 + SYSTEM ~ DATA[1].[4:2]; 00670000 + M[DISK]~ @4060&SYSTEM [30:46:2]; %CLEAR CONTENTION 00680000 + P(IO(@140000100000000 & DISK[33:33:15]),DEL); %BITS 00690000 + M[DISK]~ @6060&SYSTEM[30:46:2]; % UNLOCK ADDRESSES 00700000 + P(IO(@140000100000000 & DISK [33:33:15]),DEL); 00710000 + INDX ~ INDX + (SYSTEM | 5); 00720000 + END; 00730000 + M[DISK] := 0; %SET ADDRESS TO ZERO 00740000 + DO R~IO(DISK INX @140000040100000 ) UNTIL R=0; 00750000 + DIRECTOP := DATA [2]; 00760000 + NOSYS := DATA [1]; 00770000 + BASE := DATA [INDX]; 00780000 + IF BASE LEQ DIRECTOP THEN 00790000 + BEGIN M[@46] := @3145652143312460; %INVALID 00800000 + M[@47] := @2124245125626260; %ADDRESS 00810000 + M[@50] := @2646516044234737; %FOR MCP 00820000 + P(IO(@740000000000046),DEL); 00830000 + DO UNTIL FALSE; 00840000 + END; 00850000 + % BEGIN LOADING MCP (MAX SIZE IS 4080) 00860000 + ADDRESS ~ 73; 00870000 + DISKREED (@140000047704235 OR MODS); 00880000 + ADDRESS ~ 10; 00890000 + DISKREED (@140000047700473 OR MODS); 00900000 + ADDRESS ~ 0; 00910000 + DISKREED (@140000041200017 OR MODS); 00920000 + % END MCP LOAD 00930000 + MODS := MODS + @40; 00940000 + M[@15] ~ @0441023201004441; %CODE TO PULL MCP DOWN 00950000 + M[@16] ~ @0253010453527705; %THIS MOVES 4042 WDS 00960000 + M[@17] ~ @3705005101002411; 00970000 + BASE ~ BASE - 2; 00980000 + M[0]:=BASE&SYSTEM[16:46:2]&(NOSYS)[14:46:2]; 00990000 + P(1,STS,0,STF); 01000000 + GO TO P([M[@15]]); 01010000 + WHILE TRUE DO; 01020000 + END OF HALT LOAD CARD..... 01030000 diff --git a/tools/xem/ALGOLXEM.alg_m b/tools/xem/ALGOLXEM.alg_m index e84c6fa..a972451 100644 --- a/tools/xem/ALGOLXEM.alg_m +++ b/tools/xem/ALGOLXEM.alg_m @@ -2,7 +2,7 @@ $SET OMIT LISTOMITTED = LIST 00001000=00000999= %#######################################################################00002000=00001000= % 00003000=00001010= -% B-5700 ALGOL/TSPOL SYMBOLIC 00004000=00001020= +% B-5700 ALGOL/TSPOL XEM SYMBOLIC 00004000=00001020= % MARK XVI.0.122 00005000=00001030= % MAY 9, 1977 00006000=00001040= % 00007000=00001050= @@ -85,17 +85,17 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 00084000=00059000= 031 LISTDEC: MISSING ( IN LISTDEC. 00085000=00060000= 032 FORMATDEC: MISSING ( IN FORMAT DEC. 00086000=00061000= - 033 SWITCHDEC: SWITCH DEC DOES NOT HAVE := OR 00087000=00062000= + 033 SWITCHDEC: SWITCH DEC DOES NOT HAVE ~ OR 00087000=00062000= FORWARD AFTER IDENTIFIER. 00088000=00063000= - 034 SWITCHFILEDEC:MISSING := AFTER FILED. 00089000=00064000= + 034 SWITCHFILEDEC:MISSING ~ AFTER FILED. 00089000=00064000= 035 SWITCHFILEDEC:NON FILE ID APPEARING IN DECLARATION 00090000=00065000= OF SWITCHFILE. 00091000=00066000= - 036 SUPERFORMATDEC:FORMAT ID NOT FOLLOWED BY := . 00092000=00067000= + 036 SUPERFORMATDEC:FORMAT ID NOT FOLLOWED BY ~ . 00092000=00067000= 037 SUPERFORMATDEC:MISSING ( AT START OF FORMATPHRASE . 00093000=00068000= 038 SUPERFORMATDEC:FORMAT SEGMENT >1022 WORDS. 00094000=00069000= 039 BLOCK: NUMBER OF NESTED BLOCKS IS GREATER THAN 31 00095000=00069100= 040 IODEC: PROGRAM PARAMETER BLOCK SIZE EXCEEDED 00096000=00069200= - 041 HANDLESWLIST: MISSING := AFTER SWITCH LIST ID. 00097000=00069300= + 041 HANDLESWLIST: MISSING ~ AFTER SWITCH LIST ID. 00097000=00069300= 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= @@ -110,7 +110,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 052 SAVEPROC :STATEMENT MAY NOT START WITH THIS KIND OF 00109000=00069933= IDENTIFIER. 00110000=00069934= 059 ARRAYDEC: IMPROPER ARRAY SIZE. 00111000=00069938= - 060 FAULTSTMT: MISSING := IN FAULT STATEMENT. 00112000=00069940= + 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= @@ -232,7 +232,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 200 EMIT: SEGMENT TOO LARGE ( > 4093SYLLABLES). 00231000=00165000= 201 SIMPLE VARIABLE: PARTIAL WORD DESIGNATOR NOT LEFT-MOST 00232000=00166000= IN A LEFT PART LIST. 00233000=00167000= - 202 SIMPLE VARIABLE: MISSING . OR := . 00234000=00168000= + 202 SIMPLE VARIABLE: MISSING . OR ~ . 00234000=00168000= 203 SUBSCRIPTED VARIABLE: WRONG NUMBER OF SUBSCRIPTS IN A ROW 00235000=00169000= DESIGNATOR. 00236000=00170000= 204 SUBSCRIPTED VARIABLE: MISSING ] IN A ROW DESIGNATOR. 00237000=00171000= @@ -243,16 +243,16 @@ 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 ~ . 00245000=00179000= 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= 250 STREAM STMT:ILLEGAL STREAM STATEMENT. 00249000=00181000= - 251 ANY STREAM STMT PROCEDURE: MISSING :=. 00250000=00182000= + 251 ANY STREAM STMT PROCEDURE: MISSING ~. 00250000=00182000= 252 INDEX: MISSING + OR - . 00251000=00183000= 253 INDEX: MISSING NUMBER OR STREAM VARIABLE. 00252000=00184000= 254 SCANNER: STRING, OCTAL, OR HEX CONSTANT HAS FLAG BIT SET. 00253000=00185000= - 255 DSS: MISSING STRING IN DS:= LIT STATEMENT. 00254000=00186000= + 255 DSS: MISSING STRING IN DS~ LIT STATEMENT. 00254000=00186000= 256 RELEASES: MISSING PARENTHESIS OR FILE IDENTIFIER IS NOT 00255000=00187000= A FORMAL PARAMETER. 00256000=00188000= 257 GOTOS,LABELS,OR JUMPS: LABEL SPECIFIED IS NOT ON THE SAME 00257000=00189000= @@ -283,7 +283,7 @@ ERROR NUMBER ROUTINE:ERROR MESSAGE 00025000 286 DBLSTMT: ILLEGAL PARAMETER . 00282000=00211100= 290 FILEATTRIBUTEHANDLER: MISSING . IN FILE ATTRIBUTE PART 00283000=00211510= 291 FILEATTRIBUTEHANDLER: MISSING OR UNDEFINED FILE ATTRIBUTE00284000=00211520= - 292 FILEATTRIBUTEHANDLER: MISSING := IN FILE ATTR ASSIGN STMT00285000=00211530= + 292 FILEATTRIBUTEHANDLER: MISSING ~ IN FILE ATTR ASSIGN STMT 00285000=00211530= 293 FILEATTRIBUTEHANDLER: FILE ATTRIBUTE IS NON ASSIGNABLE 00286000=00211540= 294 PRIMARY: FILE ATTRIBUTE IS NOT TYPE REAL 00287000=00211550= 295 FILEATTRIBUTEHANDLER: FILE ATTRIBUTE MUST BE LEFT MOST 00288000=00211551= @@ -1051,8 +1051,8 @@ PROCEDURE STREAMTRANSFERWDSQQ(MBASE, SBASE, N); 00805300 IF N = 1 THEN 00806300 SBASE[SREG]:= MBASE[MREG] 00806400 ELSE 00806500 - REPLACE POINTER(SBASE[SREG]) BY 00806600 - POINTER(MBASE[MREG]) FOR N WORDS; 00806700 + REPLACE POINTER(SBASE[SREG],0) BY 00806600 + POINTER(MBASE[MREG],0) FOR N WORDS; 00806700 00806800 SREG:= *+N; 00806900 MREG:= *+N; 00807000 @@ -1406,6 +1406,43 @@ BOOLEAN PROCEDURE STREAMCOMPARELSSQQ(MBASE, SBASE, N); 00850400 00853400 STREAMCOMPARELSSQQ:= TFFF; 00853500 END STREAMCOMPARELSS; 00853600 + 00853700 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00853800 +DEFINE STREAMCOMPARELEQ(N) = 00853900 + STREAMCOMPARELEQQQ(MBASE, SBASE, N) #; 00854000 +BOOLEAN PROCEDURE STREAMCOMPARELEQQQ(MBASE, SBASE, N); 00854100 + VALUE N; 00854200 + ARRAY MBASE, SBASE[0]; 00854300 + REAL N; 00854400 + BEGIN COMMENT 00854500 + COMPARES "N" CHARACTERS BETWEEN SOURCE AND DESTINATION FOR A 00854600 + LESS-THAN-OR-EQUAL CONDITION. ADVANCES BOTH INDEXES BY "N". 00854700 + EMULATES CEL. 00854800 + ; 00854900 + STREAMADJUSTSICHAR; 00855000 + STREAMADJUSTDICHAR; 00855100 + TFFF:= TRUE; 00855200 + WHILE N > 0 DO 00855300 + BEGIN 00855400 + IF STREAMGETSC = STREAMGETDC THEN 00855500 + BEGIN 00855600 + STREAMSKIPSI(+1); 00855700 + STREAMSKIPDI(+1); 00855800 + N:= *-1; 00855900 + END 00856000 + ELSE 00856100 + BEGIN 00856200 + IF BICCOLLATE[STREAMGETSC] > BICCOLLATE[STREAMGETDC] THEN 00856300 + TFFF:= FALSE; 00856400 + 00856500 + STREAMSKIPSI(+N); 00856600 + STREAMSKIPDI(+N); 00856700 + N:= 0; 00856800 + END; 00856900 + END WHILE; 00857000 + 00857100 + STREAMCOMPARELEQQQ:= TFFF; 00857200 + END STREAMCOMPARELEQ; 00857300 00860000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00860100 DEFINE STREAMCOMPAREEQL(N) = 00860200 @@ -1441,6 +1478,41 @@ BOOLEAN PROCEDURE STREAMCOMPAREEQLQQ(MBASE, SBASE, N); 00860400 00863200 STREAMCOMPAREEQLQQ:= TFFF; 00863300 END STREAMCOMPAREEQL; 00863400 + 00863500 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00863600 +DEFINE STREAMCOMPARENEQ(N) = 00863700 + STREAMCOMPARENEQQQ(MBASE, SBASE, N) #; 00863800 +BOOLEAN PROCEDURE STREAMCOMPARENEQQQ(MBASE, SBASE, N); 00863900 + VALUE N; 00864000 + ARRAY MBASE, SBASE[0]; 00864100 + REAL N; 00864200 + BEGIN COMMENT 00864300 + COMPARES "N" CHARACTERS BETWEEN SOURCE AND DESTINATION FOR A 00864400 + NOT-EQUAL CONDITION. ADVANCES BOTH INDEXES BY "N". 00864500 + EMULATES CNE. 00864600 + ; 00864700 + STREAMADJUSTSICHAR; 00864800 + STREAMADJUSTDICHAR; 00864900 + TFFF:= TRUE; 00865000 + WHILE N > 0 DO 00865100 + BEGIN 00865200 + IF STREAMGETSC ^= STREAMGETDC THEN % COLLATING SEQ IS IMMATERIAL 00865300 + BEGIN 00865400 + STREAMSKIPSI(+1); 00865500 + STREAMSKIPDI(+1); 00865600 + N:= *-1; 00865700 + END 00865800 + ELSE 00865900 + BEGIN 00866000 + TFFF:= FALSE; 00866100 + STREAMSKIPSI(+N); 00866200 + STREAMSKIPDI(+N); 00866300 + N:= 0; 00866400 + END; 00866500 + END WHILE; 00866600 + 00866700 + STREAMCOMPARENEQQQ:= TFFF; 00866800 + END STREAMCOMPARENEQ; 00866900 00875000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00875100 DEFINE STREAMCOMPAREGEQ(N) = 00875200 @@ -2360,8 +2432,7 @@ COMMENT INFO FORMAT 02675000 STREAMV = 18 #, COMMENT 22; 04170000=01297000= DEFINEV = 19 #, COMMENT 23; 04175000=01298000= AUXMEMV = 20 #, COMMENT 24; 04180000=01298500= - FIELDV = 21 #; 04185000=01298600= - COMMENT 25; 04190000=01298600= + FIELDV = 21 #; COMMENT 25; 04185000=01298600= DEFINE 04195000=01299000= ADES = 0 #, 04200000=01299000= LDES = 2 #, 04205000=01299000= @@ -2523,14 +2594,11 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 . E 05010000=01367330= 29 D; 05015000=01367340= INTEGER 05020000=01368000= - PDINX; 05025000=01368000= - COMMENT THIS IS THE INDEX FOR PDPRT; 05030000=01368000= + PDINX; COMMENT THIS IS THE INDEX FOR PDPRT; 05025000=01368000= INTEGER 05035000=01369000= - SGAVL; 05040000=01369000= - COMMENT NEXT AVAILABLE SEGMENT NUMBER; 05045000=01369000= + SGAVL; COMMENT NEXT AVAILABLE SEGMENT NUMBER; 05040000=01369000= INTEGER 05050000=01370000= - SGNO; 05055000=01370000= - COMMENT THIS IS THE CURRENT SEGMENT NUMBER; 05060000=01370000= + SGNO; COMMENT THIS IS THE CURRENT SEGMENT NUMBER; 05055000=01370000= ARRAY 05065000=01371000= EDOC[0:7, 0:127], 05070000=01371000= COP[0:63], 05075000=01371000= @@ -2615,8 +2683,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 COMMENT ERRORTOG IS TRUE IF MESSAGES ARE CURRENTLY ACCEPTABLE TO THE05470000=01413000= ERROR ROUTINES. ERRORCOUNT IS THE COUNT OF ERROR MSSGS; 05475000=01414000= BOOLEAN 05480000=01415000= - ENDTOG; 05485000=01415000= - COMMENT ENDTOG TELLS THE TABLE TO ALLOW 05490000=01415000= + ENDTOG; COMMENT ENDTOG TELLS THE TABLE TO ALLOW 05485000=01415000= COMMENT TO BE PASSED BACK TO COMPOUNDTAIL; 05495000=01416000= BOOLEAN 05500000=01416500= STREAMTOG; % STREAMTOG IS TRUE IF WE ARE COMPILING A 05505000=01416500= @@ -2725,8 +2792,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 JOINFO, COMMENT POINTS TO PSEUDO LABEL FOR JUMP OUTS; 06020000=01482000= LPRT, COMMENT SHOWS LOCATION OF THE LAST LABEL IN THE PRT ; 06025000=01483000= NESTLEVEL, COMMENT COUNTS NESTING FOR GO TO AND JUMP OUTS; 06030000=01484000= - JUMPLEVEL; 06035000=01485000= - COMMENT NUMBER OF LEVELS TO BE JUMPED OUT; 06040000=01485000= + JUMPLEVEL; COMMENT NUMBER OF LEVELS TO BE JUMPED OUT; 06035000=01485000= 06045000=01486000= COMMENT THE REALS ABOVE ARE FOR STREAM STATEMENT; 06050000=01486000= ARRAY 06055000=01487000= @@ -2820,7 +2886,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 ARRAY 06605000=01561056= CBUFF[0:9]; % INPUT BUFFER. 06606000 ARRAY 06608000 - CODEBUFF[0:29]; % CODE FILE RECORD AREA 06608100 + CODEBUFF[0:127]; % CODE FILE RECORD AREA 06608100 FILE 06640000=01561085= DSK1(KIND=DISK, MAXRECSIZE=10, BLOCKSIZE=30, FRAMESIZE=48, 06645000=01561085= AREAS=20, AREASIZE=816); 06645100 @@ -2879,8 +2945,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 SPECTOG, 07420000=01594000= STOPENTRY, COMMENT THIS MAKES THE ENTRY PROCEDURE ENTER ONLY 07425000=01594000= ONE ID AND THEN EIXT; 07430000=01595000= - AJUMP; 07435000=01596000= - COMMENT TELLS WHETHER A JUMP IS HANGING; 07440000=01596000= + AJUMP; COMMENT TELLS WHETHER A JUMP IS HANGING; 07435000=01596000= BOOLEAN 07445000=01597000= STOPDEFINE; 07450000=01597000= REAL 07455000=01597100= @@ -2892,37 +2957,35 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 FOR THE PROGRAM PARAMETER BLOCK FOR THE OBJECT PROGRAM; 07485000=01601000= REAL 07490000=01603000= KLASSF, COMMENT CLASS IN LOW ORDER 7 BITS; 07495000=01603000= - ADDRSF, COMMENT ADDRESS IN LOW ORDER 11 BITS; 07500000=01604000= - LEVELF, COMMENT LVL IN LOW ORDER 5 BITS; 07505000=01605000= - LINKF, COMMENT LINK IN LOW ORDER 13 BITS; 07510000=01606000= - INCRF, COMMENT INCR CN LOW ORDER 8 BITS; 07515000=01607000= - PROINFO, COMMENT CONTAINS ELBAT WORD FOR PROCEDURE BEING 07520000=01608000= + ADDRSF, COMMENT ADDRESS IN LOW ORDER 11 BITS; 07500000=01604000= + LEVELF, COMMENT LVL IN LOW ORDER 5 BITS; 07505000=01605000= + LINKF, COMMENT LINK IN LOW ORDER 13 BITS; 07510000=01606000= + INCRF, COMMENT INCR CN LOW ORDER 8 BITS; 07515000=01607000= + PROINFO, COMMENT CONTAINS ELBAT WORD FOR PROCEDURE BEING 07520000=01608000= DECLARED; 07525000=01609000= - G, COMMENT GLOBAL TEMPORARY FOR BLOCK; 07530000=01610000= - TYPEV, COMMENT USED TO CARRY CLASS OF IDENTIFIER 07535000=01611000= + G, COMMENT GLOBAL TEMPORARY FOR BLOCK; 07530000=01610000= + TYPEV, COMMENT USED TO CARRY CLASS OF IDENTIFIER 07535000=01611000= BEING DECLARED; 07540000=01612000= - PROADO, COMMENT CONTAINS ADDRESS OF PROCEDURE BEING 07545000=01613000= + PROADO, COMMENT CONTAINS ADDRESS OF PROCEDURE BEING 07545000=01613000= DECLARED; 07550000=01614000= - MARK, COMMENT CONTAINS INDEX INTO INFO WHERE FIRST WORD 07555000=01615000= + MARK, COMMENT CONTAINS INDEX INTO INFO WHERE FIRST WORD 07555000=01615000= OF ADDITIONAL INFO FOR A PROCEDURE ENTRY; 07560000=01616000= - PJ, COMMENT FORMAL PARAMETER COUNTER; 07565000=01617000= - J, COMMENT ARRAY COUNTER; 07570000=01618000= - LASTINFO, COMMENT INDEX TO LAST ENTRY IN INFO; 07575000=01619000= - NEXTINFO, COMMENT INDEX FOR NEXT ENTRYIN INFO; 07580000=01620000= - GLOBALNINFOO, 07585000=01620100= - COMMENT MAINTAINS VALUE OF NINFOO FROM BLOCK ON A 07590000=01620100= + PJ, COMMENT FORMAL PARAMETER COUNTER; 07565000=01617000= + J, COMMENT ARRAY COUNTER; 07570000=01618000= + LASTINFO, COMMENT INDEX TO LAST ENTRY IN INFO; 07575000=01619000= + NEXTINFO, COMMENT INDEX FOR NEXT ENTRYIN INFO; 07580000=01620000= + GLOBALNINFOO, COMMENT MAINTAINS VALUE OF NINFOO FROM BLOCK ON A 07585000=01620100= GLOBAL LEVEL SO TAHT THE PROCEDURE "ENTRY" 07595000=01620200= CAN CHECK FOR DUPLICATE DECLARATIONS; 07600000=01620300= - OLDNINFOO, COMMENT REMEMBERS OLD VALUE OF GLOBALNINFOO; 07605000=01620400= - FIRSTX, COMMENT RELATIVE ADD OF FIRST EXECUTABLE CODE 07610000=01621000= + OLDNINFOO, COMMENT REMEMBERS OLD VALUE OF GLOBALNINFOO; 07605000=01620400= + FIRSTX, COMMENT RELATIVE ADD OF FIRST EXECUTABLE CODE 07610000=01621000= IN BLOCK,INITIALIZED TO 4095 EACH TIME; 07615000=01622000= - SAVEL; COMMENT SAVE LOCATION FOR FIXUPS IN BLOCK; 07620000=01623000= + SAVEL; COMMENT SAVE LOCATION FOR FIXUPS IN BLOCK; 07620000=01623000= INTEGER 07625000=01624000= - NCII; COMMENT THIS CONTAINS THE COUNT OF CONSTANTS 07625100=01624000= - ENTERED IN INFO AT ANY GIVEN TIME; 07635000=01625000= + NCII; COMMENT THIS CONTAINS THE COUNT OF CONSTANTS 07625100=01624000= + ENTERED IN INFO AT ANY GIVEN TIME; 07635000=01625000= REAL 07640000=01625100= - FILETHING; 07645000=01625100= - COMMENT HOLDS LINKS FOR STREAM RELEASES ; 07650000=01625100= + FILETHING; COMMENT HOLDS LINKS FOR STREAM RELEASES ; 07645000=01625100= PROCEDURE UNHOOK; 07655000=01626000= FORWARD; 07660000=01626000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07665000=01626000= @@ -3018,17 +3081,15 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 ; 08051200 INTEGER 08055000=01688020= I; 08055100 - ARRAY 08055200 - TEMP[0:127]; 08055300 08060000=01688030= FOR I:= 0 STEP 1 UNTIL 7 DO 08065000=01688030= BEGIN 08070000=01688030= - REPLACE POINTER(TEMP,0) BY 08075000=01688030= + REPLACE POINTER(CODEBUFF,0) BY 08075000=01688030= POINTER(EDOC[I,*],0) FOR 128 WORDS; 08075100 REPLACE POINTER(EDOC[I,*],0) BY 08075200 POINTER(TEDOC[I,*],0) FOR 128 WORDS; 08075300 REPLACE POINTER(TEDOC[I,*],0) BY 08075400 - POINTER(TEMP,0) FOR 128 WORDS; 08075500 + POINTER(CODEBUFF,0) FOR 128 WORDS; 08075500 END FOR; 08075600 END; 08210000=01688110= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%08212000 @@ -3038,8 +3099,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 TLO, 08230000=01689000= THI; 08235000=01689000= BOOLEAN 08240000=01690000= - DPTOG; 08245000=01690000= - COMMENT THE ABOVE THINGS ARE TEMP STORAGE FOR DOUBLE NOS;08250000=01691000= + DPTOG; COMMENT THE ABOVE THINGS ARE TEMP STORAGE FOR DOUBLE NOS;08245000=01690000= DEFINE 08255000=01692000= FZERO = 896 #; 08260000=01692000= REAL 08265000=01693000= @@ -3051,8 +3111,7 @@ COMMENT THE CONTENTS OF RELATIVE DISK SEGMENT ZERO OF THE CODE FILE ARE:04950000 BOOLEAN 08295000=01694000= STOPGSP; 08300000=01694000= INTEGER 08305000=01695000= - BUP; 08310000=01695000= - COMMENT UNIQUE GLOBAL TEMP FOR BLOCK; 08315000=01696000= + BUP; COMMENT UNIQUE GLOBAL TEMP FOR BLOCK; 08310000=01695000= ARRAY 08320000=01697000= GTA1[0:10]; 08325000=01697000= BOOLEAN ARRAY 08330000=01698000= @@ -3234,7 +3293,7 @@ COMMENT "BLANKET" BLANKS OUT N+1 WORDS IN "THERE"; 09000000 P; 09655200 H:= TIME1 DIV 216000; 09715000=01828000= MN:= (TIME1 DIV 3600) MOD 60; 09720000=01828000= - REPLACE P:POINTER(CODEBUFF,8) BY CODE.TITLE; 09725000=01828500= + REPLACE P:POINTER(EBCDICBUFF,8) BY CODE.TITLE; 09725000=01828500= N2:= MIN(OFFSET(P)-1, 118); 09730000=01828500= WRITE(LINE, 09735000=01829100= $ SET OMIT = NOT ALGOL 09735100=01829900= @@ -3251,7 +3310,12 @@ COMMENT "BLANKET" BLANKS OUT N+1 WORDS IN "THERE"; 09000000 12*REAL(Q:=H MOD 12=0)+Q, 09735560 "00" & (MN MOD 10)[3:4] & (MN DIV 10)[11:4], 09735600=01834000= IF H >= 12 THEN "PM." ELSE "AM.", 09735700=01835000= - (120-N2) DIV 2, N2, POINTER(CODEBUFF,8), (120-N2) DIV 2, N2);09740000=01835550= + (120-N2) DIV 2, N2, POINTER(EBCDICBUFF,8), 09740000=01835550= + (120-N2) DIV 2, N2); 09745000 + REPLACE P:POINTER(EBCDICBUFF,8) BY CARD.TITLE; 09745100 + N2:= MIN(OFFSET(P)-1, 106); 09745200 + WRITE(LINE, , 09745300 + (120-N2) DIV 2, N2, POINTER(EBCDICBUFF,8)); 09745400 NOHEADING:= FALSE; 09760000=01837000= END OF DATIME; 09765000=01837000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%09770000=01837000= @@ -4201,6 +4265,7 @@ COMMENT DOLLARCARD HANDLES THE COMPILER CONTROL CARDS. 17235000 SETTING OF ALL OF THE COMPILER-DEFINED OPTIONS, ONE BIT PER 17345000=02304000= OPTION. 17350000=02305000= ; 17355000=02306000= + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17356000 BOOLEAN PROCEDURE FINDOPTION(BIT); 17360000=02307000= VALUE 17365000=02307000= BIT; 17370000=02307000= @@ -4226,6 +4291,7 @@ FOUND: 17435000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17465000=02318000= PROCEDURE DOLLARCARD; 17470000=02319000= BEGIN 17475000=02320000= + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17476000 PROCEDURE SWITCHIT(XBIT); 17480000=02321000= VALUE 17485000=02321000= XBIT; 17490000=02321000= @@ -4573,8 +4639,8 @@ LENGTH6: 19235000 6"CEG ", 6"CGR ", 6"BIS ", 6"BIR ", 6"OCV ", 6"ICV ", 19535000=02558000= 6"CEL ", 6"CLS ", 6"FSU ", 6"FAD ", 6"TRP ", 6"TRN ", 19540000=02558000= 6"TRZ ", 6"TRS "; 19545000=02558000= - FILL POP[*] WITH 6"ZFN ", 6"ZBN ", 6"ZFD ", 6"ZBD ", 6"ISO " 19550000=02561000= - , 0, "DIA ", 6"DIB ", 6"TRB ", 6"CFL ", 6"CFE "; 19555000=02562000= + FILL POP[*] WITH 6"ZFN ", 6"ZBN ", 6"ZFD ", 6"ZBD ", 6"ISO ", 19550000=02561000= + 0, 6"DIA ", 6"DIB ", 6"TRB ", 6"CFL ", 6"CFE "; 19555000=02562000= END; 19560000=02563000= GO AGAIN; 19565000=02564000= END; 19570000=02565000= @@ -4992,8 +5058,7 @@ COMMENT MIGHT BE FUNNY COMMA - HANDLE HERE; 20940000 RESULT:= 0; 21580000=02820000= SCANNER; 21585000=02820000= IF RESULT ^= 3 THEN 21590000=02821000= - FLAG(47); 21595000=02821000= - COMMENT NOT A NUMBER; 21600000=02821000= + FLAG(47); COMMENT NOT A NUMBER; 21595000=02821000= Q:= ACCUM[1]; 21605000=02822000= IF GT1:= T:= (IF T = 6"-" THEN-CONVERT ELSE CONVERT) < -46 OR T 21610000=02824000= > 69 21615000=02824000= @@ -5017,8 +5082,7 @@ COMMENT MIGHT BE FUNNY COMMA - HANDLE HERE; 20940000 END 21710000=02837000= ELSE 21715000=02837000= BEGIN 21720000=02837000= - NHI:= FIRSTWORD(DOUBLE(NHI, NLO)*TEN[GT1 MOD 12], NLO) 21725000=02838000= - ; 21730000=02838000= + NHI:= FIRSTWORD(DOUBLE(NHI, NLO)*TEN[GT1 MOD 12], NLO); 21725000=02838000= FOR GT2:= 12 STEP 12 UNTIL GT1 DO 21735000=02839000= NHI:= FIRSTWORD(DOUBLE(NHI, NLO)*TEN[12], NLO); 21740000=02840000= END 21745000=02842000= @@ -5149,8 +5213,7 @@ COMMENT SETUP FOR DEFINED IDS - SEE DEFINEGEN FOR MORE DETAILS; 22220000 BEGINPRINT; 22375000=02910600= BSPOINT:= BSPOINT-REAL(BSPOINT > 0); % PREVENT INVALID INDEX 22380000=02910700= END; 22385000=02910800= - STOPDEFINE:= FALSE; 22390000=02911000= - COMMENT ALLOW DEFINES AGAIN; 22395000=02911000= + STOPDEFINE:= FALSE; COMMENT ALLOW DEFINES AGAIN; 22390000=02911000= IF NXTELBT:= NXTELBT+1 > 74 THEN 22400000=02912000= IF NOT MACROID THEN 22405000=02913000= BEGIN 22410000=02914000= @@ -5169,8 +5232,7 @@ COMMENT SPECIAL HANDLING OF CONSTANTS FOR SAKE OF FOR STATEMENTS; 22470000 C:= INFO[0, ELBAT[P].ADDRESS]; 22475000=02923000= ELBAT[P].CLASS:= TABLE:= NONLITNO 22480000=02925000= END; 22485000=02925000= - STOPDEFINE:= FALSE; 22490000=02926000= - COMMENT ALLOW DEFINE; 22495000=02926000= + STOPDEFINE:= FALSE; COMMENT ALLOW DEFINE; 22490000=02926000= END TABLE; 22500000=02927000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%22505000=02927000= INTEGER PROCEDURE MOVEANDBLOCK(FROM, SIZE, NAME); 22510000=02927110= @@ -6241,8 +6303,7 @@ FINISHED: 27380000 DO 27530000=04240000= IF Q[I] = KEY THEN 27535000=04241000= GO TO L; 27540000=04241000= - I:= 0; 27545000=04242000= - COMMENT ARGUMENT NOT FOUND,SEARCH=Q[1] ; 27550000=04242000= + I:= 0; COMMENT ARGUMENT NOT FOUND,SEARCH=Q[1] ; 27545000=04242000= L: SEARCH:= Q[I+1]; 27555000=04243000= END SEARCH; 27560000=04244000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%27565000=04244000= @@ -6260,24 +6321,10 @@ L: SEARCH:= Q[I+1]; 27555000 IS PRECISILY = EDOC[(L DIV 4) DIV 128,(< DIV 4)MOD 128] 27625000=04267000= SYLLABLE POSITION=(L MOD 4 ), WHERE L IS THE SYLLABLE 27630000=04268000= NUMBER RELATIVE TO THE BEGINNING OF THE SEGMENT; 27635000=04269000= - PROCEDURE PACK(WORD, WX, POSITION, SYLLABLE); 27640000=04270000= - VALUE 27645000=04271000= - WX, POSITION, SYLLABLE; 27650000=04271000= - REAL 27650100 - WX, POSITION, SYLLABLE; 27650200 - ARRAY 27650300 - WORD[0]; 27650400 + DEFINE PACK(WORD, WX, POSITION, SYLLABLE) = 27640000=04270000= BEGIN 27660000=04272000= - STREAMLOCALS; 27660100 - STREAMSETDI(WORD, WX); 27665000=04273000= - STREAMSKIPDI(+POSITION); 27670000=04273000= - STREAMSKIPDI(+POSITION); 27675000=04273000= - STREAMSETLOCSI(SYLLABLE); 27680000=04274000= - STREAMSKIPSI(+6); 27685000=04274000= - STREAMTRANSFERCHR(2); 27690000=04275000= - % PERHAPS WE SHOULD JUST DO 27690100 - % WORD[WX]:= * & (SYLLABLE)[47-POSITION*12:12]; 27690200 - END PACK; 27695000=04276000= + WORD[(WX)]:= * & (SYLLABLE)[47-(POSITION)*12:12]; 27665000=04273000= + END PACK #; 27695000=04276000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%27696000 PROCEDURE DEBUG(S); 27700000=04277000= VALUE 27705000=04278000= @@ -6361,8 +6408,7 @@ L: SEARCH:= Q[I+1]; 27555000 ELSE 28085000=04311080= IF B ^= 33 THEN 28090000=04311080= GO TO NORMAL; 28095000=04311080= - EMITO(Q+197); 28100000=04311090= - COMMENT -- THIS GETS OUT FIXED FIELD; 28105000=04311090= + EMITO(Q+197); COMMENT -- THIS GETS OUT FIXED FIELD; 28100000=04311090= GO TO EXIT; 28110000=04311100= END; 28115000=04311110= NORMAL: 28120000=04312000= @@ -6397,6 +6443,7 @@ EXIT: 28180000 S, 28265000=04502000= T1, 28270000=04502000= T2; 28275000=04502000= + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%28276000 PROCEDURE EMIT21(E, B); 28280000=04503000= VALUE 28285000=04503000= E, 28290000=04503000= @@ -6732,8 +6779,7 @@ EXIT: 28625000 ADDRESS; 29920000=05149000= REAL 29925000=05150000= ADDRESS; 29930000=05150000= - BEGIN 29935000=05151000= - COMMENT PASSMONFILE GENERATES CODE TO PASS THE MONITOR 29940000=05151000= + BEGIN COMMENT PASSMONFILE GENERATES CODE TO PASS THE MONITOR 29935000=05151000= FILE TO PRINTI; 29945000=05152000= IF ADDRESS < 768 OR ADDRESS > 1023 THEN 29950000=05154000= EMITL(5); 29955000=05154000= @@ -6741,17 +6787,14 @@ EXIT: 28625000 END PASSMONFILE; 29965000=05156000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%29970000=05156000= PROCEDURE PASFILE; 29975000=05157000= - BEGIN 29980000=05158000= - COMMENT PASFILE PASSES THE LAST THREE PARAMETERS TO KEN 29985000=05158000= + BEGIN COMMENT PASFILE PASSES THE LAST THREE PARAMETERS TO KEN 29980000=05158000= MEYERS FOR THE LOCK, CLOSE, AND REWIND STATEMENTS; 29990000=05159000= DEFINE 29995000=05160000= - ELBATWORD = RR1 #; 30000000=05160000= - COMMENT ELBATWORD CONTAINS THE 30005000=05160000= + ELBATWORD = RR1 #; COMMENT ELBATWORD CONTAINS THE 30000000=05160000= ELBATWORD FOR THE FILE BEING 30010000=05161000= OPERATED ON; 30015000=05162000= DEFINE 30020000=05163000= - LTEMP = RR2 #; 30025000=05163000= - COMMENT LTEMP IS USED TO HOLD THE L 30030000=05163000= + 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= @@ -7024,8 +7067,7 @@ COMMENT PASSLIST ASSUMES I IS POINTING AT LIST ID; 30260000 IF FIRST+SECOND <= 48 THEN 31270000=05282000= COMMENT IF TESTS ARE PASSED THEN RANGES OF LITERALS ARE O.K.; 31275000=05283000= GO TO EXIT; 31280000=05284000= - ERR(114); 31285000=05285000= - COMMENT ERROR IF SYNTAX OR RANGE FAILS; 31290000=05285000= + ERR(114); COMMENT ERROR IF SYNTAX OR RANGE FAILS; 31285000=05285000= DOTSYNTAX:= TRUE; 31295000=05286000= EXIT: 31300000=05286000= END DOTSYNTAX; 31305000=05286000= @@ -7037,8 +7079,7 @@ EXIT: 31300000 REAL 31335000=05289000= ELBATCLASS, 31340000=05289000= ERRORNUMBER; 31345000=05289000= - BEGIN 31350000=05290000= - COMMENT CHECK COMPARES ELBATCLASS WITH TABLE(I). IF THEY 31355000=05290000= + BEGIN COMMENT CHECK COMPARES ELBATCLASS WITH TABLE(I). IF THEY 31350000=05290000= ARE NOT EQUAL, CHECK IS SET TRUE AND THE ERROR ROUTINE IS 31360000=05291000= CALLED PASSING ERRORNUMBER. IF THEY ARE EQUAL CHECK IS SET31365000=05292000= FALSE; 31370000=05293000= @@ -7092,8 +7133,7 @@ EXIT: 31300000 INFOINDEX[0]; 31665200 REAL 31665300 IX, SIZE; 31665400 - BEGIN 31670000=05319000= - COMMENT GETALPHA PICKS ALPHA CHARACTERS OUT OF INFO AND 31675000=05319000= + BEGIN COMMENT GETALPHA PICKS ALPHA CHARACTERS OUT OF INFO AND 31670000=05319000= FORMATS THE ID WORD THAT IS PASSED TO PRINTI. THE FIRST 31680000=05320000= CHARACTER CONTAINS THE SIZE. THE NEXT CHARACTER CONTAINS THE 31685000=05321000= ALPHA LEFT JUSTIFIED WITH TRAILING ZEROS; 31690000=05322000= @@ -7142,6 +7182,7 @@ EXIT: 31300000 XIT, 31870000=05325080= JUMPOUT; 31871000=05325080= 31871100 + TALLY:= 0; 31873000 STREAMSETLOCSI(PORS); 31875000=05325090= STREAMSKIPSI(+3); 31880000=05325090= STREAMSETDI(LIN, 0); % "PRT" OR "STACK". 31885000=05325090= @@ -7901,8 +7942,7 @@ EXIT: 35180000 RP, 35505000 LDOT, 35510000 LAMPER; 35515000 - GO TO S[ELCLASS-PROCID]; 35520000=06091000= - COMMENT GO TO PROPER SYNTAXER; 35525000=06091000= + GO TO S[ELCLASS-PROCID]; COMMENT GO TO PROPER SYNTAXER; 35520000=06091000= IF ELCLASS = UNKNOWNID THEN 35530000=06092000= ERR(100); 35535000=06092000= IF ELCLASS = FILEID OR ELCLASS = SUPERFILEID THEN 35540000=06092005= @@ -8010,8 +8050,7 @@ RP: IF ELCLASS ^= RTPAREN THEN 36025000 END; 36045000=06125000= STEPIT; 36050000=06126000= LDOT: 36055000=06127000= - DOT; 36060000=06127000= - COMMENT THIS CHECKS FOR PARTIAL WORDS; 36065000=06127000= + DOT; COMMENT THIS CHECKS FOR PARTIAL WORDS; 36060000=06127000= LAMPER: 36070000=06128000= STACKCT:= STACKCT+1; 36075000=06128000= WHILE ELCLASS = AMPERSAND DO 36080000=06129000= @@ -8334,8 +8373,7 @@ FAH: 37635000 COMMENT FINISHED IF EXPRESSION COMPILED WAS DESIGNATIONAL; 37650000=06264000= IF TYPE = BTYPE THEN 37655000=06265000= BEGIN 37660000=06265000= - TD: DOT; 37665000=06266000= - COMMENT HANDLES PARTIAL WORDS; 37670000=06266000= + TD: DOT; COMMENT HANDLES PARTIAL WORDS; 37665000=06266000= T: STACKCT:= STACKCT+1; 37675000=06267000= WHILE ELCLASS = AMPERSAND DO 37680000=06267500= COMMENT HANDLES CONCATENATE; 37685000=06268000= @@ -8463,8 +8501,7 @@ COMMENT SET UP CODE FOR RELATIONAL OPERATOR TO BE 37990000 STACKCT:= 0; 38285000=06296500= THENBRANCH:= BUMPL; 38290000=06297000= COMMENT SAVE L FOR LATER FIXUP; 38295000=06298000= - IFEXP:= TYPE:= EXPRSS; 38300000=06299000= - COMMENT COMPILE 1ST EXPRSS; 38305000=06299000= + IFEXP:= TYPE:= EXPRSS; COMMENT COMPILE 1ST EXPRSS; 38300000=06299000= STACKCT:= 0; 38310000=06299500= ELSEBRANCH:= BUMPL; 38315000=06300000= EMITB(BFC, THENBRANCH, L); 38320000=06301000= @@ -8480,8 +8517,7 @@ COMMENT SET UP CODE FOR RELATIONAL OPERATOR TO BE 37990000 DEXP 38370000=06305000= ELSE 38375000=06305000= BEXP; 38380000=06305000= - STACKCT:= 1; 38385000=06305500= - COMMENT THIS COMPILES PROPER TYPE SECOND EXPRSS; 38390000=06306000= + STACKCT:= 1; COMMENT THIS COMPILES PROPER TYPE SECOND EXPRSS; 38385000=06305500= EMITB(BFW, ELSEBRANCH, L); 38395000=06307000= EMIT(1); 38400000=06308000= L:= L-1; 38405000=06308000= @@ -8866,8 +8902,7 @@ EXIT: 40190000 I:= I-1; 40300000=07008000= BEGINCTR:= BEGINCTR+1; 40305000=07008000= ANOTHER: 40310000=07009000= - ERRORTOG:= TRUE; 40315000=07009000= - COMMENT ALLOW ERROR MESSAGES; 40320000=07009000= + ERRORTOG:= TRUE; COMMENT ALLOW ERROR MESSAGES; 40315000=07009000= STEPIT; 40325000=07010000= IF STREAMTOG THEN 40330000=07011000= STREAMSTMT 40335000=07011000= @@ -9166,8 +9201,7 @@ ANOTHER: 41195000 IF VBIT THEN 41815000=07124000= VE: T1:= EXPRSS COMMENT VALUE CALL EXPRESSION; 41820000=07125000= ELSE 41825000=07126000= - BEGIN 41830000=07126000= - COMMENT NAME CALL EXPRESSION; 41835000=07126000= + BEGIN COMMENT NAME CALL EXPRESSION; 41830000=07126000= IF SBIT THEN 41840000=07127000= BEGIN 41845000=07127000= FLAG(122); 41850000=07127000= @@ -9178,8 +9212,7 @@ ANOTHER: 41195000 T3:= PROGDESCBLDR(0, L, 0); 41875000=07130000= COMMENT BUILD DESCRIPTOR FOR ACCIDENTAL ENTRY AND PREPARE JUMP 41880000=07131000= AROUND CODE FOR EXPRESSION; 41885000=07132000= - T1:= EXPRSS; 41890000=07133000= - COMMENT COMPILE EXPRESSION; 41895000=07133000= + T1:= EXPRSS; COMMENT COMPILE EXPRESSION; 41890000=07133000= STORE: 41900000=07134000= EMITPAIR(JUNK, STD); 41905000=07134000= EMITN(JUNK); 41910000=07134000= @@ -9298,11 +9331,9 @@ ANOTHER: 41195000 ATYPE; 42465000=07204000= IF ELCLASS = COMMA OR ELCLASS = RTPAREN THEN 42470000=07205000= COMMENT WE ARE AT END OF PARAMETER; 42475000=07206000= - IF T6 = 0 THEN 42480000=07207000= - COMMENT MORE THAN SUBSCRIPTED VARIABLE; 42485000=07207000= + IF T6 = 0 THEN COMMENT MORE THAN SUBSCRIPTED VARIABLE; 42480000=07207000= GO TO STORE 42490000=07208000= - ELSE 42495000=07208000= - COMMENT SUBSCRIPTED VARIABLE; 42500000=07208000= + ELSE COMMENT SUBSCRIPTED VARIABLE; 42495000=07208000= GO TO LRTS; 42505000=07209000= IF T1 = BTYPE THEN 42510000=07210000= GO TO FINISHBOO; 42515000=07210000= @@ -9375,15 +9406,13 @@ COMMON: 42800000 END; 42850000=07239000= IF NOT FBIT THEN 42855000=07240000= IF TAKE(INDEX).NODIMPART+1 ^= PCTR THEN 42860000=07242000= - BEGIN 42865000=07242000= - COMMENT WRONG NUMBER OF PARAMETERS; 42870000=07242000= + BEGIN COMMENT WRONG NUMBER OF PARAMETERS; 42865000=07242000= ERR(128); 42875000=07243000= GO TO EXIT 42880000=07243000= END; 42885000=07243000= STEPIT; 42890000=07244000= GO TO EXIT; 42895000=07244000= -L5: 42900000=07246000= - COMMENT FORMATS; 42905000=07246000= +L5: COMMENT FORMATS; 42900000=07246000= I:= I-1; 42910000=07247000= FGEN: 42915000=07248000= PASSFORMAT; 42920000=07248000= @@ -9394,8 +9423,7 @@ FGEN: 42915000 END; 42945000=07249000= I:= I+1; 42950000=07250000= GO TO BS; 42955000=07251000= -L6: 42960000=07253000= - COMMENT SUPERFORMAT; 42965000=07253000= +L6: COMMENT SUPERFORMAT; 42960000=07253000= IF FBIT THEN 42970000=07255000= BEGIN 42975000=07255000= EMITV(ADDRSF); 42980000=07255000= @@ -9449,8 +9477,7 @@ LP: IF T1:= TAKE(WHOLE:= GIT(WHOLE)).[7:8] = 0 THEN 43175000 SCLASS:= SCLASS+4; 43220000=07282000= I:= I-2; 43225000=07283000= STEPIT; 43230000=07283000= - GO TO NORMAL; 43235000=07284000= - COMMENT WE LET OUT NORMAL MECHANISM FOR 43240000=07284000= + GO TO NORMAL; COMMENT WE LET OUT NORMAL MECHANISM FOR 43235000=07284000= EXPRESSIONS HANDLE THIS CASE; 43245000=07285000= END THE CASE OF ZERO PARAMETERS; 43250000=07286000= TB1:= TRUE; 43255000=07287000= @@ -9487,8 +9514,7 @@ LP: IF T1:= TAKE(WHOLE:= GIT(WHOLE)).[7:8] = 0 THEN 43175000 EMITB(BFW, T5, L); 43410000=07312000= ADDRSF:= T6 43415000=07312000= END; 43420000=07312000= - GO TO LODPOINT; 43425000=07313000= - COMMENT IN ANY CASE LOAD A DESCRIPTOR; 43430000=07313000= + GO TO LODPOINT; COMMENT IN ANY CASE LOAD A DESCRIPTOR; 43425000=07313000= L11: 43435000=07315000= COMMENT INTRINSIC PROCEDURE; 43440000=07315000= 43445000=07316000= @@ -9902,8 +9928,7 @@ EXIT: 45090000 END; 45480000=07510000= ELBW:= ELBAT[I]; 45485000=07511000= IF ELBW < 0 THEN 45490000=07513000= - BEGIN 45495000=07513000= - COMMENT THIS IS A MONITORED SWITCH; 45500000=07513000= + BEGIN COMMENT THIS IS A MONITORED SWITCH; 45495000=07513000= EMITO(MKS); 45505000=07514000= PASSALPHA(ELBW); 45510000=07514000= EMITPAIR(GNAT(CHARI), LOD); 45515000=07515000= @@ -10115,12 +10140,10 @@ EXIT: 46270000 END; 46545000=07609700= PUT(-ADDITIONAL & L[11:11:12], INDEX); 46550000=07610000= IF ELBATWORD < 0 THEN 46555000=07612000= - BEGIN 46560000=07612000= - COMMENT THIS LABEL IS EITHER APPEARS IN A DUMP 46565000=07612000= + BEGIN COMMENT THIS LABEL IS EITHER APPEARS IN A DUMP 46560000=07612000= OR MONITOR DECLARATION; 46570000=07613000= IF RR1:= ADDITIONAL.LABLMONFILE ^= 0 THEN 46575000=07615000= - BEGIN 46580000=07615000= - COMMENT THIS CODE IS FOR MONITORED 46585000=07615000= + BEGIN COMMENT THIS CODE IS FOR MONITORED 46580000=07615000= LABELS; 46590000=07616000= EMITO(MKS); 46595000=07617000= PASSALPHA(ELBATWORD); 46600000=07617000= @@ -10130,16 +10153,14 @@ EXIT: 46270000 EMITV(GNAT(PRINTI)); 46620000=07620000= END; 46625000=07621000= IF RR1:= ADDITIONAL.DUMPEE ^= 0 THEN 46630000=07623000= - BEGIN 46635000=07623000= - COMMENT EMIT CODE TO INCREMENT THE 46640000=07623000= + BEGIN COMMENT EMIT CODE TO INCREMENT THE 46635000=07623000= LABEL COUNTER; 46645000=07624000= EMITV(RR1); 46650000=07625000= EMITL(1); 46655000=07625000= EMITO(ADD); 46660000=07625000= EMITPAIR(RR1, STD); 46665000=07626000= IF RR1:= ADDITIONAL.DUMPOR ^= 0 THEN 46670000=07628000= - BEGIN 46675000=07628000= - COMMENT EMIT CODE TO CALL 46680000=07628000= + BEGIN COMMENT EMIT CODE TO CALL 46675000=07628000= THE DUMP ROUTINE; 46685000=07629000= STUFFF(RR1); 46690000=07633000= EMITO(XCH); 46695000=07634000= @@ -10909,8 +10930,7 @@ XXX: 50385000 SND 50460000=07923000= ELSE 50465000=07923000= STD; 50470000=07923000= - FAULTOG:= BOOLEAN(1) OR FAULTOG; 50475000=07923100= - COMMENT TELLS DEXP TO MESS 50480000=07923100= + FAULTOG:= BOOLEAN(1) OR FAULTOG; COMMENT TELLS DEXP TO MESS 50475000=07923100= WITH FAULTLEVEL; 50485000=07923150= IF STEPI ^= ASSIGNOP THEN 50490000=07924000= ERR(60) 50495000=07924000= @@ -10934,8 +10954,7 @@ XXX: 50385000 T; 50585000=07930000= INTEGER 50590000=07930000= T; 50595000=07930000= - BEGIN 50600000=07931000= - COMMENT KLUDGE HANDLES ARRAY-ROW READS AND WRITES FOR 50605000=07931000= + BEGIN COMMENT KLUDGE HANDLES ARRAY-ROW READS AND WRITES FOR 50600000=07931000= THOSE CASES WHICH DO NOT NEED TO GO THROUGH THE 50610000=07932000= FORMATTING INTRINSICS. A NEW MCP INTRINSIC IS 50615000=07933000= USED, TO FURTHER IMPROVE SPEED/DECREASE CORE USE; 50620000=07934000= @@ -10968,8 +10987,7 @@ XXX: 50385000 GO TO EXIT; 50740000=07943000= END; 50745000=07943000= EMITO(XCH); 50750000=07944000= - IF T < 0 THEN 50755000=07945000= - COMMENT FROM WRITE...(<0 IS FROM READ); 50760000=07945000= + IF T < 0 THEN COMMENT FROM WRITE...(<0 IS FROM READ); 50755000=07945000= BEGIN 50765000=07946000= EMITPAIR(JUNK, STD); 50770000=07946000= EMITO(XCH); 50775000=07946000= @@ -11294,8 +11312,7 @@ EXIT: 50860000 TEST 52370000=08131000= END 52375000=08132000= ELSE 52380000=08132000= - BEGIN 52385000=08132000= - COMMENT STEP-WHILE ELEMENT; 52390000=08132000= + BEGIN COMMENT STEP-WHILE ELEMENT; 52385000=08132000= IF ELCLASS ^= WHILEV THEN 52395000=08133000= BEGIN 52400000=08134000= ERR(153); 52405000=08134000= @@ -11484,20 +11501,16 @@ EXIT: 53290000 END FORSTMT; 53300000=08232000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%53305000=08232000= PROCEDURE HANDLETHETAILENDOFAREADORSPACESTATEMENT; 53310000=08233000= - BEGIN 53315000=08234000= - COMMENT THIS ROUTINE CHECK FOR ACTION LABELS IN READ AND 53320000=08234000= + BEGIN COMMENT THIS ROUTINE CHECK FOR ACTION LABELS IN READ AND 53315000=08234000= SPACE STATEMENTS AND GENERATES THE APPROPRIATE CODE; 53325000=08235000= LABEL 53330000=08236000= - PASSPARLABL; 53335000=08236000= - COMMENT WHEN I REACH THIS LABEL A 53340000=08236000= + PASSPARLABL; COMMENT WHEN I REACH THIS LABEL A 53335000=08236000= COLON HAS JUST BEEN DETECTED; 53345000=08237000= LABEL 53350000=08238000= - EXIT; 53355000=08238000= - COMMENT THE LABEL EXIT APPEARS AFTER THE LAST53360000=08238000= + EXIT; COMMENT THE LABEL EXIT APPEARS AFTER THE LAST53355000=08238000= EXECUTABLE STATEMENT IN THIS ROUTINE; 53365000=08239000= IF STEPI = LFTBRKET THEN 53370000=08241000= - BEGIN 53375000=08241000= - COMMENT THIS CODE HANDLES PARITY AND END OF 53380000=08241000= + BEGIN COMMENT THIS CODE HANDLES PARITY AND END OF 53375000=08241000= FILE LABELS; 53385000=08242000= IF STEPI ^= COLON THEN 53390000=08243000= DEXP 53395000=08243000= @@ -11511,14 +11524,12 @@ EXIT: 53290000 DEXP 53435000=08245000= END; 53440000=08245000= IF CHECK(RTBRKET, 433) THEN 53445000=08278000= - GO TO EXIT; 53450000=08278000= - COMMENT ERROR 433 MEANS MISSING RIGHT BRACKET 53455000=08279000= + GO TO EXIT; COMMENT ERROR 433 MEANS MISSING RIGHT BRACKET 53450000=08278000= IN READ OR SPACE STATEMENT; 53460000=08280000= STEPIT; 53465000=08281000= END 53470000=08283000= ELSE 53475000=08283000= - BEGIN 53480000=08283000= - COMMENT THERE ARE NOT ANY ACTION LABELS IN THIS53485000=08283000= + BEGIN COMMENT THERE ARE NOT ANY ACTION LABELS IN THIS53480000=08283000= CASE; 53490000=08284000= EMITL(0); 53495000=08285000= EMITL(0); 53500000=08285000= @@ -11551,8 +11562,7 @@ EXIT: 53560000 EMITO(965) 53635000=08289030= END #; 53640000=08289030= PROCEDURE READSTMT; 53645000=08290000= - BEGIN 53650000=08291000= - COMMENT READSTMT GENERATES CODE TO CALL INTERPTI)WHICH IS53655000=08291000= + BEGIN COMMENT READSTMT GENERATES CODE TO CALL INTERPTI)WHICH IS53650000=08291000= 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= @@ -11636,23 +11646,19 @@ EXIT: 53560000 DESCRIPTOR,END OF FILE LABEL,PARITY LABEL) 54060000=08372000= *********************************************************;54065000=08373000= DEFINE 54070000=08374000= - REVERSETOG = RRB1 #; 54075000=08374000= - COMMENT REVERSETOG IS SET TRUE54080000=08374000= + REVERSETOG = RRB1 #; COMMENT REVERSETOG IS SET TRUE54075000=08374000= IF THE STATEMENT BEING COMPILED54085000=08375000= IS A READ REVERSE, OTHERWISE IT54090000=08376000= IS SET FALSE; 54095000=08377000= LABEL 54100000=08378000= - EXIT; 54105000=08378000= - COMMENT EXIT APPEARS AFTER THE LAST 54110000=08378000= + EXIT; COMMENT EXIT APPEARS AFTER THE LAST 54105000=08378000= EXECUTABLE STATEMENT IN READSTMT; 54115000=08379000= LABEL 54120000=08380000= - CHKACTIONLABELS; 54125000=08380000= - COMMENT THE CODE AT THIS LABEL 54130000=08380000= + CHKACTIONLABELS; COMMENT THE CODE AT THIS LABEL 54125000=08380000= ASSUMES I IS POINTING AT THE RIGHT 54135000=08381000= PARENTHESIS; 54140000=08382000= LABEL 54145000=08383000= - PASSLIST; 54150000=08383000= - COMMENT THE CODE AT PASSLIST EXPECTS I TO54155000=08383000= + PASSLIST; COMMENT THE CODE AT PASSLIST EXPECTS I TO54150000=08383000= BE POINTING AT THE LAST QUANTITY IN THE 54160000=08384000= SECOND PARAMETER; 54165000=08385000= LABEL 54170000=08385100= @@ -11660,23 +11666,19 @@ EXIT: 53560000 REAL 54176000 TVAR; % FOR VARIABLE() NAME PARAM 54177000 INTEGER 54180000=08385500= - LISTADDRESS; 54185000=08385500= - COMMENT TEMP TO HOLD LIST ADD DESC; 54190000=08385500= + LISTADDRESS; COMMENT TEMP TO HOLD LIST ADD DESC; 54185000=08385500= BOOLEAN 54195000=08385600= SEEKTOG, 54200000=08385600= LOCKTOG, 54205000=08385600= GRABTOG; % 54210000=08385600= BOOLEAN 54215000=08385700= - MAYI; 54220000=08385700= - COMMENT TRUE IF "FILE" IS ARRAY ROW; 54225000=08385700= + MAYI; COMMENT TRUE IF "FILE" IS ARRAY ROW; 54220000=08385700= INTEGER 54230000=08385800= - HOLD; 54235000=08385800= - COMMENT L MAY GET CUT BACK TO HERE; 54240000=08385800= + HOLD; COMMENT L MAY GET CUT BACK TO HERE; 54235000=08385800= IF STEPI = LEFTPAREN THEN 54245000=08387000= REVERSETOG:= SEEKTOG:= FALSE 54250000=08387000= ELSE 54255000=08388000= - BEGIN 54260000=08388000= - COMMENT THIS HAD BETTER SAY REVERSE; 54265000=08388000= + BEGIN COMMENT THIS HAD BETTER SAY REVERSE; 54260000=08388000= REVERSETOG:= ACCUM[1] = 6"7REVER"; 54270000=08389000= LOCKTOG:= ELCLASS = LOCKV; 54275000=08390000= SEEKTOG:= ACCUM[1] = 6"4SEEK0"; 54280000=08390500= @@ -11688,8 +11690,7 @@ EXIT: 53560000 GO TO EXIT; 54310000=08393000= END; 54315000=08394000= IF CHECK(LEFTPAREN, 421) THEN 54320000=08395000= - GO TO EXIT; 54325000=08396000= - COMMENT ERROR 421 MEANS MISSING LEFT 54330000=08397000= + GO TO EXIT; COMMENT ERROR 421 MEANS MISSING LEFT 54325000=08396000= PARENTHESIS IN READ REVERSE STATEMENT; 54335000=08398000= END; 54340000=08399000= EMITO(MKS); 54345000=08400000= @@ -11716,8 +11717,7 @@ EXIT: 53560000 BEGIN 54445000=08401090= EMITPAIR(GNAT(POWERSOFTEN), LOD); 54450000=08402000= IF NOT RANGE(FILEID, SUPERFILEID) THEN 54455000=08404000= - BEGIN 54460000=08404000= - COMMENT ERROR 422 MEANS MISSING FILE IN READ 54465000=08404000= + BEGIN COMMENT ERROR 422 MEANS MISSING FILE IN READ 54460000=08404000= STATEMENT; 54470000=08405000= ERR(422); 54475000=08406000= GO TO EXIT; 54480000=08406000= @@ -11873,8 +11873,7 @@ EXIT: 53560000 EMITO(CHS); 55230000=08421000= END; 55235000=08421500= IF ELCLASS = RTPAREN THEN 55240000=08423000= - BEGIN 55245000=08423000= - COMMENT NO FORMAT,NO LIST CASE; 55250000=08423000= + BEGIN COMMENT NO FORMAT,NO LIST CASE; 55245000=08423000= EMITL(0); 55255000=08424000= EMITL(0); 55260000=08424000= EMITL(0); 55265000=08424000= @@ -11886,15 +11885,13 @@ EXIT: 53560000 COMMENT ERROR 424 MEANS IMPROPER FILE DELIMITER IN READ 55295000=08429000= STATEMENT; 55300000=08430000= IF STEPI = FACTOP THEN 55305000=08432000= - BEGIN 55310000=08432000= - COMMENT *,LIST CASE; 55315000=08432000= + BEGIN COMMENT *,LIST CASE; 55310000=08432000= EMITL(0); 55320000=08433000= EMITL(0); 55325000=08433000= GO PASSLIST; 55330000=08433000= END; 55335000=08434000= IF ELCLASS = MULOP THEN 55340000=08436000= - BEGIN 55345000=08436000= - COMMENT FREE FIELD FORMAT CASE; 55350000=08436000= + BEGIN COMMENT FREE FIELD FORMAT CASE; 55345000=08436000= IF STEPI = MULOP THEN 55355000=08437000= EMITL(2) 55360000=08437000= ELSE 55365000=08437000= @@ -11906,16 +11903,14 @@ EXIT: 53560000 GO TO PASSLIST; 55395000=08437075= END; 55400000=08438000= IF RANGE(FRMTID, SUPERFRMTID) THEN 55405000=08440000= - BEGIN 55410000=08440000= - COMMENT THE SECOND PARAMETER IS A FORMAT; 55415000=08440000= + BEGIN COMMENT THE SECOND PARAMETER IS A FORMAT; 55410000=08440000= PASSFORMAT; 55420000=08441000= READXFORM: 55425000=08442000= IF TABLE(I+1) = COMMA THEN 55430000=08443000= GO PASSLIST; 55435000=08443000= STEPIT; 55440000=08444000= IF CHECK(RTPAREN, 425) THEN 55445000=08446000= - GO TO EXIT; 55450000=08446000= - COMMENT ERROR 425 MEANS IMPROPER FORMAT 55455000=08447000= + GO TO EXIT; COMMENT ERROR 425 MEANS IMPROPER FORMAT 55450000=08446000= DELIMITER IN READ STATEMENT; 55460000=08448000= EMITL(0); 55465000=08449000= GO CHKACTIONLABELS; 55470000=08449000= @@ -11972,8 +11967,7 @@ PASSLIST: 55685000 END; 55740000=08484000= CHECKER(ELBAT[I]); 55745000=08484500= IF ELCLASS = SUPERLISTID THEN 55750000=08485000= - BEGIN 55755000=08486000= - COMMENT SUBSCRIPTED SWITCH LIST ID; 55760000=08486000= + BEGIN COMMENT SUBSCRIPTED SWITCH LIST ID; 55755000=08486000= LISTADDRESS:= ELBAT[I].ADDRESS; 55765000=08488000= BANA; 55770000=08489000= EMITV(LISTADDRESS); 55775000=08489500= @@ -11983,8 +11977,7 @@ PASSLIST: 55685000 I:= I-1 55795000=08489520= END 55800000=08489530= ELSE 55805000=08489530= - BEGIN 55810000=08489530= - COMMENT A COMMON LIST; 55815000=08489530= + BEGIN COMMENT A COMMON LIST; 55810000=08489530= EMITPAIR(ELBAT[I].ADDRESS, LOD); 55820000=08489550= END; 55825000=08489560= STEPIT; 55830000=08489570= @@ -12168,15 +12161,13 @@ EXIT: 56725000 END OF FILEATTRIBUTEHANDLER; 56730000=08493930= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%56735000=08493930= PROCEDURE SPACESTMT; 56740000=08494000= - BEGIN 56745000=08495000= - COMMENT THE SPACE STATEMENT IS BEST THOUGHT OF AS A 56750000=08495000= + BEGIN COMMENT THE SPACE STATEMENT IS BEST THOUGHT OF AS A 56745000=08495000= SUBSET OF THE READ STATEMENT WHERE ZERO WORDS ARE READ. 56755000=08496000= FOR THE EXACT SYNTAX FOR THE SPACE STATEMENT AND THE 56760000=08497000= PARAMETERS PASSED TO THE INTERPTI ROUTINE SEE THE COMMENTS56765000=08498000= FOR THE READ STATEMENT; 56770000=08499000= LABEL 56775000=08500000= - EXIT; 56780000=08500000= - COMMENT EXIT APPEARS AFTER THE LAST 56785000=08500000= + EXIT; COMMENT EXIT APPEARS AFTER THE LAST 56780000=08500000= EXECUTABLE STATEMENT IN SPACESTMT; 56790000=08501000= STEPIT; 56795000=08502000= IF CHECK(LEFTPAREN, 434) THEN 56800000=08504000= @@ -12185,8 +12176,7 @@ EXIT: 56725000 SPACE STATEMENT; 56815000=08506000= STEPIT; 56820000=08507000= IF NOT RANGE(FILEID, SUPERFILEID) THEN 56825000=08509000= - BEGIN 56830000=08509000= - COMMENT ERROR 435 MEANS IMPROPER FILE 56835000=08509000= + BEGIN COMMENT ERROR 435 MEANS IMPROPER FILE 56830000=08509000= IDENTIFIER IN SPACE STATEMENT; 56840000=08510000= ERROR(435); 56845000=08511000= GO TO EXIT; 56850000=08511000= @@ -12213,8 +12203,7 @@ EXIT: 56945000 END SPACESTMT; 56955000=08527000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%56960000=08527000= PROCEDURE WRITESTMT; 56965000=08528000= - BEGIN 56970000=08529000= - COMMENT WRITESTMT GENERATES CODE TO CALL INTERPTO, AN 56975000=08529000= + BEGIN COMMENT WRITESTMT GENERATES CODE TO CALL INTERPTO, AN 56970000=08529000= INTRINSIC PROCEDURE ON THE DRUM, PASSING TO IT PARAMETERS 56980000=08530000= DETERMINED BY THE FORMAT OF THE WRITE STATEMENT. 56985000=08531000= I HAVE LISTED BELOW THE VARIOUS CASES CONSIDERED BY THE 56990000=08532000= @@ -12323,8 +12312,7 @@ EXIT: 56945000 ELSE 57520000=08597900= BEGIN 57525000=08597900= IF NOT RANGE(FILEID, SUPERFILEID) THEN 57530000=08599000= - BEGIN 57535000=08599000= - COMMENT ERROR 439 MEANS IMPROPER FILE 57540000=08599000= + BEGIN COMMENT ERROR 439 MEANS IMPROPER FILE 57535000=08599000= IDENTIFIER IN A WRITE STATEMENT; 57545000=08600000= ERR(439); 57550000=08601000= GO TO EXIT; 57555000=08601000= @@ -12333,8 +12321,7 @@ EXIT: 56945000 PASSFILE; 57570000=08605000= END; 57575000=08605500= IF (RRB1:= ELCLASS = COMMA) OR ELCLASS = RTPAREN THEN 57580000=08607000= - BEGIN 57585000=08607000= - COMMENT STANDARD CARRIAGE CONTROL CASE; 57590000=08607000= + BEGIN COMMENT STANDARD CARRIAGE CONTROL CASE; 57585000=08607000= EMITL(0); 57595000=08608000= EMITL(1); 57600000=08608000= IF RRB1 THEN 57605000=08610000= @@ -12473,13 +12460,11 @@ CHKRTPAREN: 58235000 CHKSECOND: 58270000=08643000= STEPIT; 58275000=08643000= IF RANGE(FRMTID, SUPERFRMTID) THEN 58280000=08645000= - BEGIN 58285000=08645000= - COMMENT THIS IS THE FORMAT FORM OF THE WRITE; 58290000=08645000= + BEGIN COMMENT THIS IS THE FORMAT FORM OF THE WRITE; 58285000=08645000= PASSFORMAT; 58295000=08646000= WRITXFORM: 58300000=08647000= IF STEPI = RTPAREN THEN 58305000=08648000= - BEGIN 58310000=08648000= - COMMENT THIS IS THE TWO PARAMETER 58315000=08648000= + BEGIN COMMENT THIS IS THE TWO PARAMETER 58310000=08648000= CASE OF THE WRITE; 58320000=08649000= STEPIT; 58325000=08650000= EMITL(0); 58330000=08650000= @@ -12533,8 +12518,7 @@ CHKSECOND: 58270000 GO TO PASSLIST; 58570000=08653230= END OF SCANNING FOR FREE FIELD FORMAT; 58575000=08653240= IF ELCLASS = FACTOP THEN 58580000=08655000= - BEGIN 58585000=08655000= - COMMENT THIS IS THE ASTERISK FORM OF THE WRITE;58590000=08655000= + BEGIN COMMENT THIS IS THE ASTERISK FORM OF THE WRITE;58585000=08655000= EMITL(0); 58595000=08656000= EMITL(0); 58600000=08656000= STEPIT; 58605000=08656000= @@ -12592,20 +12576,17 @@ PASSLIST: 58835000 END; 58880000=08688000= CHECKER(ELBAT[I]); 58885000=08688500= IF ELCLASS = SUPERLISTID THEN 58890000=08689000= - BEGIN 58895000=08690000= - COMMENT SUBSCRIPTED SWITCH LIST ID; 58900000=08690000= + BEGIN COMMENT SUBSCRIPTED SWITCH LIST ID; 58895000=08690000= LISTADDRESS:= ELBAT[I].ADDRESS; 58905000=08692000= BANA; 58910000=08693000= EMITV(LISTADDRESS); 58915000=08694000= IF LISTADDRESS > 1023 THEN 58920000=08694500= EMITO(PRTE); 58925000=08694500= EMITO(LOD); 58930000=08695000= - I:= I-1; 58935000=08695500= - COMMENT STEP DOWN THE&I FROM BANA; 58940000=08695500= + I:= I-1; COMMENT STEP DOWN THE&I FROM BANA; 58935000=08695500= END 58945000=08696500= ELSE 58950000=08696500= - BEGIN 58955000=08696500= - COMMENT A COMMON LIST ID; 58960000=08696500= + BEGIN COMMENT A COMMON LIST ID; 58955000=08696500= EMITPAIR(ELBAT[I].ADDRESS, LOD); 58965000=08696520= END; 58970000=08696530= STEPIT; 58975000=08696540= @@ -12651,8 +12632,7 @@ EXIT: 59165000 END WRITESTMT; 59175000=08700000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%59180000=08700000= PROCEDURE LOCKSTMT; 59185000=08701000= - BEGIN 59190000=08702000= - COMMENT THE LOCK STATEMENT ROUTINE GENERATES CODE THAT 59195000=08702000= + BEGIN COMMENT THE LOCK STATEMENT ROUTINE GENERATES CODE THAT 59190000=08702000= CALLS ON THE FILE CONTROL ROUTINE PASSING TO IT THE 59200000=08703000= FOLLOWING PARAMETERS FOR THE CORRESPONDING CASES. 59205000=08704000= **********************************************************59210000=08705000= @@ -12664,16 +12644,13 @@ EXIT: 59165000 - - - - - - - - - - - - - - 59240000=08711000= (6,0,FILE,4); 59245000=08712000= LABEL 59250000=08713000= - EXIT; 59255000=08713000= - COMMENT THE LABEL EXIT APPEARS AFTER THE LAST59260000=08713000= + EXIT; COMMENT THE LABEL EXIT APPEARS AFTER THE LAST59255000=08713000= EXECUTABLE STATEMENT IN THE LOCK ROUTINE; 59265000=08714000= DEFINE 59270000=08715000= - THISL = RR1 #; 59275000=08715000= - COMMENT THISL IS A TEMP CELL 59280000=08715000= + THISL = RR1 #; COMMENT THISL IS A TEMP CELL 59275000=08715000= FOR THE CURRENT L REGISTER; 59285000=08716000= DEFINE 59290000=08717000= - LTEMP = RR2 #; 59295000=08717000= - COMMENT LTEMP CONTAINS THE 59300000=08717000= + LTEMP = RR2 #; COMMENT LTEMP CONTAINS THE 59295000=08717000= L REGISTER SETTING FOR THE 59305000=08718000= SAVE OR RELEASE LITERAL THAT 59310000=08719000= GETS PASSED TO KEN MEYERS; 59315000=08720000= @@ -12686,8 +12663,7 @@ EXIT: 59165000 IN A LOCK STATEMENT; 59340000=08725000= STEPIT; 59345000=08726000= IF NOT RANGE(FILEID, SUPERFILEID) THEN 59350000=08728000= - BEGIN 59355000=08728000= - COMMENT MUST BE READ-ONLY ARRAY TYPE LOCK; 59360000=08728000= + BEGIN COMMENT MUST BE READ-ONLY ARRAY TYPE LOCK; 59355000=08728000= IF NOT RANGE(BOOARRAYID, INTARRAYID) THEN 59365000=08728100= BEGIN 59370000=08728200= ERR(451); 59375000=08728200= @@ -12725,8 +12701,7 @@ EXIT: 59165000 THEN 59530000=08740000= EMITL(IF RRB1 THEN 6 ELSE IF ELCLASS = FACTOP THEN 8 ELSE 2) 59535000=08743000= ELSE 59540000=08743000= - BEGIN 59545000=08743000= - COMMENT ERROR 453 MEANS IMPROPER UNIT 59550000=08743000= + BEGIN COMMENT ERROR 453 MEANS IMPROPER UNIT 59545000=08743000= DISPOSITION PART; 59555000=08744000= ERROR(453); 59560000=08745000= GO TO EXIT; 59565000=08745000= @@ -12743,8 +12718,7 @@ EXIT: 59610000 END LOCKSTMT; 59620000=08755000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%59625000=08755000= PROCEDURE CLOSESTMT; 59630000=08756000= - BEGIN 59635000=08757000= - COMMENT THE CLOSE STATEMENT ROUTINE GENERATES CODE THAT 59640000=08757000= + BEGIN COMMENT THE CLOSE STATEMENT ROUTINE GENERATES CODE THAT 59635000=08757000= CALLS ON THE FILE CONTROL ROUTINE PASSING TO IT THE 59645000=08758000= FOLLOWING PARAMETERS FOR THE CORRESPONDING CASES. 59650000=08759000= **********************************************************59655000=08760000= @@ -12764,22 +12738,18 @@ EXIT: 59610000 (4,0,FILE,4) 59725000=08771300= ** ** ** ** ** ** *** ** ** ** ** ** ; 59730000=08771400= LABEL 59735000=08772000= - EXIT; 59740000=08772000= - COMMENT THE LABEL EXIT APPEARS AFTER THE LAST 59745000=08772000= + EXIT; COMMENT THE LABEL EXIT APPEARS AFTER THE LAST 59740000=08772000= EXECUTABLE STATEMENT IN THE CLOSESTMT ROUTINE; 59750000=08773000= DEFINE 59755000=08774000= - THISL = RR1 #; 59760000=08774000= - COMMENT THISL IS A TEMP CELL 59765000=08774000= + THISL = RR1 #; COMMENT THISL IS A TEMP CELL 59760000=08774000= FOR THE CURRENT LREGISTER; 59770000=08775000= DEFINE 59775000=08776000= - LTEMP = RR2 #; 59780000=08776000= - COMMENT LTEMP CONTAINS THE 59785000=08776000= + LTEMP = RR2 #; COMMENT LTEMP CONTAINS THE 59780000=08776000= L REGISTER SETTING FOR THE 59790000=08777000= SAVE OR RELEASE LITERAL THAT 59795000=08778000= GETS PASSED TO KEN MEYERS; 59800000=08779000= LABEL 59805000=08780000= - EMITREST; 59810000=08780000= - COMMENT I IS POINTING AT THE UNIT 59815000=08780000= + EMITREST; COMMENT I IS POINTING AT THE UNIT 59810000=08780000= DISPOTION PART AND CODE FOR THE LAST THREE59820000=08781000= PARAMETERS TO THE FILE CONTROL ROUTINE 59825000=08782000= MUST NOW BE GENERATED; 59830000=08783000= @@ -12790,8 +12760,7 @@ EXIT: 59610000 CLOSE STATEMENT; 59855000=08788000= STEPIT; 59860000=08789000= IF NOT RANGE(FILEID, SUPERFILEID) THEN 59865000=08791000= - BEGIN 59870000=08791000= - COMMENT ERROR 456 MEANS IMPROPER FILE PART IN A59875000=08791000= + BEGIN COMMENT ERROR 456 MEANS IMPROPER FILE PART IN A59870000=08791000= CLOSE STATEMENT; 59880000=08792000= ERROR(456); 59885000=08793000= GO TO EXIT; 59890000=08793000= @@ -12807,26 +12776,22 @@ EXIT: 59610000 THISL:= L; 59940000=08800000= L:= LTEMP; 59945000=08800000= IF STEPI = RELEASEV THEN 59950000=08802000= - BEGIN 59955000=08802000= - COMMENT RELEASE UNIT DISPOSITION PART CASE; 59960000=08802000= + BEGIN COMMENT RELEASE UNIT DISPOSITION PART CASE; 59955000=08802000= EMITL(7); 59965000=08803000= GO EMITREST; 59970000=08803000= END; 59975000=08804000= IF ELCLASS = FACTOP THEN 59980000=08806000= - BEGIN 59985000=08806000= - COMMENT ASTERISK UNTI DISPOSITION PART CASE; 59990000=08806000= + BEGIN COMMENT ASTERISK UNTI DISPOSITION PART CASE; 59985000=08806000= EMITL(1); 59995000=08807000= GO EMITREST; 60000000=08807000= END; 60005000=08808000= IF ELCLASS = DECLARATORS AND ELBAT[I].ADDRESS = SAVEV THEN 60010000=08810000= - BEGIN 60015000=08810000= - COMMENT SAVE UNIT DISPOSITION PART CASE; 60020000=08810000= + BEGIN COMMENT SAVE UNIT DISPOSITION PART CASE; 60015000=08810000= EMITL(3); 60025000=08811000= GO EMITREST; 60030000=08811000= END; 60035000=08812000= IF ACCUM[1] = 6"5PURGE" THEN 60040000=08812100= - BEGIN 60045000=08812100= - COMMENT FILE PURGE; 60050000=08812100= + BEGIN COMMENT FILE PURGE; 60045000=08812100= EMITL(4); 60055000=08812200= GO EMITREST; 60060000=08812200= END; 60065000=08812300= @@ -12847,8 +12812,7 @@ EXIT: 60130000 END CLOSESTMT; 60140000=08824000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%60145000=08824000= PROCEDURE RWNDSTMT; 60150000=08825000= - BEGIN 60155000=08826000= - COMMENT THE REWIND STATEMENT ROUTINE GENERATES CODE THAT 60160000=08826000= + BEGIN COMMENT THE REWIND STATEMENT ROUTINE GENERATES CODE THAT 60155000=08826000= CALLS ON THE FILE CONTROL ROUTINE PASSING TO IT THE 60165000=08827000= FOLLOWING PARAMETERS. 60170000=08828000= **********************************************************60175000=08829000= @@ -12856,16 +12820,13 @@ EXIT: 60130000 - - - - - - - - - - - - - - 60185000=08831000= (0,0,FILE,4); 60190000=08832000= LABEL 60195000=08833000= - EXIT; 60200000=08833000= - COMMENT THE LABEL EXIT APPEARS AFTER THE LAST60205000=08833000= + EXIT; COMMENT THE LABEL EXIT APPEARS AFTER THE LAST60200000=08833000= EXECUTABLE STATEMENT IN THE REWIND ROUTINE; 60210000=08834000= DEFINE 60215000=08835000= - THISL = RR1 #; 60220000=08835000= - COMMENT THISL IS A TEMP CELL 60225000=08835000= + THISL = RR1 #; COMMENT THISL IS A TEMP CELL 60220000=08835000= FOR THE CURRENT L REGISTER; 60230000=08836000= DEFINE 60235000=08837000= - LTEMP = RR2 #; 60240000=08837000= - COMMENT LTEMP SETTING FOR THE60245000=08837000= + LTEMP = RR2 #; COMMENT LTEMP SETTING FOR THE60240000=08837000= L REGISTER SETTING FOR THE 60250000=08838000= SAVE OR RELEASE LITERAL THAT 60255000=08839000= GETS PASSED TO KEN MEYERS; 60260000=08840000= @@ -12876,8 +12837,7 @@ EXIT: 60130000 REWIND STATEMENT; 60285000=08845000= STEPIT; 60290000=08846000= IF NOT RANGE(FILEID, SUPERFILEID) THEN 60295000=08848000= - BEGIN 60300000=08848000= - COMMENT ERROR 461 MEANS IMPROPER FILE PART IN A60305000=08848000= + BEGIN COMMENT ERROR 461 MEANS IMPROPER FILE PART IN A60300000=08848000= REWIND STATEMENT; 60310000=08849000= ERROR(461); 60315000=08850000= GO TO EXIT; 60320000=08850000= @@ -13802,6 +13762,7 @@ COMMENT IF THE POWERS-OF-TEN TABLE HAS BEEN USED, IT IS WRITTEN OUT 64825000 SEGMENT(-69, SGNO, 0); 64865000=09315000= BUILDLINE:= BUILDLINE.[1:1]; 64870000=09315100= END; 64875000=09316000= + 64876000 BEGIN 64880000=09317000= ARRAY 64885000=09317000= PRT[0:7, 0:127], 64890000=09317000= @@ -14466,11 +14427,11 @@ EXIT: 67690000 BEGIN 68165000=10229000= OWN INTEGER 68170000=10230000= CHARCOUNT, 68175000=10230000= - REMCOUNT; 68180000=10230000= - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%68182000 + REMCOUNT; 68180000=10230000= COMMENT CHARCOUNT CONTAINS NUMBER OFCHARACTORS OF THE DEFINE THAT WE68185000=10231000= HAVE PUT INTO INFO. REMCOUNT CONTAINS NUMBER OF CHARACT- 68190000=10232000= ORS REMAINING IN THIS ROW OF INFO; 68195000=10233000= + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%68196000 PROCEDURE PUTOGETHER(CHAR, CX); 68200000=10234000= VALUE 68200100 CX; 68200200 @@ -14659,8 +14620,7 @@ EXIT: 68955000 FORSTMT COMMENT FORCLAUSE; 69060000=10294000= ELSE 69065000=10295000= IF ELCLASS = LFTBRKET THEN 69070000=10296000= - BEGIN 69075000=10296000= - COMMENT GORUP OF LIST ELEMENTS; 69080000=10296000= + BEGIN COMMENT GORUP OF LIST ELEMENTS; 69075000=10296000= DO BEGIN 69085000=10297000= STEPIT; 69090000=10297000= LISTELEMENT 69095000=10297000= @@ -14672,19 +14632,14 @@ EXIT: 68955000 ERR(158) 69125000=10298000= END 69130000=10299000= ELSE 69135000=10299000= - BEGIN 69140000=10299000= - COMMENT THE MEAT OF THE MATTER: 69145000=10299000= + BEGIN COMMENT THE MEAT OF THE MATTER: 69140000=10299000= VARIABLES AND EXPRESSIONS; 69150000=10300000= - L:= (T1:= L)+1; 69155000=10301000= - COMMENT SAVE L FOR LATER FIXUP; 69160000=10301000= - EMITPAIR(LSTRTN, STD); 69165000=10302000= - COMMENT PREPARE LSTRTN FOR 69170000=10302000= + L:= (T1:= L)+1; COMMENT SAVE L FOR LATER FIXUP; 69155000=10301000= + EMITPAIR(LSTRTN, STD); COMMENT PREPARE LSTRTN FOR 69165000=10302000= NEXT TIME AROUND; 69175000=10303000= IF (GT1:= TABLE(I+1) = COMMA OR GT1 = RTPAREN OR GT1 = RTBRKET) 69180000=10307000= - AND ELCLASS >= BOOID AND ELCLASS <= INTID 69185000=10308000= - THEN 69190000=10308000= - BEGIN 69195000=10308000= - COMMENT SIMPLE VARIABLES; 69200000=10308000= + AND ELCLASS >= BOOID AND ELCLASS <= INTID THEN 69185000=10308000= + BEGIN COMMENT SIMPLE VARIABLES; 69195000=10308000= CHECKER(ELBAT[I]); 69205000=10308100= EMITN(ELBAT[I].ADDRESS); 69210000=10309000= STEPIT 69215000=10309000= @@ -14692,8 +14647,7 @@ EXIT: 68955000 ELSE 69225000=10310000= BEGIN 69230000=10310000= IF ELCLASS >= BOOARRAYID AND ELCLASS <= INTARRAYID THEN 69235000=10312000= - BEGIN 69240000=10312000= - COMMENT IS EITHER A SUBCRIPTED VARIABLE 69245000=10312000= + BEGIN COMMENT IS EITHER A SUBCRIPTED VARIABLE 69240000=10312000= OR THE BEGINNING OF AN EXPRESSION. THIS69250000=10313000= SITUATION IS VERY SIMILAR TO THAT IN 69255000=10314000= ACTUALPARAPART (SEE COMMENTS THERE FOR 69260000=10315000= @@ -14788,8 +14742,7 @@ EXIT: 68955000 END LISTGEN; 69705000=10369000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%69710000=10369000= BOOLEAN PROCEDURE MERRIMAC; 69715000=10370000= - BEGIN 69720000=10371000= - COMMENT THIS TIME THE MERRIMAC WILL HANDLE THE MONITOR. 69725000=10371000= + BEGIN COMMENT THIS TIME THE MERRIMAC WILL HANDLE THE MONITOR. 69720000=10371000= 03 JULY 1963 69730000=10372000= THERE ARE SIX TYPES OF MONITOR LIST ELEMENTS. THEY ARE 69735000=10373000= LABELS, SWITCHES, SIMPLE VARIABLES, SUBSCRIPTED VARIABLES,69740000=10374000= @@ -14924,97 +14877,81 @@ EXIT: 68955000 ADDITIONAL INFO. I WILL HAVE A DEFINE 70385000=10503000= FUNCMONFILE = [20:11]#; 70390000=10504000= DEFINE 70395000=10505000= - FILEIDENT = RR7 #; 70400000=10505000= - COMMENT FILEIDENT CONTAINS THE 70405000=10505000= + FILEIDENT = RR7 #; COMMENT FILEIDENT CONTAINS THE 70400000=10505000= ADDRESS OF THE MONITOR FILE; 70410000=10506000= DEFINE 70415000=10507000= - SUBSCRIPT = RR1 #; 70420000=10507000= - COMMENT SUBSCRIPT IS USED TO 70425000=10507000= + SUBSCRIPT = RR1 #; COMMENT SUBSCRIPT IS USED TO 70420000=10507000= SAVE THE ADDRESS OR VALUE OF A 70430000=10508000= SUBSCRIPT. ONE ADDITIONAL BIT IS70435000=10509000= USED TO TELL WHETHER TO EMIT AN 70440000=10510000= OPDC OR A LITC ON THIS ADDRESS OR70445000=10511000= VALUE; 70450000=10512000= DEFINE 70455000=10513000= - NODIM = RR2 #; 70460000=10513000= - COMMENT NODIM CONTAINS THE NUMBER OF70465000=10513000= + NODIM = RR2 #; COMMENT NODIM CONTAINS THE NUMBER OF70460000=10513000= DIMENSIONS OF AN ARRAY OR SUBSCRIPTED70470000=10514000= VARIABLE APPEARING IN A MONITOR LIST;70475000=10515000= DEFINE 70480000=10516000= - INC = RR3 #; 70485000=10516000= - COMMENT INC CONTAINS THE LINK TO 70490000=10516000= + INC = RR3 #; COMMENT INC CONTAINS THE LINK TO 70485000=10516000= ADDITIONAL INFO AND IS USED WHEN MAKING70495000=10517000= A NEW ENTRY IN INFO FOR ARRAYS; 70500000=10518000= DEFINE 70505000=10519000= - ELBATWORD = RR4 #; 70510000=10519000= - COMMENT ELBATWORD CONTAINS THE 70515000=10519000= + ELBATWORD = RR4 #; COMMENT ELBATWORD CONTAINS THE 70510000=10519000= ELBAT WORD FOR A MONITOR LIST 70520000=10520000= ELEMENT; 70525000=10521000= DEFINE 70530000=10522000= - OPLIT = RR4 #; 70535000=10522000= - COMMENT OPLIT IS USED FOR MARKING70540000=10522000= + OPLIT = RR4 #; COMMENT OPLIT IS USED FOR MARKING70535000=10522000= SUBSCRIPTED VARIABLES TO TELL ME 70545000=10523000= WHETHER TO EMIT AN OPDC OR A LITC.70550000=10524000= 0 IS USED FOR OPDC, 1 FOR LITC; 70555000=10525000= DEFINE 70560000=10526000= - TESTVARB = RR5 #; 70565000=10526000= - COMMENT TESTVARB CONTAINS A LINK 70570000=10526000= + TESTVARB = RR5 #; COMMENT TESTVARB CONTAINS A LINK 70565000=10526000= POINTING AT THE END OF ADDITIONAL 70575000=10527000= INFO AND IS USED TO TELL WHEN TO 70580000=10528000= STOP MOVING INFO FOR THE NEW ENTRY70585000=10529000= FOR MONITORED ARRAYS; 70590000=10530000= DEFINE 70595000=10531000= - NXTINFOTEMP = RR6 #; 70600000=10531000= - COMMENT NXTINFOTEMP CONTAINS A70605000=10531000= + NXTINFOTEMP = RR6 #; COMMENT NXTINFOTEMP CONTAINS A70600000=10531000= LINK POINTING AT THE FIRST 70610000=10532000= ADDITIONAL WORD OF INFO FOR 70615000=10533000= MONITORED ARRAYS; 70620000=10534000= DEFINE 70625000=10535000= - INSERTFILE = 20:10:11 #; 70630000=10535000= - COMMENT INSERTFILE IS THE 70635000=10535000= + INSERTFILE = 20:10:11 #; COMMENT INSERTFILE IS THE 70630000=10535000= CONCATENATE DEFINE FOR 70640000=10536000= STUFFING THE MONITOR FILE 70645000=10537000= ADDRESS INTO THE FIRST 70650000=10538000= ADDITIONAL INFO WORD FOR 70655000=10539000= ARRAYS AND FUNCTIONS; 70660000=10540000= DEFINE 70665000=10541000= - NOPARPART = NODIMPART #; 70670000=10541000= - COMMENT NOPARPART IS A 70675000=10541000= + NOPARPART = NODIMPART #; COMMENT NOPARPART IS A 70670000=10541000= PARTIAL WORD DESIGNATOR [4070680000=10542000= :8] USED TO EXTRACT THE 70685000=10543000= NUMBER OF PARAMETERS FOR A 70690000=10544000= GIVEN PROCEDURE FROM INFO; 70695000=10545000= DEFINE 70700000=10546000= - NOPAR = NODIM #; 70705000=10546000= - COMMENT NOPAR CONTAINS THE NUMBER 70710000=10546000= + NOPAR = NODIM #; COMMENT NOPAR CONTAINS THE NUMBER 70705000=10546000= OF PARAMETERS FOR A FUNCTION 70715000=10547000= DESIGNATOR APPEARING IN A MONITOR 70720000=10548000= LIST; 70725000=10549000= LABEL 70730000=10550000= - START; 70735000=10550000= - COMMENT WHEN START IS REACHED, I MUST BE 70740000=10550000= + START; COMMENT WHEN START IS REACHED, I MUST BE 70735000=10550000= POINTING AT THE FILE IDENTIFIER IN THE 70745000=10551000= MONITOR DECLARATION; 70750000=10552000= LABEL 70755000=10553000= - MARKMONITORED; 70760000=10553000= - COMMENT THE CODE AT MARKMONITORED 70765000=10553000= + MARKMONITORED; COMMENT THE CODE AT MARKMONITORED 70760000=10553000= TURNS ON THE MONITOR BIT OF THE ELBAT70770000=10554000= WORD IN THE MONITOR LIST AND STORES 70775000=10555000= IT IN ACCUM[0] FOR THE E ROUTINE; 70780000=10556000= LABEL 70785000=10557000= - STORESUBS; 70790000=10557000= - COMMENT STORESUBS IS THE CODE THAT 70795000=10557000= + STORESUBS; COMMENT STORESUBS IS THE CODE THAT 70790000=10557000= REMEMBERS ALL THAT IS NECESSARY ABOUT 70800000=10558000= EACH SUBSCRIPT EXPRESSION; 70805000=10559000= LABEL 70810000=10560000= - CHKCOMMA; 70815000=10560000= - COMMENT CHKCOMMA REQUIRES THAT I BE 70820000=10560000= + CHKCOMMA; COMMENT CHKCOMMA REQUIRES THAT I BE 70815000=10560000= POINTING THE LAST LOGICAL QUANTITY OF THE 70825000=10561000= MONITOR LIST ELEMENT THAT HAS JUST BEEN 70830000=10562000= PROCESSED; 70835000=10563000= LABEL 70840000=10564000= - EXIT; 70845000=10564000= - COMMENT EXIT EXITS THE MERRIMAC PROCEDURE; 70850000=10564000= + EXIT; COMMENT EXIT EXITS THE MERRIMAC PROCEDURE; 70845000=10564000= START: 70855000=10565000= IF ELCLASS ^= FILEID THEN 70860000=10565000= BEGIN 70865000=10565100= @@ -15036,15 +14973,13 @@ MARKMONITORED: 70940000 STEPIT; 70945000=10573000= ACCUM[0]:= -ABS(ELBAT[I]); 70950000=10573000= IF RANGE(BOOID, INTID) THEN 70955000=10575000= - BEGIN 70960000=10575000= - COMMENT THIS CODE HANDLES SIMPLE VARIABLES; 70965000=10575000= + BEGIN COMMENT THIS CODE HANDLES SIMPLE VARIABLES; 70960000=10575000= E; 70970000=10576000= PUTNBUMP(FILEIDENT); 70975000=10576000= GO CHKCOMMA; 70980000=10577000= END; 70985000=10578000= IF RANGE(BOOARRAYID, INTARRAYID) THEN 70990000=10580000= - BEGIN 70995000=10580000= - COMMENT THIS CODE HANDLES ARRAYS AND 71000000=10580000= + BEGIN COMMENT THIS CODE HANDLES ARRAYS AND 70995000=10580000= SUBSCRIPTED VARIABLES; 71005000=10581000= E; 71010000=10582000= NXTINFOTEMP:= NEXTINFO; 71015000=10582000= @@ -15062,8 +14997,7 @@ MARKMONITORED: 70940000 IF (RR3:= TABLE(I+2) = COMMA OR RR3 = RTBRKET) AND STEPI ^= 71075000=10593000= NONLITNO 71080000=10594000= THEN 71085000=10594000= - BEGIN 71090000=10594000= - COMMENT THIS IS THE SIMPLE CASE OF 71095000=10594000= + BEGIN COMMENT THIS IS THE SIMPLE CASE OF 71090000=10594000= SUBSCRIPTED VARIABLES. EITHER A LITC 71100000=10595000= OR AN OPDC ON A VARIABLE IS ALL THAT 71105000=10596000= IS NEEDED TO CALL THE SUBSCRIPT; 71110000=10597000= @@ -15072,16 +15006,13 @@ MARKMONITORED: 70940000 IF NOT RANGE(INTRNSICPROCID, INTID) THEN 71125000=10600000= IF CHECK(LITNO, 402) THEN 71130000=10601000= GO TO EXIT 71135000=10602000= - ELSE 71140000=10602000= - COMMENT MARK FOR LITC; 71145000=10602000= - OPLIT:= 1; 71150000=10603000= - COMMENT ERROR 402 IS BAD 71155000=10604000= + ELSE COMMENT MARK FOR LITC; 71140000=10602000= + OPLIT:= 1; COMMENT ERROR 402 IS BAD 71150000=10603000= SUBSCRIPT IN MONITOR DECLARATION;71160000=10605000= STEPIT; 71165000=10606000= END 71170000=10608000= ELSE 71175000=10608000= - BEGIN 71180000=10608000= - COMMENT THIS IS THE SPECIAL CASE OF 71185000=10608000= + BEGIN COMMENT THIS IS THE SPECIAL CASE OF 71180000=10608000= SUBSCRIPTED VARIABLES. CODE FOR THIS 71190000=10609000= SUBSCRIPT EXPRESSION MUST BE GENERATED71195000=10610000= AND JUMPED AROUND, AN ACCIDENTAL ENTRY71200000=10611000= @@ -15095,8 +15026,7 @@ MARKMONITORED: 70940000 JUMPCHKX; 71240000=10616500= OPLIT:= 0; 71245000=10617000= IF MODE > 0 THEN 71250000=10619000= - BEGIN 71255000=10619000= - COMMENT STUFF F AT THIS 71260000=10619000= + BEGIN COMMENT STUFF F AT THIS 71255000=10619000= POINT IF MODE > 0; 71265000=10620000= STUFFF(SUBSCRIPT); 71270000=10621000= EMITPAIR(SUBSCRIPT, STD); 71275000=10622000= @@ -15107,12 +15037,10 @@ MARKMONITORED: 70940000 IF ELCLASS = COMMA THEN 71300000=10629000= GO TO STORESUBS; 71305000=10629000= IF CHECK(RTBRKET, 403) THEN 71310000=10631000= - GO TO EXIT; 71315000=10631000= - COMMENT ERROR 403 IS IMPROPER SUBSCRIPT 71320000=10632000= + GO TO EXIT; COMMENT ERROR 403 IS IMPROPER SUBSCRIPT 71315000=10631000= EXPRESSION DELIMITER IN MONITOR LIST ELEMENT; 71325000=10633000= IF NXTINFOTEMP ^= TESTVARB THEN 71330000=10635000= - BEGIN 71335000=10635000= - COMMENT ERROR 404 MONITOR LIST 71340000=10635000= + BEGIN COMMENT ERROR 404 MONITOR LIST 71335000=10635000= ELEMENT HAS IMPROPER NUMBER OF 71345000=10636000= SUBSCRIPTS; 71350000=10637000= I:= I-1; 71355000=10638000= @@ -15122,11 +15050,9 @@ MARKMONITORED: 70940000 GO CHKCOMMA; 71375000=10640000= END; 71380000=10641000= IF ELCLASS = LABELID OR ELCLASS = SWITCHID THEN 71385000=10643000= - BEGIN 71390000=10643000= - COMMENT THIS CODE HANDLES LABELS AND SWITCHES; 71395000=10643000= + BEGIN COMMENT THIS CODE HANDLES LABELS AND SWITCHES; 71390000=10643000= IF (ELBATWORD:= ELBAT[I]).LVL ^= LEVEL THEN 71400000=10645000= - BEGIN 71405000=10645000= - COMMENT ERROR 405 MEANS LABEL OR 71410000=10645000= + BEGIN COMMENT ERROR 405 MEANS LABEL OR 71405000=10645000= SWITCH MONITORED AT IMPROPER LEVEL; 71415000=10646000= ERROR(405); 71420000=10647000= GO TO EXIT; 71425000=10647000= @@ -15136,8 +15062,7 @@ MARKMONITORED: 70940000 GO CHKCOMMA; 71445000=10652000= END; 71450000=10653000= IF RANGE(BOOPROCID, INTPROCID) THEN 71455000=10655000= - BEGIN 71460000=10655000= - COMMENT THIS CODE HANDLES FUNCTIONS; 71465000=10655000= + BEGIN COMMENT THIS CODE HANDLES FUNCTIONS; 71460000=10655000= E; % 71470000=10656000= IF LEVEL = (RR2:= ELBAT[I]).LVL THEN 71475000=10656010= BEGIN 71480000=10656011= @@ -15177,8 +15102,7 @@ EXIT: 71640000 END MERRIMAC; 71650000=10680000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%71655000=10680000= PROCEDURE DMUP; 71660000=10681000= - BEGIN 71665000=10682000= - COMMENT 15 JULY 1963 71670000=10682000= + BEGIN COMMENT 15 JULY 1963 71665000=10682000= THERE ARE FOUR TYPES OF DUMP LIST ELEMENTS. THERE 71675000=10683000= ARE LABELS, SIMPLE VARIABLES, SUBSCRIPTED VARIABLES, AND 71680000=10684000= ARRAYS. 71685000=10685000= @@ -15398,8 +15322,7 @@ STARTCALL: 72530000 GO TO SUBSLOOP; COMMENT ERROR 412 MEANS DUMP LIST 72900000 ELEMENT HAS WRONG NUMBER OF SUBSCRIPTS72910000=10859000= ; 72915000=10860000= - END; 72920000=10861000= - COMMENT THIS CODE HANDLES ARRAYS; 72925000=10862000= + END; COMMENT THIS CODE HANDLES ARRAYS; 72920000=10861000= IF ELCLASS ^= COMMA AND ELCLASS ^= RTPAREN THEN 72930000=10864000= BEGIN COMMENT ERROR 413 MEANS IMPROPER 72935000 ARRAY DUMP LIST ELEMENT; 72945000=10865000= @@ -15505,8 +15428,7 @@ ELSE DUMPETEMP)[DUMPE], GIT(ELBATWORD)); 73295000 GO TO START; 73470000=10933000= END; 73475000=10934000= IF CHECK(SEMICOLON, 419) THEN 73480000=10936000= - ; 73485000=10936000= - COMMENT ERROR 419 MEANS IMPROPER DUMP DEC DELIMITER; 73490000=10937000= + ; COMMENT ERROR 419 MEANS IMPROPER DUMP DEC DELIMITER; 73485000=10936000= EXIT: 73495000=10938000= ; 73500000=10938000= END DMUP; 73505000=10939000= @@ -16315,8 +16237,7 @@ START: 77375000 IF SPECTOG THEN 77425000=13196370= GO TO OVER; 77430000=13196370= IF ELCLASS ^= ASSIGNOP THEN 77435000=13196380= - FLAG(41); 77440000=13196380= - COMMENT MISSING :=; 77445000=13196390= + FLAG(41); COMMENT MISSING :=; 77440000=13196380= EMITO(MKS); 77450000=13196400= CHECKDISJOINT(ADDRSF); 77455000=13196410= G:= L; 77460000=13196420= @@ -16324,8 +16245,7 @@ START: 77375000 EMITL(1); 77470000=13196430= EMITL(1); 77475000=13196440= EMITL(1); 77480000=13196450= - EMITV(5); 77485000=13196460= - COMMENT CREATE AN ARRAY TO HOLD 77490000=13196460= + 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= J:= -1; 77505000=13196490= @@ -16339,8 +16259,7 @@ START: 77375000 PASSLIST; 77545000=13196540= EMITL(J:= J+1); 77550000=13196550= EMITN(ADDRSF); 77555000=13196560= - EMITO(STD); 77560000=13196570= - COMMENT STORE LIST DESC IN ARRAY;77565000=13196570= + EMITO(STD); COMMENT STORE LIST DESC IN ARRAY;77560000=13196570= END 77570000=13196590= UNTIL ELCLASS ^= COMMA; 77575000=13196590= GT2:= L; 77580000=13196600= @@ -16500,7 +16419,7 @@ COMMENT 78320000 BEGIN 78350000=13300000= REAL 78355000=13301000= WORDCOUNT, 78360000=13301000= - RINX; 78365000=13301000= + RINX; 78365000=13301000= IF RINX:= (NEXTINFO+WORDCOUNT:= (COUNT+18) DIV 8).LINKR ^= NEXTINFO.78370000=13303000= LINKR 78375000=13304000= THEN 78380000=13304000= @@ -16591,8 +16510,8 @@ COMMENT 78620000 IF LEVELF = LEVEL THEN % DUPLICATE DECLARATION 78805000=13339500= FLAG(1); 78810000=13340000= VONF:= P2; 78815000=13341000= - IF((FORMALF:= PTOG) OR(STREAMTOG AND NOT STOPGSP)) AND NOT P278820000=13343000= - THEN 78825000=13343000= + IF((FORMALF:= PTOG) OR(STREAMTOG AND NOT STOPGSP)) AND NOT 78820000=13343000= + P2 THEN 78825000=13343000= ADDRSF:= PJ:= PJ+1 78830000=13344000= ELSE 78835000=13344000= IF STOPGSP THEN 78840000=13344000= @@ -16601,8 +16520,7 @@ COMMENT 78620000 ADDRSF:= GETSPACE(P2, 1); % ID IN ACCUM[1]. 78855000=13345000= IF TYPE <= INTARRAYID AND TYPE >= BOOARRAYID THEN 78860000=13347000= IF P2 THEN 78865000=13347000= - BEGIN 78870000=13347000= - COMMENT OWN ARRAY; 78875000=13347000= + BEGIN COMMENT OWN ARRAY; 78870000=13347000= EMITL(ADDRSF); 78880000=13347500= EMITN(10); 78885000=13347500= END 78890000=13347520= @@ -16629,8 +16547,8 @@ COMMENT 78975000 BEGIN 78995000=13358000= REAL 79000000=13359000= LINKT, 79005000=13359000= - A, 79010000=13359000= - LINKP; 79015000=13359000= + A, 79010000=13359000= + LINKP; 79015000=13359000= LABEL 79020000=13360000= L; 79025000=13360000= LINKT:= STACKHEAD[SCRAM]; 79030000=13361000= @@ -16733,28 +16651,28 @@ COMMENT 79160000 BEGIN 79515000=13448000= REAL 79520000=13449000= T1, 79525000=13449000= - T2, 79530000=13449000= - T3, 79535000=13449000= - K, 79540000=13449000= - LBJ, 79545000=13449000= - ARPROGS, 79550000=13449000= - SAVEDIM, 79555000=13449000= - T, 79560000=13449000= - T4, 79565000=13449000= - SAVEINFO, 79570000=13449000= - SAVEINFO2; 79575000=13449000= + T2, 79530000=13449000= + T3, 79535000=13449000= + K, 79540000=13449000= + LBJ, 79545000=13449000= + ARPROGS, 79550000=13449000= + SAVEDIM, 79555000=13449000= + T, 79560000=13449000= + T4, 79565000=13449000= + SAVEINFO, 79570000=13449000= + SAVEINFO2; 79575000=13449000= BOOLEAN 79580000=13450000= LLITOG, 79585000=13450000= - ULITOG; 79590000=13450000= + ULITOG; 79590000=13450000= REAL 79595000=13451000= ADDCON; 79600000=13451000= LABEL 79605000=13452000= CSZ, 79610000=13452000= - BETA1, 79615000=13452000= - TWO, 79620000=13452000= - START, 79625000=13452000= - SLB, 79630000=13452000= - BETA2; 79635000=13452000= + BETA1, 79615000=13452000= + TWO, 79620000=13452000= + START, 79625000=13452000= + SLB, 79630000=13452000= + BETA2; 79635000=13452000= ARRAYFLAG:= TRUE; 79640000=13452100= TYPEV:= REALARRAYID; 79645000=13453000= IF T1:= GTA1[J:= J-1] = 0 THEN 79650000=13454000= @@ -17070,21 +16988,21 @@ COMMENT JUMPCHKNX DETERMINES WHETHER ANY EXECUTABLE CODE HAS BEEN 80760000 PROCEDURE HTTEOAP(GOTSTORAGE, RELAD, STOPPER, PRTAD); 81205000=13731000= VALUE 81210000=13732000= GOTSTORAGE, 81215000=13732000= - RELAD, 81220000=13732000= - STOPPER, 81225000=13732000= - PRTAD; 81230000=13732000= + RELAD, 81220000=13732000= + STOPPER, 81225000=13732000= + PRTAD; 81230000=13732000= BOOLEAN 81235000=13733000= GOTSTORAGE; 81240000=13733000= REAL 81245000=13734000= RELAD, 81250000=13734000= - STOPPER, 81255000=13734000= - PRTAD; 81260000=13734000= + STOPPER, 81255000=13734000= + PRTAD; 81260000=13734000= BEGIN 81265000=13735000= BOOLEAN 81270000=13736000= BT; 81275000=13736000= REAL 81280000=13737000= K, 81285000=13737000= - LS; 81290000=13737000= + LS; 81290000=13737000= LS:= RELAD; 81295000=13738000= BT:= JUMPCTR = LEVEL; 81300000=13739000= IF FUNCTOG THEN 81305000=13741000= @@ -17256,8 +17174,7 @@ L: GT1:= (2*SGAVL-1) & 2[43:1:2]; 81620000 BEGIN 82135000=13911100= IF TABLE(I+1) = ASSIGNOP THEN 82140000=13911100= BEGIN 82145000=13911200= - STEPIT; 82150000=13911200= - COMMENT OVER THE :=; 82155000=13911200= + STEPIT; COMMENT OVER THE :=; 82150000=13911200= IF GT1:= STEPI > IDMAX AND GT1 < FAULTID THEN 82160000=13911300= ERR(3); 82165000=13911300= LEVELF:= ELBAT[I].LVL; 82170000=13911400= @@ -17278,8 +17195,7 @@ L: GT1:= (2*SGAVL-1) & 2[43:1:2]; 81620000 EMITPAIR(ADDRSF, STD); 82245000=13915000= END; 82250000=13915000= EMITN(ADDRSF); 82255000=13915000= - EMIT(3"74"6"E"); 82260000=13916000= - COMMENT C-TO-F; 82265000=13916000= + EMIT(3"74"6"E"); COMMENT C-TO-F; 82260000=13916000= MAKEUPACCUM; 82270000=13917000= E; 82275000=13917000= STEPIT 82280000=13918000= @@ -17311,52 +17227,52 @@ COMMENT SOP IS TRUE IF THE BLOCK WAS CALLED BY ITSELF THROUGH THE 82370000 BEGIN 82410000=14012000= LABEL 82415000=14013000= OWNERR, 82420000=14013000= - SAVERR, 82425000=14013000= - BOOLEANDEC, 82430000=14013000= - REALDEC, 82435000=14013000= - ALPHADEC, 82440000=14013000= - INTEGERDEC, 82445000=14014000= - LABELDEC, 82450000=14014000= - DUMPDEC, 82455000=14014000= - LISTDEC, 82460000=14014000= - OUTDEC, 82465000=14014000= - INDEC, 82470000=14014000= - MONITORDEC, 82475000=14015000= - SWITCHDEC, 82480000=14015000= - PROCEDUREDEC, 82485000=14015000= - ARRAYDEC, 82490000=14015000= - FORMATDEC, 82495000=14015000= - FILEDEC, 82500000=14016000= - GOTSCHK, 82505000=14016000= - FIELDDEC, 82510000=14016000= - AUXMEMERR, 82515000=14017000= - STREAMERR, 82520000=14017000= - DEFINEDEC, 82525000=14017000= - CALLSTATEMENT, 82530000=14017000= - HF, 82535000=14017000= - START; 82540000=14017000= + SAVERR, 82425000=14013000= + BOOLEANDEC, 82430000=14013000= + REALDEC, 82435000=14013000= + ALPHADEC, 82440000=14013000= + INTEGERDEC, 82445000=14014000= + LABELDEC, 82450000=14014000= + DUMPDEC, 82455000=14014000= + LISTDEC, 82460000=14014000= + OUTDEC, 82465000=14014000= + INDEC, 82470000=14014000= + MONITORDEC, 82475000=14015000= + SWITCHDEC, 82480000=14015000= + PROCEDUREDEC, 82485000=14015000= + ARRAYDEC, 82490000=14015000= + FORMATDEC, 82495000=14015000= + FILEDEC, 82500000=14016000= + GOTSCHK, 82505000=14016000= + FIELDDEC, 82510000=14016000= + AUXMEMERR, 82515000=14017000= + STREAMERR, 82520000=14017000= + DEFINEDEC, 82525000=14017000= + CALLSTATEMENT, 82530000=14017000= + HF, 82535000=14017000= + START; 82540000=14017000= SWITCH 82545000=14018000= DECLSW:= OWNERR, 82550000=14018000= - SAVERR, 82555000=14018000= - BOOLEANDEC, 82560000=14018000= - REALDEC, 82565000=14018000= - ALPHADEC, 82570000=14018000= - INTEGERDEC, 82575000=14019000= - LABELDEC, 82580000=14019000= - DUMPDEC, 82585000=14019000= - LISTDEC, 82590000=14019000= - OUTDEC, 82595000=14019000= - INDEC, 82600000=14019000= - MONITORDEC, 82605000=14020000= - SWITCHDEC, 82610000=14020000= - PROCEDUREDEC, 82615000=14020000= - ARRAYDEC, 82620000=14020000= - FORMATDEC, 82625000=14020000= - FILEDEC, 82630000=14021000= - STREAMERR, 82635000=14021000= - DEFINEDEC, 82640000=14021000= - AUXMEMERR, 82645000=14021000= - FIELDDEC; 82650000=14021000= + SAVERR, 82555000=14018000= + BOOLEANDEC, 82560000=14018000= + REALDEC, 82565000=14018000= + ALPHADEC, 82570000=14018000= + INTEGERDEC, 82575000=14019000= + LABELDEC, 82580000=14019000= + DUMPDEC, 82585000=14019000= + LISTDEC, 82590000=14019000= + OUTDEC, 82595000=14019000= + INDEC, 82600000=14019000= + MONITORDEC, 82605000=14020000= + SWITCHDEC, 82610000=14020000= + PROCEDUREDEC, 82615000=14020000= + ARRAYDEC, 82620000=14020000= + FORMATDEC, 82625000=14020000= + FILEDEC, 82630000=14021000= + STREAMERR, 82635000=14021000= + DEFINEDEC, 82640000=14021000= + AUXMEMERR, 82645000=14021000= + FIELDDEC; 82650000=14021000= DEFINE 82655000=14022000= NLOCS = 10 #, 82660000=14022000= LOCBEGIN = PRTI #, 82665000=14023000= @@ -17377,8 +17293,7 @@ COMMENT SOP IS TRUE IF THE BLOCK WAS CALLED BY ITSELF THROUGH THE 82370000 BOOLEAN 82740000=14025000= GOTSTORAGE; 82745000=14025000= BOOLEAN 82750000=14025100= - FWDTOG; 82755000=14025100= - COMMENT PREVIOUS FORWARD DECLARATION INDICATOR; 82760000=14025100= + FWDTOG; COMMENT PREVIOUS FORWARD DECLARATION INDICATOR; 82755000=14025100= INTEGER 82765000=14026000= PINFOO, 82770000=14026000= BLKAD; 82775000=14026000= @@ -17515,8 +17430,7 @@ START: 83180000 G.ADDRESS:= F:= F+1; 83430000=14115000= PUT(G, BUP); 83435000=14116000= G.INCR:= GT1; 83440000=14116000= - IF FWDTOG THEN 83445000=14116100= - COMMENT CHECK CORRESPONDENCE W/ FWD; 83450000=14116100= + IF FWDTOG THEN COMMENT CHECK CORRESPONDENCE W/ FWD; 83445000=14116100= BEGIN 83455000=14116200= IF (GT1:= TAKE(MARK+PJ)).CLASS ^= G.CLASS 83460000=14116400= COMMENT CLASS ERROR; 83465000=14116400= @@ -17581,8 +17495,7 @@ INTEGERDEC: 83745000 GO TO START; 83760000=14141000= MONITORDEC: 83765000=14142000= IF SPECTOG THEN 83770000=14143000= - BEGIN 83775000=14143000= - COMMENT ERROR 463 MEANS THAT A MONITOR 83780000=14143000= + BEGIN COMMENT ERROR 463 MEANS THAT A MONITOR 83775000=14143000= DECLARATION APPEARS IN THE SPECIFICATION 83785000=14144000= PART OF A PROCEDURE; 83790000=14145000= FLAG(463); 83795000=14146000= @@ -17595,8 +17508,7 @@ MONITORDEC: 83765000 GO START; 83830000=14148000= DUMPDEC: 83835000=14149000= IF SPECTOG THEN 83840000=14150000= - BEGIN 83845000=14150000= - COMMENT ERROR 464 MEANS A DUMP DECLARATION 83850000=14150000= + BEGIN COMMENT ERROR 464 MEANS A DUMP DECLARATION 83845000=14150000= APPEARS IN THE SPECIFICATION PART OF A 83855000=14151000= PROCEDURE; 83860000=14152000= FLAG(464); 83865000=14153000= @@ -17762,10 +17674,10 @@ DEFINEDEC: 84650000 START; 84665000=14254050= REAL 84670000=14254100= J, 84675000=14254100= - K, 84680000=14254100= - DINFO, 84685000=14254100= - LINKA, 84690000=14254100= - LINKB; 84695000=14254100= + K, 84680000=14254100= + DINFO, 84685000=14254100= + LINKA, 84690000=14254100= + LINKB; 84695000=14254100= STOPENTRY:= STOPGSP:= TRUE; 84700000=14255000= I:= I-1; 84705000=14255000= DEFINING:= BOOLEAN(REAL(DEFINING) & 1[0:0:1]); 84710000=14255500= @@ -17816,8 +17728,7 @@ DEFINEDEC: 84650000 END; 84935000=14259160= IF ELCLASS ^= RELOP OR ACCUM[1] ^= 6"1=0000" THEN 84940000=14261000= BEGIN 84945000=14262000= - FLAG(45); 84950000=14263000= - COMMENT ERROR 45 IS NO = FOLLOWING DEFINE ID; 84955000=14263100= + FLAG(45); COMMENT ERROR 45 IS NO = FOLLOWING DEFINE ID; 84950000=14263000= I:= I-1; 84960000=14264000= END; 84965000=14265000= MACROID:= TRUE; 84970000=14265900= @@ -17902,10 +17813,10 @@ PROCEDUREDEC: 85360000 BEGIN 85365000=14271000= LABEL 85370000=14272000= START, 85375000=14272000= - START1; 85380000=14272000= + START1; 85380000=14272000= LABEL 85385000=14273000= START2, 85390000=14273000= - DOITANYWAY; 85395000=14273000= + DOITANYWAY; 85395000=14273000= COMMENT FWDTOG NOW GLOBAL TO BLOCK; 85400000=14274000= IF NOT SPECTOG THEN 85405000=14275000= FUNCTOG:= FALSE; 85410000=14275000= @@ -18385,8 +18296,7 @@ CALLSTATEMENT: 87135000 ADJUST; 87785000=14600000= G:= PROGDESCBLDR(LDES, L, ADDRSF); 87790000=14601000= IF ELCLASS = FACTOP THEN 87795000=14601100= - BEGIN 87800000=14601200= - COMMENT SPECIAL CASE FOR COBOL ONLY; 87805000=14601200= + BEGIN COMMENT SPECIAL CASE FOR COBOL ONLY; 87800000=14601200= STEPIT; 87810000=14601700= END; 87815000=14601800= END; 87820000=14602000= @@ -18416,8 +18326,7 @@ CALLSTATEMENT: 87135000 ELBATWORD; 87940000=15003000= BOOLEAN 87945000=15003010= TYPEDPROC; 87950000=15003010= - BEGIN 87955000=15004000= - COMMENT CALL SIMPLE MONITOR IS USED TO CALL PRINTI FOR 87960000=15004000= + BEGIN COMMENT CALL SIMPLE MONITOR IS USED TO CALL PRINTI FOR 87955000=15004000= SIMPLE VARIABLES. SEE THE MERRIMAC ROUTINE FOR A 87965000=15005000= DESCRIPTION OF PRINTI; 87970000=15006000= EMITPAIR(JUNK, SND); 87975000=15007000= @@ -18449,21 +18358,17 @@ CALLSTATEMENT: 87135000 ELBATWORD; 88105000=15021000= REAL 88110000=15022000= ELBATWORD; 88115000=15022000= - BEGIN 88120000=15023000= - COMMENT PASSALPHA GENERATES CODE THAT PASSES THE ID 88125000=15023000= + BEGIN COMMENT PASSALPHA GENERATES CODE THAT PASSES THE ID 88120000=15023000= PARAMETER TO PRINTI; 88130000=15024000= DEFINE 88135000=15025000= - SIZEALPHA = RR9 #; 88140000=15025000= - COMMENT SIZEALPHA CONTAINS THE 88145000=15025000= + SIZEALPHA = RR9 #; COMMENT SIZEALPHA CONTAINS THE 88140000=15025000= LENGTH OF THE ALPHA FOR THE 88150000=15026000= VARIABLE DESCRIBED BY ELBATWORD; 88155000=15027000= DEFINE 88160000=15028000= - INDEX = RR10 #; 88165000=15028000= - COMMENT INDEX CONTAINS THE INDEX 88170000=15028000= + INDEX = RR10 #; COMMENT INDEX CONTAINS THE INDEX 88165000=15028000= INTO INFO FOR ID. INFO[INDEX] = ID; 88175000=15029000= DEFINE 88180000=15030000= - LTEMP = RR11 #; 88185000=15030000= - COMMENT LTEMP IS A TEMP FOR L; 88190000=15030000= + LTEMP = RR11 #; COMMENT LTEMP IS A TEMP FOR L; 88185000=15030000= EMITV(IF BOOLEAN(L.[1:1]) THEN CPLUS2 ELSE CPLUS1); 88195000=15033000= LTEMP:= BUMPL; 88200000=15033000= EMITWORD(GETALPHA( 88205000=15037000= @@ -18511,8 +18416,7 @@ CALLSTATEMENT: 87135000 TALL, COMMENT ELBAT WORD FOR VARIABLE; 88415000=15072000= T1, COMMENT 1ST INTEGER OF PARTIAL WORD SYNTAX; 88420000 T2, COMMENT 2ND INTEGER OF PARTIAL WORD SYNTAX; 88425000 - J; 88430000 - COMMENT SUBSCRIPT COUNTER ; 88435000=15075000= + J; COMMENT SUBSCRIPT COUNTER ; 88430000 REAL 88440000=15075500= X, 88445000=15075500= Z; 88450000 @@ -18541,7 +18445,7 @@ COMMENT 211 VARIABLE-FUNCTION IDENTIFIER USED OUTSIDE OF ITS SCOPE*; 88530000 BEGIN 88560000=15087000= LABEL 88565000=15088000= L1, 88570000=15088000= - EXIT; 88575000=15088000= + EXIT; 88575000=15088000= DEFINE 88580000=15089000= FORMALNAME = [38:2] = 2 #; 88585000=15089000= J:= ELCLASS; 88590000=15089010= @@ -18680,53 +18584,45 @@ COMMENT 201 VARIABLE- A PARTIAL WORD DESIGNATOR IS NOT THE * 88950000 BEGIN 89255000=15183000= LABEL 89260000=15184000= EXIT, 89265000=15184000= - LAST, 89270000=15184000= - NEXT; 89275000=15184000= + LAST, 89270000=15184000= + NEXT; 89275000=15184000= INTEGER 89280000=15184100= THENUMBEROFDECLAREDDIMENSIONS; 89285000=15184100= DEFINE 89290000=15185000= - NODIM = RR1 #; 89295000=15185000= - COMMENT NODIM CONTAINS THE NUMBER OF89300000=15185000= + NODIM = RR1 #; COMMENT NODIM CONTAINS THE NUMBER OF89295000=15185000= DIMENSIONS OF A MONITORED SUBSCRIPTED 89305000=15186000= VARIABLE; 89310000=15187000= DEFINE 89315000=15188000= - TESTVARB = RR2 #; 89320000=15188000= - COMMENT TESTVARB CONTAINS THE 89325000=15188000= + TESTVARB = RR2 #; COMMENT TESTVARB CONTAINS THE 89320000=15188000= INDEX OF THE LAST ENTRY IN INFO 89330000=15189000= FOR A MONITORED SUBSCRIPTED 89335000=15190000= VARIABLE; 89340000=15191000= DEFINE 89345000=15192000= - INC = RR3 #; 89350000=15192000= - COMMENT INC IS A COUNTER USED TO INDEX89355000=15192000= + INC = RR3 #; COMMENT INC IS A COUNTER USED TO INDEX89350000=15192000= INTO INFO TO PICK OUT SPECIAL MONITOR 89360000=15193000= INFORMATION; 89365000=15194000= DEFINE 89370000=15195000= - SPMON = [36:12] #; 89375000=15195000= - COMMENT SPMON DESIGNATES THE BIT89380000=15195000= + SPMON = [36:12] #; COMMENT SPMON DESIGNATES THE BIT89375000=15195000= POSITION OF THE SPECIAL MONITOR 89385000=15196000= INFORMATION FOR SUBSCRIPTED 89390000=15197000= VARIABLES; 89395000=15198000= DEFINE 89400000=15199000= - OPBIT = [36:1] #; 89405000=15199000= - COMMENT OPBIT TELLS WHETHER TO 89410000=15199000= + OPBIT = [36:1] #; COMMENT OPBIT TELLS WHETHER TO 89405000=15199000= EMIT AN OPDC OR LITC FOR PASSING 89415000=15200000= THE SUBSCRIPTS FOR MONITORED 89420000=15201000= SUBSCRIPTED VARIABLES.1 MEANS 89425000=15202000= LITC, 0 MEANS OPDC; 89430000=15203000= DEFINE 89435000=15204000= - LWRBND = RR4 #; 89440000=15204000= - COMMENT LWRBND HOLDS THE LOWER 89445000=15204000= + LWRBND = RR4 #; COMMENT LWRBND HOLDS THE LOWER 89440000=15204000= BOUND WORD FROM INFO FOR MONITORED 89450000=15205000= SUBSCRIPTED VARIABLES; 89455000=15206000= DEFINE 89460000=15207000= - SPMONADR = [35:11] #; 89465000=15207000= - COMMENT SPMONADR CONTAINS 89470000=15207000= + SPMONADR = [35:11] #; COMMENT SPMONADR CONTAINS 89465000=15207000= THE ADDRESS THAT WILL BE 89475000=15208000= EMITTED IN AN OPDC OR LITC 89480000=15209000= DEPENDING ON OPBIT; 89485000=15210000= BOOLEAN 89490000=15211000= - SPCLMON; 89495000=15211000= - COMMENT SPCLMON IS A BOOLEAN THAT89500000=15211000= + SPCLMON; COMMENT SPCLMON IS A BOOLEAN THAT89495000=15211000= IS SET TRUE IF THE VARIABLE IN 89505000=15212000= TALL IS SPECIAL MONITORED. 89510000=15213000= ; 89515000=15214000= @@ -18740,23 +18636,19 @@ COMMENT 201 VARIABLE- A PARTIAL WORD DESIGNATOR IS NOT THE * 88950000 BEGIN 89555000=15217500= STACKCT:= 1; 89560000=15217500= IF J = 1 THEN 89565000=15219000= - BEGIN 89570000=15219000= - COMMENT FIRST TIME AROUND; 89575000=15219000= + BEGIN COMMENT FIRST TIME AROUND; 89570000=15219000= IF TALL < 0 THEN 89580000=15221000= - BEGIN 89585000=15221000= - COMMENT TALL IS MONITORED; 89590000=15221000= + BEGIN COMMENT TALL IS MONITORED; 89585000=15221000= EMITV(JUNK); 89595000=15222000= EMITO(XCH); 89600000=15222000= END; 89605000=15223000= EMITN(TALL.ADDRESS) 89610000=15225000= END 89615000=15226000= ELSE 89620000=15226000= - BEGIN 89625000=15226000= - COMMENT NOT THE FIRST TIME AROUND; 89630000=15226000= + BEGIN COMMENT NOT THE FIRST TIME AROUND; 89625000=15226000= EMITO(CDC); 89635000=15227000= IF TALL < 0 THEN 89640000=15229000= - BEGIN 89645000=15229000= - COMMENT CALL SUBSCRIPT; 89650000=15229000= + BEGIN COMMENT CALL SUBSCRIPT; 89645000=15229000= EMITV(JUNK); 89655000=15230000= EMITO(XCH); 89660000=15230000= END; 89665000=15231000= @@ -18779,13 +18671,11 @@ COMMENT 207 VARIABLE-MISSING LEFTBRACKET ON SUBSCRIPTED VARIABLE *; 89730000 IF TALL < 0 THEN 89750000=15237000= 89755000=15238000= COMMENT **** MONITOR FUNCTION M1 GOES HERE ; 89760000=15238000= - BEGIN 89765000=15239000= - COMMENT THIS MAY BE A MONITORED SUBSCRIPTED 89770000=15239000= + BEGIN COMMENT THIS MAY BE A MONITORED SUBSCRIPTED 89765000=15239000= VARIABLE; 89775000=15240000= EMITO(MKS); 89780000=15241000= IF SPCLMON:= TAKE(GIT(TALL)+1).SPMON ^= 0 THEN 89785000=15243000= - BEGIN 89790000=15243000= - COMMENT THIS IS SPECIAL MONITORED; 89795000=15243000= + BEGIN COMMENT THIS IS SPECIAL MONITORED; 89790000=15243000= TESTVARB:= (NODIM:= TAKE(INC:= GIT(TALL)).NODIMPART)+INC; 89800000=15245000= DO 89805000=15246000= IF BOOLEAN(LWRBND:= TAKE(INC:= INC+1)).OPBIT THEN 89810000=15248000= @@ -18845,8 +18735,7 @@ COMMENT 205 VARIABLE- A ROW DESIGNATER APPEARS OUTSIDE OF A FILL * 90060000 90080000=15268000= COMMENT ***** MONITOR FUNCTION M2 GOES HERE ; 90085000=15268000= IF TALL < 0 THEN 90090000=15269000= - BEGIN 90095000=15270000= - COMMENT DO NOT MONITOR AFTER ALL; 90100000=15270000= + BEGIN COMMENT DO NOT MONITOR AFTER ALL; 90095000=15270000= EMITNUM(5 & CARDNUMBER[46:43:44]); 90105000=15271000= EMITN(GNAT(PRINTI)); 90110000=15271100= END; 90115000=15272000= @@ -18982,8 +18871,7 @@ COMMENT ***** MONITOR FUNCTION M6 GOES BEFORE EMITO(XCH); 90530000 ELSE 90770000=15347000= 90775000=15347000= COMMENT ***** MONITOR FUNCTION M10 GOES HERE ; 90780000=15347000= - BEGIN 90785000=15348000= - COMMENT MONITOR FUNCTION M10; 90790000=15348000= + BEGIN COMMENT MONITOR FUNCTION M10; 90785000=15348000= SPCLMON:= P1 = FP OR ELCLASS >= AMPERSAND; 90795000=15349000= IF J = 1 THEN 90800000=15351000= IF SPCLMON THEN 90805000=15352000= @@ -18993,8 +18881,7 @@ COMMENT ***** MONITOR FUNCTION M10 GOES HERE ; 90780000 ELSE 90825000=15354000= EMITO(IF SPCLMON THEN COC ELSE CDC); 90830000=15356000= IF TALL < 0 THEN 90835000=15358000= - BEGIN 90840000=15358000= - COMMENT DO NOT MONITOR AFTER ALL; 90845000=15358000= + BEGIN COMMENT DO NOT MONITOR AFTER ALL; 90840000=15358000= EMITNUM(5 & CARDNUMBER[46:43:44]); 90850000=15359000= IF SPCLMON THEN 90855000=15361000= EMITV(GNAT(PRINTI)) 90860000=15362000= @@ -19028,8 +18915,7 @@ COMMENT 210 VARIABLE-MISSING LEFT ARROW OR PERIOD. *;90940000 91000000=15371000= COMMENT ***** MONITOR FUNCTION M9 ; 91005000=15371000= IF TALL < 0 THEN 91010000=15373000= - BEGIN 91015000=15373000= - COMMENT MONITOR FUNCTION M9; 91020000=15373000= + BEGIN COMMENT MONITOR FUNCTION M9; 91015000=15373000= EMITNUM(5 & CARDNUMBER[46:43:44]); 91025000=15374000= EMITV(GNAT(PRINTI)); 91030000=15374100= END; 91035000=15375000= @@ -19053,40 +18939,23 @@ COMMENT THIS SECTION GENERATES CODE FOR STREAM PROCEDURES; 91075000 LEVEL = LVL #, 91125000=16005000= ADDOP = ADOP #; 91130000=16005000= DEFINE 91135000=16007000= - JFW = 39 #, 91140000=16007000= - COMMENT 7.5.5.1 JUMP FORWARD UNCONDITIONAL ; 91145000=16007000= - RCA = 40 #, 91150000=16008000= - COMMENT 7.5.7.6 RECALL CONTROL ADDRESS ; 91155000=16008000= - JRV = 47 #, 91160000=16009000= - COMMENT 7.5.5.2 JUMP REVERSE UNCONDITIONAL ; 91165000=16009000= - CRF = 35 #, 91170000=16010000= - COMMENT 7.5.10.6 CALL REPEAT FIELD ; 91175000=16010000= - BNS = 42 #, 91180000=16011000= - COMMENT 7.5.5.5 BEGIN LOOP ; 91185000=16011000= - NOP = 1 #, 91190000=16012000= - COMMENT ; 91195000=16012000= - ENS = 41 #, 91200000=16013000= - COMMENT 7.5.5.6 END LOOP ; 91205000=16013000= - TAN = 30 #, 91210000=16014000= - COMMENT 7.5.3.7 TEST FOR ALPHAMERIC ; 91215000=16014000= - BIT = 31 #, 91220000=16015000= - COMMENT 7.5.3.8 TEST BIT ; 91225000=16015000= - JFC = 37 #, 91230000=16016000= - COMMENT 7.5.5.3 JUMP FORWARD CONDITIONAL ; 91235000=16016000= - SED = 06 #, 91240000=16017000= - COMMENT 7.5.7.8 SET DESTINATION ADDRESS ; 91245000=16017000= - RSA = 43 #, 91250000=16018000= - COMMENT 7.5.7.4 RECALL SOURCE ADDRESS ; 91255000=16018000= - TRP = 60 #, 91260000=16019000= - COMMENT 7.5.2.2 TRANSFER PROGRAM CHARACTERS ; 91265000=16019000= - BSS = 3 #, 91270000=16020000= - COMMENT 7.5.6.6 SKIP SOURCE BIT ; 91275000=16020000= - BSD = 2 #, 91280000=16021000= - COMMENT 7.5.6.5 SKIP DESTINATION BITS ; 91285000=16021000= - SEC = 34 #, 91290000=16022000= - COMMENT 7.5.10.1 SET COUNT ; 91295000=16022000= - JNS = 38 #; 91300000=16023000= - COMMENT 7.5.5.7 JUMP OUT LOOP ; 91305000=16023000= + JFW = 39 #, COMMENT 7.5.5.1 JUMP FORWARD UNCONDITIONAL ; 91140000=16007000= + RCA = 40 #, COMMENT 7.5.7.6 RECALL CONTROL ADDRESS ; 91150000=16008000= + JRV = 47 #, COMMENT 7.5.5.2 JUMP REVERSE UNCONDITIONAL ; 91160000=16009000= + CRF = 35 #, COMMENT 7.5.10.6 CALL REPEAT FIELD ; 91170000=16010000= + BNS = 42 #, COMMENT 7.5.5.5 BEGIN LOOP ; 91180000=16011000= + NOP = 1 #, COMMENT ; 91190000=16012000= + ENS = 41 #, COMMENT 7.5.5.6 END LOOP ; 91200000=16013000= + TAN = 30 #, COMMENT 7.5.3.7 TEST FOR ALPHAMERIC ; 91210000=16014000= + BIT = 31 #, COMMENT 7.5.3.8 TEST BIT ; 91220000=16015000= + JFC = 37 #, COMMENT 7.5.5.3 JUMP FORWARD CONDITIONAL ; 91230000=16016000= + SED = 06 #, COMMENT 7.5.7.8 SET DESTINATION ADDRESS ; 91240000=16017000= + RSA = 43 #, COMMENT 7.5.7.4 RECALL SOURCE ADDRESS ; 91250000=16018000= + TRP = 60 #, COMMENT 7.5.2.2 TRANSFER PROGRAM CHARACTERS ; 91260000=16019000= + BSS = 3 #, COMMENT 7.5.6.6 SKIP SOURCE BIT ; 91270000=16020000= + BSD = 2 #, COMMENT 7.5.6.5 SKIP DESTINATION BITS ; 91280000=16021000= + SEC = 34 #, COMMENT 7.5.10.1 SET COUNT ; 91290000=16022000= + JNS = 38 #; COMMENT 7.5.5.7 JUMP OUT LOOP ; 91300000=16023000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%91310000=16024000= COMMENT FIXC EMITS BASICLY FORWARD JUMPS. HOWEVER IN THE CASE 91315000=16024000= OF INSTRUCTIONS INTERPTED AS JUMPS BECAUSE OF A CRF ON 91320000=16025000= @@ -19772,34 +19641,34 @@ COMMENT THIS SECTION GENERATES CODE FOR STREAM PROCEDURES; 91075000 THE SEMICOLON ,END OR ) IN SYNTACICALLY CORRECT PROGRAMS; 94665000=16474000= LABEL 94670000=16475000= L, 94675000=16475000= - L1, 94680000=16475000= - L2, 94685000=16475000= - L3, 94690000=16475000= - L4, 94695000=16475000= - L5, 94700000=16475000= - L6, 94705000=16475000= - L7, 94710000=16475000= - L8, 94715000=16475000= - L9, 94720000=16475000= - L10, 94725000=16475000= - EXIT, 94730000=16475000= - FINI, 94735000=16475000= - START; 94740000=16475000= + L1, 94680000=16475000= + L2, 94685000=16475000= + L3, 94690000=16475000= + L4, 94695000=16475000= + L5, 94700000=16475000= + L6, 94705000=16475000= + L7, 94710000=16475000= + L8, 94715000=16475000= + L9, 94720000=16475000= + L10, 94725000=16475000= + EXIT, 94730000=16475000= + FINI, 94735000=16475000= + START; 94740000=16475000= SWITCH 94745000=16476000= TYPE:= FINI, 94750000=16476000= - L, 94755000=16476000= - FINI, 94760000=16476000= - L3, 94765000=16476000= - L4, 94770000=16476000= - L5, 94775000=16476000= - L6, 94780000=16476000= - L7, 94785000=16476000= - L7, 94790000=16476000= - L7, 94795000=16476000= - L7, 94800000=16476000= - L8, 94805000=16476000= - L9, 94810000=16476000= - L10; 94815000=16476000= + L, 94755000=16476000= + FINI, 94760000=16476000= + L3, 94765000=16476000= + L4, 94770000=16476000= + L5, 94775000=16476000= + L6, 94780000=16476000= + L7, 94785000=16476000= + L7, 94790000=16476000= + L7, 94795000=16476000= + L7, 94800000=16476000= + L8, 94805000=16476000= + L9, 94810000=16476000= + L10; 94815000=16476000= START: 94820000=16477000= GO TO TYPE[ELCLASS-ENDV+1]; 94825000=16477000= IF ELCLASS = RTPAREN THEN 94830000=16478000= diff --git a/tools/xem/ESPOLXEM.alg_m b/tools/xem/ESPOLXEM.alg_m index e268aca..911d0e5 100644 --- a/tools/xem/ESPOLXEM.alg_m +++ b/tools/xem/ESPOLXEM.alg_m @@ -1,6 +1,7 @@ +$ RESET LIST 00000009120821PK %#######################################################################00005000=00001000= % 00010000=00001010= -% B-5700 ESPOL COMPILER 00015000=00001020= +% B-5700 ESPOLXEM COMPILER 00015000 % MARK XVI.0.00 00020000=00001030= % OCT 1, 1974 00025000=00001040= % 00030000=00001050= @@ -409,7 +410,7 @@ BOOLEAN 02017100 ARRAY 02018100 STREAMTEMPS[0:15], % STREAM TEMP SOURCE 02018200 STREAMTEMPD[0:15], % STREAM TEMP DESTINATION 02018300 - EBCDICBUFF[0:21]; % EBCDIC I/O BUFFER 02018400 + EBCDICBUFF[0:29]; % EBCDIC I/O & TEMP BUFFER 02018400 02030000 VALUE ARRAY 02030100 BICCOLLATE ( % INDEX BY INTERNAL CODE TO GET COLLATION VALUE 02030200 @@ -1298,6 +1299,43 @@ BOOLEAN PROCEDURE STREAMCOMPARELSSQQ(MBASE, SBASE, N); 02150400 02153400 STREAMCOMPARELSSQQ:= TFFF; 02153500 END STREAMCOMPARELSS; 02153600 + 02153700 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%02153800 +DEFINE STREAMCOMPARELEQ(N) = 02153900 + STREAMCOMPARELEQQQ(MBASE, SBASE, N) #; 02154000 +BOOLEAN PROCEDURE STREAMCOMPARELEQQQ(MBASE, SBASE, N); 02154100 + VALUE N; 02154200 + ARRAY MBASE, SBASE[0]; 02154300 + REAL N; 02154400 + BEGIN COMMENT 02154500 + COMPARES "N" CHARACTERS BETWEEN SOURCE AND DESTINATION FOR A 02154600 + LESS-THAN-OR-EQUAL CONDITION. ADVANCES BOTH INDEXES BY "N". 02154700 + EMULATES CEL. 02154800 + ; 02154900 + STREAMADJUSTSICHAR; 02155000 + STREAMADJUSTDICHAR; 02155100 + TFFF:= TRUE; 02155200 + WHILE N > 0 DO 02155300 + BEGIN 02155400 + IF STREAMGETSC = STREAMGETDC THEN 02155500 + BEGIN 02155600 + STREAMSKIPSI(+1); 02155700 + STREAMSKIPDI(+1); 02155800 + N:= *-1; 02155900 + END 02156000 + ELSE 02156100 + BEGIN 02156200 + IF BICCOLLATE[STREAMGETSC] > BICCOLLATE[STREAMGETDC] THEN 02156300 + TFFF:= FALSE; 02156400 + 02156500 + STREAMSKIPSI(+N); 02156600 + STREAMSKIPDI(+N); 02156700 + N:= 0; 02156800 + END; 02156900 + END WHILE; 02157000 + 02157100 + STREAMCOMPARELEQQQ:= TFFF; 02157200 + END STREAMCOMPARELEQ; 02157300 02160000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%02160100 DEFINE STREAMCOMPAREEQL(N) = 02160200 @@ -1333,6 +1371,41 @@ BOOLEAN PROCEDURE STREAMCOMPAREEQLQQ(MBASE, SBASE, N); 02160400 02163200 STREAMCOMPAREEQLQQ:= TFFF; 02163300 END STREAMCOMPAREEQL; 02163400 + 02163500 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%02163600 +DEFINE STREAMCOMPARENEQ(N) = 02163700 + STREAMCOMPARENEQQQ(MBASE, SBASE, N) #; 02163800 +BOOLEAN PROCEDURE STREAMCOMPARENEQQQ(MBASE, SBASE, N); 02163900 + VALUE N; 02164000 + ARRAY MBASE, SBASE[0]; 02164100 + REAL N; 02164200 + BEGIN COMMENT 02164300 + COMPARES "N" CHARACTERS BETWEEN SOURCE AND DESTINATION FOR A 02164400 + NOT-EQUAL CONDITION. ADVANCES BOTH INDEXES BY "N". 02164500 + EMULATES CNE. 02164600 + ; 02164700 + STREAMADJUSTSICHAR; 02164800 + STREAMADJUSTDICHAR; 02164900 + TFFF:= TRUE; 02165000 + WHILE N > 0 DO 02165100 + BEGIN 02165200 + IF STREAMGETSC ^= STREAMGETDC THEN % COLLATING SEQ IS IMMATERIAL 02165300 + BEGIN 02165400 + STREAMSKIPSI(+1); 02165500 + STREAMSKIPDI(+1); 02165600 + N:= *-1; 02165700 + END 02165800 + ELSE 02165900 + BEGIN 02166000 + TFFF:= FALSE; 02166100 + STREAMSKIPSI(+N); 02166200 + STREAMSKIPDI(+N); 02166300 + N:= 0; 02166400 + END; 02166500 + END WHILE; 02166600 + 02166700 + STREAMCOMPARENEQQQ:= TFFF; 02166800 + END STREAMCOMPARENEQ; 02166900 02175000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%02175100 DEFINE STREAMCOMPAREGEQ(N) = 02175200 @@ -1697,7 +1770,7 @@ COMMENT IF A NEW COMPILER-DEFINED OPTION IS ADDED, CHANGE USEROPINX 02495000 LISTPTOG = OPTIONWORD.[LISTPBIT:1] #, 02550000=01001290= MCPTOG = OPTIONWORD.[MCPBIT:1] #, 02555000=01001300= MERGETOG = OPTIONWORD.[MERGEBIT:1] #, 02560000=01001310= - NESTOG = OPTIONWORD.[NESTBIT:1] #, 02565000=01001320= + %% NESTOG = OPTIONWORD.[NESTBIT:1] #, % DUP DECL, NOT USED 02565000=01001320= NEWTOG = OPTIONWORD.[NEWBIT:1] #, 02570000=01001330= NEWINCL = OPTIONWORD.[NEWINCLBIT:1] #, 02575000=01001340= OMITTING = OPTIONWORD.[OMITBIT:1] #, 02580000=01001350= @@ -2021,7 +2094,7 @@ COMMENT INFO FORMAT 02910000 OROP = 93 #, COMMENT 135; 04190000=01275000= ANDOP = 94 #, COMMENT 136; 04195000=01276000= RELOP = 95 #, COMMENT 137; 04200000=01277000= - ADDOP = 96 #, COMMENT 140; 04205000=01278000= + ADOP = 96 #, COMMENT 140; 04205000=01278000= MULOP = 97 #, COMMENT 141; 04210000=01278500= % STRING =99#, COMMENT 143; 04215000=01278600= COMMENT SUBCLASSES FOR DECLARATORS (KEPT IN ADDRESS); 04220000=01279000= @@ -2043,8 +2116,9 @@ COMMENT INFO FORMAT 02910000 NAMEV = 16 #, COMMENT 20; 04300000=01295000= FILEV = 17 #, COMMENT 21; 04305000=01296000= STREAMV = 18 #, COMMENT 22; 04310000=01297000= - DEFINEV = 19 #, COMMENT 23; 04315000=01298000= - DEFINEDDES = 8 #, 04320000=01299010= + DEFINEV = 19 #; COMMENT 23; 04315000=01298000= + DEFINE 04320000=01299010= + DDES = 8 #, 04322000 ADES = 28 #, 04325000=01299020= PDES = 29 #, 04330000=01299030= LDES = 30 #, 04335000=01299040= @@ -2052,8 +2126,7 @@ COMMENT INFO FORMAT 02910000 FACTOP = ASTRISK #, 04345000=01299200= OPERATORS = HEXOP #, 04350000=01299300= FILEID = 0 #, 04355000=01299400= - MAXINTRINSIC = 150 #, 04360000=01299400= - % USED IN BUILDING INTABLE @ 09414120 04365000=01299400= + MAXINTRINSIC = 150 #, % USED IN BUILDING INTABLE @ 09414120 04360000=01299400= INTRINSICADR = (MAXINTRINSIC DIV 30) #; % RESERVES SEG FOR INTABLE04370000=01299500= REAL 04375000=01300000= TIME1; 04380000=01300000= @@ -2334,7 +2407,7 @@ COMMENT INFO FORMAT 02910000 DEFINE 05845000=01556500= SUBOP = 48 #; 05850000=01556500= ARRAY 05855000=01556900= - CODEBUFF[0:1023]; % CODE BUFFER (WAS A FILE) 05860000=01556900= + CODE[0:1023]; % CODE BUFFER (WAS A FILE) 05860000=01556900= FILE 05865000=01557000= CARD(KIND=DISK, DEPENDENTSPECS, FILEUSE=IN); 05870000=01557000= FILE 05875000=01558000= @@ -2491,8 +2564,8 @@ COMMENT ESPOL CODE FILES ARE UNIQUELY TYPED IN THEIR FILE 05975000 XIT = 71#, COMMENT (0435) 7.4.8.2 EXIT; 06625000=01676000= ZP1 = 322#, COMMENT (2411) 7.4.10.8 CONDITIONAL HALT; 06630000=01677000= SCI =1003#, COMMENT (7655) SCAN OUT INITIALIZE; 06635000=01677050= - SAN =1004#, COMMENT (7661) SYSTEM ATTENTION NEEDED 06640000=01677100= - SCS =1019#, COMMENT (7755) SCAN OUT STOP; 06645000=01677150= + SAN =1004#, COMMENT (7661) SYSTEM ATTENTION NEEDED; 06640000=01677100= + SCS =1019#; COMMENT (7755) SCAN OUT STOP; 06645000=01677150= COMMENT THESE DEFINES ARE USED BY EMITD; 06650000=01678000= DEFINE 06655000=01679000= DIA = 45#, COMMENT (XX55) 7.4.7.1 DIAL A; 06660000=01680000= @@ -2563,10 +2636,11 @@ COMMENT ESPOL CODE FILES ARE UNIQUELY TYPED IN THEIR FILE 05975000 CPLUS2 = 770 #; 07000000=01714000= COMMENT CPLUS1 AND CPLUS2 ARE EXPLICIT CONSTANTS 07005000=01714000= USED IN THE GENERATION OF C-RELATIVE CODE; 07010000=01715000= + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07012000 PROCEDURE FLAG(ERRNUM); 07015000=01716000= VALUE 07020000=01716000= ERRNUM; 07025000=01716000= - INTEGER 07030000=01716000= + REAL 07030000=01716000= ERRNUM; 07035000=01716000= FORWARD; 07040000=01716000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07045000=01716000= @@ -2580,7 +2654,7 @@ COMMENT ESPOL CODE FILES ARE UNIQUELY TYPED IN THEIR FILE 05975000 REAL PROCEDURE TAKE(W); 07085000=01717700= VALUE 07090000=01717700= W; 07095000=01717700= - INTEGER 07100000=01717700= + REAL 07100000=01717700= W; 07105000=01717700= FORWARD; 07110000=01717700= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07115000=01717700= @@ -2668,7 +2742,7 @@ COMMENT "BLANKET" BLANKS OUT N+1 WORDS IN "THERE"; 07315000 REPLACE P:POINTER(EBCDICBUFF,8) BY DISK.TITLE; 07790000=01828500= N2:= MIN(OFFSET(P)-1, 118); 07795000=01828500= WRITE(LINE, 07800000=01835500= - = 12 THEN "PM." ELSE "AM.", 07820000=01835000= (120-N2) DIV 2, N2, POINTER(EBCDICBUFF,8), 07825000=01835550= (120-N2) DIV 2, N2); 07826000 + REPLACE P:POINTER(EBCDICBUFF,8) BY CARD.TITLE; 07826100 + N2:= MIN(OFFSET(P)-1, 106); 07826200 + WRITE(LINE, , 07826300 + (107-N2) DIV 2, N2, POINTER(EBCDICBUFF,8)); 07826400 NOHEADING:= FALSE; 07830000=01836000= END OF DATIME; 07835000=01837000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07840000=01837000= @@ -2700,7 +2778,7 @@ COMMENT OCTIZE REFORMATS ACCUM FOR OCTAL CONSTANTS; 07865000 STREAMLOCALS; 07886000 TALLY:= 0; 07888000 STREAMSETSI(S, SX); 07890000=02001842= - STREAMSKIPSI(+3); 07892000=02001842= + STREAMSKIPSI(+4); 07892000=02001842= STREAMSETDI(D, DX); 07894000=02001842= THRU SKP DO 07896000=02001842= STREAMSETDB(3, 0); % RIGHT JUSTIFY. 07898000 @@ -2724,9 +2802,17 @@ COMMENT OCTIZE REFORMATS ACCUM FOR OCTAL CONSTANTS; 07865000 STREAMSKIPSB(1); 07934000 END; 07936000 END THRU; 07938000 - 07940000=02001850= - OCTIZE:= BOOLEAN(TALLY); % "1" = NON OCTAL CHARACTER. 07942000=02001852= - END OCTIZE; 07970000=02001854= + 07940000 + STREAMSETSI(D, DX); 07942000=02001848= + IF STREAMTESTSB THEN 07944000=02001848= + BEGIN 07946000=02001850= + TALLY:= 1; 07948000=02001850= + STREAMSETDI(D, DX); 07950000=02001850= + STREAMSETDB(1, 0) 07952000=02001850= + END; % PREVENT FLAG BIT 07954000=02001850= + 07965000=02001850= + OCTIZE:= BOOLEAN(TALLY); % "1" = NON OCTAL CHARACTER OR FLAG BIT. 07970000=02001852= + END OCTIZE; 07975000=02001854= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%07976000 COMMENT HEXIZE REFORMATS ACCUM FOR HEXADECIMAL CONSTANTS; 07980000=02001856= BOOLEAN PROCEDURE HEXIZE(S, SX, D, DX, SKP, CNT); 07985000=02001858= @@ -3153,7 +3239,7 @@ L: SCNN(SBUFF, NCR, COUNT, ACCUM, 1, 63-COUNT, RESULT, RESULT, COUNT, 09710000 STREAMSMEARLIT(1, 6":"); 09930000=02185750= STREAMSETLOCSI(L); 09935000=02186000= STREAMTRANSFERDEC(1); 09940000=02186000= - STREAMSMEARLIT(1, 6" "); 09945000=02186250= + STREAMSMEARLIT(6, 6" "); 09945000=02186250= THRU REAL(OMIT) DO 09950000=02186750= BEGIN 09951000 STREAMSKIPDI(-12); 09952000 @@ -3833,7 +3919,7 @@ LENGTH6: 13625000 IF DEBUGTOG THEN 13730000=02533000= IF WOP[0] = 0 THEN 13735000=02534000= BEGIN 13740000=02535000= - FILL WOP[*] WITH "LITC", 6" ", "OPDC", 6"DESC", 13745000=02536100= + FILL WOP[*] WITH 6"LITC", 6" ", 6"OPDC", 6"DESC", 13745000 11,6"NOP ", 12,6"PRT ", 13,6"DEL ", 16,6"ADD ", 18,6"PRL ", 19,6"LNG ",13760000=02539000= 21,6"GEQ ", 22,6"BBC ", 24,6"INX ", 35,6"LOR ", 37,6"GTR ", 38,6"BFC ",13765000=02540000= 39,6"RTN ", 40,6"COC ", 48,6"SUB ", 64,6"MUL ", 67,6"LND ", 68,6"STD ",13770000=02541000= @@ -4038,12 +4124,14 @@ COMMENT INCR FIELD OF SPECIAL CHARACTER IS NON-ZERO FOR SPECIAL 14655000 SCANNER; % SCAN PAST "@". 14775000=02684000= IF COUNT > 17 THEN 14780000=02685000= GO ARGH; % 16 CHARS, + "@". 14785000=02685000= - IF OCTIZE(ACCUM, 1, C, 17-COUNT, COUNT-1) THEN 14790000=02686000= + EBCDICBUFF[0]:= C; 14789000 + IF OCTIZE(ACCUM, 1, EBCDICBUFF, 0, 17-COUNT, COUNT-1) THEN 14790000=02686000= BEGIN 14795000=02686500= Q:= ACCUM[1]; 14800000=02686500= FLAG(521); 14805000=02686500= GO SCANAGAIN 14810000=02686500= END; 14815000=02686500= + C:= EBCDICBUFF[0]; 14816000 GO NUMBEREND; 14820000=02687000= 14825000=02689000= COMMENT DOT AND ATSIGN ENTER NUMBER CONVERSION AT CORRECT SPOT; 14830000=02689000= @@ -4108,6 +4196,8 @@ COMMENT CROSSHATCH HANDLES TWO SITUATIONS: 15020000 GT2:= 0 & (T:= DEFINEARRAY[DEFINEINDEX:= DEFINEINDEX-3])[14:29:15]15100000=02721000= ; 15105000=02721000= LASTUSED:= T.[14:15]; 15110000=02722000= + IF DEFINEINDEX <= 0 THEN 15110100 + SBUFF:= CBUFF; % REVERT BACK TO CARD BUFFER 15110200 FOR GT1:= 1 STEP 1 UNTIL GT2 DO 15115000=02723000= BEGIN 15120000=02723500= STACKHEAD[(T:= TAKE(LASTINFO+1)).[35:36] MOD 125]:= 15125000=02725000= @@ -4161,7 +4251,8 @@ COMMENT MIGHT BE FUNNY COMMA - HANDLE HERE; 15225000 C:= CONVERT; 15365000=02758000= % RESULT:=7; SCANNER; % DEBLANK. 15370000=02759000= % IF DEFINECTR=0 THEN 15375000=02760000= -% IF (C=3 OR C=4) AND EXAMIN(NCR)=""" THEN %OCTAL OR HEX STRING.15380000=02761000= +% IF (C=3 OR C=4) AND EXAMIN(SUBFF, NCR)=""" THEN 15380000=02761000= +% %OCTAL OR HEX STRING.15380100 % BEGIN INTEGER SIZ; 15385000=02762000= % RESULT:=5; SCANNER; % SKIP QUOTE. 15390000=02763000= % COUNT:=0; 15395000=02764000= @@ -4169,19 +4260,19 @@ COMMENT MIGHT BE FUNNY COMMA - HANDLE HERE; 15225000 % RESULT:=5; SCANNER; 15405000=02766000= % IF COUNT > SIZ:=48 DIV C THEN % > 1 WORD LONG. 15410000=02767000= % BEGIN ERR(520); GO SCANAGAIN END; 15415000=02768000= -% END UNTIL EXAMIN(NCR)="""; 15420000=02769000= +% END UNTIL EXAMIN(SBUFF, NCR)="""; 15420000=02769000= % Q:=ACCUM[1]; RESULT:=5; SCANNER; COUNT:=COUNT-1; 15425000=02770000= % IF C=3 THEN % OCTAL STRING. 15430000=02771000= -% IF OCTIZE(ACCUM[1],ACCUM[4],16-COUNT,COUNT) THEN 15435000=02772000= +% IF OCTIZE(ACCUM,1,ACCUM,4,16-COUNT,COUNT) THEN 15435000=02772000= % FLAG(521) % NON OCTAL CHARACTER IN STRING. 15440000=02773000= -% ELSE ELSE IF HEXIZE(ACCUM[1],ACCUM[4],12-COUNT,COUNT) THEN 15445000=02774000= +% ELSE ELSE IF HEXIZE(ACCUM,1,ACCUM,4,12-COUNT,COUNT) THEN 15445000=02774000= % FLAG(521); % NON CHARACTER IN HEX STRING. 15450000=02775000= % IF COUNT < SIZ THEN 15455000=02776000= % BEGIN 15460000=02777000= % C:=ACCUM[4]; GO FINISHNUMBER; 15465000=02778000= % END; 15470000=02779000= % T.INCR:=COUNT:=8; T.CLASS:=STRING; 15475000=02780000= -% MOVECHARACTERS(8,ACCUM[4],0,ACCUM[1],3); 15480000=02781000= +% MOVECHARACTERS(8,ACCUM,4,0,ACCUM,1,3); 15480000=02781000= % GO COMPLETE; 15485000=02782000= % END OCTAL OR HEX STRING; 15490000=02783000= IF DPTOG THEN 15495000=02784000= @@ -4618,7 +4709,7 @@ COMMENT#################################################################17045000 FORWARD; 17660000=03037000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17665000=03037000= PROCEDURE VARIABLE(FROM); 17670000=03038000= - INTEGER 17675000=03038000= + REAL 17675000=03038000= FROM; 17680000=03038000= FORWARD; 17685000=03038000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17690000=03038000= @@ -4701,13 +4792,6 @@ COMMENT#################################################################17045000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18075000=03051001= PROCEDURE FORSTMT; 18080000=03052000= FORWARD; 18085000=03052000= - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18090000=03052000= - REAL PROCEDURE TAKE(INDEX); 18095000=03053000= - VALUE 18100000=03053000= - INDEX; 18105000=03053000= - INTEGER 18110000=03053000= - INDEX; 18115000=03053000= - FORWARD; 18120000=03053000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%18125000=03053000= PROCEDURE E; 18130000=03054000= FORWARD; 18135000=03054000= @@ -5174,7 +5258,7 @@ COMMENT DEBUG PRINTS OUT OBJECT CODE IF "DEBUGN" IS SET; 20165000 END 20360000=04300000= ELSE 20365000=04300000= BEGIN 20370000=04300000= - ERROR(200); 20375000=04300000= + ERR(200); 20375000=04300000= L:= 1; 20380000=04300000= END; 20385000=04300000= COMMENT 200 EMIT - SEGMENT GREATER THAN 4093 SYLLABLES *; 20390000=04301000= @@ -5331,7 +5415,7 @@ EXIT: 21070000 REAL PROCEDURE TAKE(INDEX); 21145000=05005000= VALUE 21150000=05005000= INDEX; 21155000=05005000= - INTEGER 21160000=05005000= + REAL % B5500 DIDN'T INTEGERIZE PARAM ON CALL? 21160000=05005000= INDEX; 21165000=05005000= TAKE:= INFO[INDEX.LINKR, INDEX.LINKC]; 21170000=05006000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%21175000=05006000= @@ -5373,7 +5457,7 @@ EXIT: 21070000 STREAMSETSI(LSTSEQ, QX); 21330000=05020000= STREAMSKIPSI(-8); 21335000=05020000= STREAMTRANSFERWDS(1); 21340000=05020000= - STREAMSETSILINE, 0); 21345000=05021000= + STREAMSETSI(LINE, 0); 21345000=05021000= STREAMTRANSFERWDS(2); 21350000=05021000= STREAMSMEARLIT(4*2, 6"X"); COMMENT SET RIGHT MARGIN FLAG; 21355000=05022000= STREAMSETSI(LSTSEQ, QX); 21365000=05023000= @@ -5383,7 +5467,7 @@ EXIT: 21070000 STREAMSETDI(LINE, 0); 21385000=05024000= STREAMSKIPDI(+8); COMMENT INDENT MESSAGE; 21390000=05024000= STREAMTRANSFERLIT(6, 6"ERROR "); 21400000=05025000= - STREAMTRANSFERLIT(6, 6"NUMBER "); 21402000 + STREAMTRANSFERLIT(7, 6"NUMBER "); 21402000 STREAMSETLOCSI(ERRNUM); 21405000=05026000= STREAMTRANSFERDEC(3); COMMENT CONVERT ERRNUM; 21410000=05026000= STREAMTRANSFERLIT(4, 6" -- "); 21420000=05027000= @@ -5400,7 +5484,7 @@ EXIT: 21070000 ERRORCOUNT:= ERRORCOUNT+1; COMMENT COUNT ERRORS; 21470000=05035000= IF NOT LISTER THEN 21480000=05036000= BEGIN 21485000=05037000= - EDITLINE(LIN, SBUFF, FCR, L DIV 4, L.[1:2], MEDIUM, 0); 21490000=05038000= + EDITLINE(LIN, SBUFF, FCR, L DIV 4, L.[1:2], MEDIUM, FALSE); 21490000=05038000= MOVE(1, INFO[LASTSEQROW,*], LASTSEQUENCE, LIN, 12); 21495000=05039500= IF NOHEADING THEN 21500000=05039600= DATIME; 21505000=05039600= @@ -5698,6 +5782,7 @@ EXIT: 23235000 XIT, 23645000=05325080= JUMPOUT; 23646000 23648000 + TALLY:= 0; 23649000 STREAMSETLOCSI(PORS); 23650000=05325090= STREAMSKIPSI(+3); 23655000=05325090= STREAMSETDI(LIN, 0); % "PRT" OR "STACK". 23660000=05325090= @@ -5885,7 +5970,8 @@ EXIT: 23235000 IF ELBAT[I].ADDRESS = SUBOP THEN 24365000=05344580= GS:= FZERO 24370000=05344580= ELSE 24375000=05344580= - GS:= 512; 24380000=05344580= + GS:= 512 24380000 + ELSE 24381000 BEGIN 24385000=05344600= GS:= 0; 24390000=05344600= I:= I-1 24395000=05344600= @@ -6112,9 +6198,10 @@ EXIT: 24705000 NESTSORT(L, M); 25425000=05442000= NESTSORT(M+1, U); 25430000=05443000= I:= K:= L; 25435000=05444000= - J:= M+1 AGAIN: 25440000=05445000= - IF I > M THEN 25445000=05445000= - GO TO TOP; 25450000=05445000= + J:= M+1; 25440000=05445000= + AGAIN: 25442000 + IF I > M THEN 25445000=05445000= + GO TO TOP; 25450000=05445000= IF J > U THEN 25455000=05446000= GO TO BOTTOM; 25460000=05446000= GT1:= NESTPRT[SORTPRT[I].[14:15]].LINK; 25465000=05447000= @@ -6295,7 +6382,8 @@ EXIT: 24705000 IF ELCLASS >= OPERATOR THEN 26310000=06076000= BEGIN 26315000=06077000= IF T1 ^= 0 THEN 26320000=06077000= - EMITO(T1); 26325000=06077000= + EMITO(T1) 26325000=06077000= + ELSE 26327000 BEGIN 26330000=06078000= T1:= T2.LINK+2; 26335000=06079000= T2:= T2.INCR+T1; 26340000=06080000= @@ -6319,7 +6407,7 @@ EXIT: 24705000 ELSE 26430000=06091000= IF T2 = ISOLATE THEN 26435000=06092000= BEGIN 26440000=06093000= - T2+C; 26445000=06093000= + T2:= C; 26445000=06093000= IF STEPI ^= LITNO THEN 26450000=06095000= BEGIN 26455000=06095000= ERR(500); 26460000=06095000= @@ -6613,7 +6701,7 @@ EXIT: 27805000 T1:= (T2:= ELBAT[I]).ADDRESS; 27845000=06185000= PANA; 27850000=06186000= IF T1 ^= 0 THEN 27855000=06187000= - EMITO(T1); 27860000=06187000= + EMITO(T1) 27860000=06187000= ELSE 27865000=06188000= BEGIN 27870000=06188000= T1:= T2.LINK+T2.INCR+1; 27875000=06189000= @@ -6948,7 +7036,7 @@ ANOTHER: 29240000 IF ACLASS = REALID AND BOOLEAN(ELBAT[I].FORMAL) THEN 29465000=07070000= BEGIN 29470000=07070000= CHECKER(ELBAT[I]); 29475000=07070500= - EMITPAIR(ELBAT[I], ADDRESS, LOD); 29480000=07071000= + EMITPAIR(ELBAT[I].ADDRESS, LOD); 29480000=07071000= STEPIT; 29485000=07072000= END 29490000=07073000= ELSE 29495000=07073000= @@ -6961,7 +7049,7 @@ ANOTHER: 29240000 IF ELCLASS <= STRNGCON AND ELCLASS > LABELID THEN 29515000=07076000= BEGIN 29520000=07076000= PRIMARY; 29525000=07076000= - GOTO COMMON 29530000=07076000= + GO TO COMMON 29530000=07076000= END; 29535000=07076000= END; 29540000=07077000= EMITO(NOP); 29545000=07078000= @@ -7066,10 +7154,10 @@ EXIT: 29785000 ACTUALPARAPART(FALSE, GIT(HOLE)) 30030000=07411000= ELSE 30035000=07411000= IF FORMALF THEN 30040000=07411000= - L:= L-1; 30045000=07411000= - ELSE 30050000=07412000= - IF TAKE(GIT(HOLE)).NODIMPART ^= 0 THEN 30055000=07412000= - ERR(128); 30060000=07412000= + L:= L-1 30045000=07411000= + ELSE 30050000=07412000= + IF TAKE(GIT(HOLE)).NODIMPART ^= 0 THEN 30055000=07412000= + ERR(128); 30060000=07412000= EMITV(ADDRESS); 30065000=07413000= EXIT: 30070000=07425000= END PROCSTMT; 30075000=07425000= @@ -7176,7 +7264,7 @@ EXIT: 30070000 ELBW; 30580000=07503000= LABEL 30585000=07504000= GOMCP, 30590000=07504000= - EXIT; 30595000=07504000= + EXIT; 30595000=07504000= IF STEPI = TOV THEN 30600000=07505000= STEPIT; 30605000=07505000= IF ELCLASS = LABELID THEN 30610000=07506000= @@ -7282,7 +7370,7 @@ EXIT: 31070000 BEGIN 31110000=07562000= REAL 31115000=07562000= T1, 31120000=07562000= - T2; 31125000=07562000= + T2; 31125000=07562000= LABEL 31130000=07562000= EXIT; 31135000=07562000= IFCLAUSE; 31140000=07563000= @@ -7483,6 +7571,7 @@ COMMENT "COCT" PERFORMS THE OCTAL CONVERT FOR THE FILL STATEMENT. 32030000 ACC, CD[0]; 32108000 BEGIN 32110000=07654000= STREAMLOCALS; 32112000 + TALLY:= 0; 32114000 STREAMSETSI(ACC, AX); 32115000=07654500= STREAMSKIPSI(+6); 32120000=07654500= STREAMSETDI(CD, CX); 32125000=07654500= @@ -7498,7 +7587,7 @@ COMMENT "COCT" PERFORMS THE OCTAL CONVERT FOR THE FILL STATEMENT. 32030000 THRU 3 DO 32155000=07656000= BEGIN 32155500 IF STREAMTESTSB THEN 32156000 - STREAMSETDB(1) 32156500 + STREAMSETDB(1, 1) 32156500 ELSE 32157000 STREAMSKIPDB(1); 32157500 STREAMSKIPSB(1); 32158000 @@ -7830,7 +7919,7 @@ EXIT: 33765000 END STMT; 33770000=07771000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%33775000=07771000= PROCEDURE IOSTMT; 33780000=07993000= - IF(GT1:= ELBAT[I].ADDRESS > 15 THEN ERR(98) 33785000=07994000= + IF(GT1:= ELBAT[I].ADDRESS) > 15 THEN ERR(98) 33785000=07994000= ELSE 33790000=07994000= BEGIN 33795000=07995000= EMIT(ELBAT[I-1].ADDRESS & GT1[6:0:1] & GT1[11:3:3]); 33800000=07995000= @@ -8318,7 +8407,7 @@ EOF: 36210000 I, 36260000=08999500= J; 36265000=08999500= I:= (L+7) DIV 4; 36270000=08999525= - EBCDICBUF[0]:= I; 36275000=08999550= + EBCDICBUFF[0]:= I; 36275000=08999550= REPLACE POINTER(EBCDICBUFF[1],0) BY POINTER(CODE[0],0) 36280000=08999575= FOR (J:=29) WORDS; 36280100 WRITE(CODISK, 30, EBCDICBUFF); 36285000=08999600= @@ -8543,12 +8632,12 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000 3"1310441000000002", 6"3MUL00", %503 37410000=09121300= 3"1310441050000002", 6"3NEQ00", %505 37415000=09121400= 3"1310100130000002", 6"3NOP00", %507 37420000=09121500= - 3"0650006550000002", 6"6SCOPO", 6"N......."; %509 37425000=09121600= + 3"0650006550000003", 6"6SCOPO", 6"N......."; %509 37425000=09121600= FILL INFO[2, *] WITH 37430000=09121700= - 3"131030000020004", 6"3RDF00", %512 37432000 + 3"1310300000020004", 6"3RDF00", %512 37432000 3"0000", COMMENT LITC 0; 37435000=09121800= 3"2141", COMMENT FXS ; 37440000=09121900= - 3"131030000020004", 6"3RDS00", %516 37450000=09122000= + 3"1310300000020004", 6"3RDS00", %516 37450000=09122000= 3"0004", COMMENT LITC 1; 37455000=09122100= 3"2141", COMMENT FXS ; 37460000=09122200= 3"1310456000000002", 6"3RDV00", %520 37470000=09122300= @@ -8607,12 +8696,12 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000 3"0030000000040003", 6"2LB000", 6"[# ", %621 37755000=09127500= 3"0030000000040003", 6"2RB000", 6"]# ", %624 37760000=09127600= 3"0030000000040003", 6"3GTR00", 6"># ", %627 37765000=09127700= - 3"0030000000040003", 6"3GEQ00", 6"}# ", %630 37770000=09127800= + 3"0030000000040003", 6"3GEQ00", 3"17"6"# ", %630 37770000=09127800= 3"0030000000040003", 6"3EQL00", 6"=# ", %633 37775000=09127900= - 3"0030000000040003", 6"3NEQ00", 6"!# ", %636 37780000=09128000= - 3"0030000000040003", 6"3LEQ00", 6"{# ", %639 37785000=09128100= + 3"0030000000040003", 6"3NEQ00", 3"74"6"# ", %636 37780000=09128000= + 3"0030000000040003", 6"3LEQ00", 3"57"6"# ", %639 37785000=09128100= 3"0030000000040003", 6"3LSS00", 6"<# ", %642 37790000=09128200= - 3"0030000000040003", 6"5TIMES", 6"|# ", %645 37795000=09128300= + 3"0030000000040003", 6"5TIMES", 3"40"6"# ", %645 37795000=09128300= 3"1310117530000002", 6"3SCI00", %688 37800000=09128400= 3"1310117540000002", 6"3SAN00", %650 37805000=09128500= 3"1310157730000002", 6"3SCS00", %652 37810000=09128600= @@ -8789,7 +8878,7 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000 VALUE 38590000=09378000= LX, N, SX; 38595000=09378000= ARRAY 38596000 - LINE[0]; 38597000 + LINE, SEQ[0]; 38597000 REAL 38598000 LX, N, SX; 38599000 BEGIN 38600000=09379000= @@ -8949,7 +9038,7 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000 3"0051000000000000", 39302000=09395500= 3"0441070001000062"; 39305000=09395500= Q:= -1; 39310000=09395700= - PUSHEE(SAVEINFO, L, 4, 5); 39315000=09396000= + PUSHEE(SAVINFO, L, 4, 5); 39315000=09396000= SAVNDX:= L; 39320000=09397000= END; 39325000=09397100= REWIND(CODISK); 39330000=09398000= @@ -9011,7 +9100,7 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000 ELSE 39615000=09419000= SAVINFO[I.LINKR, I.LINKC]:= 0 39620000=09419000= UNTIL I:= I+1 >= PRTIMAX; 39625000=09419000= - MDESC(0 & 1[45:0:1], SAVINFO[D, PRTBASE-1]); 39630000=09419100= + MDESC(0 & 1[45:0:1], SAVINFO[0, PRTBASE-1]); 39630000=09419100= SAVNDX:= 30*N; 39635000=09420000= END; 39640000=09420010= I:= 0; 39645000=09420020= @@ -9153,10 +9242,11 @@ COMMENT THIS IS THE FILL FOR THE SECOND ROW OF INFO: 36760000 VALUE 40255000=10257100= DX, SX, Q, N, J; 40260000=10257100= ARRAY 40262000 - D, A[0]; 40264000 + D, S[0]; 40264000 REAL 40266000 DX, SX, Q, N, J; 40268000 BEGIN 40275000=10257200= + STREAMLOCALS; 40277000 STREAMSETDI(D, DX); 40280000=10257200= STREAMSKIPDI(+11); 40285000=10257200= STREAMSETSI(S, SX); 40290000=10257200= @@ -9427,7 +9517,7 @@ EXIT: 40870000 EL:= TABLE(NXTELBT); 41535000=12112000= NXTELBT:= NXTELBT-1; 41540000=12113000= IF EL ^= LEFTPAREN AND EL ^= LFTBRKET THEN 41545000=12114000= - FLAG(141); 41550000=12115000= + FLAG(141) 41550000=12115000= ELSE 41555000=12116000= DO BEGIN 41560000=12116000= J:= J+1; 41565000=12116000= @@ -9856,7 +9946,7 @@ COMMENT JUMPCHKNX DETERMINES WHETHER ANY EXECUTABLE CODE HAS BEEN 43420000 STREAMTRANSFERDEC(5); 43605000=13642000= END PRINT; 43610000=13643000= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%43612000 - CODE[0]:= SAVECODE; 43615000=13651000= + CODE[0]:= REAL(SAVECODE); 43615000=13651000= IF SAVECODE AND INTOG AND NOT DECKTOG THEN 43620000=13651100= FLAG(57); 43625000=13651100= IF LISTER OR SEGSTOG THEN 43630000=13652000= @@ -9887,7 +9977,7 @@ COMMENT JUMPCHKNX DETERMINES WHETHER ANY EXECUTABLE CODE HAS BEEN 43420000 BEGIN 43730000=13663000= STREAMLOCALS; 43732000 STREAMSETDI(FIEL, 0); 43735000=13665000= - STREAMTRANSFERLIT(8, 6" "); 43740000=13665000= + STREAMSMEARLIT(8, 6" "); 43740000=13665000= STREAMSETSI(FIEL, 0); 43745000=13667000= STREAMTRANSFERWDS(14); 43750000=13667000= STREAMSKIPDI(-16); 43755000=13668000= @@ -9923,7 +10013,7 @@ COMMENT JUMPCHKNX DETERMINES WHETHER ANY EXECUTABLE CODE HAS BEEN 43420000 N:= STREAMTEMPD[0]; 43882000 STREAMSETDI(S, SX); 43885000=13673350= STREAMSETLOCSI(F); 43890000=13673350= - STREAMKIPSI(+7); 43895000=13673350= + STREAMSKIPSI(+7); 43895000=13673350= STREAMTRANSFERCHR(1); 43900000=13673350= STREAMSETLOCSI(C); 43905000=13673350= STREAMTRANSFERDEC(3); 43910000=13673400= @@ -9948,7 +10038,7 @@ COMMENT JUMPCHKNX DETERMINES WHETHER ANY EXECUTABLE CODE HAS BEEN 43420000 IF FR > 1024 THEN 44000000=13677250= FR:= FR-1024; 44005000=13677250= DOIT(KLASSF, FR, INFO[PROINFO.LINKR,*], PROINFO.LINKC, 44010000=13677400= - TWXA, 0, SAF, SIZE); 44015000=13677400= + TWXA, 0, REAL(SAF), SIZE); 44015000=13677400= WRITE(STUFF, 10, TWXA[*]); 44020000=13677500= END; 44025000=13677600= IF SIZE > SEGSIZEMAX THEN 44030000=13678000= @@ -10212,7 +10302,7 @@ COMMENT SOP IS TRUE IF THE BLOCK WAS CALLED BY ITSELF THROUGH THE 45040000 BEGINCTR:= BEGINCTR+1; 45490000=14035000= IF SOP THEN 45495000=14037000= BEGIN 45500000=14037000= - BLKAD:= PROADD; 45505000=14037000= + BLKAD:= PROADO; 45505000=14037000= IF LASTENTRY ^= 0 THEN 45510000=14039000= BEGIN 45515000=14039000= GT1:= BUMPL; 45520000=14039000= @@ -10433,11 +10523,10 @@ SWITCHDEC: 46505000 IF STEPI ^= LABELID OR ELBAT[I].LVL ^= LEVEL THEN 46605000=14220000= FLAG(63); 46610000=14220000= PUTNBUMP(ELBAT[I]); 46615000=14221000= - GT1:= GT1+1; 46620000=14221000= - END; 46625000=14222000= - ; COMMENT 46630000=14222500= - UNTIL STEPI^=COMMA; 46635000=14223000= -PUT(GT1, GT2); 46640000=14224000= + GT1:= GT1+1 46620000=14221000= + END COMMENT 46625000=14222000= + UNTIL STEPI^=COMMA; 46635000=14223000= + PUT(GT1, GT2); 46640000=14224000= STOPENTRY:= STOPGSP:= FALSE; 46645000=14251000= END SWITCHDEC; 46650000=14252000= GO TO START; 46655000=14253000= @@ -10458,6 +10547,7 @@ DEFINEDEC: 46660000 SX, K, J; 46718000 BEGIN 46720000=14254300= STREAMLOCALS; 46722000 + TALLY:= 0; 46724000 STREAMSETSI(S, SX); 46725000=14254300= STREAMSKIPSI(+2); 46730000=14254300= STREAMSETDI(D, 0); 46735000=14254300= @@ -10468,7 +10558,7 @@ DEFINEDEC: 46660000 STREAMSKIPDI(+7); 46755000=14254500= IF STREAMCOMPARENEQ(1) THEN 46760000=14254600= TALLY:= 1; 46765000=14254600= - PARM:= TALLY; 46770000=14254700= + PARM:= BOOLEAN(TALLY); 46770000=14254700= END; 46775000=14254800= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%46776000 STOPENTRY:= STOPGSP:= TRUE; 46780000=14255000= @@ -10814,9 +10904,8 @@ HF: BEGIN 47785000 IF ELCLASS = BEGINV THEN 48485000=14479000= BEGIN 48490000=14481000= CALLINFO:= (CALLX:= CALLX+1)+1; 48495000=14481100= - NEXTCTR:= STACKCTR; 48500000=14481200= + NESTCTR:= STACKCTR; 48500000=14481200= BLOCK(TRUE); 48505000=14482000= - ; 48510000=14483000= PURGE(PINFOO); 48515000=14483000= IF NESTOG THEN 48520000=14483100= BEGIN 48525000=14483200= @@ -10888,7 +10977,7 @@ CALLSTATEMENT: 48680000 SORTNEST; 48855000=14601000= PURGE(NINFOO); 48860000=14601000= END; 48865000=14601000= - SEGMENT((L+3) DIV 4, PROADD); 48870000=14602000= + SEGMENT((L+3) DIV 4, PROADO); 48870000=14602000= IF LEVEL > 1 THEN 48875000=14603000= RIGHT(L); 48880000=14603000= IF LEVEL:= LEVEL-1 = 0 THEN 48885000=14604000= @@ -11275,7 +11364,7 @@ COMMENT 208 VARIABLE- NUMBER OF SUBSCRIPTS DOES NOT MATCH WITH * 50680000 EMITD(48-T2, T1, T2); 50795000=15308000= EMITO(XCH); 50800000=15309000= IF TALL.ADDRESS > 1023 THEN 50805000=15310000= - EMITI(PRTE); 50810000=15310000= + EMITO(PRTE); 50810000=15310000= EMITO(IF TALL.CLASS MOD 2 = INTARRAYID MOD 2 THEN IF P1 = FS 50815000=15335000= THEN ISD ELSE ISN ELSE IF P1 = FS THEN STD ELSE SND); 50820000=15335000= STACKCT:= 0; 50825000=15335500= @@ -11700,12 +11789,13 @@ EXIT: 52305000 IF STEPI ^= TOV THEN 52385000=16252000= I:= I-1; 52390000=16252000= IF STEPI ^= STLABID THEN 52395000=16253000= - ELCLASS <= IDMAX 52400000=16253000= - DECLARELABEL ELSE 52405000=16253100= - BEGIN 52410000=16253100= - ERR(260); 52415000=16253100= - GO TO EXIT 52420000=16253100= - END; 52425000=16253100= + IF ELCLASS <= IDMAX THEN 52400000=16253000= + DECLARELABEL 52405000=16253100= + ELSE 52407000 + BEGIN 52410000=16253100= + ERR(260); 52415000=16253100= + GO TO EXIT 52420000=16253100= + END; 52425000=16253100= IF (GT2:= TAKE(GIT(GT1:= ELBAT[I]))).MON = 1 OR GT2.LOC ^= 0 THEN 52430000=16255000= EMITJUMP(GT1) 52435000=16256000= ELSE 52440000=16256000= @@ -11869,7 +11959,7 @@ EXIT: 53005000 EMITC(ADDR, 10) 53220000=16378500= ELSE %E 53225000=16378500= IF ELCLASS = TRNSFER THEN 53230000=16379000= - EMITC(ADDR, ELBAT[1].OPCODE) 53235000=16380000= + EMITC(ADDR, ELBAT[I].OPCODE) 53235000=16380000= ELSE 53240000=16380000= IF ELCLASS = LITV THEN 53245000=16381000= BEGIN 53250000=16382000= @@ -11961,7 +12051,7 @@ EXIT: 53360000 BEGIN 53655000=16441000= JOINFO:= NEXTINFO; 53660000=16442000= PUTNBUMP 53665000=16444000= - (STACKHEAD[0], LINK & (STLABID*2+1)[45:7:8] & 2[20:7:8]); 53670000=16444000= + (STACKHEAD[0].LINK & (STLABID*2+1)[45:7:8] & 2[20:7:8]); 53670000=16444000= PUTNBUMP(0 & (JOINFO-LASTINFO)[43:7:8]); 53675000=16445000= PUTNBUMP(0); 53680000=16446000= LASTINFO:= JOINFO; 53685000=16447000=