COMPILATION LISTING OF SEGMENT: >spec>install>1212>STATE.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 1726.4 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 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM *** ON 11/12/86 *** PAGE 2 19 20 $OPTIONS switch trace := true ; switch security := true ; t + $ 21 PROGRAM state ; 22 $IMPORT 23 (* IMPORTED VARIABLES *) 24 'GENERE (pascal)' : 25 cb, 26 codesymb, 27 indfich, 28 mfari1, 29 mfari2, 30 tagsymb, 31 usednameaddr ; 32 'RACINE (pascal)' : 33 boxheader, 34 charptr, 35 chnix, 36 ctptr, 37 display, 38 disx, 39 errtotal, 40 intptr, 41 level, 42 mpcogout, 43 nilptr, 44 no, 45 realptr, 46 string_ptr, 47 symbolfile, 48 symbolline, 49 symbolmap, 50 undecptr, 51 undlab, 52 version ; 53 (* IMPORTED PROCEDURES *) 54 'GENERE (pascal)' : 55 gendesca, 56 gendescb, 57 geneism, 58 genstand, 59 inser ; 60 'RACINE (pascal)' : 61 error, 62 insymbol, 63 nameisref, 64 nextline, 65 recadre, 66 sup ; 67 'UNIQUE (pascal)' : 68 heaperror ; 69 'CONTEXTTABLE (pascal) ' : 70 create_types_box, 71 create_konst_box, 72 create_vars_box, 73 findminmax, 74 packedsize ; 75 'MODATTR (pascal) ' : *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 3 76 freeattr, 77 initattrvarbl, 78 isstring, 79 lvalvarbl, 80 printattr ; 81 'MODVARIABLE (pascal) ' : 82 init_desc_address, 83 variable ; 84 'optimized_procedures (alm)' : 85 search $ 86 87 $EXPORT 88 addressvar, 89 arrayboundsctp, 90 asscheck, 91 calcvarient, 92 checkbnds, 93 choicerarq, 94 cltransf, 95 currentbloc, 96 currentpr, 97 currlcstpt, 98 currllcstpt, 99 currrcstpt, 100 currwithlist, 101 currwcstpt, 102 disposeused, 103 resetused, 104 divcheck, 105 entercst, 106 enterlcst, 107 enterllcst, 108 enterundlab, 109 errorctp, 110 freeallregisters, 111 freebloc, 112 gattr, 113 gencheckmultover, 114 gencstecode, 115 genexceptcode, 116 getpr, 117 inbounds, 118 initstate, 119 inputctp, 120 inxcheck, 121 lcsave, 122 linktoend, 123 linktoendplace, 124 linktomain, 125 linktomainplace, 126 loadadr, 127 loadbase, 128 maxinxused, 129 maxprused, 130 modif, 131 newbloc, 132 nilanaq, *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 4 133 nileraq, 134 nulpw, 135 oldnewstor, 136 opaq, 137 outputctp, 138 prinst, 139 printstatusregister, 140 psrsize, 141 raisused, 142 regenere, 143 regname, 144 revcltransf, 145 rqisused, 146 sauvereg, 147 stack_extension, 148 stack_has_been_extended, 149 stattrace, 150 tabacc, 151 tabkind, 152 tempstor, 153 tmax, 154 transfer, 155 variab, 156 variabctptr, 157 withvariable, 158 workformaths, 159 workformathsplacew $ 160 161 162 163 164 165 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 5 166 167 $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 *) 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 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 6 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 *) 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 *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 7 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 ; 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 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 8 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 ; 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 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 9 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 ; 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 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 10 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 *) 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 } *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 11 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 ; 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 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 12 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) ; 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 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 13 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 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 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 14 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) ; 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 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 15 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 } 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 *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 16 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 *) ; 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, *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 17 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 ********** *) 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 ***************** *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 18 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 *) 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 *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 19 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 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 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 20 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 *) 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 *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 21 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 *) 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 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 22 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 168 169 170 171 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 23 172 173 VAR 174 (* *** REDEFINE IMPORTED VARIABLES * *) 175 (* FROM GENERE *) 176 cb : integer ; 177 codesymb : ARRAY [instword] OF alfa ; 178 indfich : integer ; 179 mfari1 : zari ; 180 mfari2 : zari ; 181 tagsymb : ARRAY [tag] OF PACKED ARRAY [1..4] OF char ; 182 usednameaddr : ctp ; 183 (* FROM DECLARE *) 184 (* FROM RACINE *) 185 boxheader : PACKED ARRAY [1..120] OF char ; 186 harptr : ctp ; 187 charptr : ctp ; 188 chnix : integer ; 189 ctptr : ctp ; 190 display : ARRAY [0..displimit] OF recidscope ; 191 disx : integer ; 192 errtotal : integer ; 193 intptr : ctp ; 194 level : levrange ; 195 mpcogout : text ; nilptr : ctp ; 196 no : integer ; 197 realptr : ctp ; 198 string_ptr : ctp ; 199 symbolfile : integer ; 200 symbolline : integer ; 201 symbolmap : boolean ; 202 undecptr : ctp ; 203 undlab : ARRAY [1..undmax] OF occurence ; 204 version : integer ; 205 206 207 (* EXPORTABLE VARIABLES *) 208 209 arrayboundsctp : ctp ; (* DUMMY BOX FOR CHECKBNDS(ARRAYS) *) 210 asscheck : boolean ; (* SET IN INSYMBOL T+,A+ FOR ASSIGN CHECK *) 211 cltransf : ARRAY [1..6] OF integer ; (* GIVES THE TRANSF CORR. TO OPER. 8,CL *) 212 currentbloc : regpt ; (* LAST CREATED BOX REGISTER *) 213 currentpr : preg ; (* GIVES THE POINTER REGISTER GET BY GETPR *) 214 currlcstpt : lcstpt ; (* " " LONG CONSTANT *) 215 currllcstpt : llcstpt ; (* " " SET " *) 216 currrcstpt : rcstpt ; (* " " REAL " *) 217 currwithlist : withreflist ; 218 currwcstpt : wcstpt ; (* " " WORD " *) 219 disposeused : boolean ; 220 resetused : boolean ; 221 divcheck : boolean ; (* ZERO DIVIDE CHECK *) 222 errorctp : ctp ; 223 gattr : attr ; (* GLOBAL ATTR *) 224 inputctp : ctp ; (* BOX PREDECLARED FOR INPUT *) 225 inxcheck : boolean ; (* SET BY X+ FOR INDEX *) 226 lcsave : integer ; (* SAVING OF LC *) 227 linktoend : boolean ; 228 linktoendplace : integer ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 24 229 linktomain : boolean ; 230 linktomainplace : integer ; 231 maxinxused : register ; (* LAST INDEX REGISTER USED IN GETINDEX *) 232 maxprused : preg ; (* LAST POINTER REGISTER USED IN GETPR *) 233 modif : ARRAY [nxreg..rq] OF tag ; (* GIVES FOR A REGISTER R ITS TAG TR *) 234 nilanaq, 235 nileraq : setarray ; (* USED FOR NIL COMPARISONS *) 236 nulpw : setarray ; (* EMPTY SET *) 237 opaq : ARRAY [typeofop, ra..reaq] OF istand ; (* GIVES INST. WITH A,Q,AQ,EAQ *) 238 outputctp : ctp ; (* BOX PREDECLARED FOR OUTPUT *) 239 prinst : ARRAY [typepr, pr1..pr6] OF istand ; (* GIVES A PR INSTRUCTION *) 240 psrsize : integer ; (* USEFULL SIZE OF PSR *) 241 regname : ARRAY [register] OF PACKED ARRAY [1..4] OF char ; (* REGIST. NAMES *) 242 revcltransf : ARRAY [1..6] OF integer ; (* GIVES 8,CL --> REVERSE TRANSF *) 243 stack_has_been_extended : boolean ; 244 stattrace : levtrace ; (* TRACE FOR MODULE STATEMENT *) 245 tabacc : ARRAY [attraccess] OF alfa ; (* MNEMONICS USED IN TRACE *) 246 tabkind : ARRAY [attrkind] OF alfa ; (* MNEMONICS USED IN TRACE *) 247 variabctptr : ctp ; 248 tempstor : integer ; (* FREE STORAGE IN STACK *) 249 tmax : integer ; (* MAX REACHED IN CURRENT FRAME *) 250 withvariable : boolean ; (* TRUE IF IN WITH CONTROL VARIABLE ANALYSIS *) 251 workformaths : boolean ; (* TRUE IF WORK AREA ALLOCATED IN CURRENT FRAME FOR MATH OPS *) 252 workformathsplacew : integer ; (* OFFSET IN CURR STACK FRAME OF THIS WORK AREA *) 253 254 255 (* LOCAL VARIABLES *) 256 257 begfreelist : regpt ; (* FIRST FREE REGISTER BOX *) 258 currentindex : register ; (* GIVES THE INDEX REGISTER GET BY GETINDEX *) 259 dummybloc : regpt ; (* DUMMY REGISTER BOX *) 260 forgetbox : integer ; (* USED TO KNOW THE FORGOTTEN REG BOX *) 261 freereg : statearray ; (* FALSE FOR ALL REGISTERS *) 262 newtagstar : ARRAY [tn..tx7] OF tag ; (* GIVES FOR A TAG TR --> TRY *) 263 nilpseudoset : setarray ; (* USED TO GENERATE NIL "ITS" *) 264 regcharge : statearray ; (* GIVES THE LOADIND STATES OF THE REGISTERS *) 265 saved_stack_end_place : integer ; 266 starmodif : ARRAY [nxreg..rq] OF tag ; (* GIVES FOR A REGISTER R --> TAG TRY *) 267 sversion : integer ; (* VERSION OF STATE *) 268 xinst : ARRAY [typix, x0..x7] OF istand ; (* GIVES AN ALM INSTRUCTION WITH XI *) 269 270 271 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 25 272 273 $VALUE 274 275 cltransf = (7, 8, 9, 10, 6, 2) ; 276 maxinxused = x5 ; 277 maxprused = pr7 ; 278 modif = (tn, tx0, tx1, tx2, tx3, tx4, tx5, tx6, tx7, tn, tal, tql) ; 279 nilanaq = ('1FFFC003F'x, 'FFFFC7E3F'x, 6 * 0) ; 280 nileraq = ('1FFFC0023'x, '000040000'x, 6 * 0) ; 281 nulpw = (8 * 0) ; 282 opaq = (ilda, ildq, ildaq, idfld, 283 isba, isbq, isbaq, idfsb, 284 ials, iqls, ills, inop, 285 iada, iadq, iadaq, idfad, 286 ineg, inop, inegl, ifneg, 287 icmpa, icmpq, icmpaq, idfcmp, 288 ista, istq, istaq, idfst) ; 289 prinst = (iepp1, iepp2, iepp5, iepp7, iepp3, iepp0, iepp4, iepp4, iepp6, 290 ispri1, ispri2, ispri5, ispri7, ispri3, ispri0, ispri4, ispri4, ispri6, 291 ilprp1, ilprp2, ilprp5, ilprp7, ilprp3, ilprp0, ilprp4, ilprp4, ilprp6) ; 292 regname = ('NRG ', 'PR1 ', 'PR2 ', 'PR5 ', 'PR7 ', 'PR3 ', 'PR0 ', 'PRST', 'PRLK', 'PR6 ', 293 'NXR ', ' X0 ', ' X1 ', ' X2 ', ' X3 ', ' X4 ', ' X5 ', ' X6 ', ' X7 ', 294 ' ', ' A ', ' Q ', ' AQ ', 'EAQ ', 'PSR ', ' E ', ' I ') ; 295 revcltransf = (10, 9, 8, 7, 6, 2) ; 296 tabacc = (' DIRECT ', 'POINTEE ', 'POINTABL') ; 297 tabkind = (' VARBL ', ' LCOND ', ' LVAL ', ' CHAIN ', ' SVAL ') ; 298 299 freereg = (27 * false) ; 300 newtagstar = (tny, tauy, tquy, tz23, ticy, taly, tqly, tz27, 301 tx0y, tx1y, tx2y, tx3y, tx4y, tx5y, tx6y, tx7y) ; 302 nilpseudoset = (nilleft, nilright, 6 * 0) ; 303 starmodif = (tny, tyx0, tyx1, tyx2, tyx3, tyx4, tyx5, tyx6, 304 tyx7, tny, tyal, tyql) ; 305 xinst = ( 306 iadlx0, iadlx1, iadlx2, iadlx3, iadlx4, iadlx5, iadlx6, iadlx7, 307 iadx0, iadx1, iadx2, iadx3, iadx4, iadx5, iadx6, iadx7, 308 isxl0, isxl1, isxl2, isxl3, isxl4, isxl5, isxl6, isxl7, 309 ilxl0, ilxl1, ilxl2, ilxl3, ilxl4, ilxl5, ilxl6, ilxl7) 310 $ 311 312 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 26 313 314 (* *** NOW REDEFINE IMPORTED PROCEDURE *) 315 316 317 (* FROM GENERE *) 318 PROCEDURE genstand (fpr : preg ; fadr : integer ; fcode : istand ; ftg : tag) ; EXTERNAL ; 319 PROCEDURE geneism (fcode : ieism ; ffield : integer ; fbits : zptr) ; EXTERNAL ; 320 PROCEDURE gendesca (fareg : preg ; fadr, fcn : integer ; fta : lgcar ; 321 fn : integer ; frlgth : mreg) ; EXTERNAL ; 322 PROCEDURE gendescb (fareg : preg ; fadr, fc, fb : integer ; fn : integer ; 323 frlgth : mreg) ; EXTERNAL ; 324 PROCEDURE inser (fcb : integer ; fplace : integer) ; EXTERNAL ; 325 (* FROM RACINE *) 326 PROCEDURE error (errno : integer) ; EXTERNAL ; 327 PROCEDURE insymbol ; EXTERNAL ; 328 PROCEDURE nameisref (p : ctp ; f, l : integer) ; EXTERNAL ; 329 PROCEDURE nextline ; EXTERNAL ; 330 FUNCTION recadre (fnum, fmod : integer) : integer ; EXTERNAL ; 331 PROCEDURE search ; EXTERNAL ; 332 FUNCTION sup (fval1, fval2 : integer) : integer ; EXTERNAL ; 333 334 (* FROM UNIQUE *) 335 PROCEDURE heaperror ; EXTERNAL ; 336 337 (* FROM MODVARIABLE *) 338 339 PROCEDURE init_desc_address (fctptr : ctp ; VAR fattr : attr) ; EXTERNAL ; 340 PROCEDURE variable (fvarset : boolean) ; EXTERNAL ; 341 342 (* FROM CONTEXTTABLE *) 343 344 PROCEDURE create_types_box (VAR fvbox : ctp ; fname : alfaid ; fform : typform ; fbool : boolean) ; EXTERNAL ; 345 PROCEDURE create_konst_box (VAR fvbox : ctp ; fname : alfaid ; ftypofconst : consttype) ; EXTERNAL ; 346 PROCEDURE create_vars_box (VAR fvbox : ctp ; fname : alfaid) ; EXTERNAL ; 347 PROCEDURE findminmax (fctp : ctp ; VAR fmin, fmax : integer) ; EXTERNAL ; 348 FUNCTION packedsize (fctp : ctp) : integer ; EXTERNAL ; 349 350 (* FROM MODATTR *) 351 352 PROCEDURE freeattr (VAR fattr : attr) ; EXTERNAL ; 353 PROCEDURE initattrvarbl (VAR fattr : attr) ; EXTERNAL ; 354 FUNCTION isstring (VAR fattr : attr) : boolean ; EXTERNAL ; 355 PROCEDURE lvalvarbl (VAR fattr : attr) ; EXTERNAL ; 356 PROCEDURE printattr (VAR fattr : attr) ; EXTERNAL ; 357 358 359 360 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 27 361 362 (* ************************************ PRINTREGBOX *************************** *) 363 364 $OPTIONS compile = trace $ 365 PROCEDURE printregbox (fptbox : regpt) ; 366 367 (* C CALLED WHEN STATTRACE IS HIGH TO PRINT THE CONTENT OF A 368* SPECIFIED REGISTER_STATE_BOX 369* C *) 370 BEGIN (* PRINTREGBOX *) 371 nextline ; write (mpcogout, boxheader) ; nextline ; 372 IF fptbox = NIL THEN 373 BEGIN 374 write (mpcogout, '* REGBOX REQUESTED IS NIL. TRACE STOPS') ; nextline ; 375 END ELSE 376 BEGIN 377 write (mpcogout, '* REGISTER BOX FOLLOWING IS AT @', ord (fptbox)) ; nextline ; 378 WITH fptbox@ DO 379 BEGIN 380 write (mpcogout, '* REGISTER IS ', regname [sregister], ' SAVEPLACE IS :', 381 saveplace : 6) ; nextline ; 382 write (mpcogout, '* NEXTBLOC AND PREDBLOC ARE AT @', ord (nextbloc), ' AND AT @', 383 ord (predbloc)) ; nextline ; 384 END ; 385 END ; 386 write (mpcogout, boxheader) ; nextline ; nextline ; 387 END (* PRINTREGBOX *) ; 388 $OPTIONS compile = true $ 389 390 391 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 28 392 393 (* ************************************ PRINTSTATUSREGISTER ****************** *) 394 395 PROCEDURE printstatusregister ; 396 397 (* C CALLED IN TRACE CONTEXT IN ORDER TO EDIT THE LOADED REGISTERS C *) 398 VAR 399 lreg : register ; 400 BEGIN 401 write (mpcogout, '*** REGISTERS LOADED ARE:') ; 402 FOR lreg := pr1 TO maxprused DO 403 IF regcharge [lreg] THEN write (mpcogout, regname [lreg] : 5) ; 404 FOR lreg := x0 TO maxinxused DO 405 IF regcharge [lreg] THEN write (mpcogout, regname [lreg] : 5) ; 406 FOR lreg := ra TO psr DO 407 IF regcharge [lreg] THEN write (mpcogout, regname [lreg] : 5) ; 408 nextline ; 409 END (* PRINTSTATUSREGISTER *) ; 410 411 412 413 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 29 414 415 (* ******************************************** INITSTATE ********************* *) 416 417 PROCEDURE initstate ; 418 419 (* C INIT ALLL VARIABLES OF STATE C *) 420 VAR 421 it : integer ; 422 lastcreate, wkpt : regpt ; 423 BEGIN 424 create_types_box (arrayboundsctp, blank, numeric, false) ; 425 WITH arrayboundsctp^ DO 426 BEGIN 427 size := bytesinword ; cadrage := bytesinword ; 428 npksize := size ; 429 (* NMIN and NMAX filled each time before use *) 430 END ; 431 (* INITIALIZATION OF REGISTER'S BOXES LIST *) 432 new (dummybloc) ; IF dummybloc = NIL THEN heaperror ; (* EXIT COMP. *) 433 WITH dummybloc@ DO 434 BEGIN 435 sregister := nreg ; saveplace := 0 ; predbloc := NIL ; 436 nextbloc := NIL ; 437 END ; 438 currentbloc := dummybloc ; 439 lastcreate := NIL ; 440 FOR it := 1 TO longboxlist DO 441 BEGIN 442 new (wkpt) ; IF wkpt = NIL THEN heaperror ; (* EXIT COMP. *) 443 WITH wkpt@ DO 444 BEGIN 445 IF lastcreate = NIL THEN 446 begfreelist := wkpt ELSE 447 lastcreate@.nextbloc := wkpt ; 448 lastcreate := wkpt ; 449 nextbloc := NIL ; predbloc := NIL ; 450 END (* WITH *) ; 451 END ; (* FOR IT *) 452 forgetbox := 0 ; 453 stack_has_been_extended := false ; 454 stattrace := none ; 455 errorctp := NIL ; 456 inputctp := NIL ; 457 outputctp := NIL ; 458 linktomain := false ; 459 linktoend := false ; 460 sversion := 00 ; 461 IF sversion > version THEN version := sversion ; 462 withvariable := false ; 463 disposeused := false ; 464 resetused := false ; 465 END (* INITSTATE *) ; 466 467 468 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 30 469 470 (* ************************************ ENTERCST ****************************** *) 471 472 PROCEDURE entercst (fval : integer ; VAR fboxpt : wcstpt) ; 473 474 (* C . SEARCHES IF "FVAL" IS ALREADY PRESENT IN THE LIST BEGINNING AT 475* CURRWCSTPT. 476* IF YES RETURNS THE POINTER ON IT 477* IF NO RETURNS THE NEWLY CREATED BOX . " "FVAL" , CSTPLACE, CSTNEXT 478* C *) 479 (* E ERRORS DETECTED 480* HEAPERROR 481* E *) 482 LABEL 483 1 ; (* EXIT SEARCH'S WHILE *) 484 VAR 485 workpt : wcstpt ; 486 BEGIN (* ENTERCST *) 487 $OPTIONS compile = trace $ 488 IF stattrace > none THEN 489 BEGIN 490 write (mpcogout, '@@@ DEBUT ENTERCST @@@ WITH FVAL:', fval) ; nextline ; 491 END ; 492 $OPTIONS compile = true $ 493 workpt := currwcstpt ; (* LAST CREATED BOX, *) 494 (* NIL FOR THE FIRST ENTERED CSTE *) 495 WHILE workpt # NIL DO 496 IF workpt@.valu = fval THEN 497 GOTO 1 (* ASSIGNS FBOXPT,EXIT PROC *) ELSE 498 workpt := workpt@.cstnext ; 499 (* AT THIS POINT, CST NOT FOUND *) 500 new (workpt) ; IF workpt = NIL THEN heaperror ; (* EXIT COMP *) 501 WITH workpt@ DO 502 BEGIN valu := fval ; cstnext := currwcstpt ; (* CHAINS BOXES *) 503 cstplace := 0 ; (* INIT CHAIN OF UNRESOLVED *) 504 (* REFERENCES IN UNDLAB *) 505 END ; 506 currwcstpt := workpt ; 507 $OPTIONS compile = trace $ 508 IF stattrace = high THEN 509 BEGIN 510 write (mpcogout, boxheader) ; nextline ; 511 write (mpcogout, '* W.CONST BOX CREATED AT @', ord (workpt), ' NEXT BOX AT @', 512 ord (workpt@.cstnext), ' VALU IS:', fval) ; nextline ; 513 write (mpcogout, boxheader) ; nextline ; 514 END ; 515 $OPTIONS compile = true $ 516 1 : fboxpt := workpt ; (* EITHER EXIT WHILE, EITHER NEW BOX CREATED *) 517 $OPTIONS compile = trace $ 518 IF stattrace > low THEN 519 BEGIN write (mpcogout, '@@@ FIN ENTERCST @@@ WITH V.FBOXPT AT @', ord (fboxpt)) ; 520 nextline ; 521 END ; 522 $OPTIONS compile = true $ 523 END (* ENTERCST *) ; 524 525 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 31 526 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 32 527 528 (* ************************************ ENTERLCST ***************************** *) 529 530 PROCEDURE enterlcst (VAR fval : setarray ; VAR fboxpt : lcstpt) ; 531 532 (* C SEARCHS IF THE TWO-WORDS CONSTANT (FVAL0,FVAL1) IS ALREADY IN THE CHAIN 533* WHOSE HEAD IS POINTED BY CURRLCSTPT. 534* IF NO CREATES A NEW BOX (LUNRESOLV) 535* RETURNED POINTER POINTS THE EITHER FOUND OR CREATED BOX 536* C *) 537 (* E ERRORS DETECTED 538* HEAPERROR 539* E *) 540 LABEL 541 1 ; (* EXIT WHILE *) 542 VAR 543 workpt : lcstpt ; 544 BEGIN (* ENTERLCST *) 545 $OPTIONS compile = trace $ 546 IF stattrace > none THEN 547 BEGIN 548 write (mpcogout, '@@@ DEBUT ENTERLCST @@@ WITH FVAL0,FVAL1 :', fval [0] : 14, 549 fval [1] : 14) ; 550 nextline ; 551 END ; 552 $OPTIONS compile = true $ 553 workpt := currlcstpt ; (* LAST CREATED CSTE *) 554 WHILE workpt # NIL DO 555 BEGIN 556 IF workpt@.lvalu [0] = fval [0] THEN 557 IF workpt@.lvalu [1] = fval [1] THEN 558 GOTO 1 ; (* ASSIGNS FBOXPT AND EXIT PROC *) 559 workpt := workpt@.lnext ; 560 END ; (* WHILE *) 561 (* CSTE NOT FOUND ==> CREATES A NEW BOX *) 562 new (workpt) ; IF workpt = NIL THEN heaperror ; (* EXIT COMP *) 563 WITH workpt@ DO 564 BEGIN 565 lvalu := fval ; 566 lplace := 0 ; (* INIT CHAIN OF UNRESOLVED REF. *) 567 lnext := currlcstpt ; 568 END ; 569 currlcstpt := workpt ; 570 $OPTIONS compile = trace $ 571 IF stattrace = high THEN 572 BEGIN 573 write (mpcogout, boxheader) ; nextline ; 574 write (mpcogout, '* LCONST BOX CREATED AT @', ord (workpt)) ; nextline ; 575 nextline ; 576 write (mpcogout, boxheader) ; nextline ; 577 END ; 578 $OPTIONS compile = true $ 579 (* <--- *) 580 1 : 581 fboxpt := workpt ; 582 $OPTIONS compile = trace $ 583 IF stattrace > low THEN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 33 584 BEGIN 585 write (mpcogout, '@@@ FIN ENTERLCST @@@ WITH V.FBOXPT AT @', ord (fboxpt)) ; nextline ; 586 END ; 587 $OPTIONS compile = true $ 588 END (* ENTERLCST *) ; 589 590 591 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 34 592 593 (* ************************************ ENTERLLCST **************************** *) 594 595 PROCEDURE enterllcst (VAR fval : setarray ; VAR fboxpt : llcstpt) ; 596 597 (* C.SEARCHES IF THE SET CONSTANT FVAL IS ALREADY IN THE CHAIN BEGINNING AT 598* CURRLLCSTPT 599* .IF YES RETURNS A POINTER ON IT, ELSE CREATES A NEW BOX AND RETURNS THE 600* NEW POINTER 601* C *) 602 (* E ERRORS DETECTED 603* HEAPERROR (EXIT COMP) 604* E *) 605 LABEL 606 1 ; (* EXIT WHILE *) 607 VAR 608 workpt : llcstpt ; 609 it : integer ; 610 equal : boolean ; 611 BEGIN (* ENTERLLCST *) 612 $OPTIONS compile = trace $ 613 IF stattrace > none THEN 614 BEGIN 615 write (mpcogout, '@@@ DEBUT ENTERLLCST @@@') ; nextline ; 616 END ; 617 $OPTIONS compile = true $ 618 workpt := currllcstpt ; 619 WHILE workpt # NIL DO 620 BEGIN 621 equal := true ; 622 FOR it := 0 TO bornesupset DO IF fval [it] # workpt@.llvalu [it] THEN 623 equal := false ; 624 IF equal THEN 625 (* <=== *) GOTO 1 ELSE 626 workpt := workpt@.llnext ; 627 END ; (* WHILE *) 628 (* FVAL NOT FOUND. THEN CREATES A NEW BOX *) 629 new (workpt) ; IF workpt = NIL THEN heaperror ; (* EXIT COMP *) 630 WITH workpt@ DO 631 BEGIN llvalu := fval ; llnext := currllcstpt ; llplace := 0 ; (* LATER ON UNDLAB *) 632 END ; 633 currllcstpt := workpt ; 634 $OPTIONS compile = trace $ 635 IF stattrace = high THEN 636 BEGIN 637 write (mpcogout, boxheader) ; nextline ; 638 write (mpcogout, '* LLCONST BOX CREATED AT @', ord (workpt), ' LLNEXT IS AT @', 639 ord (workpt@.llnext)) ; nextline ; 640 FOR it := 0 TO bornesupset DO write (mpcogout, workpt@.llvalu [it] : 15) ; nextline ; 641 write (mpcogout, boxheader) ; nextline ; 642 END ; 643 $OPTIONS compile = true $ 644 (* <==== *) 645 1 : fboxpt := workpt ; 646 $OPTIONS compile = trace $ 647 IF stattrace > low THEN 648 BEGIN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 35 649 write (mpcogout, '@@@ FIN ENTERLLCST @@@ WITH V.FBOXPT AT @', ord (fboxpt)) ; 650 nextline ; 651 END ; 652 $OPTIONS compile = true $ 653 END (* ENTERLLCST *) ; 654 655 656 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 36 657 658 (* ************************************ ENTERREAL ***************************** *) 659 660 PROCEDURE enterreal (frval : real ; VAR fboxpt : rcstpt) ; 661 662 (* C SEARCHES IN LIST BEGINNING AT CURRRCSTPT IF FRVAL EXISTS. 663* IF YES RETURNS POINTER ON THIS BOX 664* ELSE CREATES A NEW BOX. 665* C *) 666 (* E ERRORS DETECTED 667* HEAPERROR 668* E *) 669 LABEL 670 1 ; (* EXIT WHILE *) 671 VAR 672 workpt : rcstpt ; 673 BEGIN 674 $OPTIONS compile = trace $ 675 IF stattrace > none THEN 676 BEGIN 677 write (mpcogout, '@@@ DEBUT ENTERREAL @@@ WITH FRVAL:', frval) ; nextline ; 678 END ; 679 $OPTIONS compile = true $ 680 workpt := currrcstpt ; 681 WHILE workpt # NIL DO 682 IF workpt@.rvalu = frval THEN 683 BEGIN 684 GOTO 1 ; (* ASSIGNS FBOXPT ; EXIT PROC *) 685 END ELSE 686 workpt := workpt@.rnext ; 687 (* HERE NOT FOUND *) 688 new (workpt) ; IF workpt = NIL THEN heaperror ; (* EXIT COMP *) 689 WITH workpt@ DO 690 BEGIN 691 rvalu := frval ; rplace := 0 ; (* INIT FUTURE CHAIN IN UNDLAB *) 692 rnext := currrcstpt ; 693 END ; 694 currrcstpt := workpt ; 695 $OPTIONS compile = trace $ 696 IF stattrace = high THEN 697 BEGIN 698 write (mpcogout, boxheader) ; nextline ; 699 write (mpcogout, '* REAL CONSTANT BOX CREATED AT @', ord (workpt)) ; nextline ; 700 WITH workpt@ DO 701 write (mpcogout, '* RVALU IS: ', rvalu, ' RNEXT IS AT @', ord (rnext)) ; 702 nextline ; 703 write (mpcogout, boxheader) ; nextline ; 704 END ; 705 $OPTIONS compile = true $ 706 (* <=== *) 707 1 : fboxpt := workpt ; 708 $OPTIONS compile = trace $ 709 IF stattrace > low THEN 710 BEGIN 711 write (mpcogout, '@@@ FIN ENTERREAL @@@ WITH V.FBOXPT AT @', ord (fboxpt)) ; 712 nextline ; 713 END ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 37 714 $OPTIONS compile = true $ 715 END (* ENTERREAL *) ; 716 717 718 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 38 719 720 (* ************************************ ENTERUNDLAB *************************** *) 721 722 PROCEDURE enterundlab (VAR fundinx : integer) ; 723 724 (* C "FUNDINX IS THE BEGINNING OF A LIST IN UNDLAB OF UNRESOLVED 725* REFERENCES ( 0 MEANS NO LIST) 726* THIS PROCEDURE ADDS A NEW OCCURENCE IN THE LIST OR INITIATE A NEW LIST 727* INDFICH = INDEX IN FICHINTER OF INCOMPLETE INSTRUCTION 728* CHNIX POINTS BEGINNING OF FREE LIST 729* C *) 730 (* E ERRORS DETECTED 731* 261: TOO MANY UNRESOLVED REFERENCES (UNDLAB FULL ) 732* E *) 733 VAR 734 it : integer ; 735 BEGIN (* ENTERUNDLAB *) 736 $OPTIONS compile = trace $ 737 IF stattrace > none THEN 738 BEGIN 739 write (mpcogout, '@@@ DEBUT ENTERUNDLAB @@@ WITH INDFICH, CHNIX', 740 indfich : 6, chnix : 6, 741 ' FUNDINX (IN) IS ', fundinx : 6) ; nextline ; 742 END ; 743 $OPTIONS compile = true $ 744 IF chnix = 0 THEN (* UNDLAB IS FULL *) 745 error (261) ELSE 746 WITH undlab [chnix] DO 747 BEGIN 748 place := indfich ; it := succ ; (* FUTURE BEGINNING OF FREE LIST *) 749 succ := fundinx ; fundinx := chnix ; 750 chnix := it ; 751 END ; 752 $OPTIONS compile = trace $ 753 IF stattrace > low THEN 754 BEGIN 755 write (mpcogout, '@@@ FIN ENTERUNDLAB @@@ WITH FUNDINX(OUT), NEW CHNIX ', fundinx : 6, 756 chnix : 6) ; 757 nextline ; 758 END ; 759 $OPTIONS compile = true $ 760 END (* ENTERUNDLAB *) ; 761 762 763 764 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 39 765 766 (* ************************************ GENEXCEPTCODE ************************* *) 767 768 PROCEDURE genexceptcode (ferrcode : integer ; freg : register) ; 769 770 (* C CALL OF AN OPERATOR THAT MUST 771* . PRINTS VALUE, OFFSET , ERROR MSG 772* . STOPS EXECUTION 773* C *) 774 VAR 775 lcode : integer ; 776 BEGIN (* GENEXCEPTCODE *) 777 $OPTIONS compile = trace $ 778 IF stattrace > none THEN 779 BEGIN 780 write (mpcogout, '@@@ DEBUT_FIN DE GENEXCEPTCODE @@@') ; nextline ; 781 END ; 782 $OPTIONS compile = true $ 783 CASE freg OF 784 ra : lcode := 1 ; 785 rq : lcode := 2 ; 786 raq : lcode := 4 ; 787 reaq : lcode := 8 ; 788 END (* CASE FREG *) ; 789 genstand (nreg, ferrcode, ieax5, tn) ; 790 genstand (nreg, lcode, ieax6, tn) ; 791 genstand (pr0, exceptcodeplace, itsp3, tn) ; 792 END (* GENEXCEPTCODE *) ; 793 794 795 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 40 796 797 (* ************************************ GENCSTECODE *************************** *) 798 799 PROCEDURE gencstecode (farg : integer ; finst : istand) ; 800 801 (* C .AN INSTRUCTION WITH CSTE FARG ARGUMENT MUST BE GENERATE . 802* .THIS PROCEDURE CHECK FOR SINGLE INSTRUCTION , OR FOR LARGE CSTE . 803* .IF LARGE CSTE, ENTERS IT IN WORD_CSTE LIST AND USES UNRESOLVED 804* MECHANISM 805* C *) 806 VAR 807 short : boolean ; 808 locboxpt : wcstpt ; 809 BEGIN (* GENCSTECODE *) 810 $OPTIONS compile = trace $ 811 IF stattrace > none THEN 812 BEGIN 813 write (mpcogout, '@@@ DEBUT GENCSTECODE @@@ WITH FARG,FINST', farg, 814 codesymb [finst] : 9) ; 815 nextline ; 816 END ; 817 $OPTIONS compile = true $ 818 short := false ; 819 IF (farg >= 0) THEN 820 IF farg < twoto18 THEN 821 short := true ; 822 IF short THEN 823 genstand (nreg, farg, finst, tdl) ELSE 824 BEGIN (* NOT SHORT *) 825 entercst (farg, locboxpt) ; 826 enterundlab (locboxpt@.cstplace) ; 827 (* ADDS A NEW OCCUR. OF "FARG" *) 828 (* IN CHAIN OF UNRESOLVED OCCURENCE *) 829 genstand (nreg, 0, finst, tic) ; 830 END (* NOT SHORT *) ; 831 $OPTIONS compile = trace $ 832 IF stattrace > low THEN 833 BEGIN 834 write (mpcogout, '@@@ FIN GENCSTECODE @@@') ; nextline ; 835 END ; 836 $OPTIONS compile = true $ 837 END (* GENCSTECODE *) ; 838 839 840 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 41 841 842 (* ************************************** GENCHECKMULTOVER ******************************************** *) 843 844 PROCEDURE gencheckmultover ; 845 846 (* C THIS PROCEDURE GENERATES CODE TO CHECK OVERFLOW AFTER MPY INSTRUCTION *) 847 848 VAR 849 locskip : integer ; 850 851 BEGIN 852 $OPTIONS compile = trace $ 853 IF stattrace > none THEN 854 BEGIN 855 write (mpcogout, '@@@ DEBUT GENCHECKMULTOVER @@@') ; 856 nextline 857 END ; 858 $OPTIONS compile = true $ 859 genstand (pr6, evareaw, istaq, tn) ; 860 genstand (pr6, evareaw + 1, ilda, tn) ; 861 genstand (nreg, 36, ilrs, tn) ; 862 genstand (pr6, evareaw, icmpaq, tn) ; 863 locskip := indfich ; 864 genstand (nreg, 0, itze, tic) ; 865 genstand (pr6, evareaw, ildaq, tn) ; 866 genexceptcode (mlterrcode, raq) ; 867 inser (cb, locskip) ; 868 genstand (nreg, 0, iorq, tdl) ; 869 $OPTIONS compile = trace $ 870 IF stattrace > none THEN 871 BEGIN 872 write (mpcogout, '@@@ FIN GENCHECKMULTOVER @@@') ; 873 nextline 874 END ; 875 $OPTIONS compile = true $ 876 END (* GENCHECKMULTOVER *) ; 877 878 879 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 42 880 881 (* ************************************ CHECKBNDS ***************************** *) 882 883 PROCEDURE checkbnds (errcode : integer ; freg : register ; fctp : ctp) ; 884 885 (* C .GENERATES THE CODE TO VERIFY IF THE VALUE IN FREG IS IN THE CLOSED 886* INTERVAL GIVEN BY THE BOUNDS OF THE TYPE "FCTP". 887* .IF ERROR, CALL GENEXCEPTCODE 888* C *) 889 VAR 890 lmin, lmax, locskip, locexit : integer ; 891 linst : istand ; 892 BEGIN (* CHECKBNDS *) 893 $OPTIONS compile = trace $ 894 IF stattrace > none THEN 895 BEGIN 896 write (mpcogout, '@@@ DEBUT CHECKBNDS @@@ WITH CODE,FREG, FCTP AT', errcode : 4, 897 regname [freg] : 9, ord (fctp)) ; 898 nextline ; 899 END ; 900 $OPTIONS compile = true $ 901 IF fctp # intptr THEN 902 BEGIN (* ONLY FOR TYPE # INTEGER *) 903 findminmax (fctp, lmin, lmax) ; 904 IF freg = ra THEN linst := icmpa ELSE linst := icmpq ; 905 gencstecode (lmin, linst) ; 906 locskip := indfich ; genstand (nreg, 0, itmi, tic) ; (* SKIP IF ERROR *) 907 gencstecode (lmax, linst) ; 908 locexit := indfich ; genstand (nreg, 0, itmoz, tic) ; (* SKIP IF OK *) 909 inser (cb, locskip) ; 910 genexceptcode (errcode, freg) ; 911 inser (cb, locexit) ; 912 END (* TYPE NOT INTEGER *) ; 913 $OPTIONS compile = trace $ 914 IF stattrace > low THEN 915 BEGIN 916 write (mpcogout, '@@@ FIN CHECKBNDS @@@') ; nextline ; 917 END ; 918 $OPTIONS compile = true $ 919 END (* CHECKBNDS *) ; 920 921 922 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 43 923 924 (* ************************************ FCT. INBOUNDS ************************* *) 925 926 FUNCTION inbounds (fval, fmin, fmax : integer) : boolean ; 927 928 (* C RETURNED VALUE IS TRUE IF FVAL IS THE CLOSED INTERVAL 929* FMIN..FMAX 930* FALSE OTHERWISE 931* C *) 932 (* E ERRORS DETECTED 933* 406 : FMIN EXPECTED TO BE < FMAX 934* E *) 935 BEGIN (* INBOUNDS *) 936 $OPTIONS compile = security $ 937 IF fmin > fmax THEN error (406) ; 938 $OPTIONS compile = true $ 939 IF fval < fmin THEN 940 inbounds := false ELSE 941 IF fval > fmax THEN 942 inbounds := false ELSE 943 inbounds := true ; 944 END (* INBOUNDS *) ; 945 946 947 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 44 948 949 (* ************************************************ clearpsr ******** *) 950 951 PROCEDURE clearpsr ; 952 BEGIN 953 mfari1 := a0r0i0 ; mfari2 := a1r0i0 ; 954 geneism (imlr, 0, p0t0r0) ; 955 gendesca (nreg, 0, 0, l9, 0, tn) ; 956 gendesca (pr6, psrdepw, 0, l9, bytesforset, tn) ; 957 END ; 958 959 960 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 45 961 962 (* ************************************ FUNCTION OLDNEWSTOR ******************* *) 963 964 FUNCTION oldnewstor (incrinbytes : integer) : integer ; 965 966 (* C THIS FCT. RETURNS THE OLD VALUE REALIGNED OF TEMPSTOR; 967* INCREMENTS TEMPSTOR FOR FUTURE USE; 968* READJUST TMAX IF NECESSARY 969* C *) 970 BEGIN (* OLDNEWSTOR *) 971 $OPTIONS compile = trace $ 972 IF stattrace > low THEN 973 BEGIN 974 write (mpcogout, '@@@ DEBUT-FIN OLDNEWSTOR @@@ WITH TEMPSTOR,TMAX, INCREMENT', 975 tempstor, tmax, incrinbytes) ; 976 nextline ; 977 END ; 978 $OPTIONS compile = true $ 979 incrinbytes := recadre (incrinbytes, bytesinword) ; 980 IF incrinbytes > bytesinword THEN 981 tempstor := recadre (tempstor, bytesindword) ; 982 (* <====== *) 983 oldnewstor := tempstor ; 984 tempstor := tempstor + incrinbytes ; 985 IF tempstor > tmax THEN tmax := tempstor ; 986 END (* OLDNEWSTOR *) ; 987 988 989 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 46 990 991 (* ************************************ NEWBLOC ******************************* *) 992 993 PROCEDURE newbloc (freg : register) ; 994 995 (* C .CREATES A NEW REGISTER BLOC ASSOCIATED WITH "FREG" 996* .RETURNS -CURRENTBLOC 997* -REGCHARGE[FREG] 998* C *) 999 (* E ERRORS DETECTED 1000* 254 : EXPRESSION TOO COMPLICATED 1001* E *) 1002 VAR 1003 lcurbloc : regpt ; 1004 BEGIN (* NEWBLOC *) 1005 $OPTIONS compile = trace $ 1006 IF stattrace > none THEN 1007 BEGIN 1008 write (mpcogout, '@@@ DEBUT NEWBLOC @@@ WITH FREG', regname [freg]) ; nextline ; 1009 END ; 1010 $OPTIONS compile = true $ 1011 IF begfreelist = NIL THEN error (254) ELSE 1012 BEGIN 1013 lcurbloc := begfreelist ; 1014 begfreelist := begfreelist@.nextbloc ; 1015 WITH lcurbloc@ DO 1016 BEGIN 1017 sregister := freg ; saveplace := 0 ; nextbloc := currentbloc ; predbloc := NIL ; 1018 END ; 1019 forgetbox := forgetbox + 1 ; 1020 currentbloc@.predbloc := lcurbloc ; 1021 currentbloc := lcurbloc ; 1022 END ; 1023 regcharge [freg] := true ; 1024 $OPTIONS compile = trace $ 1025 IF stattrace > low THEN 1026 BEGIN 1027 write (mpcogout, '* BOX CREATED AT @', ord (currentbloc), ' PREVIOUS WAS AT @', 1028 ord (currentbloc@.nextbloc)) ; 1029 nextline ; 1030 write (mpcogout, '@@@ FIN NEWBLOC @@@') ; nextline ; 1031 END ; 1032 $OPTIONS compile = true $ 1033 END (* NEWBLOC *) ; 1034 1035 1036 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 47 1037 1038 (* ************************************ FREEBLOC ****************************** *) 1039 1040 PROCEDURE freebloc (VAR fbtofree : regpt) ; 1041 1042 (* C .IN ORDER TO HAVE A SHORT CHAIN OF USED REGISTERS, THIS PROCEDURE "DELINKS" 1043* A BOX,EACH TIME IT IS POSSIBLE. 1044* .FBTOFREE CAN BE NIL ==> NO OPERATION 1045* .IF ASSOCIATED REGISTER IS NOT SAVED, THEN FREES IT. 1046* .MODIFY CURRENTBLOC FOR LAST CREATED BOX 1047* .FBTOFREE IS "NIL" AFTER, EXCEPT FOR CURRENTBLOC 1048* C *) 1049 (* E ERRORS DETECTED 1050* 417 FREEBLOC CALLED WITH DUMMYBLOC 1051* 435 REGISTER NOT SAVED AND NOT FLAGGED "LOADED" 1052* E *) 1053 VAR 1054 savecurbloc : regpt ; 1055 BEGIN (* FREEBLOC *) 1056 $OPTIONS compile = trace $ 1057 IF stattrace > none THEN 1058 BEGIN 1059 write (mpcogout, '@@@ DEBUT -FIN DE FREEBLOC @@@') ; nextline ; 1060 IF stattrace = high THEN 1061 BEGIN 1062 write (mpcogout, '* THE FOLLOWING BOX HAS BEEN FREED:') ; nextline ; 1063 printregbox (fbtofree) ; 1064 END ; 1065 END ; 1066 $OPTIONS compile = true $ 1067 $OPTIONS compile = security $ 1068 IF fbtofree = dummybloc THEN error (417) ELSE 1069 $OPTIONS compile = true $ 1070 IF fbtofree # NIL THEN 1071 WITH fbtofree@ DO 1072 BEGIN 1073 IF predbloc = NIL THEN 1074 BEGIN 1075 savecurbloc := nextbloc ; nextbloc@.predbloc := NIL ; 1076 END ELSE 1077 BEGIN 1078 predbloc@.nextbloc := nextbloc ; nextbloc@.predbloc := predbloc ; 1079 savecurbloc := currentbloc ; 1080 END ; 1081 IF saveplace = 0 THEN 1082 $OPTIONS cc = secuity + $ 1083* IF NOT regcharge [sregister] THEN error (435) ELSE 1084*$OPTIONS cc = secuity - $ 1085 regcharge [sregister] := false ; 1086 forgetbox := forgetbox - 1 ; 1087 fbtofree@.nextbloc := begfreelist ; 1088 begfreelist := fbtofree ; 1089 fbtofree := NIL ; 1090 currentbloc := savecurbloc ; 1091 END (* WITH,#NIL *) ; 1092 END (* FREEBLOC *) ; 1093 *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 48 1094 1095 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 49 1096 1097 PROCEDURE sauvereg (freg : register ; fload : boolean) ; FORWARD ; 1098 1099 (* *********************** STACK_EXTENSION ************************* *) 1100 1101 PROCEDURE stack_extension ; 1102 1103 (* THIS PROCEDUREIS CALLED FOR DYNAMIC STACK EXTENSIONS *) 1104 1105 (* GENERATED CODE ASSUMES THAT RQ CONTAINS NUMBER OF WORDS *) 1106 (* PR5, MODIFIED BY pascal_operators_ MUST BE SAVED IF USED *) 1107 1108 BEGIN 1109 IF NOT stack_has_been_extended THEN 1110 BEGIN 1111 stack_has_been_extended := true ; 1112 saved_stack_end_place := oldnewstor (bytesindword) DIV bytesinword ; 1113 genstand (pr6, next_sp_place, iepp3, tny) ; 1114 genstand (pr6, saved_stack_end_place, ispri3, tn) ; 1115 END ; 1116 sauvereg (pr5, false) ; 1117 genstand (pr0, extend_stack_op_place, itsp3, tn) ; 1118 END ; 1119 1120 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 50 1121 1122 (* ************************************ FREEALLREGISTERS ********************** *) 1123 1124 PROCEDURE freeallregisters ; 1125 1126 (* C .FOR EACH STATEMENT'S BEGINNING , ALL REGISTERS ARE FREE 1127* .ALL THE CREATED BOXES ARE REMOVED 1128* .THE WORKING STORAGE IS FREED 1129* * LCSAVE = MEMORIZED AVAILABLE STORAGE IN CURRENT FRAME (BYTES) 1130* * TEMPSTOR = CURRENT AVAILABLE STORAGE IN CURRENT FRAME (BYTES) 1131* * DUMMYBLOC IS CREATED IN ENTERBODY FOR ALL THE PROCEDURE 1132* C *) 1133 (* E ERRORS DETECTED 1134* 429 SOME REGISTER BOX NOT FREED 1135* E *) 1136 VAR 1137 it : integer ; 1138 BEGIN (* FREEALLREGISTERS *) 1139 $OPTIONS compile = trace $ 1140 IF stattrace > none THEN 1141 BEGIN 1142 write (mpcogout, '@@@ DEBUT FREEALLREGISTERS @@@ WITH LCSAVE,TEMPSTOR:', lcsave, 1143 tempstor) ; 1144 nextline ; 1145 END ; 1146 IF forgetbox # 0 THEN 1147 IF errtotal = 0 THEN 1148 BEGIN 1149 error (429) ; 1150 write (mpcogout, '******** FORGETBOX IS :', forgetbox) ; nextline ; 1151 END ; 1152 $OPTIONS compile = true $ 1153 FOR it := forgetbox DOWNTO 1 DO 1154 freebloc (currentbloc) ; (* FREE FORGET BOXES *) 1155 regcharge := freereg ; 1156 workformaths := false ; 1157 IF stack_has_been_extended THEN 1158 BEGIN 1159 stack_has_been_extended := false ; 1160 genstand (pr6, saved_stack_end_place, iepp1, tny) ; 1161 genstand (pr0, reset_stack_end_op_place, itsp3, tn) ; 1162 END ; 1163 tempstor := lcsave ; 1164 forgetbox := 0 ; 1165 currentbloc := dummybloc ; 1166 $OPTIONS compile = trace $ 1167 IF stattrace > low THEN 1168 BEGIN 1169 write (mpcogout, '@@@ FIN FREEALLREGISTERS @@@ ') ; nextline ; 1170 END ; 1171 $OPTIONS compile = true $ 1172 END (* FREEALLREGISTERS *) ; 1173 1174 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 51 1175 1176 1177 (* ************************************ FCT RAISUSED ************************* *) 1178 1179 FUNCTION raisused : boolean ; 1180 1181 (* TRUE IF A-REGISTER IS USED (MAY BE A,AQ,EAQ) *) 1182 BEGIN (* RAISUSED *) 1183 raisused := true ; 1184 IF NOT regcharge [ra] THEN 1185 IF NOT regcharge [raq] THEN 1186 IF NOT regcharge [reaq] THEN 1187 raisused := false ; 1188 END (* RAISUSED *) ; 1189 1190 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 52 1191 1192 1193 (* ************************************ FCT. RQISUSED ************************ *) 1194 1195 FUNCTION rqisused : boolean ; 1196 1197 (* TRUE IF Q-REGISTER IS USED (MAY BE Q,AQ,EAQ) *) 1198 BEGIN (* RQISUSED *) 1199 rqisused := true ; 1200 IF NOT regcharge [rq] THEN 1201 IF NOT regcharge [raq] THEN 1202 IF NOT regcharge [reaq] THEN 1203 rqisused := false ; 1204 END (* RQISUSED *) ; 1205 1206 1207 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 53 1208 1209 (* ************************************ FCT. RAQISUSED ************************ *) 1210 1211 FUNCTION raqisused : boolean ; 1212 1213 (* TRUE IF AQ-REGISTER IS USED (MAY BE A,Q,AQ, *) 1214 (* USED EAQ RAQ AND REAQ *) 1215 BEGIN (* RAQISUSED *) 1216 raqisused := true ; 1217 IF NOT regcharge [ra] THEN 1218 IF NOT regcharge [rq] THEN 1219 IF NOT regcharge [raq] THEN 1220 IF NOT regcharge [reaq] THEN 1221 raqisused := false ; 1222 END (* RAQISUSED *) ; 1223 1224 1225 1226 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 54 1227 1228 (* ************************************ SAUVEREG ****************************** *) 1229 PROCEDURE sauvereg ; 1230 1231 (* C .THIS PROCEDURE MUST BE CALLED EACH TIME THE CONTENT OF A REGISTER 1232* WILL BE ALTERED 1233* .IF FREG ALREADY USED, THEN SAVE IT AND MEMORIZES SAVING PLACE IN 1234* ASSOCIATED BOX 1235* .THE USED REGISTERS ARE CHAINED FROM CURRENTBLOC UNTIL DUMMYBLOC. 1236* .IF "FLOAD" THEN CREATES A NEW BOX AND FLAG IT LOADED 1237* ELSE SAVE IT 1238* .SPECIAL CASES 1239* FREG=RA THEN CHECK AQ ,EAQ 1240* =RQ CHECK AQ, EAQ 1241* =AQ CHECK A Q EAQ 1242* =EAQ CHECK A Q EAQ 1243* C *) 1244 (* E ERRORS DETECTED 1245* 403: BOX NOT FOUND 1246* 404: REGISTER ALREADY SAVED 1247* E *) 1248 LABEL 1249 1 ; (* EXIT WHILE *) 1250 VAR 1251 lreg, lregq, auxreg, auxregq : register ; 1252 lcurrbloc : regpt ; 1253 linst : istand ; 1254 lincr : integer ; 1255 BEGIN (* SAUVEREG *) 1256 $OPTIONS compile = trace $ 1257 IF stattrace > none THEN 1258 BEGIN 1259 write (mpcogout, '@@@ DEBUT SAUVEREG @@@ WITH FREG,FLOAD:', regname [freg], fload) ; 1260 nextline ; 1261 IF stattrace = high THEN printstatusregister ; 1262 END ; 1263 $OPTIONS compile = true $ 1264 lreg := nreg ; (* DEFAULT MEANS THERE IS NO REGISTER TO SAVE *) 1265 lregq := nreg ; 1266 IF regcharge [freg] THEN 1267 lreg := freg ELSE 1268 BEGIN (* SPECIAL FOR ACC-QUOT *) 1269 IF freg >= ra THEN 1270 IF freg <= reaq THEN 1271 BEGIN 1272 IF regcharge [reaq] THEN lreg := reaq ELSE 1273 IF regcharge [raq] THEN lreg := raq ELSE 1274 IF freg >= raq THEN 1275 BEGIN 1276 IF regcharge [ra] THEN lreg := ra ; 1277 IF regcharge [rq] THEN 1278 IF lreg = nreg THEN lreg := rq ELSE lregq := rq ; 1279 END (* >=RAQ *) ; 1280 END (* RA..REAQ *) ; 1281 END (* SPECIAL *) ; 1282 IF lreg # nreg THEN 1283 BEGIN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 55 1284 (* AT LEAST ONE TO SAVE *) 1285 (* FIND ASSOCIATED BOX(ES) *) 1286 lcurrbloc := currentbloc ; 1287 auxreg := lreg ; auxregq := lregq ; 1288 WHILE lcurrbloc # NIL DO 1289 WITH lcurrbloc@ DO 1290 BEGIN 1291 IF sregister = auxreg THEN 1292 BEGIN 1293 $OPTIONS compile = trace $ 1294 IF saveplace # 0 THEN error (404) ; 1295 $OPTIONS compile = true $ 1296 lincr := bytesinword ; (* COMMON DEFAULT *) 1297 CASE lreg OF 1298 pr1, pr2, pr5, pr7 : BEGIN linst := prinst [spri, lreg] ; 1299 lincr := bytesindword ; 1300 END ; 1301 x0, x1, x2, x3, x4, x5 : linst := xinst [sxl, lreg] ; 1302 ra : linst := ista ; 1303 rq : linst := istq ; 1304 raq : BEGIN linst := istaq ; lincr := bytesindword ; 1305 END (* RAQ *) ; 1306 reaq : BEGIN linst := idfst ; lincr := bytesindword ; 1307 END (* REAQ *) ; 1308 psr : BEGIN linst := inop ; lincr := psrinbytes ; 1309 END (* PSR *) ; 1310 END (* CASE LREG *) ; 1311 saveplace := oldnewstor (lincr) ; 1312 (* SAVING INSTR. NOW *) 1313 IF linst # inop THEN 1314 genstand (pr6, saveplace DIV bytesinword, linst, tn) ELSE 1315 BEGIN (* MOVE PSR *) 1316 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 1317 geneism (imlr, 0 (* FILL BYTE *), p0t0r0) ; 1318 gendesca (pr6, psrdepw, 0, l9, psrinbytes, tn) ; (* ORIGIN *) 1319 gendesca (pr6, saveplace DIV bytesinword, 0, l9, psrinbytes, tn) ; 1320 END (* MOVE PSR *) ; 1321 IF auxregq = nreg THEN GOTO 1 ; (* EXIT WHILE *) 1322 auxreg := nreg ; 1323 END (* SREGISTER = AUXREG *) ELSE 1324 IF sregister = auxregq THEN 1325 BEGIN 1326 $OPTIONS compile = security $ 1327 IF saveplace # 0 THEN error (404) ; 1328 $OPTIONS compile = true $ 1329 saveplace := oldnewstor (bytesinword) ; 1330 genstand (pr6, saveplace DIV bytesinword, istq, tn) ; 1331 regcharge [rq] := false ; 1332 IF auxreg = nreg THEN GOTO 1 ; (* EXIT WHILE *) 1333 auxregq := nreg ; 1334 END (* LREGQ *) ; 1335 lcurrbloc := nextbloc ; 1336 END (* WITH,WHILE *) ; 1337 (* EXIT HERE MEANS COMPILER'S ERROR *) 1338 error (403) ; 1339 1 : 1340 IF lreg # freg THEN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 56 1341 regcharge [lreg] := false ; 1342 END (* A REGISTER TO SAVE *) ; 1343 IF fload THEN 1344 newbloc (freg) ELSE regcharge [freg] := false ; 1345 $OPTIONS compile = trace $ 1346 IF stattrace > low THEN 1347 BEGIN 1348 write (mpcogout, '* SAVED REGISTER(S) IS(ARE):', regname [lreg], regname [lregq]) ; 1349 nextline ; 1350 write (mpcogout, '@@@ FIN SAUVEREG @@@') ; nextline ; 1351 END ; 1352 $OPTIONS compile = true $ 1353 END (* SAUVEREG *) ; 1354 1355 1356 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 57 1357 1358 (* ************************************ REGENERE ****************************** *) 1359 1360 PROCEDURE regenere (oldbloc : regpt) ; 1361 1362 (* C .OLDBLOC (NOT NIL) POINTS A REGISTER BOX WHOSE SREGISTER MUST BE 1363* RELOADED (IF NOT ALREADY LOADED FOR THIS BLOC) 1364* .IF PREVIOUS LOADED, IT IS SAVED 1365* .REGCHARGE MUST BE TRUE AFTER 1366* C *) 1367 (* E ERRORS DETECTED 1368* 427: OLDBLOC IS NIL 1369* 428: REG NOT SAVED,NOT LOADED 1370* E *) 1371 VAR 1372 ltag : tag ; 1373 linst : istand ; 1374 BEGIN (* REGENERE *) 1375 $OPTIONS compile = trace $ 1376 IF stattrace > none THEN 1377 BEGIN 1378 write (mpcogout, '@@@ DEBUT REGENERE @@@') ; nextline ; 1379 IF stattrace = high THEN 1380 BEGIN 1381 printstatusregister ; 1382 printregbox (oldbloc) ; 1383 END ; 1384 END ; 1385 $OPTIONS compile = true $ 1386 $OPTIONS compile = security $ 1387 IF oldbloc = NIL THEN error (427) ELSE 1388 IF (oldbloc@.saveplace = 0) AND 1389 (NOT regcharge [oldbloc@.sregister]) THEN error (428) ELSE 1390 $OPTIONS compile = true $ 1391 WITH oldbloc@ DO 1392 IF saveplace # 0 THEN 1393 BEGIN (* SAVED *) ltag := tn ; 1394 sauvereg (sregister, false) ; 1395 CASE sregister OF 1396 pr1, pr2, pr5, pr7 : 1397 BEGIN ltag := tny ; linst := prinst [epp, sregister] ; END ; 1398 x0, x1, x2, x3, x4, x5, x6, x7 : linst := xinst [lxl, sregister] ; 1399 ra : linst := ilda ; 1400 rq : linst := ildq ; 1401 raq : linst := ildaq ; 1402 reaq : linst := idfld ; 1403 psr : linst := inop ; 1404 END (* CASE SREGISTER *) ; 1405 IF linst # inop THEN 1406 genstand (pr6, saveplace DIV bytesinword, linst, ltag) ELSE 1407 BEGIN (* RELOAD PSR *) 1408 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 1409 geneism (imlr, 0 (* FILL BYTE *), p0t0r0) ; 1410 gendesca (pr6, saveplace DIV bytesinword, 0, l9, psrinbytes, tn) ; 1411 gendesca (pr6, psrdepw, 0, l9, psrinbytes, tn) ; 1412 psrsize := psrinbytes ; 1413 END (* RELOAD PSR *) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 58 1414 saveplace := 0 ; 1415 regcharge [sregister] := true ; 1416 END (* REG WAS SAVED *) ; 1417 $OPTIONS compile = trace $ 1418 IF stattrace > low THEN 1419 BEGIN 1420 write (mpcogout, '@@@ FIN REGENERE @@@') ; nextline ; 1421 END ; 1422 $OPTIONS compile = true $ 1423 END (* REGENERE *) ; 1424 1425 1426 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 59 1427 1428 (* ************************************ GETPR ********************************* *) 1429 1430 PROCEDURE getpr ; 1431 1432 (* C .A NEW POINTER REGISTER IS REQUESTED 1433* .SEARCHS A FREE IN PR1..MAXPRUSED 1434* IF NONE SAVE ONE (THE LAST) 1435* .BY CALLING SAUVEREG 1436* CREATES A NEW BOX POINTED BY CURRENTBLOC ,REGCHARGE TRUE 1437* .RETURNS CURRENTPR 1438* C *) 1439 LABEL 1440 1 ; (* EXIT LOOP FOR *) 1441 VAR 1442 lpr : preg ; 1443 BEGIN (* GETPR *) 1444 $OPTIONS compile = trace $ 1445 IF stattrace > none THEN 1446 BEGIN 1447 write (mpcogout, '@@@ DEBUT GETPR @@@') ; nextline ; 1448 END ; 1449 $OPTIONS compile = true $ 1450 FOR lpr := pr1 TO maxprused DO 1451 IF NOT regcharge [lpr] THEN 1452 GOTO 1 ; (* EXIT LOOP WITH LPR OK *) 1453 (* HERE ALL PRI'S ALREADY LOADED. *) 1454 (* LPR BECOMES MAXPRUSED *) 1455 lpr := maxprused ; 1456 1 : 1457 sauvereg (lpr, true) ; (* CURRENTBLOC, REGCHARGE OK *) 1458 currentpr := lpr ; 1459 $OPTIONS compile = trace $ 1460 IF stattrace > low THEN 1461 BEGIN 1462 write (mpcogout, '@@@ FIN GETPR @@@ WITH CURRENTPR:', regname [currentpr]) ; nextline ; 1463 END ; 1464 $OPTIONS compile = true $ 1465 END (* GETPR *) ; 1466 1467 1468 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 60 1469 1470 (* ************************************ GETINDEX ****************************** *) 1471 1472 PROCEDURE getindex ; 1473 1474 (* C .A NEW INDEX REGISTER IS REQUESTED. 1475* .SEARCHES A FREE ONE IN X0..MAXINXUSED 1476* IF NONE,SAVE ONE (ALWAYS THE LAST) 1477* .BY CALLING SAUVEREG 1478* CREATES A NEW BLOC ,REGCHARGE OK 1479* .RETURNS CURRENTINDEX 1480* C *) 1481 LABEL 1482 1 ; (* EXIT FOR *) 1483 VAR 1484 linx : register ; 1485 BEGIN (* GETINDEX *) 1486 $OPTIONS compile = trace $ 1487 IF stattrace > none THEN 1488 BEGIN write (mpcogout, '@@@ DEBUT GETINDEX @@@') ; nextline ; 1489 END ; 1490 $OPTIONS compile = true $ 1491 FOR linx := x0 TO maxinxused DO 1492 IF NOT regcharge [linx] THEN 1493 GOTO 1 ; (* EXIT LOOP WITH LINX OK *) 1494 (* HERE ALL XI'S ALREADY LOADED. *) 1495 (* SELECT MAXINXUSED *) 1496 linx := maxinxused ; 1497 1 : 1498 sauvereg (linx, true) ; (* CURRENTBLOC, REGCHARGE OK *) 1499 currentindex := linx ; 1500 $OPTIONS compile = trace $ 1501 IF stattrace > low THEN 1502 BEGIN 1503 write (mpcogout, '@@@ FIN GETINDEX @@@ WITH CURRENTINDEX:', regname [currentindex]) ; 1504 nextline ; 1505 END ; 1506 $OPTIONS compile = true $ 1507 END (* GETINDEX *) ; 1508 1509 1510 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 61 1511 1512 (* ************************** LOADBASE **************************************** *) 1513 1514 PROCEDURE loadbase (flev : integer) ; 1515 1516 (* C 1517* THIS PROCEDURE LOADS A POINTER REGISTER WITH THE BASIS OF THE STACK FRAME 1518* OF THE PROCEDURE DEFINED AT THE LEVEL "FLEV" ; 1519* IN EACH FRAME, AT DISPLACEMENT DLKDEP, THERE IS AN ITS PAIR POINTING THE 1520* FRAME OF THE LOGICAL MOTHER-PROCEDURE , PREPARED BY CALLING SEQUENCE, 1521* STORED BY ENTRY SEQUENCE 1522* C *) 1523 VAR 1524 it : integer ; 1525 linst : istand ; 1526 BEGIN (* LOADBASE *) 1527 $OPTIONS compile = trace $ 1528 IF stattrace > none THEN 1529 BEGIN 1530 write (mpcogout, '@@@ DEBUT LOADBASE @@@ WITH FLEV', flev : 4) ; nextline ; 1531 END ; 1532 $OPTIONS compile = true $ 1533 (* OBTAINS A FREE PR IN "CURRENTPR" *) 1534 getpr ; (* CURRENTBLOC ASSIGNED HERE *) 1535 linst := prinst [epp, currentpr] ; 1536 genstand (pr6, dlkdepw, linst, tny) ; (* LOGICAL MOTHER *) 1537 FOR it := 1 TO level - flev - 1 DO 1538 genstand (currentpr, dlkdepw, linst, tny) ; 1539 $OPTIONS compile = trace $ 1540 IF stattrace > low THEN 1541 BEGIN 1542 write (mpcogout, '@@@ FIN LOADBASE @@@ WITH CURRENTPR: ', regname [currentpr], 1543 ' CURRENTBLOC AT @ ', ord (currentbloc), ' LEVEL IS:', level : 4) ; 1544 nextline ; 1545 END ; 1546 $OPTIONS compile = true $ 1547 END (* LOADBASE *) ; 1548 1549 1550 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 62 1551 1552 (* ************************************ ADDRESSVAR **************************** *) 1553 1554 PROCEDURE addressvar (fctp : ctp ; VAR fattr : attr ; modif : boolean) ; 1555 1556 (* C ."FCTP" IS A NOT NIL POINTER ON A CONTEXTTABLE BOX 1557* * VARS PROC FIELD 1558* .WITH BOX'S INFORMATIONS,BUILDS A "VARBL"FATTR.,USED TO ADDRESS POINTED ITEM 1559* . ONE FIELD OF FCTP@ CAN BE ALTERED .VISUSED 1560* C *) 1561 (* E ERRORS DETECTED 1562* 438 FCTP IS NIL 1563* E *) 1564 VAR 1565 it : integer ; 1566 1567 BEGIN (* ADDRESSVAR *) 1568 $OPTIONS compile = trace $ 1569 IF stattrace > none THEN 1570 BEGIN 1571 write (mpcogout, '@@@ DEBUT ADDRESSVAR @@@ WITH FCTP AT @', ord (fctp)) ; nextline ; 1572 END ; 1573 IF fctp = NIL THEN error (438) ELSE 1574 $OPTIONS compile = true $ 1575 WITH fctp@ (* POINTED BOX *), fattr (* BUILT ATTR *) DO 1576 BEGIN 1577 (* COMMON FIELDS *) 1578 initattrvarbl (fattr) ; 1579 nameaddr := ctptr ; 1580 (* NOW THREE MAJOR CASES VARS-FIELD-PROC *) 1581 IF klass = vars THEN 1582 BEGIN 1583 typtr := vtype ; vlev := vlevel ; 1584 pckd := false ; 1585 IF vtype # NIL THEN 1586 IF vtype@.form = power THEN pckd := vtype@.pack ; 1587 visused := true ; (* FOR FCTP@ *) 1588 IF vtype = NIL THEN 1589 BEGIN 1590 dplmt := 0 ; itsdplmt := 0 ; basebloc := NIL ; basereg := pr6 ; vlev := level ; 1591 END ELSE 1592 IF vkind = actual THEN 1593 IF vtype^.form = files THEN 1594 BEGIN 1595 itsdplmt := 0 ; dplmt := 0 ; 1596 IF vlev = 0 THEN 1597 BEGIN 1598 basereg := prstatic ; basebloc := NIL ; access := pointable ; 1599 itsdplmt := vaddr ; 1600 END ELSE 1601 IF vlev = level THEN 1602 BEGIN 1603 basereg := pr6 ; basebloc := NIL ; access := pointable ; 1604 itsdplmt := vaddr ; 1605 END ELSE 1606 BEGIN 1607 loadbase (vlev) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 63 1608 basereg := currentpr ; basebloc := currentbloc ; access := pointable ; 1609 itsdplmt := vaddr ; 1610 END ; 1611 END ELSE 1612 BEGIN 1613 itsdplmt := 0 ; dplmt := vaddr ; 1614 IF vlev = 0 THEN 1615 BEGIN (* GLOBAL *) 1616 basereg := prstatic ; basebloc := NIL ; access := direct ; 1617 END (* GLOBAL *) ELSE 1618 IF vlev = level THEN 1619 BEGIN (* LOCAL *) 1620 basereg := pr6 ; basebloc := NIL ; access := direct ; 1621 END (* LOCAL *) ELSE 1622 BEGIN (* INTERM. *) 1623 loadbase (vlev) ; (* RETURNS CURRENTPR,CURRENTBLOC *) 1624 basereg := currentpr ; basebloc := currentbloc ; access := pointee ; 1625 END (* INTERM. *) ; 1626 END (* ACTUAL *) ELSE 1627 IF vkind = formal THEN 1628 BEGIN 1629 itsdplmt := vaddr ; dplmt := 0 ; access := pointable ; 1630 IF vlev = level THEN 1631 BEGIN (* LOCAL PARM *) 1632 basereg := pr6 ; basebloc := NIL ; 1633 END (* LOCAL *) ELSE 1634 BEGIN (* INTERM. *) 1635 loadbase (vlev) ; (* RETURNS CURRENTPR,CURRENTBLOC *) 1636 basereg := currentpr ; basebloc := currentbloc ; 1637 END (* INTERM. *) ; 1638 END (* FORMAL *) ELSE 1639 IF vkind = arraybound THEN 1640 BEGIN 1641 itsdplmt := vaddr ; 1642 dplmt := vdispl ; access := pointable ; 1643 IF vlev = level THEN 1644 BEGIN 1645 basereg := pr6 ; basebloc := NIL 1646 END ELSE 1647 BEGIN 1648 loadbase (vlev) ; 1649 basereg := currentpr ; basebloc := currentbloc 1650 END ; 1651 END (* ARRAYBOUND *) ELSE 1652 BEGIN (* IMPORTED,EXPORTABLE *) 1653 basereg := prlink ; basebloc := NIL ; dplmt := 0 ; access := pointable ; 1654 itsdplmt := vaddr ; 1655 END (* EXTERNAL *) ; 1656 END (* KLASS=VARS *) ELSE 1657 IF klass = field THEN (* FOUND UNDER A WITH *) 1658 (* RECORD POINTED BY DISPLAY[DISX] *) 1659 BEGIN 1660 typtr := fldtype ; basebloc := NIL ; 1661 WITH display [disx] DO 1662 IF occur = cwith THEN (* NOT PACKED, EASY TO ADDRESS *) 1663 BEGIN 1664 vlev := clevel ; pckd := false ; itsdplmt := 0 ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 64 1665 IF vlev = 0 THEN basereg := prstatic ELSE basereg := pr6 ; 1666 dplmt := cdspl + fldaddr ; access := direct ; 1667 IF symbolmap THEN 1668 FOR it := 1 TO creflist.nbr DO 1669 IF modif THEN nameisref (creflist.symbolp [it], symbolfile, -symbolline) 1670 ELSE nameisref (creflist.symbolp [it], symbolfile, symbolline) ; 1671 END (* CWITH *) ELSE 1672 BEGIN (* VWITH *) 1673 (* VDSPL IS AN POINTER *) 1674 (* STORED BY WITHSTAT *) 1675 vlev := level ; itsdplmt := vdspl ; basereg := pr6 ; 1676 dplmt := fldaddr ; access := pointable ; 1677 IF typtr@.form <= scalar THEN 1678 pckd := bytwidth < bytesinword ELSE pckd := (vpack OR typtr@.pack) ; 1679 IF symbolmap THEN 1680 FOR it := 1 TO vreflist.nbr DO 1681 IF modif THEN nameisref (vreflist.symbolp [it], symbolfile, -symbolline) 1682 ELSE nameisref (vreflist.symbolp [it], symbolfile, symbolline) ; 1683 END (* VWITH, WITH DISPLAY *) ; 1684 END (* FIELD *) ELSE 1685 BEGIN (* KLASS = PROC *) 1686 (* FOR A FUNCTION ASSIGNMENT *) 1687 typtr := proctype ; pckd := false ; itsdplmt := 0 ; 1688 vlev := proclevel + 1 ; 1689 IF vlev = level THEN 1690 BEGIN 1691 access := direct ; basereg := pr6 ; basebloc := NIL ; 1692 END ELSE 1693 BEGIN 1694 loadbase (vlev) ; 1695 access := pointee ; basereg := currentpr ; basebloc := currentbloc ; 1696 END ; 1697 dplmt := fctdepl ; 1698 (* USE OF RESERVED WORDS *) 1699 (* IN CURRENT STACK FRAME *) 1700 END (* PROC *) ; 1701 END (* WITH FCTP@,FATTR *) ; 1702 $OPTIONS compile = trace $ 1703 IF stattrace > low THEN 1704 BEGIN 1705 IF (stattrace = high) AND (fctp # NIL) THEN 1706 printattr (fattr) ; 1707 write (mpcogout, '@@@ FIN ADDRESSVAR @@@') ; nextline ; 1708 END ; 1709 $OPTIONS compile = true $ 1710 END (* ADDRESSVAR *) ; 1711 1712 1713 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 65 1714 1715 (* ************************************ CALCVARIENT *************************** *) 1716 1717 PROCEDURE calcvarient (VAR fattr : attr ; VAR fbase : preg ; VAR fdisp : integer ; 1718 VAR ftag : tag) ; 1719 1720 (* C GIVEN A FATTR ( IF LVAL THEN CHANGED HERE) 1721* TYPTR # NIL 1722* KIND= VARBL OR SVAL (NOT POWER) OR SAVED LVAL 1723* THIS PROCEDURE RETURNS THREE ITEMS NEEDED TO ADDRESS THE "WORD" 1724* FBASE 1725* FDISP EXPRESSED IN WORDS 1726* FTAG 1727* FOR SVAL, INSTRUCTION MUST BE GENERATE AFTER CALL 1728* C *) 1729 (* E ERRORS DETECTED 1730* 412 TYPTR IS NIL 1731* 413 KIND=LVAL (NOT SAVED) 1732* 414 KIND=CHAIN OR LCOND 1733* E *) 1734 VAR 1735 locdepw, locmemw : integer ; 1736 wretpt : wcstpt ; 1737 rretpt : rcstpt ; 1738 lretpt : lcstpt ; 1739 llretpt : llcstpt ; 1740 linst : istand ; 1741 $OPTIONS compile = true $ 1742 $OPTIONS compile = security $ 1743 ltag : tag ; 1744 BEGIN (* CALCVARIENT *) 1745 $OPTIONS compile = trace $ 1746 IF stattrace > none THEN 1747 BEGIN 1748 write (mpcogout, '@@@ DEBUT CALCVARIENT @@@') ; nextline ; 1749 IF stattrace = high THEN 1750 printattr (fattr) ; 1751 END ; 1752 IF fattr.typtr = NIL THEN error (412) ELSE 1753 $OPTIONS compile = true $ 1754 fbase := nreg ; fdisp := 0 ; ftag := tn ; 1755 IF fattr.kind = lval THEN 1756 lvalvarbl (fattr) ; 1757 WITH fattr DO 1758 IF kind = varbl THEN 1759 BEGIN 1760 IF basereg <= maxprused THEN 1761 regenere (basebloc) ; 1762 IF inxreg # nxreg THEN 1763 IF inxbloc@.saveplace # 0 THEN 1764 BEGIN 1765 IF NOT rqisused THEN inxreg := rq ELSE 1766 IF NOT raisused THEN inxreg := ra ELSE inxreg := x6 ; 1767 inxbloc@.sregister := inxreg ; 1768 regenere (inxbloc) ; 1769 END (* MODIFIER SAVED *) ; 1770 locdepw := dplmt DIV bytesinword ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 66 1771 locmemw := inxmem DIV bytesinword ; 1772 fbase := basereg ; (* <=== *) 1773 IF access = pointable THEN 1774 BEGIN 1775 fdisp := itsdplmt DIV bytesinword ; (* <=== *) 1776 IF (fdisp >= twoto14) OR (fdisp < -twoto14) THEN 1777 BEGIN 1778 genstand (nreg, fdisp, ieax7, tn) ; 1779 freebloc (basebloc) ; getpr ; 1780 genstand (basereg, 0, prinst [epp, currentpr], tx7) ; 1781 fdisp := 0 ; basebloc := currentbloc ; basereg := currentpr ; 1782 END ; 1783 IF inxreg = nxreg THEN 1784 BEGIN 1785 IF locmemw = 0 THEN 1786 BEGIN (* NO STORAGE MODIFIER *) 1787 IF locdepw = 0 THEN 1788 ftag := tny ELSE 1789 BEGIN 1790 genstand (nreg, locdepw, ieax7, tn) ; ftag := tyx7 ; 1791 END (* LOCDEPW#0 *) ; 1792 END (* LOCMEMW=0 *) ELSE 1793 BEGIN (* LOCMEMW#0 *) 1794 genstand (pr6, locmemw, ilxl7, tn) ; 1795 IF locdepw # 0 THEN 1796 genstand (nreg, locdepw, iadlx7, tdu) ; 1797 ftag := tyx7 ; 1798 END (* LOCMEMW #0 *) ; 1799 END (* INXREG=NXREG *) ELSE 1800 BEGIN (* INXREG =RA RQ XI *) 1801 IF locdepw # 0 THEN 1802 BEGIN 1803 IF inxreg = rq THEN 1804 BEGIN 1805 linst := iadq ; ltag := tdl ; 1806 END (* RQ *) ELSE 1807 IF inxreg = ra THEN 1808 BEGIN 1809 linst := iada ; ltag := tdl ; 1810 END (* RA *) ELSE 1811 BEGIN (* XI *) 1812 linst := xinst [adlx, inxreg] ; ltag := tdu ; 1813 END (* XI *) ; 1814 genstand (nreg, locdepw, linst, ltag) ; 1815 END (* LOCDEPW *) ; 1816 IF locmemw # 0 THEN 1817 BEGIN (* STORAGE MODIFIER *) 1818 IF inxreg = rq THEN 1819 linst := iadq ELSE 1820 IF inxreg = ra THEN 1821 linst := iada ELSE 1822 linst := ilxl7 ; 1823 genstand (pr6, locmemw, linst, tn) ; 1824 IF linst = ilxl7 THEN 1825 BEGIN (* CUMUL WITH PREVIOUS INXREG *) 1826 genstand (pr6, evareaw, istx7, tn) ; (* STORE IN 0..17 *) 1827 genstand (pr6, evareaw, xinst [adlx, inxreg], tn) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 67 1828 END (* ILXL7 *) ; 1829 END (* LOCMEMW# 0 *) ; 1830 (* <=== *) 1831 ftag := starmodif [inxreg] ; 1832 END (* INXREG RA RQ XI *) ; 1833 END (* ACCESS POINTABLE *) ELSE 1834 BEGIN (* POINTEE,DIRECT *) 1835 (* <=== *) 1836 fdisp := locdepw ; 1837 IF (fdisp >= twoto14) OR (fdisp < -twoto14) THEN 1838 BEGIN 1839 IF inxreg = nxreg THEN 1840 BEGIN 1841 genstand (nreg, fdisp, ieax7, tn) ; 1842 inxreg := x7 ; 1843 END 1844 ELSE 1845 BEGIN 1846 IF inxreg = rq THEN linst := iadq 1847 ELSE IF inxreg = ra THEN linst := iada 1848 ELSE linst := xinst [adlx, inxreg] ; 1849 genstand (nreg, fdisp, linst, tdl) ; 1850 END ; 1851 fdisp := 0 ; 1852 END ; 1853 IF inxreg = nxreg THEN 1854 BEGIN 1855 IF locmemw = 0 THEN 1856 ftag := tn ELSE 1857 BEGIN 1858 genstand (pr6, locmemw, ilxl7, tn) ; ftag := tx7 ; 1859 END (* LOCMEM#0 *) ; 1860 END (* NXREG *) ELSE 1861 BEGIN (* # NXREG *) 1862 IF locmemw # 0 THEN 1863 BEGIN (* CUMUL *) 1864 IF inxreg = rq THEN 1865 linst := iadq ELSE 1866 IF inxreg = ra THEN 1867 linst := iada ELSE linst := ilxl7 ; 1868 genstand (pr6, locmemw, linst, tn) ; 1869 IF linst = ilxl7 THEN 1870 BEGIN 1871 genstand (pr6, evareaw, istx7, tn) ; 1872 genstand (pr6, evareaw, xinst [adlx, inxreg], tn) ; 1873 END (* ILXL7 *) ; 1874 END (* CUMUL *) ; 1875 (* <==== *) 1876 ftag := modif [inxreg] ; 1877 END (* # NXREG *) ; 1878 END (* POINTEE,DIRECT *) ; 1879 freebloc (basebloc) ; 1880 freebloc (inxbloc) ; 1881 END (* KIND=VARBL *) ELSE 1882 IF kind = sval THEN 1883 BEGIN (* <=== *) fbase := nreg ; fdisp := 0 ; ftag := tic ; 1884 IF typtr@.form = power THEN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 68 1885 BEGIN 1886 IF longv = bytesindword THEN 1887 BEGIN 1888 enterlcst (valpw, lretpt) ; enterundlab (lretpt@.lplace) ; 1889 END ELSE 1890 BEGIN 1891 enterllcst (valpw, llretpt) ; enterundlab (llretpt@.llplace) ; 1892 END ; 1893 END ELSE 1894 IF typtr = nilptr THEN 1895 BEGIN 1896 enterlcst (nilpseudoset, lretpt) ; 1897 enterundlab (lretpt@.lplace) ; 1898 END (* NIL *) ELSE 1899 IF typtr = realptr THEN 1900 BEGIN 1901 enterreal (rsval, rretpt) ; 1902 enterundlab (rretpt@.rplace) ; 1903 END (* REAL *) ELSE 1904 IF inbounds (val, 0, twoto17m1) THEN 1905 BEGIN 1906 (* <=== *) fdisp := val ; ftag := tdl ; 1907 END ELSE 1908 BEGIN 1909 entercst (val, wretpt) ; 1910 enterundlab (wretpt@.cstplace) ; 1911 END ; 1912 END (* SVAL *) 1913 $OPTIONS compile = trace $ 1914 ELSE 1915 IF kind = lval THEN error (413) ELSE error (414) 1916 $OPTIONS compile = true $ 1917 ; 1918 (* END WITH FATTR *) 1919 $OPTIONS compile = trace $ 1920 IF stattrace > low THEN 1921 BEGIN 1922 write (mpcogout, '@@@ FIN CALCVARIENT @@@ WITH FBASE,FDISP,FTAG: ', regname [fbase], 1923 fdisp : 12, tagsymb [ftag] : 5) ; 1924 nextline ; 1925 END ; 1926 $OPTIONS compile = true $ 1927 END (* CALCVARIENT *) ; 1928 1929 1930 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 69 1931 1932 (* ************************************ LOADADR ******************************* *) 1933 1934 PROCEDURE loadadr (VAR fattr : attr ; wantedpr : preg) ; 1935 1936 (* C ."FATTR" DESCRIBES A VARBL OR A CHAIN 1937* .THIS PROC LOADS A PR. WITH THE COMPLETE ADDRESS OF ITEM 1938* .IF WANTEDPR = NREG THEN RETURNS CURRENTBLOC, CURRENTPR 1939* ELSE LOADS ONLY WANTEDPR WITHOUT SAVING ANYTHING 1940* .FREES BASEBLOC, INXBLOC 1941* C *) 1942 (* E ERRORS DETECTED 1943* 405: FATTR MUST BE CHAIN OR VARBL 1944* E *) 1945 VAR 1946 linst : istand ; 1947 ended : boolean ; 1948 prtoload, lbase : preg ; 1949 locdep : integer ; 1950 BEGIN (* LOADADR *) 1951 $OPTIONS compile = trace $ 1952 IF stattrace > none THEN 1953 BEGIN 1954 write (mpcogout, '@@@ DEBUT LOADADR @@@ WITH WANTEDPR ', regname [wantedpr]) ; 1955 nextline ; 1956 IF stattrace = high THEN 1957 printattr (fattr) ; 1958 END ; 1959 $OPTIONS compile = true $ 1960 lbase := nreg ; 1961 WITH fattr DO 1962 IF kind = varbl THEN 1963 BEGIN 1964 IF wantedpr = nreg THEN 1965 BEGIN 1966 IF basebloc = NIL THEN (* BASEREG PR4 OR PR6 *) 1967 BEGIN 1968 getpr ; 1969 lbase := basereg ; prtoload := currentpr ; 1970 END (* NIL *) ELSE 1971 BEGIN 1972 IF basebloc@.saveplace = 0 THEN 1973 BEGIN 1974 freebloc (basebloc) ; newbloc (basereg) ; 1975 currentpr := basereg ; 1976 lbase := basereg ; prtoload := basereg ; 1977 END ELSE 1978 BEGIN (* SAVED *) 1979 getpr ; 1980 genstand (pr6, basebloc@.saveplace DIV bytesinword, 1981 prinst [epp, currentpr], tny) ; 1982 lbase := currentpr ; prtoload := currentpr ; 1983 freebloc (basebloc) ; 1984 END (* SAVED *) ; 1985 END (* # PR4,PR6 *) ; 1986 END (* WANTEDPR=NREG *) ELSE 1987 BEGIN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 70 1988 prtoload := wantedpr ; 1989 IF basebloc = NIL THEN 1990 lbase := basereg ELSE 1991 IF basebloc@.saveplace = 0 THEN 1992 BEGIN 1993 freebloc (basebloc) ; lbase := basereg ; 1994 END ELSE 1995 BEGIN 1996 genstand (pr6, basebloc@.saveplace DIV bytesinword, 1997 prinst [epp, wantedpr], tny) ; 1998 lbase := wantedpr ; freebloc (basebloc) ; 1999 END ; 2000 END (* WANTEDPR #NREG *) ; 2001 IF access = pointable THEN 2002 BEGIN 2003 locdep := itsdplmt DIV bytesinword ; 2004 IF (locdep >= twoto14) OR (locdep < -twoto14) THEN 2005 BEGIN 2006 genstand (nreg, locdep, ieax7, tn) ; 2007 genstand (lbase, 0, prinst [epp, prtoload], tx7y) ; 2008 END 2009 ELSE 2010 genstand (lbase, locdep, prinst [epp, prtoload], tny) ; 2011 access := pointee ; 2012 lbase := prtoload ; 2013 (* BASEREG, BASEBLOC,ITSDPLMT *) 2014 (* NO MORE MEANINGS FULL *) 2015 END ; 2016 IF inxreg # nxreg THEN 2017 BEGIN 2018 IF inxbloc@.saveplace # 0 THEN 2019 BEGIN 2020 IF NOT raisused THEN inxreg := ra ELSE 2021 IF NOT rqisused THEN inxreg := rq ELSE inxreg := x6 ; 2022 inxbloc@.sregister := inxreg ; 2023 regenere (inxbloc) ; 2024 END ; 2025 END ; 2026 IF inxmem # 0 THEN 2027 BEGIN 2028 IF inxreg = ra THEN 2029 linst := iada ELSE 2030 IF inxreg = rq THEN 2031 linst := iadq ELSE 2032 IF inxreg = nxreg THEN 2033 BEGIN 2034 inxreg := x7 ; linst := ilxl7 ; 2035 END ELSE 2036 linst := inop ; 2037 IF linst # inop THEN 2038 BEGIN 2039 genstand (pr6, inxmem DIV bytesinword, linst, tn) ; 2040 inxmem := 0 ; 2041 END ; 2042 END ; 2043 ended := false ; 2044 IF prtoload = lbase THEN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 71 2045 IF dplmt = 0 THEN 2046 IF inxreg = nxreg THEN 2047 ended := true ; 2048 IF NOT ended THEN 2049 BEGIN 2050 locdep := dplmt DIV bytesinword ; 2051 IF dplmt MOD bytesinword <> 0 THEN 2052 IF dplmt < 0 THEN 2053 locdep := locdep - 1 ; 2054 IF (locdep >= twoto14) OR (locdep < -twoto14) THEN 2055 BEGIN 2056 IF inxreg = ra THEN 2057 IF locdep > 0 THEN 2058 genstand (nreg, locdep, iada, tdl) 2059 ELSE 2060 genstand (nreg, -locdep, isba, tdl) 2061 ELSE IF inxreg = rq THEN 2062 IF locdep > 0 THEN 2063 genstand (nreg, locdep, iadq, tdl) 2064 ELSE 2065 genstand (nreg, -locdep, isbq, tdl) 2066 ELSE IF inxreg IN [x0..x7] THEN 2067 genstand (nreg, locdep, xinst [adlx, inxreg], tdu) 2068 ELSE 2069 BEGIN 2070 inxreg := x6 ; 2071 genstand (nreg, locdep, ieax6, tn) 2072 END ; 2073 locdep := 0 ; 2074 END ; 2075 genstand (lbase, locdep, prinst [epp, prtoload], 2076 modif [inxreg]) ; 2077 IF inxmem # 0 THEN 2078 BEGIN 2079 genstand (pr6, inxmem DIV bytesinword, ilxl7, tn) ; 2080 genstand (prtoload, 0, iawd, tx7) ; 2081 END ; 2082 IF dplmt MOD bytesinword # 0 THEN (* ALWAYS >= 0 *) 2083 BEGIN 2084 genstand (nreg, dplmt MOD bytesinword, ieax7, tn) ; 2085 genstand (prtoload, 0, ia9bd, tx7) ; 2086 END ; 2087 END ; 2088 freebloc (inxbloc) ; inxreg := nxreg ; 2089 END (* KIND=VARBL *) ELSE 2090 IF kind = chain THEN 2091 BEGIN 2092 IF wantedpr = nreg THEN 2093 BEGIN 2094 getpr ; 2095 prtoload := currentpr ; 2096 END ELSE 2097 prtoload := wantedpr ; 2098 (* ALFACTP POINTS A BOX *) 2099 (* (KONST,ALFACONST) *) 2100 enterundlab (alfactp@.unddeb) ; 2101 genstand (nreg, 0, prinst [epp, prtoload], tic) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 72 2102 END (* CHAIN *) ELSE 2103 error (405) ; 2104 $OPTIONS compile = trace $ 2105 IF stattrace > low THEN 2106 BEGIN 2107 write (mpcogout, '@@@ FIN LOADADR @@@ WITH LOCALES PRTOLOAD,LBASE', regname [prtoload], 2108 regname [lbase]) ; nextline ; 2109 END ; 2110 $OPTIONS compile = true $ 2111 END (* LOADADR *) ; 2112 2113 2114 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 73 2115 2116 (* ************************************ TRANSFER ****************************** *) 2117 2118 PROCEDURE transfer (VAR fattr : attr ; inwhat : destination) ; 2119 2120 (* C INWHAT . <== INACC,INQ,INPSR FATTR BECOMES LVAL 2121* . ==> OUT GATTR(LVAL) ==> FATTR 2122* . INPR FATTR BECOMES POINTEE 2123* SUMMARY: LOADS A REGISTER WITH AN EXPRESSION DESCRIBED BY FATTR 2124* OR STORE ACC INTO THE VARBL DESCRIBED BY FATTR. 2125* C *) 2126 (* E ERRORS DETECTED 2127* 400 LDREGBLOC = NIL 2128* 401 LCOND SAVED 2129* 416 LVAL SAVED 2130* 418 INCORRECT ORIGIN 2131* 420 FATTR.KIND # VARBL (OUT) 2132* 421 GATTR.KIND # LVAL (OUT) 2133* E *) 2134 VAR 2135 lretpt : lcstpt ; 2136 llretpt : llcstpt ; 2137 target : register ; 2138 loadinst, lshift, rshift, rlogshift, storinst, llshift : istand ; 2139 lbase : preg ; 2140 ldisp, rightcount, leftcount, longitem, longset, longmove : integer ; 2141 ltag : tag ; 2142 tomove, callcalc 2143 $OPTIONS compile = security $, noterr 2144 $OPTIONS compile = true $ 2145 : boolean ; 2146 lmove : ieism ; 2147 2148 2149 (* ************************************ GENLOCSKIP < TRANSFER ***************** *) 2150 2151 PROCEDURE genlocskip (fjump : istand) ; 2152 2153 (* C GENERATES A BOOLEAN USING THE SETTING OF INDICATORS 2154* GENERATES FJUMP TO E1 2155* LOAD FALSE 2156* SKIP INCOND TO E2 2157* E1 LOAD TRUE 2158* E2 2159* C *) 2160 VAR 2161 locskip1, locskip2 : integer ; 2162 BEGIN (* GENLOCSKIP *) 2163 locskip1 := indfich ; genstand (nreg, 0, fjump, tic) ; 2164 genstand (nreg, ord (false), loadinst, tdl) ; 2165 locskip2 := indfich ; genstand (nreg, 0, itra, tic) ; 2166 inser (cb, locskip1) ; genstand (nreg, ord (true), loadinst, tdl) ; 2167 inser (cb, locskip2) ; 2168 END (* GENLOCSKIP *) ; 2169 2170 BEGIN (* TRANSFER *) 2171 $OPTIONS compile = security $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 74 2172 IF stattrace > none THEN 2173 BEGIN 2174 write (mpcogout, '@@@ DEBUT TRANSFER @@@ WITH INWHAT', ord (inwhat)) ; nextline ; 2175 IF stattrace >= medium THEN 2176 BEGIN 2177 write (mpcogout, '* FATTR INPUT OF TRANSFER IS:') ; nextline ; 2178 printattr (fattr) ; 2179 END ; 2180 END ; 2181 $OPTIONS compile = true $ 2182 WITH fattr DO 2183 IF typtr # NIL THEN 2184 IF typtr@.form # power THEN 2185 BEGIN (* NOT A SET *) 2186 IF inwhat # out THEN 2187 BEGIN 2188 2189 (* LOAD SEQUENCE OF ITEM DESCRIBED BY FATTR *) 2190 (* FIRST FIND THE TARGET REGISTER AND SUITABLE LOAD INSTR. *) 2191 (* INACC ==> REAQ DFLD FOR REAL 2192* RAQ LDAQ FOR POINTER 2193* RA LDA OR LLS 2194* INQ ==> RQ LDQ FOR SMALL ITEMS OR SHIFT FROM RA 2195* INAQ ==> RAQ LDAQ *) 2196 $OPTIONS compile = security $ 2197 noterr := true ; 2198 $OPTIONS compile = true $ 2199 CASE inwhat OF 2200 inaq : 2201 BEGIN 2202 $OPTIONS compile = security $ 2203 noterr := ((kind = varbl) AND (typtr@.size = bytesindword) AND 2204 (typtr # realptr)) OR 2205 ((kind = lval) AND (ldreg = raq)) ; 2206 $OPTIONS compile = true $ 2207 loadinst := ildaq ; target := raq ; 2208 END (* INAQ *) ; 2209 inq : 2210 BEGIN 2211 $OPTIONS compile = security $ 2212 noterr := ((kind = varbl) AND (typtr@.size <= bytesinword)) OR 2213 ((kind = lval) AND (ldreg IN [ra, rq])) OR 2214 ((kind = sval) AND (typtr@.size <= bytesinword)) OR 2215 (kind = lcond) ; 2216 $OPTIONS compile = true $ 2217 loadinst := ildq ; target := rq ; 2218 END (* INQ *) ; 2219 inacc : 2220 BEGIN 2221 IF typtr = realptr THEN 2222 BEGIN loadinst := idfld ; target := reaq ; 2223 END (* REAL *) ELSE 2224 IF (typtr@.size = bytesindword) OR (typtr@.form = pointer) THEN 2225 BEGIN 2226 target := raq ; (* ENDING TARGET *) 2227 (* ALSO FOR PACKED POINTER *) 2228 IF pckd AND (kind = varbl) AND (typtr@.form = pointer) THEN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 75 2229 loadinst := ilprp3 ELSE loadinst := ildaq ; 2230 END (* BYTESINDWORD *) ELSE 2231 BEGIN 2232 target := ra ; loadinst := ilda ; 2233 END ; 2234 END (* INACC *) ; 2235 inpr : 2236 $OPTIONS compile = security $ 2237 noterr := kind = varbl ; 2238 $OPTIONS compile = true $ 2239 END (* CASE INWHAT *) ; 2240 $OPTIONS compile = security $ 2241 IF NOT noterr THEN error (418) ELSE 2242 $OPTIONS compile = true $ 2243 CASE kind OF 2244 varbl : 2245 BEGIN 2246 callcalc := true ; 2247 IF pckd THEN 2248 IF typtr@.form # pointer THEN 2249 BEGIN 2250 callcalc := false ; 2251 loadadr (fattr, nreg) ; 2252 vlev := level ; 2253 itsdplmt := 0 ; 2254 access := pointee ; 2255 basereg := currentpr ; 2256 basebloc := currentbloc ; 2257 dplmt := 0 ; 2258 inxreg := nxreg ; 2259 inxbloc := NIL ; 2260 inxmem := 0 ; 2261 inxmemrw := true ; 2262 pckd := true ; 2263 END ; 2264 IF callcalc THEN 2265 calcvarient (fattr, lbase, ldisp, ltag) ; 2266 IF inwhat = inpr THEN 2267 BEGIN 2268 getpr ; (* ==> CURRENTPR,CURRENTBLOC, REGCHARGE *) 2269 IF pckd THEN (* PACKED POINTER ON ONE WORD *) 2270 BEGIN 2271 usednameaddr := nameaddr ; 2272 genstand (lbase, ldisp, prinst [lprp, currentpr], ltag) END ELSE 2273 BEGIN (* NOT PACKED *) 2274 IF ltag <= tx7 (* NO INDIRECT MODIFIER *) THEN 2275 BEGIN 2276 usednameaddr := nameaddr ; 2277 genstand (lbase, ldisp, prinst [epp, currentpr], 2278 newtagstar [ltag]) 2279 (* TAG BECOMES TAG* *) END ELSE 2280 BEGIN (* ALREADY INDIRECT *) 2281 genstand (lbase, ldisp, prinst [epp, currentpr], ltag) ; 2282 usednameaddr := nameaddr ; 2283 genstand (currentpr, 0, prinst [epp, currentpr], tny) ; 2284 END ; 2285 END (* NOT PACKED *) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 76 2286 (* FATTR BECOMES POINTEE *) 2287 vlev := level ; itsdplmt := 0 ; 2288 access := pointee ; basereg := currentpr ; 2289 basebloc := currentbloc ; dplmt := 0 ; 2290 inxreg := nxreg ; inxbloc := NIL ; inxmem := 0 ; 2291 inxmemrw := true ; pckd := false ; 2292 END (* INPR *) ELSE 2293 BEGIN 2294 IF callcalc THEN 2295 BEGIN 2296 sauvereg (target, true) ; (* CURRENTBLOC ,REGCHARGE OK *) 2297 usednameaddr := nameaddr ; 2298 genstand (lbase, ldisp, loadinst, ltag) ; 2299 END ; 2300 (* FOR PACKED ITEMS *) 2301 (* THE WHOLE WORD IS LOADED *) 2302 IF pckd THEN 2303 IF typtr@.form = pointer THEN 2304 BEGIN 2305 genstand (pr6, evareaw, ispri3, tn) ; 2306 genstand (pr6, evareaw, ildaq, tn) ; 2307 END ELSE 2308 BEGIN (* PCKD NOT POINTER *) 2309 IF callcalc THEN 2310 BEGIN 2311 rightcount 2312 := bitsinword - bitsinbyte * packedsize (typtr) ; 2313 leftcount := (dplmt MOD bytesinword) * bitsinbyte ; 2314 IF target = ra THEN 2315 BEGIN 2316 lshift := ials ; rshift := iars ; rlogshift := iarl ; 2317 END (* RA *) ELSE 2318 BEGIN (* RQ *) 2319 lshift := iqls ; rshift := iqrs ; rlogshift := iqrl ; 2320 END (* RQ *) ; 2321 IF leftcount # 0 THEN 2322 genstand (nreg, leftcount, lshift, tn) ; 2323 IF typtr@.form = numeric THEN 2324 genstand (nreg, rightcount, rshift, tn) ELSE 2325 genstand (nreg, rightcount, rlogshift, tn) ; 2326 END ELSE 2327 BEGIN 2328 (* BASEREG POINTS ITEM *) 2329 longitem := packedsize (typtr) ; 2330 IF typtr@.form = scalar THEN 2331 BEGIN 2332 lmove := imrl ; longmove := bytesinword ; 2333 rightcount := 0 ; 2334 END ELSE 2335 BEGIN 2336 lmove := imlr ; longmove := longitem ; 2337 rightcount := (bytesinword - longitem) * bitsinbyte ; 2338 END ; 2339 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 2340 geneism (lmove, 0 (* FILL 0 *), p0t0r0) ; 2341 usednameaddr := nameaddr ; 2342 gendesca (basereg, 0, 0, l9, longitem, tn) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 77 2343 gendesca (pr6, evareaw, 0, l9, longmove, tn) ; 2344 IF basebloc # NIL THEN freebloc (basebloc) ; 2345 sauvereg (target, true) ; 2346 genstand (pr6, evareaw, loadinst, tn) ; 2347 IF rightcount # 0 THEN 2348 BEGIN 2349 IF target = rq THEN rshift := iqrs ELSE 2350 rshift := iars ; 2351 genstand (nreg, rightcount, rshift, tn) ; 2352 END ; 2353 END ; 2354 END (* PCKD NOT POINTER *) ; 2355 (* CHANGE NOW FATTR *) 2356 kind := lval ; ldreg := target ; ldregbloc := currentbloc ; 2357 END (* NOT INPR *) ; 2358 END (* VARBL *) ; 2359 sval : 2360 BEGIN 2361 sauvereg (target, true) ; 2362 calcvarient (fattr, lbase, ldisp, ltag) ; 2363 genstand (lbase, ldisp, loadinst, ltag) ; 2364 (* CHANGE FATTR *) 2365 kind := lval ; ldreg := target ; ldregbloc := currentbloc ; 2366 END (* SVAL *) ; 2367 lval : BEGIN 2368 $OPTIONS compile = security $ 2369 IF ldregbloc@.saveplace # 0 THEN error (416) ; 2370 $OPTIONS compile = true $ 2371 (* NOOPERATION EXCEPT *) 2372 (* EXCHANGE BETWEEN RA<==> RQ *) 2373 IF (inwhat = inacc) AND (ldreg = rq) THEN 2374 llshift := ills ELSE 2375 IF (inwhat = inq) AND (ldreg = ra) THEN 2376 llshift := ilrl ELSE 2377 llshift := inop ; 2378 IF llshift # inop THEN 2379 BEGIN 2380 sauvereg (target, true) ; 2381 genstand (nreg, bitsinword, llshift, tn) ; 2382 freebloc (ldregbloc) ; 2383 ldreg := target ; ldregbloc := currentbloc ; 2384 END ; 2385 END (* LVAL *) ; 2386 lcond : 2387 BEGIN 2388 IF accbloc = NIL THEN 2389 sauvereg (target, true) ELSE 2390 IF target # accbloc@.sregister THEN 2391 BEGIN 2392 freebloc (accbloc) ; sauvereg (target, true) ; 2393 END ELSE 2394 $OPTIONS compile = security $ 2395 IF accbloc@.saveplace # 0 THEN error (401) ELSE 2396 $OPTIONS compile = true $ 2397 BEGIN 2398 freebloc (accbloc) ; newbloc (target) ; 2399 END ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 78 2400 CASE transf OF 2401 1 : (* BOOLEAN IS IN A0 *) 2402 IF target = ra THEN 2403 genstand (nreg, bitsinword - 1, iarl, tn) ELSE 2404 genstand (nreg, bitsindword - 1, ilrl, tn) ; 2405 2 : (* ZERO ON <==> TRUE *) 2406 genlocskip (itze) ; 2407 3 : (* BOOLEAN IS IN A *) 2408 IF target = rq THEN 2409 genstand (nreg, bitsinword, ilrl, tn) ; 2410 4 : (* SVAL TRUE *) 2411 genstand (nreg, ord (true), loadinst, tdl) ; 2412 5 : (* SVAL FALSE *) 2413 genstand (nreg, ord (false), loadinst, tdl) ; 2414 6 : (* ZERO OFF TRUE *) 2415 genlocskip (itnz) ; 2416 7 : (* NEGATIVE ON TRUE *) 2417 genlocskip (itmi) ; 2418 8 : (* NEGATIVE OR ZERO ON TRUE *) 2419 genlocskip (itmoz) ; 2420 9 : (* NEGATIVE OFF TRUE *) 2421 genlocskip (itpl) ; 2422 10 : (* ZERO OFF AND NEGATIVE OFF TRUE *) 2423 genlocskip (itpnz) ; 2424 11 : (* CARRY OFF TRUE *) 2425 genlocskip (itnc) ; 2426 12 : (* CARRY ON TRUE *) 2427 genlocskip (itrc) ; 2428 13 : (* REVERSE BOOLEAN IN A *) 2429 BEGIN 2430 genstand (nreg, 1, iera, tdl) ; 2431 IF target = rq THEN 2432 genstand (nreg, bitsinword, ilrl, tn) ; 2433 END ; 2434 14 : (* BOOLEAN IS IN Q *) 2435 IF target = ra THEN 2436 genstand (nreg, bitsinword, ills, tn) ; 2437 15 : (* REVERSE BOOLEAN IS IN Q *) 2438 BEGIN 2439 genstand (nreg, 1, ierq, tdl) ; 2440 IF target = ra THEN 2441 genstand (nreg, bitsinword, ills, tn) ; 2442 END ; 2443 END (* CASE TRANSF *) ; 2444 (* NOW CHANGES FATTR *) 2445 kind := lval ; ldreg := target ; ldregbloc := currentbloc ; 2446 END (* LCOND *) ; 2447 END (* CASE KIND *) ; 2448 END (* INWHAT # OUT *) ELSE 2449 BEGIN (* TRANSFER OUT *) 2450 $OPTIONS compile = security $ 2451 IF kind # varbl THEN error (420) ; 2452 IF gattr.kind # lval THEN error (421) ELSE 2453 $OPTIONS compile = true $ 2454 regenere (gattr.ldregbloc) ; 2455 CASE gattr.ldreg OF 2456 reaq : storinst := idfst ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 79 2457 raq : storinst := istaq ; 2458 ra : storinst := ista ; 2459 rq : storinst := istq ; 2460 END (* CASE GATTR.LDREG *) ; 2461 IF (NOT pckd) OR (typtr@.form = pointer) (* ONE ORTWOWORDS *) THEN 2462 calcvarient (fattr, lbase, ldisp, ltag) ELSE 2463 BEGIN 2464 loadadr (fattr, nreg) ; 2465 lbase := currentpr ; ldisp := 0 ; ltag := tn ; 2466 freebloc (currentbloc) ; 2467 END ; 2468 IF NOT pckd THEN 2469 BEGIN 2470 usednameaddr := nameaddr ; 2471 genstand (lbase, ldisp, storinst, ltag) END ELSE 2472 IF typtr@.form = pointer THEN 2473 BEGIN 2474 genstand (pr6, evareaw, istaq, tn) ; 2475 genstand (pr6, evareaw, iepp3, tny) ; 2476 usednameaddr := nameaddr ; 2477 genstand (lbase, ldisp, isprp3, ltag) ; 2478 END (* PCKD POINTER *) ELSE 2479 BEGIN 2480 (* MOVE INSTR *) 2481 longitem := packedsize (typtr) ; 2482 genstand (pr6, evareaw, storinst, tn) ; 2483 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; (* ONLY POINTER REG *) 2484 geneism (imlr, 0, p0t0r0) ; 2485 gendesca (pr6, evareaw, bytesinword - longitem, l9, longitem, tn) ; 2486 usednameaddr := nameaddr ; 2487 gendesca (lbase, 0, 0, l9, longitem, tn) ; 2488 END (* PCKD NOT POINTER *) ; 2489 END (* TRANSFER OUT *) ; 2490 END (* TRANSFER IN/OUT NOT FOR SET *) ELSE 2491 BEGIN (* SET *) 2492 IF inwhat # out THEN 2493 BEGIN 2494 2495 (* INWHAT=INACC LENGTH <=BYTESINDWORD ==> IN AQ EXCEPT LVAL 2496* > ==> IN PSR 2497* FATTR BECOMES LVAL 2498* *) 2499 longset := typtr@.size * bitsinbyte ; 2500 IF kind = varbl THEN 2501 BEGIN 2502 IF longset > bitsindword THEN inwhat := inpsr ; 2503 END ELSE 2504 IF kind = sval THEN 2505 BEGIN 2506 IF inwhat <> inaq (* Force *) THEN 2507 IF (longv > bytesindword) OR 2508 (longset > bitsindword) THEN inwhat := inpsr ; 2509 END ; 2510 IF inwhat IN [inacc, inaq] THEN 2511 BEGIN 2512 IF kind = varbl THEN 2513 BEGIN *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 80 2514 IF longset <= bitsinhword THEN 2515 BEGIN 2516 (* MOVE SEQ *) 2517 loadadr (fattr, pr3) ; 2518 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 2519 geneism (icsl, 3 (* 0011=MOVE *), p0t0r0) ; (* FILL BIT=0 *) 2520 usednameaddr := nameaddr ; 2521 gendescb (pr3, 0, 0, 0, longset, tn) ; 2522 gendescb (pr6, evareaw, 0, 0, bitsindword, tn) ; 2523 (* LOAD SEQUENCE *) 2524 sauvereg (raq, true) ; 2525 genstand (pr6, evareaw, ildaq, tn) ; 2526 END (* <= BITSINHWORD *) ELSE 2527 BEGIN 2528 calcvarient (fattr, lbase, ldisp, ltag) ; 2529 sauvereg (raq, true) ; 2530 IF longset = bitsinword THEN 2531 BEGIN (* LOAD A CLEAR Q *) 2532 usednameaddr := nameaddr ; 2533 genstand (lbase, ldisp, ilda, ltag) ; 2534 genstand (nreg, 0, ildq, tdl) ; 2535 END ELSE 2536 BEGIN 2537 usednameaddr := nameaddr ; 2538 genstand (lbase, ldisp, ildaq, ltag) ; 2539 END ; 2540 END (* >BITSINHWORD *) ; 2541 END (* VARBL *) ELSE 2542 IF kind = sval THEN 2543 BEGIN 2544 sauvereg (raq, true) ; 2545 enterlcst (valpw, lretpt) ; 2546 enterundlab (lretpt@.lplace) ; 2547 genstand (nreg, 0, ildaq, tic) ; 2548 END 2549 $OPTIONS compile = security $ 2550 ELSE 2551 IF ldregbloc@.saveplace # 0 THEN error (416) 2552 $OPTIONS compile = true $ ; 2553 IF kind # lval THEN 2554 BEGIN 2555 kind := lval ; ldreg := raq ; ldregbloc := currentbloc ; 2556 END ; 2557 END (* INWHAT=INACC *) ELSE 2558 BEGIN (* INWHAT=INPSR *) 2559 (* INCLUDE LONG VARBL, SVAL FOR INACC *) 2560 IF kind = lval THEN 2561 BEGIN 2562 (* AQ ==> PSR PSR NOOP *) 2563 IF ldreg = raq THEN 2564 BEGIN 2565 sauvereg (psr, true) ; 2566 regenere (ldregbloc) ; clearpsr ; 2567 genstand (pr6, psrdepw, istaq, tn) ; 2568 freebloc (ldregbloc) ; 2569 ldreg := psr ; psrsize := bytesindword ; ldregbloc := currentbloc ; 2570 END (* RAQ *) *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 81 2571 $OPTIONS compile = security $ 2572 ELSE 2573 IF ldregbloc@.saveplace # 0 THEN error (416) 2574 $OPTIONS compile = true $ ; 2575 END (* LVAL *) ELSE 2576 BEGIN (* ALWAYS A MOVE *) 2577 sauvereg (psr, true) ; 2578 (* BUILD ORIGIN *) 2579 IF kind = varbl THEN 2580 loadadr (fattr, pr3) ELSE 2581 BEGIN (* SVAL *) 2582 IF longv = bytesindword THEN 2583 BEGIN 2584 enterlcst (valpw, lretpt) ; 2585 enterundlab (lretpt@.lplace) ; 2586 END ELSE 2587 BEGIN (* LONG SET *) 2588 enterllcst (valpw, llretpt) ; 2589 enterundlab (llretpt@.llplace) ; 2590 END ; 2591 genstand (nreg, 0, iepp3, tic) ; 2592 longset := longv * bitsinbyte ; 2593 END (* SVAL *) ; 2594 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 2595 geneism (icsl, 3 (* 0011=MOVE *), p0t0r0) ; (* FILL BIT=0 *) 2596 IF kind = varbl THEN usednameaddr := nameaddr ; 2597 gendescb (pr3, 0, 0, 0, longset, tn) ; 2598 gendescb (pr6, psrdepw, 0, 0, bitsforset, tn) ; 2599 kind := lval ; ldreg := psr ; ldregbloc := currentbloc ; 2600 psrsize := sup (typtr@.size, bytesindword) ; 2601 END (* ALWAYS A MOVE SVAL//VARBL *) ; 2602 END (* INPSR *) ; 2603 END (* INWHAT # OUT *) ELSE 2604 BEGIN (* OUT *) 2605 tomove := true ; ldisp := 0 ; 2606 longset := typtr^.size * bitsinbyte ; 2607 longmove := longset ; 2608 $OPTIONS compile = security $ 2609 IF gattr.kind # lval THEN error (421) ELSE 2610 IF gattr.ldregbloc = NIL THEN error (400) ELSE 2611 IF gattr.ldregbloc@.saveplace # 0 THEN error (416) ELSE 2612 $OPTIONS compile = true $ 2613 IF gattr.ldreg = psr THEN 2614 ldisp := psrdepw ELSE 2615 IF typtr@.size = bytesindword THEN 2616 tomove := false ELSE 2617 BEGIN 2618 ldisp := evareaw ; genstand (pr6, evareaw, istaq, tn) ; 2619 IF longmove > bitsindword THEN 2620 longmove := bitsindword ; 2621 END ; 2622 IF tomove THEN 2623 BEGIN 2624 loadadr (fattr, pr3) ; 2625 mfari1 := a1r0i0 ; mfari2 := a1r0i0 ; 2626 geneism (icsl, 3 (* 0011=MOVE *), p0t0r0) ; 2627 gendescb (pr6, ldisp, 0, 0, longmove, tn) ; *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 82 2628 IF kind = varbl THEN usednameaddr := nameaddr ; 2629 gendescb (pr3, 0, 0, 0, longset, tn) ; 2630 END (* TOMOVE *) ELSE 2631 BEGIN (* STORE AQ *) 2632 calcvarient (fattr, lbase, ldisp, ltag) ; 2633 IF kind = varbl THEN usednameaddr := nameaddr ; 2634 genstand (lbase, ldisp, istaq, ltag) ; 2635 END (* NOT TO MOVE *) ; 2636 END (* TRANSFER OUT *) ; 2637 END (* SET *) ; 2638 IF inwhat = out THEN freeattr (gattr) ; 2639 $OPTIONS compile = trace $ 2640 IF stattrace > low THEN 2641 BEGIN 2642 write (mpcogout, '@@@ FIN TRANSFER @@@') ; nextline ; 2643 END ; 2644 $OPTIONS compile = true $ 2645 END (* TRANSFER *) ; 2646 2647 2648 2649 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 83 2650 2651 (* *************************************** CHOICERARQ *********************** *) 2652 2653 PROCEDURE choicerarq ; 2654 2655 (* C FOR GATTR LCOND,VARBL,SVAL CHOOSES THE SUITABLE TARGET (RA,RQ) 2656* THEN CALL TRANSFER (INACC OR INQ ) 2657* C *) 2658 (* E ERRORS DETECTED 2659* 422 : GATTR.KIND = CHAIN (CHOICERARQ) 2660* E *) 2661 BEGIN (* CHOICERARQ *) 2662 $OPTIONS compile = trace $ 2663 IF stattrace > none THEN 2664 BEGIN 2665 write (mpcogout, '@@@ DEBUT CHOICERARQ @@@') ; nextline ; 2666 END ; 2667 $OPTIONS compile = true $ 2668 IF gattr.typtr # NIL THEN 2669 WITH gattr DO 2670 IF typtr@.form IN [reel, pointer] THEN transfer (gattr, inacc) ELSE 2671 CASE kind OF 2672 varbl, sval : IF NOT rqisused THEN 2673 transfer (gattr, inq) ELSE 2674 transfer (gattr, inacc) ; 2675 lval : ; 2676 lcond : IF accbloc # NIL THEN 2677 BEGIN 2678 IF accbloc@.sregister = ra THEN 2679 transfer (gattr, inacc) ELSE 2680 transfer (gattr, inq) ; 2681 END (* #NIL *) ELSE 2682 transfer (gattr, inacc) ; 2683 chain : 2684 $OPTIONS compile = security $ 2685 error (422) 2686 $OPTIONS compile = true $ 2687 ; 2688 END (* CASE KIND, WITH GATTR *) ; 2689 $OPTIONS compile = trace $ 2690 IF stattrace > low THEN 2691 BEGIN 2692 write (mpcogout, '@@@ FIN CHOICERARQ @@@') ; nextline ; 2693 END ; 2694 $OPTIONS compile = true $ 2695 END (* CHOICERARQ *) ; 2696 2697 2698 2699 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 84 2700 2701 (* ************************************ VARIAB ******************************** *) 2702 2703 PROCEDURE variab (fvarset : boolean) ; 2704 2705 (* C PRECALL SEQUENCE FOR "VARIABLE" 2706* AN IDENTIFIER (NO=1) IS EXPECTED 2707* MUST BE VARS OR FIELD 2708* FVARSET IS TRUE IF VARIABLE IS TO BE ALTERED 2709* C *) 2710 (* E ERRORS DETECTED 2711* 2: IDENTIFIER EXPECTED 2712* 103: IDENTIFIER FOUND IS NOT OF APPROPRIATE KLASS. 2713* 104: IDENTIFIER NOT DECLARED 2714* 196: VARIABLE IS READONLY 2715* E *) 2716 BEGIN (* VARIAB *) 2717 $OPTIONS compile = trace $ 2718 IF stattrace > none THEN 2719 BEGIN 2720 write (mpcogout, '@@@ DEBUT VARIAB @@@ WITH NO,FVARSET', no : 4, fvarset : 6) ; 2721 nextline ; 2722 END ; 2723 $OPTIONS compile = true $ 2724 variabctptr := NIL ; 2725 IF no # 1 (* ID *) THEN 2726 BEGIN 2727 error (2) ; gattr.typtr := NIL ; 2728 END ELSE 2729 BEGIN (* ID *) 2730 search ; 2731 IF ctptr = NIL THEN 2732 BEGIN (* ID NOT FOUND *) 2733 error (104) ; 2734 ctptr := undecptr ; (* UNDECLARED VARIABLE *) 2735 END ; 2736 IF ctptr@.klass <= proc THEN (* NOT VARS-FIELD *) 2737 BEGIN 2738 IF symbolmap THEN 2739 IF fvarset THEN nameisref (ctptr, symbolfile, -symbolline) 2740 ELSE nameisref (ctptr, symbolfile, symbolline) ; 2741 error (103) ; insymbol ; gattr.typtr := NIL ; (* ERROR INDICATOR *) 2742 END ELSE 2743 BEGIN (* VARS-FIELD *) 2744 IF ctptr@.klass = vars THEN 2745 BEGIN 2746 IF fvarset THEN 2747 BEGIN 2748 IF ctptr@.visreadonly THEN error (196) ; 2749 ctptr@.visset := true ; 2750 variabctptr := ctptr ; 2751 END ; 2752 END ; 2753 variable (fvarset) ; 2754 END (* VARS- FIELD *) ; 2755 END (* ID *) ; 2756 $OPTIONS compile = trace $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 85 2757 IF stattrace > low THEN 2758 BEGIN 2759 write (mpcogout, '@@@ FIN VARIAB @@@ WITH NO', no : 4) ; nextline ; 2760 END ; 2761 $OPTIONS compile = true $ 2762 END (* VARIAB *) ; 2763 2764 2765 $OPTIONS page $ *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 86 2766 2767 BEGIN 2768 END. *** MULTICS PASCAL COMPILER - V8.03 **** PROGRAM state *** ON 11/12/86 *** PAGE 87 NO COMPILATION ERROR STORAGE REQUIREMENTS FOR OBJECT SEGMENT Object Text Defs Links Static Symbol Start 0 0 27763 31746 31756 32572 Length 34112 27763 1762 624 205 1304 STORAGE REQUIREMENTS FOR PRIVATE_STORAGE SEGMENT Object Text Defs Links Static Symbol Start 0 0 0 426 436 1060 Length 1315 0 426 432 422 221 SOURCE FILES USED IN THIS COMPILATION NUMBER DATE MODIFIED PATHNAME 0 11/12/86 1607.6 >spec>install>1212>STATE.pascal 1 11/12/86 1528.2 >spec>install>1212>CONSTTYPE.incl.pascal NAMES DECLARED AND REFERENCED a0r0i0 const scalar, ord=0 ; DEF: 1-799 ; REF: 953 a1r0i0 const scalar, ord=4 ; DEF: 1-799 ; REF: 953 1316 1316 1408 1408 2339 2339 2483 2483 2518 2518 2594 2594 2625 2625 accbloc field disp:20, size:10 ; pointer ; DEF: 1-910 ; REF: 2388 2390 2392* 2395 2398* 2676 2678 access field disp:70, size:4 ; scalar ; DEF: 1-871 ; REF: 1598* 1603* 1608* 1616* 1620* 1624* 1629* 1642* 1653* 1666* 1676* 1691* 1695* 1773 2001 2011* 2254* 2288* actual const scalar, ord=0 ; DEF: 1-406 ; REF: 1592 adlx const scalar, ord=0 ; DEF: 1-918 ; REF: 1812 1827 1848 1872 2067 alfa type packed array of (char) ; DEF: 1-398 ; REF: 177 245 246 alfaconst const scalar, ord=2 ; DEF: 1-416 ; REF: 1-569 alfactp field disp:20, size:10 ; pointer ; DEF: 1-897 ; REF: 2100 alfaid type packed array of (char) ; DEF: 1-399 ; REF: 1-404 1-436 1-446 1-447 1-496 1-508 1-965 344 345 346 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 alfapt type pointer ; DEF: 1-419 ; REF: 1-421 1-569 alfavalue type record ; DEF: 1-420 ; REF: 1-419 aliastype const scalar, ord=10 ; DEF: 1-413 ; REF: 1-563 arraybound const scalar, ord=2 ; DEF: 1-406 ; REF: 1639 arrayboundsctp var global exportable, size:10 ; pointer ; DEF: 209 ; REF: 89 424* 425 arrays const scalar, ord=5 ; DEF: 1-412 ; REF: 1-546 attr type record ; DEF: 1-849 ; REF: 223 339 352 353 354 355 356 1554 1717 1934 2118 attraccess type scalar ; DEF: 1-813 ; REF: 1-871 245 attrkind type scalar ; DEF: 1-812 ; REF: 1-852 246 auxreg var local to sauvereg, loc:146, size:4 ; scalar ; DEF: 1251 ; REF: 1287* 1291 1322* 1332 auxregq var local to sauvereg, loc:147, size:4 ; scalar ; DEF: 1251 ; REF: 1287* 1321 1324 1333* basebloc field disp:30, size:10 ; pointer ; DEF: 1-858 ; REF: 1590* 1598* 1603* 1608* 1616* 1620* 1624* 1632* 1636* 1645* 1649* 1653* 1660* 1691* 1695* 1761 1779* 1781* 1879* 1966 1972 1974* 1980 1983* 1989 1991 1993* 1996 1998* 2256* 2289* 2344 2344* basereg field disp:20, size:4 ; scalar subrange ; DEF: 1-856 ; REF: 1590* 1598* 1603* 1608* 1616* 1620* 1624* 1632* 1636* 1645* 1649* 1653* 1665* 1665* 1675* 1691* 1695* 1760 1772 1780 1781* 1969 1974 1975 1976 1976 1990 1993 2255* 2288* 2342 begfreelist var global, loc:12, size:10 ; pointer ; DEF: 257 ; REF: 446* 1011 1013 1014* 1014 1087 1088* binartype type packed array of (integer) ; DEF: 1-810 ; REF: 1-811 1-811 bitsforset const numeric ; DEF: 1-111 ; REF: 2598 bitsinbyte const numeric ; DEF: 1-63 ; REF: 1-78 1-79 2312 2313 2337 2499 2592 2606 bitsindword const numeric ; DEF: 1-80 ; REF: 2404 2502 2508 2522 2619 2620 bitsinhword const numeric ; DEF: 1-79 ; REF: 2514 bitsinword const numeric ; DEF: 1-78 ; REF: 1-80 1-92 1-111 1-115 1-117 2312 2381 2403 2409 2432 2436 2441 2530 blank const alphanumeric, 8 char(s) ; DEF: 1-138 ; REF: 424 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 622 640 boxheader var global imported, size:170 ; array of (char) ; DEF: 185 ; REF: 33 371 386 510 513 573 576 637 641 698 703 bytesforset const numeric ; DEF: 1-110 ; REF: 956 bytesindword const numeric ; DEF: 1-66 ; REF: 981 1112 1299 1304 1306 1886 2203 2224 2507 2569 2582 2600 2615 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 427 427 979 980 1112 1296 1314 1319 1329 1330 1406 1410 1678 1770 1771 1775 1980 1996 2003 2039 2050 2051 2079 2082 2084 2212 2214 2313 2332 2337 2485 bytwidth field disp:134, size:4 ; integer ; DEF: 1-609 ; REF: 1678 cadrage field disp:120, size:4 ; integer ; DEF: 1-524 ; REF: 427* calcvarient proc level 0, exportable ; DEF: 1717 ; REF: 91 2265 2362 2462 2528 2632 callcalc var local to transfer, loc:170, size:4 ; boolean ; DEF: 2142 ; REF: 2246* 2250* 2264 2294 2309 cb var global imported, size:4 ; integer ; DEF: 176 ; REF: 25 867 909 911 2166 2167 cdspl field disp:344, size:4 ; integer ; DEF: 1-636 ; REF: 1666 chain const scalar, ord=3 ; DEF: 1-812 ; REF: 1-894 2090 2683 char_const_token const scalar, ord=3 ; DEF: 1-491 ; REF: 1-499 chnix var global imported, size:4 ; integer ; DEF: 188 ; REF: 35 740 744 746 749 750* 756 clearpsr proc level 0 ; DEF: 951 ; REF: 2566 clevel field disp:340, size:4 ; numeric 0..20 ; DEF: 1-636 ; REF: 1664 codesymb var global imported, size:10430 ; array of (array of (char)) ; DEF: 177 ; REF: 26 814 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 consttype type scalar ; DEF: 1-416 ; REF: 1-566 345 contexttable type record ; DEF: 1-507 ; REF: 1-433 create_types_box proc level 0, imported ; DEF: 344 ; REF: 70 424 creflist field disp:20, size:320 ; record ; DEF: 1-636 ; REF: 1668 1669 1670 cstnext field disp:10, size:10 ; pointer ; DEF: 1-831 ; REF: 498 502* 512 cstplace field disp:4, size:4 ; integer ; DEF: 1-830 ; REF: 503* 826* 1910* 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 182 186 187 189 193 195 197 198 202 209 222 224 238 247 328 339 344 345 346 347 348 883 1554 ctptr var global imported, size:10 ; pointer ; DEF: 189 ; REF: 36 1579 2731 2734* 2736 2739 2740 2744 2748 2749 2750 currentbloc var global exportable, size:10 ; pointer ; DEF: 212 ; REF: 95 438* 1017 1020 1021* 1027 1028 1079 1090* 1154* 1165* 1286 1543 1608 1624 1636 1650 1695 1781 2256 2289 2356 2365 2383 2445 2466* 2555 2569 2599 currentindex var global, loc:14, size:4 ; scalar ; DEF: 258 ; REF: 1499* 1503 currentpr var global exportable, size:4 ; scalar subrange ; DEF: 213 ; REF: 96 1458* 1462 1535 1538 1542 1608 1624 1636 1649 1695 1780 1781 1969 1975* 1981 1982 1982 2095 2255 2272 2277 2281 2283 2283 2288 2465 currlcstpt var global exportable, size:10 ; pointer ; DEF: 214 ; REF: 97 553 567 569* currllcstpt var global exportable, size:10 ; pointer ; DEF: 215 ; REF: 98 618 631 633* currrcstpt var global exportable, size:10 ; pointer ; DEF: 216 ; REF: 99 680 692 694* currwcstpt var global exportable, size:10 ; pointer ; DEF: 218 ; REF: 101 493 502 506* cwith const scalar, ord=1 ; DEF: 1-622 ; REF: 1-636 1662 destination type scalar ; DEF: 1-814 ; REF: 2118 direct const scalar, ord=0 ; DEF: 1-813 ; REF: 1616 1620 1666 1691 display var global imported, size:16030 ; array of (record) ; DEF: 190 ; REF: 37 1661 1662 1664 1666 1668 1669 1670 1675 1678 1680 1681 1682 displimit const numeric ; DEF: 1-15 ; REF: 190 disposeused var global exportable, size:4 ; boolean ; DEF: 219 ; REF: 102 463* disx var global imported, size:4 ; integer ; DEF: 191 ; REF: 38 1661 dlkdepw const numeric ; DEF: 1-285 ; REF: 1536 1538 dplmt field disp:40, size:4 ; integer ; DEF: 1-861 ; REF: 1590* 1595* 1613* 1629* 1642* 1653* 1666* 1676* 1697* 1770 2045 2050 2051 2052 2082 2084 2257* 2289* 2313 dummybloc var global, loc:16, size:10 ; pointer ; DEF: 259 ; REF: 432* 432 433 438 1068 1165 dummyclass const scalar, ord=7 ; DEF: 1-415 ; REF: 1-615 dwordconst const scalar, ord=1 ; DEF: 1-416 ; REF: 1-568 ended var local to loadadr, loc:145, size:4 ; boolean ; DEF: 1947 ; REF: 2043* 2047* 2048 ensaccessible type set of (scalar) ; DEF: 1-461 ; REF: 1-527 entercst proc level 0, exportable ; DEF: 472 ; REF: 105 825 1909 enterlcst proc level 0, exportable ; DEF: 530 ; REF: 106 1888 1896 2545 2584 enterllcst proc level 0, exportable ; DEF: 595 ; REF: 107 1891 2588 enterreal proc level 0 ; DEF: 660 ; REF: 1901 enterundlab proc level 0, exportable ; DEF: 722 ; REF: 108 826 1888 1891 1897 1902 1910 2100 2546 2585 2589 epp const scalar, ord=0 ; DEF: 1-917 ; REF: 1397 1535 1780 1981 1997 2007 2010 2075 2101 2277 2281 2283 equal var local to enterllcst, loc:147, size:4 ; boolean ; DEF: 610 ; REF: 621* 623* 624 errcode var parameter of checkbnds, size:4 ; integer ; DEF: 883 ; REF: 896 910 error proc level 0, imported ; DEF: 326 ; REF: 61 745 937 1011 1068 1149 1294 1327 1338 1387 1389 1573 1752 1915 1915 2103 2241 2369 2395 2451 2452 2551 2573 2609 2610 2611 2685 2727 2733 2741 2748 errorctp var global exportable, size:10 ; pointer ; DEF: 222 ; REF: 109 455* errtotal var global imported, size:4 ; integer ; DEF: 192 ; REF: 39 1147 evareaw const numeric ; DEF: 1-288 ; REF: 859 860 862 865 1826 1827 1871 1872 2305 2306 2343 2346 2474 2475 2482 2485 2522 2525 2618 2618 exceptcodeplace const numeric ; DEF: 1-189 ; REF: 791 exitelem type record ; DEF: 1-479 ; REF: 1-478 exitptr type pointer ; DEF: 1-478 ; REF: 1-480 1-586 extend_stack_op_place const numeric ; DEF: 1-226 ; REF: 1117 externalitem type record ; DEF: 1-445 ; REF: 1-444 externalitemtype type scalar ; DEF: 1-441 ; REF: 1-451 farg var parameter of gencstecode, size:4 ; integer ; DEF: 799 ; REF: 813 819 820 823 825 fattr var var parameter of transfer, size:150 ; record ; DEF: 2118 ; REF: 2178* 2182 2183 2184 2203 2203 2204 2205 2205 2212 2212 2213 2213 2214 2214 2215 2221 2224 2224 2228 2228 2228 2237 2243 2247 2248 2251* 2252* 2253* 2254* 2255* 2256* 2257* 2258* 2259* 2260* 2261* 2262* 2265* 2269 2271 2276 2282 2287* 2287* 2288* 2288* 2289* 2289* 2290* 2290* 2290* 2291* 2291* 2297 2302 2303 2312 2313 2323 2329 2330 2341 2342 2344 2344* 2356* 2356* 2356* 2362* 2365* 2365* 2365* 2369 2373 2375 2382* 2383* 2383* 2388 2390 2392* 2395 2398* 2400 2445* 2445* 2445* 2451 2461 2461 2462* 2464* 2468 2470 2472 2476 2481 2486 2499 2500 2504 2507 2512 2517* 2520 2528* 2532 2537 2542 2545* 2551 2553 2555* 2555* 2555* 2560 2563 2566 2568* 2569* 2569* 2569* 2573 2579 2580* 2582 2584* 2588* 2592 2596 2596 2599* 2599* 2599* 2600* 2600 2606 2615 2624* 2628 2628 2632* 2633 2633 fattr var var parameter of loadadr, size:150 ; record ; DEF: 1934 ; REF: 1957* 1961 1962 1966 1969 1972 1974* 1974 1975 1976 1976 1980 1983* 1989 1990 1991 1993* 1993 1996 1998* 2001 2003 2011* 2016 2018 2020* 2021* 2021* 2022* 2022 2023 2026 2028 2030 2032 2034* 2039 2040* 2045 2046 2050 2051 2052 2056 2061 2066 2067 2070* 2076 2077 2079 2082 2084 2088* 2088* 2090 2100* fattr var var parameter of calcvarient, size:150 ; record ; DEF: 1717 ; REF: 1750* 1752 1755 1756* 1757 1758 1760 1761 1762 1763 1765* 1766* 1766* 1767* 1767 1768 1770 1771 1772 1773 1775 1779* 1780 1781* 1781* 1783 1803 1807 1812 1818 1820 1827 1831 1839 1842* 1846 1847 1848 1853 1864 1866 1872 1876 1879* 1880* 1882 1884 1886 1888* 1891* 1894 1899 1901 1904 1906 1909 1915 fattr var var parameter of addressvar, size:150 ; record ; DEF: 1554 ; REF: 1575 1578* 1579* 1583* 1583* 1584* 1586* 1590* 1590* 1590* 1590* 1590* 1595* 1595* 1596 1598* 1598* 1598* 1599* 1601 1603* 1603* 1603* 1604* 1607 1608* 1608* 1608* 1609* 1613* 1613* 1614 1616* 1616* 1616* 1618 1620* 1620* 1620* 1623 1624* 1624* 1624* 1629* 1629* 1629* 1630 1632* 1632* 1635 1636* 1636* 1641* 1642* 1642* 1643 1645* 1645* 1648 1649* 1649* 1653* 1653* 1653* 1653* 1654* 1660* 1660* 1664* 1664* 1664* 1665 1665* 1665* 1666* 1666* 1675* 1675* 1675* 1676* 1676* 1677 1678* 1678* 1678 1687* 1687* 1687* 1688* 1689 1691* 1691* 1691* 1694 1695* 1695* 1695* 1697* 1706* fbase var var parameter of calcvarient, size:4 ; scalar subrange ; DEF: 1717 ; REF: 1754* 1772* 1883* 1922 fboxpt var var parameter of enterreal, size:10 ; pointer ; DEF: 660 ; REF: 707* 711 fboxpt var var parameter of enterllcst, size:10 ; pointer ; DEF: 595 ; REF: 645* 649 fboxpt var var parameter of enterlcst, size:10 ; pointer ; DEF: 530 ; REF: 581* 585 fboxpt var var parameter of entercst, size:10 ; pointer ; DEF: 472 ; REF: 516* 519 fbtofree var var parameter of freebloc, size:10 ; pointer ; DEF: 1040 ; REF: 1063 1068 1070 1071 1087 1088 1089* fctdepl const numeric ; DEF: 1-287 ; REF: 1697 fctp var parameter of addressvar, size:10 ; pointer ; DEF: 1554 ; REF: 1571 1573 1575 1705 fctp var parameter of checkbnds, size:10 ; pointer ; DEF: 883 ; REF: 897 901 903 fdisp var var parameter of calcvarient, size:4 ; integer ; DEF: 1717 ; REF: 1754* 1775* 1776 1776 1778 1781* 1836* 1837 1837 1841 1849 1851* 1883* 1906* 1923 ferrcode var parameter of genexceptcode, size:4 ; integer ; DEF: 768 ; REF: 789 field const scalar, ord=5 ; DEF: 1-415 ; REF: 1-608 1657 filelocation type scalar ; DEF: 1-437 ; REF: 1-598 files const scalar, ord=9 ; DEF: 1-413 ; REF: 1-555 1593 findminmax proc level 0, imported ; DEF: 347 ; REF: 73 903 finst var parameter of gencstecode, size:4 ; scalar subrange ; DEF: 799 ; REF: 814 823 829 fjump var parameter of genlocskip, size:4 ; scalar subrange ; DEF: 2151 ; REF: 2163 fldaddr field disp:130, size:4 ; integer ; DEF: 1-609 ; REF: 1666 1676 fldtype field disp:120, size:10 ; pointer ; DEF: 1-608 ; REF: 1660 flev var parameter of loadbase, size:4 ; integer ; DEF: 1514 ; REF: 1530 1537 fload var parameter of sauvereg, size:4 ; boolean ; DEF: 1097 ; REF: 1259 1343 fmax var parameter of inbounds, size:4 ; integer ; DEF: 926 ; REF: 937 941 fmin var parameter of inbounds, size:4 ; integer ; DEF: 926 ; REF: 937 939 forgetbox var global, loc:20, size:4 ; integer ; DEF: 260 ; REF: 452* 1019* 1019 1086* 1086 1146 1150 1153 1164* form field disp:174, size:4 ; scalar ; DEF: 1-533 ; REF: 1586 1593 1677 1884 2184 2224 2228 2248 2303 2323 2330 2461 2472 2670 formal const scalar, ord=1 ; DEF: 1-406 ; REF: 1627 fptbox var parameter of printregbox, size:10 ; pointer ; DEF: 365 ; REF: 372 377 378 freeattr proc level 0, imported ; DEF: 352 ; REF: 76 2638 freebloc proc level 0, exportable ; DEF: 1040 ; REF: 111 1154 1779 1879 1880 1974 1983 1993 1998 2088 2344 2382 2392 2398 2466 2568 freereg var global, loc:21, size:154 ; array of (boolean) ; DEF: 261 ; REF: 299* 1155 freg var parameter of sauvereg, size:4 ; scalar ; DEF: 1097 ; REF: 1259 1266 1267 1269 1270 1274 1340 1344 1344 freg var parameter of newbloc, size:4 ; scalar ; DEF: 993 ; REF: 1008 1017 1023 freg var parameter of checkbnds, size:4 ; scalar ; DEF: 883 ; REF: 897 904 910 freg var parameter of genexceptcode, size:4 ; scalar ; DEF: 768 ; REF: 783 frval var parameter of enterreal, size:10 ; real ; DEF: 660 ; REF: 677 682 691 ftag var var parameter of calcvarient, size:4 ; scalar ; DEF: 1718 ; REF: 1754* 1788* 1790* 1797* 1831* 1856* 1858* 1876* 1883* 1906* 1923 ftp type pointer ; DEF: 1-484 ; REF: 1-488 1-493 1-521 fundinx var var parameter of enterundlab, size:4 ; integer ; DEF: 722 ; REF: 741 749 749* 755 fval var parameter of inbounds, size:4 ; integer ; DEF: 926 ; REF: 939 941 fval var var parameter of enterllcst, size:40 ; array of (integer) ; DEF: 595 ; REF: 622 631 fval var var parameter of enterlcst, size:40 ; array of (integer) ; DEF: 530 ; REF: 548 549 556 557 565 fval var parameter of entercst, size:4 ; integer ; DEF: 472 ; REF: 490 496 502 512 fvarset var parameter of variab, size:4 ; boolean ; DEF: 2703 ; REF: 2720 2739 2746 2753 gattr var global exportable, size:150 ; record ; DEF: 223 ; REF: 112 2452 2454 2455 2609 2610 2611 2613 2638* 2668 2669 2670 2670* 2671 2673* 2674* 2676 2678 2679* 2680* 2682* 2727* 2741* gencstecode proc level 0, exportable ; DEF: 799 ; REF: 114 905 907 gendesca proc level 0, imported ; DEF: 320 ; REF: 55 955 956 1318 1319 1410 1411 2342 2343 2485 2487 gendescb proc level 0, imported ; DEF: 322 ; REF: 56 2521 2522 2597 2598 2627 2629 geneism proc level 0, imported ; DEF: 319 ; REF: 57 954 1317 1409 2340 2484 2519 2595 2626 genexceptcode proc level 0, exportable ; DEF: 768 ; REF: 115 866 910 genlocskip proc of transfer ; DEF: 2151 ; REF: 2406 2415 2417 2419 2421 2423 2425 2427 genstand proc level 0, imported ; DEF: 318 ; REF: 58 789 790 791 823 829 859 860 861 862 864 865 868 906 908 1113 1114 1117 1160 1161 1314 1330 1406 1536 1538 1778 1780 1790 1794 1796 1814 1823 1826 1827 1841 1849 1858 1868 1871 1872 1980 1996 2006 2007 2010 2039 2058 2060 2063 2065 2067 2071 2075 2079 2080 2084 2085 2101 2163 2164 2165 2166 2272 2277 2281 2283 2298 2305 2306 2322 2324 2325 2346 2351 2363 2381 2403 2404 2409 2411 2413 2430 2432 2436 2439 2441 2471 2474 2475 2477 2482 2525 2533 2534 2538 2547 2567 2591 2618 2634 getpr proc level 0, exportable ; DEF: 1430 ; REF: 116 1534 1779 1968 1979 2094 2268 halfword type integer ; DEF: 1-809 ; REF: 1-810 heaperror proc level 0, imported ; DEF: 335 ; REF: 68 432 442 500 562 629 688 high const scalar, ord=3 ; DEF: 1-624 ; REF: 508 571 635 696 1060 1261 1379 1705 1749 1956 ia9bd const scalar, ord=503 ; DEF: 1-751 ; REF: 2085 iada const scalar, ord=84 ; DEF: 1-689 ; REF: 285 1809 1821 1847 1867 2029 2058 iadaq const scalar, ord=85 ; DEF: 1-689 ; REF: 285 iadlx0 const scalar, ord=90 ; DEF: 1-690 ; REF: 306 iadlx1 const scalar, ord=91 ; DEF: 1-690 ; REF: 306 iadlx2 const scalar, ord=92 ; DEF: 1-690 ; REF: 306 iadlx3 const scalar, ord=93 ; DEF: 1-690 ; REF: 306 iadlx4 const scalar, ord=94 ; DEF: 1-690 ; REF: 306 iadlx5 const scalar, ord=95 ; DEF: 1-690 ; REF: 306 iadlx6 const scalar, ord=96 ; DEF: 1-691 ; REF: 306 iadlx7 const scalar, ord=97 ; DEF: 1-691 ; REF: 306 1796 iadq const scalar, ord=98 ; DEF: 1-691 ; REF: 285 1805 1819 1846 1865 2031 2063 iadx0 const scalar, ord=99 ; DEF: 1-691 ; REF: 307 iadx1 const scalar, ord=100 ; DEF: 1-691 ; REF: 307 iadx2 const scalar, ord=101 ; DEF: 1-691 ; REF: 307 iadx3 const scalar, ord=102 ; DEF: 1-691 ; REF: 307 iadx4 const scalar, ord=103 ; DEF: 1-691 ; REF: 307 iadx5 const scalar, ord=104 ; DEF: 1-692 ; REF: 307 iadx6 const scalar, ord=105 ; DEF: 1-692 ; REF: 307 iadx7 const scalar, ord=106 ; DEF: 1-692 ; REF: 307 ials const scalar, ord=73 ; DEF: 1-688 ; REF: 284 2316 iarl const scalar, ord=74 ; DEF: 1-688 ; REF: 2316 2403 iars const scalar, ord=75 ; DEF: 1-688 ; REF: 2316 2350 iawd const scalar, ord=505 ; DEF: 1-752 ; REF: 2080 icmpa const scalar, ord=162 ; DEF: 1-699 ; REF: 287 904 icmpaq const scalar, ord=163 ; DEF: 1-699 ; REF: 287 862 icmpc const scalar, ord=513 ; DEF: 1-754 ; REF: 1-782 icmpq const scalar, ord=164 ; DEF: 1-699 ; REF: 287 904 icsl const scalar, ord=519 ; DEF: 1-755 ; REF: 2519 2595 2626 idfad const scalar, ord=182 ; DEF: 1-702 ; REF: 285 idfcmp const scalar, ord=203 ; DEF: 1-705 ; REF: 287 idfld const scalar, ord=176 ; DEF: 1-702 ; REF: 282 1402 2222 idfsb const scalar, ord=186 ; DEF: 1-703 ; REF: 283 idfst const scalar, ord=178 ; DEF: 1-702 ; REF: 288 1306 2456 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 ieax5 const scalar, ord=7 ; DEF: 1-679 ; REF: 789 ieax6 const scalar, ord=8 ; DEF: 1-680 ; REF: 790 2071 ieax7 const scalar, ord=9 ; DEF: 1-680 ; REF: 1778 1790 1841 2006 2084 ieism type scalar subrange ; DEF: 1-782 ; REF: 319 2146 iepp0 const scalar, ord=319 ; DEF: 1-723 ; REF: 289 iepp1 const scalar, ord=320 ; DEF: 1-723 ; REF: 289 1160 iepp2 const scalar, ord=321 ; DEF: 1-723 ; REF: 289 iepp3 const scalar, ord=322 ; DEF: 1-723 ; REF: 289 1113 2475 2591 iepp4 const scalar, ord=323 ; DEF: 1-723 ; REF: 289 289 iepp5 const scalar, ord=324 ; DEF: 1-723 ; REF: 289 iepp6 const scalar, ord=325 ; DEF: 1-723 ; REF: 289 iepp7 const scalar, ord=326 ; DEF: 1-723 ; REF: 289 iera const scalar, ord=252 ; DEF: 1-713 ; REF: 2430 ierq const scalar, ord=254 ; DEF: 1-713 ; REF: 2439 ifneg const scalar, ord=198 ; DEF: 1-704 ; REF: 286 ilda const scalar, ord=21 ; DEF: 1-681 ; REF: 282 860 1399 2232 2533 ildaq const scalar, ord=23 ; DEF: 1-681 ; REF: 282 865 1401 2207 2229 2306 2525 2538 2547 ildq const scalar, ord=25 ; DEF: 1-682 ; REF: 282 1400 2217 2534 ills const scalar, ord=77 ; DEF: 1-688 ; REF: 284 2374 2436 2441 ilprp0 const scalar, ord=328 ; DEF: 1-724 ; REF: 291 ilprp1 const scalar, ord=329 ; DEF: 1-724 ; REF: 291 ilprp2 const scalar, ord=330 ; DEF: 1-724 ; REF: 291 ilprp3 const scalar, ord=331 ; DEF: 1-724 ; REF: 291 2229 ilprp4 const scalar, ord=332 ; DEF: 1-724 ; REF: 291 291 ilprp5 const scalar, ord=333 ; DEF: 1-724 ; REF: 291 ilprp6 const scalar, ord=334 ; DEF: 1-724 ; REF: 291 ilprp7 const scalar, ord=335 ; DEF: 1-725 ; REF: 291 ilrl const scalar, ord=78 ; DEF: 1-688 ; REF: 2376 2404 2409 2432 ilrs const scalar, ord=79 ; DEF: 1-688 ; REF: 861 ilxl0 const scalar, ord=36 ; DEF: 1-683 ; REF: 309 ilxl1 const scalar, ord=37 ; DEF: 1-683 ; REF: 309 ilxl2 const scalar, ord=38 ; DEF: 1-683 ; REF: 309 ilxl3 const scalar, ord=39 ; DEF: 1-683 ; REF: 309 ilxl4 const scalar, ord=40 ; DEF: 1-684 ; REF: 309 ilxl5 const scalar, ord=41 ; DEF: 1-684 ; REF: 309 ilxl6 const scalar, ord=42 ; DEF: 1-684 ; REF: 309 ilxl7 const scalar, ord=43 ; DEF: 1-684 ; REF: 309 1794 1822 1824 1858 1867 1869 2034 2079 imlr const scalar, ord=516 ; DEF: 1-754 ; REF: 954 1317 1409 2336 2484 imrl const scalar, ord=517 ; DEF: 1-754 ; REF: 2332 inacc const scalar, ord=0 ; DEF: 1-814 ; REF: 2219 2373 2510 2670 2674 2679 2682 inaq const scalar, ord=2 ; DEF: 1-814 ; REF: 2200 2506 2510 inbounds funct level 0, exportable ; boolean ; DEF: 926 ; REF: 117 940* 942* 943* 1904 incbloc type scalar ; DEF: 1-462 ; REF: 1-585 incrinbytes var parameter of oldnewstor, size:4 ; integer ; DEF: 964 ; REF: 975 979* 979 980 984 indfich var global imported, size:4 ; integer ; DEF: 178 ; REF: 27 740 748 863 906 908 2163 2165 ineg const scalar, ord=158 ; DEF: 1-698 ; REF: 286 inegl const scalar, ord=159 ; DEF: 1-698 ; REF: 286 initattrvarbl proc level 0, imported ; DEF: 353 ; REF: 77 1578 inop const scalar, ord=414 ; DEF: 1-738 ; REF: 284 286 1308 1313 1403 1405 2036 2037 2377 2378 inpr const scalar, ord=4 ; DEF: 1-814 ; REF: 2235 2266 inpsr const scalar, ord=3 ; DEF: 1-814 ; REF: 2502 2508 inputctp var global exportable, size:10 ; pointer ; DEF: 224 ; REF: 119 456* inq const scalar, ord=1 ; DEF: 1-814 ; REF: 2209 2375 2673 2680 inser proc level 0, imported ; DEF: 324 ; REF: 59 867 909 911 2166 2167 instword type scalar ; DEF: 1-679 ; REF: 1-781 1-782 1-783 1-784 177 insymbol proc level 0, imported ; DEF: 327 ; REF: 62 2741 int_const_token const scalar, ord=2 ; DEF: 1-491 ; REF: 1-497 intptr var global imported, size:10 ; pointer ; DEF: 193 ; REF: 40 901 inwhat var parameter of transfer, size:4 ; scalar ; DEF: 2118 ; REF: 2174 2186 2199 2266 2373 2375 2492 2502* 2506 2508* 2510 2638 inxbloc field disp:50, size:10 ; pointer ; DEF: 1-867 ; REF: 1763 1767 1768 1880* 2018 2022 2023 2088* 2259* 2290* inxmem field disp:60, size:4 ; integer ; DEF: 1-868 ; REF: 1771 2026 2039 2040* 2077 2079 2260* 2290* inxmemrw field disp:64, size:4 ; boolean ; DEF: 1-870 ; REF: 2261* 2291* inxreg field disp:44, size:4 ; scalar ; DEF: 1-862 ; REF: 1762 1765* 1766* 1766* 1767 1783 1803 1807 1812 1818 1820 1827 1831 1839 1842* 1846 1847 1848 1853 1864 1866 1872 1876 2016 2020* 2021* 2021* 2022 2028 2030 2032 2034* 2046 2056 2061 2066 2067 2070* 2076 2088* 2258* 2290* iorq const scalar, ord=233 ; DEF: 1-710 ; REF: 868 iqls const scalar, ord=81 ; DEF: 1-689 ; REF: 284 2319 iqrl const scalar, ord=82 ; DEF: 1-689 ; REF: 2319 iqrs const scalar, ord=83 ; DEF: 1-689 ; REF: 2319 2349 irpd const scalar, ord=540 ; DEF: 1-759 ; REF: 1-783 irpt const scalar, ord=542 ; DEF: 1-759 ; REF: 1-783 isba const scalar, ord=120 ; DEF: 1-694 ; REF: 283 2060 isbaq const scalar, ord=121 ; DEF: 1-694 ; REF: 283 isbq const scalar, ord=133 ; DEF: 1-695 ; REF: 283 2065 ispri0 const scalar, ord=345 ; DEF: 1-726 ; REF: 290 ispri1 const scalar, ord=346 ; DEF: 1-726 ; REF: 290 ispri2 const scalar, ord=347 ; DEF: 1-726 ; REF: 290 ispri3 const scalar, ord=348 ; DEF: 1-726 ; REF: 290 1114 2305 ispri4 const scalar, ord=349 ; DEF: 1-726 ; REF: 290 290 ispri5 const scalar, ord=350 ; DEF: 1-726 ; REF: 290 ispri6 const scalar, ord=351 ; DEF: 1-727 ; REF: 290 ispri7 const scalar, ord=352 ; DEF: 1-727 ; REF: 290 isprp3 const scalar, ord=356 ; DEF: 1-727 ; REF: 2477 ista const scalar, ord=45 ; DEF: 1-684 ; REF: 288 1302 2458 istand type scalar subrange ; DEF: 1-781 ; REF: 237 239 268 318 799 891 1253 1373 1525 1740 1946 2138 2151 istaq const scalar, ord=48 ; DEF: 1-685 ; REF: 288 859 1304 2457 2474 2567 2618 2634 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: 288 1303 1330 2459 istx7 const scalar, ord=62 ; DEF: 1-686 ; REF: 1826 1871 iswd const scalar, ord=510 ; DEF: 1-752 ; REF: 1-781 isxl0 const scalar, ord=64 ; DEF: 1-687 ; REF: 308 isxl1 const scalar, ord=65 ; DEF: 1-687 ; REF: 308 isxl2 const scalar, ord=66 ; DEF: 1-687 ; REF: 308 isxl3 const scalar, ord=67 ; DEF: 1-687 ; REF: 308 isxl4 const scalar, ord=68 ; DEF: 1-687 ; REF: 308 isxl5 const scalar, ord=69 ; DEF: 1-687 ; REF: 308 isxl6 const scalar, ord=70 ; DEF: 1-687 ; REF: 308 isxl7 const scalar, ord=71 ; DEF: 1-687 ; REF: 308 it var local to addressvar, loc:146, size:4 ; integer ; DEF: 1565 ; REF: 1668* 1669 1670 1680* 1681 1682 it var local to loadbase, loc:142, size:4 ; integer ; DEF: 1524 ; REF: 1537* it var local to freeallregisters, loc:140, size:4 ; integer ; DEF: 1137 ; REF: 1153* it var local to enterundlab, loc:142, size:4 ; integer ; DEF: 734 ; REF: 748* 750 it var local to enterllcst, loc:146, size:4 ; integer ; DEF: 609 ; REF: 622* 622 622 640* 640 it var local to initstate, loc:140, size:4 ; integer ; DEF: 421 ; REF: 440* itmi const scalar, ord=375 ; DEF: 1-731 ; REF: 906 2417 itmoz const scalar, ord=376 ; DEF: 1-731 ; REF: 908 2419 itnc const scalar, ord=377 ; DEF: 1-731 ; REF: 2425 itnz const scalar, ord=378 ; DEF: 1-732 ; REF: 2415 itpl const scalar, ord=380 ; DEF: 1-732 ; REF: 2421 itpnz const scalar, ord=381 ; DEF: 1-732 ; REF: 2423 itra const scalar, ord=382 ; DEF: 1-732 ; REF: 2165 itrc const scalar, ord=383 ; DEF: 1-732 ; REF: 2427 itsdplmt field disp:74, size:4 ; integer ; DEF: 1-877 ; REF: 1590* 1595* 1599* 1604* 1609* 1613* 1629* 1641* 1654* 1664* 1675* 1687* 1775 2003 2253* 2287* itsp3 const scalar, ord=389 ; DEF: 1-733 ; REF: 791 1117 1161 itze const scalar, ord=405 ; DEF: 1-735 ; REF: 864 2406 iunresolv type record ; DEF: 1-828 ; REF: 1-824 kind field disp:10, size:4 ; scalar ; DEF: 1-852 ; REF: 1755 1758 1882 1915 1962 2090 2203 2205 2212 2213 2214 2215 2228 2237 2243 2356* 2365* 2445* 2451 2452 2500 2504 2512 2542 2553 2555* 2560 2579 2596 2599* 2609 2628 2633 2671 klass field disp:110, size:4 ; scalar ; DEF: 1-515 ; REF: 1581 1657 2736 2744 konst const scalar, ord=2 ; DEF: 1-415 ; REF: 1-564 l9 const scalar, ord=2 ; DEF: 1-785 ; REF: 955 956 1318 1319 1410 1411 2342 2343 2485 2487 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 lastcreate var local to initstate, loc:142, size:10 ; pointer ; DEF: 422 ; REF: 439* 445 447 448* lbase var local to transfer, loc:157, size:4 ; scalar subrange ; DEF: 2139 ; REF: 2265* 2272 2277 2281 2298 2362* 2363 2462* 2465* 2471 2477 2487 2528* 2533 2538 2632* 2634 lbase var local to loadadr, loc:147, size:4 ; scalar subrange ; DEF: 1948 ; REF: 1960* 1969* 1976* 1982* 1990* 1993* 1998* 2007 2010 2012* 2044 2075 2108 lcode var local to genexceptcode, loc:144, size:4 ; integer ; DEF: 775 ; REF: 784* 785* 786* 787* 790 lcond const scalar, ord=1 ; DEF: 1-812 ; REF: 1-908 2215 2386 2676 lcsave var global exportable, size:4 ; integer ; DEF: 226 ; REF: 121 1142 1163 lcstpt type pointer ; DEF: 1-826 ; REF: 1-841 214 530 543 1738 2135 lcurbloc var local to newbloc, loc:142, size:10 ; pointer ; DEF: 1003 ; REF: 1013* 1015 1020 1021 lcurrbloc var local to sauvereg, loc:150, size:10 ; pointer ; DEF: 1252 ; REF: 1286* 1288 1289 1335* ldisp var local to transfer, loc:160, size:4 ; integer ; DEF: 2140 ; REF: 2265* 2272 2277 2281 2298 2362* 2363 2462* 2465* 2471 2477 2528* 2533 2538 2605* 2614* 2618* 2627 2632* 2634 ldreg field disp:14, size:4 ; scalar ; DEF: 1-889 ; REF: 2205 2213 2356* 2365* 2373 2375 2383* 2445* 2455 2555* 2563 2569* 2599* 2613 ldregbloc field disp:20, size:10 ; pointer ; DEF: 1-890 ; REF: 2356* 2365* 2369 2382* 2383* 2445* 2454 2551 2555* 2566 2568* 2569* 2573 2599* 2610 2611 leftcount var local to transfer, loc:162, size:4 ; integer ; DEF: 2140 ; REF: 2313* 2321 2322 level var global imported, size:4 ; numeric 0..20 ; DEF: 194 ; REF: 41 1537 1543 1590 1601 1618 1630 1643 1675 1689 2252 2287 levrange type numeric 0..20 ; DEF: 1-418 ; REF: 1-526 1-558 1-573 1-581 1-601 1-636 1-855 194 levtrace type scalar ; DEF: 1-624 ; REF: 244 lgcar type scalar ; DEF: 1-785 ; REF: 320 lgparm const numeric ; DEF: 1-23 ; REF: 1-24 lincr var local to sauvereg, loc:153, size:4 ; integer ; DEF: 1254 ; REF: 1296* 1299* 1304* 1306* 1308* 1311 linktoend var global exportable, size:4 ; boolean ; DEF: 227 ; REF: 122 459* linktomain var global exportable, size:4 ; boolean ; DEF: 229 ; REF: 124 458* linst var local to loadadr, loc:144, size:4 ; scalar subrange ; DEF: 1946 ; REF: 2029* 2031* 2034* 2036* 2037 2039 linst var local to calcvarient, loc:162, size:4 ; scalar subrange ; DEF: 1740 ; REF: 1805* 1809* 1812* 1814 1819* 1821* 1822* 1823 1824 1846* 1847* 1848* 1849 1865* 1867* 1867* 1868 1869 linst var local to loadbase, loc:143, size:4 ; scalar subrange ; DEF: 1525 ; REF: 1535* 1536 1538 linst var local to regenere, loc:143, size:4 ; scalar subrange ; DEF: 1373 ; REF: 1397* 1398* 1399* 1400* 1401* 1402* 1403* 1405 1406 linst var local to sauvereg, loc:152, size:4 ; scalar subrange ; DEF: 1253 ; REF: 1298* 1301* 1302* 1303* 1304* 1306* 1308* 1313 1314 linst var local to checkbnds, loc:152, size:4 ; scalar subrange ; DEF: 891 ; REF: 904* 904* 905 907 linx var local to getindex, loc:140, size:4 ; scalar ; DEF: 1484 ; REF: 1491* 1492 1496* 1498 1499 liunresolv type record ; DEF: 1-838 ; REF: 1-825 llcstpt type pointer ; DEF: 1-827 ; REF: 1-846 215 595 608 1739 2136 lliunresolv type record ; DEF: 1-843 ; REF: 1-824 llnext field disp:50, size:10 ; pointer ; DEF: 1-846 ; REF: 626 631* 639 llplace field disp:40, size:4 ; integer ; DEF: 1-845 ; REF: 631* 1891* 2589* llretpt var local to transfer, loc:146, size:10 ; pointer ; DEF: 2136 ; REF: 2588* 2589 llretpt var local to calcvarient, loc:160, size:10 ; pointer ; DEF: 1739 ; REF: 1891* 1891 llshift var local to transfer, loc:156, size:4 ; scalar subrange ; DEF: 2138 ; REF: 2374* 2376* 2377* 2378 2381 llvalu field disp:0, size:40 ; array of (integer) ; DEF: 1-844 ; REF: 622 631* 640 lmax var local to checkbnds, loc:147, size:4 ; integer ; DEF: 890 ; REF: 903* 907 lmin var local to checkbnds, loc:146, size:4 ; integer ; DEF: 890 ; REF: 903* 905 lmove var local to transfer, loc:172, size:4 ; scalar subrange ; DEF: 2146 ; REF: 2332* 2336* 2340 lnext field disp:50, size:10 ; pointer ; DEF: 1-841 ; REF: 559 567* loadadr proc level 0, exportable ; DEF: 1934 ; REF: 126 2251 2464 2517 2580 2624 loadbase proc level 0, exportable ; DEF: 1514 ; REF: 127 1607 1623 1635 1648 1694 loadinst var local to transfer, loc:151, size:4 ; scalar subrange ; DEF: 2138 ; REF: 2164 2166 2207* 2217* 2222* 2229* 2229* 2232* 2298 2346 2363 2411 2413 locboxpt var local to gencstecode, loc:146, size:10 ; pointer ; DEF: 808 ; REF: 825* 826 locdep var local to loadadr, loc:150, size:4 ; integer ; DEF: 1949 ; REF: 2003* 2004 2004 2006 2010 2050* 2053* 2053 2054 2054 2057 2058 2060 2062 2063 2065 2067 2071 2073* 2075 locdepw var local to calcvarient, loc:150, size:4 ; integer ; DEF: 1735 ; REF: 1770* 1787 1790 1795 1796 1801 1814 1836 locexit var local to checkbnds, loc:151, size:4 ; integer ; DEF: 890 ; REF: 908* 911 locmemw var local to calcvarient, loc:151, size:4 ; integer ; DEF: 1735 ; REF: 1771* 1785 1794 1816 1823 1855 1858 1862 1868 locskip var local to checkbnds, loc:150, size:4 ; integer ; DEF: 890 ; REF: 906* 909 locskip var local to gencheckmultover, loc:140, size:4 ; integer ; DEF: 849 ; REF: 863* 867 locskip1 var local to genlocskip, loc:142, size:4 ; integer ; DEF: 2161 ; REF: 2163* 2166 locskip2 var local to genlocskip, loc:143, size:4 ; integer ; DEF: 2161 ; REF: 2165* 2167 longalfbox const numeric ; DEF: 1-22 ; REF: 1-422 longboxlist const numeric ; DEF: 1-37 ; REF: 440 longitem var local to transfer, loc:163, size:4 ; integer ; DEF: 2140 ; REF: 2329* 2336 2337 2342 2481* 2485 2485 2487 longmove var local to transfer, loc:165, size:4 ; integer ; DEF: 2140 ; REF: 2332* 2336* 2343 2607* 2619 2620* 2627 longset var local to transfer, loc:164, size:4 ; integer ; DEF: 2140 ; REF: 2499* 2502 2508 2514 2521 2530 2592* 2597 2606* 2607 2629 longv field disp:70, size:4 ; integer ; DEF: 1-905 ; REF: 1886 2507 2582 2592 low const scalar, ord=1 ; DEF: 1-624 ; REF: 518 583 647 709 753 832 914 972 1025 1167 1346 1418 1460 1501 1540 1703 1920 2105 2640 2690 2757 lplace field disp:40, size:4 ; integer ; DEF: 1-840 ; REF: 566* 1888* 1897* 2546* 2585* lpr var local to getpr, loc:140, size:4 ; scalar subrange ; DEF: 1442 ; REF: 1450* 1451 1455* 1457 1458 lprp const scalar, ord=2 ; DEF: 1-917 ; REF: 2272 lreg var local to sauvereg, loc:144, size:4 ; scalar ; DEF: 1251 ; REF: 1264* 1267* 1272* 1273* 1276* 1278 1278* 1282 1287 1297 1298 1301 1340 1341 1348 lreg var local to printstatusregister, loc:140, size:4 ; scalar ; DEF: 399 ; REF: 402* 403 403 404* 405 405 406* 407 407 lregq var local to sauvereg, loc:145, size:4 ; scalar ; DEF: 1251 ; REF: 1265* 1278* 1287 1348 lretpt var local to transfer, loc:144, size:10 ; pointer ; DEF: 2135 ; REF: 2545* 2546 2584* 2585 lretpt var local to calcvarient, loc:156, size:10 ; pointer ; DEF: 1738 ; REF: 1888* 1888 1896* 1897 lshift var local to transfer, loc:152, size:4 ; scalar subrange ; DEF: 2138 ; REF: 2316* 2319* 2322 ltag var local to transfer, loc:166, size:4 ; scalar ; DEF: 2141 ; REF: 2265* 2272 2274 2278 2281 2298 2362* 2363 2462* 2465* 2471 2477 2528* 2533 2538 2632* 2634 ltag var local to calcvarient, loc:163, size:4 ; scalar ; DEF: 1743 ; REF: 1805* 1809* 1812* 1814 ltag var local to regenere, loc:142, size:4 ; scalar ; DEF: 1372 ; REF: 1393* 1397* 1406 lval const scalar, ord=2 ; DEF: 1-812 ; REF: 1-887 1755 1915 2205 2213 2356 2365 2367 2445 2452 2553 2555 2560 2599 2609 2675 lvalu field disp:0, size:40 ; array of (integer) ; DEF: 1-839 ; REF: 556 557 565* lvalvarbl proc level 0, imported ; DEF: 355 ; REF: 79 1756 lxl const scalar, ord=3 ; DEF: 1-918 ; REF: 1398 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 maxident const numeric ; DEF: 1-26 ; REF: 1-399 maxinxused var global exportable, size:4 ; scalar ; DEF: 231 ; REF: 128 276* 404 1491 1496 maxlevel const numeric ; DEF: 1-18 ; REF: 1-418 maxno const numeric ; DEF: 1-13 ; REF: 1-434 1-621 maxprused var global exportable, size:4 ; scalar subrange ; DEF: 232 ; REF: 129 277* 402 1450 1455 1760 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 medium const scalar, ord=2 ; DEF: 1-624 ; REF: 2175 mfari1 var global imported, size:4 ; scalar ; DEF: 179 ; REF: 28 953* 1316* 1408* 2339* 2483* 2518* 2594* 2625* mfari2 var global imported, size:4 ; scalar ; DEF: 180 ; REF: 29 953* 1316* 1408* 2339* 2483* 2518* 2594* 2625* minno const numeric ; DEF: 1-12 ; REF: 1-434 1-621 mlterrcode const numeric ; DEF: 1-256 ; REF: 866 modif var global exportable, size:60 ; array of (scalar) ; DEF: 233 ; REF: 130 278* 1876 2076 modif var parameter of addressvar, size:4 ; boolean ; DEF: 1554 ; REF: 1669 1681 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: 195 ; REF: 42 371 374 377 380 382 386 401 403 405 407 490 510 511 513 519 548 573 574 576 585 615 637 638 640 641 649 677 698 699 701 703 711 739 755 780 813 834 855 872 896 916 974 1008 1027 1030 1059 1062 1142 1150 1169 1259 1348 1350 1378 1420 1447 1462 1488 1503 1530 1542 1571 1707 1748 1922 1954 2107 2174 2177 2642 2665 2692 2720 2759 mreg type scalar subrange ; DEF: 1-778 ; REF: 321 323 name_token const scalar, ord=1 ; DEF: 1-491 ; REF: 1-496 nameaddr field disp:110, size:10 ; pointer ; DEF: 1-879 ; REF: 1579* 2271 2276 2282 2297 2341 2470 2476 2486 2520 2532 2537 2596 2628 2633 nameisref proc level 0, imported ; DEF: 328 ; REF: 63 1669 1670 1681 1682 2739 2740 nbr field disp:0, size:4 ; numeric 0..25 ; DEF: 1-627 ; REF: 1668 1680 newbloc proc level 0, exportable ; DEF: 993 ; REF: 131 1344 1974 2398 newtagstar var global, loc:54, size:100 ; array of (scalar) ; DEF: 262 ; REF: 300* 2278 next_sp_place const numeric ; DEF: 1-281 ; REF: 1113 nextbloc field disp:10, size:10 ; pointer ; DEF: 1-821 ; REF: 382 436* 447* 449* 1014 1017* 1028 1075 1075 1078* 1078 1078 1087* 1335 nextline proc level 0, imported ; DEF: 329 ; REF: 64 371 371 374 377 381 383 386 386 408 490 510 512 513 520 550 573 574 575 576 585 615 637 639 640 641 650 677 698 699 702 703 712 741 757 780 815 834 856 873 898 916 976 1008 1029 1030 1059 1062 1144 1150 1169 1260 1349 1350 1378 1420 1447 1462 1488 1504 1530 1544 1571 1707 1748 1924 1955 2108 2174 2177 2642 2665 2692 2721 2759 nilleft const numeric ; DEF: 1-75 ; REF: 302 nilpseudoset var global, loc:74, size:40 ; array of (integer) ; DEF: 263 ; REF: 302* 1896* nilptr var global imported, size:10 ; pointer ; DEF: 195 ; REF: 43 1894 nilright const numeric ; DEF: 1-76 ; REF: 302 no var global imported, size:4 ; integer ; DEF: 196 ; REF: 44 2720 2725 2759 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: 454 488 546 613 675 737 778 811 853 870 894 1006 1057 1140 1257 1376 1445 1487 1528 1569 1746 1952 2172 2663 2718 noterr var local to transfer, loc:171, size:4 ; boolean ; DEF: 2143 ; REF: 2197* 2203* 2212* 2237* 2241 npksize field disp:200, size:4 ; integer ; DEF: 1-535 ; REF: 428* nreg const scalar, ord=0 ; DEF: 1-774 ; REF: 1-777 435 789 790 823 829 861 864 868 906 908 955 1264 1265 1278 1282 1321 1322 1332 1333 1754 1778 1790 1796 1814 1841 1849 1883 1960 1964 2006 2058 2060 2063 2065 2067 2071 2084 2092 2101 2163 2164 2165 2166 2251 2322 2324 2325 2351 2381 2403 2404 2409 2411 2413 2430 2432 2436 2439 2441 2464 2534 2547 2591 numeric const scalar, ord=1 ; DEF: 1-412 ; REF: 1-535 424 2323 nxreg const scalar, ord=10 ; DEF: 1-775 ; REF: 233 266 1762 1783 1839 1853 2016 2032 2046 2088 2258 2290 objaccessibles type scalar ; DEF: 1-460 ; REF: 1-461 occur field disp:10, size:4 ; scalar ; DEF: 1-634 ; REF: 1662 occurence type record ; DEF: 1-670 ; REF: 203 oldbloc var parameter of regenere, size:10 ; pointer ; DEF: 1360 ; REF: 1382 1387 1388 1389 1391 oldnewstor funct level 0, exportable ; integer ; DEF: 964 ; REF: 135 983* 1112 1311 1329 out const scalar, ord=5 ; DEF: 1-814 ; REF: 2186 2492 2638 outputctp var global exportable, size:10 ; pointer ; DEF: 238 ; REF: 137 457* p0t0r0 const scalar, ord=0 ; DEF: 1-791 ; REF: 954 1317 1409 2340 2484 2519 2595 2626 pack field disp:124, size:4 ; boolean ; DEF: 1-525 ; REF: 1586 1678 packedsize funct level 0, imported ; integer ; DEF: 348 ; REF: 74 2312 2329 2481 pagesinsegment const numeric ; DEF: 1-69 ; REF: 1-70 pckd field disp:100, size:4 ; boolean ; DEF: 1-878 ; REF: 1584* 1586* 1664* 1678* 1678* 1687* 2228 2247 2262* 2269 2291* 2302 2461 2468 place field disp:4, size:4 ; numeric -131072..131071 ; DEF: 1-671 ; REF: 748* pointable const scalar, ord=2 ; DEF: 1-813 ; REF: 1598 1603 1608 1629 1642 1653 1676 1773 2001 pointee const scalar, ord=1 ; DEF: 1-813 ; REF: 1624 1695 2011 2254 2288 pointer const scalar, ord=3 ; DEF: 1-412 ; REF: 1-541 2224 2228 2248 2303 2461 2472 2670 power const scalar, ord=4 ; DEF: 1-412 ; REF: 1-543 1586 1884 2184 pr0 const scalar, ord=6 ; DEF: 1-774 ; REF: 791 1117 1161 pr1 const scalar, ord=1 ; DEF: 1-774 ; REF: 239 402 1298 1396 1450 pr2 const scalar, ord=2 ; DEF: 1-774 ; REF: 1298 1396 pr3 const scalar, ord=5 ; DEF: 1-774 ; REF: 2517 2521 2580 2597 2624 2629 pr5 const scalar, ord=3 ; DEF: 1-774 ; REF: 1116 1298 1396 pr6 const scalar, ord=9 ; DEF: 1-774 ; REF: 1-777 239 859 860 862 865 956 1113 1114 1160 1314 1318 1319 1330 1406 1410 1411 1536 1590 1603 1620 1632 1645 1665 1675 1691 1794 1823 1826 1827 1858 1868 1871 1872 1980 1996 2039 2079 2305 2306 2343 2346 2474 2475 2482 2485 2522 2525 2567 2598 2618 2627 pr7 const scalar, ord=4 ; DEF: 1-774 ; REF: 277 1298 1396 predbloc field disp:20, size:10 ; pointer ; DEF: 1-822 ; REF: 383 435* 449* 1017* 1020* 1073 1075* 1078 1078* 1078 preg type scalar subrange ; DEF: 1-777 ; REF: 1-856 1-880 213 232 318 320 322 1442 1717 1934 1948 2139 prinst var global exportable, size:154 ; array of (array of (scalar subrange)) ; DEF: 239 ; REF: 138 289* 1298 1397 1535 1780 1981 1997 2007 2010 2075 2101 2272 2277 2281 2283 printattr proc level 0, imported ; DEF: 356 ; REF: 80 1706 1750 1957 2178 printregbox proc level 0 ; DEF: 365 ; REF: 1063 1382 printstatusregister proc level 0, exportable ; DEF: 395 ; REF: 139 1261 1381 prlink const scalar, ord=8 ; DEF: 1-774 ; REF: 1653 proc const scalar, ord=3 ; DEF: 1-415 ; REF: 1-571 2736 procblock const scalar, ord=0 ; DEF: 1-938 ; REF: 1-945 proclevel field disp:144, size:4 ; numeric 0..20 ; DEF: 1-573 ; REF: 1688 proclocation type scalar ; DEF: 1-439 ; REF: 1-577 proctype field disp:120, size:10 ; pointer ; DEF: 1-571 ; REF: 1687 profarea type array of (integer) ; DEF: 1-934 ; REF: 1-933 prstatic const scalar, ord=7 ; DEF: 1-774 ; REF: 1598 1616 1665 prtoload var local to loadadr, loc:146, size:4 ; scalar subrange ; DEF: 1948 ; REF: 1969* 1976* 1982* 1988* 2007 2010 2012 2044 2075 2080 2085 2095* 2097* 2101 2107 psr const scalar, ord=24 ; DEF: 1-776 ; REF: 406 1308 1403 2565 2569 2577 2599 2613 psrdepw const numeric ; DEF: 1-283 ; REF: 956 1318 1411 2567 2598 2614 psrinbytes const numeric ; DEF: 1-113 ; REF: 1308 1318 1319 1410 1411 1412 psrsize field disp:30, size:4 ; integer ; DEF: 1-891 ; REF: 2569* 2600* psrsize var global exportable, size:4 ; integer ; DEF: 240 ; REF: 140 1412* ptexternalitem type pointer ; DEF: 1-444 ; REF: 1-448 1-578 1-607 ra const scalar, ord=20 ; DEF: 1-776 ; REF: 237 406 784 904 1184 1217 1269 1276 1276 1302 1399 1766 1807 1820 1847 1866 2020 2028 2056 2213 2232 2314 2375 2402 2435 2440 2458 2678 raisused funct level 0, exportable ; boolean ; DEF: 1179 ; REF: 141 1183* 1187* 1766 2020 raq const scalar, ord=22 ; DEF: 1-776 ; REF: 786 866 1185 1201 1219 1273 1273 1274 1304 1401 2205 2207 2226 2457 2524 2529 2544 2555 2563 rcstpt type pointer ; DEF: 1-825 ; REF: 1-836 216 660 672 1737 real_const_token const scalar, ord=4 ; DEF: 1-491 ; REF: 1-498 realptr var global imported, size:10 ; pointer ; DEF: 197 ; REF: 45 1899 2204 2221 reaq const scalar, ord=23 ; DEF: 1-776 ; REF: 237 787 1186 1202 1220 1270 1272 1272 1306 1402 2222 2456 recadre funct level 0, imported ; integer ; DEF: 330 ; REF: 65 979 981 recidscope type record ; DEF: 1-632 ; REF: 190 records const scalar, ord=6 ; DEF: 1-412 ; REF: 1-554 reel const scalar, ord=0 ; DEF: 1-412 ; REF: 1-534 2670 reflist type record ; DEF: 1-426 ; REF: 1-425 refptr type pointer ; DEF: 1-425 ; REF: 1-427 1-512 1-649 regbox type record ; DEF: 1-817 ; REF: 1-816 regcharge var global, loc:104, size:154 ; array of (boolean) ; DEF: 264 ; REF: 403 405 407 1023* 1085* 1155* 1184 1185 1186 1200 1201 1202 1217 1218 1219 1220 1266 1272 1273 1276 1277 1331* 1341* 1344* 1389 1415* 1451 1492 regenere proc level 0, exportable ; DEF: 1360 ; REF: 142 1761 1768 2023 2454 2566 register type scalar ; DEF: 1-774 ; REF: 1-777 1-819 1-862 1-889 1-920 231 233 237 239 241 258 266 268 399 768 883 993 1097 1251 1484 2137 regname var global exportable, size:154 ; array of (array of (char)) ; DEF: 241 ; REF: 143 292* 380 403 405 407 897 1008 1259 1348 1348 1462 1503 1542 1922 1954 2107 2108 regpt type pointer ; DEF: 1-816 ; REF: 1-821 1-822 1-858 1-867 1-881 1-890 1-910 212 257 259 365 422 1003 1040 1054 1252 1360 reset_stack_end_op_place const numeric ; DEF: 1-227 ; REF: 1161 resetused var global exportable, size:4 ; boolean ; DEF: 220 ; REF: 103 464* rightcount var local to transfer, loc:161, size:4 ; integer ; DEF: 2140 ; REF: 2312* 2324 2325 2333* 2337* 2347 2351 rlogshift var local to transfer, loc:154, size:4 ; scalar subrange ; DEF: 2138 ; REF: 2316* 2319* 2325 rnext field disp:20, size:10 ; pointer ; DEF: 1-836 ; REF: 686 692* 701 rplace field disp:10, size:4 ; integer ; DEF: 1-835 ; REF: 691* 1902* rq const scalar, ord=21 ; DEF: 1-776 ; REF: 233 266 785 1200 1218 1277 1278 1278 1303 1331 1400 1765 1803 1818 1846 1864 2021 2030 2061 2213 2217 2349 2373 2408 2431 2459 rqisused funct level 0, exportable ; boolean ; DEF: 1195 ; REF: 145 1199* 1203* 1765 2021 2672 rretpt var local to calcvarient, loc:154, size:10 ; pointer ; DEF: 1737 ; REF: 1901* 1902 rshift var local to transfer, loc:153, size:4 ; scalar subrange ; DEF: 2138 ; REF: 2316* 2319* 2324 2349* 2350* 2351 rsval field disp:20, size:10 ; real ; DEF: 1-903 ; REF: 1901 runresolv type record ; DEF: 1-833 ; REF: 1-825 rvalu field disp:0, size:10 ; real ; DEF: 1-834 ; REF: 682 691* 701 sauvereg proc level 0, exportable ; DEF: 1229 ; REF: 146 1097 1116 1394 1457 1498 2296 2345 2361 2380 2389 2392 2524 2529 2544 2565 2577 savecurbloc var local to freebloc, loc:142, size:10 ; pointer ; DEF: 1054 ; REF: 1075* 1079* 1090 saved_stack_end_place var global, loc:137, size:4 ; integer ; DEF: 265 ; REF: 1112* 1114 1160 saveplace field disp:4, size:4 ; integer ; DEF: 1-820 ; REF: 381 435* 1017* 1081 1294 1311* 1314 1319 1327 1329* 1330 1388 1392 1406 1410 1414* 1763 1972 1980 1991 1996 2018 2369 2395 2551 2573 2611 scalar const scalar, ord=2 ; DEF: 1-412 ; REF: 1-536 1677 2330 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: 331 ; REF: 85 2730 setarray type array of (integer) ; DEF: 1-815 ; REF: 1-839 1-844 1-904 235 236 263 530 595 setrange const numeric ; DEF: 1-92 ; REF: 1-93 1-94 short var local to gencstecode, loc:144, size:4 ; boolean ; DEF: 807 ; REF: 818* 821* 822 shrtint type numeric -131072..131071 ; DEF: 1-619 ; REF: 1-671 size field disp:114, size:4 ; integer ; DEF: 1-524 ; REF: 427* 428 2203 2212 2214 2224 2499 2600 2606 2615 spri const scalar, ord=1 ; DEF: 1-917 ; REF: 1298 sregister field disp:0, size:4 ; scalar ; DEF: 1-819 ; REF: 380 435* 1017* 1085 1291 1324 1389 1394 1395 1397 1398 1415 1767* 2022* 2390 2678 stack_has_been_extended var global exportable, size:4 ; boolean ; DEF: 243 ; REF: 148 453* 1109 1111* 1157 1159* starmodif var global, loc:140, size:60 ; array of (scalar) ; DEF: 266 ; REF: 303* 1831 statearray type array of (boolean) ; DEF: 1-920 ; REF: 261 264 stattrace var global exportable, size:4 ; scalar ; DEF: 244 ; REF: 149 454* 488 508 518 546 571 583 613 635 647 675 696 709 737 753 778 811 832 853 870 894 914 972 1006 1025 1057 1060 1140 1167 1257 1261 1346 1376 1379 1418 1445 1460 1487 1501 1528 1540 1569 1703 1705 1746 1749 1920 1952 1956 2105 2172 2175 2640 2663 2690 2718 2757 storinst var local to transfer, loc:155, size:4 ; scalar subrange ; DEF: 2138 ; REF: 2456* 2457* 2458* 2459* 2471 2482 sttmap type array of (record) ; DEF: 1-925 ; REF: 1-924 succ field disp:0, size:4 ; numeric -131072..131071 ; DEF: 1-671 ; REF: 748 749* sup funct level 0, imported ; integer ; DEF: 332 ; REF: 66 2600 sval const scalar, ord=4 ; DEF: 1-812 ; REF: 1-900 1882 2214 2359 2504 2542 2672 sversion var global, loc:154, size:4 ; integer ; DEF: 267 ; REF: 460* 461 461 sxl const scalar, ord=2 ; DEF: 1-918 ; REF: 1301 symbol_token const scalar, ord=0 ; DEF: 1-491 ; REF: 1-495 symbolfile var global imported, size:4 ; integer ; DEF: 199 ; REF: 47 1669 1670 1681 1682 2739 2740 symbolline var global imported, size:4 ; integer ; DEF: 200 ; REF: 48 1669 1670 1681 1682 2739 2740 symbolmap var global imported, size:4 ; boolean ; DEF: 201 ; REF: 49 1667 1679 2738 symbolp field disp:10, size:310 ; array of (pointer) ; DEF: 1-628 ; REF: 1669 1670 1681 1682 tag type scalar ; DEF: 1-766 ; REF: 1-778 181 233 262 262 266 318 1372 1718 1743 2141 tagfield const scalar, ord=6 ; DEF: 1-415 ; REF: 1-610 tagsymb var global imported, size:400 ; array of (array of (char)) ; DEF: 181 ; REF: 30 1923 tal const scalar, ord=5 ; DEF: 1-766 ; REF: 278 taly const scalar, ord=21 ; DEF: 1-768 ; REF: 300 target var local to transfer, loc:150, size:4 ; scalar ; DEF: 2137 ; REF: 2207* 2217* 2222* 2226* 2232* 2296 2314 2345 2349 2356 2361 2365 2380 2383 2389 2390 2392 2398 2402 2408 2431 2435 2440 2445 tauy const scalar, ord=17 ; DEF: 1-768 ; REF: 300 tdl const scalar, ord=7 ; DEF: 1-766 ; REF: 823 868 1805 1809 1849 1906 2058 2060 2063 2065 2164 2166 2411 2413 2430 2439 2534 tdu const scalar, ord=3 ; DEF: 1-766 ; REF: 1796 1812 2067 tempstor var global exportable, size:4 ; integer ; DEF: 248 ; REF: 152 975 981* 981 983 984* 984 985 985 1143 1163* tic const scalar, ord=4 ; DEF: 1-766 ; REF: 829 864 906 908 1883 2101 2163 2165 2547 2591 ticy const scalar, ord=20 ; DEF: 1-768 ; REF: 300 tmax var global exportable, size:4 ; integer ; DEF: 249 ; REF: 153 975 985 985* tn const scalar, ord=0 ; DEF: 1-766 ; REF: 1-778 262 278 278 789 790 791 859 860 861 862 865 955 956 1114 1117 1161 1314 1318 1319 1330 1393 1410 1411 1754 1778 1790 1794 1823 1826 1827 1841 1856 1858 1868 1871 1872 2006 2039 2071 2079 2084 2305 2306 2322 2324 2325 2342 2343 2346 2351 2381 2403 2404 2409 2432 2436 2441 2465 2474 2482 2485 2487 2521 2522 2525 2567 2597 2598 2618 2627 2629 tny const scalar, ord=16 ; DEF: 1-768 ; REF: 300 303 304 1113 1160 1397 1536 1538 1788 1981 1997 2010 2283 2475 tomove var local to transfer, loc:167, size:4 ; boolean ; DEF: 2142 ; REF: 2605* 2616* 2622 tql const scalar, ord=6 ; DEF: 1-766 ; REF: 278 tqly const scalar, ord=22 ; DEF: 1-768 ; REF: 300 tquy const scalar, ord=18 ; DEF: 1-768 ; REF: 300 transf field disp:34, size:4 ; integer ; DEF: 1-912 ; REF: 2400 transfer proc level 0, exportable ; DEF: 2118 ; REF: 154 2670 2673 2674 2679 2680 2682 twoto10 const numeric ; DEF: 1-50 ; REF: 1-51 1-68 twoto14 const numeric ; DEF: 1-52 ; REF: 1-53 1776 1776 1837 1837 2004 2004 2054 2054 twoto15 const numeric ; DEF: 1-53 ; REF: 1-54 1-72 twoto16 const numeric ; DEF: 1-54 ; REF: 1-55 twoto17 const numeric ; DEF: 1-55 ; REF: 1-56 1-57 1-90 1-619 twoto17m1 const numeric ; DEF: 1-56 ; REF: 1-619 1904 twoto18 const numeric ; DEF: 1-57 ; REF: 1-58 1-59 1-71 820 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 tx0 const scalar, ord=8 ; DEF: 1-767 ; REF: 278 tx0y const scalar, ord=24 ; DEF: 1-769 ; REF: 301 tx1 const scalar, ord=9 ; DEF: 1-767 ; REF: 278 tx1y const scalar, ord=25 ; DEF: 1-769 ; REF: 301 tx2 const scalar, ord=10 ; DEF: 1-767 ; REF: 278 tx2y const scalar, ord=26 ; DEF: 1-769 ; REF: 301 tx3 const scalar, ord=11 ; DEF: 1-767 ; REF: 278 tx3y const scalar, ord=27 ; DEF: 1-769 ; REF: 301 tx4 const scalar, ord=12 ; DEF: 1-767 ; REF: 278 tx4y const scalar, ord=28 ; DEF: 1-769 ; REF: 301 tx5 const scalar, ord=13 ; DEF: 1-767 ; REF: 278 tx5y const scalar, ord=29 ; DEF: 1-769 ; REF: 301 tx6 const scalar, ord=14 ; DEF: 1-767 ; REF: 278 tx6y const scalar, ord=30 ; DEF: 1-769 ; REF: 301 tx7 const scalar, ord=15 ; DEF: 1-767 ; REF: 1-778 262 278 1780 1858 2080 2085 2274 tx7y const scalar, ord=31 ; DEF: 1-769 ; REF: 301 2007 tyal const scalar, ord=53 ; DEF: 1-772 ; REF: 304 typeofop type scalar ; DEF: 1-919 ; REF: 237 typepr type scalar ; DEF: 1-917 ; REF: 239 types const scalar, ord=1 ; DEF: 1-415 ; REF: 1-523 typform type scalar ; DEF: 1-412 ; REF: 1-533 344 typix type scalar ; DEF: 1-918 ; REF: 268 typtr field disp:0, size:10 ; pointer ; DEF: 1-851 ; REF: 1583* 1660* 1677 1678 1687* 1752 1884 1894 1899 2183 2184 2203 2204 2212 2214 2221 2224 2224 2228 2248 2303 2312 2323 2329 2330 2461 2472 2481 2499 2600 2606 2615 2668 2670 2727* 2741* tyql const scalar, ord=54 ; DEF: 1-772 ; REF: 304 tyx0 const scalar, ord=56 ; DEF: 1-773 ; REF: 303 tyx1 const scalar, ord=57 ; DEF: 1-773 ; REF: 303 tyx2 const scalar, ord=58 ; DEF: 1-773 ; REF: 303 tyx3 const scalar, ord=59 ; DEF: 1-773 ; REF: 303 tyx4 const scalar, ord=60 ; DEF: 1-773 ; REF: 303 tyx5 const scalar, ord=61 ; DEF: 1-773 ; REF: 303 tyx6 const scalar, ord=62 ; DEF: 1-773 ; REF: 303 tyx7 const scalar, ord=63 ; DEF: 1-773 ; REF: 304 1790 1797 tz23 const scalar, ord=19 ; DEF: 1-768 ; REF: 300 tz27 const scalar, ord=23 ; DEF: 1-768 ; REF: 300 unddeb field disp:170, size:4 ; integer ; DEF: 1-570 ; REF: 2100* undecptr var global imported, size:10 ; pointer ; DEF: 202 ; REF: 50 2734 undlab var global imported, size:17500 ; array of (record) ; DEF: 203 ; REF: 51 746 748* 748 749* undmax const numeric ; DEF: 1-21 ; REF: 203 usednameaddr var global imported, size:10 ; pointer ; DEF: 182 ; REF: 31 2271* 2276* 2282* 2297* 2341* 2470* 2476* 2486* 2520* 2532* 2537* 2596* 2628* 2633* usednamesarray type packed array of (pointer) ; DEF: 1-973 ; REF: 1-974 1-974 vaddr field disp:140, size:4 ; integer ; DEF: 1-599 ; REF: 1599 1604 1609 1613 1629 1641 1654 val field disp:14, size:4 ; integer ; DEF: 1-902 ; REF: 1904 1906 1909 valpw field disp:30, size:40 ; array of (integer) ; DEF: 1-904 ; REF: 1888* 1891* 2545* 2584* 2588* valu field disp:0, size:4 ; integer ; DEF: 1-829 ; REF: 496 502* vararea type scalar ; DEF: 1-939 ; REF: 1-953 varbl const scalar, ord=0 ; DEF: 1-812 ; REF: 1-854 1758 1962 2203 2212 2228 2237 2244 2451 2500 2512 2579 2596 2628 2633 2672 variabctptr var global exportable, size:10 ; pointer ; DEF: 247 ; REF: 156 2724* 2750* variable proc level 0, imported ; DEF: 340 ; REF: 83 2753 vars const scalar, ord=4 ; DEF: 1-415 ; REF: 1-596 1581 2744 vdispl field disp:144, size:4 ; integer ; DEF: 1-600 ; REF: 1642 vdspl field disp:340, size:4 ; integer ; DEF: 1-637 ; REF: 1675 version var global imported, size:4 ; integer ; DEF: 204 ; REF: 52 461 461* visreadonly field disp:174, size:4 ; boolean ; DEF: 1-603 ; REF: 2748 visset field disp:170, size:4 ; boolean ; DEF: 1-603 ; REF: 2749* visused field disp:164, size:4 ; boolean ; DEF: 1-603 ; REF: 1587* vkind field disp:130, size:4 ; scalar ; DEF: 1-597 ; REF: 1592 1627 1639 vlev field disp:14, size:4 ; numeric 0..20 ; DEF: 1-855 ; REF: 1583* 1590* 1596 1601 1607 1614 1618 1623 1630 1635 1643 1648 1664* 1665 1675* 1688* 1689 1694 2252* 2287* vlevel field disp:154, size:4 ; numeric 0..20 ; DEF: 1-601 ; REF: 1583 vpack field disp:344, size:4 ; boolean ; DEF: 1-637 ; REF: 1678 vreflist field disp:20, size:320 ; record ; DEF: 1-637 ; REF: 1680 1681 1682 vtype field disp:120, size:10 ; pointer ; DEF: 1-596 ; REF: 1583 1585 1586 1586 1588 1593 vwith const scalar, ord=2 ; DEF: 1-622 ; REF: 1-637 wantedpr var parameter of loadadr, size:4 ; scalar subrange ; DEF: 1934 ; REF: 1954 1964 1988 1997 1998 2092 2097 wcstpt type pointer ; DEF: 1-824 ; REF: 1-831 218 472 485 808 1736 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 217 withvariable var global exportable, size:4 ; boolean ; DEF: 250 ; REF: 157 462* wkpt var local to initstate, loc:144, size:10 ; pointer ; DEF: 422 ; REF: 442* 442 443 446 447 448 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 workformaths var global exportable, size:4 ; boolean ; DEF: 251 ; REF: 158 1156* workpt var local to enterreal, loc:144, size:10 ; pointer ; DEF: 672 ; REF: 680* 681 682 686* 686 688* 688 689 694 699 700 707 workpt var local to enterllcst, loc:144, size:10 ; pointer ; DEF: 608 ; REF: 618* 619 622 626* 626 629* 629 630 633 638 639 640 645 workpt var local to enterlcst, loc:144, size:10 ; pointer ; DEF: 543 ; REF: 553* 554 556 557 559* 559 562* 562 563 569 574 581 workpt var local to entercst, loc:144, size:10 ; pointer ; DEF: 485 ; REF: 493* 495 496 498* 498 500* 500 501 506 511 512 516 wretpt var local to calcvarient, loc:152, size:10 ; pointer ; DEF: 1736 ; REF: 1909* 1910 x0 const scalar, ord=11 ; DEF: 1-775 ; REF: 268 404 1301 1398 1491 2066 x1 const scalar, ord=12 ; DEF: 1-775 ; REF: 1301 1398 x2 const scalar, ord=13 ; DEF: 1-775 ; REF: 1301 1398 x3 const scalar, ord=14 ; DEF: 1-775 ; REF: 1301 1398 x4 const scalar, ord=15 ; DEF: 1-775 ; REF: 1301 1398 x5 const scalar, ord=16 ; DEF: 1-775 ; REF: 276 1301 1398 x6 const scalar, ord=17 ; DEF: 1-775 ; REF: 1398 1766 2021 2070 x7 const scalar, ord=18 ; DEF: 1-775 ; REF: 268 1398 1842 2034 2066 xinst var global, loc:155, size:200 ; array of (array of (scalar subrange)) ; DEF: 268 ; REF: 305* 1301 1398 1812 1827 1848 1872 2067 zari type scalar ; DEF: 1-799 ; REF: 179 180 zptr type scalar ; DEF: 1-791 ; REF: 319 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 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 a1r1i0 const scalar, ord=6 ; DEF: 1-799 a1r1i1 const scalar, ord=7 ; DEF: 1-799 absl * const numeric ; DEF: 1-334 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_parameter_list field disp:160, size:10 ; pointer ; DEF: 1-530 add const scalar, ord=3 ; DEF: 1-919 addressvar * proc level 0, exportable ; DEF: 1554 ; REF: 88 adx const scalar, ord=1 ; DEF: 1-918 aeltype field disp:200, size:10 ; pointer ; DEF: 1-546 alfadeb field disp:150, size:10 ; pointer ; DEF: 1-569 alfalevel field disp:164, size:4 ; integer ; DEF: 1-570 alfalong field disp:160, 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 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 asscheck * var global exportable, size:4 ; boolean ; DEF: 210 ; REF: 90 asserrcode * const numeric ; DEF: 1-250 bad_date_time_parameter * const numeric ; DEF: 1-269 bad_string_index * const numeric ; DEF: 1-268 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 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 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 chaineentree field disp:260, size:10 ; pointer ; DEF: 1-583 charptr * var global imported, size:10 ; pointer ; DEF: 187 ; REF: 34 checkbeforeeofplace * const numeric ; DEF: 1-157 checkbeforeeolnplace * const numeric ; DEF: 1-156 checkbeforetextreferenceplace * const numeric ; DEF: 1-158 checkbit * const numeric ; DEF: 1-236 checkbnds * proc level 0, exportable ; DEF: 883 ; REF: 92 choicerarq * proc level 0, exportable ; DEF: 2653 ; REF: 93 chrerrcode * const numeric ; DEF: 1-245 clockopplace * const numeric ; DEF: 1-198 closeplace * const numeric ; DEF: 1-164 cltransf * var global exportable, size:30 ; array of (integer) ; DEF: 211 ; REF: 94 275* cmp const scalar, ord=5 ; DEF: 1-919 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 conformant field disp:220, size:4 ; boolean ; DEF: 1-548 connectplace * const numeric ; DEF: 1-188 contexte * type scalar ; DEF: 1-623 contype field disp:130, size:10 ; pointer ; DEF: 1-565 create_konst_box * proc level 0, imported ; DEF: 345 ; REF: 71 create_vars_box * proc level 0, imported ; DEF: 346 ; REF: 72 current_parameter field disp:30, size:10 ; pointer ; DEF: 1-489 current_token field disp:20, size:10 ; pointer ; DEF: 1-488 currwithlist * var global exportable, size:320 ; record ; DEF: 217 ; REF: 100 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 descbloc field disp:130, size:10 ; pointer ; DEF: 1-881 descreg field disp:120, size:4 ; scalar subrange ; DEF: 1-880 disposeplace * const numeric ; DEF: 1-178 divcheck * var global exportable, size:4 ; boolean ; DEF: 221 ; REF: 104 diverrcode * const numeric ; DEF: 1-251 domain field disp:210, size:10 ; pointer ; DEF: 1-542 dopevectorsize * const numeric ; DEF: 1-274 elem field disp:20, size:10 ; pointer ; DEF: 1-475 elset field disp:210, size:10 ; pointer ; DEF: 1-544 eltype field disp:220, size:10 ; pointer ; DEF: 1-542 emptyindex * const numeric ; DEF: 1-385 emptyplace * const numeric ; DEF: 1-367 encode const scalar, ord=3 ; DEF: 1-813 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 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 extcallplace * const numeric ; DEF: 1-194 extdecl field disp:230, size:10 ; pointer ; DEF: 1-450 extdef const scalar, ord=2 ; DEF: 1-417 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 father_schema field disp:150, size:10 ; pointer ; DEF: 1-529 fcloseplace * const numeric ; DEF: 1-187 fconst field disp:210, size:10 ; pointer ; DEF: 1-538 fctdeplw * const numeric ; DEF: 1-286 fdescsize * const numeric ; DEF: 1-304 feltype field disp:200, size:10 ; pointer ; DEF: 1-555 filen field disp:0, size:4 ; integer ; DEF: 1-430 fillimit * const numeric ; DEF: 1-17 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 formals field disp:130, size:10 ; pointer ; DEF: 1-571 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 freeallregisters * proc level 0, exportable ; DEF: 1124 ; REF: 110 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 fstfld field disp:210, size:10 ; pointer ; DEF: 1-554 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 gencheckmultover * proc level 0, exportable ; DEF: 844 ; REF: 113 getdirplace * const numeric ; DEF: 1-185 getindex * proc level 0 ; DEF: 1472 getseqplace * const numeric ; DEF: 1-175 gettextplace * const numeric ; DEF: 1-174 gotoexitextplace * const numeric ; DEF: 1-159 gotoexitplace * const numeric ; DEF: 1-176 harptr * var global, loc:10, size:10 ; pointer ; DEF: 186 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 hi field disp:230, size:4 ; integer ; DEF: 1-549 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 iabd const scalar, ord=504 ; DEF: 1-751 iabsa const scalar, ord=447 ; DEF: 1-743 iad2d const scalar, ord=530 ; DEF: 1-756 iad3d const scalar, ord=536 ; DEF: 1-757 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 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 ialr const scalar, ord=72 ; 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 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 iasa const scalar, ord=108 ; DEF: 1-692 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 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 icsr const scalar, ord=520 ; DEF: 1-755 icwl const scalar, ord=173 ; DEF: 1-700 idfcmg const scalar, ord=202 ; DEF: 1-705 idfdi const scalar, ord=194 ; DEF: 1-704 idfdv const scalar, ord=195 ; DEF: 1-704 idfmp const scalar, ord=190 ; DEF: 1-703 idfrd const scalar, ord=200 ; DEF: 1-705 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 ieax1 const scalar, ord=3 ; 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 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 ieraq const scalar, ord=253 ; 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 ifld const scalar, ord=177 ; DEF: 1-702 ifmp const scalar, ord=192 ; 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 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 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 ilsdp const scalar, ord=428 ; DEF: 1-740 ilsdr const scalar, ord=429 ; DEF: 1-741 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 imported const scalar, ord=4 ; DEF: 1-406 importproc const scalar, ord=5 ; DEF: 1-442 importvar const scalar, ord=3 ; DEF: 1-441 impy const scalar, ord=155 ; DEF: 1-698 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 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 inhibit * const numeric ; DEF: 1-143 init_desc_address * proc level 0, imported ; DEF: 339 ; REF: 82 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 initstate * proc level 0, exportable ; DEF: 417 ; REF: 118 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 intcallplace * const numeric ; DEF: 1-193 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 inxcheck * var global exportable, size:4 ; boolean ; DEF: 225 ; REF: 120 inxerrcode * const numeric ; DEF: 1-244 inxtype field disp:210, size:10 ; pointer ; DEF: 1-546 iora const scalar, ord=231 ; DEF: 1-710 ioraq const scalar, ord=232 ; 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 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 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 isprp0 const scalar, ord=353 ; DEF: 1-727 isprp1 const scalar, ord=354 ; DEF: 1-727 isprp2 const scalar, ord=355 ; 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 isstring * funct level 0, imported ; boolean ; DEF: 354 ; REF: 78 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 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 istz const scalar, ord=63 ; DEF: 1-686 iswca const scalar, ord=152 ; DEF: 1-698 iswcq const scalar, ord=153 ; DEF: 1-698 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 itov const scalar, ord=379 ; 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 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 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 linktoendplace * var global exportable, size:4 ; integer ; DEF: 228 ; REF: 123 linktomainplace * var global exportable, size:4 ; integer ; DEF: 230 ; REF: 125 lo field disp:224, size:4 ; integer ; DEF: 1-549 load const scalar, ord=0 ; DEF: 1-919 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 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 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 minexp * const numeric ; DEF: 1-120 minrealstring const alphanumeric, 20 char(s) ; DEF: 1-125 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 nbparproc field disp:160, size:4 ; integer ; DEF: 1-574 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 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 nilanaq * var global exportable, size:40 ; array of (integer) ; DEF: 234 ; REF: 132 279* nileraq * var global exportable, size:40 ; array of (integer) ; DEF: 235 ; REF: 133 280* niveau field disp:204, size:4 ; numeric 0..20 ; DEF: 1-558 nmax field disp:210, size:4 ; integer ; DEF: 1-535 nmin field disp:204, size:4 ; integer ; DEF: 1-535 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 ntwotobyte * const numeric ; DEF: 1-89 ntwotohword * const numeric ; DEF: 1-90 nulpw * var global exportable, size:40 ; array of (integer) ; DEF: 236 ; REF: 134 281* number field disp:0, size:4 ; integer ; DEF: 1-642 numberstring * type packed array of (char) ; DEF: 1-397 nxtel field disp:40, size:10 ; pointer ; DEF: 1-509 o41 * const numeric ; DEF: 1-144 o43 * const numeric ; DEF: 1-145 objaccedes field disp:140, size:10 ; set of (scalar) ; DEF: 1-527 on field disp:0, size:4 ; boolean ; DEF: 1-486 opaq * var global exportable, size:160 ; array of (array of (scalar subrange)) ; DEF: 237 ; REF: 136 282* opt2 field disp:234, size:4 ; integer ; DEF: 1-549 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 parerrcode * const numeric ; DEF: 1-252 parmproccheckplace * const numeric ; DEF: 1-223 pascdebstacklocal * const numeric ; DEF: 1-130 pascoperatorsdep * const numeric ; DEF: 1-232 pckerrcode * const numeric ; DEF: 1-254 pclength * const numeric ; DEF: 1-321 pdescsaddrplace field disp:350, size:4 ; integer ; DEF: 1-592 permanentfile const scalar, ord=1 ; DEF: 1-437 pextcalltrapinfoplace field disp:360, size:4 ; integer ; DEF: 1-594 phasdescriptor field disp:210, size:4 ; boolean ; DEF: 1-576 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 ploc field disp:214, size:4 ; scalar ; DEF: 1-577 ppksize field disp:200, size:4 ; integer ; DEF: 1-543 pr4depw * const numeric ; DEF: 1-282 prderrcode * const numeric ; DEF: 1-246 predefproc field disp:174, size:4 ; boolean ; DEF: 1-575 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 procaddr field disp:150, size:4 ; integer ; DEF: 1-574 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 prockind field disp:140, size:4 ; scalar ; DEF: 1-572 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 procparmsize * const numeric ; DEF: 1-132 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 psrdepb * const numeric ; DEF: 1-284 ptentr field disp:240, size:10 ; pointer ; DEF: 1-560 pthigh field disp:230, size:10 ; pointer ; DEF: 1-551 ptlimit * const numeric ; DEF: 1-14 ptlow field disp:240, size:10 ; pointer ; DEF: 1-551 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 pwantdescs field disp:344, size:4 ; boolean ; DEF: 1-591 pwantspl1descriptors field disp:364, size:4 ; boolean ; DEF: 1-595 racmaxint * const numeric ; DEF: 1-87 rafltplace * const numeric ; DEF: 1-182 randinterrcode * const numeric ; DEF: 1-258 randintplace * const numeric ; DEF: 1-376 raqisused * funct level 0 ; boolean ; DEF: 1211 ; REF: 1216* 1221* 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 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 remanentfile const scalar, ord=8 ; DEF: 1-442 requiredfile const scalar, ord=9 ; DEF: 1-443 resetheapplace * const numeric ; DEF: 1-179 resetplace * const numeric ; DEF: 1-162 restorprevmoplace * const numeric ; DEF: 1-380 returnzeroplace * const numeric ; DEF: 1-192 revcltransf * var global exportable, size:30 ; array of (integer) ; DEF: 242 ; REF: 144 295* rewriteplace * const numeric ; DEF: 1-163 ri const scalar, ord=26 ; DEF: 1-776 roundplace * const numeric ; DEF: 1-181 rqfltplace * const numeric ; DEF: 1-183 runtimeentry const scalar, ord=10 ; DEF: 1-443 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 shiftl const scalar, ord=2 ; DEF: 1-919 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 stack_extension * proc level 0, exportable ; DEF: 1101 ; REF: 147 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 stdextend const scalar, ord=3 ; DEF: 1-435 stdkind * type scalar ; DEF: 1-435 stdpure const scalar, ord=0 ; 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 stor const scalar, ord=6 ; DEF: 1-919 string_ptr * var global imported, size:10 ; pointer ; DEF: 198 ; REF: 46 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 sub const scalar, ord=1 ; DEF: 1-919 subrng field disp:204, size:4 ; boolean ; DEF: 1-537 subroutine const scalar, ord=1 ; DEF: 1-462 subsize field disp:240, size:4 ; integer ; DEF: 1-549 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 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 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 tabacc * var global exportable, size:40 ; array of (array of (char)) ; DEF: 245 ; REF: 150 296* tabkind * var global exportable, size:50 ; array of (array of (char)) ; DEF: 246 ; REF: 151 297* tad const scalar, ord=43 ; DEF: 1-771 tagval field disp:130, size:4 ; boolean ; DEF: 1-612 tau const scalar, ord=1 ; DEF: 1-766 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 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 tqu const scalar, ord=2 ; DEF: 1-766 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 twoto12 * const numeric ; DEF: 1-51 twoto18m1 * const numeric ; DEF: 1-58 twoto27 * const numeric ; DEF: 1-59 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 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 tyqu const scalar, ord=50 ; DEF: 1-772 tz42 const scalar, ord=34 ; DEF: 1-770 tz60 const scalar, ord=48 ; DEF: 1-772 uniformplace * const numeric ; DEF: 1-373 usednamesptr * type pointer ; DEF: 1-974 valplacew * const numeric ; DEF: 1-290 valreel field disp:150, size:10 ; real ; DEF: 1-568 values field disp:144, size:4 ; integer ; DEF: 1-567 variab * proc level 0, exportable ; DEF: 2703 ; REF: 155 variants field disp:120, size:10 ; pointer ; DEF: 1-611 varmo field disp:220, size:4 ; boolean ; DEF: 1-605 varparam field disp:200, size:4 ; boolean ; DEF: 1-603 vdescaddr field disp:150, size:4 ; integer ; DEF: 1-600 vfather field disp:230, size:10 ; pointer ; DEF: 1-606 vfilelocation field disp:134, size:4 ; scalar ; DEF: 1-598 visrefincode field disp:204, size:4 ; boolean ; DEF: 1-603 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 vptextitem field disp:240, size:10 ; pointer ; DEF: 1-607 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 workformathsplacew * var global exportable, size:4 ; integer ; DEF: 252 ; REF: 159 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 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 201 210 219 220 221 225 227 229 243 250 251 340 344 354 610 807 926 1097 1179 1195 1211 1554 1947 2145 2703 char type char ; REF: 1-397 1-398 1-399 1-400 1-422 1-499 181 185 241 false const scalar, ord=0 ; REF: 1-538 1-549 1-613 299 424 453 458 459 462 463 464 623 818 940 942 1085 1116 1156 1159 1187 1203 1221 1331 1341 1344 1394 1584 1664 1687 2043 2164 2250 2291 2413 2616 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 176 178 181 185 188 190 191 192 196 199 200 203 204 211 211 226 228 230 240 241 242 242 248 249 252 260 265 267 318 319 320 321 322 322 324 324 326 328 330 330 332 332 347 348 421 472 609 722 734 768 775 799 849 883 890 926 964 964 1137 1254 1514 1524 1565 1717 1735 1949 2140 2161 new proc level 0 ; REF: 432 442 500 562 629 688 ord funct level 0 ; (standard) ; REF: 377 382 383 511 512 519 574 585 638 639 649 699 701 711 897 1027 1028 1543 1571 2164 2166 2174 2411 2413 real type real ; REF: 1-498 1-568 1-834 1-903 660 text type text ; REF: 195 true const scalar, ord=1 ; REF: 1-539 1-550 1-614 621 821 943 1023 1111 1183 1199 1216 1415 1457 1498 1587 2047 2166 2197 2246 2261 2262 2291 2296 2345 2361 2380 2389 2392 2411 2524 2529 2544 2565 2577 2605 2749 write proc level 0 ; REF: 371 374 377 380 382 386 401 403 405 407 490 510 511 513 519 548 573 574 576 585 615 637 638 640 641 649 677 698 699 701 703 711 739 755 780 813 834 855 872 896 916 974 1008 1027 1030 1059 1062 1142 1150 1169 1259 1348 1350 1378 1420 1447 1462 1488 1503 1530 1542 1571 1707 1748 1922 1954 2107 2174 2177 2642 2665 2692 2720 2759 LABELS BLOCK NAME 1 getindex DCL : 1482 ; DEF: 1497 ; REF: 1493 1 getpr DCL : 1440 ; DEF: 1456 ; REF: 1452 1 sauvereg DCL : 1249 ; DEF: 1339 ; REF: 1321 1332 1 enterreal DCL : 670 ; DEF: 707 ; REF: 684 1 enterllcst DCL : 606 ; DEF: 645 ; REF: 625 1 enterlcst DCL : 541 ; DEF: 580 ; REF: 558 1 entercst DCL : 483 ; DEF: 516 ; REF: 497 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 365 1 0 371 1 11 371 2 17 371 3 30 372 1 36 374 1 42 374 2 53 377 1 62 377 2 101 378 1 107 380 1 112 381 1 161 382 1 167 383 1 227 386 1 235 386 2 246 386 3 254 387 1 262 387 1 263 395 1 336 401 1 347 402 1 360 403 1 375 403 2 407 403 3 432 404 1 437 405 1 454 405 2 466 405 3 511 406 1 516 407 1 520 407 2 532 407 3 555 408 1 562 409 1 570 409 1 571 417 1 601 424 1 612 425 1 640 427 1 643 427 2 646 428 1 651 432 1 655 432 2 660 432 3 664 433 1 672 435 1 674 435 2 675 435 3 677 436 1 702 438 1 705 439 1 707 440 1 711 442 1 713 442 2 716 442 3 722 443 1 730 445 1 732 446 1 736 447 1 741 448 1 744 449 1 746 449 2 751 451 1 754 452 1 761 453 1 762 454 1 763 455 1 764 456 1 766 457 1 770 458 1 772 459 1 773 460 1 774 461 1 775 461 2 1000 462 1 1002 463 1 1003 464 1 1004 465 1 1005 465 1 1006 472 1 1014 488 1 1031 490 1 1033 490 2 1052 493 1 1060 495 1 1062 496 1 1066 497 1 1071 498 1 1073 500 1 1077 500 2 1102 500 3 1106 501 1 1114 502 1 1116 502 2 1120 503 1 1123 506 1 1125 508 1 1127 510 1 1132 510 2 1143 511 1 1151 512 1 1225 513 1 1233 513 2 1244 516 1 1252 518 1 1254 519 1 1257 520 1 1277 523 1 1305 523 1 1306 530 1 1353 546 1 1370 548 1 1372 550 1 1420 553 1 1426 554 1 1430 556 1 1434 557 1 1437 558 1 1444 559 1 1445 562 1 1451 562 2 1454 562 3 1460 563 1 1466 565 1 1470 566 1 1475 567 1 1477 569 1 1502 571 1 1504 573 1 1507 573 2 1520 574 1 1526 574 2 1546 575 1 1554 576 1 1562 576 2 1573 581 1 1601 583 1 1603 585 1 1606 585 2 1626 588 1 1634 588 1 1635 595 1 1676 613 1 1713 615 1 1715 615 2 1726 618 1 1734 619 1 1736 621 1 1742 622 1 1744 622 2 1746 623 1 1773 623 2 1774 624 1 2001 625 1 2003 626 1 2005 629 1 2011 629 2 2014 629 3 2020 630 1 2026 631 1 2030 631 2 2035 631 3 2040 633 1 2042 635 1 2044 637 1 2047 637 2 2060 638 1 2066 639 1 2125 640 1 2133 640 2 2135 640 3 2155 640 4 2162 641 1 2170 641 2 2201 645 1 2207 647 1 2211 649 1 2214 650 1 2234 653 1 2242 653 1 2243 660 1 2304 675 1 2315 677 1 2317 677 2 2336 680 1 2344 681 1 2346 682 1 2352 684 1 2355 686 1 2357 688 1 2363 688 2 2366 688 3 2372 689 1 2400 691 1 2402 691 2 2404 692 1 2406 694 1 2411 696 1 2413 698 1 2416 698 2 2427 699 1 2435 699 2 2454 700 1 2462 701 1 2464 702 1 2522 703 1 2530 703 2 2541 707 1 2547 709 1 2551 711 1 2554 712 1 2574 715 1 2602 715 1 2603 722 1 2652 737 1 2667 739 1 2671 741 1 2733 744 1 2741 745 1 2743 746 1 2756 748 1 2772 748 2 3004 749 1 3006 749 2 3017 750 1 3021 753 1 3023 755 1 3026 757 1 3053 760 1 3061 760 1 3062 768 1 3123 778 1 3140 780 1 3142 780 2 3153 783 1 3161 784 1 3163 785 1 3166 786 1 3171 787 1 3174 788 1 3177 789 1 3225 790 1 3253 791 1 3301 792 1 3327 792 1 3330 799 1 3341 811 1 3356 813 1 3360 815 1 3421 818 1 3427 819 1 3430 820 1 3432 821 1 3435 822 1 3437 823 1 3441 825 1 3477 826 1 3513 829 1 3524 832 1 3561 834 1 3564 834 2 3575 837 1 3603 837 1 3604 844 1 3627 853 1 3640 855 1 3642 856 1 3653 859 1 3661 860 1 3707 861 1 3735 862 1 3763 863 1 4011 864 1 4013 865 1 4041 866 1 4067 867 1 4105 868 1 4123 870 1 4151 872 1 4153 873 1 4164 876 1 4172 876 1 4173 883 1 4213 894 1 4230 896 1 4232 898 1 4301 901 1 4307 903 1 4316 904 1 4334 904 2 4337 904 3 4342 905 1 4344 906 1 4371 906 2 4373 907 1 4421 908 1 4446 908 2 4450 909 1 4476 910 1 4514 911 1 4541 914 1 4557 916 1 4562 916 2 4573 919 1 4601 919 1 4602 926 1 4626 937 1 4643 937 2 4646 939 1 4660 940 1 4663 941 1 4667 942 1 4672 943 1 4676 944 1 4702 951 1 4706 953 1 4713 953 2 4714 954 1 4716 955 1 4740 956 1 4776 957 1 5034 957 1 5035 964 1 5036 972 1 5053 974 1 5056 976 1 5111 979 1 5117 980 1 5141 981 1 5144 983 1 5166 984 1 5172 985 1 5175 985 2 5200 986 1 5202 986 1 5206 993 1 5226 1006 1 5243 1008 1 5245 1008 2 5276 1011 1 5304 1011 2 5310 1013 1 5323 1014 1 5325 1015 1 5330 1017 1 5332 1017 2 5343 1017 3 5345 1017 4 5350 1019 1 5353 1020 1 5356 1021 1 5362 1023 1 5364 1025 1 5376 1027 1 5401 1029 1 5441 1030 1 5447 1030 2 5460 1033 1 5466 1033 1 5467 1040 1 5523 1057 1 5540 1059 1 5542 1059 2 5553 1060 1 5561 1062 1 5564 1062 2 5575 1063 1 5603 1068 1 5614 1068 2 5623 1070 1 5636 1071 1 5642 1073 1 5645 1075 1 5652 1075 2 5655 1078 1 5663 1078 2 5671 1079 1 5677 1081 1 5701 1085 1 5704 1086 1 5715 1087 1 5720 1088 1 5724 1089 1 5726 1090 1 5730 1092 1 5732 1092 1 5733 1101 1 5763 1109 1 5774 1111 1 5776 1112 1 6000 1113 1 6021 1114 1 6047 1116 1 6075 1117 1 6113 1118 1 6141 1124 1 6142 1140 1 6153 1142 1 6155 1144 1 6202 1146 1 6210 1147 1 6212 1149 1 6214 1150 1 6226 1150 2 6245 1153 1 6253 1154 1 6257 1154 2 6267 1155 1 6274 1156 1 6277 1157 1 6300 1159 1 6302 1160 1 6303 1161 1 6331 1163 1 6357 1164 1 6361 1165 1 6362 1167 1 6364 1169 1 6367 1169 2 6400 1172 1 6406 1172 1 6407 1179 1 6443 1183 1 6460 1184 1 6464 1185 1 6466 1186 1 6470 1187 1 6472 1188 1 6475 1188 1 6501 1195 1 6502 1199 1 6517 1200 1 6523 1201 1 6525 1202 1 6527 1203 1 6531 1204 1 6534 1211 1 6540 1216 1 6551 1217 1 6555 1218 1 6557 1219 1 6561 1220 1 6563 1221 1 6565 1222 1 6570 1229 1 6574 1257 1 6611 1259 1 6613 1260 1 6655 1261 1 6663 1261 2 6666 1264 1 6674 1265 1 6675 1266 1 6676 1267 1 6710 1269 1 6722 1270 1 6725 1272 1 6730 1272 2 6732 1273 1 6735 1273 2 6737 1274 1 6742 1276 1 6745 1276 2 6747 1277 1 6751 1278 1 6753 1278 2 6755 1278 3 6760 1282 1 6762 1286 1 6764 1287 1 6766 1287 2 6777 1288 1 7010 1289 1 7014 1291 1 7016 1294 1 7021 1294 2 7024 1296 1 7036 1297 1 7040 1298 1 7042 1299 1 7064 1301 1 7067 1302 1 7111 1303 1 7114 1304 1 7117 1304 2 7121 1306 1 7124 1306 2 7126 1308 1 7131 1308 2 7133 1310 1 7136 1311 1 7210 1313 1 7227 1314 1 7232 1316 1 7274 1316 2 7276 1317 1 7300 1318 1 7322 1319 1 7360 1321 1 7422 1321 2 7424 1322 1 7425 1324 1 7427 1327 1 7432 1327 2 7435 1329 1 7447 1330 1 7466 1331 1 7520 1332 1 7521 1332 2 7523 1333 1 7524 1335 1 7525 1338 1 7531 1340 1 7543 1341 1 7546 1343 1 7557 1344 1 7561 1344 2 7603 1346 1 7614 1348 1 7617 1349 1 7670 1350 1 7676 1350 2 7707 1353 1 7715 1353 1 7716 1360 1 7750 1376 1 7765 1378 1 7767 1378 2 10000 1379 1 10006 1381 1 10011 1382 1 10017 1387 1 10030 1387 2 10034 1388 1 10047 1389 1 10075 1391 1 10110 1392 1 10113 1393 1 10116 1394 1 10117 1395 1 10144 1397 1 10146 1397 2 10150 1398 1 10173 1399 1 10215 1400 1 10220 1401 1 10223 1402 1 10226 1403 1 10231 1404 1 10234 1405 1 10306 1406 1 10311 1408 1 10362 1408 2 10364 1409 1 10366 1410 1 10410 1411 1 10452 1412 1 10510 1414 1 10512 1415 1 10514 1418 1 10526 1420 1 10531 1420 2 10542 1423 1 10550 1423 1 10551 1430 1 10571 1445 1 10602 1447 1 10604 1447 2 10615 1450 1 10623 1451 1 10640 1452 1 10652 1452 2 10653 1455 1 10660 1457 1 10671 1458 1 10716 1460 1 10727 1462 1 10732 1462 2 10763 1465 1 10771 1465 1 10772 1472 1 11010 1487 1 11015 1488 1 11017 1488 2 11030 1491 1 11036 1492 1 11053 1493 1 11065 1493 2 11066 1496 1 11073 1498 1 11104 1499 1 11131 1501 1 11142 1503 1 11145 1504 1 11176 1507 1 11204 1507 1 11205 1514 1 11226 1528 1 11243 1530 1 11245 1530 2 11263 1534 1 11271 1535 1 11277 1536 1 11321 1537 1 11356 1538 1 11366 1538 2 11432 1540 1 11437 1542 1 11442 1544 1 11526 1547 1 11534 1547 1 11535 1554 1 11570 1569 1 11605 1571 1 11607 1571 2 11627 1573 1 11635 1573 2 11641 1575 1 11654 1578 1 11661 1579 1 11671 1581 1 11674 1583 1 11700 1583 2 11703 1584 1 11716 1585 1 11720 1586 1 11725 1586 2 11733 1587 1 11750 1588 1 11753 1590 1 11760 1590 2 11762 1590 3 11764 1590 4 11767 1590 5 11772 1592 1 12005 1593 1 12010 1595 1 12016 1595 2 12020 1596 1 12022 1598 1 12025 1598 2 12030 1598 3 12033 1599 1 12036 1601 1 12043 1603 1 12047 1603 2 12052 1603 3 12055 1604 1 12060 1607 1 12065 1608 1 12100 1608 2 12112 1608 3 12115 1609 1 12120 1613 1 12125 1613 2 12127 1614 1 12133 1616 1 12136 1616 2 12141 1616 3 12144 1618 1 12147 1620 1 12153 1620 2 12156 1620 3 12161 1623 1 12164 1624 1 12177 1624 2 12211 1624 3 12214 1627 1 12220 1629 1 12224 1629 2 12230 1629 3 12232 1630 1 12235 1632 1 12241 1632 2 12244 1635 1 12250 1636 1 12263 1636 2 12275 1639 1 12301 1641 1 12305 1642 1 12311 1642 2 12315 1643 1 12320 1645 1 12324 1645 2 12327 1648 1 12333 1649 1 12346 1649 2 12360 1653 1 12364 1653 2 12367 1653 3 12372 1653 4 12374 1654 1 12377 1657 1 12404 1660 1 12410 1660 2 12413 1661 1 12416 1662 1 12432 1664 1 12436 1664 2 12451 1664 3 12453 1665 1 12455 1665 2 12460 1665 3 12464 1666 1 12467 1666 2 12475 1667 1 12477 1668 1 12501 1669 1 12510 1669 2 12512 1670 1 12547 1670 2 12603 1675 1 12611 1675 2 12623 1675 3 12627 1676 1 12632 1676 2 12636 1677 1 12641 1678 1 12646 1678 2 12667 1679 1 12705 1680 1 12707 1681 1 12716 1681 2 12720 1682 1 12755 1682 2 13011 1687 1 13017 1687 2 13022 1687 3 13024 1688 1 13026 1689 1 13042 1691 1 13046 1691 2 13050 1691 3 13053 1694 1 13057 1695 1 13072 1695 2 13075 1695 3 13107 1697 1 13112 1703 1 13115 1705 1 13120 1706 1 13140 1707 1 13150 1707 2 13161 1710 1 13167 1710 1 13170 1717 1 13214 1746 1 13231 1748 1 13233 1748 2 13244 1749 1 13252 1750 1 13255 1752 1 13265 1752 2 13271 1754 1 13304 1754 2 13305 1754 3 13306 1755 1 13307 1756 1 13313 1757 1 13323 1758 1 13325 1760 1 13330 1761 1 13334 1762 1 13347 1763 1 13353 1765 1 13360 1765 2 13372 1766 1 13376 1766 2 13410 1766 3 13414 1767 1 13417 1768 1 13434 1770 1 13447 1771 1 13455 1772 1 13463 1773 1 13475 1775 1 13501 1776 1 13507 1778 1 13526 1779 1 13554 1779 2 13565 1780 1 13573 1781 1 13651 1781 2 13652 1781 3 13655 1783 1 13667 1785 1 13673 1787 1 13675 1788 1 13677 1790 1 13702 1790 2 13730 1794 1 13733 1795 1 13761 1796 1 13763 1797 1 14011 1801 1 14014 1803 1 14016 1805 1 14022 1805 2 14024 1807 1 14027 1809 1 14033 1809 2 14035 1812 1 14040 1812 2 14062 1814 1 14064 1816 1 14130 1818 1 14132 1819 1 14136 1820 1 14141 1821 1 14145 1822 1 14150 1823 1 14152 1824 1 14207 1826 1 14212 1827 1 14240 1831 1 14306 1836 1 14331 1837 1 14333 1839 1 14352 1841 1 14356 1842 1 14404 1846 1 14410 1846 2 14414 1847 1 14417 1847 2 14423 1848 1 14426 1849 1 14450 1851 1 14505 1853 1 14506 1855 1 14512 1856 1 14514 1858 1 14516 1858 2 14544 1862 1 14547 1864 1 14551 1865 1 14555 1866 1 14560 1867 1 14564 1867 2 14567 1868 1 14571 1869 1 14626 1871 1 14631 1872 1 14657 1876 1 14725 1879 1 14750 1880 1 14761 1882 1 14773 1883 1 14777 1883 2 15000 1883 3 15001 1884 1 15003 1886 1 15010 1888 1 15014 1888 2 15027 1891 1 15041 1891 2 15054 1894 1 15066 1896 1 15075 1897 1 15107 1899 1 15121 1901 1 15130 1902 1 15144 1904 1 15156 1906 1 15205 1906 2 15210 1909 1 15213 1910 1 15230 1915 1 15242 1915 2 15246 1915 3 15261 1920 1 15273 1922 1 15276 1924 1 15356 1927 1 15364 1927 1 15365 1934 1 15417 1952 1 15434 1954 1 15436 1955 1 15467 1956 1 15475 1957 1 15500 1960 1 15510 1961 1 15511 1962 1 15513 1964 1 15516 1966 1 15520 1968 1 15525 1969 1 15533 1969 2 15545 1972 1 15557 1974 1 15564 1974 2 15575 1975 1 15617 1976 1 15631 1976 2 15643 1979 1 15656 1980 1 15664 1982 1 15740 1982 2 15751 1983 1 15762 1988 1 15774 1989 1 16005 1990 1 16012 1991 1 16025 1993 1 16032 1993 2 16043 1996 1 16056 1998 1 16132 1998 2 16143 2001 1 16154 2003 1 16160 2004 1 16166 2006 1 16205 2007 1 16233 2010 1 16311 2011 1 16366 2012 1 16371 2016 1 16402 2018 1 16406 2020 1 16413 2020 2 16425 2021 1 16431 2021 2 16443 2021 3 16447 2022 1 16452 2023 1 16467 2026 1 16502 2028 1 16505 2029 1 16511 2030 1 16514 2031 1 16520 2032 1 16523 2034 1 16527 2034 2 16532 2036 1 16535 2037 1 16537 2039 1 16542 2040 1 16603 2043 1 16605 2044 1 16606 2045 1 16611 2046 1 16614 2047 1 16620 2048 1 16622 2050 1 16624 2051 1 16632 2052 1 16643 2053 1 16646 2054 1 16651 2056 1 16670 2057 1 16674 2058 1 16676 2060 1 16725 2061 1 16754 2062 1 16760 2063 1 16762 2065 1 17011 2066 1 17040 2067 1 17054 2070 1 17123 2071 1 17126 2073 1 17154 2075 1 17155 2077 1 17253 2079 1 17256 2080 1 17310 2082 1 17345 2084 1 17356 2085 1 17413 2088 1 17450 2088 2 17461 2090 1 17465 2092 1 17471 2094 1 17473 2095 1 17501 2097 1 17513 2100 1 17524 2101 1 17537 2103 1 17606 2105 1 17620 2107 1 17623 2108 1 17674 2111 1 17702 2111 1 17703 2151 1 17737 2163 1 17750 2163 2 17752 2164 1 20010 2165 1 20047 2165 2 20051 2166 1 20100 2166 2 20117 2167 1 20156 2168 1 20175 2118 1 20176 2172 1 20213 2174 1 20215 2174 2 20234 2175 1 20242 2177 1 20245 2177 2 20256 2178 1 20264 2182 1 20274 2183 1 20276 2184 1 20302 2186 1 20307 2197 1 20312 2199 1 20314 2203 1 20316 2207 1 20404 2207 2 20406 2212 1 20411 2217 1 20527 2217 2 20531 2221 1 20534 2222 1 20543 2222 2 20545 2224 1 20550 2226 1 20573 2228 1 20575 2229 1 20620 2229 2 20623 2232 1 20626 2232 2 20630 2237 1 20633 2239 1 20652 2241 1 20677 2241 2 20701 2243 1 20714 2246 1 20717 2247 1 20721 2248 1 20724 2250 1 20731 2251 1 20732 2252 1 20746 2253 1 20760 2254 1 20762 2255 1 20765 2256 1 20777 2257 1 21002 2258 1 21004 2259 1 21007 2260 1 21012 2261 1 21014 2262 1 21017 2264 1 21022 2265 1 21024 2266 1 21042 2268 1 21045 2269 1 21053 2271 1 21056 2272 1 21061 2274 1 21146 2276 1 21151 2277 1 21154 2281 1 21251 2282 1 21335 2283 1 21340 2287 1 21415 2287 2 21427 2288 1 21431 2288 2 21434 2289 1 21446 2289 2 21451 2290 1 21453 2290 2 21456 2290 3 21461 2291 1 21463 2291 2 21466 2294 1 21471 2296 1 21473 2297 1 21520 2298 1 21523 2302 1 21576 2303 1 21601 2305 1 21606 2306 1 21634 2309 1 21663 2311 1 21665 2313 1 21721 2314 1 21745 2316 1 21750 2316 2 21752 2316 3 21754 2319 1 21757 2319 2 21761 2319 3 21763 2321 1 21765 2322 1 21767 2323 1 22024 2324 1 22031 2325 1 22067 2329 1 22125 2330 1 22143 2332 1 22150 2332 2 22152 2333 1 22154 2336 1 22156 2336 2 22160 2337 1 22162 2339 1 22201 2339 2 22203 2340 1 22205 2341 1 22236 2342 1 22241 2343 1 22307 2344 1 22345 2344 2 22352 2345 1 22363 2346 1 22410 2347 1 22445 2349 1 22447 2349 2 22452 2350 1 22455 2351 1 22457 2356 1 22514 2356 2 22517 2356 3 22531 2361 1 22535 2362 1 22562 2363 1 22600 2365 1 22653 2365 2 22656 2365 3 22670 2369 1 22674 2369 2 22701 2373 1 22713 2374 1 22732 2375 1 22735 2376 1 22755 2377 1 22760 2378 1 22762 2380 1 22765 2381 1 23012 2382 1 23047 2383 1 23060 2383 2 23072 2388 1 23076 2389 1 23103 2390 1 23131 2392 1 23137 2392 2 23150 2395 1 23176 2395 2 23203 2398 1 23216 2398 2 23227 2400 1 23250 2402 1 23253 2403 1 23256 2404 1 23305 2406 1 23334 2408 1 23346 2409 1 23351 2411 1 23400 2413 1 23436 2415 1 23474 2417 1 23506 2419 1 23520 2421 1 23532 2423 1 23544 2425 1 23556 2427 1 23570 2430 1 23602 2431 1 23630 2432 1 23633 2435 1 23662 2436 1 23665 2439 1 23714 2440 1 23742 2441 1 23745 2443 1 23774 2445 1 24026 2445 2 24031 2445 3 24043 2447 1 24047 2451 1 24075 2451 2 24100 2452 1 24112 2452 2 24116 2454 1 24131 2455 1 24144 2456 1 24147 2457 1 24152 2458 1 24155 2459 1 24160 2460 1 24163 2461 1 24211 2462 1 24227 2464 1 24246 2465 1 24262 2465 2 24273 2465 3 24274 2466 1 24275 2468 1 24305 2470 1 24310 2471 1 24313 2472 1 24367 2474 1 24374 2475 1 24422 2476 1 24450 2477 1 24453 2481 1 24520 2482 1 24536 2483 1 24573 2483 2 24575 2484 1 24577 2485 1 24621 2486 1 24660 2487 1 24663 2492 1 24731 2499 1 24734 2500 1 24753 2502 1 24756 2502 2 24761 2504 1 24764 2506 1 24770 2507 1 24773 2508 1 25013 2510 1 25015 2512 1 25030 2514 1 25033 2517 1 25036 2518 1 25052 2518 2 25054 2519 1 25056 2520 1 25100 2521 1 25103 2522 1 25141 2524 1 25177 2525 1 25215 2528 1 25244 2529 1 25262 2530 1 25300 2532 1 25303 2533 1 25306 2534 1 25352 2537 1 25401 2538 1 25404 2542 1 25451 2544 1 25455 2545 1 25473 2546 1 25506 2547 1 25517 2551 1 25546 2551 2 25553 2553 1 25565 2555 1 25571 2555 2 25574 2555 3 25577 2560 1 25603 2563 1 25607 2565 1 25613 2566 1 25631 2566 2 25644 2567 1 25651 2568 1 25677 2569 1 25710 2569 2 25713 2569 3 25716 2573 1 25722 2573 2 25727 2577 1 25742 2579 1 25760 2580 1 25763 2582 1 26000 2584 1 26004 2585 1 26017 2588 1 26031 2589 1 26044 2591 1 26055 2592 1 26103 2594 1 26121 2594 2 26123 2595 1 26125 2596 1 26147 2596 2 26152 2597 1 26155 2598 1 26213 2599 1 26251 2599 2 26254 2599 3 26257 2600 1 26262 2605 1 26310 2605 2 26312 2606 1 26313 2607 1 26332 2609 1 26334 2609 2 26340 2610 1 26353 2610 2 26360 2611 1 26373 2611 2 26400 2613 1 26413 2614 1 26417 2615 1 26422 2616 1 26427 2618 1 26431 2618 2 26433 2619 1 26461 2620 1 26464 2622 1 26466 2624 1 26470 2625 1 26504 2625 2 26506 2626 1 26510 2627 1 26532 2628 1 26570 2628 2 26573 2629 1 26576 2632 1 26635 2633 1 26653 2633 2 26656 2634 1 26661 2638 1 26725 2638 2 26730 2640 1 26740 2642 1 26743 2642 2 26754 2645 1 26762 2645 1 26763 2653 1 27024 2663 1 27035 2665 1 27037 2665 2 27050 2668 1 27056 2669 1 27062 2670 1 27064 2670 2 27101 2671 1 27116 2672 1 27121 2673 1 27133 2674 1 27150 2676 1 27166 2678 1 27173 2679 1 27201 2680 1 27216 2682 1 27233 2685 1 27250 2688 1 27263 2690 1 27310 2692 1 27313 2692 2 27324 2695 1 27332 2695 1 27333 2703 1 27356 2718 1 27373 2720 1 27375 2721 1 27422 2724 1 27430 2725 1 27432 2727 1 27435 2727 2 27447 2730 1 27452 2731 1 27460 2733 1 27464 2734 1 27476 2736 1 27500 2738 1 27505 2739 1 27507 2739 2 27511 2740 1 27534 2741 1 27556 2741 2 27570 2741 3 27576 2744 1 27601 2746 1 27606 2748 1 27610 2748 2 27614 2749 1 27626 2750 1 27632 2753 1 27634 2757 1 27655 2759 1 27660 2759 2 27677 2762 1 27705 2762 1 27706 21 1 27732 21 1 27743 2768 1 27752 2768 1 27756 2768 1 27760 ----------------------------------------------------------- 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