COMPILATION LISTING OF SEGMENT: >spec>install>1212>MODVARIABLE.pascal Compiled by: Grenoble University Multics Pascal Compiler, Release 8.03 of February the 15th, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/12/86 1710.9 mst Wed options: map no_table full_extensions private_storage no_io_warnings no_interactive 1 (* ************************************************************************* 2* * * 3* * Copyright (c) 1980 by Centre Interuniversitaire de Calcul de Grenoble * 4* * and Institut National de Recherche en Informatique et Automatique * 5* * * 6* ************************************************************************* *) 7 8 9 10 11 (* HISTORY COMMENTS: 12* 1) change(86-09-11,JMAthane), approve(86-09-11,MCR7521), 13* audit(86-09-15,JPFauche), install(86-11-12,MR12.0-1212): 14* Release 8.03 for MR12 15* END HISTORY COMMENTS *) 16 17 18 PROGRAM modvariable ; 19 20 $OPTIONS switch trace := true ; switch security := true ; t + $ 21 22 23 $IMPORT 24 'STATE (pascal) ' : 25 addressvar, 26 checkbnds, 27 choicerarq, 28 enterlcst, 29 enterllcst, 30 enterundlab, 31 freebloc, 32 gencstecode, 33 genexceptcode, 34 getpr, 35 inbounds, 36 loadadr, 37 loadbase, 38 newbloc, 39 oldnewstor, 40 raisused, 41 regenere, 42 sauvereg, 43 stack_extension, 44 transfer, 45 variab, 46 variabctptr ; 47 'CONTEXTTABLE (pascal) ' : 48 areconformeq, 49 checkminmax, *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 2 50 compatbin, 51 conformantdim, 52 findminmax, 53 legalconfarrsubstitution, 54 packedsize ; 55 'RACINE (pascal) ' : 56 error, 57 insymbol, 58 nameisref, 59 nextline, 60 recadre, 61 skip, 62 sup ; 63 'optimized_procedures (alm)' : 64 search, 65 srchrec ; 66 'MODATTR(pascal)' : 67 convreal, 68 freeattr, 69 initattrvarbl, 70 is_pl1_varying_char, 71 isstring, 72 printattr, 73 varissimple ; 74 'EXPR (pascal) ' : 75 expression ; 76 'GENOPER (pascal)' : 77 check_dynamic_string_length ; 78 'GENERE (pascal) ' : 79 gendesca, 80 inser, 81 genstand, 82 geneism ; 83 'RACINE (pascal) ' : 84 alfaptr, 85 charptr, 86 ctptr, 87 envstandard, 88 interactive, 89 intptr, 90 level, 91 mpcogout, 92 no, 93 realptr, 94 string_ptr, 95 symbolfile, 96 symbolline, 97 symbolmap, 98 textfilectp ; 99 'GENERE (pascal) ' : 100 cb, 101 indfich, 102 mfari1, 103 mfari2, 104 usednameaddr ; 105 'STATE (pascal) ' : 106 arrayboundsctp, *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 3 107 asscheck, 108 currentbloc, 109 currentpr, 110 currwithlist, 111 gattr, 112 inxcheck, 113 modif, 114 opaq, 115 prinst, 116 regcharge, 117 stattrace, 118 withvariable ; 119 $ 120 121 122 $EXPORT 123 init_desc_address, 124 passparams, 125 variable 126 127 $ 128 $INCLUDE 'CONSTTYPE' $(* BEGIN INCLUDE FILE CONSTTYPE.incl.pascal *) 1 2 1 3 (* HISTORY COMMENTS: 1 4* 1) change(86-09-11,JMAthane), approve(86-09-11,MCR7521), 1 5* audit(86-09-15,JPFauche), install(86-11-12,MR12.0-1212): 1 6* Release 8.03 for MR12 1 7* END HISTORY COMMENTS *) 1 8 1 9 CONST (* VERSION 7.05 *) 1 10 (* ARRAY'S BOUNDS *) 1 11 1 12 minno = 0 ; (* MIN VALUE FOR NO ; SEE TYPE NORANGE *) 1 13 maxno = 63 ; (* MAX VALUE FORNO ; " " " *) { Modified for SimOne } 1 14 ptlimit = 20 ; (* MAX FOR PTLIST 0 ..PTLIMIT *) 1 15 displimit = 30 ; (* " " DISPLAY ..DISPLIMIT *) 1 16 maxlabs = 50 ; (* " " LABTAB ..MAXLABS *) 1 17 fillimit = 50 ; (* " " FILPTS .. FILLIMIT *) 1 18 maxlevel = 20 ; (* SEE LEVRANGE TYPE *) 1 19 maxerrline = 16 ; (* MAX FOR ERRINX *) 1 20 maxerpg = 2 ; (* MAX FOR ERRORSFOUND, PAGESERRORS 0.. *) 1 21 undmax = 1000 ; (* " " UNDLAB 1.. *) 1 22 longalfbox = 16 ; (* SEE ALFAVALUE TYPE *) 1 23 lgparm = 100 ; (* PARMLIST IN $PARM *) 1 24 lgparm1 = lgparm - 1 ; (* LGPARM - 1 *) 1 25 maxpredef = 99 ; (* INITNAME 0 .. MAXPREDEF *) 1 26 maxident = 32 ; (* LENGTH MAX FOR AN ID. *) 1 27 (* DONT MODIFY WITHOUT MODIFY maxident *) 1 28 (* IN optimized_procedures.alm *) 1 29 maxnbofkeywords = 49 ; { Modified for SimOne } 1 30 1 31 maxkeylength = 12 ; (* LENGTH MAX FOR A KEY-WORD *) { Modified for SimOne } 1 32 maxexternname = 168 ; (* length max for an external name *) 1 33 maxval = 256 ; (* LENGTH MAX FOR A STRING *) 1 34 maxstring = 256 ; (* MAX LENGTH FOR A STRING (STAND) <= MAXVAL *) 1 35 alfaleng = 8 ; (* SIZE OF ALFA TYPE *) 1 36 maxfich = 50000 ; (* FOR FICHINTER *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 4 1 37 longboxlist = 20 ; (* MAX. NB. OF REG. BOXES *) 1 38 maxref = 25 ; 1 39 maxfield = 25 ; 1 40 1 41 1 42 maxnewsize = 261094 ; (* MAX WORD SIZE FOR NEW *) 1 43 1 44 (* POWERS OF 2 *) 1 45 twoto4 = 2 * 2 * 2 * 2 ; 1 46 twoto6 = twoto4 * 2 * 2 ; 1 47 twoto8 = twoto6 * 2 * 2 ; 1 48 twoto8m1 = twoto8 - 1 ; 1 49 twoto9 = twoto8 * 2 ; 1 50 twoto10 = twoto9 * 2 ; 1 51 twoto12 = twoto10 * 2 * 2 ; 1 52 twoto14 = twoto6 * twoto8 ; 1 53 twoto15 = twoto14 * 2 ; 1 54 twoto16 = twoto15 * 2 ; 1 55 twoto17 = twoto16 * 2 ; 1 56 twoto17m1 = twoto17 - 1 ; 1 57 twoto18 = twoto17 * 2 ; 1 58 twoto18m1 = twoto18 - 1 ; 1 59 twoto27 = twoto18 * twoto9 ; 1 60 1 61 (* COMPUTER'S DESCRIPTION *) 1 62 1 63 bitsinbyte = 9 ; 1 64 bytesinword = 4 ; 1 65 bytesinhword = bytesinword DIV 2 ; 1 66 bytesindword = bytesinword * 2 ; 1 67 1 68 wordsinpage = twoto10 ; 1 69 pagesinsegment = twoto8 - 1 ; 1 70 wordsinsegment = wordsinpage * pagesinsegment ; 1 71 maxglobsize = twoto18 * bytesinword ; (* MAX SIZE FOR GLOBALS IN BYTES *) 1 72 maxstacksize = twoto15 * bytesinword ; (* MAX SIZE FOR A STACK FRAME IN BYTES *) 1 73 maxwseg = wordsinsegment ; (* MAX NBR OF WORDS IN SEGMENT = 255 * 1024 *) 1 74 1 75 nilleft = '1FFFC0023'x ; (* VALUE FOR LEFT WORD OF THE "NIL" ITS *) 1 76 nilright = '40000'x ; (* VALUE FOR RIGHT WORD OF THE "NIL" ITS *) 1 77 packednil = '007777000001'o ; (* MULTICS PACKED NIL PTR *) 1 78 bitsinword = bitsinbyte * bytesinword ; 1 79 bitsinhword = bitsinbyte * bytesinhword ; 1 80 bitsindword = 2 * bitsinword ; 1 81 byteinbyte = 1 ; 1 82 byteshift = 512 ; (* USED TO SHIFT AN INTEGER BY MULTIPLICATION *) 1 83 (* AND SUBSEQUENT VALUES *) 1 84 maxint = 34359738367 ; (* MAX. INTEGER *) 1 85 (* maxreal = 1.701411834604692317e38 ; *) 1 86 (* minreal = 1.469367938527859386e-39 ; *) 1 87 racmaxint = 131072 ; (* USED TO AVOID OVERFLOW *) 1 88 (* IN INTEGER MULTIPLICATION *) 1 89 ntwotobyte = twoto8 - 1 ; (* MAX. NUM. VALUE IN A BYTE *) 1 90 ntwotohword = twoto17 - 1 ; (* MAX. NUM. VALUE IN A HALF. WORD *) 1 91 stwotobyte = twoto9 - 1 ; (* MAX. SCAL. VALUE IN A BYTE *) 1 92 setrange = 8 * bitsinword ; (* SIZE OF STANDARD SETS : 8 WORDS MAX *) 1 93 maxset = setrange - 1 ; (* SETRANGE -1 *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 5 1 94 maxerrnum = 3 * setrange - 1 ; (* 3*SETRANGE -1 *) 1 95 maxpage = maxerrnum ; 1 96 maxchar = 127 ; (* < MAXSET *) 1 97 1 98 (* IN LISTING *) 1 99 maxpageline = 59 ; (* MAX NUMBER OF LINES ON A LISTING'S PAGE *) 1 100 maxlinepascal = 400 ; 1 101 maxsliceline = 136 ; 1 102 lgprint = maxsliceline - 10 ; (* SLICE OF PRINTED LINES *) 1 103 1 104 (* COMPILATION'S RETURN CODE *) 1 105 1 106 errorcond = 8 ; 1 107 noerrorcond = 0 ; 1 108 1 109 wordsforset = 8 ; 1 110 bytesforset = wordsforset * bytesinword ; (* MAX. NUM. OF BYTES IN A SET *) 1 111 bitsforset = wordsforset * bitsinword ; (* MAX. NUM. OF BITS IN A SET *) 1 112 bornesupset = wordsforset - 1 ; 1 113 psrinbytes = 32 ; (* SIZE OF PSR REG. IN BYTES *) 1 114 (* AND EXTERNAL CONSTRAINTS *) 1 115 maxdig = bitsinword DIV 3 ; (* MAX. NUMBER OF DIGITS IN OCTAL *) 1 116 maxexpon = 1000 ; (* TO AVOID OVERFLOW WITH EXPONENTS *) 1 117 maxhexdi = bitsinword DIV 4 ; (* MAX. NUMBER OF HEXA CHARS *) 1 118 max10 = 3435973835 ; (* TO AVOID OVERFLOW IN INTEGER CST *) 1 119 maxexp = 39 ; (* MAX. SCALING FACTOR ALLOWED *) 1 120 minexp = -38 ; (* MIN. SCALING FACTOR ALLOWED *) 1 121 maxdigitsinteger = 12 ; 1 122 maxdigitsreal = 20 ; 1 123 maxintegerstring = '+3435973836700000000' ; 1 124 maxrealstring = '+1701411834604692317' ; 1 125 minrealstring = '+1469367938527859386' ; 1 126 1 127 (* GENERATION CONSTRAINTS AND CONSTANTS *) 1 128 stackboundary = 16 * bytesinword ; (* BOUNDARY FOR A STACK FRAME *) 1 129 maxrel = 132 ; (* LENGTH OF PHYSICAL LINE *) 1 130 pascdebstacklocal = 384 ; (* BYTES DISP. OF FIRST FREE ST. IN PASCAL FRAME *) 1 131 simdebstacklocal = 448 ; (* BYTES DISP. OF FIRST FREE ST. IN SIMONE FRAME *) { Modified for SimOne } 1 132 procparmsize = 24 ; (* SIZE FOR FORMAL PROCEDURE PARAMETERS *) 1 133 mathworksizew = 32 ; (* SIZE OF WORK AREA FOR MATH OPS *) 1 134 modulinitsize = 48 ; { Inserted for SimOne } 1 135 monitorinitsize = 88 ; { Inserted for SimOne } 1 136 1 137 (* USEFUL TOOLS *) 1 138 blank = ' ' ; 1 139 longblank = ' ' ; 1 140 1 141 (* ALM GENERATION CONSTANTS *) 1 142 bit29 = 64 ; (* USE OF POINTER REGISTER BIT (BIT 29) *) 1 143 inhibit = 128 ; (* INTERRUPT INHIBITION BIT (BIT28) *) 1 144 o41 = 33 ; (* ITS *) 1 145 o43 = 35 ; (* ITP *) 1 146 1 147 1 148 (* ENTRY POINTS OF OPERATORS *) 1 149 1 150 log10switch = 6 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 6 1 151 (* Used in UNIQUE for predefinition of log10 *) 1 152 (* and in EXPR for scientific subroutines *) 1 153 1 154 mainentryplace = 79 ; 1 155 extentryplace = 88 ; 1 156 checkbeforeeolnplace = 66 ; 1 157 checkbeforeeofplace = 67 ; 1 158 checkbeforetextreferenceplace = 68 ; 1 159 gotoexitextplace = 3 ; 1 160 intentryplace = 89 ; 1 161 scientplace = 80 ; 1 162 resetplace = 11 ; 1 163 rewriteplace = 12 ; 1 164 closeplace = 13 ; 1 165 readtextplace = 14 ; 1 166 readseqplace = 15 ; 1 167 readlnplace = 16 ; 1 168 writetextplace = 17 ; 1 169 writeseqplace = 18 ; 1 170 writelnplace = 19 ; 1 171 pageplace = 20 ; 1 172 puttextplace = 21 ; 1 173 putseqplace = 22 ; 1 174 gettextplace = 23 ; 1 175 getseqplace = 24 ; 1 176 gotoexitplace = 25 ; 1 177 newplace = 26 ; 1 178 disposeplace = 27 ; 1 179 resetheapplace = 28 ; 1 180 truncplace = 63 ; 1 181 roundplace = 64 ; 1 182 rafltplace = 31 ; 1 183 rqfltplace = 32 ; 1 184 putdirplace = 33 ; 1 185 getdirplace = 34 ; 1 186 fupdtplace = 35 ; 1 187 fcloseplace = 37 ; 1 188 connectplace = 36 ; 1 189 exceptcodeplace = 38 ; 1 190 intreturnplace = 39 ; 1 191 extreturnplace = 40 ; 1 192 returnzeroplace = 87 ; 1 193 intcallplace = 42 ; 1 194 extcallplace = 43 ; 1 195 initfsballocplace = 72 ; 1 196 dateopplace = 47 ; 1 197 timeopplace = 48 ; 1 198 clockopplace = 49 ; 1 199 longprofileplace = 50 ; 1 200 flushplace = 65 ; 1 201 fappendplace = 82 ; 1 202 freopenplace = 81 ; 1 203 argcshortplace = 69 ; 1 204 argcplace = 70 ; 1 205 argcextplace = 71 ; 1 206 argvshortplace = 73 ; 1 207 argvplace = 74 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 7 1 208 argvextplace = 75 ; 1 209 stopshortplace = 76 ; 1 210 stopplace = 77 ; 1 211 stopextplace = 78 ; 1 212 sreadcharplace = 90 ; 1 213 sreadintegerplace = 91 ; 1 214 sreadrealplace = 92 ; 1 215 swritecharplace = 93 ; 1 216 swritestringplace = 94 ; 1 217 swritesubstringplace = 95 ; 1 218 swritebooleanplace = 96 ; 1 219 swriteintegerplace = 97 ; 1 220 swriterealeplace = 98 ; 1 221 swriterealdplace = 99 ; 1 222 swriteenumplace = 100 ; 1 223 parmproccheckplace = 101 ; 1 224 functionvaluesetplace = 102 ; 1 225 functionvaluecheckplace = 103 ; 1 226 extend_stack_op_place = 104 ; 1 227 reset_stack_end_op_place = 105 ; 1 228 1 229 (* CONST USED WITH OPERATORS *) 1 230 transoptvptr = 40 ; (* DISP / PR7 OF TRANSFER VECTOR *) 1 231 lotptrdep = 22 ; (* DISP / PR7 LOT-PTR *) 1 232 pascoperatorsdep = 8 ; (* PASCAL OPERATORS *) 1 233 (* EXECUTION BITS FOR STACK FRAME *) 1 234 mainbit = 131072 ; (* bit 18 *) 1 235 fastbit = 65536 ; (* bit 19 *) 1 236 checkbit = 32768 ; (* bit 20 *) 1 237 interactivebit = 16384 ; (* bit 21 *) 1 238 iowarningsbit = 8192 ; (* bit 22 *) 1 239 solstandardbit = 32 ; (* bit 30 *) 1 240 french_bit = 4 ; (* bit 31 *) 1 241 1 242 (* PASCAL ERRORS CODES *) 1 243 1 244 inxerrcode = 1 ; (* INDEX *) 1 245 chrerrcode = 2 ; (* FCT CHR *) 1 246 prderrcode = 3 ; (* FCT PRED *) 1 247 sucerrcode = 4 ; (* FCT SUCC *) 1 248 forerricode = 5 ; (* FOR INF *) 1 249 forerrscode = 6 ; (* FOR SUP *) 1 250 asserrcode = 7 ; (* ASSIGN *) 1 251 diverrcode = 8 ; (* DIV BY 0 *) 1 252 parerrcode = 9 ; (* PARAM. *) 1 253 caserrcode = 10 ; (* CASE *) 1 254 pckerrcode = 11 ; (* PACK/UNPK *) 1 255 seterrcode = 12 ; (* SET EXP *) 1 256 mlterrcode = 13 ; (* INTEGER MULT OVERFLOW *) 1 257 eofeolnerrcode = 14 ; (* Is eof or eoln meaningsfull *) 1 258 randinterrcode = 15 ; (* BAD BOUNDS FOR RANDINT *) 1 259 stringlength_range_error = 16 ; 1 260 stringlength_assignment_error = 17 ; 1 261 substring_offset_error = 18 ; 1 262 substring_negative_length_error = 19 ; 1 263 substring_too_long_error = 20 ; 1 264 delete_offset_error = 21 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 8 1 265 delete_negative_length_error = 22 ; 1 266 delete_too_long_error = 23 ; 1 267 insert_overflow_error = 24 ; 1 268 bad_string_index = 25 ; 1 269 bad_date_time_parameter = 26 ; 1 270 1 271 (* ** FOR CONFORMANT ARRAY *) 1 272 1 273 confdimw = 4 ; (* FOUR ITS IN PARAMETERS LIST *) 1 274 dopevectorsize = 12 ; 1 275 (* LO HI SIZE SUBSIZE *) 1 276 confdimsize = confdimw * bytesinword ; (* SAME IN BYTES *) 1 277 1 278 (* STACK FRAME DISPL. *) 1 279 1 280 argptw = 26 ; (* SAVE ARG POINTER ENTRY *) 1 281 next_sp_place = 18 ; (* MULTIC STACK_FRAME NEXT_SP *) 1 282 pr4depw = 36 ; (* SAVE PR4 HERE *) 1 283 psrdepw = 56 ; (* PSEUDO REGISTER FOR SET *) 1 284 psrdepb = 224 ; 1 285 dlkdepw = 32 ; (* DYNAMIC LINK *) 1 286 fctdeplw = 34 ; (* RETURNED VALUE FOR A FUNCTION *) 1 287 fctdepl = 136 ; 1 288 evareaw = 38 ; (* WORKING EVEN STORAGE *) 1 289 fsbadrw = 68 ; (* FSB STORED HERE FOR I/0 OPERATORS *) 1 290 valplacew = 70 ; (* VALUE TO BE WRITTEN OR POINTER ON IT *) 1 291 longplacew = 73 ; (* REQUESTED LENGTH *) 1 292 scaleplacew = 74 ; (* FOR REAL SCALING FACTOR *) 1 293 longstplacew = 74 ; (* REAL LENGTH FOR STRINGS *) 1 294 1 295 (* INIT ZONE FOR LINKAGE SECTION *) 1 296 (* 8 WORDS HEADER *) 1 297 1 298 firstglobal = 8 ; (* WORD OFFSET OF FIRST GLOBAL (EVEN) *) 1 299 1 300 (* FSB DISPLACEMENTS *) 1 301 1 302 lgfilename = 32 ; 1 303 iotextbuffersize = 400 ; 1 304 fdescsize = 152 ; 1 305 fsbpointersize = 8 ; 1 306 fstatusw = 7 ; 1 307 fposw = 21 ; 1 308 fsizew = 22 ; 1 309 fllengthw = 23 ; 1 310 fstatusb = 28 ; 1 311 fposb = 84 ; 1 312 fsizeb = 88 ; 1 313 fllengthb = 92 ; 1 314 eofw = 4 ; (* WORD BOOLEAN EOF *) 1 315 eofb = 16 ; 1 316 eolnw = 27 ; (* WORD BOOLEAN EOLN *) 1 317 eolnb = 108 ; 1 318 1 319 (* PROFILE *) 1 320 1 321 pclength = 2 ; (* PROFILE COUNTER LENGTH IN WORDS *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 9 1 322 lpclength = 4 ; (* LONG PROFILE COUNTER LENGTH IN WORDS *) 1 323 phl = 0 ; (* PROFILE HEADER LENGTH *) 1 324 lphl = 13 ; (* LONG PROFILE HEADER LENGTH IN WORDS *) 1 325 1 326 (* RELOCATION CODES *) 1 327 1 328 link18 = '900000000'x ; (* "10010"b *) 1 329 link15 = 'A00000000'x ; (* "10100"b *) 1 330 int18 = 'C00000000'x ; (* "11000"b *) 1 331 self_rel = '880000000'x ; (* "10001"b *) 1 332 int15 = 'C80000000'x ; (* "11001"b *) 1 333 prof = 'D00000000'x ; (* "11010"b *) 1 334 absl = '000000000'x ; (* "0"b *) 1 335 symb = 'B00000000'x ; (* "10110"b *) 1 336 1 337 (* CONSTANTES USED BY SIMONE COMPILER *) { Inserted for SimOne } 1 338 maxchar8 = 255 ; 1 339 mofatherdisp = 1 ; (* DIFFERENCE BETWEEN ADDR OF FATHER WHOSE TYPE IS MONORMOD *) { Inserted for SimOne } 1 340 procfatherdisp = 0 ; (* OR WHOSE TYPE IS PROC *) { Inserted for SimOne } 1 341 procmodlkw = 104 ; { Inserted for SimOne } 1 342 modynlk = 0 ; { Inserted for SimOne } 1 343 condcounterplace = 16 ; (* BYTES DIP. OF CONDITION COUNTER *) { Inserted for SimOne } 1 344 moarglistw = 6 ; (* DEPLACEMENT OF ARGLIST IN MONITOR OR MODULE PSEUDO_STACK *) { Inserted for SimOne } 1 345 baseprocessdplmt = 100 ; { Inserted for SimOne } 1 346 executionmodplmt = 106 ; { Inserted for SimOne } 1 347 maindplmt = 0 ; 1 348 processlocaldplmt = 96 ; 1 349 (* ENTRY POINTS OF OPERATORS *) { Inserted for SimOne } 1 350 { Inserted for SimOne } 1 351 simainentryplace = -1 ; { Inserted for SimOne } 1 352 simintentryplace = -2 ; { Inserted for SimOne } 1 353 simintreturnplace = -3 ; { Inserted for SimOne } 1 354 processentryplace = -4 ; { Inserted for SimOne } 1 355 settinginactivequeueplace = -5 ; { Inserted for SimOne } 1 356 waitsonsplace = -6 ; { Inserted for SimOne } 1 357 processreturnplace = -7 ; { Inserted for SimOne } 1 358 holdplace = -8 ; { Inserted for SimOne } 1 359 savearglistplace = -9 ; { Inserted for SimOne } 1 360 modulentryplace = -10 ; { Inserted for SimOne } 1 361 monitorentryplace = -11 ; { Inserted for SimOne } 1 362 initcondplace = -12 ; { Inserted for SimOne } 1 363 askforexclusionplace = -13 ; { Inserted for SimOne } 1 364 freeexclusionplace = -14 ; { Inserted for SimOne } 1 365 signalplace = -15 ; { Inserted for SimOne } 1 366 waitplace = -16 ; { Inserted for SimOne } 1 367 emptyplace = -17 ; { Inserted for SimOne } 1 368 lengthplace = -18 ; { Inserted for SimOne } 1 369 priorityplace = -19 ; { Inserted for SimOne } 1 370 vtimeplace = -20 ; { Inserted for SimOne } 1 371 terminateplace = -21 ; { Inserted for SimOne } 1 372 mowaitsonsplace = -22 ; { Inserted for SimOne } 1 373 uniformplace = -23 ; { Inserted for SimOne } 1 374 normalplace = -24 ; { Inserted for SimOne } 1 375 negexpplace = -25 ; { Inserted for SimOne } 1 376 randintplace = -26 ; { Inserted for SimOne } 1 377 pureentryplace = -27 ; 1 378 simextentryplace = -28 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 10 1 379 exitplace = -29 ; 1 380 restorprevmoplace = -30 ; 1 381 { Inserted for SimOne } 1 382 lcprocess = 96 ; (* BYTES SIZE OF THE LOCAL VARIABLES IN THE STACK OF A PROCESS *) { Inserted for SimOne } 1 383 { Inserted for SimOne } 1 384 { Inserted for SimOne } 1 385 emptyindex = 4 ; { Inserted for SimOne } 1 386 { Inserted for SimOne } 1 387 (* DEFAULT LENGTH FOR EDITION *) 1 388 deflreal = 24 ; 1 389 deflnum = 12 ; 1 390 deflbool = 4 ; 1 391 deflchar = 1 ; 1 392 1 393 1 394 1 395 (*$PAGE *) 1 396 TYPE 1 397 numberstring = PACKED ARRAY [1..maxdigitsreal] OF char ; 1 398 alfa = PACKED ARRAY [1..alfaleng] OF char ; 1 399 alfaid = PACKED ARRAY [1..maxident] OF char ; 1 400 externid = PACKED ARRAY [1..maxexternname] OF char ; 1 401 alfalistptr = ^alfalist ; 1 402 alfalist = RECORD 1 403 previous, next : alfalistptr ; 1 404 name : alfaid 1 405 END ; 1 406 idkinds = (actual, formal, arraybound, exportable, imported) ; 1 407 1 408 (* ACTUAL MEANS STANDARD PASCAL PROC/VARS 1 409* FORMAL USED FOR VAR PARAMETERS 1 410* EXPORTABLE 'DEF' PROC/VARS 1 411* IMPORTED APPEARS IN EXTERNAL LIST. MUST BE REDEFINED *) 1 412 typform = (reel, numeric, scalar, pointer, power, arrays, records, monormod, { Modified for SimOne } 1 413 condition, files, aliastype) ; { Modified for SimOne } 1 414 { Modified for SimOne } 1 415 idklass = (schema, types, konst, proc, vars, field, tagfield, dummyclass) ; 1 416 consttype = (wordconst, dwordconst, alfaconst) ; 1 417 idprocdef = (standdef, forwdef, extdef, initdef, finitdef) ; { Modified for SimOne } 1 418 levrange = 0..maxlevel ; 1 419 alfapt = @alfavalue ; 1 420 alfavalue = RECORD 1 421 nextval : alfapt ; (* NEXT VALUE BOX FOR SAME STRING *) 1 422 alfaval : PACKED ARRAY [1..longalfbox] OF char ; 1 423 longfill : integer ; (* USED PART OF ALFAVAL IN THIS BOX *) 1 424 END ; 1 425 refptr = @reflist ; 1 426 reflist = RECORD 1 427 nextref : refptr ; 1 428 refnbr : integer ; 1 429 refs : ARRAY [1..maxref] OF RECORD 1 430 filen, linen, sttmapind, place : integer ; 1 431 END ; 1 432 END ; 1 433 ctp = @contexttable ; 1 434 setofno = SET OF minno..maxno ; 1 435 stdkind = (stdpure, stdcompiler, stdsol, stdextend, stdcomputer) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 11 1 436 typusednames = ARRAY [1..6] OF alfaid ; 1 437 filelocation = (notafile, permanentfile, workfile, localfile, standardfile) ; 1 438 1 439 proclocation = (notpredef, instdpure, instdcompiler, instdsol, 1 440 instdextend, instdcomputer, instdsimone) ; { Modified for SimOne } 1 441 externalitemtype = (extnotresolved, externalarea, exportvar, importvar, 1 442 exportproc, importproc, localproc, mainprogram, remanentfile, 1 443 requiredfile, runtimeentry) ; 1 444 ptexternalitem = ^ externalitem ; 1 445 externalitem = RECORD 1 446 extname : alfaid ; 1 447 extsegname, extgenerator, extentryname : alfaid ; 1 448 extnext : ptexternalitem ; 1 449 extrfile1, extrline1, extrfile2, extrline2 : integer ; 1 450 extdecl : ctp ; 1 451 extitemtype : externalitemtype ; 1 452 extkind : idkinds ; 1 453 extpltdisp : integer ; 1 454 extareadisp : integer ; 1 455 extlong : integer ; 1 456 extwantdescs : boolean ; 1 457 END ; 1 458 (* TYPES USED BY SIMONE COMPILER *) { Inserted for SimOne } 1 459 motypes = (module, monitor) ; { Inserted for SimOne } 1 460 objaccessibles = (modul, monit, condit) ; { Inserted for SimOne } 1 461 ensaccessible = SET OF objaccessibles ; { Inserted for SimOne } 1 462 incbloc = (monitormodule, subroutine) ; { Inserted for SimOne } 1 463 { Inserted for SimOne } 1 464 nodeptr = @node ; { Inserted for SimOne } 1 465 { Inserted for SimOne } 1 466 node = RECORD { USED FOR SPACE COMPUTATION } { Inserted for SimOne } 1 467 inthelist, compiled, recursive : boolean ; { Inserted for SimOne } 1 468 sizemax : integer ; { Inserted for SimOne } 1 469 proce : ctp ; { Inserted for SimOne } 1 470 END ; { Inserted for SimOne } 1 471 nodelistptr = @nodelistelem ; { Inserted for SimOne } 1 472 { Inserted for SimOne } 1 473 nodelistelem = RECORD { Inserted for SimOne } 1 474 previousnode, nextnode : nodelistptr ; { Inserted for SimOne } 1 475 elem : nodeptr ; { Inserted for SimOne } 1 476 END ; { Inserted for SimOne } 1 477 { Inserted for SimOne } 1 478 exitptr = @exitelem ; { Inserted for SimOne } 1 479 exitelem = RECORD (* ONE FOR EACH EXIT STATEMENT *) { Inserted for SimOne } 1 480 nextexitelem : exitptr ; { Inserted for SimOne } 1 481 exitdplmt : integer ; { Inserted for SimOne } 1 482 END ; { Inserted for SimOne } 1 483 1 484 ftp = ^schema_token ; 1 485 schema_status = RECORD 1 486 on : boolean ; 1 487 schema_ptr : ctp ; 1 488 current_token : ftp ; 1 489 current_parameter : ctp ; 1 490 END ; 1 491 schema_token_kind = (symbol_token, name_token, int_const_token, char_const_token, real_const_token) ; 1 492 schema_token = RECORD *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 12 1 493 next : ftp ; 1 494 CASE kind : schema_token_kind OF 1 495 symbol_token : (tno, tcl : integer) ; 1 496 name_token : (taval : alfaid) ; 1 497 int_const_token : (t_int_value : integer) ; 1 498 real_const_token : (t_real_value : real) ; 1 499 char_const_token : (t_char_value : char) ; 1 500 END ; 1 501 1 502 (* DONT MODIFY CONTEXTABLE DECLARATION 1 503* WITHOUT CHECKING : 1 504* nameplaceincontextable 1 505* AND nxtelplaceincontextable 1 506* IN optimized_procedures.alm *) 1 507 contexttable = RECORD 1 508 name : alfaid ; 1 509 nxtel : ctp ; 1 510 alfathread : ctp ; 1 511 deffile, defline : integer ; 1 512 references : refptr ; 1 513 symbolplace : integer ; (* PCK PTR TO SYMBOL NODE IN SYMB TB *) 1 514 symbtablerefs : integer ; (* BACKWARD THREAD OF REFS IN TEXT TO SYMBOL TABLE *) 1 515 CASE klass : idklass OF 1 516 schema : ( 1 517 top_for_schema : integer ; (* CONTEXT AT SHEMA DECLARATION TIME *) 1 518 next_for_schema : ctp ; 1 519 formal_parameter_list : ctp ; 1 520 parameter_count : integer ; 1 521 token_list : ftp ; 1 522 type_description : ctp) ; 1 523 types : ( 1 524 size, cadrage : integer ; 1 525 pack : boolean ; 1 526 tlevel : levrange ; 1 527 objaccedes : ensaccessible ; { TO ALLOW VARIABLES ' DECLARATIONS } { Inserted for SimOne } 1 528 (* *** BEGIN SCHEMA INFO *** *) 1 529 father_schema : ctp ; 1 530 actual_parameter_list : ctp ; 1 531 desc_vector_references : integer ; 1 532 (* *** END SCHEMA INFO *** *) 1 533 CASE form : typform OF 1 534 reel : () ; 1 535 numeric : (npksize, nmin, nmax : integer) ; 1 536 scalar : (spksize : integer ; 1 537 CASE subrng : boolean OF 1 538 false : (fconst, sptcstepw : ctp) ; 1 539 true : (smin, smax : integer ; 1 540 typset : ctp) ;) ; 1 541 pointer : (ptpksize : integer ; 1 542 domain, eltype : ctp) ; 1 543 power : (ppksize : integer ; 1 544 elset : ctp ; 1 545 setlength : integer) ; 1 546 arrays : (aeltype, inxtype : ctp ; 1 547 1 548 CASE conformant : boolean OF 1 549 false : (lo, hi, opt2, subsize : integer) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 13 1 550 true : ( 1 551 pthigh, ptlow : ctp ; 1 552 ) ; 1 553 ) ; 1 554 records : (recvar, fstfld : ctp) ; 1 555 files : (feltype : ctp ; 1 556 ) ; 1 557 monormod : (motype : motypes ; { Inserted for SimOne } 1 558 niveau : levrange ; { Inserted for SimOne } 1 559 moaddr, nbparmo : integer ; { Inserted for SimOne } 1 560 ptpar, ptvarloc, ptentr : ctp ; { Inserted for SimOne } 1 561 initmoproc, finitmoproc, blocenglob : ctp) ; { Inserted for SimOne } 1 562 condition : () ; { Inserted for SimOne } 1 563 aliastype : (realtype : ctp) ;) ; 1 564 konst : ( 1 565 succ, contype : ctp ; 1 566 CASE typofconst : consttype OF 1 567 wordconst : (values : integer) ; 1 568 dwordconst : (valreel : real) ; 1 569 alfaconst : (alfadeb : alfapt ; 1 570 alfalong, alfalevel, unddeb : integer) ;) ; 1 571 proc : (proctype, formals : ctp ; 1 572 prockind : idkinds ; 1 573 proclevel : levrange ; 1 574 procaddr, segsize, nbparproc, locincode : integer ; 1 575 procisassigned, predefproc, procinscope, pisrefincode : boolean ; 1 576 phasdescriptor : boolean ; (* TRUE IF HAS CONF ARRAY PARAMETERS *) 1 577 ploc : proclocation ; 1 578 procextitem : ptexternalitem ; 1 579 ptypesymbolplace : integer ; (* PACKED PTR TO TYPE BOX IN SYMBOL TB *) 1 580 recur : integer ; { Inserted for SimOne } 1 581 procaccesslevel : levrange ; { Inserted for SimOne } 1 582 processus, pure : boolean ; { Inserted for SimOne } 1 583 chaineentree : ctp ; { Inserted for SimOne } 1 584 procnode : nodeptr ; { Inserted for SimOne } 1 585 procincbloc : incbloc ; (* BLOC CONTAINING THIS PROC *) { Inserted for SimOne } 1 586 procfirstexit : exitptr ; (* TO CHAIN EXIT STATEMENT *) { Inserted for SimOne } 1 587 procfirsttofinit : ctp ; (* FIRST VAR TO BE FINALIZED IN THIS PROCESS, ALWAYS NIL FOR A PROCEDURE *) { Inserted for SimO ne } 1 588 procstackinitsize : integer ; { Inserted for SimOne } 1 589 procwasforwarddef : boolean ; { Inserted for SimOne } 1 590 procdef : idprocdef ; 1 591 pwantdescs : boolean ; (* TRUE IF PROC WAS DECLARED EXT DESCRIPTORS *) 1 592 pdescsaddrplace : integer ; (* PLACE IN STATICS OF PTR TO DESCRS VECTOR - IF PREV. TRUE *) 1 593 procisactive : boolean ; (* TRUE IF COMPILER IS ANALYZING BODY OF THIS PROC *) 1 594 pextcalltrapinfoplace : integer ; (* WORD OFFSET OF TRAP INFO FOR EXT CALL - ONLY IF DESCS *) 1 595 pwantspl1descriptors : boolean) ; (* TRUE IF PL1 DESCRIPTORS NEEDED *) 1 596 vars : (vtype : ctp ; 1 597 vkind : idkinds ; 1 598 vfilelocation : filelocation ; 1 599 vaddr : integer ; 1 600 vdispl, vdescaddr : integer ; 1 601 vlevel : levrange ; 1 602 vlink_is_generated : boolean ; 1 603 visused, visset, visreadonly, varparam, visrefincode : boolean ; 1 604 vnexttofinit : ctp ; (* TO CHAIN VAR TO BE FINIT *) { Inserted for SimOne } 1 605 varmo : boolean ; (* TRUE IF VAR IS DECLARE IN A MONITOR OR A MODULE *) { Inserted for SimOne } *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 14 1 606 vfather : ctp ; (* PTR ON THE MONITOR OR THE MODULE CONTAINING VAR *) { Inserted for SimOne } 1 607 vptextitem : ptexternalitem) ; 1 608 field : (fldtype : ctp ; 1 609 fldaddr, bytwidth : integer) ; 1 610 tagfield : (casesize : integer ; 1 611 variants : ctp ; 1 612 CASE tagval : boolean OF 1 613 false : (casetype : ctp ; selectorfield : ctp) ; 1 614 true : (caseval : integer ; firstfield : ctp) ;) ; 1 615 dummyclass : () ; 1 616 END ; (* RECORD CONTEXTTABLE *) 1 617 (* NOW OTHER TYPES *) 1 618 1 619 shrtint = -twoto17..twoto17m1 ; 1 620 bytint = -twoto8..twoto8m1 ; 1 621 norange = minno..maxno ; 1 622 where = (block, cwith, vwith) ; (* USED TO DESCRIBE AN IDENTIFIER *) 1 623 contexte = (data, code, linkage, definition, deccode) ; { Modified for SimOne } 1 624 levtrace = (none, low, medium, high) ; 1 625 (* DONT MODIFY RECIDSCOPE DECLARATION *) 1 626 withreflist = RECORD 1 627 nbr : 0..maxfield ; 1 628 symbolp : ARRAY [1..maxfield] OF ctp 1 629 END ; 1 630 (* WITHOUT CHECK : *) 1 631 (* recidscopelength IN optimized_procedures.alm *) 1 632 recidscope = RECORD (* ELEMENT OF DISPLAY *) 1 633 fname : ctp ; 1 634 CASE occur : where OF 1 635 block : () ; 1 636 cwith : (creflist : withreflist ; clevel : levrange ; cdspl : integer) ; 1 637 vwith : (vreflist : withreflist ; vdspl : integer ; vpack : boolean) ; 1 638 END (* REC-ID-SCOPE *) ; 1 639 blocknodeptr = @blocknode ; 1 640 labelblockptr = ^labelblock ; (* BOXES FOR LABELS *) 1 641 labelblock = RECORD 1 642 number : integer ; (* LABEL ID *) 1 643 locinbytes : integer ; (* LOCATION IN TEXT SECTION (BYTES) *) 1 644 next : labelblockptr ; (* NEXT IN LABELS LIST *) 1 645 brother : labelblockptr ; (* THREAD FOR LABELS OF SAME BLOCK *) 1 646 procnode : blocknodeptr ; (* PTR TO PROCEDURE NODE *) 1 647 dclfile, dclline : integer ; (* FILE, LINE FOR DECLARATION *) 1 648 deffile, defline : integer ; (* FILE, LINE OF LOCATION *) 1 649 references : refptr ; (* PTR TO REFERENCES BOX(ES) *) 1 650 ref_allowed : RECORD 1 651 ic_from, ic_to : integer 1 652 END ; 1 653 next_in_block : labelblockptr ; 1 654 END ; 1 655 label_pdl_element = RECORD 1 656 previous, next : ^label_pdl_element ; 1 657 first : labelblockptr ; 1 658 END ; 1 659 labdescr = RECORD (* ELEMENT OF LABTAB *) 1 660 labval, lablev, labexit, labch1, labdef : integer ; 1 661 labbox : labelblockptr ; 1 662 END (* REC *) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 15 1 663 lab_pdl_ptr = ^lab_pdl_element ; 1 664 lab_pdl_element = RECORD 1 665 previous, next : lab_pdl_ptr ; 1 666 first_in_block : labelblockptr ; 1 667 start : integer 1 668 END ; 1 669 typofsymb = (irrelsy, begsy, endsy) ; 1 670 occurence = RECORD (* ELEMENT OF UNDLAB *) 1 671 succ, place : shrtint ; 1 672 END (* REC *) ; 1 673 (* TYPES USED IN CODE GENERATION *) 1 674 1 675 (* ALM INSTRUCTIONS , I+MNEMONIC. INSTRUCTIONS ARE GROUPED BY FUNCTIONS. IN 1 676* EACH FUNCTION, THE ORDER IS THE ONE OF THE AL39 MANUAL EXCEPT FOR EIS 1 677* MULTIWORD. IN THIS LAST GROUP, THE ORDER MAKES EASIER THE CODE GENERATION *) 1 678 (* FIXED-POINT STANDARD INSTRUCTIONS ****** *) 1 679 instword = (ieaa, ieaq, ieax0, ieax1, ieax2, ieax3, ieax4, ieax5, 1 680 ieax6, ieax7, ilca, ilcaq, ilcq, ilcx0, ilcx1, ilcx2, 1 681 ilcx3, ilcx4, ilcx5, ilcx6, ilcx7, ilda, ildac, ildaq, 1 682 ildi, ildq, ildqc, ildx0, ildx1, ildx2, ildx3, ildx4, 1 683 ildx5, ildx6, ildx7, ilreg, ilxl0, ilxl1, ilxl2, ilxl3, 1 684 ilxl4, ilxl5, ilxl6, ilxl7, isreg, ista, istac, istacq, 1 685 istaq, istc1, istc2, istcd, isti, istq, istt, istx0, 1 686 istx1, istx2, istx3, istx4, istx5, istx6, istx7, istz, 1 687 isxl0, isxl1, isxl2, isxl3, isxl4, isxl5, isxl6, isxl7, 1 688 ialr, ials, iarl, iars, illr, ills, ilrl, ilrs, 1 689 iqlr, iqls, iqrl, iqrs, iada, iadaq, iadl, iadla, 1 690 iadlaq, iadlq, iadlx0, iadlx1, iadlx2, iadlx3, iadlx4, iadlx5, 1 691 iadlx6, iadlx7, iadq, iadx0, iadx1, iadx2, iadx3, iadx4, 1 692 iadx5, iadx6, iadx7, iaos, iasa, iasq, iasx0, iasx1, 1 693 iasx2, iasx3, iasx4, iasx5, iasx6, iasx7, iawca, iawcq, 1 694 isba, isbaq, isbla, isblaq, isblq, isblx0, isblx1, isblx2, 1 695 isblx3, isblx4, isblx5, isblx6, isblx7, isbq, isbx0, isbx1, 1 696 isbx2, isbx3, isbx4, isbx5, isbx6, isbx7, issa, issq, 1 697 issx0, issx1, issx2, issx3, issx4, issx5, issx6, issx7, 1 698 iswca, iswcq, impf, impy, idiv, idvf, ineg, inegl, 1 699 icmg, icmk, icmpa, icmpaq, icmpq, icmpx0, icmpx1, icmpx2, 1 700 icmpx3, icmpx4, icmpx5, icmpx6, icmpx7, icwl, iszn, isznc, 1 701 (* FLOATING-POINT INSTRUCTIONS ************* *) 1 702 idfld, ifld, idfst, idfstr, ifst, ifstr, idfad, idufa, 1 703 ifad, iufa, idfsb, idufs, ifsb, iufs, idfmp, idufm, 1 704 ifmp, iufm, idfdi, idfdv, ifdi, ifdv, ifneg, ifno, 1 705 idfrd, ifrd, idfcmg, idfcmp, ifcmg, ifcmp, iade, ifszn, 1 706 ilde, iste, 1 707 (* BOOLEAN INSTRUCTIONS ******************** *) 1 708 iana, ianaq, ianq, iansa, iansq, iansx0, iansx1, iansx2, 1 709 iansx3, iansx4, iansx5, iansx6, iansx7, ianx0, ianx1, ianx2, 1 710 ianx3, ianx4, ianx5, ianx6, ianx7, iora, ioraq, iorq, 1 711 iorsa, iorsq, iorsx0, iorsx1, iorsx2, iorsx3, iorsx4, iorsx5, 1 712 iorsx6, iorsx7, iorx0, iorx1, iorx2, iorx3, iorx4, iorx5, 1 713 iorx6, iorx7, iera, ieraq, ierq, iersa, iersq, iersx0, 1 714 iersx1, iersx2, iersx3, iersx4, iersx5, iersx6, iersx7, ierx0, 1 715 ierx1, ierx2, ierx3, ierx4, ierx5, ierx6, ierx7, icana, 1 716 icanaq, icanq, icanx0, icanx1, icanx2, icanx3, icanx4, icanx5, 1 717 icanx6, icanx7, icnaa, icnaaq, icnaq, icnax0, icnax1, icnax2, 1 718 icnax3, icnax4, icnax5, icnax6, icnax7, 1 719 (* POINTER REGISTERS INSTRUCTIONS ********** *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 16 1 720 ieasp0, ieasp1, ieasp2, ieasp3, ieasp4, ieasp5, ieasp6, ieasp7, 1 721 ieawp0, ieawp1, ieawp2, ieawp3, ieawp4, ieawp5, ieawp6, ieawp7, 1 722 iepbp0, iepbp1, iepbp2, iepbp3, iepbp4, iepbp5, iepbp6, iepbp7, 1 723 iepp0, iepp1, iepp2, iepp3, iepp4, iepp5, iepp6, iepp7, 1 724 ilpri, ilprp0, ilprp1, ilprp2, ilprp3, ilprp4, ilprp5, ilprp6, 1 725 ilprp7, ispbp0, ispbp1, ispbp2, ispbp3, ispbp4, ispbp5, ispbp6, 1 726 ispbp7, ispri, ispri0, ispri1, ispri2, ispri3, ispri4, ispri5, 1 727 ispri6, ispri7, isprp0, isprp1, isprp2, isprp3, isprp4, isprp5, 1 728 isprp6, isprp7, iadwp0, iadwp1, iadwp2, iadwp3, iadwp4, iadwp5, 1 729 iadwp6, iadwp7, iepaq, 1 730 (* TRANSFER INSTRUCTIONS ******************* *) 1 731 icall6, iret, irtcd, iteo, iteu, itmi, itmoz, itnc, 1 732 itnz, itov, itpl, itpnz, itra, itrc, itrtf, itrtn, 1 733 itsp0, itsp1, itsp2, itsp3, itsp4, itsp5, itsp6, itsp7, 1 734 itss, itsx0, itsx1, itsx2, itsx3, itsx4, itsx5, itsx6, 1 735 itsx7, ittf, ittn, itze, 1 736 (* MISCELLANEOUS INSTRUCTIONS ************** *) 1 737 irccl, idrl, ixec, ixed, imme, imme2, imme3, imme4, 1 738 inop, ipuls1, ipuls2, isra, isbar, ibcd, igtb, 1 739 (* PRIVILEGED INSTRUCTIONS ***************** *) 1 740 ilbar, ilcpr, ildbr, ildt, ilptp, ilptr, ilra, ilsdp, 1 741 ilsdr, ircu, iscpr, iscu, isdbr, isptp, isptr, issdp, 1 742 issdr, icamp, icams, irmcm, irscr, irsw, icioc, ismcm, 1 743 ismic, isscr, iabsa, idis, 1 744 (* SINGLE WORD EIS INSTRUCTIONS ************ *) 1 745 iaar0, iaar1, iaar2, iaar3, iaar4, iaar5, iaar6, iaar7, 1 746 ilar0, ilar1, ilar2, ilar3, ilar4, ilar5, ilar6, ilar7, 1 747 ilareg, ilpl, inar0, inar1, inar2, inar3, inar4, inar5, 1 748 inar6, inar7, iara0, iara1, iara2, iara3, iara4, iara5, 1 749 iara6, iara7, iarn0, iarn1, iarn2, iarn3, iarn4, iarn5, 1 750 iarn6, iarn7, isar0, isar1, isar2, isar3, isar4, isar5, 1 751 isar6, isar7, isareg, ispl, ia4bd, ia6bd, ia9bd, iabd, 1 752 iawd, is4bd, is6bd, is9bd, isbd, iswd, 1 753 (* MULTI-WORDS EIS INSTRUCTIONS ************ *) 1 754 itct, itctr, icmpc, iscm, iscmr, imlr, imrl, imvt, 1 755 icsl, icsr, isztl, isztr, iscd, iscdr, icmpn, imvn, 1 756 icmpb, ibtd, idtb, iad2d, isb2d, imp2d, idv2d, imve, 1 757 imvne, iad3d, isb3d, imp3d, idv3d, 1 758 (* REPEAT INSTRUCTIONS ********************* *) 1 759 irpd, irpl, irpt, 1 760 (* STBA, STBQ ,STCA AND STCB INSTRUCTIONS ** *) 1 761 istba, istbq, istca, istcq) ; 1 762 (* ADDRESS MODIFICATIONS , *) 1 763 (* T+MNEMONIC AND Y USED FOR * , *) 1 764 (* TZ = ILLEGAL MODIFIER *) 1 765 (* BINARY CODE IS OBTAINED WITH THE ORD FUNCTION *) 1 766 tag = (tn, tau, tqu, tdu, tic, tal, tql, tdl, (* R MOD *) 1 767 tx0, tx1, tx2, tx3, tx4, tx5, tx6, tx7, 1 768 tny, tauy, tquy, tz23, ticy, taly, tqly, tz27, (* RI MOD *) 1 769 tx0y, tx1y, tx2y, tx3y, tx4y, tx5y, tx6y, tx7y, 1 770 tf1, titp, tz42, tits, tsd, tscr, tf2, tf3, (* IT MOD *) 1 771 tci, ti, tsc, tad, tdi, tdic, tid, tidc, 1 772 tz60, tyau, tyqu, tydu, tyic, tyal, tyql, tydl, (* IR MOD *) 1 773 tyx0, tyx1, tyx2, tyx3, tyx4, tyx5, tyx6, tyx7) ; 1 774 register = (nreg, pr1, pr2, pr5, pr7, pr3, pr0, prstatic, prlink, pr6, 1 775 nxreg, x0, x1, x2, x3, x4, x5, x6, x7, 1 776 xbidon, ra, rq, raq, reaq, psr, re, ri) ; (* USED REGISTERS *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 17 1 777 preg = nreg..pr6 ; (* POINTER REGISTERS - SUBRANGE OF REGISTER *) 1 778 mreg = tn..tx7 ; (* ADDRESS MODIFICATIONS WITHOUT INDIRECTION *) 1 779 (* - SUBRANGE OF TAG *) 1 780 (* SUBRANGES OF INSTWORD USED IN CODE GENERATION *) 1 781 istand = ieaa..iswd ; (* STANDARD INSTRUCTIONS *) 1 782 ieism = icmpc..idv3d ; (* EIS MULTIWORD INSTRUCTIONS *) 1 783 irept = irpd..irpt ; (* REPEAT INSTRUCTIONS *) 1 784 istobc = istba..istcq ; (* STORE BYTES OR CHARACTERS INSTRUCTIONS *) 1 785 lgcar = (l4, l6, l9) ; (* CHARACTER DATA TYPE - NUMBER = LENGTH IN BITS *) 1 786 typsig = (flls, fxls, fxts, fxns) ; (* SIGN AND DECIMAL TYPES,FL=FLOATING-POINT, *) 1 787 (* FX=FIXED-POINT,LS= LEADING SIGN *) 1 788 (* TS= TRAILING SIGN *) 1 789 (* NS= NO SIGN *) 1 790 (* BIT VALUES FOR CODE GENERATION *) 1 791 zptr = (p0t0r0, p0t0r1, p0t1r0, p0t1r1, p1t0r0, p1t0r1, p1t1r0, p1t1r1) ; (* BITS 0,9 *) 1 792 (* AND 10 OF EIS MULTIWORD INSTRUCTIONS *) 1 793 (* P=SIGN OR FILL BIT , T=TRUNCATION BIT , *) 1 794 (* R=ROUNDING FLAG BIT *) 1 795 zabc = (a0b0c0, a0b0c1, a1b0c0, a1b0c1, a0b1c0, a0b1c1, a1b1c0, a1b1c1) ; (* BITS 8,9 *) 1 796 (* AND 10 OF REPEAT INSTRUCTIONS *) 1 797 (* A AND B = USE OF DELTA FIELD , *) 1 798 (* C = USE OF X0 REGISTER *) 1 799 zari = (a0r0i0, a0r0i1, a0r1i0, a0r1i1, a1r0i0, a1r0i1, a1r1i0, a1r1i1) ; (* BITS 0,1 *) 1 800 (* AND 2 OF EIS MODIFICATION FIELDS *) 1 801 (* A=USE OF ADDRESS REGISTER , *) 1 802 (* R = OPERAND LENGTH FIELD GIVES A REGISTER *) 1 803 (* I= USE OF INDIRECTION FOR *) 1 804 (* THE OPERAND DESCRIPTOR *) 1 805 1 806 (* USED ONLY IN CONDITIONNAL COMPILATION FOR COMPILER'S CONTROLS *) 1 807 forset = (s0, s1, s2, s3, s4, s5) ; (* USED TO GIVE FORBIDDEN TAGS/PTR FOR ISTAND/ *) 1 808 (* IEISM *) 1 809 halfword = integer ; (* USED FOR FICHINTER *) 1 810 binartype = PACKED ARRAY [1..maxfich] OF halfword ; (* FICHINTER *) 1 811 binartypeptr = ^binartype ; 1 812 attrkind = (varbl, lcond, lval, chain, sval) ; 1 813 attraccess = (direct, pointee, pointable, encode) ; 1 814 destination = (inacc, inq, inaq, inpsr, inpr, out) ; 1 815 setarray = ARRAY [0..bornesupset] OF integer ; 1 816 regpt = @regbox ; 1 817 regbox = RECORD (* BOX DESCRIBING A LOADED REGISTER *) 1 818 (* AND MEMORIZING SAVING INFORMATIONS *) 1 819 sregister : register ; (* LOADED REGISTER *) 1 820 saveplace : integer ; (* BYTES DISP. /PR6 OF SAVING STORAGE *) 1 821 nextbloc : regpt ; (* POINTS PREVIOUS BLOC.(NOT NEXT.) *) 1 822 predbloc : regpt ; (* POINTS NEXT BLOC. (NOT PRED.) *) 1 823 END ; (* REGBOX *) 1 824 wcstpt = @iunresolv ; 1 825 rcstpt = @runresolv ; 1 826 lcstpt = @liunresolv ; 1 827 llcstpt = @lliunresolv ; 1 828 iunresolv = RECORD 1 829 valu : integer ; 1 830 cstplace : integer ; (* ENTRY IN UNDLAB *) 1 831 cstnext : wcstpt ; (* LINKAGE OF WORD CSTES *) 1 832 END ; 1 833 runresolv = RECORD *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 18 1 834 rvalu : real ; 1 835 rplace : integer ; (* ENTRY IN UNDLAB *) 1 836 rnext : rcstpt ; (* LINKAGE OF REAL CSTES *) 1 837 END ; 1 838 liunresolv = RECORD 1 839 lvalu : setarray ; 1 840 lplace : integer ; (* ENTRY IN UNDLAB *) 1 841 lnext : lcstpt ; (* LINKAGE OF LONG CSTES *) 1 842 END ; 1 843 lliunresolv = RECORD 1 844 llvalu : setarray ; (* SET CSTE *) 1 845 llplace : integer ; (* ENTRY ON UNDLAB *) 1 846 llnext : llcstpt ; (* LINKAGE OF SET CSTES *) 1 847 END ; 1 848 1 849 attr = RECORD 1 850 1 851 typtr : ctp ; (* TYPE OF DESCRIBED ITEM *) 1 852 CASE kind : attrkind OF 1 853 1 854 varbl : ( (* ITEM IS ANYWHERE IN STORAGE *) 1 855 vlev : levrange ; (* DEFINITION LEVEL *) 1 856 basereg : preg ; (* BASIS TO ACCES ITEM, *) 1 857 (* OR ITS TO ITEM IF POINTABLE *) 1 858 basebloc : regpt ; 1 859 (* POINTS THE BOX DESCRIBING BASEREG; *) 1 860 (* NIL FOR PR4,PR6 *) 1 861 dplmt : integer ; (* BYTES DISPLACEMENT TO ADD AT FINAL ADDRESS *) 1 862 inxreg : register ; (* MODIFICATION REGISTER CONTAINING WORDS DISP *) 1 863 (* RA ==> A 18..35 USED *) 1 864 (* RQ ==> Q 18..35 USED *) 1 865 (* XI ==> INDEX REGISTER *) 1 866 (* NXREG NO MODIFIER *) 1 867 inxbloc : regpt ; (* POINTS BOX DESCRIBING INXREG *) 1 868 inxmem : integer ; (* BYTES DISPLACEMENT/PR6 OF A STORAGE WORD *) 1 869 (* CONT. IN BITS 18..35 A WORD OFFSET SIGNED *) 1 870 inxmemrw : boolean ; (* TRUE IF INXMEM CAN BE WRITTEN *) 1 871 access : attraccess ; 1 872 1 873 (* DIRECT ITEM=[[BASIS]+[INDEX]+DPLMT+[INXMEM]] BASIS=PR4/PR6 1 874* POINTEE SAME BUT BASIS= ANY POINTER REGISTER 1 875* POINTABLE ITEM=[[[BASIS]+ITSDPLMT]+[INDEX]+DPLMT+[INXMEM]] 1 876* ENCODE ITEM GENERATEA IN CODE *) 1 877 itsdplmt : integer ; (* BYTES DISP OF AN ITS EVEN BOUNDARY *) 1 878 pckd : boolean ; (* TRUE IF CONTAINING STRUCTURE WAS PACKED *) 1 879 nameaddr : ctp ; (* PTR TO NAME OF CONCERNED VAR OR FIELD *) 1 880 descreg : preg ; (* PTR TO DESCRIPTOR *) 1 881 descbloc : regpt ; (* BOX FOR THIS POINTER *) 1 882 vmo : boolean ; (* TRUE IF INTERNAL VAR OF MONITOR OR MODULE ACCESS BY PR5 *) { Inserted for SimOne } 1 883 temporary : boolean ; (* TRUE IF THIS VARIABLE IS THE RESULT OF AN EXPRESSION, 1 884* ALLOCATED IN STACK (USED FOR RESULT OF STRING EXPRESSIONS *) 1 885 ) ; (* END VARBL *) 1 886 1 887 lval : ( (* ITEM IS LOADED IN A *) 1 888 (* REGISTER RA,RQ,RAQ,REAQ,PSR *) 1 889 ldreg : register ; (* LOADED REGISTER *) 1 890 ldregbloc : regpt ; (* POINTS THE BOX DESCRIBING LDREG *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 19 1 891 psrsize : integer ; (* SIZE MEANINGSFULL IN BYTES OF PSR IF LOADED *) 1 892 ) ; (* END LVAL *) 1 893 1 894 chain : ( (* ITEM DESCRIBED IS A CHARACTER STRING CONSTANT *) 1 895 (* GENERATED AT THE END OF CODE *) 1 896 (* (WORD BOUNDARY ALIGNED) *) 1 897 alfactp : ctp ; (* POINTS THE (KONST,ALFACONST) BOX ASSOCIATED *) 1 898 ) ; (* END CHAIN *) 1 899 1 900 sval : ( (* ITEM DESCRIBED IS A COMPUTABLE VALUE *) 1 901 (* BY THE COMPILER *) 1 902 val : integer ; (* WORD CONSTANT *) 1 903 rsval : real ; (* FLOAT CONSTANT *) 1 904 valpw : setarray ; (* SET CONSTANT *) 1 905 longv : integer ; (* BYTES LENGTH MEANINGSFULL IN VALPW *) 1 906 ) ; (* END SVAL *) 1 907 1 908 lcond : ( (* ITED DESCRIBED IS A BOOLEAN EITHER LOADED OR *) 1 909 (* KNOWN ONLY BY THE SETTING OF INDICATORD *) 1 910 accbloc : regpt ; (* POINTS BOX DESCRIBING RA IF USED *) 1 911 accbool : boolean ; (* TRUE <==> RA IS USED TO KEEP LCOND *) 1 912 transf : integer ; (* GIVES THE SUITABLE INDICATORS TESTING *) 1 913 ) ; (* END LCOND *) 1 914 1 915 END ; (* RECORD ATTR *) 1 916 1 917 typepr = (epp, spri, lprp) ; (* FOR PR. INST *) 1 918 typix = (adlx, adx, sxl, lxl) ; (* FOR XI INST *) 1 919 typeofop = (load, sub, shiftl, add, neg, cmp, stor) ; (* FOR A,Q,AQ,EAQ INST *) 1 920 statearray = ARRAY [register] OF boolean ; (* STATE OF REGISTERS *) 1 921 1 922 (* STATEMENT MAP *) 1 923 1 924 sttmapptr = @sttmap ; 1 925 sttmap = ARRAY [1..30000] OF 1 926 RECORD 1 927 word1 : integer ; 1 928 word2 : integer 1 929 END ; 1 930 1 931 (* PROFILE COUNTERS AREA *) 1 932 1 933 profareaptr = @profarea ; 1 934 profarea = ARRAY [0..60000] OF integer ; 1 935 1 936 (* BLOCK NODE *) 1 937 1 938 blocktype = (procblock, withblock) ; 1 939 vararea = (statics, locals) ; 1 940 blocknode = RECORD 1 941 father, brother, son : blocknodeptr ; (* BLOCKS TREE *) 1 942 codebegin, codeend : integer ; (* OFFSETS IN STATEMENT MAP *) 1 943 first : ctp ; (* PTR TO FIRST DECLARED SYMBOL *) 1 944 CASE blocktp : blocktype OF 1 945 procblock : ( 1 946 blockbox : ctp ; (* SYMBOL BLOCK FOR PROCEDURE *) 1 947 structureplace : integer ; (* OFFSET OF ENTRY STRUCTURE *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 20 1 948 firstlabel : labelblockptr ; (* PTR TO FIRST LABEL *) 1 949 nextproc : blocknodeptr ; (* NEXT BLOCK *) 1 950 hdrfil, hdrind, hdrlen, hdrlin : integer ; (* SOURCE OF HEADER *) 1 951 ) ; 1 952 withblock : ( 1 953 wbase : vararea ; 1 954 wdispl : integer ; (* OFFSET *) 1 955 windirect : boolean ; 1 956 wstrfile, wstrindex, wstrlength : integer ; 1 957 recordptr : ctp ; 1 958 ) ; 1 959 END ; 1 960 1 961 (* CONDITIONNAL COMPILATION MECHANISM *) 1 962 1 963 condaddr = ^condbox ; 1 964 condbox = RECORD 1 965 condname : alfaid ; 1 966 nextcond : condaddr ; 1 967 active, activated, setinargs : boolean 1 968 END ; 1 969 1 970 1 971 (* ARRAY OF POINTERS TO USED NAMES - FOR "-list" OPTION *) 1 972 1 973 usednamesarray = PACKED ARRAY [0..maxwseg] OF ctp ; 1 974 usednamesptr = @usednamesarray ; 1 975 1 976 1 977 (* END INCLUDE FILE CONSTTYPE.incl.pascal *) 1 978 129 130 131 VAR 132 133 (* REDEFINE IMPORTED VARIABLES FROM RACINE *) 134 135 alfaptr : ctp ; 136 charptr : ctp ; 137 ctptr : ctp ; 138 envstandard : stdkind ; 139 interactive : boolean ; 140 intptr : ctp ; 141 level : levrange ; 142 mpcogout : text ; 143 no : integer ; 144 realptr : ctp ; 145 string_ptr : ctp ; 146 symbolfile : integer ; 147 symbolline : integer ; 148 symbolmap : boolean ; 149 textfilectp : ctp ; 150 151 (* REDEFINE IMPORTED VARIABLES FROM GENERE *) 152 153 cb : integer ; 154 indfich : integer ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 21 155 mfari1 : zari ; 156 mfari2 : zari ; 157 usednameaddr : ctp ; 158 159 (* REDEFINE IMPORTED VARIABLES FROM STATE *) 160 161 arrayboundsctp : ctp ; 162 asscheck : boolean ; 163 currentbloc : regpt ; 164 currentpr : preg ; 165 currwithlist : withreflist ; 166 gattr : attr ; 167 inxcheck : boolean ; 168 modif : ARRAY [nxreg..rq] OF tag ; (* GIVES FOR A REGISTER R ITS TAG TR *) 169 opaq : ARRAY [typeofop, ra..reaq] OF istand ; 170 prinst : ARRAY [typepr, pr1..pr6] OF istand ; 171 regcharge : statearray ; 172 stattrace : levtrace ; 173 variabctptr : ctp ; 174 withvariable : boolean ; 175 176 (* REDEFINE IMPORTED PROCEDURES FROM STATE *) 177 178 PROCEDURE addressvar (fctp : ctp ; VAR fattr : attr ; modif : boolean) ; EXTERNAL ; 179 PROCEDURE checkbnds (errcode : integer ; freg : register ; fctp : ctp) ; EXTERNAL ; 180 PROCEDURE choicerarq ; EXTERNAL ; 181 PROCEDURE enterlcst (VAR fval : setarray ; VAR fboxpt : lcstpt) ; EXTERNAL ; 182 PROCEDURE enterllcst (VAR fval : setarray ; VAR fboxpt : llcstpt) ; EXTERNAL ; 183 PROCEDURE enterundlab (VAR fundinx : integer) ; EXTERNAL ; 184 PROCEDURE freebloc (VAR fbtofree : regpt) ; EXTERNAL ; 185 PROCEDURE gencstecode (farg : integer ; finst : istand) ; EXTERNAL ; 186 PROCEDURE genexceptcode (ferrcode : integer ; freg : register) ; EXTERNAL ; 187 PROCEDURE getpr ; EXTERNAL ; 188 FUNCTION inbounds (fval, fmin, fmax : integer) : boolean ; EXTERNAL ; 189 PROCEDURE loadadr (VAR fattr : attr ; wantedpr : preg) ; EXTERNAL ; 190 PROCEDURE loadbase (flev : integer) ; EXTERNAL ; 191 PROCEDURE newbloc (freg : register) ; EXTERNAL ; 192 FUNCTION oldnewstor (incrinbytes : integer) : integer ; EXTERNAL ; 193 FUNCTION raisused : boolean ; EXTERNAL ; 194 PROCEDURE regenere (oldbloc : regpt) ; EXTERNAL ; 195 PROCEDURE sauvereg (freg : register ; fload : boolean) ; EXTERNAL ; 196 PROCEDURE stack_extension ; EXTERNAL ; 197 PROCEDURE transfer (VAR fattr : attr ; inwhat : destination) ; EXTERNAL ; 198 PROCEDURE variab (fvarset : boolean) ; EXTERNAL ; 199 200 (* REDEFINE IMPORTED PROCEDURES FROM CONTEXTTABLE *) 201 202 FUNCTION areconformeq (f1, f2 : ctp) : boolean ; EXTERNAL ; 203 PROCEDURE checkminmax (fvalu : integer ; fctp : ctp ; ferrnum : integer) ; EXTERNAL ; 204 PROCEDURE compatbin (typleft, typright : ctp ; VAR fgeneric : ctp) ; EXTERNAL ; 205 FUNCTION conformantdim (ffound : ctp) : boolean ; EXTERNAL ; 206 PROCEDURE findminmax (fctp : ctp ; VAR fmin, fmax : integer) ; EXTERNAL ; 207 FUNCTION legalconfarrsubstitution (ffound, fdecl : ctp) : boolean ; EXTERNAL ; 208 FUNCTION packedsize (fctp : ctp) : integer ; EXTERNAL ; 209 210 (* REDEFINE IMPORTED PROCEDURES FROM RACINE *) 211 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 22 212 PROCEDURE error (errno : integer) ; EXTERNAL ; 213 PROCEDURE insymbol ; EXTERNAL ; 214 PROCEDURE nameisref (p : ctp ; f, l : integer) ; EXTERNAL ; 215 PROCEDURE nextline ; EXTERNAL ; 216 FUNCTION recadre (fnum, fmod : integer) : integer ; EXTERNAL ; 217 PROCEDURE search ; EXTERNAL ; 218 PROCEDURE skip (nosym : integer) ; EXTERNAL ; 219 PROCEDURE srchrec (fdebsrch : ctp) ; EXTERNAL ; 220 FUNCTION sup (fval1, fval2 : integer) : integer ; EXTERNAL ; 221 222 (* REDFINE IMPORTED PROCEDURES FROM MODATTR *) 223 224 FUNCTION is_pl1_varying_char (VAR typeptr : ctp) : boolean ; EXTERNAL ; 225 PROCEDURE convreal (VAR fattr : attr) ; EXTERNAL ; 226 PROCEDURE initattrvarbl (VAR fattr : attr) ; EXTERNAL ; 227 PROCEDURE freeattr (VAR fattr : attr) ; EXTERNAL ; 228 FUNCTION isstring (VAR fattr : attr) : boolean ; EXTERNAL ; 229 PROCEDURE printattr (VAR fattr : attr) ; EXTERNAL ; 230 FUNCTION varissimple (VAR fattr : attr) : boolean ; EXTERNAL ; 231 232 (* REDEFINE IMPORTED PROCEDURES FROM EXPRESSION *) 233 234 PROCEDURE expression ; EXTERNAL ; 235 236 (* REDEFINE IMPORTED PROEDURES FORM GENOPER *) 237 238 PROCEDURE check_dynamic_string_length (VAR fattr : attr) ; EXTERNAL ; 239 240 (* REDEFINE IMPORTED PROCEDURES FROM GENERE *) 241 242 PROCEDURE gendesca (fareg : preg ; fadr, fcn : integer ; fta : lgcar ; 243 fn : integer ; frlgth : mreg) ; EXTERNAL ; 244 PROCEDURE genstand (fpr : preg ; fadr : integer ; fcode : istand ; ftg : tag) ; EXTERNAL ; 245 PROCEDURE inser (fcb : integer ; fplace : integer) ; EXTERNAL ; 246 PROCEDURE geneism (fcode : ieism ; ffield : integer ; fbits : zptr) ; EXTERNAL ; 247 248 249 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 23 250 251 (* ************************** INIT_DESC_ADDRESS ********* *) 252 253 PROCEDURE init_desc_address (fctptr : ctp ; VAR fattr : attr) ; 254 255 (* C A conformant array or schema variable described by FATTR is input. 256* As output, a pointer register on dopevector (and his box) 257* FATTR points real variable 258* C *) 259 260 VAR 261 ldisp : integer ; 262 locpt : ctp ; 263 lreg : preg ; 264 lbloc : regpt ; 265 266 267 BEGIN (* INIT_DESC_ADDRESS *) 268 269 IF fattr.descreg = nreg THEN 270 BEGIN 271 $OPTIONS compile = trace $ 272 IF stattrace = high THEN 273 BEGIN 274 write (mpcogout, '^^^ Debut de INIT_DESC_ADDRESS ^^^ ') ; nextline ; 275 END ; 276 $OPTIONS compile = true $ 277 278 locpt := fattr.nameaddr ; 279 ldisp := 1 ; 280 IF locpt <> NIL THEN 281 IF locpt^.vtype <> NIL THEN 282 IF locpt^.vtype^.father_schema <> NIL THEN ldisp := 0 ; 283 (* Return DOPEVECTOR BASE *) 284 getpr ; 285 genstand (fattr.basereg, fctptr^.vdescaddr DIV bytesinword, prinst [epp, currentpr], tny) ; 286 genstand (currentpr, ldisp (* Header *), prinst [epp, currentpr], tn) ; 287 lreg := currentpr ; 288 lbloc := currentbloc ; 289 290 loadadr (fattr, nreg) ; (* Returns CURRENTPR and CURRENTBLOC *) 291 292 initattrvarbl (fattr) ; 293 WITH fattr DO 294 BEGIN 295 access := pointee ; basereg := currentpr ; basebloc := currentbloc ; 296 nameaddr := locpt ; 297 descreg := lreg ; descbloc := lbloc ; 298 END ; 299 300 END ; 301 302 $OPTIONS compile = trace $ 303 IF stattrace = high THEN 304 BEGIN 305 write (mpcogout, '^^^ Fin de INIT_DESC_ADDRESS ^^^') ; nextline ; 306 END ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 24 307 $OPTIONS compile = true $ 308 309 END (* INIT_DESC_ADDRESS *) ; 310 311 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 25 312 313 (* *************************** VARIABLE ****************************** *) 314 315 PROCEDURE variable (fvarset : boolean) ; 316 317 (* C 318* BUILD A GATTR FOR ELEMENT ARRAY NO=11 [ 319* POINTED ITEM =18 ^ 320* RECORD FIELD =17 . 321* FILE ELEMENT =18 ^ 322* 323* FIRST CALL ADDRESSVAR 324* C *) 325 326 (* E ERRORS DETECTED 327* 2: IDENTIFIER EXPECTED 328* 12: "]" EXPECTED 329* 139: INDEX TYPE NOT COMPATIBLE with DECLARATION 330* 140: RECORDS EXPECTED 331* 141: FILES or POINTER EXPECTED 332* 142: ARRAYS EXPECTED 333* 152: NO SUCH FIELD in THIS RECORD 334* 302: INDEX OUT OF BOUNDS 335* E *) 336 337 VAR 338 loc1, loc2 : integer ; 339 string_base : preg ; string_disp : integer ; 340 loaded_reg : register ; 341 lattr : attr ; 342 lerr, smallelem, isconform, totransfer, stoprepeat : boolean ; 343 locvariabctptr : ctp ; 344 nextdimisconform, done_with_index : boolean ; 345 arraytype, generic : ctp ; 346 destused : destination ; 347 regused : register ; 348 $OPTIONS compile = trace $ 349 newattr : boolean ; 350 $OPTIONS compile = true $ 351 subarraysize, pointzero, twopower, lmin, lmax : integer ; 352 lbase : preg ; 353 lcomp : istand ; 354 oldline, oldfile : integer ; 355 lp, oldptr : ctp ; 356 checkismade : boolean ; 357 locdopevectordisp : integer ; 358 previouswasarrow, savewithflag : boolean ; 359 it : integer ; 360 refs : RECORD 361 nbr : integer ; 362 ref : ARRAY [1..maxfield] OF 363 RECORD 364 symbp : ctp ; 365 rfile, rline : integer 366 END 367 END ; 368 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 26 369 370 (* *************************************************** ENTERREF **************************** *) 371 372 PROCEDURE enterref ; 373 374 BEGIN 375 IF oldptr <> NIL THEN 376 IF refs.nbr < maxfield THEN 377 BEGIN 378 refs.nbr := refs.nbr + 1 ; 379 WITH refs.ref [refs.nbr] DO 380 BEGIN 381 symbp := oldptr ; 382 rfile := symbolfile ; 383 rline := symbolline ; 384 END ; 385 oldptr := NIL ; 386 END 387 END ; 388 389 BEGIN (* VARIABLE *) 390 $OPTIONS compile = trace $ 391 IF stattrace > none THEN 392 BEGIN 393 write (mpcogout, '^^^ DEBUT VARIABLE ^^^') ; 394 nextline ; 395 END ; 396 newattr := false ; 397 $OPTIONS compile = true $ 398 399 locvariabctptr := ctptr ; 400 addressvar (ctptr, lattr, fvarset) ; 401 locdopevectordisp := 0 ; 402 403 404 405 oldfile := symbolfile ; oldline := symbolline ; oldptr := ctptr ; 406 insymbol ; 407 previouswasarrow := false ; 408 refs.nbr := 0 ; 409 WHILE no IN [11, 17, 18] DO (* [ . ^ *) 410 BEGIN 411 $OPTIONS compile = trace $ 412 newattr := true ; 413 $OPTIONS compile = true $ 414 IF no = 11 THEN (* ARRAY'S ELEMENT *) 415 BEGIN 416 savewithflag := withvariable ; 417 withvariable := false ; 418 done_with_index := false ; 419 IF lattr.typtr <> NIL THEN 420 WITH lattr.typtr^ DO 421 IF (father_schema = string_ptr) AND (no = 11) THEN 422 BEGIN (* STRING INDEX. SPECIAL SEQUENCE *) 423 done_with_index := true ; 424 IF asscheck THEN 425 check_dynamic_string_length (lattr) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 27 426 IF varissimple (lattr) THEN 427 BEGIN 428 string_base := lattr.basereg ; string_disp := lattr.dplmt DIV bytesinword ; 429 END ELSE BEGIN 430 loadadr (lattr, nreg) ; 431 string_base := currentpr ; string_disp := 0 ; 432 WITH lattr DO 433 BEGIN 434 access := pointee ; basereg := currentpr ; basebloc := currentbloc ; 435 dplmt := 0 ; 436 END 437 END ; 438 lerr := false ; 439 insymbol ; expression ; 440 compatbin (intptr, gattr.typtr, generic) ; 441 IF (generic = NIL) OR (generic = realptr) THEN 442 BEGIN 443 lerr := true ; error (280) ; 444 END ; 445 IF no <> 12 THEN 446 BEGIN lerr := true ; error (12) END 447 ELSE insymbol ; 448 IF NOT lerr THEN 449 BEGIN 450 WITH gattr DO 451 CASE kind OF 452 varbl : BEGIN 453 IF raisused THEN 454 BEGIN 455 loaded_reg := rq ; sauvereg (rq, false) ; 456 transfer (gattr, inq) ; 457 END 458 ELSE BEGIN 459 loaded_reg := ra ; 460 transfer (gattr, inacc) ; 461 END ; 462 END ; 463 sval : BEGIN 464 IF raisused THEN 465 BEGIN 466 loaded_reg := rq ; sauvereg (rq, false) ; 467 END ELSE 468 loaded_reg := ra ; 469 gencstecode (val, opaq [load, loaded_reg]) ; 470 END ; 471 lval : BEGIN 472 loaded_reg := ldreg ; 473 IF asscheck THEN 474 genstand (nreg, 0, opaq [add, loaded_reg], tdl) ; (* TO SET INDIC *) 475 END ; 476 END ; 477 freeattr (gattr) ; 478 IF asscheck THEN 479 BEGIN 480 loc2 := indfich ; genstand (nreg, 0, itmoz, tic) ; 481 genstand (string_base, string_disp, opaq [cmp, loaded_reg], tn) ; 482 loc1 := indfich ; genstand (nreg, 0, itmoz, tic) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 28 483 inser (cb, loc2) ; 484 genexceptcode (bad_string_index, loaded_reg) ; 485 inser (cb, loc1) ; 486 END ; 487 WITH lattr DO 488 BEGIN 489 IF basereg IN [prstatic, prlink, pr6] THEN 490 BEGIN 491 getpr ; genstand (basereg, 0, prinst [epp, currentpr], tn) ; 492 basereg := currentpr ; basebloc := currentbloc ; 493 END ; 494 genstand (basereg, 0, ia9bd, modif [loaded_reg]) ; 495 dplmt := dplmt + 3 ; 496 nameaddr := NIL ; 497 pckd := true ; 498 END ; 499 END ; 500 lattr.typtr := charptr ; 501 END ; 502 503 IF NOT done_with_index THEN 504 BEGIN 505 REPEAT (* LOOP ON EACH DIMENSION *) 506 WITH lattr DO (* DESCRIBE PREVIOUS *) 507 BEGIN 508 IF typtr <> NIL THEN 509 BEGIN (* NO PREV. FATAL ERROR *) 510 IF typtr^.form <> arrays THEN 511 BEGIN 512 typtr := NIL ; 513 error (142) ; 514 END (* ERR *) ELSE 515 WITH typtr^ DO 516 IF aeltype <> NIL THEN 517 BEGIN (* ARRAYS *) 518 IF conformantdim (typtr) THEN 519 BEGIN 520 IF symbolmap THEN 521 BEGIN 522 nameisref (pthigh, oldfile, oldline) ; 523 nameisref (ptlow, oldfile, oldline) ; 524 END ; 525 IF lattr.descreg = nreg THEN 526 BEGIN 527 lp := typtr ; 528 WHILE conformantdim (lp^.aeltype) DO 529 BEGIN 530 locdopevectordisp := locdopevectordisp + 3 ; 531 lp := lp^.aeltype 532 END ; 533 init_desc_address (locvariabctptr, lattr) ; 534 END ; 535 END ; 536 smallelem := cadrage < bytesinword ; 537 pckd := smallelem OR ((aeltype^.form = pointer) 538 AND pack) ; 539 isconform := conformant ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 29 540 nextdimisconform := conformantdim (aeltype) ; 541 END (* ARRAYS *) ; 542 END (* TYPTR <>nil *) ; 543 arraytype := typtr ; 544 END (* with LATTR *) ; 545 (* *) 546 (* ANALYSIS FOR CURRENT *) 547 (* INDEX EXPRESSION *) 548 (* (* *) 549 550 insymbol ; expression ; 551 552 IF gattr.typtr <> NIL THEN 553 IF arraytype <> NIL THEN 554 WITH gattr, arraytype^ DO 555 BEGIN 556 compatbin (arraytype^.inxtype, typtr, generic) ; 557 IF (generic = NIL) OR (generic = realptr) THEN 558 error (139) ELSE 559 BEGIN (* TYPES COMPAT *) 560 561 $OPTIONS compile = trace $ 562 IF stattrace = high THEN 563 BEGIN 564 write (mpcogout, '&&& Variable. Break point 3.') ; nextline ; 565 write (mpcogout, ' SMALLELEM =', smallelem : 8, ' PCKD = ', pckd : 8, 566 ' ISCONFORM = ', isconform : 8) ; nextline ; 567 write (mpcogout, ' GATTR Follows:') ; nextline ; 568 printattr (gattr) ; 569 write (mpcogout, ' LATTR Follows:') ; nextline ; 570 printattr (lattr) ; 571 write (mpcogout, '&&& Variable. Break point 3 .Fin.') ; nextline ; 572 END ; 573 $OPTIONS compile = true $ 574 IF isconform THEN 575 BEGIN 576 IF gattr.kind = sval THEN 577 checkminmax (gattr.val, arraytype^.inxtype, 302) ; 578 transfer (gattr, inq) ; 579 checkismade := false ; destused := inq ; regused := rq ; 580 END (* ISCONFORM *) ELSE 581 BEGIN (* STANDARD ARRAY *) 582 subarraysize := subsize ; 583 twopower := opt2 ; 584 pointzero := lattr.dplmt - lo * subarraysize ; 585 (* FIND DESTINATION REGISTER *) 586 IF twopower >= 2 (* SIZE 4,8,16... *) THEN 587 CASE kind OF 588 lval : 589 regused := ldreg ; 590 sval, lcond, varbl : 591 IF raisused THEN 592 regused := rq ELSE 593 regused := ra ; 594 END (* CASE KIND,TWOPOWER>=2 *) ELSE 595 regused := rq ; (* MULTIPLICAND in RQ *) 596 IF regused = ra THEN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 30 597 destused := inacc ELSE 598 destused := inq ; 599 END (* STANDARD ARRAYS *) ; 600 IF (kind = sval) THEN 601 BEGIN 602 arrayboundsctp^.nmin := lo ; 603 arrayboundsctp^.nmax := hi ; 604 checkminmax (val, arrayboundsctp, 302) ; 605 checkismade := true ; 606 IF lattr.pckd THEN 607 transfer (gattr, destused) ; 608 END ELSE 609 checkismade := false ; 610 IF kind = sval THEN (* ONLY STANDARD *) 611 BEGIN 612 lattr.dplmt := pointzero + val * subarraysize ; 613 END (* SVAL *) ELSE 614 BEGIN (* NOT SVAL *) 615 IF inxcheck THEN 616 BEGIN 617 transfer (gattr, destused) ; 618 IF isconform THEN 619 BEGIN 620 regenere (lattr.descbloc) ; 621 genstand (lattr.descreg, locdopevectordisp, icmpq, tn) ; 622 lmin := indfich ; genstand (nreg, 0, itmi, tic) ; 623 genstand (lattr.descreg, locdopevectordisp + 1, icmpq, tn) ; 624 END ELSE 625 IF NOT checkismade THEN 626 BEGIN 627 lcomp := opaq [cmp, regused] ; 628 gencstecode (lo, lcomp) ; 629 lmin := indfich ; 630 genstand (nreg, 0, itmi, tic) ; (* ERR if NEG ON *) 631 gencstecode (hi, lcomp) ; 632 END (* NOT CONF *) ; 633 (* COMMON SECTION *) 634 IF NOT checkismade THEN 635 BEGIN 636 lmax := indfich ; 637 genstand (nreg, 0, itmoz, tic) ; (* OK if <= *) 638 inser (cb, lmin) ; genexceptcode (inxerrcode, ldreg) ; 639 inser (cb, lmax) ; 640 END ; 641 END (* INXCHECK *) ELSE 642 IF NOT isconform THEN 643 BEGIN (* NOT INXCHECKS *) 644 totransfer := true ; 645 IF kind = varbl THEN 646 IF vlev <> 0 THEN 647 IF subarraysize = bytesinword THEN 648 IF varissimple (gattr) THEN 649 IF lattr.inxmem = 0 THEN 650 BEGIN 651 totransfer := false ; 652 lattr.dplmt := pointzero ; 653 lattr.inxmem := dplmt ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 31 654 lattr.inxmemrw := false ; (* READ-ONLY *) 655 END ; 656 IF totransfer THEN 657 transfer (gattr, destused) ; 658 END (* NOT INXCHECK *) ; 659 END (* NOT SVAL *) ; 660 (* NOW INDEX IS in REGUSED , *) 661 (* EXCEPT SVAL endED *) 662 (* VARBL INXMEMRW F endED *) 663 664 $OPTIONS compile = trace $ 665 IF stattrace = high THEN 666 BEGIN 667 write (mpcogout, '&&& Variable. Break point 2.') ; nextline ; 668 write (mpcogout, ' REGUSED =', ord (regused) : 4, 669 ' DESTUSED =', ord (destused) : 4) ; nextline ; 670 671 write (mpcogout, ' GATTR Follows:') ; nextline ; 672 printattr (gattr) ; 673 write (mpcogout, ' LATTR Follows:') ; nextline ; 674 printattr (lattr) ; 675 write (mpcogout, '&&& Variable. Break point 2 .Fin.') ; nextline ; 676 END ; 677 $OPTIONS compile = true $ 678 IF kind = lval THEN (* COMPUTE DISP *) 679 BEGIN 680 IF isconform THEN 681 BEGIN 682 (* Zero point correction *) 683 regenere (lattr.descbloc) ; 684 genstand (lattr.descreg, locdopevectordisp, isbq, tn) ; 685 sauvereg (ra, false) ; 686 genstand (lattr.descreg, locdopevectordisp + 2, impy, tn) ; 687 IF NOT nextdimisconform THEN 688 BEGIN 689 freebloc (lattr.descbloc) ; 690 lattr.descreg := nreg ; 691 END ; 692 693 regenere (lattr.basebloc) ; 694 IF pack THEN genstand (lattr.basereg, 0, iabd, tql) 695 ELSE genstand (lattr.basereg, 0, iawd, tql) ; 696 freebloc (gattr.ldregbloc) ; 697 regused := nreg ; 698 699 locdopevectordisp := locdopevectordisp - 3 ; (* Next dim *) 700 701 END ELSE 702 BEGIN (* STANDARD *) 703 (* COMMON PART *) 704 (* ZERO POINT CORRECTION *) 705 IF lo <> 0 THEN 706 BEGIN 707 IF (NOT smallelem) AND 708 inbounds (pointzero, -twoto16, twoto16 - 1) THEN 709 lattr.dplmt := pointzero ELSE 710 gencstecode (lo, opaq [sub, regused]) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 32 711 END (* LO<>0 *) ; 712 IF NOT smallelem THEN 713 BEGIN (* WORD DISP *) 714 IF twopower > 2 (* 8 16 32 .. *) THEN 715 genstand (nreg, twopower - 2, opaq [shiftl, regused], tn) ELSE 716 (* TWOPOWER =2 NO-OP ; *) 717 (* 0,1 IMPOSSIBLE HERE *) 718 IF twopower < 0 THEN 719 BEGIN 720 transfer (gattr, inq) ; 721 sauvereg (ra, false) ; 722 genstand (nreg, subarraysize DIV bytesinword, impy, tdl) ; 723 regused := rq ; 724 END (* TWOPOWER < 0 *) ; 725 END (* WORD DISP *) ELSE 726 BEGIN (* PACKED *) 727 (* ADD BYTES DISP TO A PR *) 728 loadadr (lattr, nreg) ; 729 WITH lattr DO (* CAUTION NESTED ATTR *) 730 BEGIN 731 basereg := currentpr ; basebloc := currentbloc ; 732 dplmt := 0 ; 733 inxreg := nxreg ; inxbloc := NIL ; 734 inxmem := 0 ; inxmemrw := true ; 735 itsdplmt := 0 ; access := pointee ; 736 END (* NESTED *) ; 737 (* RA RQ BECOMES "BYTES" DISP *) 738 IF twopower > 0 THEN 739 genstand (nreg, twopower, opaq [shiftl, regused], tn) ELSE 740 (* NO-OP FOR BYTE *) 741 IF twopower < 0 THEN 742 BEGIN 743 transfer (gattr, inq) ; 744 sauvereg (ra, false) ; 745 gencstecode (subarraysize, impy) ; 746 regused := rq ; 747 END (* < 0 *) ; 748 IF size >= twoto15 THEN 749 BEGIN 750 IF regused = ra THEN 751 BEGIN 752 sauvereg (rq, false) ; 753 regused := rq ; (* SEE A9BD LATER *) 754 genstand (nreg, 2, ilrl, tn) ; 755 END (* RA *) ELSE 756 BEGIN 757 sauvereg (ra, false) ; 758 genstand (nreg, 34, ills, tn) ; 759 END ; 760 genstand (nreg, 34, iqrl, tn) ; 761 (* NOW A=WORD DISP. *) 762 (* Q=BYTES DISP. *) 763 genstand (currentpr, 0, iawd, tal) ; 764 END (* LONG *) ; 765 genstand (currentpr, 0, ia9bd, modif [regused]) ; 766 freebloc (ldregbloc) ; 767 regused := nreg ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 33 768 END (* PACKED *) ; 769 END (* STANDARD ARRAY *) ; 770 771 $OPTIONS compile = trace $ 772 IF stattrace = high THEN 773 BEGIN 774 write (mpcogout, '&&& Variable. Break point 1.') ; nextline ; 775 write (mpcogout, ' REGUSED =', ord (regused) : 4, 776 ' DESTUSED =', ord (destused) : 4) ; nextline ; 777 778 write (mpcogout, ' GATTR Follows:') ; nextline ; 779 printattr (gattr) ; 780 write (mpcogout, ' LATTR Follows:') ; nextline ; 781 printattr (lattr) ; 782 write (mpcogout, '&&& Variable. Break point 1 .Fin.') ; nextline ; 783 END ; 784 $OPTIONS compile = true $ 785 IF regused <> nreg THEN 786 WITH lattr DO (* CAUTION NESTED ATTR *) 787 BEGIN 788 IF inxreg = nxreg THEN 789 BEGIN 790 inxreg := regused ; (* BITS 18..35 *) 791 inxbloc := gattr.ldregbloc ; 792 END (* NXREG *) ELSE 793 IF inxreg = regused THEN 794 BEGIN (* NECESSARY SAVED *) 795 IF inxmem = 0 THEN 796 BEGIN 797 inxmem := inxbloc^.saveplace ; 798 END (* INXMEM=0 *) ELSE 799 BEGIN (* <>0 *) 800 (* ADD SAVED OLD INDEX AT NEW INDEX *) 801 genstand (pr6, inxbloc^.saveplace DIV bytesinword, 802 opaq [add, regused], tn) ; 803 END (* <>0 *) ; 804 freebloc (inxbloc) ; 805 inxbloc := gattr.ldregbloc ; 806 END (* NECESSARY SAVED *) ELSE 807 (* OLD INDEX IS OTHER *) 808 (* REGISTER A <==>Q *) 809 IF inxmem = 0 THEN 810 BEGIN 811 IF inxbloc^.saveplace <> 0 THEN 812 BEGIN 813 inxreg := regused ; 814 inxmem := inxbloc^.saveplace ; 815 freebloc (inxbloc) ; 816 inxbloc := gattr.ldregbloc ; 817 END ELSE 818 BEGIN (* OLD INDEX NOT SAVED *) 819 inxmem := oldnewstor (bytesinword) ; 820 genstand (pr6, inxmem DIV bytesinword, ista, tn) ; 821 IF inxreg = rq THEN 822 freebloc (gattr.ldregbloc) ELSE 823 BEGIN 824 freebloc (inxbloc) ; inxreg := rq ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 34 825 inxbloc := gattr.ldregbloc ; 826 END ; 827 END (* OLD INDEX NOT SAVED *) ; 828 END (* INXMEM=0 *) ELSE 829 BEGIN (* INXMEM <> 0 *) 830 IF inxbloc^.saveplace <> 0 THEN 831 BEGIN (* OLD SAVED *) 832 genstand (pr6, inxbloc^.saveplace DIV bytesinword, 833 opaq [add, regused], tn) ; 834 freebloc (inxbloc) ; 835 inxbloc := gattr.ldregbloc ; 836 inxreg := regused ; 837 END (* OLD SAVED *) ELSE 838 BEGIN (* OLD NOT SAVED *) 839 IF inxmemrw THEN 840 genstand (pr6, inxmem DIV bytesinword, iasa, tn) ELSE 841 BEGIN (* READ-ONLY STORAGE *) 842 genstand (pr6, inxmem DIV bytesinword, iada, tn) ; 843 inxmem := oldnewstor (bytesinword) ; 844 inxmemrw := true ; 845 genstand (pr6, inxmem DIV bytesinword, ista, tn) ; 846 END ; 847 IF regused = rq THEN 848 BEGIN 849 freebloc (inxbloc) ; inxreg := rq ; 850 inxbloc := gattr.ldregbloc ; 851 END ELSE 852 freebloc (gattr.ldregbloc) ; 853 END (* OLD NOT SAVED *) ; 854 END (* INXMEM<>0 *) ; 855 END (* with LATTR ==> with GATTR *) ; 856 END (* GATTR.KIND=LVAL *) ; 857 END (* TYPES COMPAT *) ; 858 859 lattr.typtr := aeltype ; (* GET NEXT DIM *) 860 861 END (* with GATTR,ARRAYTYPE^, NO TYPE ERROR *) ; 862 IF no = 15 (* , *) THEN 863 stoprepeat := false ELSE 864 IF no = 12 (* ] *) THEN 865 BEGIN 866 insymbol ; stoprepeat := no <> 11 ; (* [ *) 867 END ELSE 868 BEGIN 869 insymbol ; 870 error (12) ; stoprepeat := true ; 871 END ; 872 UNTIL stoprepeat ; 873 END ; 874 withvariable := savewithflag ; 875 previouswasarrow := false ; 876 END (* NO=11 ARRAY ELEMENT *) ELSE 877 IF no = 17 (* . RECORD FIELD *) THEN 878 BEGIN 879 IF symbolmap THEN 880 BEGIN 881 enterref ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 35 882 IF previouswasarrow THEN 883 BEGIN 884 FOR it := 1 TO refs.nbr DO 885 WITH refs.ref [it] DO 886 nameisref (symbp, rfile, rline) ; 887 refs.nbr := 0 ; 888 END 889 END ; 890 insymbol ; 891 oldfile := symbolfile ; oldline := symbolline ; oldptr := NIL ; 892 IF no <> 1 THEN (* NOT ID *) 893 BEGIN 894 error (2) ; lattr.typtr := NIL ; 895 END ELSE 896 WITH lattr DO 897 BEGIN 898 IF typtr <> NIL THEN 899 IF typtr^.form <> records THEN 900 BEGIN 901 error (140) ; typtr := NIL ; 902 END ELSE 903 BEGIN 904 srchrec (typtr^.fstfld) ; 905 IF ctptr = NIL THEN 906 BEGIN 907 error (152) ; typtr := NIL ; 908 END ELSE 909 BEGIN 910 nameaddr := ctptr ; 911 oldptr := ctptr ; 912 WITH ctptr^ DO 913 BEGIN 914 dplmt := dplmt + fldaddr ; 915 pckd := false ; 916 IF typtr^.pack THEN 917 IF (bytwidth < bytesinword) OR ((fldtype^.form = power) AND 918 (bytwidth <= bytesindword)) THEN 919 pckd := true ELSE 920 IF fldtype^.form = pointer THEN 921 pckd := true ; 922 typtr := fldtype ; 923 IF pckd THEN 924 IF access = direct THEN 925 access := pointee ; 926 END (* with CTPTR, CTPTR<>nil *) ; 927 END ; 928 END (* NO TYPE ERROR *) ; 929 insymbol ; 930 END (* with LATTR, NO=1 *) ; 931 previouswasarrow := false ; 932 END (* NO=17 *) ELSE 933 BEGIN (* NO=18 *) (* ^ FILE or POINTER *) 934 WITH lattr DO 935 IF typtr <> NIL THEN 936 IF typtr^.form = pointer THEN 937 BEGIN 938 totransfer := false ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 36 939 IF access = pointable THEN 940 totransfer := true ELSE 941 IF access = direct THEN 942 BEGIN 943 IF (inxmem <> 0) OR (inxreg <> nxreg) THEN 944 totransfer := true ; 945 END ELSE 946 IF access = pointee THEN 947 IF pckd OR (inxmem <> 0) OR (inxreg <> nxreg) THEN 948 totransfer := true ; 949 IF totransfer THEN 950 transfer (lattr, inpr) (* BECOMES POINTEE *) ELSE 951 BEGIN 952 itsdplmt := dplmt ; dplmt := 0 ; access := pointable ; 953 END ; 954 typtr := typtr^.eltype ; 955 END (* POINTER *) ELSE 956 IF typtr^.form = files THEN 957 BEGIN 958 IF interactive THEN 959 IF typtr = textfilectp THEN 960 BEGIN 961 IF basereg <> pr5 THEN 962 BEGIN 963 sauvereg (pr5, true) ; 964 freebloc (basebloc) ; 965 basebloc := currentbloc ; 966 END ; 967 genstand (basereg, itsdplmt DIV bytesinword, iepp5, tny) ; 968 basereg := pr5 ; 969 access := pointee ; itsdplmt := 0 ; dplmt := 0 ; 970 genstand (pr0, checkbeforetextreferenceplace, itsp3, tn) ; 971 END ; 972 dplmt := fdescsize ; 973 pckd := false ; 974 IF typtr^.pack THEN 975 IF packedsize (typtr^.feltype) < bytesinword THEN 976 pckd := true ELSE 977 IF typtr^.feltype^.form = pointer THEN 978 pckd := true ; 979 typtr := typtr^.feltype ; 980 IF pckd THEN 981 IF access = direct THEN 982 access := pointee ; 983 END (* FILES *) ELSE 984 BEGIN 985 error (141) ; typtr := NIL ; 986 END ; 987 insymbol ; 988 previouswasarrow := true ; 989 END (* NO=18 *) ; 990 END (* while NO in [11,17,18] *) ; 991 IF symbolmap THEN 992 BEGIN 993 enterref ; 994 IF previouswasarrow THEN 995 BEGIN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 37 996 FOR it := 1 TO refs.nbr DO 997 WITH refs.ref [it] DO 998 nameisref (symbp, rfile, rline) ; 999 refs.nbr := 0 ; 1000 END 1001 ELSE 1002 FOR it := 1 TO refs.nbr DO 1003 WITH refs.ref [it] DO 1004 IF fvarset THEN nameisref (symbp, rfile, -rline) 1005 ELSE nameisref (symbp, rfile, rline) ; 1006 IF withvariable THEN 1007 BEGIN 1008 currwithlist.nbr := refs.nbr ; 1009 FOR it := 1 TO refs.nbr DO 1010 currwithlist.symbolp [it] := refs.ref [it].symbp ; 1011 END ; 1012 END ; 1013 gattr := lattr ; 1014 $OPTIONS compile = trace $ 1015 IF stattrace > low THEN 1016 BEGIN 1017 IF (stattrace = high) AND newattr THEN 1018 printattr (gattr) ; 1019 write (mpcogout, '^^^ FIN VARIABLE with NO', no : 4) ; nextline ; 1020 END ; 1021 $OPTIONS compile = true $ 1022 END (* VARIABLE *) ; 1023 1024 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 38 1025 PROCEDURE passparams (fctplace : integer) ; 1026 1027 (* C. CALLED IN ORDER TO 1028* . ANALYSE ACTUAL PARAMETERS FOR A PROCEDURE, FUNCTION CALL 1029* . BUILD ARGUMENT'S LIST 1030* * STANDARD HEADER 1031* * POINTERS LIST ON PARAMETERS 1032* * FOR A FUNCTION ONE MORE "ITS" POINTING THE PLACE TO BE 1033* ASSIGNED 1034* . FOR ACTUAL PROCEDURE(FUNCTION) PARAMETER TWO "ITS" ARE GIVEN 1035* * THE RIGHT ITS IN LINKAGE SECTION 1036* * THE COMPUTED DYNAMIC LINK 1037* . FOR A CONFORMANT ARRAY FOUR ITEMS 1038* * "ITS" ON REAL ARRAY 1039* * LOW BOUND, HIGHBOUND, DIM SIZE IN WORDS 1040* FCTPLACE IS THE DISP IN CALLER FRAME WHERE RETURNED VALUE MUST BE PUT 1041* . CTPTR POINTS THE BOX "PROC" OF THE CALLED PROCEDURE 1042* . FIRST INSYMBOL ALREADY DONE 1043* C *) 1044 (* E ERRORS DETECTED 1045* 4: ")" EXPECTED 1046* 15: "," EXPECTED 1047* 28: PREDEF PROC/FUNCT NOT ALLOWED HERE 1048* 103: UNAPPROPRIATE CLASS FOR ID. 1049* 104: UNDECLARED ID. 1050* 126: NUMBER OF PARAMETERS DOES NOT AGREE WITH DECLARATION 1051* 127: ILLEGAL PARAMETER SUBSTITUTION 1052* 128: PARAMETER CONFLICT IN FORMAL PROC. 1053* 133: ILLEGAL CONFORMANT ARRAY SUBSTITUTION 1054* 230 : EFFICTIVE PARAMETER PASSED BY VALUE CAOONT BE CONFORMANT ARRAY 1055* 303: VALUE ASSIGNED OUT OF RANGE 1056* 318: PARAMETER PROCEDURE PASSED TO AN EXTERNAL PROCEDURE MUST BE EXPORTABLE 1057* E *) 1058 LABEL 1059 2, 1060 1 ; (* EXIT PROC WHEN FATAL ERROR *) 1061 (* IS DETECTED *) 1062 VAR 1063 itisafunct, pisformal, pisext, paramisproc, paramisvar, ended, lerr : boolean ; 1064 procnameaddr, parmctp, foundtype, decltype, generic : ctp ; 1065 plevel, procplacew, nbparm, longlist, deplist, curritsw, currparmw, currparb : integer ; 1066 lbase : preg ; 1067 declsize, foundsize, ldisp, lmod, lpad, suplr : integer ; 1068 ltag, lftag, rgtag : tag ; 1069 lattr : attr ; 1070 lretpt : lcstpt ; llretpt : llcstpt ; 1071 prevdecltype : ctp ; 1072 temppt, tempact : ctp ; 1073 nbofdim : integer ; 1074 locdisp : integer ; 1075 prevfoundtype : ctp ; 1076 dvdispw : integer ; 1077 multiplier, lowbound, highbound : integer ; 1078 arrconfblockw : integer ; 1079 firstoflist : boolean ; 1080 wlength, alfalow, alfahigh : integer ; 1081 all_descriptors, pisimported : boolean ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 39 1082 procbox : ctp ; 1083 pr5bloc : regpt ; 1084 formal_length : integer ; 1085 done : boolean ; 1086 nbofparm : integer ; parm_attr : attr ; 1087 loaded_reg : register ; 1088 1089 1090 (* ************************************ LOADLINK < PASSPARAMS ***************** *) 1091 1092 PROCEDURE loadlink (fpreg : preg ; fplev : levrange) ; 1093 1094 (* C.LOAD FPREG WITH THE DYNAMIC LINK SUITABLE. 1095* .THREE CASES 1096* *CURRENT LEVEL= CALLED-LEVEL 1097* CALL OF A SUBPROCEDURE DYN-LINK = PR6 OF CALLER 1098* * OR SEARCHS PREVIOUS CALLER(S) D-LINK 1099* .CAUTION WHEN LEVEL IS N, PROCLEVEL IS N-1 1100* C *) 1101 VAR 1102 linst : istand ; 1103 it : integer ; 1104 BEGIN 1105 linst := prinst [epp, fpreg] ; 1106 IF level = fplev THEN 1107 genstand (pr6, 0, linst, tn) ELSE 1108 BEGIN 1109 genstand (pr6, dlkdepw, linst, tny) ; 1110 FOR it := 1 TO level - fplev - 1 DO 1111 genstand (fpreg, dlkdepw, linst, tny) ; 1112 END ; 1113 END (* LOADLINK *) ; 1114 1115 1116 (* ************************************ FCT COMPATLIST< PASSPARAMS ************ *) 1117 1118 FUNCTION compatlist (declproc, foundproc : ctp) : boolean ; 1119 1120 (* C .DECLPARM POINTS THE PROCEDURE BOX 1121* FOUNDPARM POINTS THE " " 1122* .RETURNS TRUE OR FALSE 1123* C *) 1124 VAR 1125 iscompat, lerr, lerrvarval : boolean ; 1126 declparm, foundparm : ctp ; 1127 decltype, foundtype : ctp ; 1128 1129 FUNCTION both_are_string_param : boolean ; 1130 1131 (* SAYS IF BOTH PARAMETERS ARE DECLARED " : STRING" *) 1132 1133 BEGIN 1134 IF (decltype^.father_schema <> NIL) AND (decltype^.actual_parameter_list <> NIL) 1135 AND (decltype^.father_schema = foundtype^.father_schema) 1136 AND (foundtype^.actual_parameter_list <> NIL) 1137 THEN 1138 both_are_string_param := *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 40 1139 (decltype^.actual_parameter_list^.vkind = arraybound) 1140 AND (foundtype^.actual_parameter_list^.vkind = arraybound) 1141 ELSE both_are_string_param := false 1142 END ; 1143 BEGIN (* COMPATLIST *) 1144 $OPTIONS compile = trace $ 1145 IF stattrace > none THEN 1146 BEGIN 1147 write (mpcogout, '@@@ DEBUT COMPATLIST @@@') ; nextline ; 1148 END ; 1149 $OPTIONS compile = true $ 1150 declparm := declproc@.formals ; foundparm := foundproc@.formals ; 1151 iscompat := true ; lerrvarval := false ; 1152 WHILE (declparm # NIL) AND iscompat DO 1153 BEGIN 1154 IF foundparm = NIL THEN 1155 iscompat := false ELSE 1156 BEGIN 1157 IF declparm@.klass # foundparm@.klass THEN 1158 iscompat := false ELSE 1159 BEGIN 1160 IF declparm@.klass = proc THEN 1161 iscompat := compatlist (declparm, foundparm) ELSE 1162 BEGIN 1163 IF declparm@.varparam # foundparm@.varparam THEN 1164 lerrvarval := true ; 1165 decltype := declparm@.vtype ; lerr := false ; 1166 foundtype := foundparm@.vtype ; 1167 WHILE (decltype # foundtype) AND NOT lerr DO 1168 BEGIN 1169 lerr := true ; 1170 IF decltype # NIL THEN 1171 IF foundtype # NIL THEN 1172 IF both_are_string_param THEN 1173 BEGIN 1174 decltype := foundtype ; (* TO STOP WHILE LOOP *) 1175 lerr := false (* SCHEMA OK *) 1176 END 1177 ELSE 1178 IF decltype@.form = arrays THEN 1179 IF foundtype@.form = arrays THEN 1180 IF decltype@.conformant THEN 1181 IF foundtype@.conformant THEN 1182 IF decltype@.inxtype = foundtype@.inxtype THEN 1183 IF decltype^.pack = foundtype^.pack THEN 1184 BEGIN 1185 lerr := false ; 1186 decltype := decltype@.aeltype ; 1187 foundtype := foundtype@.aeltype ; 1188 END ; (* EQUIVALENT CONFORMANT SCHEMAS *) 1189 END ; (* TYPES # AND NO ERR *) 1190 iscompat := NOT (lerr OR lerrvarval) ; 1191 END (* NOT PROC *) ; 1192 declparm := declparm@.nxtel ; foundparm := foundparm@.nxtel ; 1193 END (* SAME KLASS *) ; 1194 END (* FOUNDPARM#NIL *) ; 1195 END (* WHILE *) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 41 1196 IF (declparm = NIL) AND (foundparm # NIL) THEN iscompat := false ; 1197 1198 (* NOW CHEK IF IT IS TWO PROC OR TWO FUNCTIONS *) 1199 IF iscompat THEN 1200 IF declproc@.proctype # declproc THEN 1201 BEGIN 1202 IF foundproc@.proctype = foundproc THEN 1203 iscompat := false ELSE 1204 iscompat := declproc@.proctype = foundproc@.proctype ; 1205 END ELSE 1206 iscompat := foundproc@.proctype = foundproc ; 1207 compatlist := iscompat ; 1208 $OPTIONS compile = trace $ 1209 IF stattrace > low THEN 1210 BEGIN 1211 write (mpcogout, '@@@ FIN COMPATLIST @@@ WITH RETURNED VALUE ', iscompat : 6) ; 1212 nextline ; 1213 END ; 1214 $OPTIONS compile = true $ 1215 END (* COMPATLIST *) ; 1216 1217 1218 1219 1220 1221 BEGIN (* PASSPARAMS *) 1222 $OPTIONS compile = trace $ 1223 IF stattrace > none THEN 1224 BEGIN 1225 write (mpcogout, '@@@ DEBUT PASSPARAMS @@@ WITH FCTPLACE', fctplace) ; nextline ; 1226 END ; 1227 $OPTIONS compile = true $ 1228 WITH ctptr@ DO 1229 BEGIN 1230 itisafunct := proctype # ctptr ; 1231 parmctp := formals ; (* FIRST DECLARED PARAMETER *) 1232 pisformal := prockind = formal ; 1233 pisext := prockind > formal ; 1234 pisimported := prockind = imported ; 1235 plevel := proclevel ; 1236 procplacew := procaddr DIV bytesinword ; (* PR4 PR6 WORD OFFSET *) 1237 nbparm := nbparproc ; (* NUMBER OF "ITS" IN PARAMETER LIST *) 1238 all_descriptors := pwantdescs ; 1239 procbox := ctptr ; 1240 END (* WITH CTPTR@ *) ; 1241 procnameaddr := ctptr ; 1242 (* PREPARE CURRENT ARGUMENT LIST *) 1243 longlist := bytesindword (* HEADER *) + nbparm * bytesindword ; 1244 IF ctptr^.phasdescriptor OR all_descriptors THEN 1245 longlist := longlist + nbparm * bytesindword ; 1246 deplist := oldnewstor (longlist) ; (* POINTED LATER BY ARGUMENT POINTER *) 1247 curritsw := (deplist + bytesindword) DIV bytesinword ; 1248 IF all_descriptors AND (nbparm <> 0) THEN 1249 BEGIN 1250 newbloc (pr5) ; 1251 pr5bloc := currentbloc ; 1252 usednameaddr := procnameaddr ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 42 1253 genstand (prlink, procplacew, iepp5, tny) ; 1254 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 1255 geneism (imlr, 0, p0t0r0) ; 1256 gendesca (prstatic, procbox^.pdescsaddrplace DIV bytesinword, 0, l9, nbparm * bytesindword, tn) ; 1257 gendesca (pr6, deplist DIV bytesinword + 2 + nbparm * 2, 0, l9, nbparm * bytesindword, tn) ; 1258 END ; 1259 IF no = 9 (* ( *) THEN 1260 BEGIN 1261 prevdecltype := NIL ; prevfoundtype := NIL ; 1262 dvdispw := 0 ; arrconfblockw := 0 ; 1263 REPEAT (* LOOP ON ACTUAL PARAMETER'S LIST *) 1264 IF parmctp = NIL THEN 1265 BEGIN 1266 error (126) ; skip (46) ; GOTO 1 ; (* EXIT PROC *) 1267 END ; 1268 paramisproc := parmctp@.klass = proc ; 1269 IF NOT paramisproc THEN 1270 paramisvar := parmctp@.varparam ; 1271 insymbol ; 1272 IF paramisproc THEN 1273 BEGIN (* PROC OR FUNCT TO BE PASSED *) 1274 IF no # 1 THEN 1275 BEGIN error (2) ; skip (15) ; (* , *) 1276 END ELSE 1277 BEGIN (* ID *) 1278 search ; 1279 IF ctptr = NIL THEN 1280 error (104) ELSE 1281 BEGIN 1282 IF symbolmap THEN nameisref (ctptr, symbolfile, symbolline) ; 1283 WITH ctptr@ DO 1284 IF klass # proc THEN 1285 error (103) ELSE 1286 IF NOT compatlist (parmctp, ctptr) THEN 1287 error (128) ELSE 1288 BEGIN 1289 IF predefproc THEN error (28) ; 1290 IF prockind # formal THEN (* ACTUAL PROCEDURE PASSED *) 1291 BEGIN 1292 currparmw := oldnewstor (procparmsize) DIV bytesinword ; 1293 IF proclevel = level THEN 1294 genstand (pr6, currparmw + 2, ispri6, tn) ELSE 1295 BEGIN 1296 loadlink (pr3, proclevel) ; 1297 genstand (pr6, currparmw + 2, ispri3, tn) ; 1298 END ; 1299 genstand (prlink, procaddr DIV bytesinword, iepp3, tny) ; 1300 genstand (pr6, currparmw, ispri3, tn) ; 1301 IF prockind > formal THEN ldisp := extcallplace 1302 ELSE IF pisimported THEN error (318) ELSE ldisp := intcallplace ; 1303 genstand (nreg, ldisp, ilda, tdl) ; 1304 genstand 1305 (pr6, currparmw + 4, ista, tn) ; (* USED IN CALL SEQ. *) 1306 (* NOW LOAD PR3 *) 1307 (* WITH "ITS" ON CURRPARM *) 1308 usednameaddr := ctptr ; 1309 genstand (pr6, currparmw, iepp3, tn) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 43 1310 genstand (pr6, curritsw, ispri3, tn) ; 1311 END (* NOT FORMAL *) ELSE 1312 BEGIN (* FORMAL *) 1313 IF proclevel = level THEN 1314 lbase := pr6 ELSE 1315 BEGIN 1316 loadbase (proclevel) ; freebloc (currentbloc) ; 1317 lbase := currentpr ; 1318 END ; 1319 usednameaddr := ctptr ; 1320 genstand (lbase, procaddr DIV bytesinword, iepp3, tny) ; 1321 genstand (pr6, curritsw, ispri3, tn) ; 1322 IF pisimported THEN 1323 BEGIN 1324 genstand (pr3, 4, ilda, tn) ; (* CALL OP NUMBER *) 1325 genstand (pr0, parmproccheckplace, itsp3, tn) ; 1326 END ; 1327 END (* FORMAL *) ; 1328 curritsw := curritsw + 2 ; 1329 END (* NO ERRORS IN PASSING A PROCEDURE/FUNCTION AS PARAMETER *) ; 1330 END ; 1331 insymbol ; 1332 END (* ID *) ; 1333 END (* PARAMISPROC *) ELSE 1334 IF paramisvar THEN 1335 BEGIN 1336 variab (true) ; 1337 done := false ; 1338 WITH gattr DO 1339 IF typtr # NIL THEN 1340 IF parmctp^.vtype <> NIL THEN 1341 BEGIN 1342 IF (parmctp^.vtype^.father_schema <> NIL) THEN 1343 IF (parmctp^.vtype^.actual_parameter_list = NIL) THEN (* nothing *) ELSE 1344 IF (parmctp^.vtype^.actual_parameter_list^.vkind = arraybound) THEN 1345 (* FORMAL PARAMETER IS A SCHEMA. PASS ACTUAL BOUNDS IN DESCRIPTOR *) 1346 IF (typtr^.father_schema <> parmctp^.vtype^.father_schema) THEN error (127) 1347 ELSE 1348 BEGIN 1349 decltype := parmctp^.vtype ; foundtype := typtr ; 1350 lerr := false ; 1351 IF prevdecltype = decltype THEN 1352 BEGIN (* list of parameters of same schema *) 1353 firstoflist := false ; 1354 IF prevfoundtype <> foundtype THEN 1355 BEGIN 1356 lerr := true ; error (127) ; 1357 END ; 1358 END ELSE 1359 BEGIN 1360 firstoflist := true ; 1361 prevfoundtype := foundtype ; 1362 prevdecltype := decltype ; 1363 END ; 1364 IF NOT lerr THEN 1365 BEGIN 1366 IF foundtype^.actual_parameter_list^.vkind = arraybound THEN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 44 1367 BEGIN (* PASSED PARAMETER IS ITSELF A VARIABLE SCHEMA. KEEP HIS DESC *) 1368 IF gattr.descbloc = NIL THEN 1369 BEGIN 1370 init_desc_address (variabctptr, gattr) ; 1371 genstand (pr6, curritsw, prinst [spri, gattr.basereg], tn) ; 1372 freebloc (gattr.basebloc) ; 1373 END 1374 ELSE 1375 BEGIN 1376 loadadr (gattr, pr3) ; 1377 genstand (pr6, curritsw, ispri3, tn) ; 1378 END ; 1379 IF firstoflist THEN 1380 BEGIN 1381 temppt := decltype^.actual_parameter_list ; 1382 nbofparm := 0 ; 1383 WHILE temppt <> NIL DO 1384 BEGIN 1385 nbofparm := nbofparm + 1 ; ; temppt := temppt^.nxtel 1386 END ; 1387 wlength := 2 (* MULTICS EXTENDED ARG DESC *) + 1 (* SIZE *) + nbofparm (* ON E WORD PER PARM *) ; 1388 dvdispw := oldnewstor (wlength * bytesinword) DIV bytesinword ; 1389 regenere (gattr.descbloc) ; 1390 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 1391 geneism (imlr, 0, p0t0r0) ; 1392 gendesca (gattr.descreg, 2, 0, l9, (wlength - 2) * bytesinword, tn) ; 1393 gendesca (pr6, dvdispw + 2, 0, l9, (wlength - 2) * bytesinword, tn) ; 1394 END ; 1395 freebloc (gattr.descbloc) ; 1396 getpr ; 1397 genstand (pr6, dvdispw, prinst [epp, currentpr], tn) ; 1398 genstand (pr6, curritsw + nbparm * 2, prinst [spri, currentpr], tn) ; 1399 freebloc (currentbloc) ; 1400 curritsw := curritsw + 2 ; 1401 END (* Actual is Schema *) ELSE 1402 BEGIN 1403 loadadr (gattr, pr3) ; 1404 genstand (pr6, curritsw, ispri3, tn) ; 1405 1406 IF firstoflist THEN 1407 BEGIN 1408 (* Evaluation du nombre de parametres *) 1409 temppt := decltype^.actual_parameter_list ; 1410 nbofparm := 0 ; 1411 WHILE temppt <> NIL DO 1412 BEGIN 1413 nbofparm := nbofparm + 1 ; ; temppt := temppt^.nxtel 1414 END ; 1415 wlength := 2 (* MULTICS EXTENDED ARG DESC *) + 1 (* SIZE *) + nbofparm (* ON E WORD PER PARM *) ; 1416 dvdispw := oldnewstor (wlength * bytesinword) DIV bytesinword ; 1417 temppt := typtr^.actual_parameter_list ; tempact := foundtype ; locdisp := 2 ; 1418 gencstecode (typtr^.size, ilda) ; 1419 genstand (pr6, dvdispw + locdisp, ista, tn) ; 1420 locdisp := locdisp + 1 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 45 1421 WHILE temppt <> NIL DO 1422 BEGIN 1423 sauvereg (ra, false) ; 1424 IF temppt^.klass <> konst THEN 1425 BEGIN 1426 addressvar (temppt, parm_attr, false) ; 1427 transfer (parm_attr, inacc) ; 1428 freeattr (parm_attr) 1429 END 1430 ELSE gencstecode (temppt^.values, ilda) ; 1431 genstand (pr6, dvdispw + locdisp, ista, tn) ; 1432 1433 locdisp := locdisp + 1 ; 1434 temppt := temppt^.nxtel ; 1435 END ; 1436 END (* FIRSTOFLIST *) ; 1437 1438 genstand (pr6, dvdispw, iepp3, tn) ; 1439 genstand (pr6, curritsw + nbparm * 2, ispri3, tn) ; 1440 curritsw := curritsw + 2 ; 1441 END (* Actual not Schema *) ; 1442 END ; 1443 done := true ; 1444 END ; 1445 IF NOT done THEN 1446 IF (gattr.pckd) AND (NOT parmctp^.vtype^.pack) THEN error (127) ELSE 1447 IF typtr = parmctp@.vtype THEN 1448 BEGIN 1449 loadadr (gattr, pr3) ; 1450 IF procnameaddr^.pwantspl1descriptors AND 1451 is_pl1_varying_char (parmctp^.vtype) THEN 1452 genstand (pr3, 1, iepp3, tn) ; 1453 genstand (pr6, curritsw, ispri3, tn) ; curritsw := curritsw + 2 ; 1454 END (* SAME TYPE *) ELSE 1455 IF NOT conformantdim (parmctp^.vtype) THEN 1456 error (127) ELSE 1457 BEGIN (* Not Same Type *) 1458 decltype := parmctp^.vtype ; foundtype := gattr.typtr ; 1459 lerr := false ; 1460 IF NOT legalconfarrsubstitution (foundtype, decltype) THEN 1461 BEGIN 1462 error (127) ; 1463 (* SKIP BOUNDS PARAM *) 1464 WHILE parmctp^.vkind = arraybound DO 1465 BEGIN 1466 parmctp := parmctp ^.nxtel ; 1467 END ; 1468 END (* not Legal Substitution *) ELSE 1469 BEGIN 1470 IF prevdecltype = decltype THEN 1471 BEGIN (* Liste *) 1472 firstoflist := false ; 1473 IF prevfoundtype <> foundtype THEN 1474 BEGIN 1475 lerr := true ; error (127) ; 1476 END ; 1477 END ELSE *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 46 1478 BEGIN 1479 firstoflist := true ; 1480 prevfoundtype := foundtype ; 1481 prevdecltype := decltype ; 1482 END ; 1483 IF NOT lerr THEN 1484 BEGIN 1485 IF conformantdim (foundtype) THEN 1486 BEGIN 1487 (* Load PR3 with previous descriptor on block parameter *) 1488 IF gattr.descbloc = NIL THEN 1489 BEGIN 1490 init_desc_address (variabctptr, gattr) ; 1491 genstand (pr6, curritsw, prinst [spri, gattr.basereg], tn) ; 1492 freebloc (gattr.basebloc) ; 1493 END 1494 ELSE 1495 BEGIN 1496 loadadr (gattr, pr3) ; 1497 genstand (pr6, curritsw, ispri3, tn) ; 1498 END ; 1499 IF firstoflist THEN 1500 BEGIN 1501 temppt := decltype ; 1502 nbofdim := 0 ; 1503 WHILE conformantdim (temppt) DO 1504 BEGIN 1505 nbofdim := nbofdim + 1 ; 1506 temppt := temppt^.aeltype ; 1507 parmctp := parmctp^.nxtel^.nxtel ; 1508 END ; 1509 wlength := nbofdim * dopevectorsize DIV bytesinword ; 1510 dvdispw := oldnewstor ((wlength + 2) * bytesinword) DIV bytesinword ; 1511 IF all_descriptors THEN 1512 BEGIN 1513 getpr ; 1514 genstand (pr6, curritsw + (nbparm * 2), prinst [epp, currentpr], tny ) ; 1515 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 1516 geneism (imlr, 0, p0t0r0) ; 1517 gendesca (currentpr, 0, 0, l9, (wlength + 2) * bytesinword, tn) ; 1518 gendesca (pr6, dvdispw, 0, l9, (wlength + 2) * bytesinword, tn) ; 1519 freebloc (currentbloc) ; 1520 END ; 1521 regenere (gattr.descbloc) ; 1522 geneism (imlr, 0, p0t0r0) ; 1523 gendesca (gattr.descreg, 0, 0, l9, wlength * bytesinword, tn) ; 1524 gendesca (pr6, dvdispw + 1, 0, l9, wlength * bytesinword, tn) ; 1525 END ; 1526 freebloc (gattr.descbloc) ; 1527 1528 getpr ; 1529 genstand (pr6, dvdispw, prinst [epp, currentpr], tn) ; 1530 genstand (pr6, curritsw + nbparm * 2, prinst [spri, currentpr], tn) ; 1531 freebloc (currentbloc) ; 1532 1533 curritsw := curritsw + 2 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 47 1534 1535 END (* Actual Is Conformant *) ELSE 1536 BEGIN 1537 1538 loadadr (gattr, pr3) ; 1539 genstand (pr6, curritsw, ispri3, tn) ; 1540 1541 IF firstoflist THEN 1542 BEGIN 1543 (* Evaluation du nombre de dimensions *) 1544 temppt := decltype ; 1545 nbofdim := 0 ; 1546 WHILE conformantdim (temppt) DO 1547 BEGIN 1548 nbofdim := nbofdim + 1 ; 1549 temppt := temppt^.aeltype ; 1550 END ; 1551 1552 (* Acquisition dope vector *) 1553 dvdispw := oldnewstor (nbofdim * dopevectorsize + 8) DIV bytesinword ; 1554 wlength := nbofdim * dopevectorsize DIV bytesinword ; 1555 IF all_descriptors THEN 1556 BEGIN 1557 getpr ; 1558 genstand (pr6, curritsw + (nbparm * 2), prinst [epp, currentpr], tny ) ; 1559 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 1560 geneism (imlr, 0, p0t0r0) ; 1561 gendesca (currentpr, 0, 0, l9, (wlength + 2) * bytesinword, tn) ; 1562 gendesca (pr6, dvdispw, 0, l9, (wlength + 2) * bytesinword, tn) ; 1563 freebloc (currentbloc) ; 1564 END ; 1565 1566 (* Incrementation et passage des bornes *) 1567 temppt := decltype ; tempact := foundtype ; locdisp := 3 * nbofdim - 2 ; 1568 WHILE conformantdim (temppt) DO 1569 BEGIN 1570 (* PAsse Low Bound et remplit premoer mot du dope vector *) 1571 lowbound := tempact^.lo ; 1572 sauvereg (ra, false) ; gencstecode (lowbound, ilda) ; 1573 genstand (pr6, dvdispw + locdisp, ista, tn) ; 1574 1575 (* Passe high bound et remplit deuxieme mot du dope vector *) 1576 highbound := tempact^.hi ; 1577 gencstecode (highbound, ilda) ; 1578 genstand (pr6, dvdispw + locdisp + 1, ista, tn) ; 1579 1580 (* Passe MULTIPLIER *) 1581 IF tempact^.pack THEN 1582 multiplier := packedsize (tempact^.aeltype) * bitsinbyte ELSE 1583 multiplier := sup (tempact^.aeltype^.size, bytesinword) DIV bytesi nword ; 1584 gencstecode (multiplier, ilda) ; 1585 genstand (pr6, dvdispw + locdisp + 2, ista, tn) ; 1586 1587 (* Prepare dimension suivante *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 48 1588 locdisp := locdisp - 3 ; 1589 temppt := temppt^.aeltype ; tempact := tempact^.aeltype ; 1590 parmctp := parmctp^.nxtel^.nxtel ; 1591 1592 END ; 1593 END (* FIRSTOFLIST *) ; 1594 1595 genstand (pr6, dvdispw, iepp3, tn) ; (* Dope vector address *) 1596 genstand (pr6, curritsw + nbparm * 2, ispri3, tn) ; 1597 curritsw := curritsw + 2 ; 1598 END (* Actual not conformant *) ; 1599 END (* not LERR *) ; 1600 END (* Legal Substitution *) ; 1601 END (* Not Same Type *) ; 1602 END (* TYPTR#NIL,WITH GATTR *) ; 1603 END (* PARAMISVAR *) ELSE 1604 BEGIN (* VALUE PARAMETER *) 1605 expression ; 1606 WITH gattr DO 1607 IF typtr <> NIL THEN 1608 BEGIN 1609 compatbin (parmctp^.vtype, typtr, generic) ; 1610 IF generic = NIL THEN 1611 BEGIN 1612 IF parmctp^.vtype = NIL THEN (* nothing *) 1613 ELSE IF parmctp^.vtype^.father_schema = string_ptr 1614 THEN IF (parmctp^.vtype^.actual_parameter_list = NIL) THEN (* nothing *) 1615 ELSE 1616 BEGIN 1617 IF parmctp^.vtype^.actual_parameter_list^.klass = konst THEN 1618 formal_length := parmctp^.vtype^.actual_parameter_list^.values 1619 ELSE formal_length := 0 ; (* ERROR SOMEWHERE BEFORE *) 1620 currparmw := oldnewstor (formal_length + 4) DIV bytesinword ; 1621 IF typtr^.father_schema = string_ptr THEN 1622 BEGIN 1623 loadadr (gattr, pr3) ; 1624 genstand (pr3, 0, ildq, tn) ; 1625 genstand (nreg, 4, iadq, tdl) ; 1626 gencstecode (formal_length + 4, ilda) ; 1627 mfari1 := a1r1i0 ; mfari2 := a1r1i0 ; 1628 geneism (imlr, 0, p0t0r0) ; 1629 gendesca (pr3, 0, 0, l9, 0, tql) ; 1630 gendesca (pr6, currparmw, 0, l9, 0, tal) ; 1631 IF procnameaddr^.pwantspl1descriptors THEN 1632 genstand (pr6, currparmw + 1, iepp3, tn) 1633 ELSE 1634 genstand (pr6, currparmw, iepp3, tn) ; 1635 genstand (pr6, curritsw, ispri3, tn) ; 1636 END ELSE 1637 IF typtr = charptr THEN 1638 BEGIN 1639 IF kind = lval THEN loaded_reg := ldreg 1640 ELSE 1641 IF raisused THEN 1642 BEGIN 1643 loaded_reg := rq ; sauvereg (rq, false) ; 1644 transfer (gattr, inq) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 49 1645 END ELSE 1646 BEGIN 1647 loaded_reg := ra ; 1648 transfer (gattr, inacc) ; 1649 END ; 1650 freeattr (gattr) ; 1651 genstand (nreg, 27, opaq [shiftl, loaded_reg], tn) ; 1652 genstand (pr6, currparmw + 1, opaq [stor, loaded_reg], tn) ; 1653 genstand (nreg, 1, opaq [load, loaded_reg], tdl) ; 1654 genstand (pr6, currparmw, opaq [stor, loaded_reg], tn) ; 1655 IF procnameaddr^.pwantspl1descriptors THEN 1656 genstand (pr6, currparmw + 1, iepp3, tn) 1657 ELSE 1658 genstand (pr6, currparmw, iepp3, tn) ; 1659 genstand (pr6, curritsw, ispri3, tn) ; 1660 END 1661 ELSE IF isstring (gattr) THEN 1662 BEGIN 1663 IF NOT conformantdim (typtr) THEN 1664 BEGIN 1665 loadadr (gattr, pr3) ; 1666 sauvereg (ra, false) ; 1667 IF kind = chain THEN 1668 BEGIN 1669 IF alfactp^.alfalong > formal_length THEN error (127) ; 1670 gencstecode (alfactp^.alfalong, ilda) ; 1671 END 1672 ELSE BEGIN 1673 IF typtr^.size > formal_length THEN error (127) ; 1674 gencstecode (typtr^.size, ilda) ; 1675 END ; 1676 mfari1 := a1r1i0 ; mfari2 := a1r1i0 ; 1677 genstand (pr6, currparmw, ista, tn) ; 1678 geneism (imlr, 0, p0t0r0) ; 1679 gendesca (pr3, 0, 0, l9, 0, tal) ; 1680 gendesca (pr6, currparmw + 1, 0, l9, 0, tal) ; 1681 IF procnameaddr^.pwantspl1descriptors THEN 1682 genstand (pr6, currparmw + 1, iepp3, tn) 1683 ELSE 1684 genstand (pr6, currparmw, iepp3, tn) ; 1685 genstand (pr6, curritsw, ispri3, tn) ; 1686 END 1687 ELSE (* conformant string *) 1688 BEGIN 1689 init_desc_address (gattr.nameaddr, gattr) ; 1690 sauvereg (rq, false) ; 1691 genstand (gattr.descreg, 1, ildq, tn) ; 1692 genstand (gattr.descreg, 0, isbq, tn) ; 1693 genstand (nreg, 1, iadq, tdl) ; (* rq contains actual length *) 1694 freebloc (gattr.descbloc) ; 1695 genstand (pr6, currparmw, istq, tn) ; 1696 mfari1 := a1r1i0 ; mfari2 := a1r1i0 ; 1697 gencstecode (formal_length, ilda) ; 1698 genstand (pr6, currparmw, iepp3, tn) ; 1699 IF gattr.basebloc <> NIL THEN regenere (gattr.basebloc) ; 1700 geneism (imlr, 0, p0t0r0) ; 1701 gendesca (gattr.basereg, gattr.dplmt DIV bytesinword, gattr.dplmt MOD bytesi *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 50 nword, l9, 0, tql) ; 1702 gendesca (pr3, 1, 0, l9, 0, tal) ; 1703 freebloc (gattr.basebloc) ; 1704 IF procnameaddr^.pwantspl1descriptors THEN 1705 genstand (pr3, 1, iepp3, tn) ; 1706 genstand (pr6, curritsw, ispri3, tn) ; 1707 END 1708 END ELSE error (127) ; 1709 curritsw := curritsw + 2 ; 1710 END ELSE 1711 BEGIN 1712 IF conformantdim (parmctp^.vtype) THEN 1713 BEGIN (* CONFORMARRAY VALUE SUBSTITUTION *) 1714 decltype := parmctp^.vtype ; foundtype := gattr.typtr ; 1715 lerr := false ; 1716 IF NOT legalconfarrsubstitution (foundtype, decltype) THEN 1717 BEGIN 1718 error (127) ; 1719 END (* not LEGAL SUBSTITUTION *) ELSE 1720 BEGIN 1721 IF prevdecltype = decltype THEN 1722 BEGIN (* LISTE *) 1723 firstoflist := false ; 1724 IF prevfoundtype <> foundtype THEN 1725 BEGIN 1726 lerr := true ; error (127) ; 1727 END ; 1728 END ELSE 1729 BEGIN 1730 firstoflist := true ; 1731 prevfoundtype := foundtype ; 1732 prevdecltype := decltype ; 1733 END ; 1734 IF NOT lerr THEN 1735 BEGIN 1736 (* RECOPIE TABLEAU ACTUEL *) 1737 IF gattr.typtr = alfaptr THEN 1738 BEGIN 1739 foundsize := alfactp^.alfalong ; 1740 alfalow := 1 ; alfahigh := foundsize ; 1741 END ELSE 1742 BEGIN 1743 foundsize := gattr.typtr^.size ; 1744 alfalow := 0 ; alfahigh := 0 ; 1745 END ; 1746 1747 currparb := oldnewstor (recadre (foundsize, bytesinword)) ; 1748 currparmw := currparb DIV bytesinword ; 1749 WITH lattr DO 1750 BEGIN 1751 typtr := parmctp^.vtype ; 1752 initattrvarbl (lattr) ; 1753 dplmt := currparb ; pckd := parmctp^.vtype^.pack ; 1754 END ; 1755 lbase := nreg ; 1756 lpad := ord (' ') ; 1757 IF gattr.kind = varbl THEN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 51 1758 IF varissimple (gattr) THEN 1759 BEGIN 1760 lbase := basereg ; ldisp := dplmt DIV bytesinword ; 1761 lmod := dplmt MOD bytesinword ; 1762 END ; 1763 IF lbase = nreg THEN 1764 BEGIN 1765 loadadr (gattr, pr3) ; 1766 lbase := pr3 ; ldisp := 0 ; lmod := 0 ; 1767 END ; 1768 1769 IF foundsize < twoto12 THEN 1770 BEGIN 1771 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; lftag := tn ; rgtag := tn ; 1772 END ELSE 1773 BEGIN 1774 mfari1 := a1r1i0 ; mfari2 := a1r1i0 ; lftag := tx6 ; 1775 rgtag := tx7 ; 1776 IF foundsize > twoto17m1 THEN 1777 error (307) ELSE 1778 BEGIN 1779 genstand (nreg, foundsize, ieax6, tn) ; 1780 genstand (nreg, foundsize, ieax7, tn) ; 1781 END ; 1782 foundsize := 0 ; 1783 END ; 1784 geneism (imlr, lpad, p0t0r0) ; 1785 IF kind = varbl THEN usednameaddr := nameaddr ; 1786 gendesca (lbase, ldisp, lmod, l9, foundsize, rgtag) ; 1787 gendesca (pr6, currparmw, 0, l9, foundsize, lftag) ; 1788 genstand (pr6, currparmw, iepp3, tn) ; 1789 genstand (pr6, curritsw, ispri3, tn) ; 1790 1791 IF firstoflist THEN 1792 BEGIN 1793 (* EVALUATION DU NOMBRE DE DIMENSIONS *) 1794 temppt := decltype ; 1795 nbofdim := 0 ; 1796 WHILE conformantdim (temppt) DO 1797 BEGIN 1798 nbofdim := nbofdim + 1 ; 1799 temppt := temppt^.aeltype ; 1800 END ; 1801 (* ACQUISITION DOPE VECTOR *) 1802 dvdispw := oldnewstor (nbofdim * dopevectorsize + 8) DIV 1803 bytesinword ; 1804 wlength := nbofdim * dopevectorsize DIV bytesinword ; 1805 IF all_descriptors THEN 1806 BEGIN 1807 getpr ; 1808 genstand (pr6, curritsw + (nbparm * 2), prinst [epp, currentpr], tny) ; 1809 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 1810 geneism (imlr, 0, p0t0r0) ; 1811 gendesca (currentpr, 0, 0, l9, (wlength + 2) * bytesinword, tn) ; 1812 gendesca (pr6, dvdispw, 0, l9, (wlength + 2) * bytesinword, tn) ; 1813 freebloc (currentbloc) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 52 1814 END ; 1815 1816 (* INCREMENTATION ET PASSAGE DES BORNES *) 1817 temppt := decltype ; tempact := foundtype ; locdisp := 3 * nbofdim - 2 ; 1818 WHILE conformantdim (temppt) DO 1819 BEGIN 1820 (* PASSE LOW BOUND ET REMPLIT PREMOER MOT DU DOPE VECTOR *) 1821 IF alfalow <> 0 THEN 1822 lowbound := alfalow ELSE 1823 lowbound := tempact^.lo ; 1824 sauvereg (ra, false) ; gencstecode (lowbound, ilda) ; 1825 genstand (pr6, dvdispw + locdisp, ista, tn) ; 1826 1827 (* PASSE HIGH BOUND ET REMPLIT DEUXIEME MOT DU DOPE VECTOR *) 1828 IF alfahigh <> 0 THEN 1829 highbound := alfahigh ELSE 1830 highbound := tempact^.hi ; 1831 gencstecode (highbound, ilda) ; 1832 genstand (pr6, dvdispw + locdisp + 1, ista, tn) ; 1833 1834 (* PASSE MULTIPLIER *) 1835 IF tempact^.pack THEN 1836 multiplier := packedsize (tempact^.aeltype) * bitsinbyte ELSE 1837 multiplier := sup (tempact^.aeltype^.size, bytesinword) DIV bytesinw ord ; 1838 gencstecode (multiplier, ilda) ; 1839 genstand (pr6, dvdispw + locdisp + 2, ista, tn) ; 1840 1841 (* PREPARE DIMENSION SUIVANTE *) 1842 locdisp := locdisp - 3 ; 1843 temppt := temppt^.aeltype ; tempact := tempact^.aeltype ; 1844 parmctp := parmctp^.nxtel^.nxtel ; 1845 1846 END ; 1847 END (* FIRSTOFLIST *) ; 1848 1849 genstand (pr6, dvdispw, iepp3, tn) ; 1850 genstand (pr6, curritsw + nbparm * 2, ispri3, tn) ; 1851 curritsw := curritsw + 2 ; 1852 END (* not LERR *) ; 1853 END (* LEGAL SUBSTITUTION *) ; 1854 END (* CONFORMANT ARRAY VALUE SUBSTITUTION *) ELSE 1855 error (127) ; 1856 END ; 1857 END (* GENERIC WAS nil *) ELSE 1858 1859 BEGIN declsize := parmctp@.vtype@.size ; 1860 CASE parmctp@.vtype@.form OF 1861 reel : IF typtr # realptr THEN convreal (gattr) ; 1862 numeric, scalar : 1863 IF typtr = realptr THEN error (127) ELSE 1864 IF kind = sval THEN 1865 checkminmax (val, parmctp@.vtype, 303) ELSE 1866 IF asscheck THEN 1867 BEGIN 1868 IF kind # lval THEN transfer (gattr, inacc) ; 1869 checkbnds (parerrcode, ldreg, parmctp@.vtype) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 53 1870 END ; 1871 pointer, records, power : foundsize := typtr@.size ; 1872 arrays : BEGIN 1873 lerr := false ; 1874 IF typtr = alfaptr THEN 1875 BEGIN foundsize := alfactp@.alfalong ; 1876 IF envstandard <> stdextend THEN 1877 BEGIN 1878 IF foundsize # declsize THEN lerr := true ; 1879 END ELSE 1880 IF foundsize > declsize THEN lerr := true ; 1881 END (* ALFAPTR *) ELSE 1882 BEGIN 1883 foundsize := typtr@.size ; 1884 IF foundsize # declsize THEN lerr := true ; 1885 END ; 1886 IF lerr THEN error (127) ; 1887 END (* ARRAYS *) ; 1888 END (* CASE *) ; 1889 currparb := oldnewstor (recadre (declsize, bytesinword)) ; 1890 currparmw := currparb DIV bytesinword ; 1891 WITH lattr DO 1892 BEGIN 1893 typtr := parmctp@.vtype ; 1894 initattrvarbl (lattr) ; 1895 dplmt := currparb ; 1896 pckd := parmctp@.vtype@.pack ; 1897 END ; 1898 IF typtr@.form < power THEN 1899 BEGIN 1900 choicerarq ; 1901 transfer (lattr, out) ; 1902 END (* < POWER *) ELSE 1903 BEGIN 1904 IF kind = lval THEN (* ONLY POWER *) 1905 transfer (lattr, out) ELSE 1906 BEGIN 1907 IF typtr@.form = power THEN 1908 BEGIN lpad := 0 ; 1909 IF kind = sval THEN 1910 BEGIN 1911 IF longv = bytesindword THEN 1912 BEGIN enterlcst (valpw, lretpt) ; 1913 enterundlab (lretpt@.lplace) ; 1914 foundsize := bytesindword ; 1915 END ELSE 1916 BEGIN enterllcst (valpw, llretpt) ; 1917 enterundlab (llretpt@.llplace) ; 1918 END ; 1919 genstand (nreg, 0, iepp3, tic) ; 1920 lbase := pr3 ; 1921 ldisp := 0 ; 1922 lmod := 0 ; 1923 END (* SVAL *) ELSE 1924 lbase := nreg ; 1925 END (* POWER *) ELSE 1926 BEGIN lpad := ord (' ') ; lbase := nreg ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 54 1927 END ; 1928 IF kind = varbl THEN 1929 IF varissimple (gattr) THEN 1930 BEGIN 1931 lbase := basereg ; 1932 ldisp := dplmt DIV bytesinword ; 1933 lmod := dplmt MOD bytesinword ; 1934 END ; 1935 IF lbase = nreg THEN 1936 BEGIN 1937 loadadr (gattr, pr3) ; 1938 lbase := pr3 ; 1939 ldisp := 0 ; 1940 lmod := 0 ; 1941 END ; 1942 suplr := sup (foundsize, declsize) ; 1943 IF suplr < twoto12 THEN 1944 BEGIN 1945 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; lftag := tn ; rgtag := tn ; 1946 END ELSE 1947 BEGIN 1948 mfari1 := a1r1i0 ; mfari2 := a1r1i0 ; lftag := tx6 ; rgtag := tx7 ; 1949 IF suplr > twoto17m1 THEN 1950 error (307) ELSE 1951 BEGIN 1952 genstand (nreg, declsize, ieax6, tn) ; 1953 genstand (nreg, foundsize, ieax7, tn) ; 1954 END ; 1955 declsize := 0 ; foundsize := 0 ; 1956 END ; 1957 geneism (imlr, lpad, p0t0r0) ; 1958 IF kind = varbl THEN usednameaddr := nameaddr ; 1959 gendesca (lbase, ldisp, lmod, l9, foundsize, rgtag) ; 1960 gendesca (pr6, currparmw, 0, l9, declsize, lftag) ; 1961 BEGIN 1962 END ; 1963 END (* >=POWER *) ; 1964 END ; 1965 IF procnameaddr^.pwantspl1descriptors AND 1966 is_pl1_varying_char (parmctp^.vtype) THEN 1967 genstand (pr6, currparmw + 1, iepp3, tn) 1968 ELSE 1969 genstand (pr6, currparmw, iepp3, tn) ; 1970 genstand (pr6, curritsw, ispri3, tn) ; 1971 curritsw := curritsw + 2 ; 1972 END (* GENERIC NOT NIL *) ; 1973 END (* TYPTR # NIL,WITH GATTR *) ; 1974 END (* VALUE PARAMETER *) ; 1975 parmctp := parmctp@.nxtel ; 1976 2 : IF parmctp <> NIL THEN (* FOR SECURITY, IN CASE OF ERROR, SKIP CONF. ARRAY DIMS *) 1977 IF parmctp^.vkind = arraybound THEN 1978 BEGIN 1979 parmctp := parmctp^.nxtel ; 1980 GOTO 2 1981 END ; 1982 IF no <> 15 THEN (* NOT , *) 1983 BEGIN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 55 1984 IF no <> 10 (* ) *) THEN 1985 IF parmctp <> NIL THEN 1986 BEGIN error (15) ; skip (15) ; 1987 END ; 1988 END ; 1989 UNTIL no # 15 ; (* , *) 1990 IF no = 10 THEN 1991 insymbol ELSE 1992 BEGIN 1993 error (4) ; skip (46) ; 1994 END ; 1995 END (* NO=9 *) ; 1996 IF parmctp # NIL THEN 1997 error (126) ; 1998 IF itisafunct THEN 1999 BEGIN 2000 genstand (pr6, fctplace DIV bytesinword, iepp3, tn) ; 2001 genstand (pr6, curritsw, ispri3, tn) ; 2002 END ; 2003 IF pisformal THEN 2004 BEGIN 2005 ltag := tx7 ; ldisp := 0 ; 2006 IF plevel = level THEN 2007 lbase := pr6 ELSE 2008 BEGIN 2009 loadbase (plevel) ; lbase := currentpr ; freebloc (currentbloc) ; 2010 END ; 2011 usednameaddr := procnameaddr ; 2012 genstand (lbase, procplacew, iepp5, tny) ; (* ITS ON PROC INFO *) 2013 genstand (pr5, 2, iepp1, tny) ; (* PR1 = D-LINK *) 2014 (* NOW LOAD X7 WITH *) 2015 (* CODE INTERNAL-EXTERNAL CALL *) 2016 genstand (pr5, 4, ilxl7, tn) ; (* OPERATOR NUMBER *) 2017 genstand (pr5, 0, iepp5, tny) ; (* PROCEDURE ENTRY POINT *) 2018 END (* FORMAL *) ELSE 2019 BEGIN 2020 ltag := tn ; 2021 IF pisext THEN 2022 ldisp := extcallplace ELSE 2023 ldisp := intcallplace ; 2024 loadlink (pr1, plevel) ; 2025 IF all_descriptors AND (nbparm <> 0) THEN 2026 BEGIN 2027 regenere (pr5bloc) ; 2028 freebloc (pr5bloc) END ELSE 2029 BEGIN 2030 usednameaddr := procnameaddr ; 2031 genstand (prlink, procplacew, iepp5, tny) ; 2032 END ; 2033 END ; 2034 (* LOAD X1 WITH *) 2035 (* PARAMETER LIST DISPLACEMENT *) 2036 genstand (pr6, deplist DIV bytesinword, ieax1, tn) ; 2037 (* 2* NBPARPROC IN A 0..17 *) 2038 genstand (nreg, 2048 * nbparm, ifld, tdl) ; 2039 IF all_descriptors THEN 2040 genstand (nreg, nbparm * 2, ildq, tdu) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 56 2041 genstand (pr0, ldisp, itsp3, ltag) ; 2042 IF pisext OR ((envstandard <> stdpure) AND pisformal) THEN 2043 genstand (pr6, pr4depw, iepp4, tny) ; 2044 1 : 2045 $OPTIONS compile = trace $ 2046 IF stattrace > low THEN 2047 BEGIN 2048 write (mpcogout, '@@@ FIN PASSPARAMS @@@ WITH NO', no : 4) ; nextline ; 2049 END ; 2050 $OPTIONS compile = true $ 2051 END (* PASSPARAMS *) ; 2052 2053 BEGIN 2054 END. *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM modvariable *** ON 11/12/86 *** PAGE 57 NO COMPILATION ERROR STORAGE REQUIREMENTS FOR OBJECT SEGMENT Object Text Defs Links Static Symbol Start 0 0 25631 26736 26746 27236 Length 30360 25631 1105 300 0 1106 SOURCE FILES USED IN THIS COMPILATION NUMBER DATE MODIFIED PATHNAME 0 11/12/86 1607.7 >spec>install>1212>MODVARIABLE.pascal 1 11/12/86 1528.2 >spec>install>1212>CONSTTYPE.incl.pascal NAMES DECLARED AND REFERENCED a1r0i0 const scalar, ord=4 ; DEF: 1-799 ; REF: 1254 1254 1390 1390 1515 1515 1559 1559 1771 1771 1809 1809 1945 1945 a1r1i0 const scalar, ord=6 ; DEF: 1-799 ; REF: 1627 1627 1676 1676 1696 1696 1774 1774 1948 1948 access field disp:70, size:4 ; scalar ; DEF: 1-871 ; REF: 295* 434* 735* 924 925* 939 941 946 952* 969* 981 982* actual_parameter_list field disp:160, size:10 ; pointer ; DEF: 1-530 ; REF: 1134 1136 1139 1140 1343 1344 1366 1381 1409 1417 1614 1617 1618 add const scalar, ord=3 ; DEF: 1-919 ; REF: 474 802 833 addressvar proc level 0, imported ; DEF: 178 ; REF: 25 400 1426 aeltype field disp:200, size:10 ; pointer ; DEF: 1-546 ; REF: 516 528 532 537 540 859 1186 1187 1506 1549 1582 1583 1589 1589 1799 1836 1837 1843 1843 alfaconst const scalar, ord=2 ; DEF: 1-416 ; REF: 1-569 alfactp field disp:20, size:10 ; pointer ; DEF: 1-897 ; REF: 1669 1670 1739 1875 alfahigh var local to passparams, loc:266, size:4 ; integer ; DEF: 1080 ; REF: 1740* 1744* 1828 1829 alfaid type packed array of (char) ; DEF: 1-399 ; REF: 1-404 1-436 1-446 1-447 1-496 1-508 1-965 alfaleng const numeric ; DEF: 1-35 ; REF: 1-398 alfalist type record ; DEF: 1-402 ; REF: 1-401 alfalistptr type pointer ; DEF: 1-401 ; REF: 1-403 alfalong field disp:160, size:4 ; integer ; DEF: 1-570 ; REF: 1669 1670 1739 1875 alfalow var local to passparams, loc:265, size:4 ; integer ; DEF: 1080 ; REF: 1740* 1744* 1821 1822 alfapt type pointer ; DEF: 1-419 ; REF: 1-421 1-569 alfaptr var global imported, size:10 ; pointer ; DEF: 135 ; REF: 84 1737 1874 alfavalue type record ; DEF: 1-420 ; REF: 1-419 aliastype const scalar, ord=10 ; DEF: 1-413 ; REF: 1-563 all_descriptors var local to passparams, loc:267, size:4 ; boolean ; DEF: 1081 ; REF: 1238* 1244 1248 1511 1555 1805 2025 2039 arraybound const scalar, ord=2 ; DEF: 1-406 ; REF: 1139 1140 1344 1366 1464 1977 arrayboundsctp var global imported, size:10 ; pointer ; DEF: 161 ; REF: 106 602 603 604 arrays const scalar, ord=5 ; DEF: 1-412 ; REF: 1-546 510 1178 1179 1872 arraytype var local to variable, loc:214, size:10 ; pointer ; DEF: 345 ; REF: 543* 553 554 556 577 arrconfblockw var local to passparams, loc:262, size:4 ; integer ; DEF: 1078 ; REF: 1262* asscheck var global imported, size:4 ; boolean ; DEF: 162 ; REF: 107 424 473 478 1866 attr type record ; DEF: 1-849 ; REF: 166 178 189 197 225 226 227 228 229 230 238 253 341 1069 1086 attraccess type scalar ; DEF: 1-813 ; REF: 1-871 attrkind type scalar ; DEF: 1-812 ; REF: 1-852 bad_string_index const numeric ; DEF: 1-268 ; REF: 484 basebloc field disp:30, size:10 ; pointer ; DEF: 1-858 ; REF: 295* 434* 492* 693 731* 964* 965* 1372* 1492* 1699 1699 1703* basereg field disp:20, size:4 ; scalar subrange ; DEF: 1-856 ; REF: 285 295* 428 434* 489 491 492* 494 694 695 731* 961 967 968* 1371 1491 1701 1760 1931 binartype type packed array of (integer) ; DEF: 1-810 ; REF: 1-811 1-811 bitsinbyte const numeric ; DEF: 1-63 ; REF: 1-78 1-79 1582 1836 bitsinword const numeric ; DEF: 1-78 ; REF: 1-80 1-92 1-111 1-115 1-117 block const scalar, ord=0 ; DEF: 1-622 ; REF: 1-635 blocknode type record ; DEF: 1-940 ; REF: 1-639 blocknodeptr type pointer ; DEF: 1-639 ; REF: 1-646 1-941 1-949 blocktype type scalar ; DEF: 1-938 ; REF: 1-944 bornesupset const numeric ; DEF: 1-112 ; REF: 1-815 both_are_string_param funct of compatlist ; boolean ; DEF: 1129 ; REF: 1138* 1141* 1172 bytesindword const numeric ; DEF: 1-66 ; REF: 918 1243 1243 1245 1247 1256 1257 1911 1914 bytesinhword const numeric ; DEF: 1-65 ; REF: 1-79 bytesinword const numeric ; DEF: 1-64 ; REF: 1-65 1-66 1-71 1-72 1-78 1-110 1-128 1-276 285 428 536 647 722 801 819 820 832 840 842 843 845 917 967 975 1236 1247 1256 1257 1292 1299 1320 1388 1388 1392 1393 1416 1416 1509 1510 1510 1517 1518 1523 1524 1553 1554 1561 1562 1583 1583 1620 1701 1701 1747 1748 1760 1761 1803 1804 1811 1812 1837 1837 1889 1890 1932 1933 2000 2036 bytwidth field disp:134, size:4 ; integer ; DEF: 1-609 ; REF: 917 918 cadrage field disp:120, size:4 ; integer ; DEF: 1-524 ; REF: 536 cb var global imported, size:4 ; integer ; DEF: 153 ; REF: 100 483 485 638 639 chain const scalar, ord=3 ; DEF: 1-812 ; REF: 1-894 1667 char_const_token const scalar, ord=3 ; DEF: 1-491 ; REF: 1-499 charptr var global imported, size:10 ; pointer ; DEF: 136 ; REF: 85 500 1637 check_dynamic_string_length proc level 0, imported ; DEF: 238 ; REF: 77 425 checkbeforetextreferenceplace const numeric ; DEF: 1-158 ; REF: 970 checkbnds proc level 0, imported ; DEF: 179 ; REF: 26 1869 checkismade var local to variable, loc:240, size:4 ; boolean ; DEF: 356 ; REF: 579* 605* 609* 625 634 checkminmax proc level 0, imported ; DEF: 203 ; REF: 49 577 604 1865 choicerarq proc level 0, imported ; DEF: 180 ; REF: 27 1900 cmp const scalar, ord=5 ; DEF: 1-919 ; REF: 481 627 compatbin proc level 0, imported ; DEF: 204 ; REF: 50 440 556 1609 compatlist funct of passparams ; boolean ; DEF: 1118 ; REF: 1161 1207* 1286 condaddr type pointer ; DEF: 1-963 ; REF: 1-966 condbox type record ; DEF: 1-964 ; REF: 1-963 condition const scalar, ord=8 ; DEF: 1-413 ; REF: 1-562 confdimw const numeric ; DEF: 1-273 ; REF: 1-276 conformant field disp:220, size:4 ; boolean ; DEF: 1-548 ; REF: 539 1180 1181 conformantdim funct level 0, imported ; boolean ; DEF: 205 ; REF: 51 518 528 540 1455 1485 1503 1546 1568 1663 1712 1796 1818 consttype type scalar ; DEF: 1-416 ; REF: 1-566 contexttable type record ; DEF: 1-507 ; REF: 1-433 convreal proc level 0, imported ; DEF: 225 ; REF: 67 1861 ctp type pointer ; DEF: 1-433 ; REF: 1-450 1-469 1-487 1-489 1-509 1-510 1-518 1-519 1-522 1-529 1-530 1-538 1-540 1-542 1-544 1-546 1-551 1-554 1-555 1-560 1-561 1-563 1-565 1-571 1-583 1-587 1-596 1-604 1-606 1-608 1-611 1-613 1-613 1-614 1-628 1-633 1-851 1-879 1-897 1-943 1-946 1-957 1-973 135 136 137 140 144 145 149 157 161 173 178 179 202 203 204 204 205 206 207 208 214 219 224 253 262 343 345 355 364 1064 1071 1072 1075 1082 1118 1126 1127 ctptr var global imported, size:10 ; pointer ; DEF: 137 ; REF: 86 399 400 405 905 910 911 912 1228 1230 1239 1241 1244 1279 1282 1283 1286 1308 1319 currentbloc var global imported, size:10 ; pointer ; DEF: 163 ; REF: 108 288 295 434 492 731 965 1251 1316* 1399* 1519* 1531* 1563* 1813* 2009* currentpr var global imported, size:4 ; scalar subrange ; DEF: 164 ; REF: 109 285 286 286 287 295 431 434 491 492 731 763 765 1317 1397 1398 1514 1517 1529 1530 1558 1561 1808 1811 2009 curritsw var local to passparams, loc:171, size:4 ; integer ; DEF: 1065 ; REF: 1247* 1310 1321 1328* 1328 1371 1377 1398 1400* 1400 1404 1439 1440* 1440 1453 1453* 1453 1491 1497 1514 1530 1533* 1533 1539 1558 1596 1597* 1597 1635 1659 1685 1706 1709* 1709 1789 1808 1850 1851* 1851 1970 1971* 1971 2001 currparb var local to passparams, loc:173, size:4 ; integer ; DEF: 1065 ; REF: 1747* 1748 1753 1889* 1890 1895 currparmw var local to passparams, loc:172, size:4 ; integer ; DEF: 1065 ; REF: 1292* 1294 1297 1300 1305 1309 1620* 1630 1632 1634 1652 1654 1656 1658 1677 1680 1682 1684 1695 1698 1748* 1787 1788 1890* 1960 1967 1969 currwithlist var global imported, size:320 ; record ; DEF: 165 ; REF: 110 1008* 1010* cwith const scalar, ord=1 ; DEF: 1-622 ; REF: 1-636 declparm var local to compatlist, loc:152, size:10 ; pointer ; DEF: 1126 ; REF: 1150* 1152 1157 1160 1161 1163 1165 1192* 1192 1196 declproc var parameter of compatlist, size:10 ; pointer ; DEF: 1118 ; REF: 1150 1200 1200 1204 declsize var local to passparams, loc:175, size:4 ; integer ; DEF: 1067 ; REF: 1859* 1878 1880 1884 1889 1942 1952 1955* 1960 decltype var local to passparams, loc:160, size:10 ; pointer ; DEF: 1064 ; REF: 1349* 1351 1362 1381 1409 1458* 1460 1470 1481 1501 1544 1567 1714* 1716 1721 1732 1794 1817 decltype var local to compatlist, loc:156, size:10 ; pointer ; DEF: 1127 ; REF: 1134 1134 1135 1139 1165* 1167 1170 1174* 1178 1180 1182 1183 1186* 1186 deplist var local to passparams, loc:170, size:4 ; integer ; DEF: 1065 ; REF: 1246* 1247 1257 2036 descbloc field disp:130, size:10 ; pointer ; DEF: 1-881 ; REF: 297* 620 683 689* 1368 1389 1395* 1488 1521 1526* 1694* descreg field disp:120, size:4 ; scalar subrange ; DEF: 1-880 ; REF: 269 297* 525 621 623 684 686 690* 1392 1523 1691 1692 destination type scalar ; DEF: 1-814 ; REF: 197 346 destused var local to variable, loc:220, size:4 ; scalar ; DEF: 346 ; REF: 579* 597* 598* 607 617 657 669 776 direct const scalar, ord=0 ; DEF: 1-813 ; REF: 924 941 981 dlkdepw const numeric ; DEF: 1-285 ; REF: 1109 1111 done var local to passparams, loc:277, size:4 ; boolean ; DEF: 1085 ; REF: 1337* 1443* 1445 done_with_index var local to variable, loc:213, size:4 ; boolean ; DEF: 344 ; REF: 418* 423* 503 dopevectorsize const numeric ; DEF: 1-274 ; REF: 1509 1553 1554 1802 1804 dplmt field disp:40, size:4 ; integer ; DEF: 1-861 ; REF: 428 435* 495* 495 584 612* 652* 653 709* 732* 914* 914 952 952* 969* 972* 1701 1701 1753* 1760 1761 1895* 1932 1933 dummyclass const scalar, ord=7 ; DEF: 1-415 ; REF: 1-615 dvdispw var local to passparams, loc:256, size:4 ; integer ; DEF: 1076 ; REF: 1262* 1388* 1393 1397 1416* 1419 1431 1438 1510* 1518 1524 1529 1553* 1562 1573 1578 1585 1595 1802* 1812 1825 1832 1839 1849 dwordconst const scalar, ord=1 ; DEF: 1-416 ; REF: 1-568 eltype field disp:220, size:10 ; pointer ; DEF: 1-542 ; REF: 954 ensaccessible type set of (scalar) ; DEF: 1-461 ; REF: 1-527 enterlcst proc level 0, imported ; DEF: 181 ; REF: 28 1912 enterllcst proc level 0, imported ; DEF: 182 ; REF: 29 1916 enterref proc of variable ; DEF: 372 ; REF: 881 993 enterundlab proc level 0, imported ; DEF: 183 ; REF: 30 1913 1917 envstandard var global imported, size:4 ; scalar ; DEF: 138 ; REF: 87 1876 2042 epp const scalar, ord=0 ; DEF: 1-917 ; REF: 285 286 491 1105 1397 1514 1529 1558 1808 error proc level 0, imported ; DEF: 212 ; REF: 56 443 446 513 558 870 894 901 907 985 1266 1275 1280 1285 1287 1289 1302 1346 1356 1446 1456 1462 1475 1669 1673 1708 1718 1726 1777 1855 1863 1886 1950 1986 1993 1997 exitelem type record ; DEF: 1-479 ; REF: 1-478 exitptr type pointer ; DEF: 1-478 ; REF: 1-480 1-586 expression proc level 0, imported ; DEF: 234 ; REF: 75 439 550 1605 extcallplace const numeric ; DEF: 1-194 ; REF: 1301 2022 externalitem type record ; DEF: 1-445 ; REF: 1-444 externalitemtype type scalar ; DEF: 1-441 ; REF: 1-451 father_schema field disp:150, size:10 ; pointer ; DEF: 1-529 ; REF: 282 421 1134 1135 1135 1342 1346 1346 1613 1621 fattr var var parameter of init_desc_address, size:150 ; record ; DEF: 253 ; REF: 269 278 285 290* 292* 293 295* 295* 295* 296* 297* 297* fctplace var parameter of passparams, size:4 ; integer ; DEF: 1025 ; REF: 1225 2000 fctptr var parameter of init_desc_address, size:10 ; pointer ; DEF: 253 ; REF: 285 fdescsize const numeric ; DEF: 1-304 ; REF: 972 feltype field disp:200, size:10 ; pointer ; DEF: 1-555 ; REF: 975 977 979 field const scalar, ord=5 ; DEF: 1-415 ; REF: 1-608 filelocation type scalar ; DEF: 1-437 ; REF: 1-598 files const scalar, ord=9 ; DEF: 1-413 ; REF: 1-555 956 firstoflist var local to passparams, loc:263, size:4 ; boolean ; DEF: 1079 ; REF: 1353* 1360* 1379 1406 1472* 1479* 1499 1541 1723* 1730* 1791 fldaddr field disp:130, size:4 ; integer ; DEF: 1-609 ; REF: 914 fldtype field disp:120, size:10 ; pointer ; DEF: 1-608 ; REF: 917 920 922 form field disp:174, size:4 ; scalar ; DEF: 1-533 ; REF: 510 537 899 917 920 936 956 977 1178 1179 1860 1898 1907 formal const scalar, ord=1 ; DEF: 1-406 ; REF: 1232 1233 1290 1301 formal_length var local to passparams, loc:276, size:4 ; integer ; DEF: 1084 ; REF: 1618* 1619* 1620 1626 1669 1673 1697 formals field disp:130, size:10 ; pointer ; DEF: 1-571 ; REF: 1150 1150 1231 foundparm var local to compatlist, loc:154, size:10 ; pointer ; DEF: 1126 ; REF: 1150* 1154 1157 1161 1163 1166 1192* 1192 1196 foundproc var parameter of compatlist, size:10 ; pointer ; DEF: 1118 ; REF: 1150 1202 1202 1204 1206 1206 foundsize var local to passparams, loc:176, size:4 ; integer ; DEF: 1067 ; REF: 1739* 1740 1743* 1747 1769 1776 1779 1780 1782* 1786 1787 1871* 1875* 1878 1880 1883* 1884 1914* 1942 1953 1955* 1959 foundtype var local to passparams, loc:156, size:10 ; pointer ; DEF: 1064 ; REF: 1349* 1354 1361 1366 1417 1458* 1460 1473 1480 1485 1567 1714* 1716 1724 1731 1817 foundtype var local to compatlist, loc:160, size:10 ; pointer ; DEF: 1127 ; REF: 1135 1136 1140 1166* 1167 1171 1174 1179 1181 1182 1183 1187* 1187 fplev var parameter of loadlink, size:4 ; numeric 0..20 ; DEF: 1092 ; REF: 1106 1110 fpreg var parameter of loadlink, size:4 ; scalar subrange ; DEF: 1092 ; REF: 1105 1111 freeattr proc level 0, imported ; DEF: 227 ; REF: 68 477 1428 1650 freebloc proc level 0, imported ; DEF: 184 ; REF: 31 689 696 766 804 815 822 824 834 849 852 964 1316 1372 1395 1399 1492 1519 1526 1531 1563 1694 1703 1813 2009 2028 fstfld field disp:210, size:10 ; pointer ; DEF: 1-554 ; REF: 904 ftp type pointer ; DEF: 1-484 ; REF: 1-488 1-493 1-521 fvarset var parameter of variable, size:4 ; boolean ; DEF: 315 ; REF: 400 1004 gattr var global imported, size:150 ; record ; DEF: 166 ; REF: 111 440 450 451 456* 460* 469 472 477* 552 554 556 565 568* 576 577 578* 587 589 600 604 607* 610 612 617* 638 645 646 648* 653 657* 672* 678 696* 720* 743* 766* 779* 791 805 816 822* 825 835 850 852* 1013* 1018* 1338 1339 1346 1349 1368 1370* 1371 1372* 1376* 1389 1392 1395* 1403* 1417 1418 1446 1447 1449* 1458 1488 1490* 1491 1492* 1496* 1521 1523 1526* 1538* 1606 1607 1609 1621 1623* 1637 1639 1639 1644* 1648* 1650* 1661* 1663 1665* 1667 1669 1670 1673 1674 1689 1689* 1691 1692 1694* 1699 1699 1701 1701 1701 1703* 1714 1737 1739 1743 1757 1758* 1760 1760 1761 1765* 1785 1785 1861 1861* 1863 1864 1865 1868 1868* 1869 1871 1874 1875 1883 1898 1904 1907 1909 1911 1912* 1916* 1928 1929* 1931 1932 1933 1937* 1958 1958 gencstecode proc level 0, imported ; DEF: 185 ; REF: 32 469 628 631 710 745 1418 1430 1572 1577 1584 1626 1670 1674 1697 1824 1831 1838 gendesca proc level 0, imported ; DEF: 242 ; REF: 79 1256 1257 1392 1393 1517 1518 1523 1524 1561 1562 1629 1630 1679 1680 1701 1702 1786 1787 1811 1812 1959 1960 geneism proc level 0, imported ; DEF: 246 ; REF: 82 1255 1391 1516 1522 1560 1628 1678 1700 1784 1810 1957 generic var local to passparams, loc:162, size:10 ; pointer ; DEF: 1064 ; REF: 1609* 1610 generic var local to variable, loc:216, size:10 ; pointer ; DEF: 345 ; REF: 440* 441 441 556* 557 557 genexceptcode proc level 0, imported ; DEF: 186 ; REF: 33 484 638 genstand proc level 0, imported ; DEF: 244 ; REF: 81 285 286 474 480 481 482 491 494 621 622 623 630 637 684 686 694 695 715 722 739 754 758 760 763 765 801 820 832 840 842 845 967 970 1107 1109 1111 1253 1294 1297 1299 1300 1303 1304 1309 1310 1320 1321 1324 1325 1371 1377 1397 1398 1404 1419 1431 1438 1439 1452 1453 1491 1497 1514 1529 1530 1539 1558 1573 1578 1585 1595 1596 1624 1625 1632 1634 1635 1651 1652 1653 1654 1656 1658 1659 1677 1682 1684 1685 1691 1692 1693 1695 1698 1705 1706 1779 1780 1788 1789 1808 1825 1832 1839 1849 1850 1919 1952 1953 1967 1969 1970 2000 2001 2012 2013 2016 2017 2031 2036 2038 2040 2041 2043 getpr proc level 0, imported ; DEF: 187 ; REF: 34 284 491 1396 1513 1528 1557 1807 halfword type integer ; DEF: 1-809 ; REF: 1-810 hi field disp:230, size:4 ; integer ; DEF: 1-549 ; REF: 603 631 1576 1830 high const scalar, ord=3 ; DEF: 1-624 ; REF: 272 303 562 665 772 1017 highbound var local to passparams, loc:261, size:4 ; integer ; DEF: 1077 ; REF: 1576* 1577 1829* 1830* 1831 ia9bd const scalar, ord=503 ; DEF: 1-751 ; REF: 494 765 iabd const scalar, ord=504 ; DEF: 1-751 ; REF: 694 iada const scalar, ord=84 ; DEF: 1-689 ; REF: 842 iadq const scalar, ord=98 ; DEF: 1-691 ; REF: 1625 1693 iasa const scalar, ord=108 ; DEF: 1-692 ; REF: 840 iawd const scalar, ord=505 ; DEF: 1-752 ; REF: 695 763 icmpc const scalar, ord=513 ; DEF: 1-754 ; REF: 1-782 icmpq const scalar, ord=164 ; DEF: 1-699 ; REF: 621 623 idkinds type scalar ; DEF: 1-406 ; REF: 1-452 1-572 1-597 idklass type scalar ; DEF: 1-415 ; REF: 1-515 idprocdef type scalar ; DEF: 1-417 ; REF: 1-590 idv3d const scalar, ord=539 ; DEF: 1-757 ; REF: 1-782 ieaa const scalar, ord=0 ; DEF: 1-679 ; REF: 1-781 ieax1 const scalar, ord=3 ; DEF: 1-679 ; REF: 2036 ieax6 const scalar, ord=8 ; DEF: 1-680 ; REF: 1779 1952 ieax7 const scalar, ord=9 ; DEF: 1-680 ; REF: 1780 1953 ieism type scalar subrange ; DEF: 1-782 ; REF: 246 iepp1 const scalar, ord=320 ; DEF: 1-723 ; REF: 2013 iepp3 const scalar, ord=322 ; DEF: 1-723 ; REF: 1299 1309 1320 1438 1452 1595 1632 1634 1656 1658 1682 1684 1698 1705 1788 1849 1919 1967 1969 2000 iepp4 const scalar, ord=323 ; DEF: 1-723 ; REF: 2043 iepp5 const scalar, ord=324 ; DEF: 1-723 ; REF: 967 1253 2012 2017 2031 ifld const scalar, ord=177 ; DEF: 1-702 ; REF: 2038 ilda const scalar, ord=21 ; DEF: 1-681 ; REF: 1303 1324 1418 1430 1572 1577 1584 1626 1670 1674 1697 1824 1831 1838 ildq const scalar, ord=25 ; DEF: 1-682 ; REF: 1624 1691 2040 ills const scalar, ord=77 ; DEF: 1-688 ; REF: 758 ilrl const scalar, ord=78 ; DEF: 1-688 ; REF: 754 ilxl7 const scalar, ord=43 ; DEF: 1-684 ; REF: 2016 imlr const scalar, ord=516 ; DEF: 1-754 ; REF: 1255 1391 1516 1522 1560 1628 1678 1700 1784 1810 1957 imported const scalar, ord=4 ; DEF: 1-406 ; REF: 1234 impy const scalar, ord=155 ; DEF: 1-698 ; REF: 686 722 745 inacc const scalar, ord=0 ; DEF: 1-814 ; REF: 460 597 1427 1648 1868 inbounds funct level 0, imported ; boolean ; DEF: 188 ; REF: 35 708 incbloc type scalar ; DEF: 1-462 ; REF: 1-585 indfich var global imported, size:4 ; integer ; DEF: 154 ; REF: 101 480 482 622 629 636 init_desc_address proc level 0, exportable ; DEF: 253 ; REF: 123 533 1370 1490 1689 initattrvarbl proc level 0, imported ; DEF: 226 ; REF: 69 292 1752 1894 inpr const scalar, ord=4 ; DEF: 1-814 ; REF: 950 inq const scalar, ord=1 ; DEF: 1-814 ; REF: 456 578 579 598 720 743 1644 inser proc level 0, imported ; DEF: 245 ; REF: 80 483 485 638 639 instword type scalar ; DEF: 1-679 ; REF: 1-781 1-782 1-783 1-784 insymbol proc level 0, imported ; DEF: 213 ; REF: 57 406 439 447 550 866 869 890 929 987 1271 1331 1991 int_const_token const scalar, ord=2 ; DEF: 1-491 ; REF: 1-497 intcallplace const numeric ; DEF: 1-193 ; REF: 1302 2023 interactive var global imported, size:4 ; boolean ; DEF: 139 ; REF: 88 958 intptr var global imported, size:10 ; pointer ; DEF: 140 ; REF: 89 440 inxbloc field disp:50, size:10 ; pointer ; DEF: 1-867 ; REF: 733* 791* 797 801 804* 805* 811 814 815* 816* 824* 825* 830 832 834* 835* 849* 850* inxcheck var global imported, size:4 ; boolean ; DEF: 167 ; REF: 112 615 inxerrcode const numeric ; DEF: 1-244 ; REF: 638 inxmem field disp:60, size:4 ; integer ; DEF: 1-868 ; REF: 649 653* 734* 795 797* 809 814* 819* 820 840 842 843* 845 943 947 inxmemrw field disp:64, size:4 ; boolean ; DEF: 1-870 ; REF: 654* 734* 839 844* inxreg field disp:44, size:4 ; scalar ; DEF: 1-862 ; REF: 733* 788 790* 793 813* 821 824* 836* 849* 943 947 inxtype field disp:210, size:10 ; pointer ; DEF: 1-546 ; REF: 556 577 1182 1182 iqrl const scalar, ord=82 ; DEF: 1-689 ; REF: 760 irpd const scalar, ord=540 ; DEF: 1-759 ; REF: 1-783 irpt const scalar, ord=542 ; DEF: 1-759 ; REF: 1-783 is_pl1_varying_char funct level 0, imported ; boolean ; DEF: 224 ; REF: 70 1451 1966 isbq const scalar, ord=133 ; DEF: 1-695 ; REF: 684 1692 iscompat var local to compatlist, loc:146, size:4 ; boolean ; DEF: 1125 ; REF: 1151* 1152 1155* 1158* 1161* 1190* 1196* 1199 1203* 1204* 1206* 1207 1211 isconform var local to variable, loc:204, size:4 ; boolean ; DEF: 342 ; REF: 539* 566 574 618 642 680 ispri3 const scalar, ord=348 ; DEF: 1-726 ; REF: 1297 1300 1310 1321 1377 1404 1439 1453 1497 1539 1596 1635 1659 1685 1706 1789 1850 1970 2001 ispri6 const scalar, ord=351 ; DEF: 1-727 ; REF: 1294 isstring funct level 0, imported ; boolean ; DEF: 228 ; REF: 71 1661 ista const scalar, ord=45 ; DEF: 1-684 ; REF: 820 845 1305 1419 1431 1573 1578 1585 1677 1825 1832 1839 istand type scalar subrange ; DEF: 1-781 ; REF: 169 170 185 244 353 1102 istba const scalar, ord=543 ; DEF: 1-761 ; REF: 1-784 istcq const scalar, ord=546 ; DEF: 1-761 ; REF: 1-784 istq const scalar, ord=53 ; DEF: 1-685 ; REF: 1695 iswd const scalar, ord=510 ; DEF: 1-752 ; REF: 1-781 it var local to loadlink, loc:145, size:4 ; integer ; DEF: 1103 ; REF: 1110* it var local to variable, loc:244, size:4 ; integer ; DEF: 359 ; REF: 884* 885 996* 997 1002* 1003 1009* 1010 1010 itisafunct var local to passparams, loc:142, size:4 ; boolean ; DEF: 1063 ; REF: 1230* 1998 itmi const scalar, ord=375 ; DEF: 1-731 ; REF: 622 630 itmoz const scalar, ord=376 ; DEF: 1-731 ; REF: 480 482 637 itsdplmt field disp:74, size:4 ; integer ; DEF: 1-877 ; REF: 735* 952* 967 969* itsp3 const scalar, ord=389 ; DEF: 1-733 ; REF: 970 1325 2041 iunresolv type record ; DEF: 1-828 ; REF: 1-824 kind field disp:10, size:4 ; scalar ; DEF: 1-852 ; REF: 451 576 587 600 610 645 678 1639 1667 1757 1785 1864 1868 1904 1909 1928 1958 klass field disp:110, size:4 ; scalar ; DEF: 1-515 ; REF: 1157 1157 1160 1268 1284 1424 1617 konst const scalar, ord=2 ; DEF: 1-415 ; REF: 1-564 1424 1617 l9 const scalar, ord=2 ; DEF: 1-785 ; REF: 1256 1257 1392 1393 1517 1518 1523 1524 1561 1562 1629 1630 1679 1680 1701 1702 1786 1787 1811 1812 1959 1960 lab_pdl_element type record ; DEF: 1-664 ; REF: 1-663 lab_pdl_ptr type pointer ; DEF: 1-663 ; REF: 1-665 label_pdl_element type record ; DEF: 1-655 ; REF: 1-656 labelblock type record ; DEF: 1-641 ; REF: 1-640 labelblockptr type pointer ; DEF: 1-640 ; REF: 1-644 1-645 1-653 1-657 1-661 1-666 1-948 lattr var local to passparams, loc:206, size:150 ; record ; DEF: 1069 ; REF: 1749 1751* 1752* 1753* 1753* 1891 1893* 1894* 1895* 1896* 1901* 1905* lattr var local to variable, loc:150, size:150 ; record ; DEF: 341 ; REF: 400* 419 420 425* 426* 428 428 430* 432 434* 434* 434* 435* 487 489 491 492* 492* 494 495* 495 496* 497* 500* 506 508 510 512* 515 518 525 527 533* 537* 543 570* 584 606 612* 620 621 623 649 652* 653* 654* 674* 683 684 686 689* 690* 693 694 695 709* 728* 729 731* 731* 732* 733* 733* 734* 734* 735* 735* 781* 786 788 790* 791* 793 795 797* 797 801 804* 805* 809 811 813* 814* 814 815* 816* 819* 820 821 824* 824* 825* 830 832 834* 835* 836* 839 840 842 843* 844* 845 849* 849* 850* 859* 894* 896 898 899 901* 904 907* 910* 914* 914 915* 916 919* 921* 922* 923 924 925* 934 935 936 939 941 943 943 946 947 947 947 950* 952* 952 952* 952* 954* 954 956 959 961 964* 965* 967 967 968* 969* 969* 969* 972* 973* 974 975 976* 977 978* 979* 979 980 981 982* 985* 1013 lbase var local to passparams, loc:174, size:4 ; scalar subrange ; DEF: 1066 ; REF: 1314* 1317* 1320 1755* 1760* 1763 1766* 1786 1920* 1924* 1926* 1931* 1935 1938* 1959 2007* 2009* 2012 lbloc var local to init_desc_address, loc:152, size:10 ; pointer ; DEF: 264 ; REF: 288* 297 lcomp var local to variable, loc:231, size:4 ; scalar subrange ; DEF: 353 ; REF: 627* 628 631 lcond const scalar, ord=1 ; DEF: 1-812 ; REF: 1-908 590 lcstpt type pointer ; DEF: 1-826 ; REF: 1-841 181 1070 ldisp var local to passparams, loc:177, size:4 ; integer ; DEF: 1067 ; REF: 1301* 1302* 1303 1760* 1766* 1786 1921* 1932* 1939* 1959 2005* 2022* 2023* 2041 ldisp var local to init_desc_address, loc:144, size:4 ; integer ; DEF: 261 ; REF: 279* 282* 286 ldreg field disp:14, size:4 ; scalar ; DEF: 1-889 ; REF: 472 589 638 1640 1869 ldregbloc field disp:20, size:10 ; pointer ; DEF: 1-890 ; REF: 696* 766* 791 805 816 822* 825 835 850 852* legalconfarrsubstitution funct level 0, imported ; boolean ; DEF: 207 ; REF: 53 1460 1716 lerr var local to passparams, loc:150, size:4 ; boolean ; DEF: 1063 ; REF: 1350* 1356* 1364 1459* 1475* 1483 1715* 1726* 1734 1873* 1878* 1880* 1884* 1886 lerr var local to compatlist, loc:147, size:4 ; boolean ; DEF: 1125 ; REF: 1165* 1167 1169* 1175* 1185* 1190 lerr var local to variable, loc:202, size:4 ; boolean ; DEF: 342 ; REF: 438* 443* 446* 448 lerrvarval var local to compatlist, loc:150, size:4 ; boolean ; DEF: 1125 ; REF: 1151* 1164* 1190 level var global imported, size:4 ; numeric 0..20 ; DEF: 141 ; REF: 90 1106 1110 1293 1313 2006 levrange type numeric 0..20 ; DEF: 1-418 ; REF: 1-526 1-558 1-573 1-581 1-601 1-636 1-855 141 1092 levtrace type scalar ; DEF: 1-624 ; REF: 172 lftag var local to passparams, loc:204, size:4 ; scalar ; DEF: 1068 ; REF: 1771* 1774* 1787 1945* 1948* 1960 lgcar type scalar ; DEF: 1-785 ; REF: 242 lgparm const numeric ; DEF: 1-23 ; REF: 1-24 linst var local to loadlink, loc:144, size:4 ; scalar subrange ; DEF: 1102 ; REF: 1105* 1107 1109 1111 liunresolv type record ; DEF: 1-838 ; REF: 1-825 llcstpt type pointer ; DEF: 1-827 ; REF: 1-846 182 1070 lliunresolv type record ; DEF: 1-843 ; REF: 1-824 llplace field disp:40, size:4 ; integer ; DEF: 1-845 ; REF: 1917* llretpt var local to passparams, loc:242, size:10 ; pointer ; DEF: 1070 ; REF: 1916* 1917 lmax var local to variable, loc:227, size:4 ; integer ; DEF: 351 ; REF: 636* 639 lmin var local to variable, loc:226, size:4 ; integer ; DEF: 351 ; REF: 622* 629* 638 lmod var local to passparams, loc:200, size:4 ; integer ; DEF: 1067 ; REF: 1761* 1766* 1786 1922* 1933* 1940* 1959 lo field disp:224, size:4 ; integer ; DEF: 1-549 ; REF: 584 602 628 705 710 1571 1823 load const scalar, ord=0 ; DEF: 1-919 ; REF: 469 1653 loadadr proc level 0, imported ; DEF: 189 ; REF: 36 290 430 728 1376 1403 1449 1496 1538 1623 1665 1765 1937 loadbase proc level 0, imported ; DEF: 190 ; REF: 37 1316 2009 loaded_reg var local to passparams, loc:334, size:4 ; scalar ; DEF: 1087 ; REF: 1639* 1643* 1647* 1651 1652 1653 1654 loaded_reg var local to variable, loc:146, size:4 ; scalar ; DEF: 340 ; REF: 455* 459* 466* 468* 469 472* 474 481 484 494 loadlink proc of passparams ; DEF: 1092 ; REF: 1296 2024 loc1 var local to variable, loc:142, size:4 ; integer ; DEF: 338 ; REF: 482* 485 loc2 var local to variable, loc:143, size:4 ; integer ; DEF: 338 ; REF: 480* 483 locdisp var local to passparams, loc:253, size:4 ; integer ; DEF: 1074 ; REF: 1417* 1419 1420* 1420 1431 1433* 1433 1567* 1573 1578 1585 1588* 1588 1817* 1825 1832 1839 1842* 1842 locdopevectordisp var local to variable, loc:241, size:4 ; integer ; DEF: 357 ; REF: 401* 530* 530 621 623 684 686 699* 699 locpt var local to init_desc_address, loc:146, size:10 ; pointer ; DEF: 262 ; REF: 278* 280 281 282 296 locvariabctptr var local to variable, loc:210, size:10 ; pointer ; DEF: 343 ; REF: 399* 533 longalfbox const numeric ; DEF: 1-22 ; REF: 1-422 longlist var local to passparams, loc:167, size:4 ; integer ; DEF: 1065 ; REF: 1243* 1245* 1245 1246 longv field disp:70, size:4 ; integer ; DEF: 1-905 ; REF: 1911 low const scalar, ord=1 ; DEF: 1-624 ; REF: 1015 1209 2046 lowbound var local to passparams, loc:260, size:4 ; integer ; DEF: 1077 ; REF: 1571* 1572 1822* 1823* 1824 lp var local to variable, loc:234, size:10 ; pointer ; DEF: 355 ; REF: 527* 528 531* 531 lpad var local to passparams, loc:201, size:4 ; integer ; DEF: 1067 ; REF: 1756* 1784 1908* 1926* 1957 lplace field disp:40, size:4 ; integer ; DEF: 1-840 ; REF: 1913* lreg var local to init_desc_address, loc:150, size:4 ; scalar subrange ; DEF: 263 ; REF: 287* 297 lretpt var local to passparams, loc:240, size:10 ; pointer ; DEF: 1070 ; REF: 1912* 1913 ltag var local to passparams, loc:203, size:4 ; scalar ; DEF: 1068 ; REF: 2005* 2020* 2041 lval const scalar, ord=2 ; DEF: 1-812 ; REF: 1-887 471 588 678 1639 1868 1904 maxdigitsreal const numeric ; DEF: 1-122 ; REF: 1-397 maxerrnum const numeric ; DEF: 1-94 ; REF: 1-95 maxexternname const numeric ; DEF: 1-32 ; REF: 1-400 maxfich const numeric ; DEF: 1-36 ; REF: 1-810 maxfield const numeric ; DEF: 1-39 ; REF: 1-627 1-628 362 376 maxident const numeric ; DEF: 1-26 ; REF: 1-399 maxlevel const numeric ; DEF: 1-18 ; REF: 1-418 maxno const numeric ; DEF: 1-13 ; REF: 1-434 1-621 maxref const numeric ; DEF: 1-38 ; REF: 1-429 maxsliceline const numeric ; DEF: 1-101 ; REF: 1-102 maxwseg const numeric ; DEF: 1-73 ; REF: 1-973 mfari1 var global imported, size:4 ; scalar ; DEF: 155 ; REF: 102 1254* 1390* 1515* 1559* 1627* 1676* 1696* 1771* 1774* 1809* 1945* 1948* mfari2 var global imported, size:4 ; scalar ; DEF: 156 ; REF: 103 1254* 1390* 1515* 1559* 1627* 1676* 1696* 1771* 1774* 1809* 1945* 1948* minno const numeric ; DEF: 1-12 ; REF: 1-434 1-621 modif var global imported, size:60 ; array of (scalar) ; DEF: 168 ; REF: 113 494 765 monormod const scalar, ord=7 ; DEF: 1-412 ; REF: 1-557 motypes type scalar ; DEF: 1-459 ; REF: 1-557 mpcogout var global imported ; text ; DEF: 142 ; REF: 91 274 305 393 564 565 567 569 571 667 668 671 673 675 774 775 778 780 782 1019 1147 1211 1225 2048 mreg type scalar subrange ; DEF: 1-778 ; REF: 243 multiplier var local to passparams, loc:257, size:4 ; integer ; DEF: 1077 ; REF: 1582* 1583* 1584 1836* 1837* 1838 name_token const scalar, ord=1 ; DEF: 1-491 ; REF: 1-496 nameaddr field disp:110, size:10 ; pointer ; DEF: 1-879 ; REF: 278 296* 496* 910* 1689 1785 1958 nameisref proc level 0, imported ; DEF: 214 ; REF: 58 522 523 886 998 1004 1005 1282 nbofdim var local to passparams, loc:252, size:4 ; integer ; DEF: 1073 ; REF: 1502* 1505* 1505 1509 1545* 1548* 1548 1553 1554 1567 1795* 1798* 1798 1802 1804 1817 nbofparm var local to passparams, loc:300, size:4 ; integer ; DEF: 1086 ; REF: 1382* 1385* 1385 1387 1410* 1413* 1413 1415 nbparm var local to passparams, loc:166, size:4 ; integer ; DEF: 1065 ; REF: 1237* 1243 1245 1248 1256 1257 1257 1398 1439 1514 1530 1558 1596 1808 1850 2025 2038 2040 nbparproc field disp:160, size:4 ; integer ; DEF: 1-574 ; REF: 1237 nbr field disp:0, size:4 ; numeric 0..25 ; DEF: 1-627 ; REF: 1008* nbr field disp:0, size:4 ; integer ; DEF: 361 ; REF: 376 378* 378 379 408* 884 887* 996 999* 1002 1008 1009 newattr var local to variable, loc:222, size:4 ; boolean ; DEF: 349 ; REF: 396* 412* 1017 newbloc proc level 0, imported ; DEF: 191 ; REF: 38 1250 nextdimisconform var local to variable, loc:212, size:4 ; boolean ; DEF: 344 ; REF: 540* 687 nextline proc level 0, imported ; DEF: 215 ; REF: 59 274 305 394 564 566 567 569 571 667 669 671 673 675 774 776 778 780 782 1019 1147 1212 1225 2048 nmax field disp:210, size:4 ; integer ; DEF: 1-535 ; REF: 603* nmin field disp:204, size:4 ; integer ; DEF: 1-535 ; REF: 602* no var global imported, size:4 ; integer ; DEF: 143 ; REF: 92 409 414 421 445 862 864 866 877 892 1019 1259 1274 1982 1984 1989 1990 2048 node type record ; DEF: 1-466 ; REF: 1-464 nodelistelem type record ; DEF: 1-473 ; REF: 1-471 nodelistptr type pointer ; DEF: 1-471 ; REF: 1-474 nodeptr type pointer ; DEF: 1-464 ; REF: 1-475 1-584 none const scalar, ord=0 ; DEF: 1-624 ; REF: 391 1145 1223 nreg const scalar, ord=0 ; DEF: 1-774 ; REF: 1-777 269 290 430 474 480 482 525 622 630 637 690 697 715 722 728 739 754 758 760 767 785 1303 1625 1651 1653 1693 1755 1763 1779 1780 1919 1924 1926 1935 1952 1953 2038 2040 numeric const scalar, ord=1 ; DEF: 1-412 ; REF: 1-535 1862 nxreg const scalar, ord=10 ; DEF: 1-775 ; REF: 168 733 788 943 947 nxtel field disp:40, size:10 ; pointer ; DEF: 1-509 ; REF: 1192 1192 1386 1414 1434 1466 1507 1507 1590 1590 1844 1844 1975 1979 objaccessibles type scalar ; DEF: 1-460 ; REF: 1-461 oldfile var local to variable, loc:233, size:4 ; integer ; DEF: 354 ; REF: 405* 522 523 891* oldline var local to variable, loc:232, size:4 ; integer ; DEF: 354 ; REF: 405* 522 523 891* oldnewstor funct level 0, imported ; integer ; DEF: 192 ; REF: 39 819 843 1246 1292 1388 1416 1510 1553 1620 1747 1802 1889 oldptr var local to variable, loc:236, size:10 ; pointer ; DEF: 355 ; REF: 375 381 385* 405* 891* 911* opaq var global imported, size:160 ; array of (array of (scalar subrange)) ; DEF: 169 ; REF: 114 469 474 481 627 710 715 739 802 833 1651 1652 1653 1654 opt2 field disp:234, size:4 ; integer ; DEF: 1-549 ; REF: 583 out const scalar, ord=5 ; DEF: 1-814 ; REF: 1901 1905 p0t0r0 const scalar, ord=0 ; DEF: 1-791 ; REF: 1255 1391 1516 1522 1560 1628 1678 1700 1784 1810 1957 pack field disp:124, size:4 ; boolean ; DEF: 1-525 ; REF: 538 694 916 974 1183 1183 1446 1581 1753 1835 1896 packedsize funct level 0, imported ; integer ; DEF: 208 ; REF: 54 975 1582 1836 pagesinsegment const numeric ; DEF: 1-69 ; REF: 1-70 paramisproc var local to passparams, loc:145, size:4 ; boolean ; DEF: 1063 ; REF: 1268* 1269 1272 paramisvar var local to passparams, loc:146, size:4 ; boolean ; DEF: 1063 ; REF: 1270* 1334 parerrcode const numeric ; DEF: 1-252 ; REF: 1869 parm_attr var local to passparams, loc:302, size:150 ; record ; DEF: 1086 ; REF: 1426* 1427* 1428* parmctp var local to passparams, loc:154, size:10 ; pointer ; DEF: 1064 ; REF: 1231* 1264 1268 1270 1286 1340 1342 1343 1344 1346 1349 1446 1447 1451 1455 1458 1464 1466* 1466 1507* 1507 1590* 1590 1609 1612 1613 1614 1617 1618 1712 1714 1751 1753 1844* 1844 1859 1860 1865 1869 1893 1896 1966 1975* 1975 1976 1977 1979* 1979 1985 1996 parmproccheckplace const numeric ; DEF: 1-223 ; REF: 1325 pckd field disp:100, size:4 ; boolean ; DEF: 1-878 ; REF: 497* 537* 565 606 915* 919* 921* 923 947 973* 976* 978* 980 1446 1753* 1896* pdescsaddrplace field disp:350, size:4 ; integer ; DEF: 1-592 ; REF: 1256 phasdescriptor field disp:210, size:4 ; boolean ; DEF: 1-576 ; REF: 1244 pisext var local to passparams, loc:144, size:4 ; boolean ; DEF: 1063 ; REF: 1233* 2021 2042 pisformal var local to passparams, loc:143, size:4 ; boolean ; DEF: 1063 ; REF: 1232* 2003 2042 pisimported var local to passparams, loc:270, size:4 ; boolean ; DEF: 1081 ; REF: 1234* 1302 1322 plevel var local to passparams, loc:164, size:4 ; integer ; DEF: 1065 ; REF: 1235* 2006 2009 2024 pointable const scalar, ord=2 ; DEF: 1-813 ; REF: 939 952 pointee const scalar, ord=1 ; DEF: 1-813 ; REF: 295 434 735 925 946 969 982 pointer const scalar, ord=3 ; DEF: 1-412 ; REF: 1-541 537 920 936 977 1871 pointzero var local to variable, loc:224, size:4 ; integer ; DEF: 351 ; REF: 584* 612 652 708 709 power const scalar, ord=4 ; DEF: 1-412 ; REF: 1-543 917 1871 1898 1907 pr0 const scalar, ord=6 ; DEF: 1-774 ; REF: 970 1325 2041 pr1 const scalar, ord=1 ; DEF: 1-774 ; REF: 170 2024 pr3 const scalar, ord=5 ; DEF: 1-774 ; REF: 1296 1324 1376 1403 1449 1452 1496 1538 1623 1624 1629 1665 1679 1702 1705 1765 1766 1920 1937 1938 pr4depw const numeric ; DEF: 1-282 ; REF: 2043 pr5 const scalar, ord=3 ; DEF: 1-774 ; REF: 961 963 968 1250 2013 2016 2017 pr5bloc var local to passparams, loc:274, size:10 ; pointer ; DEF: 1083 ; REF: 1251* 2027 2028* pr6 const scalar, ord=9 ; DEF: 1-774 ; REF: 1-777 170 489 801 820 832 840 842 845 1107 1109 1257 1294 1297 1300 1305 1309 1310 1314 1321 1371 1377 1393 1397 1398 1404 1419 1431 1438 1439 1453 1491 1497 1514 1518 1524 1529 1530 1539 1558 1562 1573 1578 1585 1595 1596 1630 1632 1634 1635 1652 1654 1656 1658 1659 1677 1680 1682 1684 1685 1695 1698 1706 1787 1788 1789 1808 1812 1825 1832 1839 1849 1850 1960 1967 1969 1970 2000 2001 2007 2036 2043 predefproc field disp:174, size:4 ; boolean ; DEF: 1-575 ; REF: 1289 preg type scalar subrange ; DEF: 1-777 ; REF: 1-856 1-880 164 189 242 244 263 339 352 1066 1092 prevdecltype var local to passparams, loc:244, size:10 ; pointer ; DEF: 1071 ; REF: 1261* 1351 1362* 1470 1481* 1721 1732* prevfoundtype var local to passparams, loc:254, size:10 ; pointer ; DEF: 1075 ; REF: 1261* 1354 1361* 1473 1480* 1724 1731* previouswasarrow var local to variable, loc:242, size:4 ; boolean ; DEF: 358 ; REF: 407* 875* 882 931* 988* 994 prinst var global imported, size:154 ; array of (array of (scalar subrange)) ; DEF: 170 ; REF: 115 285 286 491 1105 1371 1397 1398 1491 1514 1529 1530 1558 1808 printattr proc level 0, imported ; DEF: 229 ; REF: 72 568 570 672 674 779 781 1018 prlink const scalar, ord=8 ; DEF: 1-774 ; REF: 489 1253 1299 2031 proc const scalar, ord=3 ; DEF: 1-415 ; REF: 1-571 1160 1268 1284 procaddr field disp:150, size:4 ; integer ; DEF: 1-574 ; REF: 1236 1299 1320 procblock const scalar, ord=0 ; DEF: 1-938 ; REF: 1-945 procbox var local to passparams, loc:272, size:10 ; pointer ; DEF: 1082 ; REF: 1239* 1256 prockind field disp:140, size:4 ; scalar ; DEF: 1-572 ; REF: 1232 1233 1234 1290 1301 proclevel field disp:144, size:4 ; numeric 0..20 ; DEF: 1-573 ; REF: 1235 1293 1296 1313 1316 proclocation type scalar ; DEF: 1-439 ; REF: 1-577 procnameaddr var local to passparams, loc:152, size:10 ; pointer ; DEF: 1064 ; REF: 1241* 1252 1450 1631 1655 1681 1704 1965 2011 2030 procparmsize const numeric ; DEF: 1-132 ; REF: 1292 procplacew var local to passparams, loc:165, size:4 ; integer ; DEF: 1065 ; REF: 1236* 1253 2012 2031 proctype field disp:120, size:10 ; pointer ; DEF: 1-571 ; REF: 1200 1202 1204 1204 1206 1230 profarea type array of (integer) ; DEF: 1-934 ; REF: 1-933 prstatic const scalar, ord=7 ; DEF: 1-774 ; REF: 489 1256 ptexternalitem type pointer ; DEF: 1-444 ; REF: 1-448 1-578 1-607 pthigh field disp:230, size:10 ; pointer ; DEF: 1-551 ; REF: 522 ptlow field disp:240, size:10 ; pointer ; DEF: 1-551 ; REF: 523 pwantdescs field disp:344, size:4 ; boolean ; DEF: 1-591 ; REF: 1238 pwantspl1descriptors field disp:364, size:4 ; boolean ; DEF: 1-595 ; REF: 1450 1631 1655 1681 1704 1965 ra const scalar, ord=20 ; DEF: 1-776 ; REF: 169 459 468 593 596 685 721 744 750 757 1423 1572 1647 1666 1824 raisused funct level 0, imported ; boolean ; DEF: 193 ; REF: 40 453 464 591 1641 rcstpt type pointer ; DEF: 1-825 ; REF: 1-836 real_const_token const scalar, ord=4 ; DEF: 1-491 ; REF: 1-498 realptr var global imported, size:10 ; pointer ; DEF: 144 ; REF: 93 441 557 1861 1863 reaq const scalar, ord=23 ; DEF: 1-776 ; REF: 169 recadre funct level 0, imported ; integer ; DEF: 216 ; REF: 60 1747 1889 records const scalar, ord=6 ; DEF: 1-412 ; REF: 1-554 899 1871 reel const scalar, ord=0 ; DEF: 1-412 ; REF: 1-534 1861 ref field disp:10, size:620 ; array of (record) ; DEF: 362 ; REF: 379 381* 382* 383* 885 886 886 886 997 998 998 998 1003 1004 1004 1004 1005 1005 1005 1010 reflist type record ; DEF: 1-426 ; REF: 1-425 refptr type pointer ; DEF: 1-425 ; REF: 1-427 1-512 1-649 refs var local to variable, loc:246, size:630 ; record ; DEF: 360 ; REF: 376 378* 378 379 379 381* 382* 383* 408* 884 885 886 886 886 887* 996 997 998 998 998 999* 1002 1003 1004 1004 1004 1005 1005 1005 1008 1009 1010 regbox type record ; DEF: 1-817 ; REF: 1-816 regenere proc level 0, imported ; DEF: 194 ; REF: 41 620 683 693 1389 1521 1699 2027 register type scalar ; DEF: 1-774 ; REF: 1-777 1-819 1-862 1-889 1-920 168 169 170 179 186 191 195 340 347 1087 regpt type pointer ; DEF: 1-816 ; REF: 1-821 1-822 1-858 1-867 1-881 1-890 1-910 163 184 194 264 1083 regused var local to variable, loc:221, size:4 ; scalar ; DEF: 347 ; REF: 579* 589* 592* 593* 595* 596 627 668 697* 710 715 723* 739 746* 750 753* 765 767* 775 785 790 793 802 813 833 836 847 rfile field disp:10, size:4 ; integer ; DEF: 365 ; REF: 382* 886 998 1004 1005 rgtag var local to passparams, loc:205, size:4 ; scalar ; DEF: 1068 ; REF: 1771* 1775* 1786 1945* 1948* 1959 rline field disp:14, size:4 ; integer ; DEF: 365 ; REF: 383* 886 998 1004 1005 rq const scalar, ord=21 ; DEF: 1-776 ; REF: 168 455 455 466 466 579 592 595 723 746 752 753 821 824 847 849 1643 1643 1690 runresolv type record ; DEF: 1-833 ; REF: 1-825 sauvereg proc level 0, imported ; DEF: 195 ; REF: 42 455 466 685 721 744 752 757 963 1423 1572 1643 1666 1690 1824 saveplace field disp:4, size:4 ; integer ; DEF: 1-820 ; REF: 797 801 811 814 830 832 savewithflag var local to variable, loc:243, size:4 ; boolean ; DEF: 358 ; REF: 416* 874 scalar const scalar, ord=2 ; DEF: 1-412 ; REF: 1-536 1862 schema const scalar, ord=0 ; DEF: 1-415 ; REF: 1-516 schema_token type record ; DEF: 1-492 ; REF: 1-484 schema_token_kind type scalar ; DEF: 1-491 ; REF: 1-494 search proc level 0, imported ; DEF: 217 ; REF: 64 1278 setarray type array of (integer) ; DEF: 1-815 ; REF: 1-839 1-844 1-904 181 182 setrange const numeric ; DEF: 1-92 ; REF: 1-93 1-94 shiftl const scalar, ord=2 ; DEF: 1-919 ; REF: 715 739 1651 shrtint type numeric -131072..131071 ; DEF: 1-619 ; REF: 1-671 size field disp:114, size:4 ; integer ; DEF: 1-524 ; REF: 748 1418 1583 1673 1674 1743 1837 1859 1871 1883 skip proc level 0, imported ; DEF: 218 ; REF: 61 1266 1275 1986 1993 smallelem var local to variable, loc:203, size:4 ; boolean ; DEF: 342 ; REF: 536* 537 565 707 712 spri const scalar, ord=1 ; DEF: 1-917 ; REF: 1371 1398 1491 1530 srchrec proc level 0, imported ; DEF: 219 ; REF: 65 904 statearray type array of (boolean) ; DEF: 1-920 ; REF: 171 stattrace var global imported, size:4 ; scalar ; DEF: 172 ; REF: 117 272 303 391 562 665 772 1015 1017 1145 1209 1223 2046 stdextend const scalar, ord=3 ; DEF: 1-435 ; REF: 1876 stdkind type scalar ; DEF: 1-435 ; REF: 138 stdpure const scalar, ord=0 ; DEF: 1-435 ; REF: 2042 stoprepeat var local to variable, loc:206, size:4 ; boolean ; DEF: 342 ; REF: 863* 866* 870* 872 stor const scalar, ord=6 ; DEF: 1-919 ; REF: 1652 1654 string_base var local to variable, loc:144, size:4 ; scalar subrange ; DEF: 339 ; REF: 428* 431* 481 string_disp var local to variable, loc:145, size:4 ; integer ; DEF: 339 ; REF: 428* 431* 481 string_ptr var global imported, size:10 ; pointer ; DEF: 145 ; REF: 94 421 1614 1621 sttmap type array of (record) ; DEF: 1-925 ; REF: 1-924 sub const scalar, ord=1 ; DEF: 1-919 ; REF: 710 subarraysize var local to variable, loc:223, size:4 ; integer ; DEF: 351 ; REF: 582* 584 612 647 722 745 subsize field disp:240, size:4 ; integer ; DEF: 1-549 ; REF: 582 sup funct level 0, imported ; integer ; DEF: 220 ; REF: 62 1583 1837 1942 suplr var local to passparams, loc:202, size:4 ; integer ; DEF: 1067 ; REF: 1942* 1943 1949 sval const scalar, ord=4 ; DEF: 1-812 ; REF: 1-900 463 576 590 600 610 1864 1909 symbol_token const scalar, ord=0 ; DEF: 1-491 ; REF: 1-495 symbolfile var global imported, size:4 ; integer ; DEF: 146 ; REF: 95 382 405 891 1282 symbolline var global imported, size:4 ; integer ; DEF: 147 ; REF: 96 383 405 891 1282 symbolmap var global imported, size:4 ; boolean ; DEF: 148 ; REF: 97 520 879 991 1282 symbolp field disp:10, size:310 ; array of (pointer) ; DEF: 1-628 ; REF: 1010* symbp field disp:0, size:10 ; pointer ; DEF: 364 ; REF: 381* 886 998 1004 1005 1010 tag type scalar ; DEF: 1-766 ; REF: 1-778 168 244 1068 tagfield const scalar, ord=6 ; DEF: 1-415 ; REF: 1-610 tal const scalar, ord=5 ; DEF: 1-766 ; REF: 763 1630 1679 1680 1702 tdl const scalar, ord=7 ; DEF: 1-766 ; REF: 474 722 1303 1625 1653 1693 2038 tdu const scalar, ord=3 ; DEF: 1-766 ; REF: 2040 tempact var local to passparams, loc:250, size:10 ; pointer ; DEF: 1072 ; REF: 1417* 1567* 1571 1576 1581 1582 1583 1589* 1589 1817* 1823 1830 1835 1836 1837 1843* 1843 temppt var local to passparams, loc:246, size:10 ; pointer ; DEF: 1072 ; REF: 1381* 1383 1385* 1385 1409* 1411 1413* 1413 1417* 1421 1424 1426 1430 1434* 1434 1501* 1503 1506* 1506 1544* 1546 1549* 1549 1567* 1568 1589* 1589 1794* 1796 1799* 1799 1817* 1818 1843* 1843 textfilectp var global imported, size:10 ; pointer ; DEF: 149 ; REF: 98 959 tic const scalar, ord=4 ; DEF: 1-766 ; REF: 480 482 622 630 637 1919 tn const scalar, ord=0 ; DEF: 1-766 ; REF: 1-778 286 481 491 621 623 684 686 715 739 754 758 760 802 820 833 840 842 845 970 1107 1256 1257 1294 1297 1300 1305 1309 1310 1321 1324 1325 1371 1377 1392 1393 1397 1398 1404 1419 1431 1438 1439 1452 1453 1491 1497 1517 1518 1523 1524 1529 1530 1539 1561 1562 1573 1578 1585 1595 1596 1624 1632 1634 1635 1651 1652 1654 1656 1658 1659 1677 1682 1684 1685 1691 1692 1695 1698 1705 1706 1771 1771 1779 1780 1788 1789 1811 1812 1825 1832 1839 1849 1850 1945 1945 1952 1953 1967 1969 1970 2000 2001 2016 2020 2036 tny const scalar, ord=16 ; DEF: 1-768 ; REF: 285 967 1109 1111 1253 1299 1320 1514 1558 1808 2012 2013 2017 2031 2043 totransfer var local to variable, loc:205, size:4 ; boolean ; DEF: 342 ; REF: 644* 651* 656 938* 940* 944* 948* 949 tql const scalar, ord=6 ; DEF: 1-766 ; REF: 694 695 1629 1701 transfer proc level 0, imported ; DEF: 197 ; REF: 44 456 460 578 607 617 657 720 743 950 1427 1644 1648 1868 1901 1905 twopower var local to variable, loc:225, size:4 ; integer ; DEF: 351 ; REF: 583* 586 714 715 718 738 739 741 twoto10 const numeric ; DEF: 1-50 ; REF: 1-51 1-68 twoto12 const numeric ; DEF: 1-51 ; REF: 1769 1943 twoto14 const numeric ; DEF: 1-52 ; REF: 1-53 twoto15 const numeric ; DEF: 1-53 ; REF: 1-54 1-72 748 twoto16 const numeric ; DEF: 1-54 ; REF: 1-55 708 708 twoto17 const numeric ; DEF: 1-55 ; REF: 1-56 1-57 1-90 1-619 twoto17m1 const numeric ; DEF: 1-56 ; REF: 1-619 1776 1949 twoto18 const numeric ; DEF: 1-57 ; REF: 1-58 1-59 1-71 twoto4 const numeric ; DEF: 1-45 ; REF: 1-46 twoto6 const numeric ; DEF: 1-46 ; REF: 1-47 1-52 twoto8 const numeric ; DEF: 1-47 ; REF: 1-48 1-49 1-52 1-69 1-89 1-620 twoto8m1 const numeric ; DEF: 1-48 ; REF: 1-620 twoto9 const numeric ; DEF: 1-49 ; REF: 1-50 1-59 1-91 tx6 const scalar, ord=14 ; DEF: 1-767 ; REF: 1774 1948 tx7 const scalar, ord=15 ; DEF: 1-767 ; REF: 1-778 1775 1948 2005 typeofop type scalar ; DEF: 1-919 ; REF: 169 typepr type scalar ; DEF: 1-917 ; REF: 170 types const scalar, ord=1 ; DEF: 1-415 ; REF: 1-523 typform type scalar ; DEF: 1-412 ; REF: 1-533 typtr field disp:0, size:10 ; pointer ; DEF: 1-851 ; REF: 419 420 440 500* 508 510 512* 515 518 527 543 552 556 859* 894* 898 899 901* 904 907* 916 922* 935 936 954* 954 956 959 974 975 977 979* 979 985* 1339 1346 1349 1417 1418 1447 1458 1607 1609 1621 1637 1663 1673 1674 1714 1737 1743 1751* 1861 1863 1871 1874 1883 1893* 1898 1907 usednameaddr var global imported, size:10 ; pointer ; DEF: 157 ; REF: 104 1252* 1308* 1319* 1785* 1958* 2011* 2030* usednamesarray type packed array of (pointer) ; DEF: 1-973 ; REF: 1-974 1-974 val field disp:14, size:4 ; integer ; DEF: 1-902 ; REF: 469 577 604 612 1865 valpw field disp:30, size:40 ; array of (integer) ; DEF: 1-904 ; REF: 1912* 1916* values field disp:144, size:4 ; integer ; DEF: 1-567 ; REF: 1430 1619 vararea type scalar ; DEF: 1-939 ; REF: 1-953 varbl const scalar, ord=0 ; DEF: 1-812 ; REF: 1-854 452 590 645 1757 1785 1928 1958 variab proc level 0, imported ; DEF: 198 ; REF: 45 1336 variabctptr var global imported, size:10 ; pointer ; DEF: 173 ; REF: 46 1370 1490 varissimple funct level 0, imported ; boolean ; DEF: 230 ; REF: 73 426 648 1758 1929 varparam field disp:200, size:4 ; boolean ; DEF: 1-603 ; REF: 1163 1163 1270 vars const scalar, ord=4 ; DEF: 1-415 ; REF: 1-596 vdescaddr field disp:150, size:4 ; integer ; DEF: 1-600 ; REF: 285 vkind field disp:130, size:4 ; scalar ; DEF: 1-597 ; REF: 1139 1140 1344 1366 1464 1977 vlev field disp:14, size:4 ; numeric 0..20 ; DEF: 1-855 ; REF: 646 vtype field disp:120, size:10 ; pointer ; DEF: 1-596 ; REF: 281 282 1165 1166 1340 1342 1343 1344 1346 1349 1446 1447 1451* 1455 1458 1609 1612 1613 1614 1617 1618 1712 1714 1751 1753 1859 1860 1865 1869 1893 1896 1966* vwith const scalar, ord=2 ; DEF: 1-622 ; REF: 1-637 wcstpt type pointer ; DEF: 1-824 ; REF: 1-831 where type scalar ; DEF: 1-622 ; REF: 1-634 withblock const scalar, ord=1 ; DEF: 1-938 ; REF: 1-952 withreflist type record ; DEF: 1-626 ; REF: 1-636 1-637 165 withvariable var global imported, size:4 ; boolean ; DEF: 174 ; REF: 118 416 417* 874* 1006 wlength var local to passparams, loc:264, size:4 ; integer ; DEF: 1080 ; REF: 1387* 1388 1392 1393 1415* 1416 1509* 1510 1517 1518 1523 1524 1554* 1561 1562 1804* 1811 1812 wordconst const scalar, ord=0 ; DEF: 1-416 ; REF: 1-567 wordsforset const numeric ; DEF: 1-109 ; REF: 1-110 1-111 1-112 wordsinpage const numeric ; DEF: 1-68 ; REF: 1-70 wordsinsegment const numeric ; DEF: 1-70 ; REF: 1-73 zari type scalar ; DEF: 1-799 ; REF: 155 156 zptr type scalar ; DEF: 1-791 ; REF: 246 NAMES DECLARED AND NEVER REFERENCED a0b0c0 const scalar, ord=0 ; DEF: 1-795 a0b0c1 const scalar, ord=1 ; DEF: 1-795 a0b1c0 const scalar, ord=4 ; DEF: 1-795 a0b1c1 const scalar, ord=5 ; DEF: 1-795 a0r0i0 const scalar, ord=0 ; DEF: 1-799 a0r0i1 const scalar, ord=1 ; DEF: 1-799 a0r1i0 const scalar, ord=2 ; DEF: 1-799 a0r1i1 const scalar, ord=3 ; DEF: 1-799 a1b0c0 const scalar, ord=2 ; DEF: 1-795 a1b0c1 const scalar, ord=3 ; DEF: 1-795 a1b1c0 const scalar, ord=6 ; DEF: 1-795 a1b1c1 const scalar, ord=7 ; DEF: 1-795 a1r0i1 const scalar, ord=5 ; DEF: 1-799 a1r1i1 const scalar, ord=7 ; DEF: 1-799 absl * const numeric ; DEF: 1-334 accbloc field disp:20, size:10 ; pointer ; DEF: 1-910 accbool field disp:30, size:4 ; boolean ; DEF: 1-911 activated field disp:54, size:4 ; boolean ; DEF: 1-967 active field disp:50, size:4 ; boolean ; DEF: 1-967 actual const scalar, ord=0 ; DEF: 1-406 adlx const scalar, ord=0 ; DEF: 1-918 adx const scalar, ord=1 ; DEF: 1-918 alfa * type packed array of (char) ; DEF: 1-398 alfadeb field disp:150, size:10 ; pointer ; DEF: 1-569 alfalevel field disp:164, size:4 ; integer ; DEF: 1-570 alfathread field disp:50, size:10 ; pointer ; DEF: 1-510 alfaval field disp:10, size:20 ; array of (char) ; DEF: 1-422 areconformeq * funct level 0, imported ; boolean ; DEF: 202 ; REF: 48 argcextplace * const numeric ; DEF: 1-205 argcplace * const numeric ; DEF: 1-204 argcshortplace * const numeric ; DEF: 1-203 argptw * const numeric ; DEF: 1-280 argvextplace * const numeric ; DEF: 1-208 argvplace * const numeric ; DEF: 1-207 argvshortplace * const numeric ; DEF: 1-206 askforexclusionplace * const numeric ; DEF: 1-363 asserrcode * const numeric ; DEF: 1-250 bad_date_time_parameter * const numeric ; DEF: 1-269 baseprocessdplmt * const numeric ; DEF: 1-345 begsy const scalar, ord=1 ; DEF: 1-669 binartypeptr * type pointer ; DEF: 1-811 bit29 * const numeric ; DEF: 1-142 bitsforset * const numeric ; DEF: 1-111 bitsindword * const numeric ; DEF: 1-80 bitsinhword * const numeric ; DEF: 1-79 blank const alphanumeric, 8 char(s) ; DEF: 1-138 blocenglob field disp:270, size:10 ; pointer ; DEF: 1-561 blockbox field disp:60, size:10 ; pointer ; DEF: 1-946 blocktp field disp:50, size:4 ; scalar ; DEF: 1-944 brother field disp:20, size:10 ; pointer ; DEF: 1-645 brother field disp:10, size:10 ; pointer ; DEF: 1-941 byteinbyte * const numeric ; DEF: 1-81 bytesforset * const numeric ; DEF: 1-110 byteshift * const numeric ; DEF: 1-82 bytint * type numeric -256..255 ; DEF: 1-620 caserrcode * const numeric ; DEF: 1-253 casesize field disp:114, size:4 ; integer ; DEF: 1-610 casetype field disp:140, size:10 ; pointer ; DEF: 1-613 caseval field disp:134, size:4 ; integer ; DEF: 1-614 cdspl field disp:344, size:4 ; integer ; DEF: 1-636 chaineentree field disp:260, size:10 ; pointer ; DEF: 1-583 checkbeforeeofplace * const numeric ; DEF: 1-157 checkbeforeeolnplace * const numeric ; DEF: 1-156 checkbit * const numeric ; DEF: 1-236 chrerrcode * const numeric ; DEF: 1-245 clevel field disp:340, size:4 ; numeric 0..20 ; DEF: 1-636 clockopplace * const numeric ; DEF: 1-198 closeplace * const numeric ; DEF: 1-164 code const scalar, ord=1 ; DEF: 1-623 codebegin field disp:30, size:4 ; integer ; DEF: 1-942 codeend field disp:34, size:4 ; integer ; DEF: 1-942 compiled field disp:4, size:4 ; boolean ; DEF: 1-467 condcounterplace * const numeric ; DEF: 1-343 condit const scalar, ord=2 ; DEF: 1-460 condname field disp:0, size:40 ; packed array of (char) ; DEF: 1-965 confdimsize * const numeric ; DEF: 1-276 connectplace * const numeric ; DEF: 1-188 contexte * type scalar ; DEF: 1-623 contype field disp:130, size:10 ; pointer ; DEF: 1-565 creflist field disp:20, size:320 ; record ; DEF: 1-636 cstnext field disp:10, size:10 ; pointer ; DEF: 1-831 cstplace field disp:4, size:4 ; integer ; DEF: 1-830 current_parameter field disp:30, size:10 ; pointer ; DEF: 1-489 current_token field disp:20, size:10 ; pointer ; DEF: 1-488 data const scalar, ord=0 ; DEF: 1-623 dateopplace * const numeric ; DEF: 1-196 dclfile field disp:40, size:4 ; integer ; DEF: 1-647 dclline field disp:44, size:4 ; integer ; DEF: 1-647 deccode const scalar, ord=4 ; DEF: 1-623 deffile field disp:60, size:4 ; integer ; DEF: 1-511 deffile field disp:50, size:4 ; integer ; DEF: 1-648 definition const scalar, ord=3 ; DEF: 1-623 deflbool * const numeric ; DEF: 1-390 deflchar * const numeric ; DEF: 1-391 defline field disp:64, size:4 ; integer ; DEF: 1-511 defline field disp:54, size:4 ; integer ; DEF: 1-648 deflnum * const numeric ; DEF: 1-389 deflreal * const numeric ; DEF: 1-388 delete_negative_length_error * const numeric ; DEF: 1-265 delete_offset_error * const numeric ; DEF: 1-264 delete_too_long_error * const numeric ; DEF: 1-266 desc_vector_references field disp:170, size:4 ; integer ; DEF: 1-531 displimit * const numeric ; DEF: 1-15 disposeplace * const numeric ; DEF: 1-178 diverrcode * const numeric ; DEF: 1-251 domain field disp:210, size:10 ; pointer ; DEF: 1-542 elem field disp:20, size:10 ; pointer ; DEF: 1-475 elset field disp:210, size:10 ; pointer ; DEF: 1-544 emptyindex * const numeric ; DEF: 1-385 emptyplace * const numeric ; DEF: 1-367 encode const scalar, ord=3 ; DEF: 1-813 ended * var local to passparams, loc:147, size:4 ; boolean ; DEF: 1063 endsy const scalar, ord=2 ; DEF: 1-669 eofb * const numeric ; DEF: 1-315 eofeolnerrcode * const numeric ; DEF: 1-257 eofw * const numeric ; DEF: 1-314 eolnb * const numeric ; DEF: 1-317 eolnw * const numeric ; DEF: 1-316 errorcond * const numeric ; DEF: 1-106 evareaw * const numeric ; DEF: 1-288 exceptcodeplace * const numeric ; DEF: 1-189 executionmodplmt * const numeric ; DEF: 1-346 exitdplmt field disp:10, size:4 ; integer ; DEF: 1-481 exitplace * const numeric ; DEF: 1-379 exportable const scalar, ord=3 ; DEF: 1-406 exportproc const scalar, ord=4 ; DEF: 1-442 exportvar const scalar, ord=2 ; DEF: 1-441 extareadisp field disp:254, size:4 ; integer ; DEF: 1-454 extdecl field disp:230, size:10 ; pointer ; DEF: 1-450 extdef const scalar, ord=2 ; DEF: 1-417 extend_stack_op_place * const numeric ; DEF: 1-226 extentryname field disp:140, size:40 ; packed array of (char) ; DEF: 1-447 extentryplace * const numeric ; DEF: 1-155 externalarea const scalar, ord=1 ; DEF: 1-441 externid * type packed array of (char) ; DEF: 1-400 extgenerator field disp:100, size:40 ; packed array of (char) ; DEF: 1-447 extitemtype field disp:240, size:4 ; scalar ; DEF: 1-451 extkind field disp:244, size:4 ; scalar ; DEF: 1-452 extlong field disp:260, size:4 ; integer ; DEF: 1-455 extname field disp:0, size:40 ; packed array of (char) ; DEF: 1-446 extnext field disp:200, size:10 ; pointer ; DEF: 1-448 extnotresolved const scalar, ord=0 ; DEF: 1-441 extpltdisp field disp:250, size:4 ; integer ; DEF: 1-453 extreturnplace * const numeric ; DEF: 1-191 extrfile1 field disp:210, size:4 ; integer ; DEF: 1-449 extrfile2 field disp:220, size:4 ; integer ; DEF: 1-449 extrline1 field disp:214, size:4 ; integer ; DEF: 1-449 extrline2 field disp:224, size:4 ; integer ; DEF: 1-449 extsegname field disp:40, size:40 ; packed array of (char) ; DEF: 1-447 extwantdescs field disp:264, size:4 ; boolean ; DEF: 1-456 fappendplace * const numeric ; DEF: 1-201 fastbit * const numeric ; DEF: 1-235 father field disp:0, size:10 ; pointer ; DEF: 1-941 fcloseplace * const numeric ; DEF: 1-187 fconst field disp:210, size:10 ; pointer ; DEF: 1-538 fctdepl * const numeric ; DEF: 1-287 fctdeplw * const numeric ; DEF: 1-286 filen field disp:0, size:4 ; integer ; DEF: 1-430 fillimit * const numeric ; DEF: 1-17 findminmax * proc level 0, imported ; DEF: 206 ; REF: 52 finitdef const scalar, ord=4 ; DEF: 1-417 finitmoproc field disp:260, size:10 ; pointer ; DEF: 1-561 first field disp:20, size:10 ; pointer ; DEF: 1-657 first field disp:40, size:10 ; pointer ; DEF: 1-943 first_in_block field disp:20, size:10 ; pointer ; DEF: 1-666 firstfield field disp:140, size:10 ; pointer ; DEF: 1-614 firstglobal * const numeric ; DEF: 1-298 firstlabel field disp:100, size:10 ; pointer ; DEF: 1-948 fllengthb * const numeric ; DEF: 1-313 fllengthw * const numeric ; DEF: 1-309 flls const scalar, ord=0 ; DEF: 1-786 flushplace * const numeric ; DEF: 1-200 fname field disp:0, size:10 ; pointer ; DEF: 1-633 forerricode * const numeric ; DEF: 1-248 forerrscode * const numeric ; DEF: 1-249 formal_parameter_list field disp:130, size:10 ; pointer ; DEF: 1-519 forset * type scalar ; DEF: 1-807 forwdef const scalar, ord=1 ; DEF: 1-417 fposb * const numeric ; DEF: 1-311 fposw * const numeric ; DEF: 1-307 freeexclusionplace * const numeric ; DEF: 1-364 french_bit * const numeric ; DEF: 1-240 freopenplace * const numeric ; DEF: 1-202 fsbadrw * const numeric ; DEF: 1-289 fsbpointersize * const numeric ; DEF: 1-305 fsizeb * const numeric ; DEF: 1-312 fsizew * const numeric ; DEF: 1-308 fstatusb * const numeric ; DEF: 1-310 fstatusw * const numeric ; DEF: 1-306 functionvaluecheckplace * const numeric ; DEF: 1-225 functionvaluesetplace * const numeric ; DEF: 1-224 fupdtplace * const numeric ; DEF: 1-186 fxls const scalar, ord=1 ; DEF: 1-786 fxns const scalar, ord=3 ; DEF: 1-786 fxts const scalar, ord=2 ; DEF: 1-786 getdirplace * const numeric ; DEF: 1-185 getseqplace * const numeric ; DEF: 1-175 gettextplace * const numeric ; DEF: 1-174 gotoexitextplace * const numeric ; DEF: 1-159 gotoexitplace * const numeric ; DEF: 1-176 hdrfil field disp:120, size:4 ; integer ; DEF: 1-950 hdrind field disp:124, size:4 ; integer ; DEF: 1-950 hdrlen field disp:130, size:4 ; integer ; DEF: 1-950 hdrlin field disp:134, size:4 ; integer ; DEF: 1-950 holdplace * const numeric ; DEF: 1-358 ia4bd const scalar, ord=501 ; DEF: 1-751 ia6bd const scalar, ord=502 ; DEF: 1-751 iaar0 const scalar, ord=449 ; DEF: 1-745 iaar1 const scalar, ord=450 ; DEF: 1-745 iaar2 const scalar, ord=451 ; DEF: 1-745 iaar3 const scalar, ord=452 ; DEF: 1-745 iaar4 const scalar, ord=453 ; DEF: 1-745 iaar5 const scalar, ord=454 ; DEF: 1-745 iaar6 const scalar, ord=455 ; DEF: 1-745 iaar7 const scalar, ord=456 ; DEF: 1-745 iabsa const scalar, ord=447 ; DEF: 1-743 iad2d const scalar, ord=530 ; DEF: 1-756 iad3d const scalar, ord=536 ; DEF: 1-757 iadaq const scalar, ord=85 ; DEF: 1-689 iade const scalar, ord=206 ; DEF: 1-705 iadl const scalar, ord=86 ; DEF: 1-689 iadla const scalar, ord=87 ; DEF: 1-689 iadlaq const scalar, ord=88 ; DEF: 1-690 iadlq const scalar, ord=89 ; DEF: 1-690 iadlx0 const scalar, ord=90 ; DEF: 1-690 iadlx1 const scalar, ord=91 ; DEF: 1-690 iadlx2 const scalar, ord=92 ; DEF: 1-690 iadlx3 const scalar, ord=93 ; DEF: 1-690 iadlx4 const scalar, ord=94 ; DEF: 1-690 iadlx5 const scalar, ord=95 ; DEF: 1-690 iadlx6 const scalar, ord=96 ; DEF: 1-691 iadlx7 const scalar, ord=97 ; DEF: 1-691 iadwp0 const scalar, ord=361 ; DEF: 1-728 iadwp1 const scalar, ord=362 ; DEF: 1-728 iadwp2 const scalar, ord=363 ; DEF: 1-728 iadwp3 const scalar, ord=364 ; DEF: 1-728 iadwp4 const scalar, ord=365 ; DEF: 1-728 iadwp5 const scalar, ord=366 ; DEF: 1-728 iadwp6 const scalar, ord=367 ; DEF: 1-729 iadwp7 const scalar, ord=368 ; DEF: 1-729 iadx0 const scalar, ord=99 ; DEF: 1-691 iadx1 const scalar, ord=100 ; DEF: 1-691 iadx2 const scalar, ord=101 ; DEF: 1-691 iadx3 const scalar, ord=102 ; DEF: 1-691 iadx4 const scalar, ord=103 ; DEF: 1-691 iadx5 const scalar, ord=104 ; DEF: 1-692 iadx6 const scalar, ord=105 ; DEF: 1-692 iadx7 const scalar, ord=106 ; DEF: 1-692 ialr const scalar, ord=72 ; DEF: 1-688 ials const scalar, ord=73 ; DEF: 1-688 iana const scalar, ord=210 ; DEF: 1-708 ianaq const scalar, ord=211 ; DEF: 1-708 ianq const scalar, ord=212 ; DEF: 1-708 iansa const scalar, ord=213 ; DEF: 1-708 iansq const scalar, ord=214 ; DEF: 1-708 iansx0 const scalar, ord=215 ; DEF: 1-708 iansx1 const scalar, ord=216 ; DEF: 1-708 iansx2 const scalar, ord=217 ; DEF: 1-708 iansx3 const scalar, ord=218 ; DEF: 1-709 iansx4 const scalar, ord=219 ; DEF: 1-709 iansx5 const scalar, ord=220 ; DEF: 1-709 iansx6 const scalar, ord=221 ; DEF: 1-709 iansx7 const scalar, ord=222 ; DEF: 1-709 ianx0 const scalar, ord=223 ; DEF: 1-709 ianx1 const scalar, ord=224 ; DEF: 1-709 ianx2 const scalar, ord=225 ; DEF: 1-709 ianx3 const scalar, ord=226 ; DEF: 1-710 ianx4 const scalar, ord=227 ; DEF: 1-710 ianx5 const scalar, ord=228 ; DEF: 1-710 ianx6 const scalar, ord=229 ; DEF: 1-710 ianx7 const scalar, ord=230 ; DEF: 1-710 iaos const scalar, ord=107 ; DEF: 1-692 iara0 const scalar, ord=475 ; DEF: 1-748 iara1 const scalar, ord=476 ; DEF: 1-748 iara2 const scalar, ord=477 ; DEF: 1-748 iara3 const scalar, ord=478 ; DEF: 1-748 iara4 const scalar, ord=479 ; DEF: 1-748 iara5 const scalar, ord=480 ; DEF: 1-748 iara6 const scalar, ord=481 ; DEF: 1-749 iara7 const scalar, ord=482 ; DEF: 1-749 iarl const scalar, ord=74 ; DEF: 1-688 iarn0 const scalar, ord=483 ; DEF: 1-749 iarn1 const scalar, ord=484 ; DEF: 1-749 iarn2 const scalar, ord=485 ; DEF: 1-749 iarn3 const scalar, ord=486 ; DEF: 1-749 iarn4 const scalar, ord=487 ; DEF: 1-749 iarn5 const scalar, ord=488 ; DEF: 1-749 iarn6 const scalar, ord=489 ; DEF: 1-750 iarn7 const scalar, ord=490 ; DEF: 1-750 iars const scalar, ord=75 ; DEF: 1-688 iasq const scalar, ord=109 ; DEF: 1-692 iasx0 const scalar, ord=110 ; DEF: 1-692 iasx1 const scalar, ord=111 ; DEF: 1-692 iasx2 const scalar, ord=112 ; DEF: 1-693 iasx3 const scalar, ord=113 ; DEF: 1-693 iasx4 const scalar, ord=114 ; DEF: 1-693 iasx5 const scalar, ord=115 ; DEF: 1-693 iasx6 const scalar, ord=116 ; DEF: 1-693 iasx7 const scalar, ord=117 ; DEF: 1-693 iawca const scalar, ord=118 ; DEF: 1-693 iawcq const scalar, ord=119 ; DEF: 1-693 ibcd const scalar, ord=419 ; DEF: 1-738 ibtd const scalar, ord=528 ; DEF: 1-756 ic_from field disp:0, size:4 ; integer ; DEF: 1-651 ic_to field disp:4, size:4 ; integer ; DEF: 1-651 icall6 const scalar, ord=370 ; DEF: 1-731 icamp const scalar, ord=438 ; DEF: 1-742 icams const scalar, ord=439 ; DEF: 1-742 icana const scalar, ord=273 ; DEF: 1-715 icanaq const scalar, ord=274 ; DEF: 1-716 icanq const scalar, ord=275 ; DEF: 1-716 icanx0 const scalar, ord=276 ; DEF: 1-716 icanx1 const scalar, ord=277 ; DEF: 1-716 icanx2 const scalar, ord=278 ; DEF: 1-716 icanx3 const scalar, ord=279 ; DEF: 1-716 icanx4 const scalar, ord=280 ; DEF: 1-716 icanx5 const scalar, ord=281 ; DEF: 1-716 icanx6 const scalar, ord=282 ; DEF: 1-717 icanx7 const scalar, ord=283 ; DEF: 1-717 icioc const scalar, ord=443 ; DEF: 1-742 icmg const scalar, ord=160 ; DEF: 1-699 icmk const scalar, ord=161 ; DEF: 1-699 icmpa const scalar, ord=162 ; DEF: 1-699 icmpaq const scalar, ord=163 ; DEF: 1-699 icmpb const scalar, ord=527 ; DEF: 1-756 icmpn const scalar, ord=525 ; DEF: 1-755 icmpx0 const scalar, ord=165 ; DEF: 1-699 icmpx1 const scalar, ord=166 ; DEF: 1-699 icmpx2 const scalar, ord=167 ; DEF: 1-699 icmpx3 const scalar, ord=168 ; DEF: 1-700 icmpx4 const scalar, ord=169 ; DEF: 1-700 icmpx5 const scalar, ord=170 ; DEF: 1-700 icmpx6 const scalar, ord=171 ; DEF: 1-700 icmpx7 const scalar, ord=172 ; DEF: 1-700 icnaa const scalar, ord=284 ; DEF: 1-717 icnaaq const scalar, ord=285 ; DEF: 1-717 icnaq const scalar, ord=286 ; DEF: 1-717 icnax0 const scalar, ord=287 ; DEF: 1-717 icnax1 const scalar, ord=288 ; DEF: 1-717 icnax2 const scalar, ord=289 ; DEF: 1-717 icnax3 const scalar, ord=290 ; DEF: 1-718 icnax4 const scalar, ord=291 ; DEF: 1-718 icnax5 const scalar, ord=292 ; DEF: 1-718 icnax6 const scalar, ord=293 ; DEF: 1-718 icnax7 const scalar, ord=294 ; DEF: 1-718 icsl const scalar, ord=519 ; DEF: 1-755 icsr const scalar, ord=520 ; DEF: 1-755 icwl const scalar, ord=173 ; DEF: 1-700 idfad const scalar, ord=182 ; DEF: 1-702 idfcmg const scalar, ord=202 ; DEF: 1-705 idfcmp const scalar, ord=203 ; DEF: 1-705 idfdi const scalar, ord=194 ; DEF: 1-704 idfdv const scalar, ord=195 ; DEF: 1-704 idfld const scalar, ord=176 ; DEF: 1-702 idfmp const scalar, ord=190 ; DEF: 1-703 idfrd const scalar, ord=200 ; DEF: 1-705 idfsb const scalar, ord=186 ; DEF: 1-703 idfst const scalar, ord=178 ; DEF: 1-702 idfstr const scalar, ord=179 ; DEF: 1-702 idis const scalar, ord=448 ; DEF: 1-743 idiv const scalar, ord=156 ; DEF: 1-698 idrl const scalar, ord=407 ; DEF: 1-737 idtb const scalar, ord=529 ; DEF: 1-756 idufa const scalar, ord=183 ; DEF: 1-702 idufm const scalar, ord=191 ; DEF: 1-703 idufs const scalar, ord=187 ; DEF: 1-703 idv2d const scalar, ord=533 ; DEF: 1-756 idvf const scalar, ord=157 ; DEF: 1-698 ieaq const scalar, ord=1 ; DEF: 1-679 ieasp0 const scalar, ord=295 ; DEF: 1-720 ieasp1 const scalar, ord=296 ; DEF: 1-720 ieasp2 const scalar, ord=297 ; DEF: 1-720 ieasp3 const scalar, ord=298 ; DEF: 1-720 ieasp4 const scalar, ord=299 ; DEF: 1-720 ieasp5 const scalar, ord=300 ; DEF: 1-720 ieasp6 const scalar, ord=301 ; DEF: 1-720 ieasp7 const scalar, ord=302 ; DEF: 1-720 ieawp0 const scalar, ord=303 ; DEF: 1-721 ieawp1 const scalar, ord=304 ; DEF: 1-721 ieawp2 const scalar, ord=305 ; DEF: 1-721 ieawp3 const scalar, ord=306 ; DEF: 1-721 ieawp4 const scalar, ord=307 ; DEF: 1-721 ieawp5 const scalar, ord=308 ; DEF: 1-721 ieawp6 const scalar, ord=309 ; DEF: 1-721 ieawp7 const scalar, ord=310 ; DEF: 1-721 ieax0 const scalar, ord=2 ; DEF: 1-679 ieax2 const scalar, ord=4 ; DEF: 1-679 ieax3 const scalar, ord=5 ; DEF: 1-679 ieax4 const scalar, ord=6 ; DEF: 1-679 ieax5 const scalar, ord=7 ; DEF: 1-679 iepaq const scalar, ord=369 ; DEF: 1-729 iepbp0 const scalar, ord=311 ; DEF: 1-722 iepbp1 const scalar, ord=312 ; DEF: 1-722 iepbp2 const scalar, ord=313 ; DEF: 1-722 iepbp3 const scalar, ord=314 ; DEF: 1-722 iepbp4 const scalar, ord=315 ; DEF: 1-722 iepbp5 const scalar, ord=316 ; DEF: 1-722 iepbp6 const scalar, ord=317 ; DEF: 1-722 iepbp7 const scalar, ord=318 ; DEF: 1-722 iepp0 const scalar, ord=319 ; DEF: 1-723 iepp2 const scalar, ord=321 ; DEF: 1-723 iepp6 const scalar, ord=325 ; DEF: 1-723 iepp7 const scalar, ord=326 ; DEF: 1-723 iera const scalar, ord=252 ; DEF: 1-713 ieraq const scalar, ord=253 ; DEF: 1-713 ierq const scalar, ord=254 ; DEF: 1-713 iersa const scalar, ord=255 ; DEF: 1-713 iersq const scalar, ord=256 ; DEF: 1-713 iersx0 const scalar, ord=257 ; DEF: 1-713 iersx1 const scalar, ord=258 ; DEF: 1-714 iersx2 const scalar, ord=259 ; DEF: 1-714 iersx3 const scalar, ord=260 ; DEF: 1-714 iersx4 const scalar, ord=261 ; DEF: 1-714 iersx5 const scalar, ord=262 ; DEF: 1-714 iersx6 const scalar, ord=263 ; DEF: 1-714 iersx7 const scalar, ord=264 ; DEF: 1-714 ierx0 const scalar, ord=265 ; DEF: 1-714 ierx1 const scalar, ord=266 ; DEF: 1-715 ierx2 const scalar, ord=267 ; DEF: 1-715 ierx3 const scalar, ord=268 ; DEF: 1-715 ierx4 const scalar, ord=269 ; DEF: 1-715 ierx5 const scalar, ord=270 ; DEF: 1-715 ierx6 const scalar, ord=271 ; DEF: 1-715 ierx7 const scalar, ord=272 ; DEF: 1-715 ifad const scalar, ord=184 ; DEF: 1-703 ifcmg const scalar, ord=204 ; DEF: 1-705 ifcmp const scalar, ord=205 ; DEF: 1-705 ifdi const scalar, ord=196 ; DEF: 1-704 ifdv const scalar, ord=197 ; DEF: 1-704 ifmp const scalar, ord=192 ; DEF: 1-704 ifneg const scalar, ord=198 ; DEF: 1-704 ifno const scalar, ord=199 ; DEF: 1-704 ifrd const scalar, ord=201 ; DEF: 1-705 ifsb const scalar, ord=188 ; DEF: 1-703 ifst const scalar, ord=180 ; DEF: 1-702 ifstr const scalar, ord=181 ; DEF: 1-702 ifszn const scalar, ord=207 ; DEF: 1-705 igtb const scalar, ord=420 ; DEF: 1-738 ilar0 const scalar, ord=457 ; DEF: 1-746 ilar1 const scalar, ord=458 ; DEF: 1-746 ilar2 const scalar, ord=459 ; DEF: 1-746 ilar3 const scalar, ord=460 ; DEF: 1-746 ilar4 const scalar, ord=461 ; DEF: 1-746 ilar5 const scalar, ord=462 ; DEF: 1-746 ilar6 const scalar, ord=463 ; DEF: 1-746 ilar7 const scalar, ord=464 ; DEF: 1-746 ilareg const scalar, ord=465 ; DEF: 1-747 ilbar const scalar, ord=421 ; DEF: 1-740 ilca const scalar, ord=10 ; DEF: 1-680 ilcaq const scalar, ord=11 ; DEF: 1-680 ilcpr const scalar, ord=422 ; DEF: 1-740 ilcq const scalar, ord=12 ; DEF: 1-680 ilcx0 const scalar, ord=13 ; DEF: 1-680 ilcx1 const scalar, ord=14 ; DEF: 1-680 ilcx2 const scalar, ord=15 ; DEF: 1-680 ilcx3 const scalar, ord=16 ; DEF: 1-681 ilcx4 const scalar, ord=17 ; DEF: 1-681 ilcx5 const scalar, ord=18 ; DEF: 1-681 ilcx6 const scalar, ord=19 ; DEF: 1-681 ilcx7 const scalar, ord=20 ; DEF: 1-681 ildac const scalar, ord=22 ; DEF: 1-681 ildaq const scalar, ord=23 ; DEF: 1-681 ildbr const scalar, ord=423 ; DEF: 1-740 ilde const scalar, ord=208 ; DEF: 1-706 ildi const scalar, ord=24 ; DEF: 1-682 ildqc const scalar, ord=26 ; DEF: 1-682 ildt const scalar, ord=424 ; DEF: 1-740 ildx0 const scalar, ord=27 ; DEF: 1-682 ildx1 const scalar, ord=28 ; DEF: 1-682 ildx2 const scalar, ord=29 ; DEF: 1-682 ildx3 const scalar, ord=30 ; DEF: 1-682 ildx4 const scalar, ord=31 ; DEF: 1-682 ildx5 const scalar, ord=32 ; DEF: 1-683 ildx6 const scalar, ord=33 ; DEF: 1-683 ildx7 const scalar, ord=34 ; DEF: 1-683 illr const scalar, ord=76 ; DEF: 1-688 ilpl const scalar, ord=466 ; DEF: 1-747 ilpri const scalar, ord=327 ; DEF: 1-724 ilprp0 const scalar, ord=328 ; DEF: 1-724 ilprp1 const scalar, ord=329 ; DEF: 1-724 ilprp2 const scalar, ord=330 ; DEF: 1-724 ilprp3 const scalar, ord=331 ; DEF: 1-724 ilprp4 const scalar, ord=332 ; DEF: 1-724 ilprp5 const scalar, ord=333 ; DEF: 1-724 ilprp6 const scalar, ord=334 ; DEF: 1-724 ilprp7 const scalar, ord=335 ; DEF: 1-725 ilptp const scalar, ord=425 ; DEF: 1-740 ilptr const scalar, ord=426 ; DEF: 1-740 ilra const scalar, ord=427 ; DEF: 1-740 ilreg const scalar, ord=35 ; DEF: 1-683 ilrs const scalar, ord=79 ; DEF: 1-688 ilsdp const scalar, ord=428 ; DEF: 1-740 ilsdr const scalar, ord=429 ; DEF: 1-741 ilxl0 const scalar, ord=36 ; DEF: 1-683 ilxl1 const scalar, ord=37 ; DEF: 1-683 ilxl2 const scalar, ord=38 ; DEF: 1-683 ilxl3 const scalar, ord=39 ; DEF: 1-683 ilxl4 const scalar, ord=40 ; DEF: 1-684 ilxl5 const scalar, ord=41 ; DEF: 1-684 ilxl6 const scalar, ord=42 ; DEF: 1-684 imme const scalar, ord=410 ; DEF: 1-737 imme2 const scalar, ord=411 ; DEF: 1-737 imme3 const scalar, ord=412 ; DEF: 1-737 imme4 const scalar, ord=413 ; DEF: 1-737 imp2d const scalar, ord=532 ; DEF: 1-756 imp3d const scalar, ord=538 ; DEF: 1-757 impf const scalar, ord=154 ; DEF: 1-698 importproc const scalar, ord=5 ; DEF: 1-442 importvar const scalar, ord=3 ; DEF: 1-441 imrl const scalar, ord=517 ; DEF: 1-754 imve const scalar, ord=534 ; DEF: 1-756 imvn const scalar, ord=526 ; DEF: 1-755 imvne const scalar, ord=535 ; DEF: 1-757 imvt const scalar, ord=518 ; DEF: 1-754 inaq const scalar, ord=2 ; DEF: 1-814 inar0 const scalar, ord=467 ; DEF: 1-747 inar1 const scalar, ord=468 ; DEF: 1-747 inar2 const scalar, ord=469 ; DEF: 1-747 inar3 const scalar, ord=470 ; DEF: 1-747 inar4 const scalar, ord=471 ; DEF: 1-747 inar5 const scalar, ord=472 ; DEF: 1-747 inar6 const scalar, ord=473 ; DEF: 1-748 inar7 const scalar, ord=474 ; DEF: 1-748 ineg const scalar, ord=158 ; DEF: 1-698 inegl const scalar, ord=159 ; DEF: 1-698 inhibit * const numeric ; DEF: 1-143 initcondplace * const numeric ; DEF: 1-362 initdef const scalar, ord=3 ; DEF: 1-417 initfsballocplace * const numeric ; DEF: 1-195 initmoproc field disp:250, size:10 ; pointer ; DEF: 1-561 inop const scalar, ord=414 ; DEF: 1-738 inpsr const scalar, ord=3 ; DEF: 1-814 insert_overflow_error * const numeric ; DEF: 1-267 instdcompiler const scalar, ord=2 ; DEF: 1-439 instdcomputer const scalar, ord=5 ; DEF: 1-440 instdextend const scalar, ord=4 ; DEF: 1-440 instdpure const scalar, ord=1 ; DEF: 1-439 instdsimone const scalar, ord=6 ; DEF: 1-440 instdsol const scalar, ord=3 ; DEF: 1-439 int15 * const numeric ; DEF: 1-332 int18 * const numeric ; DEF: 1-330 intentryplace * const numeric ; DEF: 1-160 interactivebit * const numeric ; DEF: 1-237 inthelist field disp:0, size:4 ; boolean ; DEF: 1-467 intreturnplace * const numeric ; DEF: 1-190 iora const scalar, ord=231 ; DEF: 1-710 ioraq const scalar, ord=232 ; DEF: 1-710 iorq const scalar, ord=233 ; DEF: 1-710 iorsa const scalar, ord=234 ; DEF: 1-711 iorsq const scalar, ord=235 ; DEF: 1-711 iorsx0 const scalar, ord=236 ; DEF: 1-711 iorsx1 const scalar, ord=237 ; DEF: 1-711 iorsx2 const scalar, ord=238 ; DEF: 1-711 iorsx3 const scalar, ord=239 ; DEF: 1-711 iorsx4 const scalar, ord=240 ; DEF: 1-711 iorsx5 const scalar, ord=241 ; DEF: 1-711 iorsx6 const scalar, ord=242 ; DEF: 1-712 iorsx7 const scalar, ord=243 ; DEF: 1-712 iorx0 const scalar, ord=244 ; DEF: 1-712 iorx1 const scalar, ord=245 ; DEF: 1-712 iorx2 const scalar, ord=246 ; DEF: 1-712 iorx3 const scalar, ord=247 ; DEF: 1-712 iorx4 const scalar, ord=248 ; DEF: 1-712 iorx5 const scalar, ord=249 ; DEF: 1-712 iorx6 const scalar, ord=250 ; DEF: 1-713 iorx7 const scalar, ord=251 ; DEF: 1-713 iotextbuffersize * const numeric ; DEF: 1-303 iowarningsbit * const numeric ; DEF: 1-238 ipuls1 const scalar, ord=415 ; DEF: 1-738 ipuls2 const scalar, ord=416 ; DEF: 1-738 iqlr const scalar, ord=80 ; DEF: 1-689 iqls const scalar, ord=81 ; DEF: 1-689 iqrs const scalar, ord=83 ; DEF: 1-689 irccl const scalar, ord=406 ; DEF: 1-737 ircu const scalar, ord=430 ; DEF: 1-741 irept * type scalar subrange ; DEF: 1-783 iret const scalar, ord=371 ; DEF: 1-731 irmcm const scalar, ord=440 ; DEF: 1-742 irpl const scalar, ord=541 ; DEF: 1-759 irrelsy const scalar, ord=0 ; DEF: 1-669 irscr const scalar, ord=441 ; DEF: 1-742 irsw const scalar, ord=442 ; DEF: 1-742 irtcd const scalar, ord=372 ; DEF: 1-731 is4bd const scalar, ord=506 ; DEF: 1-752 is6bd const scalar, ord=507 ; DEF: 1-752 is9bd const scalar, ord=508 ; DEF: 1-752 isar0 const scalar, ord=491 ; DEF: 1-750 isar1 const scalar, ord=492 ; DEF: 1-750 isar2 const scalar, ord=493 ; DEF: 1-750 isar3 const scalar, ord=494 ; DEF: 1-750 isar4 const scalar, ord=495 ; DEF: 1-750 isar5 const scalar, ord=496 ; DEF: 1-750 isar6 const scalar, ord=497 ; DEF: 1-751 isar7 const scalar, ord=498 ; DEF: 1-751 isareg const scalar, ord=499 ; DEF: 1-751 isb2d const scalar, ord=531 ; DEF: 1-756 isb3d const scalar, ord=537 ; DEF: 1-757 isba const scalar, ord=120 ; DEF: 1-694 isbaq const scalar, ord=121 ; DEF: 1-694 isbar const scalar, ord=418 ; DEF: 1-738 isbd const scalar, ord=509 ; DEF: 1-752 isbla const scalar, ord=122 ; DEF: 1-694 isblaq const scalar, ord=123 ; DEF: 1-694 isblq const scalar, ord=124 ; DEF: 1-694 isblx0 const scalar, ord=125 ; DEF: 1-694 isblx1 const scalar, ord=126 ; DEF: 1-694 isblx2 const scalar, ord=127 ; DEF: 1-694 isblx3 const scalar, ord=128 ; DEF: 1-695 isblx4 const scalar, ord=129 ; DEF: 1-695 isblx5 const scalar, ord=130 ; DEF: 1-695 isblx6 const scalar, ord=131 ; DEF: 1-695 isblx7 const scalar, ord=132 ; DEF: 1-695 isbx0 const scalar, ord=134 ; DEF: 1-695 isbx1 const scalar, ord=135 ; DEF: 1-695 isbx2 const scalar, ord=136 ; DEF: 1-696 isbx3 const scalar, ord=137 ; DEF: 1-696 isbx4 const scalar, ord=138 ; DEF: 1-696 isbx5 const scalar, ord=139 ; DEF: 1-696 isbx6 const scalar, ord=140 ; DEF: 1-696 isbx7 const scalar, ord=141 ; DEF: 1-696 iscd const scalar, ord=523 ; DEF: 1-755 iscdr const scalar, ord=524 ; DEF: 1-755 iscm const scalar, ord=514 ; DEF: 1-754 iscmr const scalar, ord=515 ; DEF: 1-754 iscpr const scalar, ord=431 ; DEF: 1-741 iscu const scalar, ord=432 ; DEF: 1-741 isdbr const scalar, ord=433 ; DEF: 1-741 ismcm const scalar, ord=444 ; DEF: 1-742 ismic const scalar, ord=445 ; DEF: 1-743 ispbp0 const scalar, ord=336 ; DEF: 1-725 ispbp1 const scalar, ord=337 ; DEF: 1-725 ispbp2 const scalar, ord=338 ; DEF: 1-725 ispbp3 const scalar, ord=339 ; DEF: 1-725 ispbp4 const scalar, ord=340 ; DEF: 1-725 ispbp5 const scalar, ord=341 ; DEF: 1-725 ispbp6 const scalar, ord=342 ; DEF: 1-725 ispbp7 const scalar, ord=343 ; DEF: 1-726 ispl const scalar, ord=500 ; DEF: 1-751 ispri const scalar, ord=344 ; DEF: 1-726 ispri0 const scalar, ord=345 ; DEF: 1-726 ispri1 const scalar, ord=346 ; DEF: 1-726 ispri2 const scalar, ord=347 ; DEF: 1-726 ispri4 const scalar, ord=349 ; DEF: 1-726 ispri5 const scalar, ord=350 ; DEF: 1-726 ispri7 const scalar, ord=352 ; DEF: 1-727 isprp0 const scalar, ord=353 ; DEF: 1-727 isprp1 const scalar, ord=354 ; DEF: 1-727 isprp2 const scalar, ord=355 ; DEF: 1-727 isprp3 const scalar, ord=356 ; DEF: 1-727 isprp4 const scalar, ord=357 ; DEF: 1-727 isprp5 const scalar, ord=358 ; DEF: 1-727 isprp6 const scalar, ord=359 ; DEF: 1-728 isprp7 const scalar, ord=360 ; DEF: 1-728 isptp const scalar, ord=434 ; DEF: 1-741 isptr const scalar, ord=435 ; DEF: 1-741 isra const scalar, ord=417 ; DEF: 1-738 isreg const scalar, ord=44 ; DEF: 1-684 issa const scalar, ord=142 ; DEF: 1-696 isscr const scalar, ord=446 ; DEF: 1-743 issdp const scalar, ord=436 ; DEF: 1-741 issdr const scalar, ord=437 ; DEF: 1-742 issq const scalar, ord=143 ; DEF: 1-696 issx0 const scalar, ord=144 ; DEF: 1-697 issx1 const scalar, ord=145 ; DEF: 1-697 issx2 const scalar, ord=146 ; DEF: 1-697 issx3 const scalar, ord=147 ; DEF: 1-697 issx4 const scalar, ord=148 ; DEF: 1-697 issx5 const scalar, ord=149 ; DEF: 1-697 issx6 const scalar, ord=150 ; DEF: 1-697 issx7 const scalar, ord=151 ; DEF: 1-697 istac const scalar, ord=46 ; DEF: 1-684 istacq const scalar, ord=47 ; DEF: 1-684 istaq const scalar, ord=48 ; DEF: 1-685 istbq const scalar, ord=544 ; DEF: 1-761 istc1 const scalar, ord=49 ; DEF: 1-685 istc2 const scalar, ord=50 ; DEF: 1-685 istca const scalar, ord=545 ; DEF: 1-761 istcd const scalar, ord=51 ; DEF: 1-685 iste const scalar, ord=209 ; DEF: 1-706 isti const scalar, ord=52 ; DEF: 1-685 istobc * type scalar subrange ; DEF: 1-784 istt const scalar, ord=54 ; DEF: 1-685 istx0 const scalar, ord=55 ; DEF: 1-685 istx1 const scalar, ord=56 ; DEF: 1-686 istx2 const scalar, ord=57 ; DEF: 1-686 istx3 const scalar, ord=58 ; DEF: 1-686 istx4 const scalar, ord=59 ; DEF: 1-686 istx5 const scalar, ord=60 ; DEF: 1-686 istx6 const scalar, ord=61 ; DEF: 1-686 istx7 const scalar, ord=62 ; DEF: 1-686 istz const scalar, ord=63 ; DEF: 1-686 iswca const scalar, ord=152 ; DEF: 1-698 iswcq const scalar, ord=153 ; DEF: 1-698 isxl0 const scalar, ord=64 ; DEF: 1-687 isxl1 const scalar, ord=65 ; DEF: 1-687 isxl2 const scalar, ord=66 ; DEF: 1-687 isxl3 const scalar, ord=67 ; DEF: 1-687 isxl4 const scalar, ord=68 ; DEF: 1-687 isxl5 const scalar, ord=69 ; DEF: 1-687 isxl6 const scalar, ord=70 ; DEF: 1-687 isxl7 const scalar, ord=71 ; DEF: 1-687 iszn const scalar, ord=174 ; DEF: 1-700 isznc const scalar, ord=175 ; DEF: 1-700 isztl const scalar, ord=521 ; DEF: 1-755 isztr const scalar, ord=522 ; DEF: 1-755 itct const scalar, ord=511 ; DEF: 1-754 itctr const scalar, ord=512 ; DEF: 1-754 iteo const scalar, ord=373 ; DEF: 1-731 iteu const scalar, ord=374 ; DEF: 1-731 itnc const scalar, ord=377 ; DEF: 1-731 itnz const scalar, ord=378 ; DEF: 1-732 itov const scalar, ord=379 ; DEF: 1-732 itpl const scalar, ord=380 ; DEF: 1-732 itpnz const scalar, ord=381 ; DEF: 1-732 itra const scalar, ord=382 ; DEF: 1-732 itrc const scalar, ord=383 ; DEF: 1-732 itrtf const scalar, ord=384 ; DEF: 1-732 itrtn const scalar, ord=385 ; DEF: 1-732 itsp0 const scalar, ord=386 ; DEF: 1-733 itsp1 const scalar, ord=387 ; DEF: 1-733 itsp2 const scalar, ord=388 ; DEF: 1-733 itsp4 const scalar, ord=390 ; DEF: 1-733 itsp5 const scalar, ord=391 ; DEF: 1-733 itsp6 const scalar, ord=392 ; DEF: 1-733 itsp7 const scalar, ord=393 ; DEF: 1-733 itss const scalar, ord=394 ; DEF: 1-734 itsx0 const scalar, ord=395 ; DEF: 1-734 itsx1 const scalar, ord=396 ; DEF: 1-734 itsx2 const scalar, ord=397 ; DEF: 1-734 itsx3 const scalar, ord=398 ; DEF: 1-734 itsx4 const scalar, ord=399 ; DEF: 1-734 itsx5 const scalar, ord=400 ; DEF: 1-734 itsx6 const scalar, ord=401 ; DEF: 1-734 itsx7 const scalar, ord=402 ; DEF: 1-735 ittf const scalar, ord=403 ; DEF: 1-735 ittn const scalar, ord=404 ; DEF: 1-735 itze const scalar, ord=405 ; DEF: 1-735 iufa const scalar, ord=185 ; DEF: 1-703 iufm const scalar, ord=193 ; DEF: 1-704 iufs const scalar, ord=189 ; DEF: 1-703 ixec const scalar, ord=408 ; DEF: 1-737 ixed const scalar, ord=409 ; DEF: 1-737 kind field disp:10, size:4 ; scalar ; DEF: 1-494 l4 const scalar, ord=0 ; DEF: 1-785 l6 const scalar, ord=1 ; DEF: 1-785 labbox field disp:30, size:10 ; pointer ; DEF: 1-661 labch1 field disp:14, size:4 ; integer ; DEF: 1-660 labdef field disp:20, size:4 ; integer ; DEF: 1-660 labdescr * type record ; DEF: 1-659 labexit field disp:10, size:4 ; integer ; DEF: 1-660 lablev field disp:4, size:4 ; integer ; DEF: 1-660 labval field disp:0, size:4 ; integer ; DEF: 1-660 lbase * var local to variable, loc:230, size:4 ; scalar subrange ; DEF: 352 lcprocess * const numeric ; DEF: 1-382 lengthplace * const numeric ; DEF: 1-368 lgfilename * const numeric ; DEF: 1-302 lgparm1 * const numeric ; DEF: 1-24 lgprint * const numeric ; DEF: 1-102 linen field disp:4, size:4 ; integer ; DEF: 1-430 link15 * const numeric ; DEF: 1-329 link18 * const numeric ; DEF: 1-328 linkage const scalar, ord=2 ; DEF: 1-623 llnext field disp:50, size:10 ; pointer ; DEF: 1-846 llvalu field disp:0, size:40 ; array of (integer) ; DEF: 1-844 lnext field disp:50, size:10 ; pointer ; DEF: 1-841 localfile const scalar, ord=3 ; DEF: 1-437 localproc const scalar, ord=6 ; DEF: 1-442 locals const scalar, ord=1 ; DEF: 1-939 locinbytes field disp:4, size:4 ; integer ; DEF: 1-643 locincode field disp:164, size:4 ; integer ; DEF: 1-574 log10switch * const numeric ; DEF: 1-150 longblank const alphanumeric, 32 char(s) ; DEF: 1-139 longboxlist * const numeric ; DEF: 1-37 longfill field disp:30, size:4 ; integer ; DEF: 1-423 longplacew * const numeric ; DEF: 1-291 longprofileplace * const numeric ; DEF: 1-199 longstplacew * const numeric ; DEF: 1-293 lotptrdep * const numeric ; DEF: 1-231 lpclength * const numeric ; DEF: 1-322 lphl * const numeric ; DEF: 1-324 lprp const scalar, ord=2 ; DEF: 1-917 lvalu field disp:0, size:40 ; array of (integer) ; DEF: 1-839 lxl const scalar, ord=3 ; DEF: 1-918 mainbit * const numeric ; DEF: 1-234 maindplmt * const numeric ; DEF: 1-347 mainentryplace * const numeric ; DEF: 1-154 mainprogram const scalar, ord=7 ; DEF: 1-442 mathworksizew * const numeric ; DEF: 1-133 max10 * const numeric ; DEF: 1-118 maxchar * const numeric ; DEF: 1-96 maxchar8 * const numeric ; DEF: 1-338 maxdig * const numeric ; DEF: 1-115 maxdigitsinteger * const numeric ; DEF: 1-121 maxerpg * const numeric ; DEF: 1-20 maxerrline * const numeric ; DEF: 1-19 maxexp * const numeric ; DEF: 1-119 maxexpon * const numeric ; DEF: 1-116 maxglobsize * const numeric ; DEF: 1-71 maxhexdi * const numeric ; DEF: 1-117 maxint * const numeric ; DEF: 1-84 maxintegerstring const alphanumeric, 20 char(s) ; DEF: 1-123 maxkeylength * const numeric ; DEF: 1-31 maxlabs * const numeric ; DEF: 1-16 maxlinepascal * const numeric ; DEF: 1-100 maxnbofkeywords * const numeric ; DEF: 1-29 maxnewsize * const numeric ; DEF: 1-42 maxpage * const numeric ; DEF: 1-95 maxpageline * const numeric ; DEF: 1-99 maxpredef * const numeric ; DEF: 1-25 maxrealstring const alphanumeric, 20 char(s) ; DEF: 1-124 maxrel * const numeric ; DEF: 1-129 maxset * const numeric ; DEF: 1-93 maxstacksize * const numeric ; DEF: 1-72 maxstring * const numeric ; DEF: 1-34 maxval * const numeric ; DEF: 1-33 medium const scalar, ord=2 ; DEF: 1-624 minexp * const numeric ; DEF: 1-120 minrealstring const alphanumeric, 20 char(s) ; DEF: 1-125 mlterrcode * const numeric ; DEF: 1-256 moaddr field disp:210, size:4 ; integer ; DEF: 1-559 moarglistw * const numeric ; DEF: 1-344 modul const scalar, ord=0 ; DEF: 1-460 module const scalar, ord=0 ; DEF: 1-459 modulentryplace * const numeric ; DEF: 1-360 modulinitsize * const numeric ; DEF: 1-134 modynlk * const numeric ; DEF: 1-342 mofatherdisp * const numeric ; DEF: 1-339 monit const scalar, ord=1 ; DEF: 1-460 monitor const scalar, ord=1 ; DEF: 1-459 monitorentryplace * const numeric ; DEF: 1-361 monitorinitsize * const numeric ; DEF: 1-135 monitormodule const scalar, ord=0 ; DEF: 1-462 motype field disp:200, size:4 ; scalar ; DEF: 1-557 mowaitsonsplace * const numeric ; DEF: 1-372 name field disp:20, size:40 ; packed array of (char) ; DEF: 1-404 name field disp:0, size:40 ; packed array of (char) ; DEF: 1-508 nbparmo field disp:214, size:4 ; integer ; DEF: 1-559 neg const scalar, ord=4 ; DEF: 1-919 negexpplace * const numeric ; DEF: 1-375 newplace * const numeric ; DEF: 1-177 next field disp:10, size:10 ; pointer ; DEF: 1-403 next field disp:0, size:10 ; pointer ; DEF: 1-493 next field disp:10, size:10 ; pointer ; DEF: 1-644 next field disp:10, size:10 ; pointer ; DEF: 1-656 next field disp:10, size:10 ; pointer ; DEF: 1-665 next_for_schema field disp:120, size:10 ; pointer ; DEF: 1-518 next_in_block field disp:100, size:10 ; pointer ; DEF: 1-653 next_sp_place * const numeric ; DEF: 1-281 nextbloc field disp:10, size:10 ; pointer ; DEF: 1-821 nextcond field disp:40, size:10 ; pointer ; DEF: 1-966 nextexitelem field disp:0, size:10 ; pointer ; DEF: 1-480 nextnode field disp:10, size:10 ; pointer ; DEF: 1-474 nextproc field disp:110, size:10 ; pointer ; DEF: 1-949 nextref field disp:0, size:10 ; pointer ; DEF: 1-427 nextval field disp:0, size:10 ; pointer ; DEF: 1-421 nilleft * const numeric ; DEF: 1-75 nilright * const numeric ; DEF: 1-76 niveau field disp:204, size:4 ; numeric 0..20 ; DEF: 1-558 noerrorcond * const numeric ; DEF: 1-107 norange * type numeric 0..63 ; DEF: 1-621 normalplace * const numeric ; DEF: 1-374 notafile const scalar, ord=0 ; DEF: 1-437 notpredef const scalar, ord=0 ; DEF: 1-439 npksize field disp:200, size:4 ; integer ; DEF: 1-535 ntwotobyte * const numeric ; DEF: 1-89 ntwotohword * const numeric ; DEF: 1-90 number field disp:0, size:4 ; integer ; DEF: 1-642 numberstring * type packed array of (char) ; DEF: 1-397 o41 * const numeric ; DEF: 1-144 o43 * const numeric ; DEF: 1-145 objaccedes field disp:140, size:10 ; set of (scalar) ; DEF: 1-527 occur field disp:10, size:4 ; scalar ; DEF: 1-634 occurence * type record ; DEF: 1-670 on field disp:0, size:4 ; boolean ; DEF: 1-486 p0t0r1 const scalar, ord=1 ; DEF: 1-791 p0t1r0 const scalar, ord=2 ; DEF: 1-791 p0t1r1 const scalar, ord=3 ; DEF: 1-791 p1t0r0 const scalar, ord=4 ; DEF: 1-791 p1t0r1 const scalar, ord=5 ; DEF: 1-791 p1t1r0 const scalar, ord=6 ; DEF: 1-791 p1t1r1 const scalar, ord=7 ; DEF: 1-791 packednil * const numeric ; DEF: 1-77 pageplace * const numeric ; DEF: 1-171 parameter_count field disp:140, size:4 ; integer ; DEF: 1-520 pascdebstacklocal * const numeric ; DEF: 1-130 pascoperatorsdep * const numeric ; DEF: 1-232 passparams * proc level 0, exportable ; DEF: 1025 ; REF: 124 pckerrcode * const numeric ; DEF: 1-254 pclength * const numeric ; DEF: 1-321 permanentfile const scalar, ord=1 ; DEF: 1-437 pextcalltrapinfoplace field disp:360, size:4 ; integer ; DEF: 1-594 phl * const numeric ; DEF: 1-323 pisrefincode field disp:204, size:4 ; boolean ; DEF: 1-575 place field disp:14, size:4 ; integer ; DEF: 1-430 place field disp:4, size:4 ; numeric -131072..131071 ; DEF: 1-671 ploc field disp:214, size:4 ; scalar ; DEF: 1-577 ppksize field disp:200, size:4 ; integer ; DEF: 1-543 pr2 const scalar, ord=2 ; DEF: 1-774 pr7 const scalar, ord=4 ; DEF: 1-774 prderrcode * const numeric ; DEF: 1-246 predbloc field disp:20, size:10 ; pointer ; DEF: 1-822 previous field disp:0, size:10 ; pointer ; DEF: 1-403 previous field disp:0, size:10 ; pointer ; DEF: 1-656 previous field disp:0, size:10 ; pointer ; DEF: 1-665 previousnode field disp:0, size:10 ; pointer ; DEF: 1-474 priorityplace * const numeric ; DEF: 1-369 procaccesslevel field disp:240, size:4 ; numeric 0..20 ; DEF: 1-581 procdef field disp:340, size:4 ; scalar ; DEF: 1-590 proce field disp:20, size:10 ; pointer ; DEF: 1-469 processentryplace * const numeric ; DEF: 1-354 processlocaldplmt * const numeric ; DEF: 1-348 processreturnplace * const numeric ; DEF: 1-357 processus field disp:244, size:4 ; boolean ; DEF: 1-582 procextitem field disp:220, size:10 ; pointer ; DEF: 1-578 procfatherdisp * const numeric ; DEF: 1-340 procfirstexit field disp:310, size:10 ; pointer ; DEF: 1-586 procfirsttofinit field disp:320, size:10 ; pointer ; DEF: 1-587 procincbloc field disp:300, size:4 ; scalar ; DEF: 1-585 procinscope field disp:200, size:4 ; boolean ; DEF: 1-575 procisactive field disp:354, size:4 ; boolean ; DEF: 1-593 procisassigned field disp:170, size:4 ; boolean ; DEF: 1-575 procmodlkw * const numeric ; DEF: 1-341 procnode field disp:270, size:10 ; pointer ; DEF: 1-584 procnode field disp:30, size:10 ; pointer ; DEF: 1-646 procstackinitsize field disp:330, size:4 ; integer ; DEF: 1-588 procwasforwarddef field disp:334, size:4 ; boolean ; DEF: 1-589 prof * const numeric ; DEF: 1-333 profareaptr * type pointer ; DEF: 1-933 psr const scalar, ord=24 ; DEF: 1-776 psrdepb * const numeric ; DEF: 1-284 psrdepw * const numeric ; DEF: 1-283 psrinbytes * const numeric ; DEF: 1-113 psrsize field disp:30, size:4 ; integer ; DEF: 1-891 ptentr field disp:240, size:10 ; pointer ; DEF: 1-560 ptlimit * const numeric ; DEF: 1-14 ptpar field disp:220, size:10 ; pointer ; DEF: 1-560 ptpksize field disp:200, size:4 ; integer ; DEF: 1-541 ptvarloc field disp:230, size:10 ; pointer ; DEF: 1-560 ptypesymbolplace field disp:230, size:4 ; integer ; DEF: 1-579 pure field disp:250, size:4 ; boolean ; DEF: 1-582 pureentryplace * const numeric ; DEF: 1-377 putdirplace * const numeric ; DEF: 1-184 putseqplace * const numeric ; DEF: 1-173 puttextplace * const numeric ; DEF: 1-172 racmaxint * const numeric ; DEF: 1-87 rafltplace * const numeric ; DEF: 1-182 randinterrcode * const numeric ; DEF: 1-258 randintplace * const numeric ; DEF: 1-376 raq const scalar, ord=22 ; DEF: 1-776 re const scalar, ord=25 ; DEF: 1-776 readlnplace * const numeric ; DEF: 1-167 readseqplace * const numeric ; DEF: 1-166 readtextplace * const numeric ; DEF: 1-165 realtype field disp:200, size:10 ; pointer ; DEF: 1-563 recidscope * type record ; DEF: 1-632 recordptr field disp:110, size:10 ; pointer ; DEF: 1-957 recur field disp:234, size:4 ; integer ; DEF: 1-580 recursive field disp:10, size:4 ; boolean ; DEF: 1-467 recvar field disp:200, size:10 ; pointer ; DEF: 1-554 ref_allowed field disp:70, size:10 ; record ; DEF: 1-650 references field disp:70, size:10 ; pointer ; DEF: 1-512 references field disp:60, size:10 ; pointer ; DEF: 1-649 refnbr field disp:10, size:4 ; integer ; DEF: 1-428 refs field disp:14, size:620 ; array of (record) ; DEF: 1-429 regcharge * var global imported, size:154 ; array of (boolean) ; DEF: 171 ; REF: 116 remanentfile const scalar, ord=8 ; DEF: 1-442 requiredfile const scalar, ord=9 ; DEF: 1-443 reset_stack_end_op_place * const numeric ; DEF: 1-227 resetheapplace * const numeric ; DEF: 1-179 resetplace * const numeric ; DEF: 1-162 restorprevmoplace * const numeric ; DEF: 1-380 returnzeroplace * const numeric ; DEF: 1-192 rewriteplace * const numeric ; DEF: 1-163 ri const scalar, ord=26 ; DEF: 1-776 rnext field disp:20, size:10 ; pointer ; DEF: 1-836 roundplace * const numeric ; DEF: 1-181 rplace field disp:10, size:4 ; integer ; DEF: 1-835 rqfltplace * const numeric ; DEF: 1-183 rsval field disp:20, size:10 ; real ; DEF: 1-903 runtimeentry const scalar, ord=10 ; DEF: 1-443 rvalu field disp:0, size:10 ; real ; DEF: 1-834 s0 const scalar, ord=0 ; DEF: 1-807 s1 const scalar, ord=1 ; DEF: 1-807 s2 const scalar, ord=2 ; DEF: 1-807 s3 const scalar, ord=3 ; DEF: 1-807 s4 const scalar, ord=4 ; DEF: 1-807 s5 const scalar, ord=5 ; DEF: 1-807 savearglistplace * const numeric ; DEF: 1-359 scaleplacew * const numeric ; DEF: 1-292 schema_ptr field disp:10, size:10 ; pointer ; DEF: 1-487 schema_status * type record ; DEF: 1-485 scientplace * const numeric ; DEF: 1-161 segsize field disp:154, size:4 ; integer ; DEF: 1-574 selectorfield field disp:150, size:10 ; pointer ; DEF: 1-613 self_rel * const numeric ; DEF: 1-331 seterrcode * const numeric ; DEF: 1-255 setinargs field disp:60, size:4 ; boolean ; DEF: 1-967 setlength field disp:220, size:4 ; integer ; DEF: 1-545 setofno * type set of (numeric 0..63) ; DEF: 1-434 settinginactivequeueplace * const numeric ; DEF: 1-355 signalplace * const numeric ; DEF: 1-365 simainentryplace * const numeric ; DEF: 1-351 simdebstacklocal * const numeric ; DEF: 1-131 simextentryplace * const numeric ; DEF: 1-378 simintentryplace * const numeric ; DEF: 1-352 simintreturnplace * const numeric ; DEF: 1-353 sizemax field disp:14, size:4 ; integer ; DEF: 1-468 smax field disp:214, size:4 ; integer ; DEF: 1-539 smin field disp:210, size:4 ; integer ; DEF: 1-539 solstandardbit * const numeric ; DEF: 1-239 son field disp:20, size:10 ; pointer ; DEF: 1-941 spksize field disp:200, size:4 ; integer ; DEF: 1-536 sptcstepw field disp:220, size:10 ; pointer ; DEF: 1-538 sreadcharplace * const numeric ; DEF: 1-212 sreadintegerplace * const numeric ; DEF: 1-213 sreadrealplace * const numeric ; DEF: 1-214 sregister field disp:0, size:4 ; scalar ; DEF: 1-819 stack_extension * proc level 0, imported ; DEF: 196 ; REF: 43 stackboundary * const numeric ; DEF: 1-128 standardfile const scalar, ord=4 ; DEF: 1-437 standdef const scalar, ord=0 ; DEF: 1-417 start field disp:30, size:4 ; integer ; DEF: 1-667 statics const scalar, ord=0 ; DEF: 1-939 stdcompiler const scalar, ord=1 ; DEF: 1-435 stdcomputer const scalar, ord=4 ; DEF: 1-435 stdsol const scalar, ord=2 ; DEF: 1-435 stopextplace * const numeric ; DEF: 1-211 stopplace * const numeric ; DEF: 1-210 stopshortplace * const numeric ; DEF: 1-209 stringlength_assignment_error * const numeric ; DEF: 1-260 stringlength_range_error * const numeric ; DEF: 1-259 structureplace field disp:70, size:4 ; integer ; DEF: 1-947 sttmapind field disp:10, size:4 ; integer ; DEF: 1-430 sttmapptr * type pointer ; DEF: 1-924 stwotobyte * const numeric ; DEF: 1-91 subrng field disp:204, size:4 ; boolean ; DEF: 1-537 subroutine const scalar, ord=1 ; DEF: 1-462 substring_negative_length_error * const numeric ; DEF: 1-262 substring_offset_error * const numeric ; DEF: 1-261 substring_too_long_error * const numeric ; DEF: 1-263 succ field disp:120, size:10 ; pointer ; DEF: 1-565 succ field disp:0, size:4 ; numeric -131072..131071 ; DEF: 1-671 sucerrcode * const numeric ; DEF: 1-247 swritebooleanplace * const numeric ; DEF: 1-218 swritecharplace * const numeric ; DEF: 1-215 swriteenumplace * const numeric ; DEF: 1-222 swriteintegerplace * const numeric ; DEF: 1-219 swriterealdplace * const numeric ; DEF: 1-221 swriterealeplace * const numeric ; DEF: 1-220 swritestringplace * const numeric ; DEF: 1-216 swritesubstringplace * const numeric ; DEF: 1-217 sxl const scalar, ord=2 ; DEF: 1-918 symb * const numeric ; DEF: 1-335 symbolplace field disp:100, size:4 ; integer ; DEF: 1-513 symbtablerefs field disp:104, size:4 ; integer ; DEF: 1-514 t_char_value field disp:14, size:4 ; char ; DEF: 1-499 t_int_value field disp:14, size:4 ; integer ; DEF: 1-497 t_real_value field disp:20, size:10 ; real ; DEF: 1-498 tad const scalar, ord=43 ; DEF: 1-771 tagval field disp:130, size:4 ; boolean ; DEF: 1-612 taly const scalar, ord=21 ; DEF: 1-768 tau const scalar, ord=1 ; DEF: 1-766 tauy const scalar, ord=17 ; DEF: 1-768 taval field disp:14, size:40 ; packed array of (char) ; DEF: 1-496 tci const scalar, ord=40 ; DEF: 1-771 tcl field disp:20, size:4 ; integer ; DEF: 1-495 tdi const scalar, ord=44 ; DEF: 1-771 tdic const scalar, ord=45 ; DEF: 1-771 temporary field disp:144, size:4 ; boolean ; DEF: 1-883 terminateplace * const numeric ; DEF: 1-371 tf1 const scalar, ord=32 ; DEF: 1-770 tf2 const scalar, ord=38 ; DEF: 1-770 tf3 const scalar, ord=39 ; DEF: 1-770 ti const scalar, ord=41 ; DEF: 1-771 ticy const scalar, ord=20 ; DEF: 1-768 tid const scalar, ord=46 ; DEF: 1-771 tidc const scalar, ord=47 ; DEF: 1-771 timeopplace * const numeric ; DEF: 1-197 titp const scalar, ord=33 ; DEF: 1-770 tits const scalar, ord=35 ; DEF: 1-770 tlevel field disp:130, size:4 ; numeric 0..20 ; DEF: 1-526 tno field disp:14, size:4 ; integer ; DEF: 1-495 token_list field disp:150, size:10 ; pointer ; DEF: 1-521 top_for_schema field disp:114, size:4 ; integer ; DEF: 1-517 tqly const scalar, ord=22 ; DEF: 1-768 tqu const scalar, ord=2 ; DEF: 1-766 tquy const scalar, ord=18 ; DEF: 1-768 transf field disp:34, size:4 ; integer ; DEF: 1-912 transoptvptr * const numeric ; DEF: 1-230 truncplace * const numeric ; DEF: 1-180 tsc const scalar, ord=42 ; DEF: 1-771 tscr const scalar, ord=37 ; DEF: 1-770 tsd const scalar, ord=36 ; DEF: 1-770 twoto18m1 * const numeric ; DEF: 1-58 twoto27 * const numeric ; DEF: 1-59 tx0 const scalar, ord=8 ; DEF: 1-767 tx0y const scalar, ord=24 ; DEF: 1-769 tx1 const scalar, ord=9 ; DEF: 1-767 tx1y const scalar, ord=25 ; DEF: 1-769 tx2 const scalar, ord=10 ; DEF: 1-767 tx2y const scalar, ord=26 ; DEF: 1-769 tx3 const scalar, ord=11 ; DEF: 1-767 tx3y const scalar, ord=27 ; DEF: 1-769 tx4 const scalar, ord=12 ; DEF: 1-767 tx4y const scalar, ord=28 ; DEF: 1-769 tx5 const scalar, ord=13 ; DEF: 1-767 tx5y const scalar, ord=29 ; DEF: 1-769 tx6y const scalar, ord=30 ; DEF: 1-769 tx7y const scalar, ord=31 ; DEF: 1-769 tyal const scalar, ord=53 ; DEF: 1-772 tyau const scalar, ord=49 ; DEF: 1-772 tydl const scalar, ord=55 ; DEF: 1-772 tydu const scalar, ord=51 ; DEF: 1-772 tyic const scalar, ord=52 ; DEF: 1-772 type_description field disp:160, size:10 ; pointer ; DEF: 1-522 typix * type scalar ; DEF: 1-918 typofconst field disp:140, size:4 ; scalar ; DEF: 1-566 typofsymb * type scalar ; DEF: 1-669 typset field disp:220, size:10 ; pointer ; DEF: 1-540 typsig * type scalar ; DEF: 1-786 typusednames * type array of (array of (char)) ; DEF: 1-436 tyql const scalar, ord=54 ; DEF: 1-772 tyqu const scalar, ord=50 ; DEF: 1-772 tyx0 const scalar, ord=56 ; DEF: 1-773 tyx1 const scalar, ord=57 ; DEF: 1-773 tyx2 const scalar, ord=58 ; DEF: 1-773 tyx3 const scalar, ord=59 ; DEF: 1-773 tyx4 const scalar, ord=60 ; DEF: 1-773 tyx5 const scalar, ord=61 ; DEF: 1-773 tyx6 const scalar, ord=62 ; DEF: 1-773 tyx7 const scalar, ord=63 ; DEF: 1-773 tz23 const scalar, ord=19 ; DEF: 1-768 tz27 const scalar, ord=23 ; DEF: 1-768 tz42 const scalar, ord=34 ; DEF: 1-770 tz60 const scalar, ord=48 ; DEF: 1-772 unddeb field disp:170, size:4 ; integer ; DEF: 1-570 undmax * const numeric ; DEF: 1-21 uniformplace * const numeric ; DEF: 1-373 usednamesptr * type pointer ; DEF: 1-974 vaddr field disp:140, size:4 ; integer ; DEF: 1-599 valplacew * const numeric ; DEF: 1-290 valreel field disp:150, size:10 ; real ; DEF: 1-568 valu field disp:0, size:4 ; integer ; DEF: 1-829 variable * proc level 0, exportable ; DEF: 315 ; REF: 125 variants field disp:120, size:10 ; pointer ; DEF: 1-611 varmo field disp:220, size:4 ; boolean ; DEF: 1-605 vdispl field disp:144, size:4 ; integer ; DEF: 1-600 vdspl field disp:340, size:4 ; integer ; DEF: 1-637 vfather field disp:230, size:10 ; pointer ; DEF: 1-606 vfilelocation field disp:134, size:4 ; scalar ; DEF: 1-598 visreadonly field disp:174, size:4 ; boolean ; DEF: 1-603 visrefincode field disp:204, size:4 ; boolean ; DEF: 1-603 visset field disp:170, size:4 ; boolean ; DEF: 1-603 visused field disp:164, size:4 ; boolean ; DEF: 1-603 vlevel field disp:154, size:4 ; numeric 0..20 ; DEF: 1-601 vlink_is_generated field disp:160, size:4 ; boolean ; DEF: 1-602 vmo field disp:140, size:4 ; boolean ; DEF: 1-882 vnexttofinit field disp:210, size:10 ; pointer ; DEF: 1-604 vpack field disp:344, size:4 ; boolean ; DEF: 1-637 vptextitem field disp:240, size:10 ; pointer ; DEF: 1-607 vreflist field disp:20, size:320 ; record ; DEF: 1-637 vtimeplace * const numeric ; DEF: 1-370 waitplace * const numeric ; DEF: 1-366 waitsonsplace * const numeric ; DEF: 1-356 wbase field disp:54, size:4 ; scalar ; DEF: 1-953 wdispl field disp:60, size:4 ; integer ; DEF: 1-954 windirect field disp:64, size:4 ; boolean ; DEF: 1-955 word1 field disp:0, size:4 ; integer ; DEF: 1-927 word2 field disp:4, size:4 ; integer ; DEF: 1-928 workfile const scalar, ord=2 ; DEF: 1-437 writelnplace * const numeric ; DEF: 1-170 writeseqplace * const numeric ; DEF: 1-169 writetextplace * const numeric ; DEF: 1-168 wstrfile field disp:70, size:4 ; integer ; DEF: 1-956 wstrindex field disp:74, size:4 ; integer ; DEF: 1-956 wstrlength field disp:100, size:4 ; integer ; DEF: 1-956 x0 const scalar, ord=11 ; DEF: 1-775 x1 const scalar, ord=12 ; DEF: 1-775 x2 const scalar, ord=13 ; DEF: 1-775 x3 const scalar, ord=14 ; DEF: 1-775 x4 const scalar, ord=15 ; DEF: 1-775 x5 const scalar, ord=16 ; DEF: 1-775 x6 const scalar, ord=17 ; DEF: 1-775 x7 const scalar, ord=18 ; DEF: 1-775 xbidon const scalar, ord=19 ; DEF: 1-776 zabc * type scalar ; DEF: 1-795 NAMES DECLARED BY DEFAULT boolean type boolean ; REF: 1-456 1-467 1-486 1-525 1-537 1-548 1-575 1-576 1-582 1-589 1-591 1-593 1-595 1-602 1-603 1-605 1-612 1-637 1-870 1-878 1-882 1-883 1-911 1-920 1-955 1-967 139 148 162 167 174 178 188 193 195 198 202 205 207 224 228 230 315 342 344 349 356 358 1063 1079 1081 1085 1118 1125 1129 char type char ; REF: 1-397 1-398 1-399 1-400 1-422 1-499 false const scalar, ord=0 ; REF: 1-538 1-549 1-613 396 407 417 418 438 455 466 579 609 651 654 685 721 744 752 757 863 875 915 931 938 973 1141 1151 1155 1158 1165 1175 1185 1196 1203 1337 1350 1353 1423 1426 1459 1472 1572 1643 1666 1690 1715 1723 1824 1873 integer type integer ; REF: 1-397 1-398 1-399 1-400 1-418 1-422 1-423 1-428 1-429 1-430 1-434 1-436 1-449 1-453 1-454 1-455 1-468 1-481 1-495 1-497 1-511 1-513 1-514 1-517 1-520 1-524 1-531 1-535 1-536 1-539 1-541 1-543 1-545 1-549 1-559 1-567 1-570 1-574 1-579 1-580 1-588 1-592 1-594 1-599 1-600 1-609 1-610 1-614 1-619 1-620 1-621 1-627 1-628 1-636 1-637 1-642 1-643 1-647 1-648 1-651 1-660 1-667 1-809 1-810 1-815 1-815 1-820 1-829 1-830 1-835 1-840 1-845 1-861 1-868 1-877 1-891 1-902 1-905 1-912 1-925 1-927 1-928 1-934 1-934 1-942 1-947 1-950 1-954 1-956 1-973 143 146 147 153 154 179 183 185 186 188 190 192 192 203 203 206 208 212 214 216 216 218 220 220 242 243 244 245 245 246 261 338 339 351 354 357 359 361 362 365 1025 1065 1067 1073 1074 1076 1077 1078 1080 1084 1086 1103 ord funct level 0 ; (standard) ; REF: 668 669 775 776 1756 1926 real type real ; REF: 1-498 1-568 1-834 1-903 text type text ; REF: 142 true const scalar, ord=1 ; REF: 1-539 1-550 1-614 412 423 443 446 497 605 644 734 844 870 919 921 940 944 948 963 976 978 988 1151 1164 1169 1336 1356 1360 1443 1475 1479 1726 1730 1878 1880 1884 write proc level 0 ; REF: 274 305 393 564 565 567 569 571 667 668 671 673 675 774 775 778 780 782 1019 1147 1211 1225 2048 LABELS BLOCK NAME 1 passparams DCL : 1060 ; DEF: 2044 ; REF: 1266 2 passparams DCL : 1059 ; DEF: 1976 ; REF: 1980 STATEMENT MAP FILE LINE ST LOC FILE LINE ST LOC FILE LINE ST LOC FILE LINE ST LOC FILE LINE ST LOC FILE LINE ST LOC 253 1 0 269 1 15 272 1 20 274 1 23 274 2 34 278 1 42 279 1 45 280 1 47 281 1 53 282 1 60 282 2 67 284 1 70 285 1 76 286 1 161 287 1 236 288 1 247 290 1 251 292 1 265 293 1 275 295 1 277 295 2 302 295 3 314 296 1 317 297 1 322 297 2 334 303 1 337 305 1 342 305 2 353 309 1 361 309 1 362 372 1 410 375 1 415 376 1 422 378 1 426 379 1 433 381 1 450 382 1 453 383 1 456 385 1 461 387 1 464 387 1 465 315 1 472 391 1 507 393 1 511 394 1 522 396 1 530 399 1 531 400 1 533 401 1 562 405 1 563 405 2 565 405 3 567 406 1 571 407 1 577 408 1 600 409 1 601 412 1 614 414 1 616 416 1 621 417 1 632 418 1 633 419 1 634 420 1 640 421 1 642 423 1 666 424 1 670 425 1 672 426 1 702 428 1 716 428 2 727 430 1 735 431 1 751 431 2 762 434 1 763 434 2 765 434 3 776 435 1 1000 438 1 1001 439 1 1002 439 2 1010 440 1 1016 441 1 1036 443 1 1062 443 2 1064 445 1 1076 446 1 1101 446 2 1103 447 1 1116 448 1 1124 450 1 1126 451 1 1130 453 1 1133 455 1 1145 455 2 1147 456 1 1165 459 1 1202 460 1 1204 464 1 1221 466 1 1233 466 2 1235 468 1 1254 469 1 1256 472 1 1316 473 1 1330 474 1 1332 476 1 1401 477 1 1426 478 1 1436 480 1 1440 480 2 1442 481 1 1470 482 1 1544 482 2 1546 483 1 1574 484 1 1612 485 1 1637 489 1 1655 491 1 1670 491 2 1676 492 1 1753 492 2 1764 494 1 1766 495 1 2043 496 1 2046 497 1 2050 500 1 2052 503 1 2054 508 1 2056 510 1 2062 512 1 2066 513 1 2070 515 1 2103 516 1 2105 518 1 2112 520 1 2130 522 1 2132 523 1 2155 525 1 2200 527 1 2202 528 1 2204 530 1 2223 531 1 2226 533 1 2232 536 1 2246 537 1 2265 539 1 2311 540 1 2323 543 1 2351 550 1 2353 550 2 2361 552 1 2367 553 1 2373 554 1 2377 556 1 2403 557 1 2424 558 1 2450 562 1 2463 564 1 2466 564 2 2477 565 1 2505 566 1 2557 567 1 2565 567 2 2576 568 1 2604 569 1 2614 569 2 2625 570 1 2633 571 1 2643 571 2 2654 574 1 2662 576 1 2664 577 1 2670 578 1 2714 579 1 2730 579 2 2731 579 3 2733 582 1 2736 583 1 2741 584 1 2744 586 1 2765 587 1 2770 589 1 2773 591 1 3006 592 1 3020 593 1 3023 594 1 3026 595 1 3054 596 1 3056 597 1 3061 598 1 3063 600 1 3065 602 1 3071 603 1 3076 604 1 3103 605 1 3126 606 1 3130 607 1 3132 609 1 3156 610 1 3157 612 1 3163 615 1 3203 617 1 3205 618 1 3230 620 1 3232 621 1 3244 622 1 3301 622 2 3303 623 1 3331 625 1 3370 627 1 3372 628 1 3413 629 1 3441 630 1 3443 631 1 3471 634 1 3517 636 1 3521 637 1 3523 638 1 3551 638 2 3567 639 1 3615 642 1 3634 644 1 3636 645 1 3640 646 1 3643 647 1 3646 648 1 3651 649 1 3665 651 1 3667 652 1 3670 653 1 3672 654 1 3675 656 1 3676 657 1 3700 665 1 3723 667 1 3726 667 2 3737 668 1 3745 669 1 4001 671 1 4007 671 2 4020 672 1 4026 673 1 4036 673 2 4047 674 1 4055 675 1 4065 675 2 4076 678 1 4104 680 1 4110 683 1 4112 684 1 4124 685 1 4161 686 1 4177 687 1 4235 689 1 4237 690 1 4247 693 1 4250 694 1 4262 694 2 4265 695 1 4323 696 1 4360 697 1 4371 699 1 4372 705 1 4376 707 1 4401 709 1 4433 710 1 4436 712 1 4475 714 1 4477 715 1 4502 718 1 4552 720 1 4554 721 1 4570 722 1 4606 723 1 4637 728 1 4642 731 1 4656 731 2 4667 732 1 4671 733 1 4672 733 2 4674 734 1 4676 734 2 4677 735 1 4701 735 2 4702 738 1 4704 739 1 4706 741 1 4755 743 1 4757 744 1 4773 745 1 5011 746 1 5027 748 1 5031 750 1 5035 752 1 5040 753 1 5056 754 1 5060 757 1 5107 758 1 5125 760 1 5153 763 1 5201 765 1 5236 766 1 5313 767 1 5324 772 1 5325 774 1 5330 774 2 5341 775 1 5347 776 1 5403 778 1 5411 778 2 5422 779 1 5430 780 1 5440 780 2 5451 781 1 5457 782 1 5467 782 2 5500 785 1 5506 788 1 5510 790 1 5513 791 1 5524 793 1 5530 795 1 5533 797 1 5535 801 1 5541 804 1 5613 805 1 5623 809 1 5627 811 1 5631 813 1 5634 814 1 5645 815 1 5650 816 1 5660 819 1 5664 820 1 5702 821 1 5733 822 1 5736 824 1 5750 824 2 5760 825 1 5762 830 1 5766 832 1 5771 834 1 6043 835 1 6053 836 1 6056 839 1 6070 840 1 6072 842 1 6124 843 1 6155 844 1 6173 845 1 6175 847 1 6226 849 1 6231 849 2 6241 850 1 6243 852 1 6247 859 1 6260 862 1 6263 863 1 6266 864 1 6270 866 1 6273 866 2 6301 869 1 6320 870 1 6326 870 2 6340 872 1 6342 874 1 6344 875 1 6355 877 1 6357 879 1 6362 881 1 6364 882 1 6371 884 1 6373 885 1 6401 886 1 6414 886 2 6440 887 1 6445 890 1 6446 891 1 6454 891 2 6456 891 3 6460 892 1 6462 894 1 6465 894 2 6477 898 1 6502 899 1 6506 901 1 6512 901 2 6524 904 1 6527 905 1 6542 907 1 6546 907 2 6560 910 1 6563 911 1 6565 912 1 6567 914 1 6572 915 1 6576 916 1 6577 917 1 6602 919 1 6636 920 1 6641 921 1 6647 922 1 6651 923 1 6654 924 1 6656 925 1 6660 929 1 6662 931 1 6670 935 1 6672 936 1 6676 938 1 6702 939 1 6703 940 1 6706 941 1 6711 943 1 6713 944 1 6731 946 1 6734 947 1 6737 948 1 6756 949 1 6760 950 1 6762 952 1 6777 952 2 7001 952 3 7002 954 1 7004 956 1 7010 958 1 7014 959 1 7016 961 1 7025 963 1 7030 964 1 7046 965 1 7056 967 1 7060 968 1 7120 969 1 7122 969 2 7124 969 3 7125 970 1 7126 972 1 7154 973 1 7156 974 1 7157 975 1 7162 976 1 7202 977 1 7205 978 1 7213 979 1 7215 980 1 7220 981 1 7222 982 1 7224 985 1 7227 985 2 7241 987 1 7243 988 1 7251 991 1 7254 993 1 7256 994 1 7263 996 1 7265 997 1 7273 998 1 7306 998 2 7332 999 1 7337 1002 1 7341 1003 1 7347 1004 1 7362 1004 2 7364 1005 1 7411 1005 2 7435 1006 1 7442 1008 1 7444 1009 1 7455 1010 1 7463 1010 2 7511 1013 1 7516 1015 1 7522 1017 1 7525 1018 1 7535 1019 1 7545 1019 2 7564 1022 1 7572 1022 1 7573 1092 1 7764 1105 1 7775 1106 1 10017 1107 1 10022 1109 1 10061 1110 1 10117 1111 1 10127 1111 2 10174 1113 1 10201 1129 1 10202 1134 1 10213 1138 1 10273 1141 1 10334 1142 1 10337 1142 1 10343 1118 1 10352 1145 1 10363 1147 1 10365 1147 2 10376 1150 1 10405 1150 2 10411 1151 1 10415 1151 2 10417 1152 1 10420 1154 1 10431 1155 1 10435 1157 1 10437 1158 1 10444 1160 1 10446 1161 1 10452 1163 1 10503 1164 1 10510 1165 1 10512 1165 2 10515 1166 1 10516 1167 1 10521 1169 1 10540 1170 1 10542 1171 1 10546 1172 1 10552 1174 1 10563 1175 1 10565 1178 1 10567 1179 1 10573 1180 1 10577 1181 1 10602 1182 1 10605 1183 1 10616 1185 1 10623 1186 1 10624 1187 1 10627 1190 1 10633 1192 1 10646 1192 2 10651 1196 1 10655 1196 2 10676 1199 1 10677 1200 1 10701 1202 1 10712 1203 1 10723 1204 1 10725 1206 1 10754 1207 1 11000 1209 1 11013 1211 1 11016 1212 1 11035 1215 1 11044 1215 1 11050 1025 1 11077 1223 1 11114 1225 1 11116 1225 2 11135 1228 1 11143 1230 1 11146 1231 1 11171 1232 1 11174 1233 1 11213 1234 1 11232 1235 1 11251 1236 1 11254 1237 1 11262 1238 1 11265 1239 1 11277 1241 1 11301 1243 1 11303 1244 1 11307 1245 1 11314 1246 1 11320 1247 1 11336 1248 1 11346 1250 1 11355 1251 1 11367 1252 1 11371 1253 1 11373 1254 1 11421 1254 2 11423 1255 1 11425 1256 1 11447 1257 1 11512 1259 1 11561 1261 1 11564 1261 2 11566 1262 1 11570 1262 2 11571 1264 1 11572 1266 1 11576 1266 2 11610 1266 3 11622 1268 1 11623 1269 1 11642 1270 1 11644 1271 1 11656 1272 1 11664 1274 1 11666 1275 1 11671 1275 2 11703 1278 1 11716 1279 1 11724 1280 1 11730 1282 1 11743 1282 2 11745 1283 1 11767 1284 1 11772 1285 1 11776 1286 1 12011 1287 1 12032 1289 1 12045 1289 2 12050 1290 1 12062 1292 1 12066 1293 1 12107 1294 1 12113 1296 1 12143 1297 1 12170 1299 1 12217 1300 1 12251 1301 1 12277 1301 2 12303 1302 1 12306 1302 2 12310 1302 3 12323 1303 1 12325 1304 1 12353 1308 1 12402 1309 1 12404 1310 1 12432 1313 1 12461 1314 1 12465 1316 1 12470 1316 2 12503 1317 1 12513 1319 1 12524 1320 1 12526 1321 1 12567 1322 1 12615 1324 1 12617 1325 1 12645 1328 1 12673 1331 1 12676 1334 1 12705 1336 1 12707 1337 1 12721 1338 1 12722 1339 1 12724 1340 1 12730 1342 1 12735 1343 1 12744 1344 1 12754 1346 1 12763 1346 2 12777 1349 1 13012 1349 2 13015 1350 1 13017 1351 1 13020 1353 1 13027 1354 1 13030 1356 1 13037 1356 2 13041 1360 1 13054 1361 1 13056 1362 1 13060 1364 1 13062 1366 1 13064 1368 1 13072 1370 1 13077 1371 1 13113 1372 1 13162 1376 1 13174 1377 1 13210 1379 1 13236 1381 1 13240 1382 1 13243 1383 1 13244 1385 1 13250 1385 2 13253 1387 1 13257 1388 1 13262 1389 1 13304 1390 1 13317 1390 2 13321 1391 1 13323 1392 1 13345 1393 1 13415 1395 1 13456 1396 1 13467 1397 1 13475 1398 1 13543 1399 1 13613 1400 1 13623 1403 1 13627 1404 1 13643 1406 1 13671 1409 1 13673 1410 1 13676 1411 1 13677 1413 1 13703 1413 2 13706 1415 1 13712 1416 1 13715 1417 1 13737 1417 2 13743 1417 3 13745 1418 1 13747 1419 1 13767 1420 1 14016 1421 1 14021 1423 1 14025 1424 1 14043 1426 1 14047 1427 1 14067 1428 1 14103 1430 1 14114 1431 1 14133 1433 1 14162 1434 1 14165 1438 1 14171 1439 1 14217 1440 1 14247 1443 1 14252 1445 1 14254 1446 1 14256 1446 2 14266 1447 1 14301 1449 1 14311 1450 1 14325 1452 1 14344 1453 1 14372 1453 2 14420 1455 1 14424 1456 1 14443 1458 1 14456 1458 2 14461 1459 1 14463 1460 1 14464 1462 1 14506 1464 1 14520 1466 1 14524 1470 1 14531 1472 1 14540 1473 1 14541 1475 1 14550 1475 2 14552 1479 1 14565 1480 1 14567 1481 1 14571 1483 1 14573 1485 1 14575 1488 1 14613 1490 1 14620 1491 1 14634 1492 1 14703 1496 1 14715 1497 1 14731 1499 1 14757 1501 1 14761 1502 1 14763 1503 1 14764 1505 1 15002 1506 1 15005 1507 1 15010 1509 1 15016 1510 1 15036 1511 1 15061 1513 1 15063 1514 1 15071 1515 1 15141 1515 2 15143 1516 1 15145 1517 1 15167 1518 1 15236 1519 1 15276 1521 1 15306 1522 1 15321 1523 1 15343 1524 1 15412 1526 1 15452 1528 1 15463 1529 1 15471 1530 1 15537 1531 1 15607 1533 1 15617 1538 1 15623 1539 1 15637 1541 1 15665 1544 1 15667 1545 1 15671 1546 1 15672 1548 1 15710 1549 1 15713 1553 1 15717 1554 1 15754 1555 1 15774 1557 1 15776 1558 1 16004 1559 1 16054 1559 2 16056 1560 1 16060 1561 1 16102 1562 1 16151 1563 1 16211 1567 1 16221 1567 2 16223 1567 3 16225 1568 1 16243 1571 1 16261 1572 1 16264 1572 2 16302 1573 1 16320 1576 1 16347 1577 1 16352 1578 1 16370 1581 1 16420 1582 1 16423 1583 1 16456 1584 1 16506 1585 1 16524 1588 1 16554 1589 1 16557 1589 2 16562 1590 1 16565 1595 1 16573 1596 1 16621 1597 1 16651 1605 1 16655 1606 1 16663 1607 1 16665 1609 1 16671 1610 1 16712 1612 1 16716 1613 1 16724 1614 1 16736 1617 1 16746 1618 1 16755 1619 1 16764 1620 1 16765 1621 1 17007 1623 1 17020 1624 1 17034 1625 1 17062 1626 1 17110 1627 1 17127 1627 2 17131 1628 1 17133 1629 1 17155 1630 1 17213 1631 1 17251 1632 1 17254 1634 1 17304 1635 1 17332 1637 1 17361 1639 1 17370 1639 2 17374 1641 1 17407 1643 1 17421 1643 2 17423 1644 1 17441 1647 1 17456 1648 1 17460 1650 1 17474 1651 1 17504 1652 1 17552 1653 1 17621 1654 1 17667 1655 1 17735 1656 1 17740 1658 1 17770 1659 1 20016 1661 1 20045 1663 1 20061 1665 1 20077 1666 1 20113 1667 1 20131 1669 1 20135 1669 2 20143 1670 1 20155 1673 1 20177 1673 2 20204 1674 1 20216 1676 1 20236 1676 2 20240 1677 1 20242 1678 1 20270 1679 1 20312 1680 1 20350 1681 1 20407 1682 1 20412 1684 1 20442 1685 1 20470 1689 1 20517 1690 1 20534 1691 1 20552 1692 1 20610 1693 1 20646 1694 1 20674 1695 1 20705 1696 1 20733 1696 2 20735 1697 1 20737 1698 1 20755 1699 1 21003 1699 2 21010 1700 1 21023 1701 1 21045 1702 1 21126 1703 1 21164 1704 1 21175 1705 1 21200 1706 1 21226 1708 1 21255 1709 1 21267 1712 1 21273 1714 1 21312 1714 2 21315 1715 1 21317 1716 1 21320 1718 1 21342 1721 1 21355 1723 1 21364 1724 1 21365 1726 1 21374 1726 2 21376 1730 1 21411 1731 1 21413 1732 1 21415 1734 1 21417 1737 1 21421 1739 1 21430 1740 1 21435 1740 2 21437 1743 1 21442 1744 1 21446 1744 2 21447 1747 1 21450 1748 1 21506 1751 1 21513 1752 1 21516 1753 1 21526 1753 2 21530 1755 1 21544 1756 1 21545 1757 1 21547 1758 1 21552 1760 1 21566 1760 2 21600 1761 1 21606 1763 1 21617 1765 1 21621 1766 1 21635 1766 2 21637 1766 3 21640 1769 1 21641 1771 1 21644 1771 2 21646 1771 3 21650 1771 4 21651 1774 1 21653 1774 2 21655 1774 3 21657 1775 1 21661 1776 1 21663 1777 1 21666 1779 1 21701 1780 1 21727 1782 1 21755 1784 1 21756 1785 1 22000 1785 2 22003 1786 1 22006 1787 1 22062 1788 1 22127 1789 1 22155 1791 1 22203 1794 1 22205 1795 1 22207 1796 1 22210 1798 1 22226 1799 1 22231 1802 1 22235 1804 1 22272 1805 1 22312 1807 1 22314 1808 1 22322 1809 1 22372 1809 2 22374 1810 1 22376 1811 1 22420 1812 1 22467 1813 1 22527 1817 1 22537 1817 2 22541 1817 3 22543 1818 1 22561 1821 1 22577 1822 1 22601 1823 1 22604 1824 1 22607 1824 2 22625 1825 1 22643 1828 1 22672 1829 1 22674 1830 1 22677 1831 1 22702 1832 1 22720 1835 1 22750 1836 1 22753 1837 1 23006 1838 1 23036 1839 1 23054 1842 1 23104 1843 1 23107 1843 2 23112 1844 1 23115 1849 1 23123 1850 1 23151 1851 1 23201 1855 1 23205 1859 1 23220 1860 1 23225 1861 1 23232 1861 2 23241 1863 1 23252 1863 2 23261 1864 1 23274 1865 1 23300 1866 1 23325 1868 1 23327 1868 2 23333 1869 1 23347 1871 1 23403 1873 1 23410 1874 1 23411 1875 1 23420 1876 1 23425 1878 1 23430 1878 2 23433 1880 1 23436 1880 2 23441 1883 1 23444 1884 1 23450 1884 2 23453 1886 1 23455 1886 2 23457 1888 1 23472 1889 1 23521 1890 1 23557 1893 1 23564 1894 1 23567 1895 1 23577 1896 1 23601 1898 1 23615 1900 1 23622 1901 1 23630 1904 1 23645 1905 1 23651 1907 1 23666 1908 1 23673 1909 1 23674 1911 1 23700 1912 1 23704 1913 1 23717 1914 1 23730 1916 1 23733 1917 1 23746 1919 1 23757 1920 1 24005 1921 1 24007 1922 1 24010 1924 1 24012 1926 1 24014 1926 2 24016 1928 1 24017 1929 1 24022 1931 1 24036 1932 1 24050 1933 1 24056 1935 1 24067 1937 1 24071 1938 1 24105 1939 1 24107 1940 1 24110 1942 1 24111 1943 1 24133 1945 1 24136 1945 2 24140 1945 3 24142 1945 4 24143 1948 1 24145 1948 2 24147 1948 3 24151 1948 4 24153 1949 1 24155 1950 1 24160 1952 1 24173 1953 1 24221 1955 1 24247 1955 2 24250 1957 1 24251 1958 1 24273 1958 2 24276 1959 1 24301 1960 1 24355 1965 1 24422 1967 1 24441 1969 1 24471 1970 1 24517 1971 1 24545 1975 1 24550 1976 1 24553 1977 1 24557 1979 1 24563 1980 1 24566 1982 1 24567 1984 1 24572 1985 1 24575 1986 1 24601 1986 2 24613 1989 1 24625 1990 1 24630 1991 1 24633 1993 1 24642 1993 2 24654 1996 1 24666 1997 1 24672 1998 1 24704 2000 1 24706 2001 1 24737 2003 1 24765 2005 1 24767 2005 2 24771 2006 1 24772 2007 1 24775 2009 1 25000 2009 2 25012 2009 3 25023 2011 1 25033 2012 1 25035 2013 1 25072 2016 1 25120 2017 1 25146 2020 1 25175 2021 1 25176 2022 1 25200 2023 1 25203 2024 1 25205 2025 1 25231 2027 1 25240 2028 1 25252 2030 1 25263 2031 1 25265 2036 1 25313 2038 1 25344 2039 1 25373 2040 1 25375 2041 1 25424 2042 1 25461 2043 1 25471 2046 1 25517 2048 1 25522 2048 2 25541 2051 1 25547 2051 1 25550 18 1 25600 18 1 25611 2054 1 25620 2054 1 25624 2054 1 25626 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved