COMPILATION LISTING OF SEGMENT display_comp_dsm Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 02/16/88 1413.0 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 8 9 /* Written: ??/80 - Jim Falksen 10*/* Modified: 6/83 - Ed Wallman - Added -all, cleaned up and modernized. 11*/* Modified: 9/83 - Ed Wallman - Added lcdsm command entry. Changed 12*/* display_comp_dsm short name to dcdsm. 13**/ 14 15 display_comp_dsm: 16 dcdsm: 17 proc; 18 19 /* Usage: dcdsm dsm_path {-linelength N} */ 20 /* This displays all the external DSM names in the specified segment. */ 21 /* Usage: dcdsm dsm_path -device {-linelength N} */ 22 /* This displays all the names and synonyms on the specified device, */ 23 /* also lists all the family/member names and bachelors in the DSM. */ 24 /* Usage: dcdsm dsm_path -long {-linelength N} */ 25 /* This is like the previous one with the addition of a list of many */ 26 /* parameters about the device, max pagelength, etc. */ 27 /* Usage: dcdsm dsm_path family{/member} -{linelength N} */ 28 /* This shows all the defined graphics in the specified family/member */ 29 /* or bachelor with their widths. */ 30 /* Usage: dcdsm dsm_path family{/member} -long {-linelength N} */ 31 /* This shows all the defined graphics with their widths and output */ 32 /* strings. */ 33 34 35 /* Usage: lcdsm {starname} */ 36 /* This displays all the matching DSM names found with compose search */ 37 /* list. Default starname is **. */ 38 /* Usage: lcdsm {starname} -pathname PATH */ 39 /* This displays all the matching DSM names found in the directory */ 40 /* PATH. Default starname is **. */ 41 /* Usage: lcdsm {starname} -working_dir */ 42 /* This displays all the matching DSM names found in the working */ 43 /* directory. Default starname is **. */ 44 45 dcl code fixed bin (35); /* error code */ 46 dcl colwidth fixed bin; 47 dcl dname char (168); /* module dir name */ 48 dcl dsmpath char (200); /* module path name */ 49 dcl dsmptr ptr; /* module object pointer */ 50 dcl DSNAME char (16) int static options (constant) 51 init ("display_comp_dsm"); 52 dcl ename char (32); /* module entry name */ 53 dcl familyname char (32); /* font family name */ 54 dcl i fixed bin; /* working index */ 55 dcl indent fixed bin; /* display indentation */ 56 dcl ipath fixed bin; /* search path coutner */ 57 dcl istar fixed bin; /* star name counter */ 58 dcl linea char (200) var; /* an output line */ 59 dcl lineb char (200) var; /* another */ 60 dcl linelength fixed bin; 61 dcl LSNAME char (16) int static options (constant) 62 init ("list_comp_dsm"); 63 dcl me char (16) var; 64 dcl membername char (32); 65 dcl sl_info_area area (2048); 66 dcl star_area area (2048); 67 dcl star_code fixed bin (35); /* starname type code */ 68 dcl starname char (200); 69 dcl 1 sws, /* control switches */ 70 2 debug bit (1) unal, /* 1= -debug */ 71 2 device bit (1) unal, /* 1= -device */ 72 2 error bit (1) unal, /* 1= command line error */ 73 2 long bit (1) unal, /* 1= -long */ 74 2 path bit (1) unal, /* 1= -pathname */ 75 2 mbz bit (31) unal; 76 77 dcl (addr, after, before, binary, length, null, ptr, rank, size, substr, 78 sum, unspec) builtin; 79 80 dcl cleanup condition; 81 82 dcl error_table_$name_not_found 83 fixed bin (35) ext static; 84 dcl error_table_$no_dir 85 fixed bin (35) ext static; 86 dcl error_table_$no_ext_sym 87 fixed bin (35) ext static; 88 dcl error_table_$nomatch 89 fixed bin (35) ext static; 90 dcl error_table_$unimplemented_version 91 fixed bin (35) ext static; 92 93 dcl com_err_ entry options (variable); 94 dcl expand_pathname_ 95 entry (char (*), char (*), char (*), fixed bin (35)); 96 dcl expand_pathname_$add_suffix 97 entry (char (*), char (*), char (*), char (*), 98 fixed bin (35)); 99 dcl hcs_$star_ entry (char (*), char (*), fixed bin (2), ptr, 100 fixed bin, ptr, ptr, fixed bin (35)); 101 dcl ioa_$rsnnl entry options (variable); 102 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 103 dcl search_paths_$get 104 entry (char (*), bit (36), char (*), ptr, ptr, 105 fixed bin, ptr, fixed bin (35)); 106 107 me = DSNAME; 108 109 goto join; 110 111 list_comp_dsm: 112 lcdsm: 113 entry; 114 115 me = LSNAME; 116 117 join: /* set constants structure pointer */ 118 compstat$compconst.ptr = addr (compstat$compconst.ptr); 119 120 call proc_args; /* process args */ 121 122 if error /* cant continue */ 123 then return; 124 125 if (familyname ^= "") | long /* these options need the switch */ 126 then device = "1"b; 127 lineb = ""; 128 129 on cleanup call clean; 130 131 if me = LSNAME 132 then 133 do; 134 if path /* was a pathname given? */ 135 then 136 do; /* expand possible relative name */ 137 call expand_pathname_ (dsmpath, dname, ename, code); 138 if (code ^= 0) 139 then 140 do; 141 call com_err_ (code, me, "^/^5xExpanding given pathname, ^a", 142 dsmpath); 143 return; 144 end; 145 dname = pathname_ (dname, ename); 146 147 call /* get list of dsm's in this dir */ 148 hcs_$star_ (dname, starname, star_ALL_ENTRIES, 149 addr (star_area), star_entry_count, star_entry_ptr, 150 star_names_ptr, code); 151 if (code ^= 0) 152 then 153 do; 154 call com_err_ (code, me, "^/^5xGetting comp_dsm names in ^a", 155 dname); 156 return; 157 end; 158 159 if debug 160 then call ioa_ ("star used = ^i", 161 size (star_entries) + size (star_names)); 162 163 do istar = 1 to star_entry_count; 164 ename = star_names (star_entries (istar).nindex); 165 call show_dsm; 166 end; 167 end; 168 169 else /* user wants them all */ 170 do; 171 call search_paths_$get ("compose", sl_control_default, "", null, 172 addr (sl_info_area), sl_info_version_1, sl_info_p, code); 173 if (code ^= 0) 174 then 175 do; 176 call com_err_ (code, me, "^/^Getting compose search list."); 177 return; 178 end; 179 180 do ipath = 1 to sl_info.num_paths; 181 dname = sl_info.paths (ipath).pathname; 182 /* dont repeat any dirs */ 183 do i = 1 to ipath while (dname ^= sl_info.paths (i).pathname); 184 end; 185 186 if i = ipath 187 then 188 do; 189 call /* get list of dsm's in this dir */ 190 hcs_$star_ (dname, starname, star_ALL_ENTRIES, 191 addr (star_area), star_entry_count, star_entry_ptr, 192 star_names_ptr, code); 193 if code ^= 0 & code ^= error_table_$nomatch 194 & code ^= error_table_$no_dir 195 then call com_err_ (code, me, 196 "^/^5xGetting comp_dsm names in ^a", dname); 197 198 else if code ^= error_table_$nomatch 199 then 200 do; 201 call ioa_ ("^/^-At ^a...", dname); 202 203 if debug 204 then call ioa_ ("star used = ^i", 205 size (star_entries) + size (star_names)); 206 207 do istar = 1 to star_entry_count; 208 ename = star_names (star_entries (istar).nindex); 209 call show_dsm; 210 end; 211 end; 212 end; 213 end; 214 end; 215 end; 216 217 else /* only a module name */ 218 do; 219 call expand_pathname_$add_suffix (dsmpath, "comp_dsm", dname, ename, 220 code); 221 if (code ^= 0) 222 then 223 do; 224 call com_err_ (code, me, "^/^5xExpanding given module name, ^a", 225 dsmpath); 226 return; 227 end; 228 229 call show_dsm; 230 end; 231 232 return; 233 234 show_dsm: 235 proc; 236 237 dcl ACCptr ptr; /* ACC strings */ 238 dcl 1 ACC aligned based (ACCptr), 239 2 len fixed bin (8) unal, 240 2 string char (ACC.len) unal; 241 dcl bitcount fixed bin (24); /* module object bit count */ 242 dcl defptr ptr; /* dsminfo definition pointer */ 243 dcl 1 dsminfo like object_info; 244 dcl dvtcount fixed bin; /* number of device tables to do */ 245 dcl dvtname char (32) var; /* device table name */ 246 dcl 1 objseg (0:100), /* interesting object segment ptrs */ 247 2 symbolptr ptr, 248 2 name char (32), 249 2 dvidptr ptr, 250 2 dvtptr ptr; 251 252 dcl addrel builtin; 253 254 dcl error_table_$improper_data_format 255 fixed bin (35) ext static; 256 257 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), 258 fixed bin (35)); 259 dcl ioa_$nnl entry options (variable); 260 dcl object_info_$brief 261 entry (ptr, fixed bin (24), ptr, fixed bin (35)); 262 263 dsmptr = null (); /* intialize auto storage */ 264 dsmpath = pathname_ (dname, ename); 265 call initiate_file_ (dname, ename, R_ACCESS, dsmptr, bitcount, code); 266 if (dsmptr = null ()) 267 then 268 do; 269 call com_err_ (code, me, "^/^5xInitiating ^a", dsmpath); 270 return; 271 end; /* */ 272 /* get object info for the module */ 273 dsminfo.version_number = object_info_version_2; 274 call object_info_$brief (dsmptr, bitcount, addr (dsminfo), code); 275 if (code ^= 0) 276 then 277 do; 278 call com_err_ (code, me, "^/^5xGetting object info for ^a", dsmpath); 279 call clean; 280 return; 281 end; 282 283 if ^dsminfo.format.standard /* must be a standard object segment */ 284 then 285 do; 286 call com_err_ (error_table_$improper_data_format, me, 287 "^/^5x^a is not a standard object segment.", dsmpath); 288 call clean; 289 return; 290 end; 291 292 dvtcount = 0; 293 defptr = /* point to first def */ 294 addrel (dsminfo.defp, dsminfo.defp -> definition_header.def_list_relp) 295 ; 296 297 if device /* is device switch on? */ 298 then /* look for given device */ 299 do; /* form device table name */ 300 dvtname = before (ename, ".comp_dsm") || ".dvt"; 301 do defptr = defptr /* walk the definition thread */ 302 repeat addrel (dsminfo.defp, defptr -> definition.forward_relp) 303 while (defptr -> definition.forward_relp ^= 0); 304 /* point to symbol's ACC */ 305 ACCptr = addrel (dsminfo.defp, defptr -> definition.name_relp); 306 if (defptr -> definition.class = CLASS_TEXT) & (ACC.string = dvtname) 307 then 308 do; 309 dvtcount = dvtcount + 1; /* record interesting stuff */ 310 objseg.symbolptr (dvtcount) = ACCptr; 311 objseg.dvidptr (dvtcount), const.dvidptr = 312 addrel (dsminfo.textp, defptr -> definition.thing_relp); 313 objseg.dvtptr (dvtcount) = ptr (dsminfo.textp, comp_dvid.dvt_r); 314 objseg.name (dvtcount) = before (ACC.string, "."); 315 goto found_device; 316 end; 317 end; 318 319 call com_err_ (error_table_$no_ext_sym, me, 320 "^/^5x^a symbol definition in ^a.", dvtname, dsmpath); 321 call clean; 322 return; 323 end; 324 325 else /* device switch is off */ 326 do; /* record module's segname def ptr */ 327 objseg.dvidptr (0) = ptr (dsminfo.defp, 0); 328 do defptr = defptr /* walk definition thread */ 329 repeat addrel (dsminfo.defp, defptr -> definition.forward_relp) 330 while (defptr -> definition.forward_relp ^= 0); 331 /* point to symbol's ACC */ 332 ACCptr = addrel (dsminfo.defp, defptr -> definition.name_relp); 333 /* take only device tables */ 334 if (defptr -> definition.class = CLASS_TEXT) 335 & (after (ACC.string, ".") = "dvt") 336 then 337 do; 338 dvtcount = dvtcount + 1; /* record interesting stuff */ 339 objseg.symbolptr (dvtcount) = ACCptr; 340 objseg.dvidptr (dvtcount), const.dvidptr = 341 addrel (dsminfo.textp, defptr -> definition.thing_relp); 342 objseg.dvtptr (dvtcount) = ptr (dsminfo.textp, comp_dvid.dvt_r); 343 objseg.name (dvtcount) = before (ACC.string, "."); 344 end; 345 end; 346 end; 347 348 found_device: 349 objseg.dvidptr (dvtcount + 1) = null (); 350 objseg.dvtptr (dvtcount + 1) = null (); 351 /* display the requested info */ 352 do i = dvtcount to 0 by -1; /* do it backwards because defs */ 353 /* are reverse threaded */ 354 if i > 0 355 then const.dvidptr = objseg.dvidptr (i); 356 /* check structure version */ 357 if comp_dvid.version < 0 | comp_dvid.version > comp_dvid_version 358 then 359 do; 360 call com_err_ (error_table_$unimplemented_version, me, 361 "^/^5x^a is not a valid device table.", dsmpath); 362 call clean; 363 return; 364 end; 365 366 else 367 do; /* if this device is just an addname */ 368 if objseg.dvidptr (i + 1) = objseg.dvidptr (i) 369 then call ioa_$nnl (", ^a", objseg.name (i)); 370 371 else /* this is a real device table */ 372 do; /* is it "like" a previous device? */ 373 do j = dvtcount to i + 2 by -1; 374 if (objseg.dvtptr (i + 1) = objseg.dvtptr (j) 375 & objseg.dvidptr (i + 1) ^= objseg.dvidptr (j)) 376 then /* yes */ 377 do; 378 call ioa_ (" like ^a;", objseg.name (j)); 379 goto found; 380 end; 381 end; 382 383 if i < dvtcount /* don't do this for first device */ 384 then call show_dvt; 385 found: 386 if i > 0 /* don't do this for last device */ 387 then 388 do; 389 call ioa_$nnl ("Device:^-^a", objseg.name (i)); 390 const.dvidptr = objseg.dvidptr (i); 391 const.devptr = pointer (const.dvidptr, comp_dvid.dvt_r); 392 end; 393 end; 394 end; 395 end; 396 397 call clean; 398 return; 399 400 show_dvt: 401 proc; 402 403 dcl charvp ptr; 404 dcl charv char (5000) var based (charvp); 405 406 call ioa_ (";^/ devclass: ^a;", comp_dvt.devclass); 407 408 if ^device /* thats all if device switch is off */ 409 then return; 410 411 call comp_dvt.outproc (1, code); 412 413 if familyname ^= "" /* was a font given? */ 414 then call show_a_font; 415 416 else /* just show device info */ 417 do; 418 if long /* long form? */ 419 then 420 do; 421 call /* version ids */ 422 ioa_ ("/* version: ^i (^i) */", comp_dvid.version, 423 comp_dvid_version); 424 425 call ioa_ (" units: pt;"); /* canned til its implemented */ 426 427 if comp_dvt.atd_r ^= "0"b /* attach description */ 428 then 429 do; 430 call display_new_str ((comp_dvt.atd_r)); 431 call ioa_ (" attach: ^a;", linea); 432 end; /* */ 433 /* comment */ 434 if comp_dvt.comment_r ^= "0"b 435 then 436 do; 437 charvp = pointer (const.dvidptr, comp_dvt.comment_r); 438 call ioa_ (" comment: ""^a"";", charv); 439 end; /**/ 440 /* cleanup string */ 441 if comp_dvt.cleanup_r ^= "0"b 442 then 443 do; 444 call display_new_str ((comp_dvt.cleanup_r)); 445 call ioa_ (" cleanup: ^a;", linea); 446 end; /**/ 447 /* default page margins */ 448 call ioa_ (" defaultmargs: ^f, ^f, ^f, ^f;", 449 dec (comp_dvt.def_vmt, 11, 3) / 1000, 450 dec (comp_dvt.def_vmh, 11, 3) / 1000, 451 dec (comp_dvt.def_vmf, 11, 3) / 1000, 452 dec (comp_dvt.def_vmb, 11, 3) / 1000); 453 /* minimum top margin */ 454 call ioa_ (" mintopmarg: ^f;", 455 dec (comp_dvt.vmt_min, 11, 3) / 1000); 456 /* minimum bottom margin */ 457 call ioa_ (" minbottommarg: ^f;", 458 dec (comp_dvt.vmb_min, 11, 3) / 1000); 459 /* minimum horizontal whitespace */ 460 call ioa_ (" minspace: ^f;", dec (comp_dvt.min_WS, 11, 3) / 1000); 461 /**/ 462 /* minimum vertical resolution */ 463 call ioa_ (" minlead: ^f;", dec (comp_dvt.min_lead, 11, 3) / 1000) 464 ; 465 466 call ioa_ (" init: ^a^a ^f;", comp_dvt.init_family, 467 comp_dvt.init_member, dec (comp_dvt.init_ps, 11, 3) / 1000); 468 call ioa_ (" interleave: ^[on^;off^];", comp_dvt.interleave); 469 call ioa_ (" letterspace: ^i;", comp_dvt.lettersp); 470 call ioa_ (" maxpages: ^[unlimited^;^i^];", 471 (comp_dvt.max_pages = -1), comp_dvt.max_pages); 472 call ioa_ (" maxfiles: ^[unlimited^;^i^];", 473 (comp_dvt.max_files = -1), comp_dvt.max_files); 474 call ioa_ (" maxpagelength: ^[unlimited^;^f^];", 475 (comp_dvt.pdl_max = -1), dec (comp_dvt.pdl_max, 11, 3) / 1000) 476 ; 477 call ioa_ (" maxpagewidth: ^f;", 478 dec (comp_dvt.pdw_max, 11, 3) / 1000); 479 call ioa_ (" minbotmarg: ^f;", 480 dec (comp_dvt.vmb_min, 11, 3) / 1000); 481 call ioa_ (" mintopmarg: ^f;", 482 dec (comp_dvt.vmt_min, 11, 3) / 1000); 483 call ioa_ (" stream: ^[on^;off^];", (comp_dvt.open_mode = 2)); 484 call ioa_ (" taperec: ^[unlimited^;^f^];", 485 (comp_dvt.pdl_max = -1), comp_dvt.pdl_max); 486 end; 487 call show_families; 488 end; 489 490 show_a_font: /* dispaly characters defined for a font */ 491 proc; 492 493 dcl (f, m) fixed bin; /* working index */ 494 495 dcl length builtin; 496 497 do f = 1 to comp_dvt.family_ct; /* search for the font */ 498 if comp_dvt.family.name (f) = familyname 499 then 500 do; 501 member_ptr = ptr (const.dvidptr, comp_dvt.member_r (f)); 502 503 if (member.count > 1 | member.name (1) ^= "") & membername = "" 504 then membername = "/m"; 505 506 do m = 1 to member.count; 507 if (member.name (m) = membername) 508 then goto found; 509 end; 510 511 call com_err_ (error_table_$name_not_found, me, 512 "^a not found in family ^a on device ^a.", membername, 513 familyname, before (dvtname, ".dvt")); 514 return; 515 end; 516 end; 517 518 call com_err_ (error_table_$name_not_found, me, 519 "Font ^a not found on device ^a.", familyname, 520 before (dvtname, ".dvt")); 521 return; 522 523 found: 524 if membername = "" 525 then call ioa_ (" bachelor: ^a;", familyname); 526 else call ioa_ (" family: ^a; member: ^a;", familyname, membername); 527 528 font_ptr = ptr (const.devptr, member.font_r (m)); 529 oput_p = ptr (const.devptr, font.oput_r); 530 medsel_table_ptr = ptr (const.dvidptr, comp_dvt.medsel_table_r); 531 med_sel_p = pointer (const.devptr, medsel_table.ref_r (oput.which (32))); 532 533 call ioa_ (" strokes: ^i^/ wordspace: ^i,^i,^i^/ footsep: ^a^/ " 534 || "medsel: ""^a""", font.rel_units, font.min_wsp, font.avg_wsp, 535 font.max_wsp, comp_util_$display ((font.footsep), 0, "0"b), 536 comp_util_$display 537 ((med_sel_p -> substr (med_sel.str, 1, med_sel.str_l)), 0, "0"b)); 538 539 units_ptr = ptr (const.devptr, font.units_r); 540 linea = ""; 541 542 if long 543 then colwidth = 16; 544 else colwidth = 10; 545 546 do kk = 0 to oput.data_ct; 547 if oput.what_r (kk) ^= "0"b 548 then 549 do; 550 if kk >= 32 & kk < 127 551 then linea = linea || byte (kk); 552 else linea = linea || comp_util_$display ((byte (kk)), 0, "0"b); 553 linea = linea || " (" || ltrim (char (units (kk))); 554 555 if long 556 then 557 do; 558 linea = linea || ","; 559 call display_str (oput.what_r (kk)); 560 end; 561 562 linea = linea || ")"; 563 call put_str (0); 564 linea = 565 copy (" ", colwidth - mod (length (lineb) + 1, colwidth) + 1); 566 end; 567 end; 568 if (lineb ^= "") 569 then call ioa_ ("^a", lineb); 570 571 /* *** format: off */ 572 dcl bitname /* char names for tables */ 573 (0:511) char (16) var int static options (constant) 574 init ("NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", 575 "BEL", "BSP", "HT", "LF", "VT", "FF", "CR", "SO", "SI", 576 "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", 577 "CAN", "031", "SUB", "ESC", "FS", "GS", "RS", "US", 578 "SP", """!""", """""""", """#""", """$""", """%""", 579 """&""", """'""", """(""", """)""", """*""", """+""", 580 """,""", """-""", """.""", """/""", """0""", """1""", 581 """2""", """3""", """4""", """5""", """6""", """7""", 582 """8""", """9""", """:""", """;""", """<""", """=""", 583 """>""", """?""", """@""", """A""", """B""", """C""", 584 """D""", """E""", """F""", """G""", """H""", """I""", 585 """J""", """K""", """L""", """M""", """N""", """O""", 586 """P""", """Q""", """R""", """S""", """T""", """U""", 587 """V""", """W""", """X""", """Y""", """Z""", """[""", 588 """\""", """]""", """^""", """_""", """`""", """a""", 589 """b""", """c""", """d""", """e""", """f""", """g""", 590 """h""", """i""", """j""", """k""", """l""", """m""", 591 """n""", """o""", """p""", """q""", """r""", """s""", 592 """t""", """u""", """v""", """w""", """x""", """y""", 593 """z""", """{""", """|""", """}""", """~""", "PAD", 594 "200", "201", "202", "203", "204", "205", "206", "207", 595 "210", "211", "212", "213", "214", "215", "216", "217", 596 "220", "221", "222", "223", "224", "225", "226", "227", 597 "230", "231", "232", "233", "234", "235", "236", "237", 598 "240", "241", "242", "243", "244", "245", "246", "247", 599 "250", "251", "252", "253", "254", "EMdash", "256", 600 "257", "260", "261", "262", "263", "264", "265", "266", 601 "267", "270", "271", "272", "273", "274", "275", "276", 602 "277", "300", "301", "302", "(c)", "304", "305", "306", 603 "307", "310", "311", "312", "313", "314", "o", "316", 604 "317", "320", "321", "322", "323", "324", "325", "326", 605 "327", "330", "331", "332", "333", "334", "335", "336", 606 "337", "340", "341", "342", "343", "344", "345", "346", 607 "347", "350", "351", "352", "353", "354", "355", "356", 608 "357", "360", "361", "362", "363", "364", "365", "366", 609 "367", "370", "371", "372", "373", "374", "375", "376", 610 "PS", "^0", "^1", "^2", "^3", "^4", "^5", "^6", "^7", 611 "^8", "^9", "EM", "EM_", "EN", "EN_", "ENd", "THIN", 612 "DEVIT", "``", "''", "1hi-X", "424", "dn-arrow", "426", 613 "dia-left", "delete-mark", "dia-right", "dia-top", "<", 614 "1hi-{", "1hi-[", "left-circle", "437", "->", "1hi-}", 615 "1hi-]", "right-circle", "444", "up-arrow", "446", 616 "447", "450", "451", "452", "453", "454", "455", "456", 617 "457", "460", "461", "462", "463", "464", "465", "466", 618 "467", "470", "471", "472", "473", "474", "475", "476", 619 "477", "500", "501", "502", "503", "504", "505", "506", 620 "507", "510", "511", "512", "513", "514", "515", "516", 621 "517", "520", "521", "522", "523", "524", "525", "526", 622 "527", "530", "531", "532", "533", "534", "535", "536", 623 "537", "540", "541", "542", "543", "544", "545", "546", 624 "547", "550", "551", "552", "553", "554", "555", "556", 625 "557", "560", "561", "562", "563", "564", "565", "566", 626 "567", "570", "571", "572", "573", "574", "575", "576", 627 "577", "600", "601", "602", "603", "604", "605", "606", 628 "607", "610", "611", "612", "613", "614", "615", "616", 629 "617", "620", "621", "622", "623", "624", "625", "626", 630 "627", "630", "631", "632", "633", "634", "635", "636", 631 "637", "640", "641", "642", "643", "644", "645", "646", 632 "647", "650", "651", "652", "653", "654", "655", "656", 633 "657", "660", "661", "662", "663", "664", "665", "666", 634 "667", "670", "671", "672", "673", "674", "675", "676", 635 "677", "700", "701", "702", "703", "704", "705", "706", 636 "707", "710", "711", "712", "713", "714", "715", "716", 637 "717", "720", "721", "722", "723", "724", "725", "726", 638 "727", "730", "731", "732", "733", "734", "735", "736", 639 "737", "740", "741", "742", "743", "744", "745", "746", 640 "747", "750", "751", "752", "753", "754", "755", "756", 641 "757", "760", "761", "762", "763", "764", "765", "766", 642 "767", "770", "771", "772", "773", "774", "775", "776", 643 "777"); /* *** format: on */ 644 end show_a_font; 645 646 show_families: 647 proc; 648 649 dcl bach_sw bit (1); 650 dcl j fixed bin; 651 652 dcl length builtin; 653 654 first = "1"b; 655 do j = 1 to comp_dvt.family_ct; 656 member_ptr = ptr (const.dvidptr, comp_dvt.member_r (j)); 657 bach_sw = (member.name (1) = ""); 658 if first 659 then 660 do; 661 if debug 662 then 663 do; 664 if bach_sw 665 then call ioa_$rsnnl ("^.3b", linea, 0, member.font_r (1)); 666 else linea = ""; 667 linea = linea || copy (" ", 10 - length (linea)); 668 end; 669 else linea = " "; 670 if bach_sw 671 then linea = linea || "bachelor:"; 672 else linea = linea || "family:"; 673 end; 674 else 675 do; 676 linea = linea || ","; 677 call put_str (indent); 678 linea = ""; 679 end; 680 linea = linea || " "; 681 linea = linea || rtrim (comp_dvt.name (j)); 682 if debug 683 then 684 do; 685 linea = linea || "("; 686 linea = linea || ltrim (char (j)); 687 linea = linea || ")"; 688 end; 689 first = "0"b; 690 if (j = comp_dvt.family_ct) 691 then call show_members; 692 else if (comp_dvt.member_r (j) ^= comp_dvt.member_r (j + 1)) 693 then call show_members; 694 end; 695 call put_str (indent); 696 697 show_members: 698 proc; 699 700 first = "1"b; 701 if (member.name (1) ^= "") 702 then 703 do; 704 didmem (*) = "0"b; 705 do k = 1 to member.count; 706 if ^didmem (k) 707 then 708 do; 709 if first 710 then 711 do; 712 linea = linea || ";"; 713 call put_str (indent); 714 call ioa_ ("^a", lineb); 715 lineb = ""; 716 end; 717 if debug 718 then call ioa_$rsnnl ("^.3b", linea, 0, member.font_r (1)); 719 else linea = ""; 720 linea = linea || " member: "; 721 linea = linea || rtrim (member.name (k)); 722 if debug 723 then 724 do; 725 linea = linea || "("; 726 linea = linea || ltrim (char (k)); 727 linea = linea || ")"; 728 end; 729 first = "0"b; 730 didmem (k) = "1"b; 731 do kk = k + 1 to member.count; 732 if (member.font_r (k) = member.font_r (kk)) 733 then 734 do; 735 linea = linea || ","; 736 call put_str (indent); 737 linea = " "; 738 linea = linea || rtrim (member.name (kk)); 739 if debug 740 then 741 do; 742 linea = linea || "("; 743 linea = linea || ltrim (char (kk)); 744 linea = linea || ")"; 745 end; 746 didmem (kk) = "1"b; 747 end; 748 end; 749 first = "1"b; /* if alt_sw 750* then do; 751* linea = linea || ";"; 752* call put_str (indent); 753* call ioa_ ("^a", lineb); 754* lineb = ""; 755* end; */ 756 end; 757 end; 758 end; 759 linea = linea || ";"; 760 call put_str (indent); 761 call ioa_ ("^a", lineb); 762 lineb = ""; 763 first = "1"b; 764 765 end show_members; 766 767 end show_families; 768 769 end show_dvt; 770 771 end show_dsm; 772 773 put_str: 774 proc (indent); 775 776 dcl indent fixed bin; 777 778 if (length (linea) + length (lineb) > linelength) 779 then 780 do; 781 if lineb ^= "" 782 then 783 do; 784 call ioa_ ("^a", lineb); 785 lineb = copy (" ", indent); 786 end; 787 else lineb = ""; 788 lineb = lineb || ltrim (linea); 789 end; 790 else lineb = lineb || linea; 791 linea = ""; 792 793 end put_str; 794 795 display_new_str: 796 proc (str_r); 797 798 linea = ""; 799 800 display_str: 801 entry (str_r); 802 803 dcl str_r bit (18); 804 805 dcl ch char (1); 806 dcl bins (3) fixed bin (3) unsigned unal based (addr (ch)); 807 dcl kkk fixed bin; 808 dcl lined char (200) var; 809 810 medchar_sel_p = ptr (const.devptr, str_r); 811 lined = comp_util_$display ((medchar_sel.str), 0, "0"b); 812 linea = linea || """" || lined; 813 linea = linea || """"; 814 815 end display_new_str; 816 817 clean: 818 proc; 819 820 dcl terminate_file_ 821 entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 822 823 call terminate_file_ (dsmptr, 0, TERM_FILE_TERM, code); 824 if (code ^= 0) 825 then call com_err_ (code, me, "Terminating ^a", dsmpath); 826 827 end clean; 828 829 proc_args: 830 proc; 831 832 dcl arg char (argl) based (argp); 833 dcl argct fixed bin; /* number of args given */ 834 dcl argl fixed bin (21); 835 dcl argno fixed bin; /* arg counter */ 836 dcl argp ptr; 837 838 dcl (decat, index) builtin; 839 840 dcl error_table_$badopt 841 fixed bin (35) ext static; 842 dcl error_table_$noarg 843 fixed bin (35) ext static; 844 dcl iox_$user_output 845 ptr ext static; 846 847 dcl check_star_name_$entry 848 entry (char (*), fixed bin (35)); 849 dcl cu_$af_arg_count 850 entry (fixed bin, fixed bin (35)); 851 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 852 dcl cv_dec_check_ entry (char (*), fixed bin (35)) 853 returns (fixed bin (35)); 854 dcl get_line_length_$switch 855 entry (ptr, fixed bin (35)) returns (fixed bin); 856 dcl get_wdir_ entry returns (char (168)); 857 858 unspec (sws) = "0"b; /* preset switches */ 859 star_code = 0; 860 dsmpath, familyname, membername = ""; 861 862 call cu_$af_arg_count (argct, code); 863 if code = 0 864 then 865 do; 866 call com_err_ (0, me, "Not callable as an active function."); 867 error = "1"b; 868 return; 869 end; 870 871 if me = DSNAME /* display_comp_dsm args */ 872 then 873 do; 874 if argct = 0 875 then 876 do; 877 call com_err_ (error_table_$noarg, me, 878 "^/^5xProper usage: dcdsm path {font} {-control_args}"); 879 error = "1"b; 880 return; 881 end; 882 883 linelength = get_line_length_$switch (iox_$user_output, code); 884 if code ^= 0 885 then linelength = 80; 886 indent = 10; 887 888 do argno = 1 to argct; 889 call cu_$arg_ptr (argno, argp, argl, code); 890 891 if (code = 0) 892 then 893 do; 894 if (index (arg, "-") = 1) 895 then 896 do; 897 if (arg = "-device") | (arg = "-dv") 898 then device = "1"b; 899 900 else if (arg = "-linelength") | (arg = "-ll") 901 then 902 do; 903 if argno = argct 904 then 905 do; 906 missing_arg: 907 call com_err_ (error_table_$noarg, me, 908 "Value for ^a", arg); 909 error = "1"b; 910 end; 911 912 else 913 do; 914 argno = argno + 1; 915 call cu_$arg_ptr (argno, argp, argl, code); 916 linelength = cv_dec_check_ (arg, code); 917 if (code ^= 0) 918 then 919 do; 920 call com_err_ (0, me, 921 "Invalid decimal value. ^a", arg); 922 error = "1"b; 923 end; 924 end; 925 end; 926 927 else if (arg = "-long") | (arg = "-lg") 928 then long = "1"b; 929 930 else if (arg = "-debug") | (arg = "-db") 931 then 932 do; 933 debug = "1"b; 934 indent = 16; 935 end; 936 937 else 938 do; 939 badopt: 940 call com_err_ (error_table_$badopt, me, "^a", arg); 941 error = "1"b; 942 end; 943 end; 944 945 else 946 do; 947 if dsmpath = "" /* first name is the module */ 948 then dsmpath = arg; 949 950 else if familyname = "" 951 /* second name is a font */ 952 then 953 do; 954 familyname = before (arg, "/"); 955 membername = decat (arg, "/", "011"b); 956 end; 957 958 else 959 do; 960 call com_err_ (0, me, "Too many positional args. ^a", 961 arg); 962 error = "1"b; 963 end; 964 end; 965 end; 966 967 else 968 do; 969 call com_err_ (code, me, "Reading argument ^i", argno); 970 error = "1"b; 971 end; 972 end; 973 974 if dsmpath = "" /* must have a module */ 975 then 976 do; 977 call com_err_ (error_table_$noarg, me, "No dsm_name specified."); 978 error = "1"b; 979 end; 980 end; 981 982 else /* list_comp_dsm args */ 983 do; 984 starname = ""; 985 986 do argno = 1 to argct; 987 call cu_$arg_ptr (argno, argp, argl, code); 988 989 if (code = 0) 990 then 991 do; 992 if (index (arg, "-") = 1) 993 then 994 do; 995 if (arg = "-debug") | (arg = "-db") 996 then 997 do; 998 debug = "1"b; 999 end; 1000 1001 else if (arg = "-pathname") | (arg = "-pn") 1002 then 1003 do; 1004 path = "1"b; 1005 1006 if argno = argct 1007 then goto missing_arg; 1008 1009 argno = argno + 1; 1010 call cu_$arg_ptr (argno, argp, argl, code); 1011 dsmpath = arg; 1012 end; 1013 1014 else if (arg = "-working_dir") | (arg = "-wd") 1015 then 1016 do; 1017 path = "1"b; 1018 dsmpath = get_wdir_ (); 1019 end; 1020 1021 else goto badopt; 1022 end; 1023 1024 else if starname ^= "" 1025 then 1026 do; 1027 call com_err_ (0, me, "Only one starname allowed. ^a", arg); 1028 error = "1"b; 1029 end; 1030 1031 else 1032 do; 1033 call check_star_name_$entry (arg, star_code); 1034 if star_code > 2 1035 then 1036 do; 1037 call com_err_ (star_code, me, " starname ^a", arg); 1038 error = "1"b; 1039 end; 1040 1041 else starname = arg; 1042 end; 1043 1044 end; 1045 end; 1046 1047 if starname = "" 1048 then starname = "**.comp_dsm"; 1049 else 1050 do; 1051 call expand_pathname_$add_suffix (starname, "comp_dsm", "", 1052 starname, code); 1053 if code ^= 0 1054 then 1055 do; 1056 call com_err_ (code, me, "Assuring starname suffix."); 1057 error = "1"b; 1058 return; 1059 end; 1060 end; 1061 1062 end; 1063 end proc_args; 1064 1065 dcl didmem (3600) bit (1) unal; 1066 dcl first bit (1); 1067 dcl j fixed bin; 1068 dcl k fixed bin; 1069 dcl kk fixed bin; 1070 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 1071 2 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 2 2* 2 3* This storage is converted from external (as declared) to internal by the 2 4* binder and contains items that must be accessible to both the bound and 2 5* unbound program. */ 2 6 2 7 /* Written: ??/??/7? - EJW 2 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 2 9* and removed the codes array; version 6. 2 10**/ 2 11 2 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 2 13 2 14 dcl 1 compstat$compconst 2 15 aligned like const ext static; 2 16 2 17 dcl const_version fixed bin (35) static options (constant) init (6); 2 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 2 19 fixed bin static options (constant) init (80); 2 20 dcl MAX_TREE_AREAS /* number of tree areas */ 2 21 fixed bin static options (constant) init (20); 2 22 2 23 dcl 1 const aligned based (compstat$compconst.ptr), 2 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 2 25 2 version fixed bin (35), /* structure version */ 2 26 2 art_symbols /* string of art symbols */ 2 27 char (28) aligned, 2 28 2 builtin_count /* count of builtin variables */ 2 29 fixed bin, 2 30 2 comp_dir char (200), /* dir in which compose lives */ 2 31 2 comp_version 2 32 char (8) var, /* compose version id */ 2 33 2 date_value char (8) var, /* current date */ 2 34 2 dsm_name char (32), /* device support module name */ 2 35 2 dvt_name char (32), /* device table name */ 2 36 2 max_seg_chars 2 37 fixed bin (35), /* char count in a max seg */ 2 38 2 null_str char (1) var, /* an empty string */ 2 39 2 ptrs, 2 40 ( 3 call_stk_ptr, /* -> insert call stack */ 2 41 3 colhdrptr, /* empty column header structure */ 2 42 3 ctl_ptr, /* input line structure */ 2 43 3 current_parms_ptr, /* current formatting parms */ 2 44 3 default_parms_ptr, /* default initial text parms */ 2 45 3 devptr, /* -> comp_dvt structure */ 2 46 3 dvidptr, /* -> comp_dvid structure */ 2 47 3 errblk_ptr, /* error message block pointer */ 2 48 3 footnote_parms_ptr, /* footnote formatting parms */ 2 49 3 fnttbldata_ptr, /* -> font table data */ 2 50 3 global_area_ptr, /* per invocation storage */ 2 51 3 init_page_parms_ptr, /* default initial page parms */ 2 52 3 insert_data_ptr, /* insert file data block */ 2 53 3 local_area_ptr, /* per file storage */ 2 54 3 loctbl_ptr, /* for font copying */ 2 55 3 option_ptr, /* program options block */ 2 56 3 outproc_ptr, /* device writer for cleanup */ 2 57 3 page_ptr, /* active page structure */ 2 58 3 page_header_ptr, /* empty page header structure */ 2 59 3 page_parms_ptr, /* page formatting parameter block */ 2 60 3 save_shared_ptr, /* saved shared data */ 2 61 3 shared_ptr, /* shared data structure */ 2 62 3 text_entry_ptr, /* empty text entry structure */ 2 63 3 text_header_ptr, /* empty text header structure */ 2 64 3 text_parms_ptr, /* main body formatting parms */ 2 65 3 tree_ptr /* symbol tree structure */ 2 66 ) ptr, 2 67 2 time_value char (6) var; /* time at start */ 2 68 2 69 /* Other external */ 2 70 dcl ( 2 71 ioa_, 2 72 ioa_$nnl 2 73 ) entry options (variable); 2 74 dcl iox_$error_output 2 75 ptr ext static, /* iocb pointer for error_output */ 2 76 iox_$user_input 2 77 ptr ext static, /* iocb pointer for user_input */ 2 78 iox_$user_output 2 79 ptr ext static; /* iocb pointer for user_output */ 2 80 dcl sys_info$max_seg_size 2 81 fixed bin (18) ext static; 2 82 2 83 /* END INCLUDE FILE compstat.incl.pl1 */ 1072 3 1 /* BEGIN INCLUDE FILE - comp_dvid.incl.pl1 */ 3 2 3 3 /* Written: JA Falksen - 6/81 3 4*/* Modified: EJ Wallman - 11/81 - Added comp_dvt.displayproc */ 3 5 /* Modified: EJW - 1/82 - added length arg to comp_dvt.displayproc */ 3 6 /* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc */ 3 7 /* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 3 8* (3) char (*) var. Version 4. */ 3 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 3 10* sequence for comp_dvt.displayproc. - Version 5. */ 3 11 3 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 3 13 3 14 dcl comp_dvid_version 3 15 fixed bin static options (constant) init (5); 3 16 3 17 dcl 1 comp_dvid aligned based (const.dvidptr), 3 18 2 version fixed bin, /* version of this structure and */ 3 19 /* of comp_dvt */ 3 20 2 devname char (32), /* name of device */ 3 21 2 dvt_r bit (18); /* device table offset */ 3 22 3 23 /* END INCLUDE FILE - comp_dvid.incl.pl1 */ 1073 4 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 4 2 4 3 /* Written: 9/80 - JA Falksen 4 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 4 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 4 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 4 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 4 8* (3) char (*) var. Version 4. */ 4 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 4 10* sequence for comp_dvt.displayproc. - Version 5. 4 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 4 12**/ 4 13 4 14 /* All names which end in "_r"are offset values within the device table */ 4 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 4 16 4 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 4 18 4 19 dcl 1 comp_dvt aligned based (const.devptr), 4 20 2 devclass char (32), /* what general kind of device is */ 4 21 /* this, currently available: */ 4 22 /* "printer" (includes terminals), */ 4 23 /* "braille", "bitmap" */ 4 24 2 outproc entry /* page output processor */ 4 25 (fixed bin, /* function - 0=build */ 4 26 /* 1=init page */ 4 27 /* 2=init file */ 4 28 /* 3=cleanup */ 4 29 fixed bin (35)),/* error code */ 4 30 2 footproc entry /* footnote reference proc */ 4 31 ((3) char (*) var, 4 32 /* reference string (IN/OUT) */ 4 33 ptr), /* comp_dvt_p (IN) */ 4 34 2 artproc entry (), /* artwork proc */ 4 35 /* dont know how to describe yet */ 4 36 2 displayproc 4 37 entry /* string display interpreter */ 4 38 (char (*) var, /* raw input string */ 4 39 fixed bin (24), /* chars used in this call */ 4 40 bit (1)) /* 1= dont show display errors */ 4 41 returns (char (*) var), 4 42 /* interpreted output string */ 4 43 /* following values are in millipoints */ 4 44 2 min_WS fixed bin (31), /* minimum whitespace */ 4 45 2 min_lead fixed bin (31), /* minimun lead */ 4 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 4 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 4 48 2 def_vmt fixed bin (31), /* default .vmt */ 4 49 2 def_vmh fixed bin (31), /* default .vmh */ 4 50 2 def_vmf fixed bin (31), /* default .vmf */ 4 51 2 def_vmb fixed bin (31), /* default .vmb */ 4 52 2 pdw_max fixed bin (31), /* max page width available */ 4 53 2 pdl_max fixed bin (31), /* max page length available, */ 4 54 /* (0 = unlimited) */ 4 55 2 upshift fixed bin (31), /* footnote reference shift */ 4 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 4 57 2 lettersp fixed bin (31), /* max letterspacing */ 4 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 4 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 4 60 2 init_fam fixed bin, /* initial family index */ 4 61 2 init_mem fixed bin, /* initial member index */ 4 62 2 foot_fam fixed bin, /* initial foot family index */ 4 63 2 foot_mem fixed bin, /* initial foot member index */ 4 64 2 init_family 4 65 char (32), /* initial font family to use */ 4 66 2 init_member 4 67 char (32), /* initial font member to use */ 4 68 ( /* the following are offsets */ 4 69 2 atd_r, /* attach desc for on-line output */ 4 70 2 dvc_r, /* device control table relptr */ 4 71 2 comment_r, /* comment string relptr */ 4 72 2 cleanup_r, /* "cleanup" string relptr */ 4 73 2 medsel_table_r /* media select table relptr */ 4 74 ) bit (18) aligned, 4 75 2 foot_family 4 76 char (32), /* family for footnote reference */ 4 77 2 foot_member 4 78 char (32), /* member for footnote reference */ 4 79 /* if one was specified */ 4 80 2 sws unaligned, 4 81 3 interleave /* 0- page block has lines in column */ 4 82 bit (1), /* order left-to-right */ 4 83 /* 1- page block has lines in line */ 4 84 /* order top-to-bottom */ 4 85 3 justifying /* 1- device justifies lines */ 4 86 bit (1), 4 87 3 mbz bit (24), 4 88 3 endpage bit (9), /* EOP char if not "0"b */ 4 89 2 open_mode fixed bin (35), /* when going to a file */ 4 90 2 recleng fixed bin, /* length of tape records */ 4 91 2 family_ct fixed bin, /* # families present */ 4 92 2 family (comp_dvt.family_ct), 4 93 /* families of fonts defined */ 4 94 3 member_r bit (18) aligned, 4 95 /* member table relptr */ 4 96 3 name char (32); /* family name */ 4 97 4 98 4 99 /* The usage formula for units: */ 4 100 /* */ 4 101 /* rel_units * length_in_points */ 4 102 /* ---------------------------- = length_in_units */ 4 103 /* points_per_EM */ 4 104 4 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 1074 5 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 5 2 5 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 5 4 5 5 dcl compose_severity_ 5 6 fixed bin (35) ext static; 5 7 dcl comp_ entry; 5 8 dcl comp_art_ entry (ptr, bit (1)); 5 9 dcl comp_block_ctls_ 5 10 entry (fixed bin); 5 11 dcl comp_break_ entry (fixed bin, fixed bin); 5 12 dcl comp_break_ctls_ 5 13 entry (fixed bin); 5 14 dcl comp_ctls_ entry (bit (1) aligned); 5 15 dcl comp_eject_page_ 5 16 entry; 5 17 dcl comp_expr_eval_ 5 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 5 19 fixed bin, bit (1), fixed bin (31), char (*) var, 5 20 bit (9), fixed bin (35)); 5 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 5 22 fixed bin (21), fixed bin (21), ptr) 5 23 returns (char (*) var); 5 24 dcl comp_fill_ entry; 5 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 5 26 dcl comp_format_ctls_ 5 27 entry (fixed bin); 5 28 dcl comp_get_file_$find 5 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 5 30 fixed bin (35)); 5 31 dcl comp_get_file_$open 5 32 entry (ptr, bit (1), fixed bin (35)); 5 33 dcl comp_head_page_ 5 34 entry (fixed bin (31)); 5 35 dcl comp_hft_ctls_ entry (fixed bin); 5 36 dcl comp_hft_ctls_$title 5 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 5 38 dcl comp_init_$one entry; 5 39 dcl comp_init_$two entry; 5 40 dcl comp_init_$three 5 41 entry; 5 42 dcl comp_insert_ctls_ 5 43 entry (fixed bin); 5 44 dcl comp_make_page_ 5 45 entry (fixed bin, bit (1)); 5 46 dcl comp_make_page_$cleanup 5 47 entry; 5 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 5 49 fixed bin (31), ptr, ptr, ptr); 5 50 dcl comp_read_$name 5 51 entry (char (*) var, fixed bin (21), fixed bin (21), 5 52 ptr) returns (char (*) var); 5 53 dcl comp_read_$number 5 54 entry (char (*) var, (*) fixed bin (31), 5 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 5 56 returns (fixed bin (31)); 5 57 dcl comp_read_$line 5 58 entry (ptr, char (*) var, bit (1)); 5 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 5 60 char (*) var); 5 61 dcl comp_report_$ctlstr 5 62 entry options (variable); 5 63 /**** (sev, code, info, line, ctl_str, args... */ 5 64 dcl comp_report_$exact 5 65 entry (char (*), ptr); 5 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 5 67 bit (1)); 5 68 dcl comp_tbl_ctls_ entry (fixed bin); 5 69 dcl comp_title_block_ 5 70 entry (ptr); 5 71 dcl comp_update_symbol_ 5 72 entry (bit (1), bit (1), bit (1), char (32), 5 73 char (*) var); 5 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 5 75 dcl comp_util_$add_text 5 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 5 77 dcl comp_util_$display 5 78 entry (char (*) var, fixed bin, bit (1)) 5 79 returns (char (*) var); 5 80 dcl comp_util_$escape 5 81 entry (char (*) var, ptr); 5 82 dcl comp_util_$getblk 5 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 5 84 dcl comp_util_$num_display 5 85 entry (ptr, fixed bin) returns (char (256) var); 5 86 dcl comp_util_$pageno 5 87 entry (fixed bin, char (*) var); 5 88 dcl comp_util_$pictures /* emit pending pictures */ 5 89 entry /**/ 5 90 (ptr); /* current text block */ 5 91 dcl comp_util_$pop entry (char (32)); 5 92 dcl comp_util_$push 5 93 entry (char (32)); 5 94 dcl comp_util_$relblk 5 95 entry (fixed bin, ptr); 5 96 dcl comp_util_$replace_text 5 97 entry (ptr, bit (1), ptr, ptr); 5 98 dcl comp_util_$search_tree 5 99 entry (char (32), bit (1)); 5 100 dcl comp_util_$set_bin 5 101 entry (fixed bin (31), char (32) var, fixed bin (31), 5 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 5 103 fixed bin (31)); 5 104 dcl comp_util_$set_net_page 5 105 entry (bit (1)); 5 106 dcl comp_util_$translate 5 107 entry (char (*) var) returns (char (*) var); 5 108 dcl comp_write_block_ 5 109 entry (fixed bin); 5 110 dcl comp_write_page_ 5 111 entry; 5 112 5 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 1075 6 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 6 2 6 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 4 6 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 6 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 6 7 2 bachelor bit (1), /* 1= has no members */ 6 8 2 devfnt fixed bin, /* font in the device */ 6 9 2 fam_name char (32), /* family name */ 6 10 2 famndx fixed bin, /* family index */ 6 11 2 fntptr ptr, /* font table pointer */ 6 12 2 mem_name char (32), /* /member name (or null) */ 6 13 2 memndx fixed bin, /* member index */ 6 14 2 memptr ptr, /* member table pointer */ 6 15 2 name char (65) var, /* font name */ 6 16 2 size fixed bin (31), /* requested point size */ 6 17 2 ps fixed bin (31), /* effective point size */ 6 18 2 fcs_str char (8); /* FCS string */ 6 19 6 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 1076 7 1 /* BEGIN INCLUDE FILE comp_font.incl.pl1 */ 7 2 7 3 /* Fonts already loaded into the compose (pdir) database */ 7 4 7 5 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 7 6 7 7 dcl 1 fnttbldata aligned based (const.fnttbldata_ptr), 7 8 2 count fixed bin, /* number of fonts loaded */ 7 9 2 ndx fixed bin, /* index of current font */ 7 10 2 medsel_ptr ptr, /* -> media select table */ 7 11 2 ptr (100) ptr; /* 100 fonts should be plenty! */ 7 12 7 13 dcl fnttbl_ptr ptr init (null); 7 14 dcl 1 fnttbl aligned based (fnttbl_ptr), 7 15 2 min_wsp fixed bin, /* min wordspace - in strokes */ 7 16 2 avg_wsp fixed bin, /* nominal wordspace - in strokes */ 7 17 2 max_wsp fixed bin, /* max wordspace - in strokes */ 7 18 2 rel_units fixed bin, /* stroke value for this font */ 7 19 2 siztbl_ptr ptr, /* -> loaded size table */ 7 20 2 entry /* stack entry for this font */ 7 21 like fntstk_entry, 7 22 ( /* for each font character */ 7 23 2 devfnt fixed bin, /* font in the device */ 7 24 2 replptr ptr, /* replacement string ptrs */ 7 25 2 units fixed bin, /* width in strokes */ 7 26 2 white bit (1) unal /* white space flags */ 7 27 ) dimension (0:511); 7 28 7 29 dcl repl_str_ptr ptr; /* replacement strings */ 7 30 dcl 1 repl_str based (repl_str_ptr), 7 31 2 len fixed bin (35), 7 32 2 str char (256); 7 33 dcl replstr char (256) var based (repl_str_ptr); 7 34 /* media select strings */ 7 35 /* (indexed on fnttbldata.ndx) */ 7 36 dcl medsel (100) char (12) based (fnttbldata.medsel_ptr); 7 37 7 38 dcl 1 siztbl based (fnttbl.siztbl_ptr), 7 39 2 ct fixed bin, /* number of sizes */ 7 40 2 size (siztbl.ct) fixed bin (31); 7 41 7 42 /* This is the storage referred by family.member_r in comp_dvt 7 43* 7 44* If member.count is 1 and member.name(1) is null, then the font is a 7 45* 'bachelor'. 7 46* 7 47* The font stack will hold the family/member names which were used to 7 48* originally get to the font. When a bachelor is accessed, the member name 7 49* will remain but the bachelor flag will be set to tell any displayers not 7 50* to include it. 7 51* 7 52* %FontName% will contain either "family" or "family/member" depending on 7 53* the setting of the bachelor switch. */ 7 54 7 55 dcl member_ptr ptr; 7 56 dcl 1 member based (member_ptr), 7 57 2 count fixed bin, /* # members present */ 7 58 2 e (member.count), /* members defined for this device */ 7 59 3 font_r bit (18) unal, /* font character table relptr */ 7 60 3 size_r bit (18) aligned, 7 61 /* point size list relptr */ 7 62 3 Scalex fixed bin (35), /* X (hor) scaling * 1e8 - FUTURE */ 7 63 3 Scaley fixed bin (35), /* Y (ver) scaling * 1e8 - FUTURE */ 7 64 3 name char (32); /* member name */ 7 65 7 66 /* Storage referred by member.font_r */ 7 67 dcl font_ptr ptr; 7 68 dcl 1 font based (font_ptr), 7 69 ( 2 oput_r, /* offset of output data array */ 7 70 2 units_r /* offset of width array */ 7 71 ) bit (18) aligned, 7 72 2 rel_units fixed bin, /* stroke value for this table */ 7 73 2 footsep char (1), /* footref separator */ 7 74 2 fill char (3), 7 75 2 min_wsp fixed bin, /* min wordspace */ 7 76 2 avg_wsp fixed bin, /* nominal wordspace */ 7 77 2 max_wsp fixed bin; /* max wordspace */ 7 78 7 79 /* storage referred by font.units_r */ 7 80 dcl units_ptr ptr; /* width in strokes */ 7 81 dcl units (0:511) fixed bin based (units_ptr); 7 82 7 83 /* media select table in the device table */ 7 84 dcl medsel_table_ptr 7 85 ptr; 7 86 dcl 1 medsel_table based (medsel_table_ptr), 7 87 2 count fixed bin, 7 88 2 ref_r (medsel_table.count) bit (18) aligned; 7 89 7 90 /* storage referred by font.oput_r */ 7 91 dcl oput_p ptr; 7 92 dcl 1 oput based (oput_p), 7 93 2 data_ct fixed bin, /* highest char defined */ 7 94 2 e (0:oput.data_ct), 7 95 3 which /* index into view array */ 7 96 fixed bin (17) unal, 7 97 3 what_r /* output string */ 7 98 bit (18) unal; 7 99 7 100 /* storage referred by member.size_r */ 7 101 7 102 dcl sizel_p ptr; 7 103 dcl 1 sizel based (sizel_p),/* list of allowed point sizes */ 7 104 2 val_ct fixed bin, 7 105 2 val (sizel.val_ct) fixed bin (31); 7 106 7 107 /* storage referred by oput.what_r */ 7 108 7 109 dcl medchar_sel_p ptr; /* MediaChar select string */ 7 110 dcl 1 medchar_sel based (medchar_sel_p), 7 111 2 str_l fixed bin, 7 112 2 str char (medchar_sel.str_l); 7 113 dcl medchar char (medchar_sel.str_l) var based (medchar_sel_p); 7 114 7 115 dcl med_sel_p ptr; /* media select string */ 7 116 dcl 1 med_sel based (med_sel_p), 7 117 2 str_l fixed bin, 7 118 2 str char (med_sel.str_l); 7 119 7 120 /* END INCLUDE FILE comp_font.incl.pl1 */ 1077 8 1 /* Begin include file definition_dcls.incl.pl1 BIM 1981 */ 8 2 8 3 8 4 /****^ HISTORY COMMENTS: 8 5* 1) change(86-05-02,Elhard), approve(86-05-02,MCR7391), 8 6* audit(86-07-18,DGHowe), install(86-11-20,MR12.0-1222): 8 7* Modified to add indirect bit to definition flags, add msf_map_relp to the 8 8* definition header, declare the msf_map, and add structures and constants 8 9* for deferred initialization. 8 10* 2) change(86-06-24,DGHowe), approve(86-06-24,MCR7420), 8 11* audit(86-08-05,Schroth), install(86-11-20,MR12.0-1222): 8 12* added the structures for pointer initialization. pointer_init_template. 8 13* changed list_template_entry 8 14* END HISTORY COMMENTS */ 8 15 8 16 8 17 /* Modified: */ 8 18 /* 13 Dec 1982 by Lee A. Newcomb to put definition_header.hash_table_relp */ 8 19 /* after unused half-word instead of before it. */ 8 20 /* 1 March 1983 by M. Weaver to add list template init type */ 8 21 8 22 /* format: style3,idind25 */ 8 23 /* everything for the definition section */ 8 24 8 25 declare ( 8 26 CLASS_TEXT init (0), /* text section definition */ 8 27 CLASS_LINKAGE init (1), /* linkage section definition */ 8 28 CLASS_SYMBOL init (2), /* symbol section definition */ 8 29 CLASS_SEGNAME init (3), /* segment name definition */ 8 30 CLASS_STATIC init (4), /* static section definition */ 8 31 CLASS_SYSTEM init (5), /* valid only in self links, not def class */ 8 32 CLASS_HEAP init (6) /* valid only in self links, not def class */ 8 33 ) fixed bin (3) unsigned internal static options (constant); 8 34 8 35 declare CLASS_NAMES (0:6) character (12) internal static options (constant) 8 36 init ("text", "linkage", "symbol", "segname", "static", "system", "heap"); 8 37 8 38 declare SYMBOLIC_SECTION_NAMES (0:6) character (8) 8 39 init ("*text", "*link", "*symbol", *, "*static", "*system", "*heap") internal static 8 40 options (constant); 8 41 8 42 declare 1 definition_flags unaligned based, 8 43 2 new bit (1), /* should be "1"b */ 8 44 2 ignore bit (1), /* cannot snap link to this */ 8 45 2 entry bit (1), /* can tra here */ 8 46 2 retain bit (1), /* binder respects this */ 8 47 2 argcount bit (1), /* OBSOLETE */ 8 48 2 descriptors bit (1), /* OBSOLETE */ 8 49 2 indirect bit (1), /* target is a pointer to actual target */ 8 50 2 unused bit (8); /* Must be zero */ 8 51 8 52 8 53 8 54 8 55 /* Header of the definition section */ 8 56 8 57 declare def_header_ptr pointer; 8 58 declare 1 definition_header aligned based (def_header_ptr), 8 59 2 def_list_relp fixed bin (18) unsigned unaligned, 8 60 /* first definition, reloc def18 */ 8 61 2 msf_map_relp fixed bin (18) unsigned unaligned, 8 62 /* msf_map if any, or 0 if none. reloc def18 unless none */ 8 63 2 hash_table_relp fixed bin (18) unsigned unaligned, 8 64 /* def hash table, if any, or 0 if none. reloc def18 unless none */ 8 65 2 flags unaligned like definition_flags; 8 66 /* both new and ignore must be "1"b here */ 8 67 8 68 /* A non class=3 definition. See segname_definition below for class=3 */ 8 69 8 70 8 71 declare def_ptr pointer; 8 72 declare 1 definition aligned based (def_ptr), 8 73 2 forward_relp unal fixed bin (18) unsigned, 8 74 /* offset of next def */ 8 75 2 backward_relp unal fixed bin (18) unsigned, 8 76 /* offset of previous def */ 8 77 2 thing_relp unal fixed bin (18) unsigned, 8 78 /* offset in section specified by class of thing this defines */ 8 79 2 flags unaligned like definition_flags, 8 80 2 class unal fixed bin (3) unsigned, 8 81 /* Type of definition */ 8 82 2 name_relp unal fixed bin (18) unsigned, 8 83 /* offset of ACC for symbol */ 8 84 2 segname_relp unal fixed bin (18) unsigned; 8 85 /* offset of segname def to which this belongs */ 8 86 8 87 /* Class=3, segname definition */ 8 88 8 89 declare segname_ptr pointer; 8 90 declare 1 segname_definition aligned based (segname_ptr), 8 91 2 forward_relp unal fixed bin (18) unsigned, 8 92 /* offset of next def */ 8 93 2 backward_relp unal fixed bin (18) unsigned, 8 94 /* offset of previous def */ 8 95 2 next_segname_relp unal fixed bin (18) unsigned, 8 96 /* offset of next segname def */ 8 97 2 flags unaligned like definition_flags, 8 98 2 class unal fixed bin (3) unsigned, 8 99 /* 3 for segname */ 8 100 2 name_relp unal fixed bin (18) unsigned, 8 101 /* offset of ACC for symbol */ 8 102 2 first_relp unal fixed bin (18) unsigned; 8 103 /* see following : */ 8 104 8 105 /* Definition blocks are chained off of segname definitions. 8 106* segname_definition.first_relp is one of three things: 8 107* (1) the def section offset of the first ordinary (class^=3) definition 8 108* belonging to this segname block. In the case where there are more than 8 109* one segname's on a block, all their first_relp will point 8 110* to the same place. 8 111* 8 112* (2) if there are no ordinary definitions associated with this segname, 8 113* then it is the def section offset of the next segname. 8 114* 8 115* (3) if there are no ordinary definitions in the block, and it 8 116* is the last block, then it points to a word containing 0. 8 117* 8 118* Thus the end of a list of synonym segnames can be detected by forward_relp 8 119* pointing to a class=3 definition whose first_relp is not the same as 8 120* the current definitions first_relp. 8 121**/ 8 122 8 123 /* All the definitions are linked through the forward and 8 124* backward thread variables. The end of the chain can is indicated 8 125* by forward pointing to a zero word. */ 8 126 8 127 8 128 declare exp_ptr pointer; 8 129 declare 1 exp_word based (exp_ptr) aligned, /* expression word in link definition */ 8 130 2 type_relp fixed bin (18) unsigned unal, 8 131 /* pointer (rel to defs) of type pair structure */ 8 132 2 expression fixed bin (17) unal; /* constant expression to be added in when snapping link */ 8 133 8 134 declare ( 8 135 LINK_SELF_BASE init (1), /* *section|0+expression,modifier */ 8 136 /* which section determined by segname_relp */ 8 137 LINK_OBSOLETE_2 init (2), /* not used */ 8 138 LINK_REFNAME_BASE init (3), /* refname|0+expression,modifier */ 8 139 LINK_REFNAME_OFFSETNAME init (4), /* refname|offsetname+expression,modifier */ 8 140 LINK_SELF_OFFSETNAME init (5), /* *section|offsetname+expression,modifier */ 8 141 LINK_CREATE_IF_NOT_FOUND init (6), /* OBSOLETE: like LINK_REFNAME_OFFSETNAME except that it will create instead of taking linkage_error */ 8 142 SECTION_TEXT init (0), /* *text */ 8 143 SECTION_LINK init (1), /* *link */ 8 144 SECTION_SYMBOL init (2), /* *symbol */ 8 145 SECTION_UNUSED init (3), /* reserved */ 8 146 SECTION_STATIC init (4), /* *static */ 8 147 SECTION_SYSTEM init (5), /* *system */ 8 148 SECTION_HEAP init (6) /* *heap */ 8 149 ) fixed bin (18) unsigned unaligned internal static options (constant); 8 150 8 151 /* use CLASS_NAMES for section names */ 8 152 8 153 declare LINK_TYPE_NAMES (1:6) 8 154 init ("absolute in section", "unused", "absolute off of refname", 8 155 "symbolic off of refname", "symbolic in section", "symbolic off of refname; create") 8 156 character (32) varying internal static options (constant); 8 157 8 158 8 159 declare type_ptr pointer; 8 160 declare 1 type_pair based (type_ptr) aligned,/* type pair in link definition */ 8 161 2 type fixed bin (18) unsigned unal, 8 162 /* see above */ 8 163 2 trap_relp fixed bin (18) unsigned unal, 8 164 /* pointer (rel to defs) to the trap word */ 8 165 /* unless LINK_SELF_OFFSETNAME off of *system or create link */ 8 166 2 segname_relp fixed bin (18) unsigned unal, 8 167 /* pointer (rel to defs) to ACC reference name for segment referenced, 8 168* /*or section code for SELF links */ 8 169 2 offsetname_relp fixed bin (18) unsigned unal; 8 170 /* for OFFSETNAME links, ACC string of name of location. */ 8 171 /* for others, must be ZERO */ 8 172 8 173 8 174 /* Link Trap Pair */ 8 175 8 176 declare link_trap_ptr pointer; 8 177 declare 1 link_trap_pair aligned based (link_trap_ptr), 8 178 2 call_relp fixed bin (18) unsigned unaligned, 8 179 /* LINK18, link to thing to call */ 8 180 2 info_relp fixed bin (18) unsigned unaligned; 8 181 /* LINK18, link to argument list */ 8 182 8 183 8 184 /* initialization info for *system or *heap link */ 8 185 8 186 8 187 /* NOTE -------------------------------------------------- 8 188* the following structures defining initialization information are also 8 189* defined in fortran_storage.incl.pl1 system_link_init_info.incl.pl1 8 190* and should be kept equivalent 8 191* ------------------------------------------------------- 8 192**/ 8 193 8 194 declare ( 8 195 INIT_NO_INIT init (0), 8 196 INIT_COPY_INFO init (3), 8 197 INIT_DEFINE_AREA init (4), 8 198 INIT_LIST_TEMPLATE init (5), 8 199 INIT_DEFERRED init (6) 8 200 ) fixed bin internal static options (constant); 8 201 8 202 /* for type = 0 or 4 */ 8 203 8 204 declare link_init_ptr pointer; 8 205 declare 1 link_init aligned based (link_init_ptr), 8 206 2 n_words fixed bin (35), /* number to invent */ 8 207 2 type fixed bin; /* see types above */ 8 208 8 209 /* for type=3, there is data to copy */ 8 210 8 211 declare 1 link_init_copy_info aligned based (link_init_ptr), 8 212 2 header aligned like link_init, 8 213 2 initial_data (link_init_n_words refer (link_init_copy_info.header.n_words)) bit (36) aligned; 8 214 8 215 declare link_init_n_words fixed bin; 8 216 8 217 /* for type = 5, there is a list template to copy */ 8 218 8 219 declare 1 link_init_list_template 8 220 aligned based (link_init_ptr), 8 221 2 header aligned like link_init, 8 222 2 pad bit (18) unaligned, 8 223 2 n_words_in_list fixed bin (18) unsigned unaligned, 8 224 2 template (link_init_n_words_in_list refer (link_init_list_template.n_words_in_list)); 8 225 8 226 declare link_init_n_words_in_list 8 227 fixed bin; 8 228 8 229 /* A list template consists of a series of entries with the following 8 230* description, concatenated together. n_bits and datum are bit items, 8 231* to permit a wide range of inputs. 8 232* 8 233* 1. A 'repeat' of '0' signifies skipping of 'n_bits' bits. 8 234* 2. A 'n_bits' of '0' signifies the last item of the list. 8 235* 8 236* COMMON, VLA's, and LA's are presumed to start at the base pointer 8 237* of their particular storage section. */ 8 238 8 239 declare 1 list_template_entry aligned based, 8 240 2 n_bits fixed bin (35) aligned, /* size of datum */ 8 241 2 mbz bit (3) unaligned, /* future expansion */ 8 242 2 init_type fixed bin (3) unsigned unaligned, /* 0 normal init, 1 ptr init, 2 packed ptr init */ 8 243 2 repeat fixed bin (30) unsigned unaligned, 8 244 /* number of times to repeat datum */ 8 245 2 datum bit (link_init_n_bits_in_datum refer (list_template_entry.n_bits)); 8 246 8 247 8 248 /* the pointer_init_template represents the initialization information 8 249* for ITS and packed pointers. Both pointer types require the entire 8 250* 72 bit structure. 8 251**/ 8 252 8 253 dcl 1 pointer_init_template based, 8 254 2 ptr_type fixed bin (18) unsigned unaligned, /* 0 text section, 1 linkage section, 2 static section */ 8 255 2 section_offset fixed bin (18) unsigned unaligned, /* offset to item in specified section */ 8 256 2 word_offset fixed bin (18) unsigned unaligned, /* offset from section item to target in words */ 8 257 2 mbz bit (12) unaligned, 8 258 2 bit_offset fixed bin (6) unsigned unaligned; /* offset from section item|word offset to target in bits */ 8 259 8 260 8 261 declare link_init_n_bits_in_datum 8 262 fixed bin (35); 8 263 8 264 /* for type = 6, the init_info resides in another MSF component */ 8 265 /* target_relp is a linkage section offset to a partial link to */ 8 266 /* the base of the linkage section of the component containing */ 8 267 /* the actual init_info. link_relp is the offset of the actual */ 8 268 /* link within that linkage section. */ 8 269 8 270 declare 1 link_init_deferred aligned based (link_init_ptr), 8 271 2 header aligned like link_init, 8 272 2 target_relp fixed bin (18) unsigned unaligned, 8 273 2 link_relp fixed bin (18) unsigned unaligned; 8 274 8 275 /* Definition section hash table */ 8 276 8 277 declare def_ht_ptr pointer; 8 278 declare 1 definition_ht aligned based (def_ht_ptr), 8 279 2 n_entries fixed bin, 8 280 2 table (def_ht_n_entries refer (definition_ht.n_entries)) aligned, 8 281 3 def_relp fixed bin (18) unsigned unaligned, 8 282 3 unused bit (18) unaligned; 8 283 8 284 declare def_ht_n_entries fixed bin; 8 285 8 286 8 287 /* Component name ht */ 8 288 declare comp_ht_ptr pointer; 8 289 declare 1 component_ht aligned based (comp_ht_ptr), 8 290 2 n_entries fixed bin, 8 291 2 table (comp_ht_n_entries refer (component_ht.n_entries)) aligned, 8 292 3 def_relp fixed bin (18) unsigned unaligned, 8 293 /* hashed segname */ 8 294 3 block_hdr_relp fixed bin (18) unsigned unaligned; 8 295 /* first segname def of block containing def_relp */ 8 296 8 297 declare comp_ht_n_entries fixed bin; 8 298 8 299 /* Duplicate name table */ 8 300 8 301 declare dup_table_ptr pointer; 8 302 declare 1 duplicate_table aligned based (dup_table_ptr), 8 303 2 mbz bit (18) unaligned, /* to tell it from a definition */ 8 304 2 n_names fixed bin (18) unsigned unaligned, 8 305 /* n in table */ 8 306 2 table (dup_table_n_names refer (duplicate_table.n_names)) aligned, 8 307 3 def_relp fixed bin (18) unsigned unaligned, 8 308 3 block_hdr_relp fixed bin (18) unsigned unaligned; 8 309 8 310 declare dup_table_n_names fixed bin; 8 311 8 312 /* The msf_map is found in the definition section of an */ 8 313 /* object MSF component. It is used by the linker to */ 8 314 /* determine whether a segment is a component of an object */ 8 315 /* MSF or a standard single-segment object. */ 8 316 8 317 dcl msf_map_ptr ptr; 8 318 dcl 01 msf_map aligned based (msf_map_ptr), 8 319 02 version char (8), 8 320 02 component_count fixed bin (15) unsigned, 8 321 02 my_component fixed bin (15) unsigned; 8 322 8 323 dcl msf_map_version_1 char (8) static options (constant) 8 324 init ("msfmp1.0"); 8 325 8 326 declare acc_string_ptr pointer; 8 327 declare 1 acc_string aligned based (acc_string_ptr), 8 328 2 count fixed bin (9) unsigned unaligned, 8 329 2 string character (max (3, acc_string_length) refer (acc_string.count)) unaligned, 8 330 2 mbz bit (0) aligned; /* this causes the statement */ 8 331 /* unspec (acc_string) = ""b to zero out */ 8 332 /* the last word, if the string is not of length 0mod4 */ 8 333 8 334 declare acc_string_length fixed bin (21); 8 335 8 336 8 337 /* end include file definitions_dcls.incl.pl1 */ 1078 9 1 /* BEGIN INCLUDE FILE ... object_info.incl.pl1 9 2*coded February 8, 1972 by Michael J. Spier */ 9 3 /* modified May 26, 1972 by M. Weaver */ 9 4 /* modified 15 April, 1975 by M. Weaver */ 9 5 9 6 declare 1 object_info aligned based, /* structure containing object info based, returned by object_info_ */ 9 7 2 version_number fixed bin, /* version number of current structure format (=2) */ 9 8 2 textp pointer, /* pointer to beginning of text section */ 9 9 2 defp pointer, /* pointer to beginning of definition section */ 9 10 2 linkp pointer, /* pointer to beginning of linkage section */ 9 11 2 statp pointer, /* pointer to beginning of static section */ 9 12 2 symbp pointer, /* pointer to beginning of symbol section */ 9 13 2 bmapp pointer, /* pointer to beginning of break map (may be null) */ 9 14 2 tlng fixed bin, /* length in words of text section */ 9 15 2 dlng fixed bin, /* length in words of definition section */ 9 16 2 llng fixed bin, /* length in words of linkage section */ 9 17 2 ilng fixed bin, /* length in words of static section */ 9 18 2 slng fixed bin, /* length in words of symbol section */ 9 19 2 blng fixed bin, /* length in words of break map */ 9 20 2 format, /* word containing bit flags about object type */ 9 21 3 old_format bit(1) unaligned, /* on if segment isn't in new format, i.e. has old style object map */ 9 22 3 bound bit(1) unaligned, /* on if segment is bound */ 9 23 3 relocatable bit(1) unaligned, /* on if seg has relocation info in its first symbol block */ 9 24 3 procedure bit(1) unaligned, /* on if segment is an executable object program */ 9 25 3 standard bit(1) unaligned, /* on if seg is in standard format (more than just standard map) */ 9 26 3 gate bit(1) unaligned, /* on if segment is a gate */ 9 27 3 separate_static bit(1) unaligned, /* on if static not in linkage */ 9 28 3 links_in_text bit(1) unaligned, /* on if there are threaded links in text */ 9 29 3 perprocess_static bit (1) unaligned, /* on if static is not to be per run unit */ 9 30 3 pad bit(27) unaligned, 9 31 2 entry_bound fixed bin, /* entry bound if segment is a gate */ 9 32 2 textlinkp pointer, /* ptr to first link in text */ 9 33 9 34 /* LIMIT OF BRIEF STRUCTURE */ 9 35 9 36 2 compiler char(8) aligned, /* name of processor which generated segment */ 9 37 2 compile_time fixed bin(71), /* clock reading of date/time object was generated */ 9 38 2 userid char(32) aligned, /* standard Multics id of creator of object segment */ 9 39 2 cvers aligned, /* generator version name in printable char string form */ 9 40 3 offset bit(18) unaligned, /* offset of name in words relative to base of symbol section */ 9 41 3 length bit(18) unaligned, /* length of name in characters */ 9 42 2 comment aligned, /* printable comment concerning generator or generation of segment */ 9 43 3 offset bit(18) unaligned, /* offset of comment in words relative to base of symbol section */ 9 44 3 length bit(18) unaligned, /* length of comment in characters */ 9 45 2 source_map fixed bin, /* offset, relative to base of symbol section, of source map structure */ 9 46 9 47 /* LIMIT OF DISPLAY STRUCTURE */ 9 48 9 49 2 rel_text pointer, /* pointer to text section relocation info */ 9 50 2 rel_def pointer, /* pointer to definition section relocation info */ 9 51 2 rel_link pointer, /* pointer to linkage section relocation info */ 9 52 2 rel_static pointer, /* pointer to static section relocation info */ 9 53 2 rel_symbol pointer, /* pointer to symbol section relocation info */ 9 54 2 text_boundary fixed bin, /* specifies mod of text section base boundary */ 9 55 2 static_boundary fixed bin, /* specifies mod of internal static base boundary */ 9 56 /* currently not used by system */ 9 57 2 default_truncate fixed bin, /* offset rel to symbp for binder to automatically trunc. symb sect. */ 9 58 2 optional_truncate fixed bin; /* offset rel to symbp for binder to optionally trunc. symb sect. */ 9 59 9 60 declare object_info_version_2 fixed bin int static init(2); 9 61 9 62 /* END INCLUDE FILE ... object_info.incl.pl1 */ 1079 10 1 /* BEGIN INCLUDE FILE . . . sl_control_s.incl.pl1 */ 10 2 10 3 declare 1 sl_control_s unaligned based (addr (sl_control)), 10 4 2 af_pathname bit (1), /* "1"b => expand active functions */ 10 5 2 pad1 bit (1), /* Must be zero */ 10 6 2 key_ref_dir bit (1), /* "1"b => expand -referencing_dir keyword */ 10 7 2 key_work_dir bit (1), /* "1"b => expand -working_dir keyword */ 10 8 2 key_proc_dir bit (1), /* "1"b => expand -process_dir keyword */ 10 9 2 key_home_dir bit (1), /* "1"b => expand -home_dir keyword */ 10 10 2 pad2 bit (30); /* Must be zero */ 10 11 10 12 declare sl_control bit (36); 10 13 declare sl_control_default bit (36) internal static options (constant) initial ("101111"b); 10 14 10 15 /* END INCLUDE FILE . . . sl_control_s.incl.pl1 */ 1080 11 1 /* BEGIN INCLUDE FILE . . . sl_info.incl.pl1 */ 11 2 11 3 11 4 11 5 /****^ HISTORY COMMENTS: 11 6* 1) change(87-11-16,Lippard), approve(87-12-21,MCR7822), 11 7* audit(88-02-09,Blair), install(88-02-16,MR12.2-1023): 11 8* Modified to add INITIATED_SEGS type. 11 9* 2) change(87-11-19,Lippard), approve(87-12-21,MCR7822), 11 10* audit(88-02-09,Blair), install(88-02-16,MR12.2-1023): 11 11* Added uid to sl_info structure. 11 12* END HISTORY COMMENTS */ 11 13 11 14 11 15 declare 1 sl_info aligned based (sl_info_p), 11 16 2 version fixed binary, /* Must be 1 */ 11 17 2 num_paths fixed binary, /* Number of search paths */ 11 18 2 change_index_p pointer, /* Pointer to search list's update count */ 11 19 2 change_index fixed binary (71), /* This search list's update count */ 11 20 2 pad1 (6) bit (36), /* Must be zero */ 11 21 2 paths (sl_info_num_paths refer (sl_info.num_paths)), 11 22 3 type fixed binary, /* Type of search path */ 11 23 3 code fixed binary (35), /* Standard status code of search path */ 11 24 3 uid bit (36), /* Unique ID */ 11 25 3 pathname char (168) unaligned; /* Search pathname */ 11 26 11 27 declare sl_info_num_paths fixed binary; 11 28 declare sl_info_p pointer; 11 29 declare sl_info_version_1 fixed binary internal static options (constant) initial (1); 11 30 11 31 /* Keyword Types */ 11 32 11 33 declare ABSOLUTE_PATH fixed binary internal static options (constant) initial (0); 11 34 declare UNEXPANDED_PATH fixed binary internal static options (constant) initial (1); 11 35 declare REFERENCING_DIR fixed binary internal static options (constant) initial (3); 11 36 declare WORKING_DIR fixed binary internal static options (constant) initial (4); 11 37 declare PROCESS_DIR fixed binary internal static options (constant) initial (5); 11 38 declare HOME_DIR fixed binary internal static options (constant) initial (6); 11 39 declare INITIATED_SEGS fixed binary internal static options (constant) initial (7); 11 40 11 41 /* END INCLUDE FILE . . . sl_info.incl.pl1 */ 1081 12 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 12 2 12 3 /* This include file contains structures for the hcs_$star_, 12 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 12 5* 12 6* Written 23 October 1978 by Monte Davidoff. 12 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 12 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 12 9**/ 12 10 12 11 /* automatic */ 12 12 12 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 12 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 12 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 12 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 12 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 12 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 12 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 12 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 12 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 12 22 12 23 /* based */ 12 24 12 25 /* hcs_$star_ entry structure */ 12 26 12 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 12 28 2 type fixed binary (2) unsigned unaligned, 12 29 /* storage system type */ 12 30 2 nnames fixed binary (16) unsigned unaligned, 12 31 /* number of names of entry that match star_name */ 12 32 2 nindex fixed binary (18) unsigned unaligned; 12 33 /* index of first name in star_names */ 12 34 12 35 /* hcs_$star_ name structure */ 12 36 12 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 12 38 12 39 /* hcs_$star_list_ branch structure */ 12 40 12 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 12 42 2 type fixed binary (2) unsigned unaligned, 12 43 /* storage system type */ 12 44 2 nnames fixed binary (16) unsigned unaligned, 12 45 /* number of names of entry that match star_name */ 12 46 2 nindex fixed binary (18) unsigned unaligned, 12 47 /* index of first name in star_list_names */ 12 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 12 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 12 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 12 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 12 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 12 53 2 pad bit (7) unaligned, 12 54 2 records fixed binary (18) unsigned unaligned; 12 55 /* records used by branch */ 12 56 12 57 /* hcs_$star_dir_list_ branch structure */ 12 58 12 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 12 60 2 type fixed binary (2) unsigned unaligned, 12 61 /* storage system type */ 12 62 2 nnames fixed binary (16) unsigned unaligned, 12 63 /* number of names of entry that match star_name */ 12 64 2 nindex fixed binary (18) unsigned unaligned, 12 65 /* index of first name in star_list_names */ 12 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 12 67 2 pad bit (36) unaligned, 12 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 12 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 12 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 12 71 2 bit_count fixed binary (24) unaligned; 12 72 /* bit count of the branch */ 12 73 12 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 12 75 12 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 12 77 2 type fixed binary (2) unsigned unaligned, 12 78 /* storage system type */ 12 79 2 nnames fixed binary (16) unsigned unaligned, 12 80 /* number of names of entry that match star_name */ 12 81 2 nindex fixed binary (18) unsigned unaligned, 12 82 /* index of first name in star_list_names */ 12 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 12 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 12 85 2 pathname_len fixed binary (18) unsigned unaligned, 12 86 /* length of the pathname of the link */ 12 87 2 pathname_index fixed binary (18) unsigned unaligned; 12 88 /* index of start of pathname in star_list_names */ 12 89 12 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 12 91 12 92 declare star_list_names char (32) based (star_list_names_ptr) 12 93 dimension (star_links (star_branch_count + star_link_count).nindex 12 94 + star_links (star_branch_count + star_link_count).nnames 12 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 12 96 * binary ( 12 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 12 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 12 99 12 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 12 101 12 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 12 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 12 104 12 105 /* internal static */ 12 106 12 107 /* star_select_sw values */ 12 108 12 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 12 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 12 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 12 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 12 113 fixed binary (3) internal static options (constant) initial (5); 12 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 12 115 fixed binary (3) internal static options (constant) initial (7); 12 116 12 117 /* storage system types */ 12 118 12 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 12 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 12 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 12 122 12 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 1082 13 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 13 2 /* format: style2,^inddcls,idind32 */ 13 3 13 4 declare 1 terminate_file_switches based, 13 5 2 truncate bit (1) unaligned, 13 6 2 set_bc bit (1) unaligned, 13 7 2 terminate bit (1) unaligned, 13 8 2 force_write bit (1) unaligned, 13 9 2 delete bit (1) unaligned; 13 10 13 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 13 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 13 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 13 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 13 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 13 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 13 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 13 18 13 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 1083 1084 1085 end display_comp_dsm; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/16/88 1411.9 display_comp_dsm.pl1 >spec>install>MR12.2-1023>display_comp_dsm.pl1 1071 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 1072 2 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 1073 3 03/01/85 1411.9 comp_dvid.incl.pl1 >ldd>include>comp_dvid.incl.pl1 1074 4 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 1075 5 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 1076 6 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 1077 7 04/23/85 1347.0 comp_font.incl.pl1 >ldd>include>comp_font.incl.pl1 1078 8 11/24/86 1226.9 definition_dcls.incl.pl1 >ldd>include>definition_dcls.incl.pl1 1079 9 08/05/77 1022.5 object_info.incl.pl1 >ldd>include>object_info.incl.pl1 1080 10 01/09/79 1617.9 sl_control_s.incl.pl1 >ldd>include>sl_control_s.incl.pl1 1081 11 02/16/88 1407.4 sl_info.incl.pl1 >spec>install>MR12.2-1023>sl_info.incl.pl1 1082 12 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.incl.pl1 1083 13 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ACC based structure level 1 dcl 238 ACCptr 010764 automatic pointer dcl 237 set ref 305* 306 306 310 314 314 332* 334 334 339 343 343 CLASS_TEXT constant fixed bin(3,0) initial unsigned dcl 8-25 ref 306 334 DSNAME 000006 constant char(16) initial unaligned dcl 50 ref 107 871 LSNAME 000002 constant char(16) initial unaligned dcl 61 ref 115 131 R_ACCESS 000115 constant bit(3) initial unaligned dcl 1-11 set ref 265* TERM_FILE_TERM 000000 constant bit(3) initial unaligned dcl 13-14 set ref 823* addr builtin function dcl 77 ref 117 147 147 171 171 189 189 274 274 addrel builtin function dcl 252 ref 293 305 311 317 332 340 345 after builtin function dcl 77 ref 334 arg based char unaligned dcl 832 set ref 894 897 897 900 900 906* 916* 920* 927 927 930 930 939* 947 954 955 960* 992 995 995 1001 1001 1011 1014 1014 1027* 1033* 1037* 1041 argct 014060 automatic fixed bin(17,0) dcl 833 set ref 862* 874 888 903 986 1006 argl 014061 automatic fixed bin(21,0) dcl 834 set ref 889* 894 897 897 900 900 906 906 915* 916 916 920 920 927 927 930 930 939 939 947 954 955 955 960 960 987* 992 995 995 1001 1001 1010* 1011 1014 1014 1027 1027 1033 1033 1037 1037 1041 argno 014062 automatic fixed bin(17,0) dcl 835 set ref 888* 889* 903 914* 914 915* 969* 986* 987* 1006 1009* 1009 1010* argp 014064 automatic pointer dcl 836 set ref 889* 894 897 897 900 900 906 915* 916 920 927 927 930 930 939 947 954 955 960 987* 992 995 995 1001 1001 1010* 1011 1014 1014 1027 1033 1037 1041 atd_r 73 based bit(18) level 2 dcl 4-19 ref 427 430 avg_wsp 5 based fixed bin(17,0) level 2 dcl 7-68 set ref 533* bach_sw 013734 automatic bit(1) unaligned dcl 649 set ref 657* 664 670 before builtin function dcl 77 ref 300 314 343 511 511 518 518 954 bitcount 010766 automatic fixed bin(24,0) dcl 241 set ref 265* 274* charv based varying char(5000) dcl 404 set ref 438* charvp 013710 automatic pointer dcl 403 set ref 437* 438 check_star_name_$entry 000070 constant entry external dcl 847 ref 1033 class 1(33) based fixed bin(3,0) level 2 packed unsigned unaligned dcl 8-72 ref 306 334 cleanup 010534 stack reference condition dcl 80 ref 129 cleanup_r 76 based bit(18) level 2 dcl 4-19 ref 441 444 code 000100 automatic fixed bin(35,0) dcl 45 set ref 137* 138 141* 147* 151 154* 171* 173 176* 189* 193 193 193 193* 198 219* 221 224* 265* 269* 274* 275 278* 411* 823* 824 824* 862* 863 883* 884 889* 891 915* 916* 917 969* 987* 989 1010* 1051* 1053 1056* colwidth 000101 automatic fixed bin(17,0) dcl 46 set ref 542* 544* 564 564 com_err_ 000024 constant entry external dcl 93 ref 141 154 176 193 224 269 278 286 319 360 511 518 824 866 877 906 920 939 960 969 977 1027 1037 1056 comment_r 75 based bit(18) level 2 dcl 4-19 ref 434 437 comp_dvid based structure level 1 dcl 3-17 comp_dvid_version 000037 constant fixed bin(17,0) initial dcl 3-14 set ref 357 421* comp_dvt based structure level 1 dcl 4-19 comp_util_$display 000046 constant entry external dcl 5-77 ref 533 533 552 811 compstat$compconst 000042 external static structure level 1 dcl 2-14 const based structure level 1 dcl 2-23 count based fixed bin(17,0) level 2 dcl 7-56 ref 503 506 705 731 cu_$af_arg_count 000072 constant entry external dcl 849 ref 862 cu_$arg_ptr 000074 constant entry external dcl 851 ref 889 915 987 1010 cv_dec_check_ 000076 constant entry external dcl 852 ref 916 data_ct based fixed bin(17,0) level 2 dcl 7-92 ref 546 debug 010533 automatic bit(1) level 2 packed unaligned dcl 69 set ref 159 203 661 682 717 722 739 933* 998* decat builtin function dcl 838 ref 955 def_list_relp based fixed bin(18,0) level 2 packed unsigned unaligned dcl 8-58 ref 293 def_vmb 37 based fixed bin(31,0) level 2 dcl 4-19 ref 448 def_vmf 36 based fixed bin(31,0) level 2 dcl 4-19 ref 448 def_vmh 35 based fixed bin(31,0) level 2 dcl 4-19 ref 448 def_vmt 34 based fixed bin(31,0) level 2 dcl 4-19 ref 448 definition based structure level 1 dcl 8-72 definition_flags based structure level 1 packed unaligned dcl 8-42 definition_header based structure level 1 dcl 8-58 defp 4 010772 automatic pointer level 2 dcl 243 set ref 293 293 305 317 327 332 345 defptr 010770 automatic pointer dcl 242 set ref 293* 301* 301 301* 305 306 311* 317 328* 328 328* 332 334 340* 345 devclass based char(32) level 2 dcl 4-19 set ref 406* device 0(01) 010533 automatic bit(1) level 2 packed unaligned dcl 69 set ref 125* 297 408 897* devptr 140 based pointer level 3 dcl 2-23 set ref 391* 406 411 427 430 434 437 441 444 448 448 448 448 454 457 460 463 466 466 466 468 469 470 470 472 472 474 474 477 479 481 483 484 484 497 498 501 528 529 530 531 539 655 656 681 690 692 692 810 didmem 010542 automatic bit(1) array unaligned dcl 1065 set ref 704* 706 730* 746* dname 000102 automatic char(168) unaligned dcl 47 set ref 137* 145* 145* 147* 154* 181* 183 189* 193* 201* 219* 264* 265* dsminfo 010772 automatic structure level 1 unaligned dcl 243 set ref 274 274 dsmpath 000154 automatic char(200) unaligned dcl 48 set ref 137* 141* 219* 224* 264* 269* 278* 286* 319* 360* 824* 860* 947 947* 974 1011* 1018* dsmptr 000236 automatic pointer dcl 49 set ref 263* 265* 266 274* 823* dvidptr 12 011072 automatic pointer array level 2 in structure "objseg" dcl 246 in procedure "show_dsm" set ref 311* 327* 340* 348* 354 368 368 374 374 390 dvidptr 142 based pointer level 3 in structure "const" dcl 2-23 in procedure "dcdsm" set ref 311* 313 340* 342 354* 357 357 390* 391 391 421 437 501 530 656 dvt_r 11 based bit(18) level 2 dcl 3-17 ref 313 342 391 dvtcount 011060 automatic fixed bin(17,0) dcl 244 set ref 292* 309* 309 310 311 313 314 338* 338 339 340 342 343 348 350 352 373 383 dvtname 011061 automatic varying char(32) dcl 245 set ref 300* 306 319* 511 511 518 518 dvtptr 14 011072 automatic pointer array level 2 dcl 246 set ref 313* 342* 350* 374 374 e 1 based structure array level 2 in structure "member" unaligned dcl 7-56 in procedure "dcdsm" e 1 based structure array level 2 in structure "oput" packed unaligned dcl 7-92 in procedure "dcdsm" ename 000240 automatic char(32) unaligned dcl 52 set ref 137* 145* 164* 208* 219* 264* 265* 300 error 0(02) 010533 automatic bit(1) level 2 packed unaligned dcl 69 set ref 122 867* 879* 909* 922* 941* 962* 970* 978* 1028* 1038* 1057* error_table_$badopt 000062 external static fixed bin(35,0) dcl 840 set ref 939* error_table_$improper_data_format 000050 external static fixed bin(35,0) dcl 254 set ref 286* error_table_$name_not_found 000012 external static fixed bin(35,0) dcl 82 set ref 511* 518* error_table_$no_dir 000014 external static fixed bin(35,0) dcl 84 ref 193 error_table_$no_ext_sym 000016 external static fixed bin(35,0) dcl 86 set ref 319* error_table_$noarg 000064 external static fixed bin(35,0) dcl 842 set ref 877* 906* 977* error_table_$nomatch 000020 external static fixed bin(35,0) dcl 88 ref 193 198 error_table_$unimplemented_version 000022 external static fixed bin(35,0) dcl 90 set ref 360* expand_pathname_ 000026 constant entry external dcl 94 ref 137 expand_pathname_$add_suffix 000030 constant entry external dcl 96 ref 219 1051 f 013720 automatic fixed bin(17,0) dcl 493 set ref 497* 498 501* family 124 based structure array level 2 dcl 4-19 family_ct 123 based fixed bin(17,0) level 2 dcl 4-19 ref 497 655 690 familyname 000250 automatic char(32) unaligned dcl 53 set ref 125 413 498 511* 518* 523* 526* 860* 950 954* first 010706 automatic bit(1) unaligned dcl 1066 set ref 654* 658 689* 700* 709 729* 749* 763* fntstk_entry based structure level 1 dcl 6-6 fnttbl_ptr 010712 automatic pointer initial dcl 7-13 set ref 7-13* font based structure level 1 unaligned dcl 7-68 font_ptr 010716 automatic pointer dcl 7-67 set ref 528* 529 533 533 533 533 533 539 font_r 1 based bit(18) array level 3 packed unaligned dcl 7-56 set ref 528 664* 717* 732 732 footsep 3 based char(1) level 2 packed unaligned dcl 7-68 ref 533 format 24 010772 automatic structure level 2 packed unaligned dcl 243 forward_relp based fixed bin(18,0) level 2 packed unsigned unaligned dcl 8-72 ref 301 317 328 345 get_line_length_$switch 000100 constant entry external dcl 854 ref 883 get_wdir_ 000102 constant entry external dcl 856 ref 1018 hcs_$star_ 000032 constant entry external dcl 99 ref 147 189 i 000260 automatic fixed bin(17,0) dcl 54 set ref 183* 183* 186 352* 354 354 368 368 368 373 374 374 383 385 389 390* indent parameter fixed bin(17,0) dcl 776 in procedure "put_str" ref 773 785 indent 000261 automatic fixed bin(17,0) dcl 55 in procedure "dcdsm" set ref 677* 695* 713* 736* 760* 886* 934* index builtin function dcl 838 ref 894 992 init_family 53 based char(32) level 2 dcl 4-19 set ref 466* init_member 63 based char(32) level 2 dcl 4-19 set ref 466* init_ps 43 based fixed bin(31,0) level 2 dcl 4-19 ref 466 initiate_file_ 000052 constant entry external dcl 257 ref 265 interleave 120 based bit(1) level 3 packed unaligned dcl 4-19 set ref 468* ioa_ 000044 constant entry external dcl 2-70 ref 159 201 203 378 406 421 425 431 438 445 448 454 457 460 463 466 468 469 470 472 474 477 479 481 483 484 523 526 533 568 714 761 784 ioa_$nnl 000054 constant entry external dcl 259 ref 368 389 ioa_$rsnnl 000034 constant entry external dcl 101 ref 664 717 iox_$user_output 000066 external static pointer dcl 844 set ref 883* ipath 000262 automatic fixed bin(17,0) dcl 56 set ref 180* 181 183 186* istar 000263 automatic fixed bin(17,0) dcl 57 set ref 163* 164* 207* 208* j 013735 automatic fixed bin(17,0) dcl 650 in procedure "show_families" set ref 655* 656 681 686 690 692 692* j 010707 automatic fixed bin(17,0) dcl 1067 in procedure "dcdsm" set ref 373* 374 374 378* k 010710 automatic fixed bin(17,0) dcl 1068 set ref 705* 706 721 726 730 731 732* kk 010711 automatic fixed bin(17,0) dcl 1069 set ref 546* 547 550 550 550 552 553 559* 731* 732 738 743 746* len based fixed bin(8,0) level 2 packed unaligned dcl 238 ref 306 314 334 343 length builtin function dcl 495 in procedure "show_a_font" ref 564 length builtin function dcl 652 in procedure "show_families" ref 667 length builtin function dcl 77 in procedure "dcdsm" ref 778 778 lettersp 44 based fixed bin(31,0) level 2 dcl 4-19 set ref 469* linea 000264 automatic varying char(200) dcl 58 set ref 431* 445* 540* 550* 550 552* 552 553* 553 558* 558 562* 562 564* 664* 666* 667* 667 667 669* 670* 670 672* 672 676* 676 678* 680* 680 681* 681 685* 685 686* 686 687* 687 712* 712 717* 719* 720* 720 721* 721 725* 725 726* 726 727* 727 735* 735 737* 738* 738 742* 742 743* 743 744* 744 759* 759 778 788 790 791* 798* 812* 812 813* 813 lineb 000347 automatic varying char(200) dcl 59 set ref 127* 564 568 568* 714* 715* 761* 762* 778 781 784* 785* 787* 788* 788 790* 790 lined 013766 automatic varying char(200) dcl 808 set ref 811* 812 linelength 000432 automatic fixed bin(17,0) dcl 60 set ref 778 883* 884* 916* link_init based structure level 1 dcl 8-205 long 0(03) 010533 automatic bit(1) level 2 packed unaligned dcl 69 set ref 125 418 542 555 927* m 013721 automatic fixed bin(17,0) dcl 493 set ref 506* 507* 528 max_files 46 based fixed bin(17,0) level 2 dcl 4-19 set ref 472 472* max_pages 45 based fixed bin(17,0) level 2 dcl 4-19 set ref 470 470* max_wsp 6 based fixed bin(17,0) level 2 dcl 7-68 set ref 533* me 000433 automatic varying char(16) dcl 63 set ref 107* 115* 131 141* 154* 176* 193* 224* 269* 278* 286* 319* 360* 511* 518* 824* 866* 871 877* 906* 920* 939* 960* 969* 977* 1027* 1037* 1056* med_sel based structure level 1 unaligned dcl 7-116 med_sel_p 010730 automatic pointer dcl 7-115 set ref 531* 533 533 533 medchar_sel based structure level 1 unaligned dcl 7-110 medchar_sel_p 010726 automatic pointer dcl 7-109 set ref 810* 811 811 medsel_table based structure level 1 unaligned dcl 7-86 medsel_table_ptr 010722 automatic pointer dcl 7-84 set ref 530* 531 medsel_table_r 77 based bit(18) level 2 dcl 4-19 ref 530 member based structure level 1 unaligned dcl 7-56 member_ptr 010714 automatic pointer dcl 7-55 set ref 501* 503 503 506 507 528 656* 657 664 701 705 717 721 731 732 732 738 member_r 124 based bit(18) array level 3 dcl 4-19 ref 501 656 692 692 membername 000440 automatic char(32) unaligned dcl 64 set ref 503 503* 507 511* 523 526* 860* 955* min_WS 30 based fixed bin(31,0) level 2 dcl 4-19 ref 460 min_lead 31 based fixed bin(31,0) level 2 dcl 4-19 ref 463 min_wsp 4 based fixed bin(17,0) level 2 dcl 7-68 set ref 533* name 125 based char(32) array level 3 in structure "comp_dvt" dcl 4-19 in procedure "dcdsm" ref 498 681 name 2 011072 automatic char(32) array level 2 in structure "objseg" packed unaligned dcl 246 in procedure "show_dsm" set ref 314* 343* 368* 378* 389* name 5 based char(32) array level 3 in structure "member" packed unaligned dcl 7-56 in procedure "dcdsm" ref 503 507 657 701 721 738 name_relp 2 based fixed bin(18,0) level 2 packed unsigned unaligned dcl 8-72 ref 305 332 nindex 0(18) based fixed bin(18,0) array level 2 packed unsigned unaligned dcl 12-27 ref 164 208 nnames 0(02) based fixed bin(16,0) array level 2 packed unsigned unaligned dcl 12-27 ref 159 203 null builtin function dcl 77 ref 171 171 7-13 263 266 348 350 num_paths 1 based fixed bin(17,0) level 2 dcl 11-15 ref 180 object_info based structure level 1 dcl 9-6 object_info_$brief 000056 constant entry external dcl 260 ref 274 object_info_version_2 constant fixed bin(17,0) initial dcl 9-60 ref 273 objseg 011072 automatic structure array level 1 unaligned dcl 246 open_mode 121 based fixed bin(35,0) level 2 dcl 4-19 ref 483 oput based structure level 1 unaligned dcl 7-92 oput_p 010724 automatic pointer dcl 7-91 set ref 529* 531 546 547 559 oput_r based bit(18) level 2 dcl 7-68 ref 529 outproc 10 based entry variable level 2 dcl 4-19 ref 411 path 0(04) 010533 automatic bit(1) level 2 packed unaligned dcl 69 set ref 134 1004* 1017* pathname 17 based char(168) array level 3 packed unaligned dcl 11-15 ref 181 183 pathname_ 000036 constant entry external dcl 102 ref 145 264 paths 14 based structure array level 2 dcl 11-15 pdl_max 41 based fixed bin(31,0) level 2 dcl 4-19 set ref 474 474 484 484* pdw_max 40 based fixed bin(31,0) level 2 dcl 4-19 ref 477 ptr 000042 external static pointer level 2 in structure "compstat$compconst" dcl 2-14 in procedure "dcdsm" set ref 117* 117 311 313 340 342 354 357 357 390 391 391 391 406 411 421 427 430 434 437 437 441 444 448 448 448 448 454 457 460 463 466 466 466 468 469 470 470 472 472 474 474 477 479 481 483 484 484 497 498 501 501 528 529 530 530 531 539 655 656 656 681 690 692 692 810 ptr builtin function dcl 77 in procedure "dcdsm" ref 313 327 342 501 528 529 530 539 656 810 ptrs 126 based structure level 2 dcl 2-23 ref_r 1 based bit(18) array level 2 dcl 7-86 ref 531 rel_units 2 based fixed bin(17,0) level 2 dcl 7-68 set ref 533* search_paths_$get 000040 constant entry external dcl 103 ref 171 size builtin function dcl 77 ref 159 159 203 203 sl_control_default 000001 constant bit(36) initial unaligned dcl 10-13 set ref 171* sl_info based structure level 1 dcl 11-15 sl_info_area 000450 automatic area(2048) dcl 65 set ref 65* 171 171 sl_info_p 010732 automatic pointer dcl 11-28 set ref 171* 180 181 183 sl_info_version_1 000122 constant fixed bin(17,0) initial dcl 11-29 set ref 171* standard 24(04) 010772 automatic bit(1) level 3 packed unaligned dcl 243 set ref 283 star_ALL_ENTRIES 000120 constant fixed bin(2,0) initial dcl 12-111 set ref 147* 189* star_area 004450 automatic area(2048) dcl 66 set ref 66* 147 147 189 189 star_code 010450 automatic fixed bin(35,0) dcl 67 set ref 859* 1033* 1034 1037* star_entries based structure array level 1 dcl 12-27 ref 159 203 star_entry_count 010734 automatic fixed bin(17,0) dcl 12-14 set ref 147* 159 159 163 189* 203 203 207 star_entry_ptr 010736 automatic pointer dcl 12-15 set ref 147* 159 159 164 189* 203 203 208 star_names based char(32) array unaligned dcl 12-37 ref 159 164 203 208 star_names_ptr 010740 automatic pointer dcl 12-19 set ref 147* 159 164 189* 203 208 starname 010451 automatic char(200) unaligned dcl 68 set ref 147* 189* 984* 1024 1041* 1047 1047* 1051* 1051* str 1 based char level 2 in structure "med_sel" packed unaligned dcl 7-116 in procedure "dcdsm" ref 533 str 1 based char level 2 in structure "medchar_sel" packed unaligned dcl 7-110 in procedure "dcdsm" ref 811 str_l based fixed bin(17,0) level 2 in structure "medchar_sel" dcl 7-110 in procedure "dcdsm" ref 811 str_l based fixed bin(17,0) level 2 in structure "med_sel" dcl 7-116 in procedure "dcdsm" ref 533 533 str_r parameter bit(18) unaligned dcl 803 ref 795 800 810 string 0(09) based char level 2 packed unaligned dcl 238 ref 306 314 334 343 substr builtin function dcl 77 ref 533 sum builtin function dcl 77 ref 159 203 sws 120 based structure level 2 in structure "comp_dvt" packed unaligned dcl 4-19 in procedure "dcdsm" sws 010533 automatic structure level 1 packed unaligned dcl 69 in procedure "dcdsm" set ref 858* symbolptr 011072 automatic pointer array level 2 dcl 246 set ref 310* 339* terminate_file_ 000060 constant entry external dcl 820 ref 823 textp 2 010772 automatic pointer level 2 dcl 243 set ref 311 313 340 342 thing_relp 1 based fixed bin(18,0) level 2 packed unsigned unaligned dcl 8-72 ref 311 340 units based fixed bin(17,0) array dcl 7-81 ref 553 units_ptr 010720 automatic pointer dcl 7-80 set ref 539* 553 units_r 1 based bit(18) level 2 dcl 7-68 ref 539 unspec builtin function dcl 77 set ref 858* version based fixed bin(17,0) level 2 dcl 3-17 set ref 357 357 421* version_number 010772 automatic fixed bin(17,0) level 2 dcl 243 set ref 273* vmb_min 33 based fixed bin(31,0) level 2 dcl 4-19 ref 457 479 vmt_min 32 based fixed bin(31,0) level 2 dcl 4-19 ref 454 481 what_r 1(18) based bit(18) array level 3 packed unaligned dcl 7-92 set ref 547 559* which 1 based fixed bin(17,0) array level 3 packed unaligned dcl 7-92 ref 531 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSOLUTE_PATH internal static fixed bin(17,0) initial dcl 11-33 A_ACCESS internal static bit(3) initial unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 CLASS_HEAP internal static fixed bin(3,0) initial unsigned dcl 8-25 CLASS_LINKAGE internal static fixed bin(3,0) initial unsigned dcl 8-25 CLASS_NAMES internal static char(12) initial array unaligned dcl 8-35 CLASS_SEGNAME internal static fixed bin(3,0) initial unsigned dcl 8-25 CLASS_STATIC internal static fixed bin(3,0) initial unsigned dcl 8-25 CLASS_SYMBOL internal static fixed bin(3,0) initial unsigned dcl 8-25 CLASS_SYSTEM internal static fixed bin(3,0) initial unsigned dcl 8-25 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-33 E_ACCESS internal static bit(3) initial unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 HOME_DIR internal static fixed bin(17,0) initial dcl 11-38 INITIATED_SEGS internal static fixed bin(17,0) initial dcl 11-39 INIT_COPY_INFO internal static fixed bin(17,0) initial dcl 8-194 INIT_DEFERRED internal static fixed bin(17,0) initial dcl 8-194 INIT_DEFINE_AREA internal static fixed bin(17,0) initial dcl 8-194 INIT_LIST_TEMPLATE internal static fixed bin(17,0) initial dcl 8-194 INIT_NO_INIT internal static fixed bin(17,0) initial dcl 8-194 LINK_CREATE_IF_NOT_FOUND internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 LINK_OBSOLETE_2 internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 LINK_REFNAME_BASE internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 LINK_REFNAME_OFFSETNAME internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 LINK_SELF_BASE internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 LINK_SELF_OFFSETNAME internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 LINK_TYPE_NAMES internal static varying char(32) initial array dcl 8-153 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 2-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 2-18 M_ACCESS internal static bit(3) initial unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 PROCESS_DIR internal static fixed bin(17,0) initial dcl 11-37 REFERENCING_DIR internal static fixed bin(17,0) initial dcl 11-35 REW_ACCESS internal static bit(3) initial unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SECTION_HEAP internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 SECTION_LINK internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 SECTION_STATIC internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 SECTION_SYMBOL internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 SECTION_SYSTEM internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 SECTION_TEXT internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 SECTION_UNUSED internal static fixed bin(18,0) initial unsigned unaligned dcl 8-134 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SYMBOLIC_SECTION_NAMES internal static char(8) initial array unaligned dcl 8-38 S_ACCESS internal static bit(3) initial unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 TERM_FILE_BC internal static bit(2) initial unaligned dcl 13-12 TERM_FILE_DELETE internal static bit(5) initial unaligned dcl 13-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial unaligned dcl 13-16 TERM_FILE_TRUNC internal static bit(1) initial unaligned dcl 13-11 TERM_FILE_TRUNC_BC internal static bit(2) initial unaligned dcl 13-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial unaligned dcl 13-15 UNEXPANDED_PATH internal static fixed bin(17,0) initial dcl 11-34 WORKING_DIR internal static fixed bin(17,0) initial dcl 11-36 W_ACCESS internal static bit(3) initial unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 acc_string based structure level 1 dcl 8-327 acc_string_length automatic fixed bin(21,0) dcl 8-334 acc_string_ptr automatic pointer dcl 8-326 binary builtin function dcl 77 bins based fixed bin(3,0) array unsigned unaligned dcl 806 bitname internal static varying char(16) initial array dcl 572 ch automatic char(1) unaligned dcl 805 comp_ 000000 constant entry external dcl 5-7 comp_art_ 000000 constant entry external dcl 5-8 comp_block_ctls_ 000000 constant entry external dcl 5-9 comp_break_ 000000 constant entry external dcl 5-11 comp_break_ctls_ 000000 constant entry external dcl 5-12 comp_ctls_ 000000 constant entry external dcl 5-14 comp_eject_page_ 000000 constant entry external dcl 5-15 comp_expr_eval_ 000000 constant entry external dcl 5-17 comp_extr_str_ 000000 constant entry external dcl 5-21 comp_fill_ 000000 constant entry external dcl 5-24 comp_font_ 000000 constant entry external dcl 5-25 comp_format_ctls_ 000000 constant entry external dcl 5-26 comp_get_file_$find 000000 constant entry external dcl 5-28 comp_get_file_$open 000000 constant entry external dcl 5-31 comp_head_page_ 000000 constant entry external dcl 5-33 comp_hft_ctls_ 000000 constant entry external dcl 5-35 comp_hft_ctls_$title 000000 constant entry external dcl 5-36 comp_ht_n_entries automatic fixed bin(17,0) dcl 8-297 comp_ht_ptr automatic pointer dcl 8-288 comp_init_$one 000000 constant entry external dcl 5-38 comp_init_$three 000000 constant entry external dcl 5-40 comp_init_$two 000000 constant entry external dcl 5-39 comp_insert_ctls_ 000000 constant entry external dcl 5-42 comp_make_page_ 000000 constant entry external dcl 5-44 comp_make_page_$cleanup 000000 constant entry external dcl 5-46 comp_measure_ 000000 constant entry external dcl 5-48 comp_read_$line 000000 constant entry external dcl 5-57 comp_read_$name 000000 constant entry external dcl 5-50 comp_read_$number 000000 constant entry external dcl 5-53 comp_report_ 000000 constant entry external dcl 5-59 comp_report_$ctlstr 000000 constant entry external dcl 5-61 comp_report_$exact 000000 constant entry external dcl 5-64 comp_space_ 000000 constant entry external dcl 5-66 comp_tbl_ctls_ 000000 constant entry external dcl 5-68 comp_title_block_ 000000 constant entry external dcl 5-69 comp_update_symbol_ 000000 constant entry external dcl 5-71 comp_use_ref_ 000000 constant entry external dcl 5-74 comp_util_$add_text 000000 constant entry external dcl 5-75 comp_util_$escape 000000 constant entry external dcl 5-80 comp_util_$getblk 000000 constant entry external dcl 5-82 comp_util_$num_display 000000 constant entry external dcl 5-84 comp_util_$pageno 000000 constant entry external dcl 5-86 comp_util_$pictures 000000 constant entry external dcl 5-88 comp_util_$pop 000000 constant entry external dcl 5-91 comp_util_$push 000000 constant entry external dcl 5-92 comp_util_$relblk 000000 constant entry external dcl 5-94 comp_util_$replace_text 000000 constant entry external dcl 5-96 comp_util_$search_tree 000000 constant entry external dcl 5-98 comp_util_$set_bin 000000 constant entry external dcl 5-100 comp_util_$set_net_page 000000 constant entry external dcl 5-104 comp_util_$translate 000000 constant entry external dcl 5-106 comp_write_block_ 000000 constant entry external dcl 5-108 comp_write_page_ 000000 constant entry external dcl 5-110 component_ht based structure level 1 dcl 8-289 compose_severity_ external static fixed bin(35,0) dcl 5-5 const_version internal static fixed bin(35,0) initial dcl 2-17 def_header_ptr automatic pointer dcl 8-57 def_ht_n_entries automatic fixed bin(17,0) dcl 8-284 def_ht_ptr automatic pointer dcl 8-277 def_ptr automatic pointer dcl 8-71 definition_ht based structure level 1 dcl 8-278 dup_table_n_names automatic fixed bin(17,0) dcl 8-310 dup_table_ptr automatic pointer dcl 8-301 duplicate_table based structure level 1 dcl 8-302 exp_ptr automatic pointer dcl 8-128 exp_word based structure level 1 dcl 8-129 fntstk_eptr automatic pointer dcl 6-5 fnttbl based structure level 1 dcl 7-14 fnttbldata based structure level 1 dcl 7-7 ioa_$nnl 000000 constant entry external dcl 2-70 iox_$error_output external static pointer dcl 2-74 iox_$user_input external static pointer dcl 2-74 iox_$user_output external static pointer dcl 2-74 kkk automatic fixed bin(17,0) dcl 807 link_init_copy_info based structure level 1 dcl 8-211 link_init_deferred based structure level 1 dcl 8-270 link_init_list_template based structure level 1 dcl 8-219 link_init_n_bits_in_datum automatic fixed bin(35,0) dcl 8-261 link_init_n_words automatic fixed bin(17,0) dcl 8-215 link_init_n_words_in_list automatic fixed bin(17,0) dcl 8-226 link_init_ptr automatic pointer dcl 8-204 link_trap_pair based structure level 1 dcl 8-177 link_trap_ptr automatic pointer dcl 8-176 list_template_entry based structure level 1 dcl 8-239 medchar based varying char dcl 7-113 medsel based char(12) array unaligned dcl 7-36 msf_map based structure level 1 dcl 8-318 msf_map_ptr automatic pointer dcl 8-317 msf_map_version_1 internal static char(8) initial unaligned dcl 8-323 pointer_init_template based structure level 1 packed unaligned dcl 8-253 rank builtin function dcl 77 repl_str based structure level 1 unaligned dcl 7-30 repl_str_ptr automatic pointer dcl 7-29 replstr based varying char(256) dcl 7-33 segname_definition based structure level 1 dcl 8-90 segname_ptr automatic pointer dcl 8-89 sizel based structure level 1 unaligned dcl 7-103 sizel_p automatic pointer dcl 7-102 siztbl based structure level 1 unaligned dcl 7-38 sl_control automatic bit(36) unaligned dcl 10-12 sl_control_s based structure level 1 packed unaligned dcl 10-3 sl_info_num_paths automatic fixed bin(17,0) dcl 11-27 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 12-114 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 12-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 12-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 12-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 12-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 12-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 12-120 star_branch_count automatic fixed bin(17,0) dcl 12-13 star_dir_list_branch based structure array level 1 dcl 12-59 star_link_count automatic fixed bin(17,0) dcl 12-17 star_link_pathname based char unaligned dcl 12-102 star_links based structure array level 1 dcl 12-76 star_linkx automatic fixed bin(17,0) dcl 12-18 star_list_branch based structure array level 1 dcl 12-41 star_list_branch_ptr automatic pointer dcl 12-16 star_list_names based char(32) array unaligned dcl 12-92 star_list_names_ptr automatic pointer dcl 12-20 star_select_sw automatic fixed bin(3,0) dcl 12-21 sys_info$max_seg_size external static fixed bin(18,0) dcl 2-80 terminate_file_switches based structure level 1 packed unaligned dcl 13-4 type_pair based structure level 1 dcl 8-160 type_ptr automatic pointer dcl 8-159 NAMES DECLARED BY EXPLICIT CONTEXT. badopt 007461 constant label dcl 939 ref 1014 clean 006747 constant entry internal dcl 817 ref 129 279 288 321 362 397 dcdsm 000716 constant entry external dcl 15 display_comp_dsm 000726 constant entry external dcl 15 display_new_str 006607 constant entry internal dcl 795 ref 430 444 display_str 006613 constant entry internal dcl 800 ref 559 found 004652 constant label dcl 523 in procedure "show_a_font" ref 507 found 002770 constant label dcl 385 in procedure "show_dsm" ref 379 found_device 002574 constant label dcl 348 set ref 315 join 000766 constant label dcl 117 ref 109 lcdsm 000743 constant entry external dcl 111 list_comp_dsm 000753 constant entry external dcl 111 missing_arg 007266 constant label dcl 906 ref 1006 proc_args 007037 constant entry internal dcl 829 ref 120 put_str 006472 constant entry internal dcl 773 ref 563 677 695 713 736 760 show_a_font 004425 constant entry internal dcl 490 ref 413 show_dsm 002030 constant entry internal dcl 234 ref 165 209 229 show_dvt 003041 constant entry internal dcl 400 ref 383 show_families 005426 constant entry internal dcl 646 ref 487 show_members 005763 constant entry internal dcl 697 ref 690 692 NAMES DECLARED BY CONTEXT OR IMPLICATION. byte builtin function ref 550 552 char builtin function ref 553 686 726 743 copy builtin function ref 564 667 785 dec builtin function ref 448 448 448 448 454 457 460 463 466 474 477 479 481 empty builtin function ref 65 66 ltrim builtin function ref 553 686 726 743 788 mod builtin function ref 564 pointer builtin function ref 391 437 531 rtrim builtin function ref 681 721 738 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 11000 11104 10373 11010 Length 11700 10373 104 557 405 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dcdsm 6754 external procedure is an external procedure. on unit on line 129 64 on unit show_dsm internal procedure shares stack frame of external procedure dcdsm. show_dvt internal procedure shares stack frame of external procedure dcdsm. show_a_font internal procedure shares stack frame of external procedure dcdsm. show_families internal procedure shares stack frame of external procedure dcdsm. show_members internal procedure shares stack frame of external procedure dcdsm. put_str internal procedure shares stack frame of external procedure dcdsm. display_new_str internal procedure shares stack frame of external procedure dcdsm. clean 102 internal procedure is called by several nonquick procedures. proc_args internal procedure shares stack frame of external procedure dcdsm. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dcdsm 000100 code dcdsm 000101 colwidth dcdsm 000102 dname dcdsm 000154 dsmpath dcdsm 000236 dsmptr dcdsm 000240 ename dcdsm 000250 familyname dcdsm 000260 i dcdsm 000261 indent dcdsm 000262 ipath dcdsm 000263 istar dcdsm 000264 linea dcdsm 000347 lineb dcdsm 000432 linelength dcdsm 000433 me dcdsm 000440 membername dcdsm 000450 sl_info_area dcdsm 004450 star_area dcdsm 010450 star_code dcdsm 010451 starname dcdsm 010533 sws dcdsm 010542 didmem dcdsm 010706 first dcdsm 010707 j dcdsm 010710 k dcdsm 010711 kk dcdsm 010712 fnttbl_ptr dcdsm 010714 member_ptr dcdsm 010716 font_ptr dcdsm 010720 units_ptr dcdsm 010722 medsel_table_ptr dcdsm 010724 oput_p dcdsm 010726 medchar_sel_p dcdsm 010730 med_sel_p dcdsm 010732 sl_info_p dcdsm 010734 star_entry_count dcdsm 010736 star_entry_ptr dcdsm 010740 star_names_ptr dcdsm 010764 ACCptr show_dsm 010766 bitcount show_dsm 010770 defptr show_dsm 010772 dsminfo show_dsm 011060 dvtcount show_dsm 011061 dvtname show_dsm 011072 objseg show_dsm 013710 charvp show_dvt 013720 f show_a_font 013721 m show_a_font 013734 bach_sw show_families 013735 j show_families 013766 lined display_new_str 014060 argct proc_args 014061 argl proc_args 014062 argno proc_args 014064 argp proc_args THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp cat_realloc_chars call_ent_var call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mpfx2 mdfx1 enable_op shorten_stack ext_entry int_entry set_chars_eis op_empty_ index_before_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_star_name_$entry com_err_ comp_util_$display cu_$af_arg_count cu_$arg_ptr cv_dec_check_ expand_pathname_ expand_pathname_$add_suffix get_line_length_$switch get_wdir_ hcs_$star_ initiate_file_ ioa_ ioa_$nnl ioa_$rsnnl object_info_$brief pathname_ pl1_decat_char_ search_paths_$get terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. compstat$compconst error_table_$badopt error_table_$improper_data_format error_table_$name_not_found error_table_$no_dir error_table_$no_ext_sym error_table_$noarg error_table_$nomatch error_table_$unimplemented_version iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 65 000703 66 000706 7 13 000711 15 000715 107 000734 109 000741 111 000742 115 000761 117 000766 120 000771 122 000772 125 000775 127 001006 129 001007 131 001031 134 001036 137 001041 138 001066 141 001070 143 001120 145 001121 147 001141 151 001206 154 001210 156 001240 159 001241 163 001315 164 001325 165 001336 166 001337 167 001341 171 001342 173 001413 176 001415 177 001441 180 001442 181 001453 183 001461 184 001500 186 001502 189 001505 193 001552 198 001611 201 001614 203 001635 207 001711 208 001721 209 001732 210 001733 213 001735 215 001737 219 001740 221 001773 224 001775 226 002025 229 002026 232 002027 234 002030 263 002031 264 002033 265 002056 266 002113 269 002117 270 002147 273 002150 274 002152 275 002171 278 002173 279 002223 280 002227 283 002230 286 002233 288 002263 289 002267 292 002270 293 002271 297 002276 300 002301 301 002330 305 002340 306 002346 309 002363 310 002364 311 002367 313 002402 314 002406 315 002417 317 002420 319 002425 321 002461 322 002465 327 002466 328 002470 332 002476 334 002504 338 002532 339 002533 340 002536 342 002551 343 002555 345 002567 348 002574 350 002601 352 002602 354 002606 357 002615 360 002624 362 002653 363 002657 368 002660 373 002707 374 002717 378 002736 379 002760 381 002761 383 002764 385 002770 389 002772 390 003015 391 003024 395 003031 397 003034 398 003040 400 003041 406 003042 408 003067 411 003073 413 003111 418 003117 421 003122 425 003152 427 003170 430 003176 431 003201 434 003222 437 003230 438 003233 441 003254 444 003262 445 003265 448 003306 454 003446 457 003512 460 003561 463 003626 466 003673 468 003747 469 003772 470 004015 472 004050 474 004103 477 004157 479 004226 481 004272 483 004336 484 004370 487 004423 769 004424 490 004425 497 004426 498 004441 501 004454 503 004460 506 004476 507 004505 509 004515 511 004517 514 004573 516 004575 518 004577 521 004650 523 004652 526 004700 528 004723 529 004735 530 004741 531 004746 533 004752 539 005111 540 005122 542 005123 544 005131 546 005133 547 005141 550 005145 552 005163 553 005232 555 005315 558 005321 559 005330 562 005341 563 005350 564 005353 566 005376 567 005377 568 005401 644 005425 646 005426 654 005427 655 005431 656 005445 657 005456 658 005463 661 005465 664 005470 666 005525 667 005526 668 005547 669 005551 670 005555 672 005572 673 005604 676 005605 677 005614 678 005616 680 005617 681 005626 682 005666 685 005671 686 005700 687 005734 689 005743 690 005744 692 005751 694 005756 695 005760 767 005762 697 005763 700 005764 701 005766 704 005773 705 006006 706 006015 709 006021 712 006023 713 006032 714 006034 715 006053 717 006054 719 006113 720 006114 721 006126 722 006164 725 006167 726 006176 727 006232 729 006241 730 006242 731 006246 732 006257 735 006274 736 006303 737 006305 738 006311 739 006347 742 006352 743 006361 744 006415 746 006424 748 006430 749 006432 757 006434 759 006436 760 006445 761 006447 762 006466 763 006467 765 006471 773 006472 778 006474 781 006500 784 006505 785 006524 786 006541 787 006543 788 006544 789 006572 790 006573 791 006605 793 006606 795 006607 798 006611 800 006612 810 006615 811 006630 812 006700 813 006735 815 006745 817 006746 823 006754 824 007002 827 007036 829 007037 858 007040 859 007041 860 007042 862 007053 863 007064 866 007066 867 007113 868 007115 871 007116 874 007123 877 007125 879 007151 880 007153 883 007154 884 007167 886 007173 888 007175 889 007205 891 007222 894 007224 897 007240 900 007253 903 007263 906 007266 909 007322 910 007324 914 007325 915 007326 916 007343 917 007370 920 007372 922 007426 925 007430 927 007431 930 007444 933 007454 934 007456 935 007460 939 007461 941 007513 943 007515 947 007516 950 007526 954 007532 955 007542 956 007602 960 007604 962 007640 965 007642 969 007643 970 007676 972 007700 974 007702 977 007706 978 007735 980 007737 984 007740 986 007743 987 007753 989 007770 992 007772 995 010006 998 010016 999 010020 1001 010021 1004 010031 1006 010033 1009 010036 1010 010037 1011 010054 1012 010061 1014 010062 1017 010072 1018 010074 1022 010106 1024 010107 1027 010113 1028 010147 1029 010151 1033 010152 1034 010172 1037 010175 1038 010232 1039 010234 1041 010235 1045 010242 1047 010244 1051 010254 1053 010306 1056 010310 1057 010334 1058 010336 1063 010337 ----------------------------------------------------------- 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