(*$A+,U+,L'INCLUDE/ERROR DECK PRE-PROCESSOR.'*) INCLGEN 2 INCLGEN 3 INCLGEN 4 PROGRAM INCLUDE(INPUT,LGO,OUTPUT); INCLGEN 5 INCLGEN 6 (* INCLUDE - PASCAL-6000 INCLUDE/ERROR DECK PRE-PROCESSOR. INCLGEN 7 * J. P. STRAIT. 1978-07-22. INCLGEN 8 * D. J. BIANCHI. 1982-09-15. INCLGEN 9 * INCLGEN 10 * CREATE INCLUDE COMPATIBLE FILE ON LGO FROM COMPILE FORMAT INCLGEN 11 * FILE ON INPUT: INCLGEN 12 * 1. STRIP SEQUENCING INFORMATION PAST COLUMN 72. INCLGEN 13 * 2. TREAT LINES WITH AN ASTERISK IN COLUMN 1 AS INCLUDE INCLGEN 14 * LEVEL COMMENTS (THEY ARE NOT COPIED TO LGO). INCLGEN 15 * 3. LINES WITH AN ASTERISK IN COLUMN 1 FOLLOWED BY INCLGEN 16 * ALPHABETIC CHARACTER DEFINE THE BEGINNING OF A NEW INCLGEN 17 * INCLUDE PACKAGE. THE (AS MANY AS 7) NON-BLANK INCLGEN 18 * CHARACTERS FOLLOWING THE ASTERISK ARE TAKEN AS THE INCLGEN 19 * NAME OF THE INCLUDE PACKAGE. INCLGEN 20 * 4. TREAT LINES WITH A PLUS IN COLUMN 1 AS THE INCLGEN 21 * CONTINUATION OF THE PREVIOUS LINE. INCLGEN 22 *) INCLGEN 23 INCLGEN 24 INCLGEN 25 INCLGEN 26 HINCLGE 1 (* PASCAL-6000 MODIFICATION HISTORY. HINCLGE 2 * HINCLGE 3 *) HINCLGE 4 HINCLGE 5 HINCLGE 6 HINCLGE 7 CONST INCLGEN 27 MAXWIDTH = 72 (* WIDTH OF RECOGNIZED TEXT *); INCLGEN 28 INCLGEN 29 (*$L- CTEXT COMSPAS - PASCAL-6000 RUN TIME EQUIVALENCES. *) INCLGEN 30 (* CTEXT COMSPAS - PASCAL-6000 RUN TIME EQUIVALENCES. COMSPAS 2 BASE DECIMAL COMSPAS 3 *COMMENT COPYRIGHT (C) UNIVERSITY OF MINNESOTA - 1978. COMSPAS 4 COMSPAS 5 COMSPAS 6 COMSPAS 7 COMSPAS 8 ** COMSPAS - PASCAL-6000 RUN TIME EQUIVALENCES. COMSPAS 9 * J. P. STRAIT. 77/08/24. COMSPAS 10 COMSPAS 11 COMSPAS 12 COMSPAS 13 HCOMSPA 1 ** PASCAL-6000 MODIFICATION HISTORY. HCOMSPA 2 * HCOMSPA 3 * PASCAL-6000 VERSION 4.1.0. V410C 1 * PASCAL-6000 VERSION 4.1.F. V41FC 1 * RENAME SYMBOL *ETERMINL* TO *ECONNECT*. V41EC01 1 * PASCAL-6000 VERSION 4.1.E. V41EC 1 * CHANGE VALUE OF CONSTANT *ERT*. V41DC09 1 * PASCAL-6000 VERSION 4.1.D. V41DC 1 * ADD ASCII AND DISPLAY CODE CHARACTER SET CONSTANTS. V41CC16 1 * RENAME EFET SYMBOLS: CHEFET -> TXTEFET; CHEFETSZ -> TXEFETSZ; V41CC02 1 * EFETSZ -> BNEFETSZ; CHEFITSZ -> TXEFITSZ; EFITSZ -> BNEFITSZ. V41CC02 2 * PASCAL-6000 VERSION 4.1.C. V41CC 1 * PASCAL-6000 VERSION 4.1.B. V41BC 1 * DEFINE SCOPE2 RECORD MANAGER ERROR ORDINALS. V41AC06 1 * KLUDGE: DEFINE SYMBOL *TXTEFET*. V41AC04 1 * INTRODUCE SYMBOLS *NOS1* AND *NOS2*; REMOVE SYMBOL *NOS*. V41AC01 1 * PASCAL-6000 VERSION 4.1.A. V41AC 1 * HCOMSPA 4 HCOMSPA 5 HCOMSPA 6 HCOMSPA 7 COMSPAS 14 ** COMSPAS DEFINES CONSTANTS USED THROUGHOUT THE COMSPAS 15 * PASCAL-6000 SYSTEM. THIS DECK IS CONSTRUCTED SO THAT IT COMSPAS 16 * MAY BE CALLED INTO EITHER A PASCAL OR COMPASS PROGRAM. COMSPAS 17 * *) COMSPAS 18 COMSPAS 19 COMSPAS 20 COMSPAS 21 (* COMSPAS 22 ** PASCAL-6000 RELEASE, VERSION, LEVEL. COMSPAS 23 * COMSPAS 24 * THE LEVEL NUMBER IS FOR USE BY LOCAL MAINTAINERS. COMSPAS 25 * *) COMSPAS 26 COMSPAS 27 COMSPAS 28 RELNUM = 37B ; (* RELEASE NUMBER = ORD('4') *) COMSPAS 29 VERNUM = 34B ; (* VERSION NUMBER = ORD('1') *) V41AC 2 LEVNUM = 33B ; (* VERSION NUMBER = ORD('F') *) V410C 2 ASCFLAG = 55B ; (* FULL-ASCII FLAG, OFF = ORD(' ') *) COMSPAS 32 LVERNUM = 33B ; (* LIBRARY VERSION NUMBER = ORD('0') *) COMSPAS 33 LLEVNUM = 33B ; (* LIBRARY LEVEL NUMBER = ORD('0') *) COMSPAS 34 COMSPAS 35 COMSPAS 36 COMSPAS 37 (* COMSPAS 38 ** DEFINE THE TARGET OPERATING SYSTEM. *) COMSPAS 39 COMSPAS 40 COMSPAS 41 KRONOS = 0 ; COMSPAS 42 NOS1 = 0 ; V41AC01 2 NOS2 = 0 ; V41AC01 3 NOSBE = 0 ; COMSPAS 44 SCOPE2 = 0 ; COMSPAS 45 SCOPE34 = 0 ; COMSPAS 46 COMSPAS 47 COMSPAS 48 COMSPAS 49 (* COMSPAS 50 ** DEFINE THE OPERATING SYSTEM ORDINALS. *) COMSPAS 51 COMSPAS 52 COMSPAS 53 XKRONOS = 1 ; COMSPAS 54 XNOS1 = 2 ; V41AC01 4 XNOS2 = 3 ; V41AC01 5 XNOSBE = 4 ; V41AC01 6 XSCOPE2 = 5 ; V41AC01 7 XSCOPE34 = 6 ; V41AC01 8 COMSPAS 59 COMSPAS 60 COMSPAS 61 (* COMSPAS 62 ** GENERAL CONSTANTS. *) COMSPAS 63 COMSPAS 64 COMSPAS 65 MARKLIM = 31 ; (* MAXIMUM MARK LEVEL *) COMSPAS 66 NILP = 377777B ; (* NIL POINTER *) COMSPAS 67 PFLC = 1 ; (* FIRST LOCATION IN ACTIVATION RECORDS *) COMSPAS 68 MPLC = PFLC ; (* FIRST LOCATION IN PROGRAM ACTIVATION *) COMSPAS 69 ARPS = 1 ; (* ACTIVATION-RECORD PREFIX SIZE *) COMSPAS 70 PMDSPACE = 120B ; (* SIZE OF STACK CHUNK FOR PMD *) COMSPAS 71 COMSPAS 72 COMSPAS 73 COMSPAS 74 (* COMSPAS 75 ** DATA SIZE CONSTANTS. *) COMSPAS 76 COMSPAS 77 COMSPAS 78 WORDSIZE = 60 ; (* NUMBER OF BITS IN ONE WORD *) COMSPAS 79 COMSPAS 82 (* V41CC16 2 * ASCII CHARACTER SET CONSTANTS. *) V41CC16 3 V41CC16 4 ASCHARSZ = 7 ; (* NUMBER OF BITS IN ASCII CHAR *) V41CC16 5 ASALFALN = 8 ; (* NUMBER OF ASCII CHARS IN WORD *) V41CC16 6 ASMINCH = 0 ; (* MINIMAL ORDINAL VALUE OF ASCII CHAR *) V41CC16 7 ASMAXCH = 127 ; (* MAXIMUM ORDINAL VALUE OF ASCII CHAR *) V41CC16 8 ASSPACE = 32 ; (* ASCII ORDINAL FOR ' ' *) V41CC16 9 ASONE = 49 ; (* ASCII ORDINAL FOR '1' *) V41CC16 10 V41CC16 11 (* V41CC16 12 * DISPLAY CODE CHARACTER SET CONSTANTS. *) V41CC16 13 V41CC16 14 DCCHARSZ = 6 ; (* NUMBER OF BITS IN DISPLAY CODE CHAR *) V41CC16 15 DCALFALN = 10 ; (* NUMBER OF DISPLAY CODE CHARS IN WORD *) V41CC16 16 DCMINCH = 0 ; (* MINIMUM VALUE OF DISPLAY CODE CHAR *) V41CC16 17 DCMAXCH = 63 ; (* MAXIMUM VALUE OF DISPLAY CODE CHAR *) V41CC16 18 DCSPACE = 45 ; (* DISPLAY CODE ORDINAL FOR ' ' *) V41CC16 19 DCONE = 28 ; (* DISPLAY CODE ORDINAL FOR '1' *) V41CC16 20 V41CC16 21 (* V41CC16 22 * CURRENT CHARACTER SET CONSTANTS. *) V41CC16 23 V41CC16 24 CHARSIZE = DCCHARSZ ; (* NUMBER OF BITS TO HOLD ONE CHAR *) V41CC16 25 ALFALENG = DCALFALN ; (* NUMBER OF CHARACTERS IN A WORD *) V41CC16 26 MINORDCH = DCMINCH ; (* MINIMUM ORDINAL VALUE OF A CHAR *) V41CC16 27 MAXORDCH = DCMAXCH ; (* MAXIMUM ORDINAL VALUE OF A CHAR *) V41CC16 28 CHSPACE = DCSPACE ; (* ORDINAL VALUE OF ' ' *) V41CC16 29 CHONE = DCONE ; (* ORDINAL VALUE OF '1' *) V41CC16 30 COMSPAS 85 COMSPAS 86 COMSPAS 87 (* COMSPAS 88 ** FET LENGTH CONSTANTS. *) COMSPAS 89 COMSPAS 90 COMSPAS 91 BINEFET = 1 ; (* RELATIVE ADDRESS OF WORD FILE EFET *) COMSPAS 92 TXTEFET = 13 ; (* RELATIVE ADDRESS OF TEXT FILE EFET *) V41CC02 3 TXEFETSZ = 28 ; (* TEXT EFET SIZE = TXTEFET + 1 + FETSZ *) V41CC02 4 BNEFETSZ = 16 ; (* WORD EFET SIZE = BINEFET + 1 + FETSZ *) V41CC02 5 FETSZ = 14 ; (* FET LENGTH *) COMSPAS 96 COMSPAS 97 COMSPAS 98 COMSPAS 99 (* COMSPAS 100 ** FIT LENGTH CONSTANTS. *) COMSPAS 101 COMSPAS 102 COMSPAS 103 TXEFITSZ = 32 ; (* TEXT EFET SIZE *) V41CC02 6 BNEFITSZ = 20 ; (* WORD EFET SIZE *) V41CC02 7 FITSZ = 16 ; (* FIT SIZE 7000 RM *) COMSPAS 106 COMSPAS 107 COMSPAS 108 COMSPAS 109 (* COMSPAS 110 ** EFET INDICES. COMSPAS 111 * COMSPAS 112 * THESE VALUES FORM OFFSETS FOR LOCATING THE VARIOUS COMSPAS 113 * FIELDS IN THE EFET. COMSPAS 114 * *) COMSPAS 115 COMSPAS 116 COMSPAS 117 EFETLCNT = -13 ; (* LINE COUNTER FOR TEXTFILES *) COMSPAS 118 EFETCBUF = -12 ; (* FWA OF 10-CHAR BUFFER *) COMSPAS 119 EFETSNTL = -2 ; (* END-OF-BUFFER SENTINEL *) COMSPAS 120 EFETPTR = -1 ; (* POINTER TO CURRENT ELEMENT *) COMSPAS 121 EFET = 0 ; (* ANCHOR FOR ALL OFFSETS *) COMSPAS 122 EFETFET = 1 ; (* FIRST WORD OF FET *) COMSPAS 123 EFETFRST = 2 ; (* FWA OF CIRCULAR BUFFER *) COMSPAS 124 EFETIN = 3 ; (* NEXT WORD TO PUT DATA INTO BUFFER *) COMSPAS 125 EFETOUT = 4 ; (* NEXT WORD TO GET DATA OUT OF BUFFER *) COMSPAS 126 EFETLIM = 5 ; (* LWA+1 OF CIRCULAR BUFFER *) COMSPAS 127 COMSPAS 128 COMSPAS 129 COMSPAS 130 (* COMSPAS 131 ** EFIT INDICES. *) COMSPAS 132 COMSPAS 133 COMSPAS 134 EFITBUF = 1 ; (* WSA BUFFER DESCRIPTOR *) COMSPAS 135 EFITOUT = 2 ; (* OUT POINTER *) COMSPAS 136 EFITIN = 2 ; (* IN POINTER *) COMSPAS 137 EFITFIT = 3 ; (* FIT *) COMSPAS 138 COMSPAS 139 COMSPAS 140 COMSPAS 141 (* COMSPAS 142 ** BIT-FIELD DEFINITIONS. COMSPAS 143 * COMSPAS 144 * THE VALUE OF EACH ENTRY IS THE BIT POSITION OF THAT FIELD COMSPAS 145 * IN THE WORD. FOR MULTIPLE-BIT FIELDS, THE COORDINATE OF COMSPAS 146 * THE RIGHTMOST BIT IS GIVEN. COMSPAS 147 * *) COMSPAS 148 COMSPAS 149 (* COMSPAS 150 * BIT-FIELDS IN EFET+EFETPTR. *) COMSPAS 151 COMSPAS 152 PEOLN = 59 ; (* EOLN FLAG FOR TEXTFILES *) COMSPAS 153 PREWRITE = 58 ; (* EQUIVALENT TO REWRITE IN EFET WORD *) COMSPAS 154 PPOINTER = 0 ; (* POINTER INTO CHARBUFF OR CIRC. BUFF *) COMSPAS 155 COMSPAS 156 (* COMSPAS 157 * BIT-FIELDS IN EFET. *) COMSPAS 158 COMSPAS 159 EEOSF = 59 ; (* EOS/EOF FLAG FOR SEG/NON-SEG. FILES *) COMSPAS 160 EEOF = 58 ; (* EOF FLAG *) COMSPAS 161 ESEGMENT = 57 ; (* SEGMENTED FILE *) COMSPAS 162 EREWRITE = 56 ; (* REWRITE FLAG FOR ALL FILES *) COMSPAS 163 ETEXT = 55 ; (* TEXT FILE *) COMSPAS 164 ETERMFIL = 54 ; (* TERMINAL FILE ('/' ON HEADER) *) COMSPAS 165 EPERSIST = 53 ; (* PERSISTENT FILE *) COMSPAS 166 ECONNECT = 52 ; (* FILE CONNECTED TO TERMINAL *) V41EC01 2 EPROGPAR = 51 ; (* PROGRAM PARAMETER *) COMSPAS 168 EDISPC = 51 ; (* DISPOSITION CODE (ALL OF ABOVE BITS) *) V41CC02 8 EDISPCW = 9 ; (* NUMBER OF BITS IN DISPOSITION CODE *) V41CC02 9 V41CC02 10 ELRL = 0 ; (* LOGICAL RECORD LENGTH *) COMSPAS 169 V41CC16 31 EDCCHS = 18 ; (* INDEX INTO DISPLAY CODE BUFFER (DCB) *) V41CC16 32 EDCCHSW = 18 ; (* WIDTH OF EDCCHS FIELD *) V41CC16 33 COMSPAS 170 EWSALEN = 18 ; (* ACTUAL LENGTH OF WSA *) COMSPAS 171 ERT = 36 ; (* RECORD TYPE *) V41DC09 2 ERTW = 6 ; (* NUMBER OF BITS IN RECORD TYPE *) V41CC02 11 COMSPAS 173 (* COMSPAS 174 * BIT-FIELDS IN EFET+EFITBUF. *) COMSPAS 175 COMSPAS 176 BUFEND = 0 ; (* LWA CURRENT RECORD *) COMSPAS 177 BUFADDR = 18 ; (* FWA WSA *) COMSPAS 178 BUFLEN = 36 ; (* USEABLE LENGTH OF WSA *) COMSPAS 179 COMSPAS 180 (* COMSPAS 181 * SCOPE2 RECORD MANAGER FIT VALUES. *) COMSPAS 182 COMSPAS 183 FPEOI = 64 ; (* END OF INFORMATION *) COMSPAS 184 FPEOP = 32 ; (* END OF PARTITION *) COMSPAS 185 FPEOS = 16 ; (* END OF SECTION *) COMSPAS 186 FPEOR = 8 ; (* END OF RECORD *) COMSPAS 187 FPBOI = 2 ; (* BEGIN OF INFORMATION *) COMSPAS 188 COMSPAS 189 (* COMSPAS 190 * SCOPE2 RECORD MANAGER RECORD TYPES. *) COMSPAS 191 COMSPAS 192 RTW = 0 ; (* CONTROL WORD *) COMSPAS 193 RTF = 1 ; (* FIXED LENGTH *) COMSPAS 194 RTZ = 3 ; (* ZERO BYTE TERMINATOR *) COMSPAS 195 RTU = 7 ; (* UNDEFINED RECORDS *) COMSPAS 196 RTS = 8 ; (* SYSTEM LOGICAL *) COMSPAS 197 COMSPAS 198 COMSPAS 199 COMSPAS 200 (* COMSPAS 201 ** P.GLOBL - TABLE OF GLOBAL VARIABLES. COMSPAS 202 * COMSPAS 203 * THIS TABLE INCLUDES RUN TIME SYSTEM VARIABLES THAT ARE COMSPAS 204 * MAINTAINED ACROSS THE ENTIRE EXECUTION OF A PASCAL PROGRAM. COMSPAS 205 * IN OTHER WORDS, THEY ARE GLOBAL WITH RESPECT TO THE USER COMSPAS 206 * PROGRAM. THESE VALUES ARE USED AS INDICES INTO THE COMSPAS 207 * TABLE NAMED *P.GLOBL*. COMSPAS 208 * *) COMSPAS 209 COMSPAS 210 COMSPAS 211 TGVRPMDS = 1 ; (* PMD STACK CHUNK; ZERO IF PMD DISABLED *) COMSPAS 212 (* 30/LWA+1, 30/FWA, IF PMD ENABLED *) COMSPAS 213 TGVRKEY = 2 ; (* KEY FOR POINTER CHECKS *) COMSPAS 214 TGVRFORT = 3 ; (* FORTRAN CALL FLAG *) COMSPAS 215 (* 1/FTNFLAG, 41/, 18/LINENUM *) COMSPAS 216 TGVRPTRS = 4 ; (* FOR SAVING GLOBAL POINTERS *) COMSPAS 217 (* 6/0, 18/B4, 18/B5, 18/B6 *) COMSPAS 218 COMSPAS 219 COMSPAS 220 COMSPAS 221 (* COMSPAS 222 ** P.PIT - PROGRAM INFORMATION TABLE. COMSPAS 223 * COMSPAS 224 * THIS TABLE, WHICH RESIDES IN THE CODE SPACE OF THE MAIN COMSPAS 225 * PROGRAM, IS USED TO PASS PARAMETERS FROM THE COMPILER TO THE COMSPAS 226 * RUN-TIME SYSTEM. THESE CONSTANTS ARE USED AS INDICES INTO COMSPAS 227 * THE TABLE NAMED "P.PIT". COMSPAS 228 * *) COMSPAS 229 COMSPAS 230 COMSPAS 231 PITVERS = 1 ; (* PASCAL-6000 VERSION INFORMATION *) COMSPAS 232 PITMAIN = 2 ; (* MAIN-PROGRAM BHW AND ACTIVATION *) COMSPAS 233 PITFLAG = 3 ; (* PROGRAM DESCRIPTION FLAGS *) COMSPAS 234 PITPMD = 4 ; (* ADDRESS OF PASCPMD *) COMSPAS 235 PITOUTP = 4 ; (* ADDRESS OF OUTPUT EFET *) COMSPAS 236 PITIDS = 5 ; (* INITIAL DYN. SPACE, INITIAL REDUCE *) COMSPAS 237 PITMFL = 5 ; (* MAXIMUM SIZE OF DYNAMIC MEMORY *) COMSPAS 238 PITSCS = 6 ; (* STACK-CHUNK CONTROLS *) COMSPAS 239 PITMCS = 7 ; (* MEMORY MANAGER CONTROLS *) COMSPAS 240 COMSPAS 241 COMSPAS 242 COMSPAS 243 (* COMSPAS 244 ** P.TERA - TABLE OF ERROR RECOVERY ADDRESSES. COMSPAS 245 * COMSPAS 246 * THESE VALUES ARE INDICES INTO P.TERA, THE TABLE OF ERROR COMSPAS 247 * RECOVERY ADDRESSES. COMSPAS 248 * *) COMSPAS 249 COMSPAS 250 COMSPAS 251 ASSERR = 0 ; (* VALUE OUT OF RANGE *) COMSPAS 252 INXERR = 1 ; (* INDEX OR CASE EXPR OUT OF RANGE *) COMSPAS 253 DIVERR = 2 ; (* DIVISION BY ZERO *) COMSPAS 254 ICNERR = 3 ; (* INCONSISTENT NODE REFERENCE *) COMSPAS 255 OVLERR = 4 ; (* INTEGER OVERFLOW *) COMSPAS 256 PTRERR = 5 ; (* INCORRECT POINTER REFERENCE *) COMSPAS 257 MODERR = 6 ; (* MOD BY NON-POSITIVE MODULO *) COMSPAS 258 EOLERR = 7 ; (* TRIED TO CHECK EOLN WHILE AT EOS/EOF *) COMSPAS 259 ISMERR = 8 ; (* MEMORY REQUIRED EXCEEDS SPECIFIED MFL *) COMSPAS 260 COMSPAS 261 COMSPAS 262 COMSPAS 263 (* COMSPAS 264 ** P.TMEM - TABLE OF MEMORY MANAGER VARIABLES. COMSPAS 265 * COMSPAS 266 * THIS TABLE CONTAINS THE VARIABLES USED BY THE PASCAL-6000 COMSPAS 267 * MEMORY MANAGER (PMM). THESE CONSTANTS ARE USED AS INDICES COMSPAS 268 * INTO THE TABLE NAMED "P.TMEM". COMSPAS 269 * *) COMSPAS 270 COMSPAS 271 COMSPAS 272 MEMFL = 1 ; (* CURRENT FIELD LENGTH *) COMSPAS 273 MEMFF = 2 ; (* ADDRESS OF FIRST FREE NODE *) COMSPAS 274 MEMLF = 3 ; (* ADDRESS OF LAST FREE NODE *) COMSPAS 275 MEMHLF = 4 ; (* HIGHEST ADDRESS OF LAST FREE NODE *) COMSPAS 276 MEMHFL = 5 ; (* HIGHEST FL USED BY MEMORY MANAGER *) COMSPAS 277 COMSPAS 278 COMSPAS 279 COMSPAS 280 (* COMSPAS 281 ** TIOE - TABLE OF INPUT/OUTPUT ERRORS. COMSPAS 282 * COMSPAS 283 * THESE VALUES ARE USED AS INDICES INTO THE TABLE NAMED COMSPAS 284 * *TIOE*. COMSPAS 285 * *) COMSPAS 286 COMSPAS 287 COMSPAS 288 IOEA = 0 ; (* LINELIMIT EXCEEDED ON XXXXXXX.*) COMSPAS 289 IOEB = 1 ; (* TRIED TO READ XXXXXXX PAST EOS/EOF.*) COMSPAS 290 IOEC = 2 ; (* TRIED TO WRITE XXXXXX WITHOUT REWRITE.*) COMSPAS 291 IOED = 3 ; (* BUFFER TOO SMALL ON XXXXXXX.*) COMSPAS 292 IOEE = 4 ; (* NON-DIGIT FOUND WHILE READING XXXXXXX.*) COMSPAS 293 IOEF = 5 ; (* VALUE TOO LARGE WHILE READING XXXXXXX.*) COMSPAS 294 IOEG = 6 ; (* TRIED TO READ XXXXXXX WITHOUT RESET.*) COMSPAS 295 IOEH = 7 ; (* UNDEFINED VALUE TO WRITE ON XXXXXXX. *) COMSPAS 296 V41AC06 2 (* V41AC06 3 ** SCOPE2 RECORD MANAGER ERRORS. *) V41AC06 4 V41AC06 5 RMIOEA = 0 ; (* RECORD MAN ERROR ON FILE XXXXXXX. *) V41AC06 6 RMIOEB = 1 ; (* BUFFER TOO SMALL ON XXXXXXX. *) V41AC06 7 RMIOEC = 2 ; (* FILE XXXXXXX MUST BE FO=SQ,RT=W,S,Z,U.*) V41AC06 8 RMIOED = 3 ; (* FILE CARD SPECIFIES MRL>PASCAL BUFFER.*) V41AC06 9 RMIOEE = 4 ; (* INVALID RT FOR SKIP ON XXXXXXX. *) V41AC06 10 RMIOEH = 5 ; (* ZERO SKIP COUNT ON XXXXXXX. *) V41AC06 11 COMSPAS 297 COMSPAS 298 COMSPAS 299 (* COMSPAS 300 ** TYPE CODES FOR POST-MORTEM DUMP. COMSPAS 301 *) COMSPAS 302 COMSPAS 303 PMDINT = 1 ; (* INTEGER *) COMSPAS 304 PMDREAL = 2 ; (* REAL *) COMSPAS 305 PMDCHAR = 3 ; (* CHAR *) COMSPAS 306 PMDBOOL = 4 ; (* BOOLEAN *) COMSPAS 307 PMDENUM = 5 ; (* ENUMERATED TYPE *) COMSPAS 308 PMDALFA = 6 ; (* ALFA *) COMSPAS 309 PMDUPTR = 7 ; (* UNCHECKED POINTER *) COMSPAS 310 PMDCPTR = 8 ; (* CHECKED POINTER *) COMSPAS 311 COMSPAS 312 COMSPAS 313 (* COMSPAS 314 BASE * COMSPAS 315 ENDX *) COMSPAS 316 (*$L= ENDX COMSPAS *) INCLGEN 32 INCLGEN 33 INCLGEN 34 INCLGEN 35 TYPE INCLGEN 36 LINEINDEX = 0 .. MAXWIDTH; INCLGEN 37 NATURAL = 0 .. MAXINT; INCLGEN 38 INCLGEN 39 INCLGEN 40 INCLGEN 41 VAR INCLGEN 42 LGO : SEGMENTED TEXT (* OUTPUT FILE FOR PROCESSED TEXT *); INCLGEN 43 INCLGEN 44 COLUMN : LINEINDEX (* CURRENT COLUMN IN LINE *); INCLGEN 45 BLANKS : NATURAL (* NUMBER OF BLANKS READ *); INCLGEN 46 INCLGEN 47 FIRSTSEGMENT : BOOLEAN (* TRUE IF FIRST SEGMENT BEING PROCESSED *); INCLGEN 48 COPYINGLINE : BOOLEAN (* TRUE IF WRITE, BUT NOT WRITELN DONE *); INCLGEN 49 (*$L'PROCEDURES AND FUNCTIONS'*) INCLGEN 50 INCLGEN 51 INCLGEN 52 INCLGEN 53 FUNCTION (*$E'P.OS'*) OS : INTEGER; INCLGEN 54 EXTERN; INCLGEN 55 INCLGEN 56 INCLGEN 57 INCLGEN 58 PROCEDURE SKIPBLANKS; INCLGEN 59 (* SKIP BLANKS, COUNT AS ONLY ONE BLANK *) INCLGEN 60 INCLGEN 61 BEGIN (* SKIPBLANKS *) INCLGEN 62 WHILE NOT EOLN(INPUT) AND (INPUT^ = ' ') AND INCLGEN 63 (COLUMN < MAXWIDTH) DO INCLGEN 64 BEGIN COLUMN := COLUMN + 1; GET(INPUT) END; INCLGEN 65 BLANKS := 1 INCLGEN 66 END (* SKIPBLANKS *); INCLGEN 67 INCLGEN 68 INCLGEN 69 INCLGEN 70 PROCEDURE COPYRESTOFLINE; INCLGEN 71 (* COPY FROM CURRENT COLUMN TO MAXWIDTH OR EOLN *) INCLGEN 72 INCLGEN 73 VAR INCLGEN 74 I : NATURAL; INCLGEN 75 INCLGEN 76 BEGIN (* COPYRESTOFLINE *) INCLGEN 77 WHILE NOT EOLN(INPUT) AND (COLUMN < MAXWIDTH) DO INCLGEN 78 BEGIN INCLGEN 79 IF INPUT^ = ' ' THEN BLANKS := BLANKS + 1 INCLGEN 80 ELSE INCLGEN 81 BEGIN INCLGEN 82 FOR I := 1 TO BLANKS DO WRITE(LGO, ' '); INCLGEN 83 BLANKS := 0; LGO^ := INPUT^; PUT(LGO) INCLGEN 84 END; INCLGEN 85 COLUMN := COLUMN + 1; GET(INPUT) INCLGEN 86 END INCLGEN 87 END (* COPYRESTOFLINE *); INCLGEN 88 (*$L'MAIN PROGRAM'*) INCLGEN 89 INCLGEN 90 INCLGEN 91 INCLGEN 92 BEGIN (* INCLUDE *) INCLGEN 93 FIRSTSEGMENT := TRUE; COPYINGLINE := FALSE; INCLGEN 94 WHILE NOT EOF(INPUT) DO INCLGEN 95 BEGIN INCLGEN 96 IF INPUT^ = '*' THEN INCLGEN 97 BEGIN INCLGEN 98 IF COPYINGLINE THEN WRITELN(LGO); INCLGEN 99 COPYINGLINE := FALSE; INCLGEN 100 GET(INPUT); INCLGEN 101 IF INPUT^ IN ['A'..'Z'] THEN INCLGEN 102 BEGIN INCLGEN 103 IF NOT FIRSTSEGMENT THEN PUTSEG(LGO); INCLGEN 104 FIRSTSEGMENT := FALSE; COLUMN := 0; INCLGEN 105 IF OS = XSCOPE2 THEN WRITE(LGO,'PARTITION '); INCLGEN 106 WHILE (INPUT^ <> ' ') AND (COLUMN < 7) DO INCLGEN 107 BEGIN INCLGEN 108 LGO^ := INPUT^; COLUMN := COLUMN + 1; INCLGEN 109 PUT(LGO); GET(INPUT) INCLGEN 110 END; INCLGEN 111 WRITELN(LGO) INCLGEN 112 END INCLGEN 113 END INCLGEN 114 ELSE INCLGEN 115 IF INPUT^ = '+' THEN INCLGEN 116 BEGIN INCLGEN 117 IF NOT COPYINGLINE THEN INCLGEN 118 HALT(' CONTINUATION OF NULL LINE'); INCLGEN 119 GET(INPUT); COLUMN := 1; BLANKS := 0; INCLGEN 120 SKIPBLANKS; COPYRESTOFLINE INCLGEN 121 END INCLGEN 122 ELSE INCLGEN 123 BEGIN COLUMN := 0; BLANKS := 0; INCLGEN 124 IF COPYINGLINE THEN WRITELN(LGO); INCLGEN 125 COPYINGLINE := TRUE; COPYRESTOFLINE INCLGEN 126 END; INCLGEN 127 READLN(INPUT) INCLGEN 128 END; INCLGEN 129 IF COPYINGLINE THEN WRITELN(LGO); INCLGEN 130 IF NOT FIRSTSEGMENT THEN PUTSEG(LGO) INCLGEN 131 END (* INCLUDE *). INCLGEN 132