00000100 $.SINGLE                                                                         
00000300 $# PATCH 002 STANDARD OUTPUT FILE ATTRIBUTES FOR III.0                           
00000400                 BLOCKSIZE = 270,                                        00104600 
00000500                 AREASIZE = 504,                                         00104700 
00000600 DEFINE CHUNK = 504#;   %MUST = CODE AREASIZE                            00105200 
00000700    NEWTAPE(INTMODE=EBCDIC,KIND=DISK,AREAS=60,AREASIZE=1008,             00140400 
00000800 $# PATCH 003 FILE PARAMETERS IN FORWARD PROCEDURE DECLARATIONS                   
00000900                                 THEN 1 ELSE                             00883900 
00001000                                 IF(FORM(IDTYPE(LIP1))=FILES) THEN 3     00883902 
00001100                                                              ELSE 2);   00883904 
00001200 $# PATCH 004 RANDOM PARAMETER                                                    
00001300 "FILE ATTRIBUTES CONTAINING RESERVED WORDS MUST BE ENCLOSED IN QUOTES", 00491100 
00001400 "RANDOM REQUIRES A VAR PARAMETER"                                       00491102 
00001500   4"0044076C0867",                                                      00528000 
00001600   4"001F07780B27");                                                     00528002 
00001700   NOOFERRORMESSAGES = 262#,                                             00528300 
00001800   NOOFERRORNUMBERS = 367#;                                              00528400 
00001900   IF (GKIND NEQ VARBL) THEN ERROR(2855);                                01146102 
00002000 $# PATCH 005 BUG WITH STBR INSTRUCTION                                           
00002100  $VERSION 30.005                                                        00000003 
00002200           IF(LDPLMT=(LC-1)) THEN GENOP(PUSH);                           01463302 
00002300 $# PATCH 007 REMOVE BUG IN EXPRESSIONS WITH SUBRANGES AS LAST FACTOR             
00002400   GTYPTR:=INTPTR;                                                       01008810 
00002500 $# PATCH 008 BAN PASSING OF FIELDS <48 BITS AS VAR PARAMETERS                    
00002600               IF(FORM(IDTYPE(LCP))=RECORDS) THEN BEGIN                  01259010 
00002700                 IF(PACKED(IDTYPE(LCP))=PACKEDSTRUC) THEN BEGIN          01259012 
00002800                   IF(FORM(GTYPTR) < POWER) THEN BEGIN                   01259014 
00002900                     IF(GBITRANGE NEQ BITSPERWORD) THEN BEGIN            01259016 
00003000                       ERROR(2469);                                      01259018 
00003100                     END;                                                01259020 
00003200                   END;                                                  01259022 
00003300                 END;                                                    01259024 
00003400               END;                                                      01259026 
00003500 $# PATCH 009 PREVENT COMPILER ABORT                                              
00003600           IF (INXTYPE(LSP1)=NIL) THEN BEGIN                             00769200 
00003700             ELSPERWORD(LSP1):=1;                                        00769210 
00003800           END ELSE BEGIN                                                00769220 
00003900 $# PATCH 010 INSERT BOUNDS CHECKING CODE FOR ARRAYS IN RECORDS                   
00004000  $VERSION 30.010                                                        00000003 
00004100                 IF(FORM(AELTYPE(LTYPTR))=ARRAYS) OR MULTIDIMARRAY OR    00976800 
00004200                   (KLASS(FORMALIDENTPTR)=FIELD) OR                      00976810 
00004300                   (KLASS(IDENTIFIERPTR)=FIELD) THEN                     00976820 
00004400 $# PATCH 011 INCORRECT ADDRESSING FOR SUBRANGES IN RECORDS IN ARRAYS             
00004500  $VERSION 30.011                                                        00000003 
00004600                     GPACKEDARRAY:=FALSE;                                00984810 
00004700 $# PATCH 012 BUG IN SHORT SET OF SCALAR WHEN SETSIZE SET>48                      
00004800  $VERSION 30.012                                                        00000003 
00004900           IF (LMAX-LMIN > MAXSETSIZE) AND                               00774600 
00005000           NOT ((LSP1 = CHARPTR) OR (FORM(LSP1)=SCALAR AND               00774610 
00005100               (SCALKIND(LSP1)=DECLARED))) THEN BEGIN                    00774620 
00005200                     SETTYPE(LSP):=SSET;                                 01322010 
00005300 $# PATCH 013 BUG IN NEW(PTR,TAG) WHEN TAG NOT IN RECORD DESCR                    
00005400  $VERSION 30.013                                                        00000003 
00005500 SWORDS(LSP):=DISPL+(IF(NEXTBIT NEQ (BITSPERWORD-1)) THEN 1 ELSE 0);     00753700 
00005600 $# PATCH 014 CHECK TYPE OF FIELD PARAMETERS IN WRITE                             
00005700  $VERSION 30.014                                                        00000003 
00005800 "RANDOM REQUIRES A VAR PARAMETER",                                      00491102 
00005900 "AN INTEGER EXPRESSION WAS EXPECTED HERE",                              00491104 
00006000 0);                                                                     00491200 
00006100   4"001F07780B27",                                                      00528002 
00006200   4"0027077E0B79",                                                      00528004 
00006300   0);                                                                   00528099 
00006400   NOOFERRORMESSAGES = 263#,                                             00528300 
00006500   NOOFERRORNUMBERS = 368#;                                              00528400 
00006600               IF COMPTYPES(GTYPTR,INTPTR) THEN BEGIN                    01034450 
00006700               END ELSE BEGIN                                            01034510 
00006800                 ERROR(2937);                                            01034520 
00006900               END;                                                      01034530 
00007000                 IF COMPTYPES(GTYPTR,INTPTR) THEN BEGIN                  01035650 
00007100                 END ELSE BEGIN                                          01035710 
00007200                   ERROR(2937);                                          01035720 
00007300                 END;                                                    01035730 
00007400               IF COMPTYPES(GTYPTR,INTPTR) THEN BEGIN                    01038710 
00007500               END ELSE BEGIN                                            01038810 
00007600                 ERROR(2937);                                            01038820 
00007700               END;                                                      01038830 
00007800           IF COMPTYPES(GTYPTR,INTPTR) THEN BEGIN                        01071250 
00007900           END ELSE BEGIN                                                01071310 
00008000             ERROR(2937);                                                01071320 
00008100           END;                                                          01071330 
00008200             IF COMPTYPES(GTYPTR,INTPTR) THEN BEGIN                      01072450 
00008300             END ELSE BEGIN                                              01072510 
00008400               ERROR(2937);                                              01072520 
00008500             END;                                                        01072530 
00008600 $# PATCH 015  AVOID ABORT WHEN AUTOBIND SET                                      
00008700  $VERSION 30.015                                                        00000003 
00008800   MAXBINDCHARS = 1023#,                                                 00060000 
00008900       IF (CBINDCHARS+4 > MAXBINDCHARS) THEN BEGIN                       00453010 
00009000         ERROR(2023);                                                    00453020 
00009100       END ELSE BEGIN                                                    00453030 
00009200       END;                                                              00453110 
00009300   4"0027075507E7",                                                      00527702 
00009400   NOOFERRORNUMBERS = 369#;                                              00528400 
00009500 $# PATCH 016 REMOVE BUG IN TYPE OF SET                                           
00009600  $VERSION 30.016                                                        00000003 
00009700           IF (LMAX-LMIN+1 > MAXSETSIZE) AND                             00774600 
00009800             LSIZE := (LMAX-LMIN+1+BITSPERWORD) DIV BITSPERWORD;         00775000 
00009900 $# PATCH 017 INSERT WARNING FOR LONG SETS WITH NON-ZERO LOWER BOUND              
00010000  $VERSION 30.017                                                        00000003 
00010100 "THE SET CONSTRUCTOR ASSUMES A LOWER BOUND OF ZERO",                    00491106 
00010200   4"003107850597",                                                      00528006 
00010300   NOOFERRORMESSAGES = 264#,                                             00528300 
00010400   NOOFERRORNUMBERS = 370#;                                              00528400 
00010500           IF (LMIN NEQ 0) THEN ERROR(1431);                             00774510 
00010600 $# PATCH 019  REMOVE BUG CONCERNING REWRITE ON FILES                             
00010700  $VERSION 30.019                                                        00000003 
00010800 IF NOT (((FILTYPE(GTYPTR)=CHARBUFPTR) OR (FILTYPE(GTYPTR)=WORDBUFPTR))  01154410 
00010900   AND (SYMBOL=RPARENT) AND                                              01154420 
00011000     (RESET OR REWRITE))                                                 01154430 
00011100 THEN BEGIN                                                              01154440 
00011200 END;                                                                    01157810 
00011300 $# PATCH 021 PREVENT SEG ARRAY ERR OF COMPILE WITH LOT OF STRINGS                
00011400  $VERSION 30.021                                                        00000003 
00011500 POOLINDEX:=0;   POOLMAX:=6119; %(1020*6 - 1)                            00550100 
00011600   POOLMAX:=6119;                                                        01587200 
00011700 $# PATCH 023 ENSURE THAT INCLUDED IMAGES WITH ERRORS ARE LISTED                  
00011800  $VERSION 30.023                                                        00000003 
00011900    LINELISTED,                %CURRENT LINE HAS BEEN LISTED             00145950 
00012000   END#,                                                                 00155310 
00012100                                                                         00155320 
00012200   PRINTCARD = BEGIN                                                     00155330 
00012300     IF (NOT LINELISTED) THEN BEGIN                                      00155340 
00012400       EDITLINE(LASTCHAR-72);                                            00155350 
00012500       WRITELINE;                                                        00155360 
00012600       LINELISTED:=TRUE;                                                 00155370 
00012700     END;                                                                00155380 
00012800 $SET VOIDT                                                              00158999 
00012900 $POP VOIDT                                                              00159401 
00013000   LINELISTED:=FALSE;                                                    00163250 
00013100     PRINTCARD;                                                          00215900 
00013200 %                                                                       00216000 
00013300     IF (NOT LINELISTED) THEN BEGIN                                      00529800 
00013400         PRINTCARD;                                                      00530400 
00013500 %                                                                       00530500 
00013600 $# PATCH 024 INDEX STRINGS ON HEAP IN CHARS, NOT WORDS                           
00013700  $VERSION 30.024                                                        00000003 
00013800   BOOLEAN MULTIDIMARRAY,PACKEDARRAYONHEAP;                              00958500 
00013900   MULTIDIMARRAY := PACKEDARRAYONHEAP := FALSE;                          00959100 
00014000                 IF PACKEDARRAYONHEAP THEN BEGIN                         00973010 
00014100                   GENLIT(ELSPERWORD(LTYPTR));                           00973020 
00014200                   GENOP(MULT);                                          00973030 
00014300                   LCHARDESCR:=TRUE;                                     00973040 
00014400                 END;                                                    00973050 
00014500         PACKEDARRAYONHEAP:=FALSE;                                       00982550 
00014600       MULTIDIMARRAY := PACKEDARRAYONHEAP := FALSE;                      00983000 
00014700       MULTIDIMARRAY := PACKEDARRAYONHEAP := FALSE;                      00989900 
00014800           IF (GTYPTR NEQ NIL) THEN BEGIN                                00990510 
00014900             IF (FORM(GTYPTR) = ARRAYS) THEN BEGIN                       00990520 
00015000               IF (PACKED(GTYPTR) = PACKEDSTRUC) THEN BEGIN              00990530 
00015100                 IF (ELSPERWORD(GTYPTR) NEQ 1) THEN BEGIN                00990540 
00015200                   PACKEDARRAYONHEAP:=TRUE;                              00990550 
00015300                 END;                                                    00990560 
00015400               END;                                                      00990570 
00015500             END;                                                        00990580 
00015600           END;                                                          00990590 
00015700 $# PATCH 025 COUNT STACKCELLS CORRECTLY WHEN AUTOBINDING                         
00015800  $VERSION 30.025                                                        00000003 
00015900   PDIRECTORY[0] := 0 & (29-LASTPROCDIREC) SCV                           00334600 
00016000 %                                                                       00334800 
00016100   INTEGER BLOCKSTART;     % START OF EXECUTABLE CODE                    00623350 
00016200         GENOP1(LT8,6);                                                  00822710 
00016300         GENV(NAMC,LEXLEVEL,LC+2);                                       00822720 
00016400         GENOP(INDX);                                                    00822730 
00016500         GENLIT(5 & 1[36:1] & 1[20:1]);                                  00822740 
00016600         GENOP1(LT8,4);                                                  00822750 
00016700         GENOP(STAG);                                                    00822760 
00016800         GENOP(STOD);                                                    00822770 
00016900   INTEGER LCT,LASTKIND,FSIZE,RESUME,STATSRUN,I,BCHARSIZE,LAB;           00899900 
00017000 $SET VOIDT                                                              00900399 
00017100 $POP VOIDT                                                              00900901 
00017200 %                                                                       01516500 
00017300 $SET VOIDT                                                              01516699 
00017400 $POP VOIDT                                                              01517501 
00017500 $SET VOIDT                                                              01534499 
00017600 $POP VOIDT                                                              01534701 
00017700 %                                                                       01547100 
00017800 $SET VOIDT                                                              01547299 
00017900 $POP VOIDT                                                              01548201 
00018000   GENBR(BRUN,BLOCKSTART);                                               01548700 
00018100   BLOCKSTART:=MAKELABEL; GENLABEL(BLOCKSTART);                          01550210 
00018200   IF (FPROCP = NIL) THEN BEGIN                                          01550220 
00018300     IF BINDINFOTOG THEN BEGIN                                           01550230 
00018400       FIRSTEXECCODE := 0 & SEGNUMBER BSEGMENT                           01550240 
00018500                          & (SEGWORDINDEX-SEGMENTBASE) WORDOFFSET        01550250 
00018600                          & SEGSYLINDEX BYTEOFFSET                       01550260 
00018700                          & LEXLEVEL BLL;                                01550270 
00018800     END;                                                                01550280 
00018900   END;                                                                  01550290 
00019000     GENOP1(LT8,6);                                                      01553010 
00019100     GENV(NAMC,LEXLEVEL,ADDRIFILEDATA);                                  01553020 
00019200     GENOP(INDX);                                                        01553030 
00019300     GENLIT(5 & 1[36:1] & 1[20:1]);                                      01553040 
00019400     GENOP1(LT8,4);                                                      01553050 
00019500     GENOP(STAG);                                                        01553060 
00019600     GENOP(STOD);                                                        01553070 
00019700     GENOP1(LT8,6);                                                      01554510 
00019800     GENV(NAMC,LEXLEVEL,ADDROFILEDATA);                                  01554520 
00019900     GENOP(INDX);                                                        01554530 
00020000     GENLIT(5 & 1[36:1] & 1[20:1]);                                      01554540 
00020100     GENOP1(LT8,4);                                                      01554550 
00020200     GENOP(STAG);                                                        01554560 
00020300     GENOP(STOD);                                                        01554570 
00020400 $# PATCH 026 FIX INDEX BIAS FOR STRING IN ARRAY IN RECORD IN ARRAY               
00020500  $VERSION 30.026                                                        00000003 
00020600                       IF NOT LCHARDESCR THEN BEGIN                      00969380 
00020700                         LIDPLMT:=LIDPLMT*ELSPERWORD(AELTYPE(LTYPTR));   00969390 
00020800                         LCHARDESCR:=TRUE;                               00969400 
00020900                       END;                                              00969410 
00021000 $# PATCH 027 PREVENT COMPILER ZERO DIVIDE HANDLING CONST MOD 1                   
00021100  $VERSION 30.027                                                        00000003 
00021200         RMIN := RMAX := LMIN MOD GMIN;                                  01005400 
00021300 $# PATCH 028 PREVENT INTEGER OFLO IN COMPILER CHECKING SOME RANGES               
00021400  $VERSION 30.028                                                        00000003 
00021500   RMIN,RMAX,RESULT;                                                     00998300 
00021600   RESULT:=A*B;                                                          00999150 
00021700 %                                                                       00999400 
00021800 %                                                                       00999700 
00021900 %                                                                       00999800 
00022000 %                                                                       01000000 
00022100 %                                                                       01000100 
00022200     RMIN:=LMIN+GMIN;                                                    01001900 
00022300     RMAX:=LMAX+GMAX;                                                    01002000 
00022400 %                                                                       01002200 
00022500     RMIN:=LMIN-GMAX;                                                    01002300 
00022600     RMAX:=LMAX-GMIN;                                                    01002400 
00022700 %                                                                       01003300 
00022800 %                                                                       01003400 
00022900 %                                                                       01004800 
00023000 %                                                                       01008500 
00023100   IF (ABS(RMIN)>MAXINT) THEN GMIN:=SIGN(RMIN)*(MAXINT+1)  %OFLO         01008820 
00023200                         ELSE GMIN:=RMIN;                                01008830 
00023300   IF (ABS(RMAX)>MAXINT) THEN GMAX:=SIGN(RMAX)*(MAXINT+1)  %OFLO         01008840 
00023400                         ELSE GMAX:=RMAX;                                01008850 
00023500 $# PATCH 029 CLOSE LOOPHOLE IN SYNTAX CHECK OF PARAMETER LIST                    
00023600  $VERSION 30.029                                                        00000003 
00023700           CHECKIN(SEMICOLONRPARENTSET,2418);                            00875900 
00023800 $# PATCH 030 CORRECT SEGMENT LENGTH MESSAGES FOR DATA                            
00023900  $VERSION 30.030                                                        00000003 
00024000     "  LENGTH = ",LPOOLINDEX FOR 4 DIGITS," WORDS";                     00551600 
00024100 $# PATCH 031 INADVERTENT USE OF EOL FOR EOLN CAUSED COMPILER ABORT               
00024200  $VERSION 30.031                                                        00000003 
00024300           ELSE:;                                                        00926150 
00024400 $# PATCH 032 COMPILER ABORTED CONVERTING CONST BETWEEN MAXINT & 10**12           
00024500  $VERSION 30.032                                                        00000003 
00024600 MAXINTSTRING="549755813887"#, %MAXINT AS A STRING                       00011050 
00024700 "INTEGER IS TOO BIG TO CONVERT (MAXINT = 549755813887)",                00466800 
00024800       IF (LENGTH<12) OR                                                 00583600 
00024900          ((LENGTH=12) AND (INSYP<=MAXINTSTRING)) THEN BEGIN             00583650 
00025000 $# PATCH 033 REFER TO OTHERWISE INSTEAD OF ELSE IN CASE MESSAGES                 
00025100  $VERSION 30.033                                                        00000003 
00025200 "OTHERWISE IS NOT STANDARD PASCAL",                                     00485800 
00025300   4"002005C4068D",                                                      00521700 
00025400 $# PATCH 034 FIX BOUNDS CHECK FOR ARRAY WITH UNDECLARED SUBRANGE AS DIM.         
00025500  $VERSION 30.034                                                        00000003 
00025600           BITS(LSP):=BITSPERWORD;                                       00764650 
00025700 $# PATCH 035 ENLARGE VD1OFFSET TO HANDLE MORE STRING CONSTANTS                   
00025800  $VERSION 30.035                                                        00000003 
00025900         VD1OFFSET(S)=HEAP[S+2].[45:14]#,                                00040200 
00026000 $# PATCH 036 USE OF PACKED MULTIDIM. ARRAY OF INTEGER CAUSED PROBS               
00026100  $VERSION 30.036                                                        00000003 
00026200             IF (LBITS=BITSPERWORD) THEN                                 00769510 
00026300               PACKED(LSP1):=UNPACKEDSTRUC;                              00769520 
00026400 $# PATCH 037 BLANK FILL SHORT STRINGS WHEN ASCII SET                             
00026500  $VERSION 30.037                                                        00000003 
00026600                   IF ASCIITOG THEN GENLIT(7"      ")                    01410900 
00026700                               ELSE GENLIT("      ");                    01410950 
00026800 $# PATCH 038 $INCLUDE WITH SINGLE SEQNO CAUSED COMPILER ABORT                    
00026900  $VERSION 30.038                                                        00000003 
00027000 %                                                                       00223200 
00027100 $# PATCH 039 CORRECTLY PARSE READ STATEMENT (WITH EXTRA COMMA)                   
00027200  $VERSION 30.039                                                        00000003 
00027300       END ELSE BEGIN                                                    01063300 
00027400         IF (SYMBOL NEQ IDENT) THEN BEGIN                                01063310 
00027500           ERROR(2400);                                                  01063320 
00027600         END;                                                            01063330 
00027700       END;                                                              01063340 
00027800 $# PATCH 040 FIX PARAMETER SETUP FOR PASCALPACK INTRINSIC                        
00027900  $VERSION 30.040                                                        00000003 
00028000   BOOLEAN TRANSFERPROC;                                                 00907750 
00028100         IF NOT TRANSFERPROC THEN                                        00960150 
00028200   TRANSFERPROC:=TRUE;                                                   01214050 
00028300   TRANSFERPROC:=FALSE;                                                  01222750 
00028400   TRANSFERPROC:=TRUE;                                                   01223450 
00028500   TRANSFERPROC:=FALSE;                                                  01230750 
00028600 $# PATCH 041 DISALLOW IOLIST FOR READ STATEMENT                                  
00028700  $VERSION 30.041                                                        00000003 
00028800     END ELSE ERROR(2910);                                               01065100 
00028900 $# PATCH 042 DETECT MISSING RBRACKET IN DIRECT ACCESS GET                        
00029000  $VERSION 30.042                                                        00000003 
00029100   RBRACKREQUIRED,                                                       01098350 
00029200     IF (SYMBOL = LBRACK) THEN RBRACKREQUIRED := TRUE                    01099610 
00029300                          ELSE RBRACKREQUIRED := FALSE;                  01099620 
00029400     ELSE IF RBRACKREQUIRED THEN BEGIN                                   01102800 
00029500 $# PATCH 043 DETECT EXTRANEOUS COMMA IN PARAMETER LIST                           
00029600  $VERSION 30.043                                                        00000003 
00029700         END ELSE BEGIN                                                  00867310 
00029800           ERROR(2403);                                                  00867320 
00029900           END ELSE BEGIN                                                00871510 
00030000             ERROR(2403);                                                00871520 
00030100 $# PATCH 044 A WRITEREC WAS GETTING CODED AS A READ COMMAND                      
00030200  $VERSION 30.044                                                        00000003 
00030300                  ((IF(UNITFEATURE=NOUNITFEATURE) THEN 2 ELSE KEYED)     01104600 
00030400                  +(IF(READREC OR GET) THEN 1 ELSE 0)) [11:4]            01104700 
00030500 $# PATCH 045 WHEN $INCLUDE FILE ALREADY OPEN, SEQNOS WERE IGNORED                
00030600  $VERSION 30.045                                                        00000003 
00030700     IF INCLFILE.OPEN THEN BEGIN                                         00221700 
00030800       INCLSEQ:=INCLDIR[I:=INCLX*INCLSZ];                                00221710 
00030900       LASTINCLSEQ:=INCLDIR[I+2];                                        00221720 
00031000       VALIDINCLBUFF:=BOOLEAN(INCLDIR[I+1]).VALIDBIT;                    00221730 
00031100       GO TO CHECKOPTION;                                                00221740 
00031200     END                                                                 00221750 
00031300 $# PATCH 046 ALLOW FOR BLANKS IN INCLUDE FILE NAME                               
00031400  $VERSION 30.046                                                        00000003 
00031500   IF PNEXTCHAR=""" FOR 1 THEN                                           00222310 
00031600     SCAN PNEXTCHAR:PNEXTCHAR+1 UNTIL=""";                               00222320 
00031700 $# PATCH 047 IMPROVE HANDLING OF EMPTY LONG SETS                                 
00031800  $VERSION 30.047                                                        00000003 
00031900         DEFAULTSETPTR,  % FOR EMPTY SET WHEN SIZE NOT KNOWN             00065950 
00032000         TYPESTRUCTPTR LTYPTR,LOTHERTYPTR;                               00073600 
00032100         LOTHERTYPTR:=GOTHERTYPTR;                                       00075250 
00032200         GOTHERTYPTR:=LOTHERTYPTR;                                       00076950 
00032300 TYPESTRUCTPTR GTYPTR,GOTHERTYPTR;                                       00078500 
00032400         MAXSETSIZE:=MIN(MAXSETSIZE,65535);                              00250900 
00032500         SETTYPE(DEFAULTSETPTR):=IF (MAXSETSIZE>(BITSPERWORD-1)) THEN    00250910 
00032600                                   LSET                                  00250920 
00032700                                 ELSE                                    00250930 
00032800                                   SSET;                                 00250940 
00032900       SETTYPE(LSP):=SETTYPE(GOTHERTYPTR);                               01316600 
00033000         IF LONGSET(GOTHERTYPTR) THEN BEGIN                              01317100 
00033100     GOTHERTYPTR:=LTYPTR;                                                01344950 
00033200     GOTHERTYPTR:=LTYPTR;                                                01357350 
00033300     IF (LOP = INOPR) THEN BEGIN                                         01381730 
00033400       GOTHERTYPTR:=DEFAULTSETPTR;                                       01381740 
00033500     END ELSE BEGIN                                                      01381750 
00033600       GOTHERTYPTR:=LTYPTR;                                              01381760 
00033700     END;                                                                01381770 
00033800     GOTHERTYPTR:=LTYPTR;                                                01402050 
00033900     GOTHERTYPTR:=DEFAULTSETPTR;                                         01510350 
00034000     GOTHERTYPTR:=DEFAULTSETPTR;                                         01515150 
00034100   %                                                                     01590310 
00034200   NEW(DEFAULTSETPTR,OTHERSTRUCTSIZE);                                   01590320 
00034300   SETTYPE(DEFAULTSETPTR):=IF (MAXSETSIZE>(BITSPERWORD-1)) THEN          01590330 
00034400                             LSET                                        01590340 
00034500                           ELSE                                          01590350 
00034600                             SSET;                                       01590360 
00034700   FORM(DEFAULTSETPTR):=POWER;                                           01590370 
00034800 $# PATCH 049 PREVENT ILLEGAL USE OF STANDARD FUNCTION IDENTIFIERS                
00034900  $VERSION 30.049                                                        00000003 
00035000       END ELSE BEGIN                                                    01401710 
00035100         ERROR(2645);                                                    01401720 
00035200         GTYPTR:=NIL;                                                    01401730 
00035300 $# PATCH 050 WRONG $INCLUDE FILE USED WHEN NAMES SIMILAR                         
00035400  $VERSION 30.050                                                        00000003 
00035500       IF (PTEMP0 = Q FOR DELTA(PNEXTCHAR,P)) THEN                       00221000 
00035600 $# PATCH 051 REMOVES USE OF OBSOLETE REAL(POINTER)                               
00035700  $VERSION 30.051                                                        00000003 
00035800   OFFS = [25:5]#,                                                       00059400 
00035900   DELTA(P,Q) =                                                          00153900 
00036000                (OFFSET(Q)-OFFSET(P))#,                                  00154000 
00036100 BITPICKER := 0 & LD LDIRSEGMENT & SAVEBINDEX OFFS                       00332800 
00036200 $# PATCH 052 A $POP OMIT WAS MISSING WITH VMODE RESET                            
00036300  $VERSION 30.052                                                        00000003 
00036400  $POP OMIT                                                              01392550 
00036500 $# PATCH 053 ENABLE CORRECT PRINTING OF SHORTSET1 <> SHORTSET2                   
00036600  $VERSION 30.053                                                        00000003 
00036700                 GENOP(SAME); GENOP(LNOT); GENOP(ONE); GENOP(LAND);      01390500 
00036800 $# PATCH 054 SET CONSTRUCTOR WITH VARS IN SUBRANGE GAVE BAD CODE                 
00036900  $VERSION 30.054                                                        00000003 
00037000             IF NOT VARPART THEN GENOP(ZERO);                            01292800 
00037100 %                                                                       01293100 
00037200               GENOP(EXCH);                                              01293350 
00037300 %                                                                       01293500 
00037400 %                                                                       01293600 
00037500             GENOP(DUPL);                                                01293800 
00037600 %                                                                       01294300 
00037700 %                                                                       01294700 
00037800                       IF NOT VARPART THEN BEGIN                         01330600 
00037900                         GENOP(ZERO);                                    01330700 
00038000                         GENOP(RSDN);                                    01330800 
00038100                         VARPART := TRUE;                                01330900 
00038200                       END;                                              01331000 
00038300                       GENOP(DUPL);                                      01331100 
00038400                       GENOP(RSUP);                                      01331200 
00038500                       GENOP(SUBT);                                      01331300 
00038600                       GENOP(ONE);                                       01331400 
00038700                       GENOP(ADD);                                       01331500 
00038800                       GENOP(ZERO);                                      01331600 
00038900                       GENOP(LNOT);                                      01331700 
00039000 $# PATCH 055 ENSURE LONG SETS ARE USED WHEN BOUNDS OUTSIDE 0..47                 
00039100  $VERSION 30.055                                                        00000003 
00039200           SETTYPE(LSP):=SSET;                                           00774350 
00039300           SETTYPE(LSP):=LSET;                                           00775250 
00039400 %                                                                       00775400 
00039500 %                                                                       00775500 
00039600 $# PATCH 056 USE CORRECT BOUNDS FOR SET CONSTRUCTOR IN ALL CASES                 
00039700  $VERSION 30.056                                                        00000003 
00039800         DEFAULTELSET,           % FOR DEFAULT SET CONSTRUCTOR BOUNDS    00065960 
00039900         SMAX(DEFAULTELSET) := MAXSETSIZE;                               00250950 
00040000                 LMIN:=0; LMAX := SMAX(ELSET(GOTHERTYPTR));              01320900 
00040100                 GETBOUNDS(ELSET(GOTHERTYPTR),LMIN,LMAX);                01321100 
00040200       GENLIT(MIN(SWORDS(LTYPTR),SWORDS(GTYPTR)));                       01345300 
00040300       GENLIT(MIN(SWORDS(LTYPTR),SWORDS(GTYPTR)));                       01357800 
00040400   NEW(DEFAULTELSET,SUBRANGESTRUCTSIZE);                                 01590375 
00040500   FORM(DEFAULTELSET):=SUBRANGE;                                         01590380 
00040600   SMIN(DEFAULTELSET):=0;                                                01590385 
00040700   SMAX(DEFAULTELSET):=MAXSETSIZE;                                       01590390 
00040800   ELSET(DEFAULTSETPTR):=DEFAULTELSET;                                   01590395 
00040900 $# PATCH 057 BAD CODE FOR LONG SET CONSTRUCTOR OF FORM [CONST..VAR]              
00041000  $VERSION 30.057                                                        00000003 
00041100             IF NOT GENARRAYDESCR THEN BEGIN                             01295900 
00041200 $# PATCH 058 COMPATIBILITY CHECK BETWEEN SET ELEMENTS WAS TOO STRINGENT          
00041300  $VERSION 30.058                                                        00000003 
00041400 %                                                                       01282600 
00041500 %                                                                       01282700 
00041600 %                                                                       01282800 
00041700 %                                                                       01282900 
00041800 %                                                                       01283100 
00041900 %                                                                       01320200 
00042000 %                                                                       01320300 
00042100 %                                                                       01320400 
00042200 %                                                                       01320500 
00042300 %                                                                       01320700 
00042400 %                                                                       01328600 
00042500 %                                                                       01328700 
00042600 %                                                                       01328800 
00042700 %                                                                       01328900 
00042800 %                                                                       01329100 
00042900 %                                                                       01336600 
00043000 %                                                                       01336700 
00043100 %                                                                       01336800 
00043200 %                                                                       01336900 
00043300 %                                                                       01337100 
00043400 $# PATCH 059 FORMAL PARAM OF TYPE FILE OF CHAR CAUSED ERROR 2471                 
00043500  $VERSION 30.059                                                        00000003 
00043600                 IF (FILTYPE(LSP)=CHARPTR) THEN BEGIN                    00873950 
00043700                   LSP:=TEXTPTR;                                         00873960 
00043800                 END;                                                    00873970 
00043900 $# PATCH 060 $INCLUDE IMMEDIATELY FOLLOWED BY " GIVES PROBLEMS                   
00044000  $VERSION 30.060                                                        00000003 
00044100     OPTIONDELS(" 0123456789,="""");                                     00197200 
00044200 $# PATCH 061 RESET(FILENAME,FILETITLE) CAN CAUSE LOSS OF FILES                   
00044300  $VERSION 30.061                                                        00000003 
00044400     GENOP(ONE);                                                         01154800 
00044500 $# PATCH 062 IMPLEMENTS $USE OPTION                                              
00044600  $VERSION 30.062                                                        00000003 
00044700    4"0323"8"USE ",                    %USE          35                  00190950 
00044800   SETSIZEOPTION=34#,                                                    00194500 
00044900   USEOPTION=35#;                                                        00194550 
00045000  IF (OPTIONNO=BINDOPTION) THEN BEGIN                                    00230150 
00045100  END ELSE BEGIN                                                         00230450 
00045200   REPLACE BINDCONTROL[CBINDCHARS] BY "USE " FOR 4;                      00230460 
00045300   CBINDCHARS:=*+4;                                                      00230470 
00045400   CARDCHARS:=*+4;                                                       00230480 
00045500  END;                                                                   00230490 
00045600     BINDOPTION:USEOPTION:              %BIND,USE                        00249600 
00045700 $# PATCH 063 IMPLEMENT THE FILE ATTRIBUTE - NEWFILE                              
00045800  $VERSION 30.063                                                        00000003 
00045900     40"070488"8"NEWFILE",                                               00681850 
00046000   DEFINE NOFILEATTRIBUTES = 25#,                                        00682900 
00046100 $# PATCH 064 NO MESSAGE TEXT WAS STORED FOR ERROR 2461                           
00046200  $VERSION 30.064                                                        00000003 
00046300   4"0021025A099D",                                                      00503450 
00046400   NOOFERRORNUMBERS = 371#;                                              00528400 
00046500 $# PATCH 065 CANNOT USE CHARS IN SET CONSTRUCTOR AFTER PATCH #056                
00046600  $VERSION 30.065                                                        00000003 
00046700               END ELSE IF (GTYPTR = CHARPTR) THEN BEGIN                 01320910 
00046800                 LMIN:=0; LMAX:=IF ASCIITOG THEN 127 ELSE 255;           01320920 
00046900 $# PATCH 066 FIX SUBRANGE BOUNDS FOR TERMS & SIMPLE EXPRNS OF LONG SETS          
00047000  $VERSION 30.066                                                        00000003 
00047100       IF (FORM(ELSET(LTYPTR)) = SUBRANGE) THEN BEGIN                    01345110 
00047200         GETBOUNDS(ELSET(LTYPTR),LBMIN,LBMAX);                           01345120 
00047300         GETBOUNDS(ELSET(GTYPTR),GBMIN,GBMAX);                           01345130 
00047400         SMIN(ELSET(LTYPTR)):=MIN(LBMIN,GBMIN);                          01345140 
00047500         SMAX(ELSET(LTYPTR)):=MAX(LBMAX,GBMAX);                          01345150 
00047600       END;                                                              01345160 
00047700       IF (FORM(ELSET(LTYPTR)) = SUBRANGE) THEN BEGIN                    01357610 
00047800         GETBOUNDS(ELSET(LTYPTR),LBMIN,LBMAX);                           01357620 
00047900         GETBOUNDS(ELSET(GTYPTR),GBMIN,GBMAX);                           01357630 
00048000         SMIN(ELSET(LTYPTR)):=MIN(LBMIN,GBMIN);                          01357640 
00048100         SMAX(ELSET(LTYPTR)):=MAX(LBMAX,GBMAX);                          01357650 
00048200       END;                                                              01357660 
00048300 $# PATCH 068 ALLOW FOR $INCLUDE OF GLOBAL FILES                                  
00048400  $VERSION 30.068                                                        00000003 
00048500       IF(PTEMP0 = "(" FOR 1) OR (PTEMP0 = "*" FOR 1) THEN Q:=PTEMP40    00220500 
00048600 $# PATCH 074 FIX UP HANDLING OF PACKED BOOLEAN ARRAYS                            
00048700  $VERSION 30.074                                                        00000003 
00048800             IF (GCHARSIZE=1) AND GPACKEDARRAY THEN GENOP(EXCH);         00917250 
00048900             IF (GCHARSIZE=1) AND GPACKEDARRAY THEN GENOP(EXCH);         00917750 
00049000             IF GPACKEDARRAY THEN BEGIN                                  00918540 
00049100               GENOP(RSUP); GENOP(ADD);                                  00918550 
00049200             END;                                                        00918560 
00049300           IF (GCHARSIZE=1) AND GPACKEDARRAY THEN GENOP(EXCH);           00927350 
00049400           IF (GCHARSIZE=1) AND GPACKEDARRAY THEN GENOP(EXCH);           00927850 
00049500             GENOP(RSUP); GENOP(ADD);                                    00928850 
00049600           IF (GCHARSIZE=1) AND GPACKEDARRAY THEN GENOP(EXCH);           00945050 
00049700           IF (GCHARSIZE=1) AND GPACKEDARRAY THEN GENOP(EXCH);           00945550 
00049800           GENOP(RSUP); GENOP(ADD);                                      00946450 
00049900           IF (GCHARSIZE=1) AND GPACKEDARRAY THEN GENOP(EXCH);           00953350 
00050000           IF (GCHARSIZE=1) AND GPACKEDARRAY THEN GENOP(EXCH);           00953850 
00050100           IF GPACKEDARRAY THEN BEGIN                                    00954640 
00050200             GENOP(RSUP); GENOP(ADD);                                    00954650 
00050300           END;                                                          00954660 
00050400                   END ELSE BEGIN                                        00969840 
00050500                     LSIZE:=(LSIZE+ELSPERWORD(AELTYPE(LTYPTR))-1)        00969850 
00050600                            DIV ELSPERWORD(AELTYPE(LTYPTR));             00969860 
00050700                   IF (PACKED(AELTYPE(LTYPTR))=PACKEDSTRUC) AND          00971700 
00050800                      (BITS(AELTYPE(LTYPTR)) NEQ 1) THEN BEGIN           00971750 
00050900                 IF (PACKED(LTYPTR)=PACKEDSTRUC) AND                     00972400 
00051000                    (BITS(LTYPTR) NEQ 1) THEN BEGIN                      00972450 
00051100               IF (PACKED(LTYPTR)=PACKEDSTRUC) AND                       00972900 
00051200                  (BITS(LTYPTR) NEQ 1) THEN BEGIN                        00972950 
00051300               IF (PACKED(LTYPTR)=PACKEDSTRUC) AND                       00974430 
00051400                  (BITS(LTYPTR)=1) THEN BEGIN                            00974440 
00051500                 LIDPLMT:=LIDPLMT - ((LOWERBOUND*LSIZE)                  00974450 
00051600                          DIV ELSPERWORD(LTYPTR));                       00974460 
00051700               END ELSE BEGIN                                            00974470 
00051800                 LIDPLMT:=LIDPLMT - (LOWERBOUND*LSIZE);                  00974500 
00051900               END;                                                      00974550 
00052000                   IF (LACCESS=INXD) THEN BEGIN                          00975540 
00052100                     GENLIT(GCVAL-LOWERBOUND);                           00975550 
00052200                   END;                                                  00975560 
00052300               IF (LACCESS NEQ INXD) THEN BEGIN                          00976620 
00052400                 IF (PACKED(LTYPTR)=PACKEDSTRUC) THEN BEGIN              00976630 
00052500                   IF (BITS(LTYPTR)=1) THEN BEGIN                        00976640 
00052600                     GENOP(ZERO); GENOP(EXCH);                           00976650 
00052700                   END;                                                  00976660 
00052800                 END;                                                    00976670 
00052900               END;                                                      00976680 
00053000               IF (PACKED(LTYPTR)=PACKEDSTRUC) AND                       00981830 
00053100                  (BITS(LTYPTR)=1) THEN BEGIN                            00981840 
00053200                 IF (LOWERBOUND NEQ 0) THEN BEGIN                        00981850 
00053300                   IF (LOWERBOUND > 0) THEN BEGIN                        00981860 
00053400                     GENLIT(LOWERBOUND); GENOP(SUBT);                    00981870 
00053500                   END ELSE BEGIN                                        00981880 
00053600                     GENLIT(-LOWERBOUND); GENOP(ADD);                    00981890 
00053700                   END;                                                  00981900 
00053800                 END;                                                    00981910 
00053900               END ELSE BEGIN                                            00981920 
00054000                 IF (LACCESS=INXD) THEN BEGIN                            00981930 
00054100                   GENOP(ADD);                                           00981940 
00054200                 END;                                                    00981950 
00054300               END;                                                      00981960 
00054400               LACCESS:=INXD;                                            00981970 
00054500   IF (GCHARSIZE=1) AND GPACKEDARRAY THEN BEGIN                          01050630 
00054600     FLAG.[15:6] := 1;                                                   01050640 
00054700     FLAG.[41:1] := REAL(TRUE);                                          01050650 
00054800     IF (GACCESS=INDRCT) THEN FLAG.[9:6] := GBITADDR;                    01050660 
00054900   END;                                                                  01050670 
00055000     IF (GCHARSIZE=1) AND GPACKEDARRAY AND (GACCESS=INXD) THEN BEGIN     01059040 
00055100       GENOP(RSUP);                                                      01059050 
00055200     END;                                                                01059060 
00055300     IF (GCHARSIZE=1) AND GPACKEDARRAY AND (GACCESS=INXD) THEN BEGIN     01060240 
00055400       GENOP(RSUP);                                                      01060250 
00055500     END;                                                                01060260 
00055600     IF (GCHARSIZE=1) AND GPACKEDARRAY AND (GACCESS=INXD) THEN BEGIN     01061430 
00055700       GENLIT(BITSPERWORD-1);                                            01061440 
00055800       GENOP(RSUP);                                                      01061450 
00055900       GENOP(SUBT);                                                      01061460 
00056000     END;                                                                01061470 
00056100     IF (GCHARSIZE=1) AND GPACKEDARRAY AND (GACCESS=INXD) THEN BEGIN     01061540 
00056200       GENOP(EXCH);                                                      01061550 
00056300       GENOP2(INSR,9,6);                                                 01061560 
00056400     END;                                                                01061570 
00056500 $# PATCH 075 RANGE CHECKING WAS OMITTED WITH DIV WHEN A BOUND IS ZERO            
00056600  $VERSION 30.075                                                        00000003 
00056700     END ELSE                                                            01004130 
00056800       IF (GMAX=0) THEN ERROR(2791)                                      01004140 
00056900       ELSE BEGIN                                                        01004150 
00057000         RMIN := MIN(RMIN,LMIN,LMAX);                                    01004160 
00057100         RMAX := MAX(RMAX,LMIN,LMAX);                                    01004170 
00057200     END ELSE BEGIN                                                      01004600 
00057300       RMIN := MIN(RMIN,-LMIN,-LMAX);                                    01004700 
00057400       RMAX := MAX(RMAX,-LMIN,-LMAX);                                    01004800 
00057500     END;                                                                01004850 
00057600 $# PATCH 076 BAD LONG EMPTY SET CONSTRUCTOR CODE WHEN $SETSIZE REDUCED           
00057700  $VERSION 30.076                                                        00000003 
00057800           LMAX:=SMAX(ELSET(GOTHERTYPTR));  LMIN:=0;                     01318600 
00057900           FSETSIZE:=LMAX+1;                                             01318800 
00058000 $# PATCH 077 DISALLOW PACKED FIELDS OF SUBRANGE > MAXINT                         
00058100  $VERSION 30.077                                                        00000003 
00058200 "SUBRANGE TOO LARGE - USE INTEGER TYPE",                                00491108 
00058300  4"0025078E0955",                                                       00528008 
00058400   NOOFERRORMESSAGES = 265#,                                             00528300 
00058500   NOOFERRORNUMBERS = 372#;                                              00528400 
00058600       END ELSE BEGIN                                                    00747210 
00058700         IF (SMAX(LSP)-SMIN(LSP)) > MAXINT THEN BEGIN                    00747220 
00058800           ERROR(2389);                                                  00747230 
00058900         END;                                                            00747240 
00059000 $# PATCH 079 SET CONSTRUCTOR CAN'T BE ACTUAL PARAM WITH SETSIZE > 48             
00059100  $VERSION 30.079                                                        00000003 
00059200           IF (FORM(IDTYPE(NXT))=POWER) THEN BEGIN                       01260240 
00059300             GOTHERTYPTR:=IDTYPE(NXT);                                   01260250 
00059400           END;                                                          01260260 