COMPILATION LISTING OF SEGMENT db_fnp_util_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1619.9 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* DB_FNP_UTIL_ - A series of entries that deal with internal tables in the FNP */ 12 13 /* Written January 1977 by Larry Johnson */ 14 15 /* format: style4,delnl,insnl,^ifthendo */ 16 db_fnp_util_: 17 proc; 18 19 /* Parameters */ 20 21 dcl arg_corep ptr; /* Pointer to segment containing fnp memory */ 22 dcl arg_fnp fixed bin; /* The fnp number, for real fnps */ 23 dcl arg_edited_addr char (*) var; /* String built by edit_module_addr entry */ 24 dcl arg_fnp_addr fixed bin; /* Address in fnp memory */ 25 dcl arg_code fixed bin (35); 26 dcl arg_mod_name char (*); /* Name of module to be looked up */ 27 dcl arg_tty_name char (*); /* Name of tty channel */ 28 dcl arg_chan_name char (*); 29 dcl arg_tty_line_no fixed bin; 30 dcl arg_expr_infop ptr; 31 dcl arg_modchp ptr; 32 dcl arg_cmd_infop ptr; 33 34 /* Automatic */ 35 36 dcl fnp fixed bin; 37 dcl code fixed bin (35); 38 dcl (i, j, k) fixed bin; 39 dcl mod_name char (8); 40 dcl fnp_addr fixed bin; 41 dcl corep ptr; /* Pointer to fnp core image */ 42 dcl min_offset fixed bin; 43 dcl addr_temp1 char (8) var; 44 dcl addr_temp2 char (16) var; 45 dcl word_buf bit (18) unal; 46 dcl tty_fnp_no fixed bin; /* Fnp to which a tty is connected */ 47 dcl tty_hsla_sw bit (1); /* Set if tty is on hsla */ 48 dcl tty_la_no fixed bin; /* The relative hsla or lsla number */ 49 dcl tty_chan_no fixed bin; /* Relative channel on channel */ 50 dcl tty_slot_no fixed bin; /* Time slot position on lsla */ 51 dcl tty_line_no fixed bin; 52 dcl mem_word bit (18) unal; 53 dcl force_sw bit (1); 54 dcl paren_sw bit (1); 55 56 dcl 1 tty_name unal, /* Format of a tty channel name */ 57 2 fnp_name char (1), 58 2 dot char (1), 59 2 la_type char (1), 60 2 la_no picture "9", 61 2 chan_no picture "99"; 62 63 dcl modchp ptr; 64 dcl 1 modch aligned based (modchp), /* Special module table used by trace */ 65 2 nmodules fixed bin, 66 2 entries (modch.nmodules), 67 3 name char (4), 68 3 address fixed bin; 69 70 /* based */ 71 72 dcl 1 fnptab aligned based (fnptabp), 73 2 per_fnp (0:8), 74 3 init_switches, 75 4 modtab_init bit (1) unal, /* Set when module table setup */ 76 4 iomtab_init bit (1) unal, /* Set when iom table setup */ 77 4 lslatab_init (0:5) bit (1) unal, 78 4 hslatab_init (0:2) bit (1) unal, 79 3 bind_time fixed bin (71), 80 3 boot_time fixed bin (71), 81 3 nmodules fixed bin, 82 3 per_module (50), 83 4 name char (6), 84 4 start fixed bin, 85 4 date char (6), 86 3 iom_table, 87 4 lsla_tab_addr (0:5) fixed bin, /* Addr of lsla tables in fnp */ 88 4 hsla_tab_addr (0:2) fixed bin, /* Likewise for hslas */ 89 3 per_lsla (0:5), 90 4 lsla_hwcm_addr fixed bin, 91 4 lsla_sfcm_addr fixed bin, 92 4 lsla_tib_addr (0:51) fixed bin (17) unal, 93 4 lsla_slot_no (0:51) fixed bin (17) unal, 94 3 per_hsla (0:2), 95 4 hsla_mbx_addr fixed bin, 96 4 hsla_tib_addr (0:31) fixed bin (17) unal; 97 98 /* External stuff */ 99 100 dcl db_fnp_memory_$fetch entry (ptr, fixed bin, fixed bin, fixed bin, ptr, fixed bin (35)); 101 dcl db_fnp_sym_util_$get_value entry (char (*)) returns (fixed bin); 102 dcl db_fnp_sym_util_$get_length entry (char (*)) returns (fixed bin); 103 dcl ioa_ entry options (variable); 104 dcl ioa_$rsnnl entry options (variable); 105 dcl com_err_ entry options (variable); 106 dcl parse_tty_name_ entry (char (*), fixed bin, bit (1), fixed bin, fixed bin); 107 dcl cv_oct_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 108 dcl get_temp_segment_ entry (char (*), pointer, fixed bin (35)); 109 dcl get_fnp_name_ entry (fixed bin) returns (char (32)); 110 111 dcl error_table_$bad_arg ext fixed bin (35); 112 dcl error_table_$noentry ext fixed bin (35); 113 114 dcl (addr, bin, divide, hbound, lbound, min, mod, null, rtrim, size, string, substr, translate) builtin; 115 116 /* constants */ 117 118 dcl name char (12) int static options (constant) init ("db_fnp_util_"); 119 dcl xlate (0:63) char (1) int static options (constant) init ( 120 /* Bcd to ascii xlation table */ 121 "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "[", "#", "@", ":", ">", "?", " ", "A", "B", "C", "D", "E", 122 "F", "G", "H", "I", "&", ".", "]", "(", "<", "^", "|", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "-", "$", 123 "*", ")", ";", "'", "+", "/", "S", "T", "U", "V", "W", "X", "Y", "Z", "_", ",", "%", "=", """", "!"); 124 125 /* INTERNAL STATIC DATA */ 126 127 dcl fnptabp ptr int static init (null ()); 128 dcl constants_computed bit (1) int static init ("0"b); 129 dcl crldt fixed bin int static; /* Address of bind time in 355 */ 130 dcl crmod fixed bin int static; /* Address of module chain in 355 */ 131 dcl criom fixed bin int static; 132 dcl crtdt fixed bin int static; /* Address of T&D executive TIB */ 133 dcl h_sfcm fixed bin int static; /* Offset to sfcm pointer in hwcm */ 134 dcl h1ch fixed bin int static; /* First hsla channel number */ 135 dcl l1ch fixed bin int static; /* First lsla channel number */ 136 dcl hwcm_len fixed bin int static; 137 138 /* PRINT_MODULE_TABLE - Entry that will print the module table for the fnp. This entry is a debug_fnp command. */ 139 140 print_module_table: 141 entry (arg_corep, arg_fnp, arg_cmd_infop, arg_expr_infop); 142 143 call setup; 144 cmd_infop = arg_cmd_infop; 145 146 call setup_module_table; 147 if code ^= 0 148 then do; 149 call com_err_ (code, "", "Unable to get module table."); 150 cmd_info.flush = "1"b; 151 return; 152 end; 153 154 do i = 1 to fnptab.nmodules (fnp); 155 call ioa_ ("^6a^8o ^a/^a/^a", fnptab.name (fnp, i), fnptab.start (fnp, i), 156 substr (fnptab.date (fnp, i), 1, 2), substr (fnptab.date (fnp, i), 3, 2), 157 substr (fnptab.date (fnp, i), 5, 2)); 158 end; 159 return; 160 161 162 /* LOOKUP_MODULE - Entry to lookup one name in the module table */ 163 164 lookup_module: 165 entry (arg_corep, arg_fnp, arg_mod_name, arg_fnp_addr, arg_code); 166 167 call setup; 168 call setup_module_table; 169 if code ^= 0 170 then do; 171 arg_code = code; 172 arg_fnp_addr = 0; 173 return; 174 end; 175 176 mod_name = translate (arg_mod_name, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 177 do i = 1 to fnptab.nmodules (fnp); 178 if fnptab.name (fnp, i) = mod_name 179 then do; 180 arg_fnp_addr = fnptab.start (fnp, i); 181 arg_code = 0; 182 return; 183 end; 184 end; 185 arg_code = error_table_$noentry; 186 arg_fnp_addr = 0; 187 return; 188 189 /* GET_SPECIAL_MODCH - returns module table in special form used by format_fnp_trace_msg_ */ 190 191 get_special_modch: 192 entry (arg_corep, arg_fnp, arg_modchp, arg_code); 193 194 call setup; 195 call setup_module_table; 196 if code ^= 0 197 then do; 198 arg_code = code; 199 return; 200 end; 201 202 modchp = arg_modchp; 203 i = min (fnptab.nmodules (fnp), modch.nmodules); /* Return what fits */ 204 do j = 1 to i; 205 modch.name (j) = fnptab.name (fnp, j); 206 modch.address (j) = fnptab.start (fnp, j); 207 end; 208 modch.nmodules = i; /* Return actual count */ 209 arg_code = 0; 210 return; 211 212 /* EDIT_MODULE_ADDR - Entry to edit a fnp address in the form module|offset */ 213 214 edit_module_addr: 215 entry (arg_corep, arg_fnp, arg_fnp_addr, arg_edited_addr, arg_code); 216 217 force_sw, paren_sw = "0"b; 218 edit_module_addr_join: 219 call setup; 220 fnp_addr = arg_fnp_addr; 221 call setup_module_table; 222 if code ^= 0 223 then do; 224 arg_code = code; 225 arg_edited_addr = ""; 226 return; 227 end; 228 229 j = -1; /* No module found */ 230 if fnp_addr < 0 | fnp_addr > 32767 231 then go to edit_module_offset; 232 min_offset = 32768; 233 do i = 1 to fnptab.nmodules (fnp); /* Check addr against each module */ 234 k = fnp_addr - fnptab.start (fnp, i); /* Get an offset */ 235 if (k >= 0) & (k < min_offset) 236 then do; /* Found a possible */ 237 j = i; /* Save its index */ 238 min_offset = k; /* Remember lowest value found */ 239 end; 240 end; 241 edit_module_offset: 242 if j = -1 243 then addr_temp1 = ""; /* No module */ 244 else do; 245 addr_temp1 = rtrim (fnptab.name (fnp, j)); 246 addr_temp1 = addr_temp1 || "|"; 247 fnp_addr = min_offset; 248 end; 249 call ioa_$rsnnl ("^o", addr_temp2, (0), fnp_addr);/* Edit offset */ 250 if addr_temp1 = "" 251 then do; /* Out of range */ 252 if force_sw | paren_sw 253 then arg_edited_addr = addr_temp2; 254 else arg_edited_addr = ""; 255 end; 256 else do; 257 if ^paren_sw 258 then arg_edited_addr = addr_temp1 || addr_temp2; 259 else call ioa_$rsnnl ("^o (^a^a)", arg_edited_addr, (0), arg_fnp_addr, addr_temp1, addr_temp2); 260 end; 261 arg_code = 0; 262 return; 263 264 /* EDIT_MODULE_ADDR_FORCE - Like above, but returns octal for out of module range address */ 265 266 edit_module_addr_force: 267 entry (arg_corep, arg_fnp, arg_fnp_addr, arg_edited_addr, arg_code); 268 269 force_sw = "1"b; 270 paren_sw = "0"b; 271 go to edit_module_addr_join; 272 273 /* EDIT_MODULE_ADDR_PAREN - Like above, but returns "addr (mod|offset)" */ 274 275 edit_module_addr_paren: 276 entry (arg_corep, arg_fnp, arg_fnp_addr, arg_edited_addr, arg_code); 277 278 force_sw = "0"b; 279 paren_sw = "1"b; 280 go to edit_module_addr_join; 281 282 /* GET_CHAN_ADDRS - Entry which takes a tty channel name and finds its TIB address */ 283 284 get_chan_addrs: 285 entry (arg_corep, arg_fnp, arg_chan_name, arg_expr_infop, arg_code); 286 287 call setup; 288 expr_infop = arg_expr_infop; 289 expr_info.tib_known, expr_info.hwcm_known, expr_info.sfcm_known = "0"b; 290 291 tty_line_no = cv_oct_check_ (arg_chan_name, code);/* Check for all octal */ 292 if code = 0 293 then do; 294 call parse_tty_line_no; 295 if tty_fnp_no < 0 296 then go to char_to_tib_bad_arg; 297 end; 298 else do; /* Character form name */ 299 call parse_tty_name_ (arg_chan_name, tty_fnp_no, tty_hsla_sw, tty_la_no, tty_chan_no); 300 if tty_fnp_no < 0 301 then go to char_to_tib_bad_arg; 302 if arg_fnp > 0 303 then if arg_fnp ^= tty_fnp_no 304 then /* Line not on current FNP */ 305 go to char_to_tib_bad_arg; 306 end; 307 308 if tty_la_no = 7 /* handle T&D channel specially */ 309 then do; 310 call validate_fnp_data; 311 call db_fnp_memory_$fetch (corep, fnp, crtdt, 1, addr (mem_word), code); 312 if code ^= 0 313 then go to char_to_tib_err; 314 if mem_word = "0"b 315 then go to char_to_tib_bad_arg; 316 expr_info.tib_addr = bin (mem_word); 317 expr_info.tib_known = "1"b; /* but other data bases remain unknown */ 318 end; 319 320 else do; 321 call setup_la_table; /* Find appropriate table */ 322 if code ^= 0 323 then go to char_to_tib_err; 324 325 if tty_hsla_sw 326 then do; 327 expr_info.hwcm_addr = fnptab.hsla_mbx_addr (fnp, tty_la_no) + hwcm_len * tty_chan_no; 328 expr_info.hwcm_known = "1"b; 329 if fnptab.hsla_tib_addr (fnp, tty_la_no, tty_chan_no) = 0 330 then go to char_to_tib_bad_arg; 331 expr_info.tib_addr = fnptab.hsla_tib_addr (fnp, tty_la_no, tty_chan_no); 332 expr_info.tib_known = "1"b; 333 call db_fnp_memory_$fetch (corep, fnp, expr_info.hwcm_addr + h_sfcm, 1, addr (mem_word), code); 334 if code ^= 0 335 then go to char_to_tib_err; 336 expr_info.sfcm_addr = bin (mem_word); 337 expr_info.sfcm_known = "1"b; 338 end; 339 else do; 340 if tty_chan_no < 0 341 then call cv_lsla_slot_no; 342 if tty_chan_no < 0 | tty_chan_no > 51 343 then go to char_to_tib_bad_arg; 344 if fnptab.lsla_tib_addr (fnp, tty_la_no, tty_chan_no) = 0 345 then go to char_to_tib_bad_arg; 346 expr_info.tib_addr = fnptab.lsla_tib_addr (fnp, tty_la_no, tty_chan_no); 347 expr_info.tib_known = "1"b; 348 expr_info.hwcm_addr = fnptab.lsla_hwcm_addr (fnp, tty_la_no); 349 expr_info.hwcm_known = "1"b; 350 expr_info.sfcm_addr = fnptab.lsla_sfcm_addr (fnp, tty_la_no); 351 expr_info.sfcm_known = "1"b; 352 end; 353 end; 354 355 arg_code = 0; 356 return; 357 358 char_to_tib_bad_arg: 359 code = error_table_$bad_arg; 360 char_to_tib_err: 361 arg_code = code; 362 return; 363 364 /* Procedure that given a tty line number, computes a name */ 365 366 cv_line_no: 367 entry (arg_corep, arg_fnp, arg_tty_line_no, arg_tty_name, arg_code); 368 369 call setup; 370 tty_line_no = arg_tty_line_no; 371 372 call parse_tty_line_no; /* Break number into components */ 373 if tty_fnp_no < 0 374 then do; /* Error */ 375 cv_line_bad: 376 arg_code = error_table_$bad_arg; 377 return; 378 end; 379 380 if ^tty_hsla_sw 381 then do; 382 call setup_la_table; 383 if code ^= 0 384 then do; 385 arg_code = code; 386 return; 387 end; 388 call cv_lsla_slot_no; 389 if tty_chan_no < 0 390 then go to cv_line_bad; 391 end; 392 393 tty_name.fnp_name = get_fnp_name_ (max (arg_fnp, 1)); 394 tty_name.dot = "."; 395 if tty_la_no = 7 396 then do; 397 tty_name.la_type = "c"; 398 tty_name.la_no, tty_name.chan_no = 0; 399 end; 400 401 else do; 402 if tty_hsla_sw 403 then tty_name.la_type = "h"; 404 else tty_name.la_type = "l"; 405 tty_name.la_no = tty_la_no; 406 tty_name.chan_no = tty_chan_no; 407 end; 408 409 arg_tty_name = string (tty_name); 410 arg_code = 0; 411 return; 412 413 /* Entry that given a name of a tty channel in either octal or ttyxxx form, returns the ttyname and the tty line number */ 414 415 cv_chan_name: 416 entry (arg_corep, arg_fnp, arg_chan_name, arg_tty_name, arg_tty_line_no, arg_code); 417 418 call setup; 419 arg_tty_line_no = 0; 420 arg_tty_name = ""; 421 tty_line_no = cv_oct_check_ (arg_chan_name, code);/* Try octal */ 422 if code = 0 423 then /* Easy case, another entry already does this */ 424 call cv_line_no (corep, arg_fnp, tty_line_no, arg_tty_name, code); 425 else do; /* Given ttyxxx form */ 426 call parse_tty_name_ (arg_chan_name, tty_fnp_no, tty_hsla_sw, tty_la_no, tty_chan_no); 427 if tty_fnp_no < 0 428 then do; 429 cv_chan_bad: 430 arg_code = error_table_$bad_arg; 431 return; 432 end; 433 if arg_fnp > 0 434 then if tty_fnp_no ^= arg_fnp 435 then /* On wrong FNP */ 436 go to cv_chan_bad; 437 if tty_hsla_sw 438 then /* Compute line number for hsla */ 439 tty_line_no = 512 + 64 * tty_la_no + tty_chan_no; 440 else do; /* Lslas are harder */ 441 call setup_la_table; /* Need more data */ 442 tty_slot_no = fnptab.lsla_slot_no (fnp, tty_la_no, tty_chan_no); 443 if tty_slot_no = 0 444 then go to cv_chan_bad; 445 tty_line_no = 64 * tty_la_no + tty_slot_no; 446 end; 447 arg_tty_name = arg_chan_name; /* Just return name given */ 448 code = 0; 449 end; 450 arg_tty_line_no = tty_line_no; 451 arg_code = code; 452 return; 453 454 /* Procedure to setup internal static fnp table */ 455 456 setup_module_table: 457 proc; 458 459 dcl (i, j) fixed bin; 460 dcl chainloc fixed bin; 461 dcl 1 chain aligned, /* Entry in module chain */ 462 2 next bit (18) unal, 463 2 name (6) bit (6) unal, 464 2 start bit (18) unal, 465 2 date (6) bit (6) unal; 466 467 call validate_fnp_data; 468 if code ^= 0 469 then return; 470 471 if fnptab.modtab_init (fnp) 472 then return; /* Table all setup */ 473 474 i = 0; 475 call db_fnp_memory_$fetch (corep, fnp, crmod, 1, addr (chain.next), code); 476 /* Get module chain start */ 477 if code ^= 0 478 then return; 479 chainloc = bin (chain.next); /* First chain is here */ 480 481 do while ((chainloc ^= 0) & (i < hbound (fnptab.per_module, 2))); 482 call db_fnp_memory_$fetch (corep, fnp, chainloc, 6, addr (chain), code); 483 if code ^= 0 484 then return; 485 i = i + 1; 486 fnptab.start (fnp, i) = bin (chain.start); 487 mod_name = ""; 488 do j = 1 to 6; /* Convert name */ 489 substr (mod_name, j, 1) = xlate (bin (chain.name (j))); 490 end; 491 fnptab.name (fnp, i) = translate (mod_name, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 492 do j = 1 to 6; /* Convert date */ 493 substr (fnptab.date (fnp, i), j, 1) = xlate (bin (chain.date (j))); 494 end; 495 chainloc = bin (chain.next); /* Next pointer */ 496 end; 497 498 fnptab.nmodules (fnp) = i; 499 fnptab.modtab_init (fnp) = "1"b; 500 return; 501 502 503 end setup_module_table; 504 505 /* Procedure to get the table for the current line adapter setup */ 506 507 setup_la_table: 508 proc; 509 510 call validate_fnp_data; 511 if code ^= 0 512 then return; 513 call setup_iom_table; /* Need this first */ 514 if code ^= 0 515 then return; 516 if tty_hsla_sw 517 then call setup_hsla_table; /* Let some one else do the work */ 518 else call setup_lsla_table; 519 return; 520 521 end setup_la_table; 522 523 /* Procedure to find the iom table */ 524 525 setup_iom_table: 526 proc; 527 528 dcl auto_iom_table (size (iom_table)) bit (36) aligned; /* To read iom table into */ 529 dcl i fixed bin; 530 531 if fnptab.iomtab_init (fnp) 532 then return; /* Only do this once */ 533 534 call db_fnp_memory_$fetch (corep, fnp, criom, 1, addr (word_buf), code); 535 if code ^= 0 536 then return; 537 itblp = addr (auto_iom_table); 538 call db_fnp_memory_$fetch (corep, fnp, bin (word_buf), 2 * size (iom_table), itblp, code); 539 if code ^= 0 540 then return; 541 fnptab.lsla_tab_addr (fnp, *) = 0; 542 fnptab.hsla_tab_addr (fnp, *) = 0; 543 do i = lbound (iom_table, 1) to hbound (iom_table, 1); 544 /* Pick out line adapters */ 545 if iom_table.dev_type (i) = HSLA 546 then fnptab.hsla_tab_addr (fnp, i - h1ch) = bin (iom_table.table (i)); 547 else if iom_table.dev_type (i) = LSLA 548 then fnptab.lsla_tab_addr (fnp, i - l1ch) = bin (iom_table.table (i)); 549 end; 550 fnptab.iomtab_init (fnp) = "1"b; 551 code = 0; 552 return; 553 554 end setup_iom_table; 555 556 /* Procedure to find all tib addresses for 1 hsla */ 557 558 setup_hsla_table: 559 proc; 560 561 dcl auto_hsla_table (size (hsla_table)) bit (36) aligned; /* To read hsla table into */ 562 dcl i fixed bin; 563 564 if tty_chan_no < 0 | tty_chan_no > 31 565 then go to bad_hsla; 566 if ^fnptab.hslatab_init (fnp, tty_la_no) 567 then do; /* Only do this if new hsla */ 568 i = fnptab.hsla_tab_addr (fnp, tty_la_no); /* Address of hsla table */ 569 if i = 0 570 then do; /* Nothing on this hsla */ 571 bad_hsla: 572 code = error_table_$bad_arg; 573 return; 574 end; 575 tblp = addr (auto_hsla_table); 576 call db_fnp_memory_$fetch (corep, fnp, i, 2 * size (hsla_table), tblp, code); 577 if code ^= 0 578 then return; 579 do i = lbound (hsla_table, 1) to hbound (hsla_table, 1); 580 /* Copy addresses */ 581 fnptab.hsla_tib_addr (fnp, tty_la_no, i) = hsla_table.tib_addr (i); 582 end; 583 fnptab.hsla_mbx_addr (fnp, tty_la_no) = get_mbx_addr ("h"); 584 fnptab.hslatab_init (fnp, tty_la_no) = "1"b; 585 end; 586 587 code = 0; 588 return; 589 590 end setup_hsla_table; 591 592 /* Procedure to find all the tib addresses for 1 lsla */ 593 594 setup_lsla_table: 595 proc; 596 597 dcl auto_lsla_table (size (lsla_table)) bit (36) aligned; /* To read lsla table into */ 598 dcl (i, j, k) fixed bin; 599 dcl mem_word bit (18) unal; 600 601 if ^fnptab.lslatab_init (fnp, tty_la_no) 602 then do; /* If not done yet */ 603 i = fnptab.lsla_tab_addr (fnp, tty_la_no); /* Addr of lsla table */ 604 if i = 0 605 then do; 606 code = error_table_$bad_arg; 607 return; 608 end; 609 tblp = addr (auto_lsla_table); 610 call db_fnp_memory_$fetch (corep, fnp, i, 2 * size (lsla_table), tblp, code); 611 if code ^= 0 612 then return; 613 j, k = 0; 614 fnptab.lsla_tib_addr (fnp, tty_la_no, *) = 0; 615 fnptab.lsla_slot_no (fnp, tty_la_no, *) = 0; 616 do i = 1 to hbound (lsla_table, 1); /* Copy all tib address */ 617 if lsla_table.slot_id (i) = "111"b 618 then go to setup_lsla_done; 619 if lsla_table.tib_addr (i) ^= k 620 then do; /* New tib */ 621 fnptab.lsla_tib_addr (fnp, tty_la_no, j), k = lsla_table.tib_addr (i); 622 fnptab.lsla_slot_no (fnp, tty_la_no, j) = i; 623 j = j + 1; 624 end; 625 end; 626 setup_lsla_done: 627 fnptab.lsla_hwcm_addr (fnp, tty_la_no) = get_mbx_addr ("l"); 628 call db_fnp_memory_$fetch (corep, fnp, fnptab.lsla_hwcm_addr (fnp, tty_la_no) + h_sfcm, 1, addr (mem_word), 629 code); 630 if code ^= 0 631 then return; 632 fnptab.lsla_sfcm_addr (fnp, tty_la_no) = bin (mem_word); 633 fnptab.lslatab_init (fnp, tty_la_no) = "1"b; 634 end; 635 636 code = 0; 637 return; 638 639 end setup_lsla_table; 640 641 /* Procedure line parse_tty_name that "parses" a line number */ 642 643 parse_tty_line_no: 644 proc; 645 646 tty_fnp_no = -1; /* Error flag */ 647 tty_hsla_sw = (tty_line_no >= 512); 648 tty_chan_no = mod (tty_line_no, 64); 649 tty_la_no = mod (divide (tty_line_no, 64, 17, 0), 8); 650 if tty_line_no ^= (512 * bin (tty_hsla_sw, 1) + 64 * tty_la_no + tty_chan_no) 651 then return; /* Doesn't compute */ 652 if tty_hsla_sw 653 then do; 654 if tty_la_no > 2 & tty_la_no ^= 7 655 then return; 656 if tty_la_no = 7 /* this should be T&D channel */ 657 & tty_chan_no ^= 63 /* but it isn't */ 658 then return; 659 end; 660 else do; 661 if tty_la_no > 5 662 then return; 663 tty_slot_no = tty_chan_no; /* This is really a time slot */ 664 tty_chan_no = -1; /* The subchannel isn't known */ 665 end; 666 tty_fnp_no = 1; /* No error */ 667 return; 668 669 end parse_tty_line_no; 670 671 /* Procedure to convert from a lsla slot number to channel number */ 672 673 cv_lsla_slot_no: 674 proc; 675 676 dcl i fixed bin; 677 678 do i = lbound (fnptab.lsla_slot_no, 3) to hbound (fnptab.lsla_slot_no, 3); 679 if fnptab.lsla_slot_no (fnp, tty_la_no, i) = tty_slot_no 680 then do; 681 tty_chan_no = i; 682 return; 683 end; 684 if fnptab.lsla_slot_no (fnp, tty_la_no, i) > tty_slot_no 685 then do; 686 tty_chan_no = i - 1; /* Other than the first time slot of a channel */ 687 return; 688 end; 689 end; 690 return; /* Couldn't do it */ 691 692 end cv_lsla_slot_no; 693 694 /* Procedure which checks to be sure that the static FNP data is still valid. */ 695 /* The check is to see if times in the core image have changed */ 696 697 validate_fnp_data: 698 proc; 699 700 dcl 1 times aligned, 701 2 bind_time fixed bin (71), 702 2 boot_time fixed bin (71); 703 704 call compute_constants; 705 call db_fnp_memory_$fetch (corep, fnp, crldt, 8, addr (times), code); 706 /* Get bind and boot time */ 707 if code ^= 0 708 then return; 709 if fnptab.bind_time (fnp) ^= times.bind_time | fnptab.boot_time (fnp) ^= times.boot_time 710 then string (fnptab.init_switches (fnp)) = "0"b; 711 fnptab.bind_time (fnp) = times.bind_time; 712 fnptab.boot_time (fnp) = times.boot_time; 713 return; 714 715 end validate_fnp_data; 716 717 718 /* Procedure to computing the addresses of some constants in the 355 */ 719 720 compute_constants: 721 proc; 722 723 dcl i fixed bin; 724 725 if fnptabp = null () 726 then call get_temp_segment_ (name, fnptabp, code); 727 728 if constants_computed 729 then return; /* Do this once per process */ 730 731 crldt = db_fnp_sym_util_$get_value (".crldt"); 732 crmod = db_fnp_sym_util_$get_value (".crmod"); 733 criom = db_fnp_sym_util_$get_value (".criom"); 734 crtdt = db_fnp_sym_util_$get_value (".crtdt"); 735 h_sfcm = db_fnp_sym_util_$get_value ("h.sfcm"); 736 l1ch = db_fnp_sym_util_$get_value ("l1ch"); 737 h1ch = db_fnp_sym_util_$get_value ("h1ch"); 738 hwcm_len = db_fnp_sym_util_$get_length ("hwcm"); 739 740 do i = lbound (fnptab.init_switches, 1) to hbound (fnptab.init_switches, 1); 741 string (fnptab.init_switches (i)) = "0"b; 742 end; 743 fnptab.bind_time = 0; /* And all these numbers */ 744 fnptab.boot_time = 0; 745 constants_computed = "1"b; 746 return; 747 748 end compute_constants; 749 750 /* Get address of a mailbox */ 751 752 get_mbx_addr: 753 proc (t) returns (fixed bin); 754 755 dcl t char (1); 756 dcl 1 mb_name unal, 757 2 type char (1) unal, 758 2 num picture "9" unal, 759 2 mb char (2) unal; 760 761 mb_name.type = t; 762 mb_name.num = tty_la_no + 1; 763 mb_name.mb = "mb"; 764 return (db_fnp_sym_util_$get_value (string (mb_name))); 765 766 end get_mbx_addr; 767 768 769 770 /* Initialization procedure to copy seg pointer and fnp args */ 771 772 setup: 773 proc; 774 775 corep = arg_corep; 776 if corep = null 777 then fnp = arg_fnp; /* Real fnp */ 778 else fnp = 0; 779 return; 780 781 end setup; 782 1 1 /* BEGIN INCLUDE FILE ... mcs_memory_map.incl.pl1 */ 1 2 1 3 /* This include file descibes MCS memory layout. 1 4* 1 5* Created 6/2/76 by Mike Grady 1 6* Modified 1979 June 1 by Art Beattie to add new cells in comm_reg. 1 7* Modified June 1982 by Robert Coren to add some more new cells in comm_reg and 1 8* change some of them to fixed bin (18) unsigned. 1 9**/ 1 10 1 11 dcl 1 mem_array aligned based (memp), /* as an array of 18 bit words */ 1 12 2 mem (0:65535) bit (18) unaligned; 1 13 1 14 1 15 dcl 1 low_mem aligned based (memp), /* detail of low memory */ 1 16 2 interrupt_vectors (0:255) bit (18) unal, /* loc 0-377 octal */ 1 17 2 interrupt_cells (16) bit (18) unal, /* loc 400-417 octal */ 1 18 2 iom_fault_status (16) bit (18) unal, /* loc 420-437 octal */ 1 19 2 processor_fault_vectors (8) bit (18) unal, /* loc 440-447 octal */ 1 20 2 chan_mailbox (24) bit (18) unal, /* loc 450-477 octal */ 1 21 2 lsla_mailbox (0:5) like hwcm, /* LSLA hardware comm regions, loc 500-637 octal */ 1 22 2 comm_reg unal, /* software communications region for MCS system */ 1 23 3 crldt fixed bin (71) aligned, /* date and time binder produced this image */ 1 24 3 crbdt fixed bin (71) aligned, /* date and time image was booted into FNP */ 1 25 3 crbuf fixed bin (17) unal, /* base of free buffer pool */ 1 26 3 crmem fixed bin (18) unsigned unal, /* last loc of mem configured */ 1 27 3 crnbf fixed bin (17) unal, /* free buffers in pool now */ 1 28 3 criom fixed bin (17) unal, /* pointer to iom table */ 1 29 3 crnhs fixed bin (17) unal, /* number of HSLAs */ 1 30 3 crnls fixed bin (17) unal, /* number of LSLAs */ 1 31 3 crcon bit (18) unal, /* console enable switch */ 1 32 3 crmod fixed bin (17) unal, /* base of module chain */ 1 33 3 crnxa fixed bin (17) unal, /* pointer to head of free space chain */ 1 34 3 crtra bit (18) unal, /* trace entry enable mask */ 1 35 3 crtrb fixed bin (18) unsigned unal, /* base of trace table */ 1 36 3 crtrc fixed bin (18) unsigned unal, /* next trace table entry pointer */ 1 37 3 crreg fixed bin (17) unal, /* pointer to fault reg storage area */ 1 38 3 crttb fixed bin (17) unal, /* pointer to tib table base */ 1 39 3 crtte fixed bin (17) unal, /* last addr in tib table */ 1 40 3 crdly fixed bin (17) unal, /* pointer to delay table chain */ 1 41 3 crver char (4) unal, /* mcs version number */ 1 42 3 crbrk fixed bin (17) unal, /* pointer to breakpoint control table */ 1 43 3 crtsw bit (18) unal, /* trace switch (zero=trace on) */ 1 44 3 crnxs fixed bin (17) unal, /* pointer to next free small block */ 1 45 3 crnbs fixed bin (17) unal, /* number of buffers devoted to small space */ 1 46 3 crcct fixed bin (17) unal, /* pointer to first cct descriptor */ 1 47 3 crskd fixed bin (17) unal, /* pointer to scheduler data block */ 1 48 3 cretb fixed bin (17) unal, /* pointer to list of echo-negotiation bit tables */ 1 49 3 crcpt fixed bin (17) unal, /* pointer to cpu page table */ 1 50 3 crpte fixed bin (17) unal, /* pointer to variable cpu page table entry */ 1 51 3 crtsz fixed bin (17) unal, /* size of trace data buffer */ 1 52 3 crmet bit (18) unal, /* metering enabled */ 1 53 3 crtdt bit (18) unal, /* 0 if no COLTS channel; set to TIB address if it exists */ 1 54 3 crbtm bit (18) unal, /* address of time meters for buffer allocation/freeing */ 1 55 3 crnxe fixed bin (18) unsigned unal, /* next available space in extended memory */ 1 56 3 crbpe fixed bin (17) unal, /* buffer paging window table entry */ 1 57 3 pad (39) bit (18) unal, 1 58 3 crcpr char (28) unal, /* image copyright notice */ 1 59 3 crash_location bit (18) unal, /* offset used for unresolved REF's */ 1 60 3 crash_opcode bit (18) unal, /* crash instruction */ 1 61 2 hsla_mailbox (0:2), /* loc 1000-3777 octal */ 1 62 3 subchannel (0:31) like hwcm; /* HSLA hardware comm regions */ 1 63 1 64 dcl 1 icw aligned based, /* Standard FNP Indirect Control Word */ 1 65 2 xfer_mode bit (3) unal, /* transfer mode, bit-36 for dia */ 1 66 2 fnp_addr bit (15) unal, /* address in fnp */ 1 67 2 pad bit (6) unal, /* padding, exhaust bit */ 1 68 2 tally bit (12) unal; 1 69 1 70 dcl 1 hwcm aligned based (hwcmp), /* Standard hardware comm region */ 1 71 2 ricw0 like icw, /* primary receive icw */ 1 72 2 ricw1 like icw, /* secondary receive icw */ 1 73 2 sicw0 like icw, /* primary send icw */ 1 74 2 sicw1 like icw, /* secondary send icw */ 1 75 2 baw bit (18) unal, /* base address word */ 1 76 2 sfcmp bit (18) unal, /* pointer to sfcm for this channel */ 1 77 2 mask_reg bit (36) unal, /* maskregister, subch 0 only */ 1 78 2 stat_icw like icw, /* status icw */ 1 79 2 config_pcw bit (36) unal; /* subchannel configuration */ 1 80 1 81 /* Tables used to describe the configuration of the FNP */ 1 82 1 83 dcl 1 iom_table (0: 15) unaligned based (itblp), /* FNP IOM table */ 1 84 2 flags, 1 85 3 mpx_chan bit (1) unal, /* multiplexed channel */ 1 86 3 pad bit (6) unal, 1 87 3 char_len bit (2) unal, 1 88 3 dev_type bit (5) unal, /* device type on this channel */ 1 89 3 dev_speed bit (4) unal, /* for those devices with speed (LSLA) */ 1 90 2 table bit (18) unal; /* pointer to secondary table for mpx_chan */ 1 91 1 92 dcl 1 lsla_table (0:52) based (tblp) unal, /* LSLA table, entry one per slot */ 1 93 2 flags, 1 94 3 pad1 bit (11) unal, 1 95 3 ibm_code bit (1) unal, /* if 6-bit odd parity */ 1 96 3 pad2 bit (3) unal, 1 97 3 slot_id bit (3) unal, /* slot type this slot */ 1 98 2 tib_addr fixed bin (17) unal; /* pointer to tib */ 1 99 1 100 dcl 1 hsla_table (0:31) based (tblp) unal, /* HSLA table, entry one per subchannel */ 1 101 2 flags, 1 102 3 conc_chan bit (1) unal, /* concentrator attached to this channnel */ 1 103 3 private_line bit (1) unal, /* indicates direct connect or pl modem for sync chan */ 1 104 3 async bit (1) unal, /* on if async channel */ 1 105 3 option1 bit (1) unal, /* three option specification bits */ 1 106 3 option2 bit (1) unal, 1 107 3 modem_type bit (4) unal, /* indicator of type of modem on this channel */ 1 108 3 line_type bit (5) unal, /* line type of this channel */ 1 109 3 dev_speed bit (4) unal, /* speed of this subchannel */ 1 110 2 tib_addr fixed bin (17) unal; /* addr of tib for this subchannel */ 1 111 1 112 dcl (memp, itblp, tblp, hwcmp) ptr; 1 113 1 114 dcl (DIA init ("00010"b), /* dev_type definitions */ 1 115 HSLA init ("00011"b), 1 116 LSLA init ("00100"b), 1 117 CONSOLE init ("00101"b), 1 118 PRINTER init ("00110"b)) bit (5) int static options (constant); 1 119 1 120 /* END INCLUDE FILE mcs_memory_map.incl.pl1 */ 783 784 785 2 1 /* Begin include file ..... debug_fnp_data.incl.pl1 */ 2 2 2 3 /* Describes various structures used by the debug_fnp command */ 2 4 2 5 /* Written February 1977 by Larry Johnson */ 2 6 2 7 /* Structures describing a symbol table used by the debug_fnp command, 2 8* to find values for common FNP symbols. */ 2 9 2 10 dcl db_fnp_symbols_$db_fnp_symbols_ ext; 2 11 2 12 dcl symbol_tablep ptr; 2 13 2 14 dcl 1 symbol_table aligned based (symbol_tablep), 2 15 2 cnt fixed bin, /* Number of entries */ 2 16 2 maxcnt fixed bin, /* Max count */ 2 17 2 entry (symbol_table.cnt) unal, 2 18 3 one_symbol like sym unal; 2 19 2 20 dcl symp ptr; /* Pointer to one symbol */ 2 21 2 22 dcl 1 sym unal based (symp), 2 23 2 name char (6), 2 24 2 value fixed bin (17), 2 25 2 len fixed bin (17), /* Number of words */ 2 26 2 reloc fixed bin (17), 2 27 2 type fixed bin (17), 2 28 2 flag_mem char (6), /* If non blank, name of word in which this is a flag */ 2 29 2 explain bit (18), /* Offset to explanation for symbol */ 2 30 2 pad bit (18); 2 31 2 32 dcl exptextp ptr; 2 33 2 34 dcl 1 exptext aligned based (exptextp), /* Symbol explanation entry */ 2 35 2 len fixed bin (8) unal, 2 36 2 data char (exptext.len) unal; 2 37 2 38 /* Values for sym.reloc, which is relocation required to find the symbol */ 2 39 2 40 dcl (reloc_abs init (0), /* Value is absolute */ 2 41 reloc_tib init (1), /* Value is relative to current tib addr */ 2 42 reloc_hwcm init (2), /* Value is relative to current hwcm */ 2 43 reloc_sfcm init (3), /* Value is relative to software comm region */ 2 44 reloc_meters init (4)) /* Value is relative to tib meters */ 2 45 int static options (constant); 2 46 2 47 /* Values for sym.type, which is the mode to be used in displaying symbol */ 2 48 2 49 dcl (type_oct init (0), /* Octal, default for most symbols */ 2 50 type_char init (1), /* Ascii characters */ 2 51 type_addr init (2), /* Address to be converted to mod|offset */ 2 52 type_clock init (3), /* Multics clock value */ 2 53 type_inst init (4), /* Machine instruction */ 2 54 type_op init (5), /* Interpreter opblock format */ 2 55 type_dec init (6), /* Decimal */ 2 56 type_bit init (7), /* In bits */ 2 57 type_ebcdic init (8)) /* 8-bit ebcdic characters */ 2 58 int static options (constant); 2 59 2 60 dcl long_type_names (0:8) char (12) int static options (constant) init ( 2 61 "octal", "character", "address", "clock", "instruction", "opblock", "decimal", "bit", "ebcdic"); 2 62 dcl short_type_names (0:8) char (4) int static options (constant) init ( 2 63 "oct", "ch", "addr", "ck", "inst", "op", "dec", "bit", "ebc"); 2 64 2 65 2 66 /* Structure of suplmental data used in evaluating expressions */ 2 67 2 68 dcl expr_infop ptr; 2 69 2 70 dcl 1 expr_info aligned based (expr_infop), 2 71 2 flags, 2 72 3 star_known bit (1) unal, /* Value of "*" is known */ 2 73 3 tib_known bit (1) unal, /* TIB addresses may be used */ 2 74 3 hwcm_known bit (1) unal, /* HWCM address may be used */ 2 75 3 sfcm_known bit (1) unal, /* SFCM address may be used */ 2 76 3 pad bit (32) unal, 2 77 2 star_addr fixed bin, /* Value of "*" */ 2 78 2 tib_addr fixed bin, /* Address of TIB */ 2 79 2 hwcm_addr fixed bin, /* Address of HWCM */ 2 80 2 sfcm_addr fixed bin, /* Address of SFCM */ 2 81 2 type fixed bin, /* Expression type (mode for printing) */ 2 82 2 len fixed bin, /* Implied length of expression */ 2 83 2 user_tablep ptr; /* Pointer to a user symbol table */ 2 84 2 85 2 86 /* Structure of opcode table of machine instructions */ 2 87 2 88 dcl db_fnp_opcodes_$ ext; 2 89 2 90 dcl optablep ptr; 2 91 2 92 dcl 1 optable aligned based (optablep), 2 93 2 cnt fixed bin, 2 94 2 entry (optable.cnt) unal, 2 95 3 one_op like op; 2 96 2 97 dcl opp ptr; 2 98 2 99 dcl 1 op unal based (opp), 2 100 2 name char (6), /* The mneumonic */ 2 101 2 code bit (12), /* The opcode */ 2 102 2 mask bit (12), /* Mask that says where the opcode is */ 2 103 2 type fixed bin (11), /* Type of display required */ 2 104 2 pad bit (18); 2 105 2 106 /* Values for op.type are: 2 107* 0 - storage reference 2 108* 1 - non-storage reference (immediate), 2 109* 2 - non-storage reference (iacxn only), 2 110* 3 - non-storage reference (shifts), 2 111* 4 - non-storage reference (no operands) */ 2 112 2 113 2 114 /* Stuctures used while parsing commands into operands */ 2 115 2 116 dcl cmd_infop ptr; 2 117 2 118 dcl 1 cmd_info aligned based (cmd_infop), 2 119 2 inbuf char (256), /* For reading lines */ 2 120 2 opbuf char (256), /* Used for operand in undoubling quotes */ 2 121 2 commandp ptr, /* Address of unparsed part of command */ 2 122 2 commandl fixed bin, /* Length of unparsed part */ 2 123 2 operandp ptr, /* Address of current operand */ 2 124 2 operandl fixed bin, /* And its length */ 2 125 2 error bit (1), /* Set if error parsing operand */ 2 126 2 endline bit (1), /* Set if no more operands on line */ 2 127 2 opstring bit (1), /* Set if operand was unquoted string */ 2 128 2 flush bit (1), /* If set, rest of input line will be ignored */ 2 129 2 envp ptr; /* Pointer to the debug_fnp environment structure */ 2 130 2 131 dcl command char (cmd_info.commandl) based (cmd_info.commandp); 2 132 dcl operand char (cmd_info.operandl) based (cmd_info.operandp); 2 133 2 134 /* The following structure describes the current debug_fnp environment. */ 2 135 /* It specifies whether we are working on a dump, fnp, core image, etc. */ 2 136 2 137 dcl envp ptr; 2 138 2 139 dcl 1 env aligned based (envp), 2 140 2 corep ptr, /* Ptr to current dump or core-image. Null means live FNP */ 2 141 2 fnp fixed bin, /* Current fnp number */ 2 142 2 dump_dir char (168) unal, /* Directory where dumps are found */ 2 143 2 dir char (168) unal, /* Directory for current dump or core image */ 2 144 2 ename char (32) unal, /* Ename for current dump or core image */ 2 145 2 tty_name char (32), /* Name of current channel */ 2 146 2 segp ptr, /* Pointer to base of current segment */ 2 147 2 flags unal, 2 148 3 fnps_configured bit (8), /* Says which FNP's appear in config deck */ 2 149 3 fnp_sw bit (1), /* 1 if currently working on fnp */ 2 150 3 image_sw bit (1), /* 1 if currently working on a core-image */ 2 151 3 dump_sw bit (1), /* 1 if current working on a dump */ 2 152 3 fdump_sw bit (1), /* 1 if current dump is a fdump */ 2 153 3 pad bit (24), 2 154 2 dump_time fixed bin (71); /* Clock time dump occured */ 2 155 2 156 /* Structure of data defining table of interpreter opblock names */ 2 157 2 158 dcl db_fnp_opblocks_$ ext; 2 159 2 160 dcl opblock_tablep ptr; 2 161 2 162 dcl 1 opblock_table aligned based (opblock_tablep), 2 163 2 cnt fixed bin, 2 164 2 name (0:opblock_table.cnt) char (6) unal; 2 165 2 166 /* End include file ..... debug_fnp_data.incl.pl1 */ 786 787 788 end db_fnp_util_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1449.5 db_fnp_util_.pl1 >dumps>old>recomp>db_fnp_util_.pl1 783 1 09/03/82 1045.1 mcs_memory_map.incl.pl1 >ldd>include>mcs_memory_map.incl.pl1 786 2 06/19/81 2115.0 debug_fnp_data.incl.pl1 >ldd>include>debug_fnp_data.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. HSLA constant bit(5) initial unaligned dcl 1-114 ref 545 LSLA constant bit(5) initial unaligned dcl 1-114 ref 547 addr builtin function dcl 114 ref 311 311 333 333 475 475 482 482 534 534 537 575 609 628 628 705 705 addr_temp1 000115 automatic varying char(8) dcl 43 set ref 241* 245* 246* 246 250 257 259* addr_temp2 000120 automatic varying char(16) dcl 44 set ref 249* 252 257 259* address 2 based fixed bin(17,0) array level 3 dcl 64 set ref 206* arg_chan_name parameter char unaligned dcl 28 set ref 284 291* 299* 415 421* 426* 447 arg_cmd_infop parameter pointer dcl 32 ref 140 144 arg_code parameter fixed bin(35,0) dcl 25 set ref 164 171* 181* 185* 191 198* 209* 214 224* 261* 266 275 284 355* 360* 366 375* 385* 410* 415 429* 451* arg_corep parameter pointer dcl 21 ref 140 164 191 214 266 275 284 366 415 775 arg_edited_addr parameter varying char dcl 23 set ref 214 225* 252* 254* 257* 259* 266 275 arg_expr_infop parameter pointer dcl 30 ref 140 284 288 arg_fnp parameter fixed bin(17,0) dcl 22 set ref 140 164 191 214 266 275 284 302 302 366 393 393 415 422* 433 433 776 arg_fnp_addr parameter fixed bin(17,0) dcl 24 set ref 164 172* 180* 186* 214 220 259* 266 275 arg_mod_name parameter char unaligned dcl 26 ref 164 176 arg_modchp parameter pointer dcl 31 ref 191 202 arg_tty_line_no parameter fixed bin(17,0) dcl 29 set ref 366 370 415 419* 450* arg_tty_name parameter char unaligned dcl 27 set ref 366 409* 415 420* 422* 447* auto_hsla_table 000100 automatic bit(36) array dcl 561 set ref 575 auto_iom_table 000100 automatic bit(36) array dcl 528 set ref 537 auto_lsla_table 000100 automatic bit(36) array dcl 597 set ref 609 bin builtin function dcl 114 ref 316 336 479 486 489 493 495 538 538 545 547 632 650 bind_time 2 based fixed bin(71,0) array level 3 in structure "fnptab" dcl 72 in procedure "db_fnp_util_" set ref 709 711* 743* bind_time 000234 automatic fixed bin(71,0) level 2 in structure "times" dcl 700 in procedure "validate_fnp_data" set ref 709 711 boot_time 4 based fixed bin(71,0) array level 3 in structure "fnptab" dcl 72 in procedure "db_fnp_util_" set ref 709 712* 744* boot_time 2 000234 automatic fixed bin(71,0) level 2 in structure "times" dcl 700 in procedure "validate_fnp_data" set ref 709 712 chain 000177 automatic structure level 1 dcl 461 set ref 482 482 chainloc 000176 automatic fixed bin(17,0) dcl 460 set ref 479* 481 482* 495* chan_no 1 000140 automatic picture(2) level 2 packed unaligned dcl 56 set ref 398* 406* cmd_info based structure level 1 dcl 2-118 cmd_infop 000152 automatic pointer dcl 2-116 set ref 144* 150 code 000101 automatic fixed bin(35,0) dcl 37 set ref 147 149* 169 171 196 198 222 224 291* 292 311* 312 322 333* 334 358* 360 383 385 421* 422 422* 448* 451 468 475* 477 482* 483 511 514 534* 535 538* 539 551* 571* 576* 577 587* 606* 610* 611 628* 630 636* 705* 707 725* com_err_ 000036 constant entry external dcl 105 ref 149 constants_computed 000012 internal static bit(1) initial unaligned dcl 128 set ref 728 745* corep 000112 automatic pointer dcl 41 set ref 311* 333* 422* 475* 482* 534* 538* 576* 610* 628* 705* 775* 776 criom 000015 internal static fixed bin(17,0) dcl 131 set ref 534* 733* crldt 000013 internal static fixed bin(17,0) dcl 129 set ref 705* 731* crmod 000014 internal static fixed bin(17,0) dcl 130 set ref 475* 732* crtdt 000016 internal static fixed bin(17,0) dcl 132 set ref 311* 734* cv_oct_check_ 000042 constant entry external dcl 107 ref 291 421 date 2 000177 automatic bit(6) array level 2 in structure "chain" packed unaligned dcl 461 in procedure "setup_module_table" set ref 493 date 12 based char(6) array level 4 in structure "fnptab" dcl 72 in procedure "db_fnp_util_" set ref 155 155 155 155 155 155 493* db_fnp_memory_$fetch 000024 constant entry external dcl 100 ref 311 333 475 482 534 538 576 610 628 705 db_fnp_sym_util_$get_length 000030 constant entry external dcl 102 ref 738 db_fnp_sym_util_$get_value 000026 constant entry external dcl 101 ref 731 732 733 734 735 736 737 764 dev_type 0(09) based bit(5) array level 3 packed unaligned dcl 1-83 ref 545 547 divide builtin function dcl 114 ref 649 dot 0(09) 000140 automatic char(1) level 2 packed unaligned dcl 56 set ref 394* entries 1 based structure array level 2 dcl 64 error_table_$bad_arg 000050 external static fixed bin(35,0) dcl 111 ref 358 375 429 571 606 error_table_$noentry 000052 external static fixed bin(35,0) dcl 112 ref 185 expr_info based structure level 1 dcl 2-70 expr_infop 000150 automatic pointer dcl 2-68 set ref 288* 289 289 289 316 317 327 328 331 332 333 336 337 346 347 348 349 350 351 flags based structure array level 2 in structure "iom_table" packed unaligned dcl 1-83 in procedure "db_fnp_util_" flags based structure level 2 in structure "expr_info" dcl 2-70 in procedure "db_fnp_util_" flags based structure array level 2 in structure "lsla_table" packed unaligned dcl 1-92 in procedure "db_fnp_util_" flush 212 based bit(1) level 2 dcl 2-118 set ref 150* fnp 000100 automatic fixed bin(17,0) dcl 36 set ref 154 155 155 155 155 155 155 155 155 177 178 180 203 205 206 233 234 245 311* 327 329 331 333* 344 346 348 350 442 471 475* 482* 486 491 493 498 499 531 534* 538* 541 542 545 547 550 566 568 576* 581 583 584 601 603 610* 614 615 621 622 626 628* 628 632 633 679 684 705* 709 709 709 711 712 776* 778* fnp_addr 000110 automatic fixed bin(17,0) dcl 40 set ref 220* 230 230 234 247* 249* fnp_name 000140 automatic char(1) level 2 packed unaligned dcl 56 set ref 393* fnptab based structure level 1 dcl 72 fnptabp 000010 internal static pointer initial dcl 127 set ref 154 155 155 155 155 155 155 155 155 177 178 180 203 205 206 233 234 245 327 329 331 344 346 348 350 442 471 481 486 491 493 498 499 531 541 542 545 547 550 566 568 581 583 584 601 603 614 615 621 622 626 628 632 633 678 678 679 684 709 709 709 711 712 725 725* 740 740 741 743 744 force_sw 000135 automatic bit(1) unaligned dcl 53 set ref 217* 252 269* 278* get_fnp_name_ 000046 constant entry external dcl 109 ref 393 get_temp_segment_ 000044 constant entry external dcl 108 ref 725 h1ch 000020 internal static fixed bin(17,0) dcl 134 set ref 545 737* h_sfcm 000017 internal static fixed bin(17,0) dcl 133 set ref 333 628 735* hbound builtin function dcl 114 ref 481 543 579 616 678 740 hsla_mbx_addr 1116 based fixed bin(17,0) array level 4 dcl 72 set ref 327 583* hsla_tab_addr 407 based fixed bin(17,0) array level 4 dcl 72 set ref 542* 545* 568 hsla_table based structure array level 1 packed unaligned dcl 1-100 ref 561 576 579 579 hsla_tib_addr 1117 based fixed bin(17,0) array level 4 packed unaligned dcl 72 set ref 329 331 581* hslatab_init 0(08) based bit(1) array level 4 packed unaligned dcl 72 set ref 566 584* hwcm based structure level 1 dcl 1-70 hwcm_addr 3 based fixed bin(17,0) level 2 dcl 2-70 set ref 327* 333 348* hwcm_known 0(02) based bit(1) level 3 packed unaligned dcl 2-70 set ref 289* 328* 349* hwcm_len 000022 internal static fixed bin(17,0) dcl 136 set ref 327 738* i 000174 automatic fixed bin(17,0) dcl 459 in procedure "setup_module_table" set ref 474* 481 485* 485 486 491 493 498 i 000100 automatic fixed bin(17,0) dcl 562 in procedure "setup_hsla_table" set ref 568* 569 576* 579* 581 581* i 000224 automatic fixed bin(17,0) dcl 676 in procedure "cv_lsla_slot_no" set ref 678* 679 681 684 686* i 000102 automatic fixed bin(17,0) dcl 38 in procedure "db_fnp_util_" set ref 154* 155 155 155 155 155 155 155 155* 177* 178 180* 203* 204 208 233* 234 237* i 000100 automatic fixed bin(17,0) dcl 529 in procedure "setup_iom_table" set ref 543* 545 545 545 547 547 547* i 000100 automatic fixed bin(17,0) dcl 598 in procedure "setup_lsla_table" set ref 603* 604 610* 616* 617 619 621 622* i 000246 automatic fixed bin(17,0) dcl 723 in procedure "compute_constants" set ref 740* 741* icw based structure level 1 dcl 1-64 init_switches based structure array level 3 dcl 72 set ref 709* 740 740 741* ioa_ 000032 constant entry external dcl 103 ref 155 ioa_$rsnnl 000034 constant entry external dcl 104 ref 249 259 iom_table 401 based structure array level 3 in structure "fnptab" dcl 72 in procedure "db_fnp_util_" iom_table based structure array level 1 packed unaligned dcl 1-83 in procedure "db_fnp_util_" ref 528 538 543 543 iomtab_init 0(01) based bit(1) array level 4 packed unaligned dcl 72 set ref 531 550* itblp 000144 automatic pointer dcl 1-112 set ref 528 537* 538 538* 543 543 545 545 547 547 j 000101 automatic fixed bin(17,0) dcl 598 in procedure "setup_lsla_table" set ref 613* 621 622 623* 623 j 000175 automatic fixed bin(17,0) dcl 459 in procedure "setup_module_table" set ref 488* 489 489* 492* 493 493* j 000103 automatic fixed bin(17,0) dcl 38 in procedure "db_fnp_util_" set ref 204* 205 205 206 206* 229* 237* 241 245 k 000102 automatic fixed bin(17,0) dcl 598 in procedure "setup_lsla_table" set ref 613* 619 621* k 000104 automatic fixed bin(17,0) dcl 38 in procedure "db_fnp_util_" set ref 234* 235 235 238 l1ch 000021 internal static fixed bin(17,0) dcl 135 set ref 547 736* la_no 0(27) 000140 automatic picture(1) level 2 packed unaligned dcl 56 set ref 398* 405* la_type 0(18) 000140 automatic char(1) level 2 packed unaligned dcl 56 set ref 397* 402* 404* lbound builtin function dcl 114 ref 543 579 678 740 lsla_hwcm_addr 412 based fixed bin(17,0) array level 4 dcl 72 set ref 348 626* 628 lsla_sfcm_addr 413 based fixed bin(17,0) array level 4 dcl 72 set ref 350 632* lsla_slot_no 446 based fixed bin(17,0) array level 4 packed unaligned dcl 72 set ref 442 615* 622* 678 678 679 684 lsla_tab_addr 401 based fixed bin(17,0) array level 4 dcl 72 set ref 541* 547* 603 lsla_table based structure array level 1 packed unaligned dcl 1-92 ref 597 610 616 lsla_tib_addr 414 based fixed bin(17,0) array level 4 packed unaligned dcl 72 set ref 344 346 614* 621* lslatab_init 0(02) based bit(1) array level 4 packed unaligned dcl 72 set ref 601 633* mb 0(18) 000100 automatic char(2) level 2 packed unaligned dcl 756 set ref 763* mb_name 000100 automatic structure level 1 packed unaligned dcl 756 set ref 764 764 mem_word 000103 automatic bit(18) unaligned dcl 599 in procedure "setup_lsla_table" set ref 628 628 632 mem_word 000134 automatic bit(18) unaligned dcl 52 in procedure "db_fnp_util_" set ref 311 311 314 316 333 333 336 min builtin function dcl 114 ref 203 min_offset 000114 automatic fixed bin(17,0) dcl 42 set ref 232* 235 238* 247 mod builtin function dcl 114 ref 648 649 mod_name 000106 automatic char(8) unaligned dcl 39 set ref 176* 178 487* 489* 491 modch based structure level 1 dcl 64 modchp 000142 automatic pointer dcl 63 set ref 202* 203 205 206 208 modtab_init based bit(1) array level 4 packed unaligned dcl 72 set ref 471 499* name 000020 constant char(12) initial unaligned dcl 118 in procedure "db_fnp_util_" set ref 725* name 7 based char(6) array level 4 in structure "fnptab" dcl 72 in procedure "db_fnp_util_" set ref 155* 178 205 245 491* name 1 based char(4) array level 3 in structure "modch" dcl 64 in procedure "db_fnp_util_" set ref 205* name 0(18) 000177 automatic bit(6) array level 2 in structure "chain" packed unaligned dcl 461 in procedure "setup_module_table" set ref 489 next 000177 automatic bit(18) level 2 packed unaligned dcl 461 set ref 475 475 479 495 nmodules 6 based fixed bin(17,0) array level 3 in structure "fnptab" dcl 72 in procedure "db_fnp_util_" set ref 154 177 203 233 498* nmodules based fixed bin(17,0) level 2 in structure "modch" dcl 64 in procedure "db_fnp_util_" set ref 203 208* null builtin function dcl 114 ref 725 776 num 0(09) 000100 automatic picture(1) level 2 packed unaligned dcl 756 set ref 762* op based structure level 1 packed unaligned dcl 2-99 paren_sw 000136 automatic bit(1) unaligned dcl 54 set ref 217* 252 257 270* 279* parse_tty_name_ 000040 constant entry external dcl 106 ref 299 426 per_fnp based structure array level 2 dcl 72 per_hsla 1116 based structure array level 3 dcl 72 per_lsla 412 based structure array level 3 dcl 72 per_module 7 based structure array level 3 dcl 72 set ref 481 rtrim builtin function dcl 114 ref 245 sfcm_addr 4 based fixed bin(17,0) level 2 dcl 2-70 set ref 336* 350* sfcm_known 0(03) based bit(1) level 3 packed unaligned dcl 2-70 set ref 289* 337* 351* size builtin function dcl 114 ref 528 538 561 576 597 610 slot_id 0(15) based bit(3) array level 3 packed unaligned dcl 1-92 ref 617 start 11 based fixed bin(17,0) array level 4 in structure "fnptab" dcl 72 in procedure "db_fnp_util_" set ref 155* 180 206 234 486* start 1(18) 000177 automatic bit(18) level 2 in structure "chain" packed unaligned dcl 461 in procedure "setup_module_table" set ref 486 string builtin function dcl 114 set ref 409 709* 741* 764 764 substr builtin function dcl 114 set ref 155 155 155 155 155 155 489* 493* sym based structure level 1 packed unaligned dcl 2-22 t parameter char(1) unaligned dcl 755 ref 752 761 table 0(18) based bit(18) array level 2 packed unaligned dcl 1-83 ref 545 547 tblp 000146 automatic pointer dcl 1-112 set ref 561 575* 576 576* 579 579 581 597 609* 610 610* 616 617 619 621 tib_addr 0(18) based fixed bin(17,0) array level 2 in structure "lsla_table" packed unaligned dcl 1-92 in procedure "db_fnp_util_" ref 619 621 tib_addr 0(18) based fixed bin(17,0) array level 2 in structure "hsla_table" packed unaligned dcl 1-100 in procedure "db_fnp_util_" ref 581 tib_addr 2 based fixed bin(17,0) level 2 in structure "expr_info" dcl 2-70 in procedure "db_fnp_util_" set ref 316* 331* 346* tib_known 0(01) based bit(1) level 3 packed unaligned dcl 2-70 set ref 289* 317* 332* 347* times 000234 automatic structure level 1 dcl 700 set ref 705 705 translate builtin function dcl 114 ref 176 491 tty_chan_no 000131 automatic fixed bin(17,0) dcl 49 set ref 299* 327 329 331 340 342 342 344 346 389 406 426* 437 442 564 564 648* 650 656 663 664* 681* 686* tty_fnp_no 000126 automatic fixed bin(17,0) dcl 46 set ref 295 299* 300 302 373 426* 427 433 646* 666* tty_hsla_sw 000127 automatic bit(1) unaligned dcl 47 set ref 299* 325 380 402 426* 437 516 647* 650 652 tty_la_no 000130 automatic fixed bin(17,0) dcl 48 set ref 299* 308 327 329 331 344 346 348 350 395 405 426* 437 442 445 566 568 581 583 584 601 603 614 615 621 622 626 628 632 633 649* 650 654 654 656 661 679 684 762 tty_line_no 000133 automatic fixed bin(17,0) dcl 51 set ref 291* 370* 421* 422* 437* 445* 450 647 648 649 650 tty_name 000140 automatic structure level 1 packed unaligned dcl 56 set ref 409 tty_slot_no 000132 automatic fixed bin(17,0) dcl 50 set ref 442* 443 445 663* 679 684 type 000100 automatic char(1) level 2 packed unaligned dcl 756 set ref 761* word_buf 000125 automatic bit(18) unaligned dcl 45 set ref 534 534 538 538 xlate 000000 constant char(1) initial array unaligned dcl 119 ref 489 493 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CONSOLE internal static bit(5) initial unaligned dcl 1-114 DIA internal static bit(5) initial unaligned dcl 1-114 PRINTER internal static bit(5) initial unaligned dcl 1-114 command based char unaligned dcl 2-131 db_fnp_opblocks_$ external static fixed bin(17,0) dcl 2-158 db_fnp_opcodes_$ external static fixed bin(17,0) dcl 2-88 db_fnp_symbols_$db_fnp_symbols_ external static fixed bin(17,0) dcl 2-10 env based structure level 1 dcl 2-139 envp automatic pointer dcl 2-137 exptext based structure level 1 dcl 2-34 exptextp automatic pointer dcl 2-32 hwcmp automatic pointer dcl 1-112 long_type_names internal static char(12) initial array unaligned dcl 2-60 low_mem based structure level 1 dcl 1-15 mem_array based structure level 1 dcl 1-11 memp automatic pointer dcl 1-112 opblock_table based structure level 1 dcl 2-162 opblock_tablep automatic pointer dcl 2-160 operand based char unaligned dcl 2-132 opp automatic pointer dcl 2-97 optable based structure level 1 dcl 2-92 optablep automatic pointer dcl 2-90 reloc_abs internal static fixed bin(17,0) initial dcl 2-40 reloc_hwcm internal static fixed bin(17,0) initial dcl 2-40 reloc_meters internal static fixed bin(17,0) initial dcl 2-40 reloc_sfcm internal static fixed bin(17,0) initial dcl 2-40 reloc_tib internal static fixed bin(17,0) initial dcl 2-40 short_type_names internal static char(4) initial array unaligned dcl 2-62 symbol_table based structure level 1 dcl 2-14 symbol_tablep automatic pointer dcl 2-12 symp automatic pointer dcl 2-20 type_addr internal static fixed bin(17,0) initial dcl 2-49 type_bit internal static fixed bin(17,0) initial dcl 2-49 type_char internal static fixed bin(17,0) initial dcl 2-49 type_clock internal static fixed bin(17,0) initial dcl 2-49 type_dec internal static fixed bin(17,0) initial dcl 2-49 type_ebcdic internal static fixed bin(17,0) initial dcl 2-49 type_inst internal static fixed bin(17,0) initial dcl 2-49 type_oct internal static fixed bin(17,0) initial dcl 2-49 type_op internal static fixed bin(17,0) initial dcl 2-49 NAMES DECLARED BY EXPLICIT CONTEXT. bad_hsla 002746 constant label dcl 571 ref 564 char_to_tib_bad_arg 001532 constant label dcl 358 ref 295 300 302 314 329 342 344 char_to_tib_err 001535 constant label dcl 360 ref 312 322 334 compute_constants 003642 constant entry internal dcl 720 ref 704 cv_chan_bad 002067 constant label dcl 429 ref 433 443 cv_chan_name 001720 constant entry external dcl 415 cv_line_bad 001572 constant label dcl 375 ref 389 cv_line_no 001544 constant entry external dcl 366 ref 422 cv_lsla_slot_no 003520 constant entry internal dcl 673 ref 340 388 db_fnp_util_ 000127 constant entry external dcl 16 edit_module_addr 000527 constant entry external dcl 214 edit_module_addr_force 001073 constant entry external dcl 266 edit_module_addr_join 000551 constant label dcl 218 ref 271 280 edit_module_addr_paren 001121 constant entry external dcl 275 edit_module_offset 000634 constant label dcl 241 ref 230 get_chan_addrs 001152 constant entry external dcl 284 get_mbx_addr 004132 constant entry internal dcl 752 ref 583 626 get_special_modch 000432 constant entry external dcl 191 lookup_module 000314 constant entry external dcl 164 parse_tty_line_no 003432 constant entry internal dcl 643 ref 294 372 print_module_table 000142 constant entry external dcl 140 setup 004203 constant entry internal dcl 772 ref 143 167 194 218 287 369 418 setup_hsla_table 002712 constant entry internal dcl 558 ref 516 setup_iom_table 002455 constant entry internal dcl 525 ref 513 setup_la_table 002423 constant entry internal dcl 507 ref 321 382 441 setup_lsla_done 003317 constant label dcl 626 ref 617 setup_lsla_table 003072 constant entry internal dcl 594 ref 518 setup_module_table 002157 constant entry internal dcl 456 ref 146 168 195 221 validate_fnp_data 003565 constant entry internal dcl 697 ref 310 467 510 NAME DECLARED BY CONTEXT OR IMPLICATION. max builtin function ref 393 393 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4752 5026 4435 4762 Length 5352 4435 54 307 315 14 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME db_fnp_util_ 283 external procedure is an external procedure. setup_module_table internal procedure shares stack frame of external procedure db_fnp_util_. setup_la_table internal procedure shares stack frame of external procedure db_fnp_util_. setup_iom_table 88 internal procedure uses auto adjustable storage. setup_hsla_table 84 internal procedure uses auto adjustable storage. setup_lsla_table 110 internal procedure uses auto adjustable storage. parse_tty_line_no internal procedure shares stack frame of external procedure db_fnp_util_. cv_lsla_slot_no internal procedure shares stack frame of external procedure db_fnp_util_. validate_fnp_data internal procedure shares stack frame of external procedure db_fnp_util_. compute_constants internal procedure shares stack frame of external procedure db_fnp_util_. get_mbx_addr 78 internal procedure is called by several nonquick procedures. setup internal procedure shares stack frame of external procedure db_fnp_util_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 fnptabp db_fnp_util_ 000012 constants_computed db_fnp_util_ 000013 crldt db_fnp_util_ 000014 crmod db_fnp_util_ 000015 criom db_fnp_util_ 000016 crtdt db_fnp_util_ 000017 h_sfcm db_fnp_util_ 000020 h1ch db_fnp_util_ 000021 l1ch db_fnp_util_ 000022 hwcm_len db_fnp_util_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME db_fnp_util_ 000100 fnp db_fnp_util_ 000101 code db_fnp_util_ 000102 i db_fnp_util_ 000103 j db_fnp_util_ 000104 k db_fnp_util_ 000106 mod_name db_fnp_util_ 000110 fnp_addr db_fnp_util_ 000112 corep db_fnp_util_ 000114 min_offset db_fnp_util_ 000115 addr_temp1 db_fnp_util_ 000120 addr_temp2 db_fnp_util_ 000125 word_buf db_fnp_util_ 000126 tty_fnp_no db_fnp_util_ 000127 tty_hsla_sw db_fnp_util_ 000130 tty_la_no db_fnp_util_ 000131 tty_chan_no db_fnp_util_ 000132 tty_slot_no db_fnp_util_ 000133 tty_line_no db_fnp_util_ 000134 mem_word db_fnp_util_ 000135 force_sw db_fnp_util_ 000136 paren_sw db_fnp_util_ 000140 tty_name db_fnp_util_ 000142 modchp db_fnp_util_ 000144 itblp db_fnp_util_ 000146 tblp db_fnp_util_ 000150 expr_infop db_fnp_util_ 000152 cmd_infop db_fnp_util_ 000174 i setup_module_table 000175 j setup_module_table 000176 chainloc setup_module_table 000177 chain setup_module_table 000224 i cv_lsla_slot_no 000234 times validate_fnp_data 000246 i compute_constants get_mbx_addr 000100 mb_name get_mbx_addr setup_hsla_table 000100 i setup_hsla_table 000100 auto_hsla_table setup_hsla_table setup_iom_table 000100 i setup_iom_table 000100 auto_iom_table setup_iom_table setup_lsla_table 000100 auto_lsla_table setup_lsla_table 000100 i setup_lsla_table 000101 j setup_lsla_table 000102 k setup_lsla_table 000103 mem_word setup_lsla_table THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ge_a alloc_cs call_ext_in_desc call_ext_out_desc call_ext_out call_int_this call_int_other return alloc_auto_adj mod_fx1 shorten_stack ext_entry ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cv_oct_check_ db_fnp_memory_$fetch db_fnp_sym_util_$get_length db_fnp_sym_util_$get_value get_fnp_name_ get_temp_segment_ ioa_ ioa_$rsnnl parse_tty_name_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$noentry LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000126 140 000134 143 000147 144 000150 146 000154 147 000155 149 000157 150 000203 151 000206 154 000207 155 000222 158 000304 159 000306 164 000307 167 000334 168 000335 169 000336 171 000340 172 000341 173 000342 176 000343 177 000356 178 000372 180 000411 181 000414 182 000415 184 000416 185 000420 186 000423 187 000424 191 000425 194 000442 195 000443 196 000444 198 000446 199 000447 202 000450 203 000454 204 000465 205 000473 206 000512 207 000514 208 000516 209 000520 210 000521 214 000522 217 000547 218 000551 220 000552 221 000554 222 000555 224 000557 225 000560 226 000563 229 000564 230 000566 232 000572 233 000574 234 000607 235 000623 237 000626 238 000630 240 000632 241 000634 245 000641 246 000701 247 000710 249 000712 250 000742 252 000747 254 000766 255 000771 257 000772 259 001022 261 001067 262 001070 266 001071 269 001113 270 001115 271 001116 275 001117 278 001141 279 001142 280 001144 284 001145 287 001170 288 001171 289 001175 291 001203 292 001226 294 001230 295 001231 297 001233 299 001234 300 001265 302 001267 308 001274 310 001277 311 001300 312 001325 314 001327 316 001331 317 001334 318 001336 321 001337 322 001340 325 001342 327 001345 328 001365 329 001367 331 001410 332 001411 333 001413 334 001442 336 001444 337 001450 338 001452 340 001453 342 001456 344 001462 346 001505 347 001507 348 001511 349 001522 350 001524 351 001526 355 001530 356 001531 358 001532 360 001535 362 001536 366 001537 369 001564 370 001565 372 001567 373 001570 375 001572 377 001575 380 001576 382 001601 383 001602 385 001604 386 001605 388 001606 389 001607 393 001611 394 001632 395 001634 397 001637 398 001641 399 001652 402 001653 404 001661 405 001663 406 001672 409 001702 410 001710 411 001711 415 001712 418 001745 419 001746 420 001747 421 001755 422 002000 426 002034 427 002065 429 002067 431 002072 433 002073 437 002100 441 002111 442 002112 443 002134 445 002135 447 002141 448 002151 450 002152 451 002154 452 002156 456 002157 467 002160 468 002161 471 002164 474 002173 475 002174 477 002220 479 002223 481 002226 482 002233 483 002260 485 002263 486 002264 487 002301 488 002303 489 002310 490 002322 491 002324 492 002345 493 002352 494 002401 495 002403 496 002406 498 002407 499 002416 500 002422 507 002423 510 002424 511 002425 513 002430 514 002434 516 002437 518 002447 519 002453 525 002454 528 002462 531 002466 534 002474 535 002520 537 002523 538 002525 539 002553 541 002556 542 002576 543 002616 545 002622 547 002655 549 002677 550 002701 551 002707 552 002710 558 002711 561 002717 564 002723 566 002730 568 002740 569 002745 571 002746 573 002750 575 002751 576 002753 577 002775 579 003000 581 003004 582 003030 583 003032 584 003056 587 003067 588 003070 594 003071 597 003077 601 003103 603 003114 604 003121 606 003122 607 003124 609 003125 610 003127 611 003151 613 003154 614 003156 615 003205 616 003234 617 003241 619 003250 621 003260 622 003306 623 003314 625 003315 626 003317 628 003343 630 003403 632 003406 633 003422 636 003430 637 003431 643 003432 646 003433 647 003435 648 003443 649 003446 650 003453 652 003465 654 003470 656 003476 659 003504 661 003505 663 003511 664 003513 666 003515 667 003517 673 003520 678 003521 679 003525 681 003552 682 003554 684 003555 686 003556 687 003561 689 003562 690 003564 697 003565 704 003566 705 003567 707 003614 709 003617 711 003635 712 003637 713 003641 720 003642 725 003643 728 003670 731 003674 732 003712 733 003731 734 003750 735 003767 736 004006 737 004025 738 004044 740 004063 741 004067 742 004072 743 004074 744 004111 745 004126 746 004130 752 004131 761 004137 762 004144 763 004157 764 004161 772 004203 775 004204 776 004210 778 004217 779 004220 ----------------------------------------------------------- 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