COMPILATION LISTING OF SEGMENT tedshow_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/18/84 0924.8 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /**** format: ind3,ll80,initcol6,indattr,^inddcls,dclind4,idind16 */ 7 /**** format: struclvlind2,^ifthenstmt,^ifthendo,^ifthen,^indnoniterdo */ 8 /**** format: ^inditerdo,^indnoniterend,^indthenelse,case,^indproc,^indend */ 9 /**** format: ^delnl,^insnl,comcol41,^indcom,^indblkcom,linecom,^indcomtxt */ 10 11 ts_: tedshow_: /* show parts of bcb or dbase */ 12 proc options (variable); 13 goto start; 14 15 init: entry; 16 stk_init = "1"b; 17 return; 18 19 dcl stk (0:20) char (8) var int static; 20 dcl stkl fixed bin int static init (0); 21 dcl stk_init bit (1) int static init ("1"b); 22 dcl prefix char (1) int static init (" "); 23 24 dcl concat char (1024)var; 25 dcl work char (256) var; 26 dcl token char (8) var; 27 dcl name char (8) var; 28 dcl abp ptr based (arg_p); 29 dcl active bit (1); 30 dcl argct fixed bin; 31 dcl argno fixed bin; 32 dcl arg_l fixed bin (21); 33 dcl arg_p ptr; 34 dcl arg char (arg_l) based (arg_p); 35 dcl code fixed bin (35); 36 dcl CR bit (1); 37 dcl cu_$arg_count entry (fixed bin, fixed bin(35)); 38 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin(21), fixed bin(35)); 39 dcl td fixed bin; 40 dcl tedshow_ entry() options (variable); 41 dcl new_name bit (1); 42 dcl gvx_mark char (1); 43 dcl NLct fixed bin; 44 dcl i fixed bin; 45 dcl ioa_$ioa_switch entry() options(variable); 46 dcl ioa_$ioa_switch_nnl 47 entry() options(variable); 48 dcl printing char (96) int static options (constant) init ( 49 " !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM" || 50 "NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"); 51 52 start: 53 CR = ""b; 54 concat = ""; 55 if stk_init 56 then do; 57 stk_init = "0"b; 58 stk(*)="???"; 59 stkl = 0; 60 prefix = "@"; 61 end; 62 /**** call ioa_$ioa_switch (db_output, "stk(^i)=""^a""", stkl, stk(stkl)); */ 63 call cu_$arg_count (argct, code); 64 if (code ^= 0) 65 then do; 66 call com_err_ (code, "tedshow_"); 67 return; 68 end; 69 call cu_$arg_ptr (1, arg_p, arg_l, code); 70 if (code ^= 0) 71 then do; 72 call com_err_ (code, "tedshow_"); 73 return; 74 end; 75 bp = abp; /* for bcb, a1, a2, etc */ 76 dbase_p = ptr (bp, 0); 77 if (dbase.version ^= dbase_vers_3) 78 | (verify (dbase.rq_id, "0123456789.") ^= 0) 79 | (verify (dbase.dir_db, printing) ^= 0) 80 | (verify (dbase.person, printing) ^= 0) 81 | (verify (dbase.project, printing) ^= 0) 82 then dbase_p = null(); 83 else do; 84 dcl set_lock_$lock entry (bit(36) aligned, fixed bin, fixed bin(35)); 85 dcl error_table_$locked_by_this_process fixed bin(35) ext static; 86 if (dbase.recurs = 0) 87 | (dbase.lock = ""b) 88 then active = ""b; 89 else do; 90 /* do NOT want to alter the value of */ 91 /* dbase.lock, but want to test to */ 92 /* see if this process "owns" it. */ 93 call set_lock_$lock ((dbase.lock), -1, code); 94 /* MUST pass dbase.lock by value! */ 95 if (code = error_table_$locked_by_this_process) 96 then active = "1"b; 97 else active = ""b; 98 end; 99 end; 100 name = stk(stkl); 101 prefix = " "; 102 new_name = ""b; 103 do argno = 2 to argct; 104 call cu_$arg_ptr (argno, arg_p, arg_l, code); 105 concat = concat || " "; 106 concat = concat || arg; 107 work = ltrim (arg); 108 do while (work ^= ""); 109 token = before (work, " "); 110 if new_name 111 then do; 112 new_name = ""b; 113 name = token; 114 if (prefix = "..") 115 then call ioa_$ioa_switch (db_output, "^a", name); 116 else do; 117 do td = 1 to stkl while (stkl > 0); 118 call ioa_$ioa_switch_nnl (db_output, 119 "^[>^;:^]^a", (td = 1), stk (td)); 120 end; 121 call ioa_$ioa_switch (db_output, "^[>^;:^]^a", (stkl < 1), name); 122 if (prefix = ">") 123 then do; 124 stkl = min (hbound (stk, 1), stkl + 1); 125 stk (stkl) = name; 126 end; 127 end; 128 end; 129 else do; 130 if (substr (token, length (token), 1) = ",") 131 then do; 132 NLct = 0; 133 token = substr (token, 1, length (token) - 1); 134 end; 135 else NLct = 1; 136 if (token = "*") /* show " * :" */ 137 | (token = "<") /* pop name from stack */ 138 then do; 139 prefix = token; 140 end; 141 else if (token = ">") /* push name on stack */ 142 | (token = ".") /* use temporary name */ 143 | (token = "..") 144 then do; 145 prefix = token; 146 new_name = "1"b; 147 end; 148 else if (substr (token, 1, 1) = "[") /* literal string */ 149 then do; 150 token = ""; 151 call heading; 152 i = index (work, "]"); 153 if (i = 0) 154 then i = length (work) - 1; 155 else i = i - 2; 156 call ioa_$ioa_switch_nnl (db_output, 157 "^a", substr (work, 2, i)); 158 CR = "1"b; 159 work = substr (work, i+1); 160 end; 161 else if (token = "max") 162 then do; 163 token = ":"; 164 call heading; 165 call ioa_$ioa_switch (db_output, "b(^a) max= 1:^i(^i^[ PSEUDO^]", 166 b.name, b.maxl, b.maxln, b.pseudo); 167 last_bname = b.name; 168 end; 169 else if (token = "re") 170 then do; 171 if (dbase_p = null()) 172 then goto not_avail; 173 call tedsrch_$dis_exp (addr (dbase.regexp)); 174 end; 175 else if (token = "cf") 176 then do; 177 comptr = bp; 178 gvx_mark = ""; 179 call cf_dumper; 180 end; 181 else if (token = "gvx") 182 then do; 183 comptr = bp; 184 call gvx_dumper; 185 end; 186 else if (token = "b_") 187 then call des (addr (b.b_)); 188 else if (token = "b_*") 189 then do; 190 if (dbase_p = null()) 191 then goto not_avail; 192 do i = 0 to dbase.bufnum; 193 bp = addr (DATABASE.cb(i)); 194 call ioa_$ioa_switch_nnl (db_output, 195 "b(^a)^21t^15p spa=^2i,^2i,^2i ", 196 b.name, b.cur.sp, b.cur.sn, b.cur.pn, b.cur.ast); 197 call des$no_last (addr (b.b_)); 198 end; 199 end; 200 else if (substr (token, 1, 2) = "b(") 201 & (substr (token, length (token), 1) = ")") 202 then do; 203 if (dbase_p = null()) 204 then goto not_avail; 205 token = substr (token, 3, length (token) - 3); 206 bp = null(); 207 do i = 0 to dbase.bufnum; 208 bp = addr (DATABASE.cb(i)); 209 if (b.name = token) 210 then goto found; 211 end; 212 call ioa_$ioa_switch (db_output, "*** b(^a) not found", token); 213 return; 214 found: 215 call ioa_$ioa_switch (db_output, "--> b(^a)", token); 216 end; 217 else if (token = "nb") 218 then call des (addr (b.newb)); 219 else if (token = "ex") 220 then call des (addr (b.ex)); 221 else if (token = "bx") 222 then do; 223 token = "b_"; 224 call des (addr (b.b_)); 225 token = "ex"; 226 call des (addr (b.ex)); 227 end; 228 else if (token = "so.ex") 229 then do; 230 if (dbase_p = null()) 231 then goto not_avail; 232 sv_p = ptr (dbase.seg_p (3), b.stack_o); 233 token = "sex"; 234 call des (addr (sv.ex)); 235 end; 236 else if (token = "so.a0") 237 then do; 238 if (dbase_p = null()) 239 then goto not_avail; 240 sv_p = ptr (dbase.seg_p (3), b.stack_o); 241 token = "sa0"; 242 call des (addr (sv.a0)); 243 end; 244 else if (token = "a0") 245 then do; 246 ad_b, ad_e = 0; 247 goto do_adr; 248 end; 249 else if (token = "a1") 250 then do; 251 ad_b, ad_e = 1; 252 goto do_adr; 253 end; 254 else if (token = "a2") 255 then do; 256 ad_b, ad_e = 2; 257 goto do_adr; 258 end; 259 else if (token = "adr") 260 then do; 261 ad_b = 0; 262 ad_e = 2; 263 hold_prefix = prefix; 264 prefix = " "; 265 dcl hold_prefix char (1); 266 dcl (ad_b, ad_e) fixed bin; 267 do_adr: 268 if (ad_b ^= ad_e) 269 then do; 270 prefix = hold_prefix; 271 token = "b_"; 272 call des (addr (b.b_)); 273 end; 274 do i = ad_b to ad_e; 275 token = "a"; 276 token = token || ltrim (char (i)); 277 if b.present (i) 278 then token = token || "p"; 279 call des (addr (b.a_ (i))); 280 end; 281 end; 282 else if (token = "cd") 283 then call des (addr (b.cd)); 284 else if (token = "gb") 285 then call des (addr (b.gb)); 286 else if (token = "na") 287 then call des (addr (b.newa)); 288 else if (token = "rt") 289 then call des (addr (b.rel_temp)); 290 else if (token = "t0") 291 then call des (addr (b.temp (0))); 292 else if (token = "t1") 293 then call des (addr (b.temp (1))); 294 else if (token = "t2") 295 then call des (addr (b.temp (2))); 296 else if (token = "rl") 297 then do; 298 if (dbase_p = null()) 299 then goto not_avail; 300 call pspa (addr (dbase.rl.part1)); 301 token = ""; 302 call des$no_last (addr (dbase.rl.part2)); 303 end; 304 else if (token = "cur") 305 then call pspa (addr (b.cur)); 306 else if (token = "pend") 307 then do; 308 if (unspec (b.pend) ^= unspec (b.cur)) 309 then call pspa (addr (b.pend)); 310 end; 311 else if (token = "base") 312 then do; 313 if (dbase_p = null()) 314 then goto not_avail; 315 call dump_stk (1); 316 call dump_base; 317 end; 318 else if (token = "segs") 319 then do; 320 if (dbase_p = null()) 321 then goto not_avail; 322 call segs; 323 end; 324 else if (token = "bcb") 325 then call bcb; 326 else if (token = "stkall") 327 then do; 328 if (dbase_p = null()) 329 then goto not_avail; 330 call dump_stk (1); 331 end; 332 else if (token = "stktop") 333 then do; 334 if (dbase_p = null()) 335 then goto not_avail; 336 call dump_stk (dbase.stk_info.level); 337 end; 338 else if (substr (token, 1, 1) = "?") 339 then do; 340 if (token = "?") 341 then do; 342 do qm = 1 to hbound (item, 1); 343 call ioa_$nnl (" ""^a""", substr (item(qm), 1, 6)); 344 end; 345 call ioa_$nnl ("^2/"); 346 end; 347 else do; 348 token = substr (token, 2); 349 done = ""b; 350 do qm = 1 to hbound (item, 1) while (^done); 351 if (substr (item(qm), 1, 6) = token) 352 then do; 353 call ioa_$nnl ("^7a ^a^/", token, substr (item(qm), 7)); 354 done = "1"b; 355 end; 356 end; 357 if ^done 358 then call ioa_$nnl ("""^a"" is not defined^/", token); 359 end; 360 361 362 dcl qm fixed bin; 363 dcl done bit (1); 364 dcl ioa_$nnl entry() options(variable); 365 dcl item (39) char (18) int static options (constant) init ( 366 "? ------------", 367 "?X ------------", 368 "* ------------", 369 ". ------------", 370 ".. ------------", 371 "< ------------", 372 "> X ------------", 373 "[X ------------", 374 "[X] ------------", 375 "a0 ------------", 376 "a1 ------------", 377 "a2 ------------", 378 "adr ------------", 379 "b_ ------------", 380 "b_* ------------", 381 "base ------------", 382 "bcb ------------", 383 "bx ------------", 384 "cd ------------", 385 "cf ------------", 386 "cur ------------", 387 "ex ------------", 388 "gb ------------", 389 "gvx ------------", 390 "max ------------", 391 "na ------------", 392 "nb ------------", 393 "pend ------------", 394 "re ------------", 395 "rl ------------", 396 "rt ------------", 397 "segs ------------", 398 "so.a0 ------------", 399 "so.ex ------------", 400 "stkall------------", 401 "stktop------------", 402 "t0 ------------", 403 "t1 ------------", 404 "t2 ------------"); 405 end; 406 else do; 407 call ioa_$ioa_switch (db_output, "??? ^a", token); 408 end; 409 if (prefix = "<") & (token ^= "<") 410 then do; 411 do td = 1 to stkl while (stkl > 0); 412 call ioa_$ioa_switch_nnl (db_output, 413 "^[^/^]^1a^a", CR, prefix, stk (td)); 414 CR = ""b; 415 prefix = ":"; 416 end; 417 call ioa_$ioa_switch (db_output, ""); 418 stkl = max (0, stkl - 1); 419 name = stk (stkl); 420 prefix = " "; 421 end; 422 end; 423 work = ltrim (after (work, " ")); 424 end; 425 end; 426 if CR then call ioa_$ioa_switch (db_output, ""); 427 return; 428 429 not_avail: 430 call ioa_$ioa_switch (db_output, "tedshow_: dbase_p not available to do ^a.", token); 431 return; 432 433 heading: proc; 434 435 if move_right 436 then call ioa_$ioa_switch_nnl (db_output, 437 "^2-"); 438 call ioa_$ioa_switch_nnl (db_output, 439 " :^4a", token); 440 441 end heading; 442 443 des: proc (bd_p); 444 dcl bd_p ptr; 445 446 dcl 1 bd like buf_des based (bd_p); 447 448 if (last_bname ^= b.name) 449 then do; 450 call ioa_$ioa_switch (db_output, "^2- :---b(^a)", b.name); 451 last_bname = b.name; 452 end; 453 if (unspec (bd) = unspec (tedcommon_$no_data)) 454 then do; 455 return; 456 end; 457 458 des$no_last: entry (bd_p); 459 460 call heading; 461 call ioa_$ioa_switch (db_output, 462 "l=^4i:^i(^i^v.1tr=^4i:^i(^i^[ lv=^i 463 ^6xex_next:ex_EOD^v.1tex_lre:ex_last^]", 464 bd.l.le, bd.l.re, bd.l.ln, indent, 465 bd.r.le, bd.r.re, bd.r.ln, (token="ex"), dbase.stk_info.level, indent); 466 end des; 467 pspa: proc (sd_p); 468 dcl ( 469 sd_p ptr /* segment descr to display */ 470 ) parm; 471 dcl 1 sd like seg_des based (sd_p); 472 473 /* if (prefix ^= " ") */ 474 /* then call heading; */ 475 if (unspec (sd) = unspec (tedcommon_$no_seg)) 476 then do; 477 return; 478 end; 479 call heading; 480 call ioa_$ioa_switch (db_output, 481 "^p sn=^i pn=^i ast=^i^[(255K)^;(64K)^;(16K)^;(4K)^;(1K)^]", 482 sd.sp, sd.sn, sd.pn, sd.ast, sd.ast); 483 484 end pspa; 485 segs: proc; 486 487 call ioa_$ioa_switch (db_output, " .. ................ r/u c/l"); 488 do i = -1 to dbase.seg_ct; 489 if (dbase.seg_p (i) ^= null ()) 490 then do; 491 if active 492 then do; 493 call hcs_$fs_get_path_name (dbase.seg_p (i), 494 dname, 0, ename, code); 495 if (code ^= 0) then call com_err_ (code, "get_pn", "^p", 496 dbase.seg_p (i)); 497 call hcs_$status_long (dname, ename, 1, addr (sb), 498 null(), code); 499 if (code ^= 0) then call com_err_ (code, "stat_lg", "^a > ^a", 500 dname, ename); 501 call ioa_$ioa_switch_nnl (db_output, 502 " ^2i ^16p ^3i ^3i", i, dbase.seg_p (i), 503 sb.records_used, sb.current_length); 504 end; 505 else call ioa_$ioa_switch_nnl (db_output, 506 " ^2i ^16p ??? ???", i, dbase.seg_p (i)); 507 508 if (i = 0) 509 then call ioa_$ioa_switch (db_output, " segs=^b", 510 substr (dbase.inuse_seg,1,dbase.seg_ct)); 511 else if (i = 1) 512 then call ioa_$ioa_switch (db_output, " 1K=^b 4K=^b", dbase.inuse_1K,dbase.inuse_4K); 513 else if (i = 2) 514 then call ioa_$ioa_switch (db_output, " 16K=^b", dbase.inuse_16K); 515 else call ioa_$ioa_switch (db_output, ""); 516 end; 517 end; 518 519 dcl hcs_$status_long entry (char(*), char(*), fixed bin(1), ptr, ptr, 520 fixed bin(35)); 521 dcl hcs_$fs_get_path_name entry (ptr, char(*), fixed bin, char(*), 522 fixed bin(35)); 523 dcl dname char (168); 524 dcl ename char (32); 525 dcl code fixed bin (35); 1 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 1 2 1 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 1 4 1 5 /* This include file contains branch and link structures returned by 1 6* hcs_$status_ and hcs_$status_long. */ 1 7 1 8 dcl 1 status_branch aligned based (status_ptr), 1 9 2 short aligned, 1 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 1 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 1 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 1 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 1 14 3 dtu bit (36) unaligned, /* date/time last used */ 1 15 3 mode bit (5) unaligned, /* caller's effective access */ 1 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 1 17 3 pad1 bit (8) unaligned, 1 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 1 19 1 20 /* Limit of information returned by hcs_$status_ */ 1 21 1 22 2 long aligned, 1 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 1 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 1 25 3 lvid bit (36) unaligned, /* logical volume ID */ 1 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 1 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 1 28 3 pad2 bit (8) unaligned, 1 29 3 copy_switch bit (1) unaligned, /* copy switch */ 1 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 1 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 1 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 1 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 1 34 3 pad3 bit (5) unaligned, 1 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 1 36 3 uid bit (36) unaligned; /* unique ID */ 1 37 1 38 dcl 1 status_link aligned based (status_ptr), 1 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 1 40 2 nnames fixed bin (16) unaligned unsigned, 1 41 2 names_relp bit (18) unaligned, 1 42 2 dtem bit (36) unaligned, 1 43 2 dtd bit (36) unaligned, 1 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 1 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 1 46 1 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 1 48 based (pointer (status_area_ptr, status_branch.names_relp)), 1 49 /* array of names returned */ 1 50 status_pathname character (status_link.pathname_length) aligned 1 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 1 52 /* link target path */ 1 53 status_area_ptr pointer, 1 54 status_ptr pointer; 1 55 1 56 dcl (Link initial (0), 1 57 Segment initial (1), 1 58 Directory initial (2)) fixed bin internal static options (constant); 1 59 /* values for type fields declared above */ 1 60 1 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 526 527 dcl 1 sb like status_branch; 528 529 530 end segs; 531 dump_base: proc; 532 533 534 call ioa_$ioa_switch (db_output, " version=^i recurs=^i bwd=^p cba_p=^p eval_p=^p", 535 dbase.version, dbase.recurs, dbase.bwd, dbase.cba_p, dbase.eval_p); 536 call segs; 537 538 call ioa_$ioa_switch (db_output, " inuse:16K=^.b 4K=^.b 1K=^.b seg=^.b", 539 dbase.inuse_16K, dbase.inuse_4K, dbase.inuse_1K, 540 substr (dbase.inuse_seg, 1, dbase.seg_ct + 1)); 541 dcl date_time_ entry options (variable) returns (char (21)); 542 call ioa_$ioa_switch (db_output, " time=^a ^a seg_ct=^i argct=^i S_count=^i", 543 date_time_ (dbase.time), dbase.rq_id, dbase.seg_ct, dbase.argct, 544 dbase.S_count); 545 call ioa_$ioa_switch (db_output, " not_read_ct=^i at_break=^i bufnum=^i lock=^.3b", 546 dbase.not_read_ct, dbase.at_break, dbase.bufnum, dbase.lock); 547 call ioa_$ioa_switch (db_output, " cb_c_r=^6.3b cb_w_r=^6.3b", dbase.cb_c_r, dbase.cb_w_r); 548 call ioa_$ioa_switch (db_output, " ^[ flow^]^[ break^]^[ edit^]^[ input^]^[ old^]" 549 || "^[ read^]^[ lit^]", 550 dbase.flow_sw, dbase.break_sw, dbase.edit_sw, dbase.input_sw, 551 dbase.old_style, dbase.read_sw, dbase.lit_sw); 552 call ioa_$ioa_switch (db_output, " name=^a ^a.^a comment=^a", dbase.tedname, 553 dbase.person, dbase.project, dbase.comment); 554 call ioa_$ioa_switch (db_output, " dir_db=^a^[ REMOTE^]", dbase.dir_db, dbase.remote_sw); 555 call ioa_$ioa_switch (db_output, " error=""^a"" err_go=""^a""", dbase.err_msg, dbase.err_go); 556 call tedshow_ (dbase_p, "rl"); 557 558 do i = 0 to dbase.bufnum; 559 call tedshow_ (addr (DATABASE.cb(i)), 560 "..", ltrim(char(i)), "bcb"); 561 end; 562 563 end dump_base; 564 dcl 1 DATABASE based (dbase_p), 565 2 zzzzzz like dbase, 566 2 cb (0:DATABASE.bufnum) like b; 567 dump_stk: proc (lower); 568 dcl lower fixed bin (21); 569 dcl seg_fault_error condition; 570 dcl j fixed bin (21); 571 dcl tbp ptr; 572 dcl str char (2048)based; 573 574 on condition (seg_fault_error) 575 begin; 576 call ioa_$ioa_switch (db_output, " curp=x|x top=x level=x next=x"); 577 goto seg_flt; 578 end; 579 call ioa_$ioa_switch (db_output, " curp=^p top=^p level=^d next=^d", 580 dbase.stk_info.curp, dbase.stk_info.top, dbase.stk_info.level, 581 dbase.stk_info.next); 582 if (dbase.seg_p (3) = null ()) | (dbase.stk_info.level = 0) | ^active 583 then return; 584 sv_p = dbase.stk_info.top; 585 dcl dd (2) char (80)var int static options(constant) init ( 586 " lvl) this ...sv..... ...bcb.... (lines) .link. b.ex..", 587 "^04i) ^04i ^00000010p ^00000010p (^005i) ^06.3b ^4i,^4i,^4i,^4i^/^-b(^a) pn=^i"); 588 call ioa_$ioa_switch (db_output, dd (1)); 589 do i = dbase.stk_info.level to lower by -1; 590 tbp = sv.bp; 591 call tedcount_lines_ (tbp, 1, tbp -> b.maxl, j); 592 call ioa_$ioa_switch (db_output, dd (2), i, sv.this, sv_p, tbp, j, sv.stackl, sv.ex.l.le, 593 sv.ex.l.re, sv.ex.r.le, sv.ex.r.re, tbp -> b.name, sv.pn); 594 if (sv.pn > 0) 595 then call ioa_$ioa_switch (db_output, "^2-""^va""", sv.pl (0), 596 substr (sv.pp (0) -> str, 1, sv.pl (0))); 597 sv_p = sv.prev; 598 end; 599 seg_flt: 600 revert condition (seg_fault_error); 601 end dump_stk; 602 603 bcb: proc; 604 605 call heading; 606 if (b.name = "") 607 then do; 608 call ioa_$ioa_switch (db_output, " ^10p EMPTY", bp); 609 end; 610 else do; 611 call ioa_$ioa_switch (db_output, " ^10p old=^i,^i new=^i,^i", 612 bp, b.old.le, b.old.re, b.new.le, b.new.re); 613 stkl = stkl + 1; 614 stk (stkl) = ".."; 615 call tedshow_ (bp, "max cur b_ nb ex a0 a1 a2 cd gb na rt t0 t1 t2"); 616 stkl = stkl - 1; 617 if b.mod_sw | b.terminate | b.get_bit_count | b.force_name 618 | b.no_io | b.not_pasted | b.initiate | b.ck_ptr_sw 619 then call ioa_$ioa_switch (db_output, " ^[ mod^]^[ term^]^[ getbc^]^[ force^]" 620 || "^[ ^I/O^]^[ ^^paste^]^[ init^]^[ ckptr^]", 621 b.mod_sw, b.terminate, b.get_bit_count, b.force_name, b.no_io, 622 b.not_pasted, b.initiate, b.ck_ptr_sw); 623 if (b.dname ^= "") 624 then call ioa_$ioa_switch (db_output, "^12x^a^[ > ^a ^a ^a^[ [trust]^]^]", 625 b.dname, b.file_sw, b.ename, b.kind, b.cname, 626 b.trust_sw); 627 end; 628 end bcb; 629 gvx_dumper: proc; 630 dcl ti fixed bin; 631 632 call ioa_$ioa_switch (db_output, "^[^14p^;^s^]max=^i tot=^i srch=^i mk=^i ic=^i", db_gv, 633 comptr, gvx.max_len, gvx.tot_len, gvx.srch_len, gvx.mk_list, gvx.ic); 634 635 ti = gvx.ic; /* save the IC value */ 636 gvx_mark = "~"; 637 gvx.ic = 1; 638 do while (gvx.ic < gvx.tot_len); 639 if (gvx.ic = gvx.srch_len+1) 640 then call ioa_$ioa_switch (db_output, "^[^14x^] |--srch_len=^i", db_gv, gvx.srch_len); 641 call cf_dumper; 642 gvx.ic = gvx.ic + cf.siz; 643 end; 644 call ioa_$ioa_switch (db_output, "^[^14p^;^s^] |---tot_len=^i", db_gv, 645 addr (gvx.word (gvx.ic)), gvx.tot_len); 646 gvx.ic = ti; /* restore the IC value */ 647 648 end gvx_dumper; 649 cf_dumper: proc; 650 651 re_dump: 652 if (gvx.ic > gvx.tot_len) 653 then do; 654 call ioa_$ioa_switch (db_output, "ERROR: ic=^i > tot=^i", gvx.ic, gvx.tot_len); 655 return; 656 end; 657 cfp = addr (gvx.word (gvx.ic)); 658 call ioa_$ioa_switch_nnl (db_output, 659 "^[^14p^;^s^]^1a^[^p^-^;^s^]^3i# ^2iop ^3isiz ^3ilen ", 660 db_gv, cfp, gvx_mark, lg_sw, cfp, gvx.ic, cf.op, cf.siz, cf.len); 661 if (cf.op >= -7) & (cf.op <= 22) 662 then goto show (cf.op); 663 call ioa_$ioa_switch (db_output, " ERROR"); 664 return; 665 666 show (-7): /* test done, was success */ 667 call ioa_$ioa_switch (db_output, "success"); 668 return; 669 show (-6): /* search test */ 670 call ioa_$ioa_switch (db_output, "t=^i f=^i //", cft.t, cft.f); 671 exp_p = addr (cft.cexpml); 672 goto regexp; 673 show (-5): /* evaluation test */ 674 call ioa_$ioa_switch (db_output, "t=^i f=^i ^a", cft.t, cft.f, cft.da); 675 return; 676 show (-4): /* evaluation replacement */ 677 call ioa_$ioa_switch (db_output, "(r) ^a", cf.da); 678 return; 679 show (-3): /* x\= replacement */ 680 call ioa_$ioa_switch (db_output, "^a\=", cf.da); 681 return; 682 show (-2): /* & replacement */ 683 call ioa_$ioa_switch (db_output, "&"); 684 return; 685 show (-1): /* literal replacement */ 686 call ioa_$ioa_switch (db_output, """^va""", cf.len, cf.da); 687 return; 688 show (00): /* end of program */ 689 call ioa_$ioa_switch (db_output, "EOP"); 690 return; 691 show (01): /* ( address processing */ 692 call ioa_$ioa_switch (db_output, "(^i,^i)", cfa.ad1, cfa.ad2); 693 return; 694 show (04): /* K - kopy-append */ 695 show (05): /* M - move-append */ 696 show (06): /* k - kopy */ 697 show (07): /* m - move */ 698 call ioa_$ioa_switch (db_output, "^a(^.3b) ^i", substr (op_mnem, cf.op, 1), cfmk.cb_r, 699 cfmk.link); 700 return; 701 show (11): /* t - type to user_output */ 702 show (12): /* T - type to error_output */ 703 call ioa_$ioa_switch (db_output, "^a|^a|", substr (op_mnem, cf.op, 1), cf.da); 704 return; 705 show (17): /* { - evaluation */ 706 call ioa_$ioa_switch (db_output, "^a", cf.da); 707 return; 708 show (18): /* a - append */ 709 show (19): /* c - change */ 710 show (20): /* i - insert */ 711 call ioa_$ioa_switch (db_output, "^a ^va\f", substr (op_mnem, cf.op, 1), cf.len, cf.da); 712 return; 713 show (08): /* s - substitute */ 714 show (15): /* u - lowercase translate */ 715 show (16): /* U - uppercase translate */ 716 call ioa_$ioa_switch (db_output, "^a/.../", substr (op_mnem, cf.op, 1)); 717 exp_p = addr (cfx.cexpml); 718 regexp: 719 call tedsrch_$dis_exp (exp_p); 720 return; 721 722 dcl exp_p ptr; 723 724 show (02): /* p - print */ 725 show (03): /* P - print w/ linenumber */ 726 show (09): /* d - delete */ 727 show (10): /* = - linenumber */ 728 show (13): /* l - linefeed to user_output */ 729 show (14): /* L - linefeed to error_output */ 730 show (22): /* > -stop global if, goto */ 731 call ioa_$ioa_switch (db_output, "^a", substr (op_mnem, cf.op, 1)); 732 return; 733 show (21): /* SP !! */ 734 call ioa_$ioa_switch (db_output, "SP shouldn't be here"); 735 return; 736 737 /**** 00000000011111111112222 */ 738 /**** 12345678901234567890123 */ 739 dcl op_mnem char (22) int static init ("(pPKMkmsd=tTlLuU{aci >"); 740 741 end cf_dumper; 742 dcl com_err_ entry() options(variable); 743 dcl tedsrch_$dis_exp entry (ptr); 744 dcl last_bname char(16) int static init (""); 745 dcl ( 746 addr, after, before, char, hbound, index, length, ltrim, max, min, null, ptr, substr, unspec, verify 747 ) builtin; 748 749 bf: entry; indent = 17; return; 750 dcl indent fixed bin int static init (26); 751 mlf: entry; move_right = ""b; return; 752 mln: entry; move_right = "1"b; return; 753 dcl move_right bit (1) int static init (""b); 754 lgf: entry; lg_sw = ""b; return; 755 lgn: entry; lg_sw = "1"b; return; 756 dcl lg_sw bit (1) int static init (""b); 2 1 /* BEGIN INCLUDE FILE ..... tedgvd.incl.pl1 ..... 06/29/82 J Falksen */ 2 2 2 3 dcl (adr_op init (01), /* ( address processing */ 2 4 2 5 srepl_op init (-1), /* literal replace string */ 2 6 sself_op init (-2), /* "&" replace */ 2 7 sdup_op init (-3), /* "x\=" duplication */ 2 8 seval_op init (-4), /* "\g{}" processing */ 2 9 teval_op init (-5), /* evaluation test */ 2 10 tsrch_op init (-6), /* search test */ 2 11 tdone_op init (-7) /* test succeeds */ 2 12 ) fixed bin int static options (constant); 2 13 2 14 dcl comptr ptr; 2 15 dcl 1 gvx based (comptr), /* compiled gv request */ 2 16 2 hdr, 2 17 3 max_len fixed bin (24), /* max size available (words) */ 2 18 3 tot_len fixed bin (24), /* total size in use (words) */ 2 19 3 srch_len fixed bin (24), /* search size (words) */ 2 20 3 mk_list fixed bin (24), /* list of mk requests compiled */ 2 21 3 printing bit (1), /* 1- contains "pP=lLtT" */ 2 22 3 ic fixed bin, /* instruction counter */ 2 23 2 word (gvx.tot_len) fixed bin (35); /* compiled statement */ 2 24 2 25 dcl cfp ptr; 2 26 dcl 1 cf based (cfp), /* compiled function */ 2 27 2 hdr, 2 28 3 op fixed bin, /* operation */ 2 29 3 siz fixed bin (24), /* size of structure */ 2 30 3 len fixed bin, /* length of string */ 2 31 2 da char (cf.len); /* string data */ 2 32 2 33 dcl 1 cfmk based (cfp), /* compiled mk */ 2 34 2 hdr like cf.hdr, 2 35 2 cb_r bit (18) aligned, /* offset of destination bcb */ 2 36 2 link fixed bin; /* link to next mk entry */ 2 37 2 38 dcl 1 cfa based (cfp), /* compiled address */ 2 39 2 hdr like cf.hdr, 2 40 2 (ad1, ad2) fixed bin (21); /* 1st,2nd address values */ 2 41 2 42 dcl 1 cft based (cfp), /* compiled test */ 2 43 2 hdr like cf.hdr, 2 44 2 (t, f) fixed bin, /* true/false next location offset */ 2 45 2 cexpml fixed bin, /* max length of expr area */ 2 46 2 cexpl fixed bin, /* length set by tedsrch_$compile */ 2 47 2 da char (cft.len); /* text of {}, compiled // */ 2 48 2 49 dcl 1 cfx based (cfp), /* regexp / eval */ 2 50 2 hdr like cf.hdr, 2 51 2 cexpml fixed bin, /* max length of expr area */ 2 52 2 cexpl fixed bin, /* length set by tedsrch_$compile */ 2 53 2 da char (cft.len); /* text of {}, compiled // */ 2 54 2 55 /* END INCLUDE FILE ..... tedgvd.incl.pl1 ..... */ 757 3 1 /* BEGIN INCLUDE FILE ..... tedcommon_.incl.pl1 ..... 02/15/82 J Falksen */ 3 2 3 3 /* ted common data area */ 3 4 3 5 dcl 1 tedcommon_$id ext static, 3 6 2 ted_vers char(12)var; /* version.revision */ 3 7 3 8 dcl 1 tedcommon_$no_data like buf_des ext static; 3 9 dcl 1 tedcommon_$no_seg like seg_des ext static; 3 10 3 11 dcl 1 tedcommon_$etc ext static, 3 12 2 com_blank bit(1)aligned, 3 13 2 com1_blank bit(1)aligned, 3 14 2 caps bit(1)aligned, 3 15 2 reset_read bit(1)aligned, 3 16 2 sws, 3 17 3 (db_ted, lg_ted) bit(1)aligned, 3 18 3 (db_addr, lg_addr) bit(1)aligned, 3 19 3 (db_eval, lg_eval) bit(1)aligned, 3 20 3 (db_sort, lg_sort) bit(1)aligned, 3 21 3 (db_gv, lg_gv) bit(1)aligned, 3 22 3 (db_util, lg_util) bit(1)aligned, 3 23 3 (db_srch, lg_srch) bit(1)aligned, 3 24 3 (db_glob, lg_glob) bit(1)aligned, 3 25 3 (db_trac, lg_sp4) bit(1)aligned, 3 26 3 (db_Ed, lg_sp3) bit(1)aligned, 3 27 3 (db_sp2, lg_sp2) bit(1)aligned, 3 28 3 (db_sp1, lg_sp1) bit(1)aligned, 3 29 3 (db_catch, lg_catch)bit(1)aligned, 3 30 2 db_output ptr; 3 31 3 32 /* END INCLUDE FILE ..... tedcommon_.incl.pl1 ..... */ 758 4 1 /* BEGIN INCLUDE FILE ..... tedbcb.incl.pl1 ..... 01/29/82 J Falksen */ 4 2 4 3 /* UPDATE HISTORY (finally) */ 4 4 /* EL# date TR comments */ 4 5 /* --- 84-10-19 -------- add sws.INPUT */ 4 6 /* --- 84-10-29 -------- add sws.invoking */ 4 7 4 8 /* if the structure of buf_des changes, tedcommon_.alm and */ 4 9 /* tedcommon.incl.pl1 must be appropriately changed */ 4 10 4 11 dcl 1 buf_des (all_des) based (bp), /* buffer part descriptor */ 4 12 2 l, /* left end (LHE) data (see Note 1) */ 4 13 3 ln fixed bin (21), /* line number */ 4 14 3 le fixed bin (21), /* left end (LE) offset */ 4 15 3 re fixed bin (21), /* right end (RE) offset */ 4 16 2 r like buf_des.l; /* right end (RHE) data */ 4 17 4 18 /* Note1: buf_des describes 2 slightly different things, buffer parts and */ 4 19 /* addresses. These are the circumstances: */ 4 20 /* */ 4 21 /* */ 4 22 /* |.........................................| */ 4 23 /* b.cur.sp| |.....................| | */ 4 24 /* Buffer: xxxxxxxxxxwwwwwwwwwwwww......wwwwwwxxxxxxxxxx */ 4 25 /* | | | | | */ 4 26 /* b.b_.l.le| b.b_.l.re| b.b_.r.le| | maxl| */ 4 27 /* b.b_.l.ln| b.b_.r.le| maxln| */ 4 28 /* b.b_.r.ln| */ 4 29 /* b.b_.l.ln (if known) tells the # of lines in left part of window */ 4 30 /* b.b_.r.ln (if known) tells the # of lines the whole window */ 4 31 /* b.maxln (if known) tells the # of lines in the whole buffer */ 4 32 /* Either left or right part may be null. A ^read file */ 4 33 /* is in the right part. A file is always read at the */ 4 34 /* upper end of the hole. This will usually minimize the */ 4 35 /* amount of data movement during subsequent editing */ 4 36 /* operations. */ 4 37 /* */ 4 38 /* Data movement which occurs within a request, for example substitute, can */ 4 39 /* cause an offset to temporarily point into the hole. This will clear up */ 4 40 /* before the operation is complete. */ 4 41 4 42 /* N */ 4 43 /* Address: ....xxxxxxxxxxsssss -- sssssssxxxxxxxxxxL.... */ 4 44 /* | | | | */ 4 45 /* l.le| l.re| r.le| r.re| */ 4 46 /* l.ln| r.ln| */ 4 47 /* l.re is the beginning of the string addressed. */ 4 48 /* l.le is the beginning of line containing location l.re */ 4 49 /* Thus l.ln is related to both l.re and l.le */ 4 50 /* r.re is the end of the string addressed. */ 4 51 /* r.le is the end of line containing location r.re */ 4 52 /* Thus r.ln is related to both r.re and r.le */ 4 53 /* (l.le and r.le relate to the same line when 1 line is addressed) */ 4 54 /* In line mode each request starts with l.re=l.le & r.re=r.le */ 4 55 /* In string mode a global request forces these conditions. */ 4 56 4 57 /*** b_c/b_s reference the string which represents the buffer data. */ 4 58 dcl b_c (b.maxl) char (1) based (b.cur.sp); 4 59 dcl b_s char (b.maxl) based (b.cur.sp); 4 60 4 61 dcl (live_des init (8), 4 62 all_des init (13), 4 63 reloc_first init (2), /* where to begin minus 1 */ 4 64 reloc_last init (8) /* where to stop */ 4 65 ) fixed bin int static options (constant); 4 66 dcl bp ptr; 4 67 dcl 1 b based (bp), /* ted buffer control block */ 4 68 2 b_ like buf_des, /* defines buffer limits */ 4 69 2 newb like buf_des, /* pending buffer values */ 4 70 2 ex like buf_des, /* execution limits */ 4 71 2 a_ (0:2) like buf_des, /* address data */ 4 72 /* (0) "cur location" */ 4 73 /* (1) 1st addr result */ 4 74 /* (2) 2nd addr result */ 4 75 2 cd like buf_des, /* copy destination */ 4 76 2 gb like buf_des, /* info for global processing */ 4 77 2 newa like buf_des, /* pending address values */ 4 78 /* ----limit of relocation---- */ 4 79 /* these are not relocated because they define the relocation data */ 4 80 2 rel_temp like buf_des, /* hold during relocation */ 4 81 2 temp (0:2) like buf_des, /* hold during [.]addr processing */ 4 82 2 old, /* where string used to be */ 4 83 3 (le,re) fixed bin (21), /* ends of range */ 4 84 2 new like b.old, /* where string has gone to */ 4 85 2 test like b.old, /* allowable relocatable range */ 4 86 /* (may be 1 or 2 larger than b.old) */ 4 87 2 cur like seg_des, /* CURRENT buffer area info */ 4 88 /* (see note 2) */ 4 89 2 pend like seg_des, /* PENDING buffer area info */ 4 90 2 file_d, /* file related data */ 4 91 3 dtcm bit(36), /* when read seg was modified */ 4 92 3 uid bit(36), /* unique ID of segment */ 4 93 3 dname char(168), /* directory of file */ 4 94 3 ename char(32), /* entry of file */ 4 95 3 cname char(32), /* component of file */ 4 96 3 kind char(1)unal, /* kind of component */ 4 97 /* " "-none, ":"-archive */ 4 98 /* "|"-superfile */ 4 99 3 sws unal, 4 100 4 file_sw bit(1), /* 1-file associated */ 4 101 4 trust_sw bit(1), /* 1-file name trustable */ 4 102 4 mod_sw bit(1), /* 1-buffer has been modified */ 4 103 4 terminate bit(1), /* 1-dp points to file, terminate */ 4 104 4 get_bit_count bit(1), /* 1-get_bit_count before using this */ 4 105 /* buffer, it may have been modified by */ 4 106 /* externally via [ted$buffer xx] usage */ 4 107 4 force_name bit(1), /* 1-name has been forced */ 4 108 4 no_io bit(1), /* 1-no r w ^b allowed */ 4 109 /* (external string edit) */ 4 110 4 not_pasted bit(1), /* 1-data was moved into buffer but */ 4 111 /* has not been read anywhere */ 4 112 4 initiate bit(1), /* 1-must initiate on restart */ 4 113 /* (b% and b!) */ 4 114 4 ck_ptr_sw bit(1), /* 1-if segment is external, must */ 4 115 /* check pointer before ref */ 4 116 4 pseudo bit (1), /* 1-^read or read-only buffer */ 4 117 4 INPUT bit (1), /* 1-active INPUT mode on buffer */ 4 118 4 invoking bit (1), /* 1-buffer being invoked */ 4 119 4 fill bit (14), 4 120 2 name char(16), /* buffer name */ 4 121 2 fill char(27), 4 122 2 stackl bit (18)aligned, /* offset of list of stacked data */ 4 123 2 stack_o bit (18)aligned, /* offset of data being relocated */ 4 124 2 present (0:2) bit(1), /* 1 if addr present */ 4 125 2 tw_sw bit(1), /* 1-typewriter buffer */ 4 126 2 bs, /* Old-style escapes in this buffer */ 4 127 3 (c,b,r,f) bit(1), /* 1-\031,\030,\036,\034 found */ 4 128 2 noref bit(1), /* 1-not ref'ed, don't list */ 4 129 2 maxl fixed bin(21), /* max buffer length in this AST */ 4 130 2 maxln fixed bin(21), /* number of lines in buffer */ 4 131 2 state_r fixed bin(21), /* what state is request in */ 4 132 2 (N1,N2,N3) fixed bin(21), /* values kept for -safe_ty */ 4 133 2 state_b fixed bin(21); /* what state is buffer change in */ 4 134 4 135 /* Note2: sn=0 means empty because the database segment will never */ 4 136 /* contain a buffer holder */ 4 137 /* sn=-1 (&^b.terminate) means read-only data, if modification is */ 4 138 /* done, a copy will be made. */ 4 139 /* sn=-1 (& b.terminate) means ^read file, if modification is done */ 4 140 /* the file is read first */ 4 141 /* sn>0 means a buffer holder segment */ 4 142 4 143 /* END INCLUDE FILE ..... tedbcb.incl.pl1 ..... */ 759 5 1 /* BEGIN INCLUDE FILE ..... tedbase.incl.pl1 ..... 02/09/82 J Falksen */ 5 2 5 3 dcl NORMAL fixed bin (24) int static init (0), 5 4 SAFE fixed bin (24) int static init (1), 5 5 COM fixed bin (24) int static init (2), 5 6 RESTART fixed bin (24) int static init (3); 5 7 5 8 dcl rc_close fixed bin (24) int static init (100); 5 9 dcl rc_fail fixed bin (24) int static init (10); 5 10 dcl rc_nop fixed bin (24) int static init (2); 5 11 dcl rc_keyerr fixed bin (24) int static init (1); 5 12 5 13 /*** the request line as both string and character */ 5 14 dcl rl_b fixed bin (21); /* where current req begins */ 5 15 dcl rl_i fixed bin (21) defined (dbase.rl.l.le); 5 16 dcl rl_l fixed bin (21) defined (dbase.rl.l.re); 5 17 dcl rl_c (rl_l) char (1) based (dbase.rl.sp); 5 18 dcl rl_s char (rl_l) based (dbase.rl.sp); 5 19 5 20 dcl 1 seg_des based, /* segment descriptor */ 5 21 2 sp ptr, /* -> segment */ 5 22 2 sn fixed bin, /* sequence # in dbase */ 5 23 2 pn fixed bin, /* part #, if in pool */ 5 24 2 ast fixed bin, /* size of aste */ 5 25 2 mbz fixed bin; /* --reserved */ 5 26 5 27 5 28 5 29 dcl dbase_p ptr; 5 30 dcl dbase_vers_3 fixed bin int static init (3); 5 31 dcl 1 dbase based (dbase_p), 5 32 2 version fixed bin, 5 33 2 recurs fixed bin, /* recursion level at which active */ 5 34 2 bwd ptr, /* links active db's together */ 5 35 2 cba_p ptr, /* contains addr (cb (1)) */ 5 36 2 eval_p ptr, /* contains cb (2).sp */ 5 37 2 rl, /* describes the request buffer */ 5 38 3 part1 like seg_des, /* ..its segment */ 5 39 3 part2 like buf_des, /* ..its limits */ 5 40 2 seg_p (-1:72) ptr, /* list of segment pointers */ 5 41 /* seg_p(-1)is a temp for restart */ 5 42 /* seg_p(0) is the database */ 5 43 /* seg_p(1) is the 1K/4K pool */ 5 44 /* seg_p(2) is reserved for 16K pool */ 5 45 /* seg_p(3) is reserved for call_stk */ 5 46 2 inuse_seg bit (72) aligned, /* which segments (1:72) are in use */ 5 47 /* seg_p(0) is ALWAYS in use */ 5 48 2 inuse_1K bit (16) aligned, /* which 1K buffers are in use */ 5 49 2 inuse_4K bit (12) aligned, /* which 4K buffers are in use */ 5 50 2 inuse_16K bit (4) aligned, /* which 16K buffers are in use */ 5 51 2 reset label, /* where to go on a reset condition */ 5 52 2 time fixed bin (71), /* time request id is based on */ 5 53 2 seg_ct fixed bin, /* how many segments in use */ 5 54 /* seg_p (0)--database */ 5 55 /* seg_p (1)--4K pool (64K total) */ 5 56 /* seg_p (2)--16K pool (64K total) */ 5 57 2 argct fixed bin, /* how many args to ted */ 5 58 2 S_count fixed bin, /* # matches on last substitute */ 5 59 2 not_read_ct fixed bin, /* how many "not-read" files */ 5 60 2 at_break fixed bin, /* 1-break pending, 2-break entered */ 5 61 2 bufnum fixed bin, /* how many buffer control blocks */ 5 62 2 lock bit (36), /* to find if active (set LAST!) */ 5 63 2 cb_c_r bit (18) aligned, /* offset of current buffer */ 5 64 2 cb_w_r bit (18) aligned, /* offset of buffer being worked on */ 5 65 2 sws, 5 66 3 flow_sw bit (1) unal, /* -label specified */ 5 67 3 break_sw bit (1) unal, /* -break specified */ 5 68 3 edit_sw bit (1) unal, /* -trace_edit specified */ 5 69 3 input_sw bit (1) unal, /* -trace_input */ 5 70 3 old_style bit (1) unal, /* 1-old-style escapes allowed */ 5 71 3 remote_sw bit (1) unal, /* 1-not in home_dir */ 5 72 3 read_sw bit (1) unal, /* 1-always read files */ 5 73 3 lit_sw bit (1) unal, /* 1-expressions are literal */ 5 74 3 fill bit (28) unal, 5 75 2 tedname char (32) var, /* name under which ted_ was called */ 5 76 2 comment char (256)var, /* user ident of environment */ 5 77 2 err_msg char (168)var, 5 78 2 regexp char (500), /* holds the remembered regular expr */ 5 79 /* is placed here to get word */ 5 80 /* alignment */ 5 81 2 dir_db char (168), /* where work segments live */ 5 82 2 person char (22), /* who started */ 5 83 2 project char (9), /* ...this environment */ 5 84 2 nulreq char (2), /* what is null request (p|P|!p) */ 5 85 2 err_go char (16), /* label to go to on error */ 5 86 2 rq_id char (19), /* request id for this */ 5 87 2 stk_info, 5 88 3 curp ptr, /* pointer to current buffer */ 5 89 3 top ptr, /* pointer to top of stack */ 5 90 3 level fixed bin (21), /* recursion depth */ 5 91 3 next fixed bin (21); 5 92 /* next space available in stack */ 5 93 5 94 5 95 /* END INCLUDE FILE ..... tedbase.incl.pl1 ..... */ 760 6 1 /* BEGIN INCLUDE FILE ..... tedstk.incl.pl1 ..... 04/16/76 J Falksen */ 6 2 6 3 dcl sv_p ptr; 6 4 dcl 1 sv based (sv_p), 6 5 2 prev ptr, /* ->previous frame */ 6 6 2 bp ptr, /* ->buffer control block last used */ 6 7 2 ex like b.ex, /* execution limits in buffer */ 6 8 2 a0 like b.a_, /* "." in buffer */ 6 9 2 stackl bit (18)aligned, /* linked list of occurances of same */ 6 10 /* buffer in the stack */ 6 11 2 fill bit (36)aligned, 6 12 2 this fixed bin (21), /* space index before this frame was */ 6 13 /* allocated */ 6 14 2 pn fixed bin (21), /* parameter number */ 6 15 2 pv (0:sv.pn), 6 16 3 pp ptr, /* pointer to parameter */ 6 17 3 pl fixed bin (21); /* length of parameter */ 6 18 6 19 dcl pstr based char (256); 6 20 6 21 dcl 1 call_stk based (dbase.seg_p (3)), 6 22 2 space (2000) ptr; /* place to put stack frames */ 6 23 6 24 /* END INCLUDE FILE ..... tedstk.incl.pl1 ..... */ 761 762 dcl tedcount_lines_ entry ( /* return # lines in string */ 763 ptr, /* -> buffer in which to count */ 764 fixed bin (21), /* where string begins in segment */ 765 fixed bin (21), /* where string ends in segment */ 766 fixed bin (21) /* # lines [OUT] */ 767 ); 768 769 770 end tedshow_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/18/84 0907.8 tedshow_.pl1 >spec>online>7008>tedshow_.pl1 526 1 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.incl.pl1 757 2 11/23/82 1324.7 tedgvd.incl.pl1 >ldd>include>tedgvd.incl.pl1 758 3 12/18/84 0904.9 tedcommon_.incl.pl1 >spec>online>7008>tedcommon_.incl.pl1 759 4 12/18/84 0906.0 tedbcb.incl.pl1 >spec>online>7008>tedbcb.incl.pl1 760 5 11/23/82 1324.7 tedbase.incl.pl1 >ldd>include>tedbase.incl.pl1 761 6 11/23/82 1324.7 tedstk.incl.pl1 >ldd>include>tedstk.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. CR 000617 automatic bit(1) unaligned dcl 36 set ref 52* 158* 412* 414* 426 DATABASE based structure level 1 unaligned dcl 564 NLct 000623 automatic fixed bin(17,0) dcl 43 set ref 132* 135* S_count 266 based fixed bin(17,0) level 2 dcl 5-31 set ref 542* a0 12 based structure level 2 unaligned dcl 6-4 set ref 242 242 a_ 22 based structure array level 2 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" set ref 279 279 a_ 1004 based structure array level 3 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" abp based pointer dcl 28 ref 75 active 000610 automatic bit(1) unaligned dcl 29 set ref 86* 95* 97* 491 582 ad1 3 based fixed bin(21,0) level 2 dcl 2-38 set ref 691* ad2 4 based fixed bin(21,0) level 2 dcl 2-38 set ref 691* ad_b 000626 automatic fixed bin(17,0) dcl 266 set ref 246* 251* 256* 261* 267 274 ad_e 000627 automatic fixed bin(17,0) dcl 266 set ref 246* 251* 256* 262* 267 274 addr builtin function dcl 745 ref 173 173 186 186 193 197 197 208 217 217 219 219 224 224 226 226 234 234 242 242 272 272 279 279 282 282 284 284 286 286 288 288 290 290 292 292 294 294 300 300 302 302 304 304 308 308 497 497 559 559 644 644 657 671 717 after builtin function dcl 745 ref 423 arg based char unaligned dcl 34 ref 106 107 arg_l 000613 automatic fixed bin(21,0) dcl 32 set ref 69* 104* 106 107 arg_p 000614 automatic pointer dcl 33 set ref 69* 75 104* 106 107 argct 265 based fixed bin(17,0) level 2 in structure "dbase" dcl 5-31 in procedure "tedshow_" set ref 542* argct 000611 automatic fixed bin(17,0) dcl 30 in procedure "tedshow_" set ref 63* 103 argno 000612 automatic fixed bin(17,0) dcl 31 set ref 103* 104* ast 4 based fixed bin(17,0) level 2 in structure "sd" dcl 471 in procedure "pspa" set ref 480* 480* ast 130 based fixed bin(17,0) level 3 in structure "b" dcl 4-67 in procedure "tedshow_" set ref 194* at_break 270 based fixed bin(17,0) level 2 dcl 5-31 set ref 545* b based structure level 1 unaligned dcl 4-67 b_ based structure level 2 unaligned dcl 4-67 set ref 186 186 197 197 224 224 272 272 bd based structure level 1 unaligned dcl 446 set ref 453 bd_p parameter pointer dcl 444 ref 443 453 458 461 461 461 461 461 461 before builtin function dcl 745 ref 109 bp 2 based pointer level 2 in structure "sv" dcl 6-4 in procedure "tedshow_" ref 590 bp 000636 automatic pointer dcl 4-66 in procedure "tedshow_" set ref 75* 76 165 165 165 165 167 177 183 186 186 193* 194 194 194 194 194 197 197 206* 208* 209 217 217 219 219 224 224 226 226 232 240 272 272 277 279 279 282 282 284 284 286 286 288 288 290 290 292 292 294 294 304 304 308 308 308 308 448 450 451 606 608* 611* 611 611 611 611 615* 617 617 617 617 617 617 617 617 617 617 617 617 617 617 617 617 623 623 623 623 623 623 623 break_sw 275(01) based bit(1) level 3 packed unaligned dcl 5-31 set ref 548* buf_des based structure array level 1 unaligned dcl 4-11 bufnum 271 based fixed bin(17,0) level 2 dcl 5-31 set ref 192 207 545* 558 bwd 2 based pointer level 2 dcl 5-31 set ref 534* cb 762 based structure array level 2 unaligned dcl 564 set ref 193 208 559 559 cb_c_r 273 based bit(18) level 2 dcl 5-31 set ref 547* cb_r 3 based bit(18) level 2 dcl 2-33 set ref 694* cb_w_r 274 based bit(18) level 2 dcl 5-31 set ref 547* cba_p 4 based pointer level 2 dcl 5-31 set ref 534* cd 44 based structure level 2 unaligned dcl 4-67 set ref 282 282 cexpml 3 based fixed bin(17,0) level 2 in structure "cfx" dcl 2-49 in procedure "tedshow_" set ref 717 cexpml 5 based fixed bin(17,0) level 2 in structure "cft" dcl 2-42 in procedure "tedshow_" set ref 671 cf based structure level 1 unaligned dcl 2-26 cfa based structure level 1 unaligned dcl 2-38 cfmk based structure level 1 unaligned dcl 2-33 cfp 000634 automatic pointer dcl 2-25 set ref 642 657* 658* 658* 658 658 658 661 661 661 669 669 671 673 673 673 673 673 676 676 676 679 679 679 685 685 685 685 691 691 694 694 694 694 701 701 701 701 701 705 705 705 708 708 708 708 708 708 713 713 717 724 724 cft based structure level 1 unaligned dcl 2-42 cfx based structure level 1 unaligned dcl 2-49 char builtin function dcl 745 ref 276 559 559 ck_ptr_sw 234(18) based bit(1) level 4 packed unaligned dcl 4-67 set ref 617 617* cname 224 based char(32) level 3 packed unaligned dcl 4-67 set ref 623* code 000616 automatic fixed bin(35,0) dcl 35 in procedure "tedshow_" set ref 63* 64 66* 69* 70 72* 93* 95 104* code 000766 automatic fixed bin(35,0) dcl 525 in procedure "segs" set ref 493* 495 495* 497* 499 499* com_err_ 000142 constant entry external dcl 742 ref 66 72 495 499 comment 307 based varying char(256) level 2 dcl 5-31 set ref 552* comptr 000632 automatic pointer dcl 2-14 set ref 177* 183* 632* 632 632 632 632 632 635 637 638 638 639 639 639 642 642 644 644 644 644 644 646 651 651 654 654 657 657 658 concat 000100 automatic varying char(1024) dcl 24 set ref 54* 105* 105 106* 106 cu_$arg_count 000122 constant entry external dcl 37 ref 63 cu_$arg_ptr 000124 constant entry external dcl 38 ref 69 104 cur 124 based structure level 2 unaligned dcl 4-67 set ref 304 304 308 curp 754 based pointer level 3 dcl 5-31 set ref 579* da 7 based char level 2 in structure "cft" packed unaligned dcl 2-42 in procedure "tedshow_" set ref 673* da 3 based char level 2 in structure "cf" packed unaligned dcl 2-26 in procedure "tedshow_" set ref 676* 679* 685* 701* 705* 708* date_time_ 000162 constant entry external dcl 541 ref 542 542 db_gv 14 000152 external static bit(1) level 3 dcl 3-11 set ref 632* 639* 644* 658* db_output 36 000152 external static pointer level 2 dcl 3-11 set ref 114* 118* 121* 156* 165* 194* 212* 214* 407* 412* 417* 426* 429* 435* 438* 450* 461* 480* 487* 501* 505* 508* 511* 513* 515* 534* 538* 542* 545* 547* 548* 552* 554* 555* 576* 579* 588* 592* 594* 608* 611* 617* 623* 632* 639* 644* 654* 658* 663* 666* 669* 673* 676* 679* 682* 685* 688* 691* 694* 701* 705* 708* 713* 724* 733* dbase based structure level 1 unaligned dcl 5-31 dbase_p 000640 automatic pointer dcl 5-29 set ref 76* 77 77 77 77 77 77* 86 86 93 171 173 173 190 192 193 203 207 208 230 232 238 240 298 300 300 302 302 313 320 328 334 336 461 488 489 493 495 501 505 508 508 508 508 511 511 513 534 534 534 534 534 538 538 538 538 538 538 538 542 542 542 542 542 542 545 545 545 545 547 547 548 548 548 548 548 548 548 552 552 552 552 554 554 555 555 556* 558 559 559 579 579 579 579 582 582 584 589 dbase_vers_3 constant fixed bin(17,0) initial dcl 5-30 ref 77 dd 000044 constant varying char(80) initial array dcl 585 set ref 588* 592* dir_db 660 based char(168) level 2 packed unaligned dcl 5-31 set ref 77 554* dname 000704 automatic char(168) unaligned dcl 523 in procedure "segs" set ref 493* 497* 499* dname 142 based char(168) level 3 in structure "b" packed unaligned dcl 4-67 in procedure "tedshow_" set ref 623 623* done 000631 automatic bit(1) unaligned dcl 363 set ref 349* 350 354* 357 edit_sw 275(02) based bit(1) level 3 packed unaligned dcl 5-31 set ref 548* ename 000756 automatic char(32) unaligned dcl 524 in procedure "segs" set ref 493* 497* 499* ename 214 based char(32) level 3 in structure "b" packed unaligned dcl 4-67 in procedure "tedshow_" set ref 623* err_go 742(09) based char(16) level 2 packed unaligned dcl 5-31 set ref 555* err_msg 410 based varying char(168) level 2 dcl 5-31 set ref 555* error_table_$locked_by_this_process 000136 external static fixed bin(35,0) dcl 85 ref 95 eval_p 6 based pointer level 2 dcl 5-31 set ref 534* ex 776 based structure array level 3 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" ex 14 based structure level 2 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" set ref 219 219 226 226 ex 4 based structure level 2 in structure "sv" unaligned dcl 6-4 in procedure "tedshow_" set ref 234 234 exp_p 001036 automatic pointer dcl 722 set ref 671* 717* 718* f 4 based fixed bin(17,0) level 2 dcl 2-42 set ref 669* 673* file_d 140 based structure level 2 packed unaligned dcl 4-67 file_sw 234(09) based bit(1) level 4 packed unaligned dcl 4-67 set ref 623* flow_sw 275 based bit(1) level 3 packed unaligned dcl 5-31 set ref 548* force_name 234(14) based bit(1) level 4 packed unaligned dcl 4-67 set ref 617 617* gb 52 based structure level 2 unaligned dcl 4-67 set ref 284 284 get_bit_count 234(13) based bit(1) level 4 packed unaligned dcl 4-67 set ref 617 617* gvx based structure level 1 unaligned dcl 2-15 gvx_mark 000622 automatic char(1) unaligned dcl 42 set ref 178* 636* 658* hbound builtin function dcl 745 ref 124 342 350 hcs_$fs_get_path_name 000160 constant entry external dcl 521 ref 493 hcs_$status_long 000156 constant entry external dcl 519 ref 497 hdr based structure level 2 in structure "cft" unaligned dcl 2-42 in procedure "tedshow_" hdr based structure level 2 in structure "gvx" unaligned dcl 2-15 in procedure "tedshow_" hdr based structure level 2 in structure "cf" unaligned dcl 2-26 in procedure "tedshow_" hold_prefix 000625 automatic char(1) unaligned dcl 265 set ref 263* 270 i 000624 automatic fixed bin(17,0) dcl 44 set ref 152* 153 153* 155* 155 156 156 159 192* 193* 207* 208* 274* 276 277 279 279* 488* 489 493 495 501* 501 505* 505 508 511 513* 558* 559 559 559 559* 589* 592* ic 5 based fixed bin(17,0) level 3 dcl 2-15 set ref 632* 635 637* 638 639 642* 642 644 644 646* 651 654* 657 658* indent 000116 internal static fixed bin(17,0) initial dcl 750 set ref 461* 461* 749* index builtin function dcl 745 ref 152 initiate 234(17) based bit(1) level 4 packed unaligned dcl 4-67 set ref 617 617* input_sw 275(03) based bit(1) level 3 packed unaligned dcl 5-31 set ref 548* inuse_16K 254 based bit(4) level 2 dcl 5-31 set ref 513* 538* inuse_1K 252 based bit(16) level 2 dcl 5-31 set ref 511* 538* inuse_4K 253 based bit(12) level 2 dcl 5-31 set ref 511* 538* inuse_seg 250 based bit(72) level 2 dcl 5-31 ref 508 508 538 538 ioa_$ioa_switch 000130 constant entry external dcl 45 ref 114 121 165 212 214 407 417 426 429 450 461 480 487 508 511 513 515 534 538 542 545 547 548 552 554 555 576 579 588 592 594 608 611 617 623 632 639 644 654 663 666 669 673 676 679 682 685 688 691 694 701 705 708 713 724 733 ioa_$ioa_switch_nnl 000132 constant entry external dcl 46 ref 118 156 194 412 435 438 501 505 658 ioa_$nnl 000140 constant entry external dcl 364 ref 343 345 353 357 item 000116 constant char(18) initial array unaligned dcl 365 ref 342 343 343 350 351 353 353 j 000106 automatic fixed bin(21,0) dcl 570 set ref 591* 592* kind 234 based char(1) level 3 packed unaligned dcl 4-67 set ref 623* l based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" l 1056 based structure array level 4 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l based structure level 2 in structure "bd" unaligned dcl 446 in procedure "des" l 44 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" l 52 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" l 776 based structure array level 4 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l 000146 external static structure level 2 in structure "tedcommon_$no_data" unaligned dcl 3-8 in procedure "tedshow_" l 16 based structure level 5 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l 1026 based structure array level 4 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l 1050 based structure array level 4 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l based structure array level 2 in structure "buf_des" unaligned dcl 4-11 in procedure "tedshow_" l 762 based structure array level 4 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l 66 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" l 6 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" l 16 based structure level 4 in structure "dbase" unaligned dcl 5-31 in procedure "tedshow_" l 12 based structure level 3 in structure "sv" unaligned dcl 6-4 in procedure "tedshow_" l 60 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" l 74 based structure array level 3 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" l 1004 based structure array level 4 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l 770 based structure array level 4 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l 1042 based structure array level 4 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l 1034 based structure array level 4 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" l 14 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" l 22 based structure array level 3 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" l 4 based structure level 3 in structure "sv" unaligned dcl 6-4 in procedure "tedshow_" last_bname 000112 internal static char(16) initial unaligned dcl 744 set ref 167* 448 451* le 1 based fixed bin(21,0) level 3 in structure "bd" dcl 446 in procedure "des" set ref 461* le 116 based fixed bin(21,0) level 3 in structure "b" dcl 4-67 in procedure "tedshow_" set ref 611* le 10 based fixed bin(21,0) level 4 in structure "sv" dcl 6-4 in procedure "tedshow_" set ref 592* le 4 based fixed bin(21,0) level 3 in structure "bd" dcl 446 in procedure "des" set ref 461* le 5 based fixed bin(21,0) level 4 in structure "sv" dcl 6-4 in procedure "tedshow_" set ref 592* le 120 based fixed bin(21,0) level 3 in structure "b" dcl 4-67 in procedure "tedshow_" set ref 611* len 2 based fixed bin(17,0) level 3 in structure "cft" dcl 2-42 in procedure "tedshow_" ref 673 673 len 2 based fixed bin(17,0) level 3 in structure "cf" dcl 2-26 in procedure "tedshow_" set ref 658* 676 676 679 679 685* 685 685 701 701 705 705 708* 708 708 length builtin function dcl 745 ref 130 133 153 200 205 level 760 based fixed bin(21,0) level 3 dcl 5-31 set ref 336* 461* 579* 582 589 lg_sw 000120 internal static bit(1) initial unaligned dcl 756 set ref 658* 754* 755* link 4 based fixed bin(17,0) level 2 dcl 2-33 set ref 694* lit_sw 275(07) based bit(1) level 3 packed unaligned dcl 5-31 set ref 548* ln based fixed bin(21,0) level 3 in structure "bd" dcl 446 in procedure "des" set ref 461* ln 3 based fixed bin(21,0) level 3 in structure "bd" dcl 446 in procedure "des" set ref 461* lock 272 based bit(36) level 2 packed unaligned dcl 5-31 set ref 86 93 545* lower parameter fixed bin(21,0) dcl 568 ref 567 589 ltrim builtin function dcl 745 ref 107 276 423 559 559 max builtin function dcl 745 ref 418 max_len based fixed bin(24,0) level 3 dcl 2-15 set ref 632* maxl 253 based fixed bin(21,0) level 2 dcl 4-67 set ref 165* 591* maxln 254 based fixed bin(21,0) level 2 dcl 4-67 set ref 165* min builtin function dcl 745 ref 124 mk_list 3 based fixed bin(24,0) level 3 dcl 2-15 set ref 632* mod_sw 234(11) based bit(1) level 4 packed unaligned dcl 4-67 set ref 617 617* move_right 000117 internal static bit(1) initial unaligned dcl 753 set ref 435 751* 752* name 000605 automatic varying char(8) dcl 27 in procedure "tedshow_" set ref 100* 113* 114* 121* 125 419* name 235 based char(16) level 2 in structure "b" packed unaligned dcl 4-67 in procedure "tedshow_" set ref 165* 167 194* 209 448 450* 451 592* 606 new 120 based structure level 2 unaligned dcl 4-67 new_name 000621 automatic bit(1) unaligned dcl 41 set ref 102* 110 112* 146* newa 60 based structure level 2 unaligned dcl 4-67 set ref 286 286 newb 6 based structure level 2 unaligned dcl 4-67 set ref 217 217 next 761 based fixed bin(21,0) level 3 dcl 5-31 set ref 579* no_io 234(15) based bit(1) level 4 packed unaligned dcl 4-67 set ref 617 617* not_pasted 234(16) based bit(1) level 4 packed unaligned dcl 4-67 set ref 617 617* not_read_ct 267 based fixed bin(17,0) level 2 dcl 5-31 set ref 545* null builtin function dcl 745 ref 77 171 190 203 206 230 238 298 313 320 328 334 489 497 497 582 old 1100 based structure array level 3 in structure "DATABASE" unaligned dcl 564 in procedure "tedshow_" old 116 based structure level 2 in structure "b" unaligned dcl 4-67 in procedure "tedshow_" old_style 275(04) based bit(1) level 3 packed unaligned dcl 5-31 set ref 548* op based fixed bin(17,0) level 3 dcl 2-26 set ref 658* 661 661 661 694 694 701 701 708 708 713 713 724 724 op_mnem 000036 constant char(22) initial unaligned dcl 739 ref 694 694 701 701 708 708 713 713 724 724 part1 10 based structure level 3 unaligned dcl 5-31 set ref 300 300 part2 16 based structure level 3 unaligned dcl 5-31 set ref 302 302 pend 132 based structure level 2 unaligned dcl 4-67 set ref 308 308 308 person 732 based char(22) level 2 packed unaligned dcl 5-31 set ref 77 552* pl 26 based fixed bin(21,0) array level 3 dcl 6-4 set ref 594* 594 594 pn 127 based fixed bin(17,0) level 3 in structure "b" dcl 4-67 in procedure "tedshow_" set ref 194* pn 23 based fixed bin(21,0) level 2 in structure "sv" dcl 6-4 in procedure "tedshow_" set ref 592* 594 pn 3 based fixed bin(17,0) level 2 in structure "sd" dcl 471 in procedure "pspa" set ref 480* pp 24 based pointer array level 3 dcl 6-4 ref 594 594 prefix 000111 internal static char(1) initial unaligned dcl 22 set ref 60* 101* 114 122 139* 145* 263 264* 270* 409 412* 415* 420* present 252 based bit(1) array level 2 packed unaligned dcl 4-67 ref 277 prev based pointer level 2 dcl 6-4 ref 597 printing 000376 constant char(96) initial unaligned dcl 48 ref 77 77 77 project 737(18) based char(9) level 2 packed unaligned dcl 5-31 set ref 77 552* pseudo 234(19) based bit(1) level 4 packed unaligned dcl 4-67 set ref 165* ptr builtin function dcl 745 ref 76 232 240 pv 24 based structure array level 2 unaligned dcl 6-4 qm 000630 automatic fixed bin(17,0) dcl 362 set ref 342* 343 343* 350* 351 353 353* r 7 based structure level 3 in structure "sv" unaligned dcl 6-4 in procedure "tedshow_" r 3 based structure level 2 in structure "bd" unaligned dcl 446 in procedure "des" re 117 based fixed bin(21,0) level 3 in structure "b" dcl 4-67 in procedure "tedshow_" set ref 611* re 2 based fixed bin(21,0) level 3 in structure "bd" dcl 446 in procedure "des" set ref 461* re 6 based fixed bin(21,0) level 4 in structure "sv" dcl 6-4 in procedure "tedshow_" set ref 592* re 5 based fixed bin(21,0) level 3 in structure "bd" dcl 446 in procedure "des" set ref 461* re 11 based fixed bin(21,0) level 4 in structure "sv" dcl 6-4 in procedure "tedshow_" set ref 592* re 121 based fixed bin(21,0) level 3 in structure "b" dcl 4-67 in procedure "tedshow_" set ref 611* read_sw 275(06) based bit(1) level 3 packed unaligned dcl 5-31 set ref 548* recurs 1 based fixed bin(17,0) level 2 dcl 5-31 set ref 86 534* regexp 463 based char(500) level 2 packed unaligned dcl 5-31 set ref 173 173 rel_temp 66 based structure level 2 unaligned dcl 4-67 set ref 288 288 remote_sw 275(05) based bit(1) level 3 packed unaligned dcl 5-31 set ref 554* rl 10 based structure level 2 unaligned dcl 5-31 rq_id 746(09) based char(19) level 2 packed unaligned dcl 5-31 set ref 77 542* sb 000767 automatic structure level 1 unaligned dcl 527 set ref 497 497 sd based structure level 1 unaligned dcl 471 set ref 475 sd_p parameter pointer dcl 468 ref 467 475 480 480 480 480 480 seg_ct 264 based fixed bin(17,0) level 2 dcl 5-31 set ref 488 508 508 538 538 542* seg_des based structure level 1 unaligned dcl 5-20 seg_fault_error 000100 stack reference condition dcl 569 ref 574 599 seg_p 24 based pointer array level 2 dcl 5-31 set ref 232 240 489 493* 495* 501* 505* 582 set_lock_$lock 000134 constant entry external dcl 84 ref 93 siz 1 based fixed bin(24,0) level 3 dcl 2-26 set ref 642 658* sn 126 based fixed bin(17,0) level 3 in structure "b" dcl 4-67 in procedure "tedshow_" set ref 194* sn 2 based fixed bin(17,0) level 2 in structure "sd" dcl 471 in procedure "pspa" set ref 480* sp 124 based pointer level 3 in structure "b" dcl 4-67 in procedure "tedshow_" set ref 194* sp based pointer level 2 in structure "sd" dcl 471 in procedure "pspa" set ref 480* srch_len 2 based fixed bin(24,0) level 3 dcl 2-15 set ref 632* 639 639* stack_o 251 based bit(18) level 2 dcl 4-67 ref 232 240 stackl 20 based bit(18) level 2 dcl 6-4 set ref 592* status_branch based structure level 1 dcl 1-8 stk 000010 internal static varying char(8) array dcl 19 set ref 58* 100 118* 124 125* 412* 419 614* stk_info 754 based structure level 2 unaligned dcl 5-31 stk_init 000110 internal static bit(1) initial unaligned dcl 21 set ref 16* 55 57* stkl 000107 internal static fixed bin(17,0) initial dcl 20 set ref 59* 100 117 117 121 124* 124 125 411 411 418* 418 419 613* 613 614 616* 616 str based char(2048) unaligned dcl 572 ref 594 594 substr builtin function dcl 745 ref 130 133 148 156 156 159 200 200 205 338 343 343 348 351 353 353 508 508 538 538 594 594 694 694 701 701 708 708 713 713 724 724 sv based structure level 1 unaligned dcl 6-4 sv_p 000642 automatic pointer dcl 6-3 set ref 232* 234 234 240* 242 242 584* 590 592 592* 592 592 592 592 592 592 594 594 594 594 594 594 597* 597 sws 4 000152 external static structure level 2 in structure "tedcommon_$etc" unaligned dcl 3-11 in procedure "tedshow_" sws 234(09) based structure level 3 in structure "b" packed unaligned dcl 4-67 in procedure "tedshow_" sws 275 based structure level 2 in structure "dbase" packed unaligned dcl 5-31 in procedure "tedshow_" t 3 based fixed bin(17,0) level 2 dcl 2-42 set ref 669* 673* tbp 000110 automatic pointer dcl 571 set ref 590* 591* 591 592* 592 td 000620 automatic fixed bin(17,0) dcl 39 set ref 117* 118 118* 411* 412* tedcommon_$etc 000152 external static structure level 1 unaligned dcl 3-11 tedcommon_$no_data 000146 external static structure level 1 unaligned dcl 3-8 ref 453 tedcommon_$no_seg 000150 external static structure level 1 unaligned dcl 3-9 ref 475 tedcount_lines_ 000154 constant entry external dcl 762 ref 591 tedname 276 based varying char(32) level 2 dcl 5-31 set ref 552* tedshow_ 000126 constant entry external dcl 40 ref 556 559 615 tedsrch_$dis_exp 000144 constant entry external dcl 743 ref 173 718 temp 74 based structure array level 2 unaligned dcl 4-67 set ref 290 290 292 292 294 294 terminate 234(12) based bit(1) level 4 packed unaligned dcl 4-67 set ref 617 617* this 22 based fixed bin(21,0) level 2 dcl 6-4 set ref 592* ti 001026 automatic fixed bin(17,0) dcl 630 set ref 635* 646 time 262 based fixed bin(71,0) level 2 dcl 5-31 set ref 542* 542* token 000602 automatic varying char(8) dcl 26 set ref 109* 113 130 130 133* 133 133 136 136 139 141 141 141 145 148 150* 161 163* 169 175 181 186 188 200 200 200 205* 205 205 209 212* 214* 217 219 221 223* 225* 228 233* 236 241* 244 249 254 259 271* 275* 276* 276 277* 277 282 284 286 288 290 292 294 296 301* 304 306 311 318 324 326 332 338 340 348* 348 351 353* 357* 407* 409 429* 438* 461 top 756 based pointer level 3 dcl 5-31 set ref 579* 584 tot_len 1 based fixed bin(24,0) level 3 dcl 2-15 set ref 632* 638 644* 651 654* trust_sw 234(10) based bit(1) level 4 packed unaligned dcl 4-67 set ref 623* unspec builtin function dcl 745 ref 308 308 453 453 475 475 verify builtin function dcl 745 ref 77 77 77 77 version based fixed bin(17,0) level 2 dcl 5-31 set ref 77 534* word 6 based fixed bin(35,0) array level 2 dcl 2-15 set ref 644 644 657 work 000501 automatic varying char(256) dcl 25 set ref 107* 108 109 152 153 156 156 159* 159 423* 423 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. COM internal static fixed bin(24,0) initial dcl 5-3 Directory internal static fixed bin(17,0) initial dcl 1-56 Link internal static fixed bin(17,0) initial dcl 1-56 NORMAL internal static fixed bin(24,0) initial dcl 5-3 RESTART internal static fixed bin(24,0) initial dcl 5-3 SAFE internal static fixed bin(24,0) initial dcl 5-3 Segment internal static fixed bin(17,0) initial dcl 1-56 adr_op internal static fixed bin(17,0) initial dcl 2-3 all_des internal static fixed bin(17,0) initial dcl 4-61 b_c based char(1) array unaligned dcl 4-58 b_s based char unaligned dcl 4-59 call_stk based structure level 1 unaligned dcl 6-21 live_des internal static fixed bin(17,0) initial dcl 4-61 pstr based char(256) unaligned dcl 6-19 rc_close internal static fixed bin(24,0) initial dcl 5-8 rc_fail internal static fixed bin(24,0) initial dcl 5-9 rc_keyerr internal static fixed bin(24,0) initial dcl 5-11 rc_nop internal static fixed bin(24,0) initial dcl 5-10 reloc_first internal static fixed bin(17,0) initial dcl 4-61 reloc_last internal static fixed bin(17,0) initial dcl 4-61 rl_b automatic fixed bin(21,0) dcl 5-14 rl_c based char(1) array unaligned dcl 5-17 rl_i defined fixed bin(21,0) dcl 5-15 rl_l defined fixed bin(21,0) dcl 5-16 rl_s based char unaligned dcl 5-18 sdup_op internal static fixed bin(17,0) initial dcl 2-3 seval_op internal static fixed bin(17,0) initial dcl 2-3 srepl_op internal static fixed bin(17,0) initial dcl 2-3 sself_op internal static fixed bin(17,0) initial dcl 2-3 status_area_ptr automatic pointer dcl 1-47 status_entry_names based char(32) array dcl 1-47 status_link based structure level 1 dcl 1-38 status_pathname based char dcl 1-47 status_ptr automatic pointer dcl 1-47 tdone_op internal static fixed bin(17,0) initial dcl 2-3 tedcommon_$id external static structure level 1 unaligned dcl 3-5 teval_op internal static fixed bin(17,0) initial dcl 2-3 tsrch_op internal static fixed bin(17,0) initial dcl 2-3 NAMES DECLARED BY EXPLICIT CONTEXT. bcb 006566 constant entry internal dcl 603 ref 324 bf 004263 constant entry external dcl 749 cf_dumper 007271 constant entry internal dcl 649 ref 179 641 des 004412 constant entry internal dcl 443 ref 186 217 219 224 226 234 242 272 279 282 284 286 288 290 292 294 des$no_last 004473 constant entry internal dcl 458 ref 197 302 do_adr 003157 constant label dcl 267 ref 247 252 257 dump_base 005362 constant entry internal dcl 531 ref 316 dump_stk 006220 constant entry internal dcl 567 ref 315 330 336 found 002723 constant label dcl 214 ref 209 gvx_dumper 007075 constant entry internal dcl 629 ref 184 heading 004342 constant entry internal dcl 433 ref 151 164 460 479 605 init 001361 constant entry external dcl 15 lgf 004320 constant entry external dcl 754 lgn 004331 constant entry external dcl 755 mlf 004275 constant entry external dcl 751 mln 004306 constant entry external dcl 752 not_avail 004234 constant label dcl 429 ref 171 190 203 230 238 298 313 320 328 334 pspa 004573 constant entry internal dcl 467 ref 300 304 308 re_dump 007272 constant label dcl 651 regexp 010241 constant label dcl 718 ref 672 seg_flt 006564 constant label dcl 599 ref 577 segs 004654 constant entry internal dcl 485 ref 322 536 show 000000 constant label array(-7:22) dcl 666 ref 661 start 001372 constant label dcl 52 ref 13 tedshow_ 001343 constant entry external dcl 11 ts_ 001352 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 11252 11436 10770 11262 Length 12120 10770 164 445 262 112 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tedshow_ 1234 external procedure is an external procedure. heading internal procedure shares stack frame of external procedure tedshow_. des internal procedure shares stack frame of external procedure tedshow_. pspa internal procedure shares stack frame of external procedure tedshow_. segs internal procedure shares stack frame of external procedure tedshow_. dump_base internal procedure shares stack frame of external procedure tedshow_. dump_stk 174 internal procedure enables or reverts conditions. on unit on line 574 82 on unit bcb internal procedure shares stack frame of external procedure tedshow_. gvx_dumper internal procedure shares stack frame of external procedure tedshow_. cf_dumper internal procedure shares stack frame of external procedure tedshow_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 stk tedshow_ 000107 stkl tedshow_ 000110 stk_init tedshow_ 000111 prefix tedshow_ 000112 last_bname tedshow_ 000116 indent tedshow_ 000117 move_right tedshow_ 000120 lg_sw tedshow_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dump_stk 000106 j dump_stk 000110 tbp dump_stk tedshow_ 000100 concat tedshow_ 000501 work tedshow_ 000602 token tedshow_ 000605 name tedshow_ 000610 active tedshow_ 000611 argct tedshow_ 000612 argno tedshow_ 000613 arg_l tedshow_ 000614 arg_p tedshow_ 000616 code tedshow_ 000617 CR tedshow_ 000620 td tedshow_ 000621 new_name tedshow_ 000622 gvx_mark tedshow_ 000623 NLct tedshow_ 000624 i tedshow_ 000625 hold_prefix tedshow_ 000626 ad_b tedshow_ 000627 ad_e tedshow_ 000630 qm tedshow_ 000631 done tedshow_ 000632 comptr tedshow_ 000634 cfp tedshow_ 000636 bp tedshow_ 000640 dbase_p tedshow_ 000642 sv_p tedshow_ 000704 dname segs 000756 ename segs 000766 code segs 000767 sb segs 001026 ti gvx_dumper 001036 exp_p cf_dumper THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a r_e_as alloc_cs alloc_bs call_ext_out_desc call_ext_out call_int_this return tra_ext enable shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr date_time_ hcs_$fs_get_path_name hcs_$status_long ioa_$ioa_switch ioa_$ioa_switch_nnl ioa_$nnl set_lock_$lock tedcount_lines_ tedshow_ tedsrch_$dis_exp THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$locked_by_this_process tedcommon_$etc tedcommon_$no_data tedcommon_$no_seg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 001342 13 001357 15 001360 16 001366 17 001371 52 001372 54 001373 55 001374 57 001376 58 001377 59 001415 60 001416 63 001420 64 001430 66 001432 67 001451 69 001452 70 001471 72 001473 73 001512 75 001513 76 001516 77 001520 86 001576 93 001604 95 001622 97 001631 100 001632 101 001644 102 001646 103 001647 104 001657 105 001674 106 001703 107 001716 108 001740 109 001745 110 001762 112 001764 113 001765 114 001772 117 002025 118 002040 120 002077 121 002101 122 002140 124 002145 125 002153 128 002163 130 002164 132 002171 133 002172 134 002200 135 002201 136 002203 139 002215 140 002222 141 002223 145 002242 146 002247 147 002251 148 002252 150 002257 151 002260 152 002261 153 002273 155 002300 156 002302 158 002335 159 002340 160 002352 161 002353 163 002360 164 002364 165 002365 167 002430 168 002440 169 002441 171 002446 173 002452 174 002464 175 002465 177 002472 178 002474 179 002476 180 002477 181 002500 183 002505 184 002507 185 002510 186 002511 188 002523 190 002530 192 002534 193 002543 194 002547 197 002611 198 002615 199 002617 200 002620 203 002631 205 002635 206 002646 207 002650 208 002657 209 002663 211 002670 212 002672 213 002722 214 002723 216 002751 217 002752 219 002765 221 003000 223 003005 224 003011 225 003015 226 003021 227 003026 228 003027 230 003034 232 003040 233 003046 234 003052 235 003056 236 003057 238 003064 240 003070 241 003076 242 003102 243 003106 244 003107 246 003114 247 003116 249 003117 251 003124 252 003127 254 003130 256 003135 257 003140 259 003141 261 003146 262 003147 263 003151 264 003155 267 003157 270 003162 271 003165 272 003171 274 003175 275 003205 276 003211 277 003245 279 003262 280 003270 281 003272 282 003273 284 003306 286 003321 288 003334 290 003347 292 003362 294 003375 296 003410 298 003415 300 003421 301 003426 302 003427 303 003434 304 003435 306 003450 308 003455 310 003466 311 003467 313 003474 315 003500 316 003510 317 003511 318 003512 320 003517 322 003523 323 003524 324 003525 326 003534 328 003541 330 003545 331 003555 332 003556 334 003563 336 003567 337 003576 338 003577 340 003602 342 003607 343 003615 344 003642 345 003644 346 003657 348 003660 349 003671 350 003672 351 003701 353 003707 354 003736 356 003740 357 003742 405 003764 407 003765 409 004011 411 004023 412 004036 414 004076 415 004100 416 004103 417 004105 418 004123 419 004132 420 004142 423 004144 424 004207 425 004210 426 004212 427 004233 429 004234 431 004261 749 004262 749 004270 749 004273 751 004274 751 004302 751 004304 752 004305 752 004313 752 004316 754 004317 754 004325 754 004327 755 004330 755 004336 755 004341 433 004342 435 004343 438 004365 441 004411 443 004412 448 004414 450 004422 451 004451 453 004461 455 004471 458 004472 460 004475 461 004476 466 004572 467 004573 475 004575 477 004605 479 004606 480 004607 484 004653 485 004654 487 004655 488 004676 489 004707 491 004716 493 004720 495 004753 497 005011 499 005053 501 005111 504 005156 505 005157 508 005213 511 005252 513 005311 515 005341 517 005357 530 005361 531 005362 534 005363 536 005425 538 005426 542 005501 545 005566 547 005626 548 005657 552 005743 554 006007 555 006043 556 006077 558 006116 559 006125 561 006213 563 006216 567 006217 574 006225 576 006241 577 006261 579 006264 582 006324 584 006336 588 006340 589 006356 590 006372 591 006375 592 006414 594 006505 597 006553 598 006561 599 006564 601 006565 603 006566 605 006567 606 006570 608 006575 609 006623 611 006624 613 006665 614 006667 615 006675 616 006714 617 006717 623 007014 628 007074 629 007075 632 007076 635 007150 636 007153 637 007155 638 007157 639 007164 641 007221 642 007222 643 007226 644 007227 646 007265 648 007270 649 007271 651 007272 654 007276 655 007327 657 007330 658 007332 661 007414 663 007422 664 007442 666 007443 668 007463 669 007464 671 007516 672 007521 673 007522 675 007564 676 007565 678 007615 679 007616 681 007646 682 007647 684 007667 685 007670 687 007724 688 007725 690 007745 691 007746 693 007776 694 007777 700 010043 701 010044 704 010105 705 010106 707 010136 708 010137 712 010204 713 010205 717 010236 718 010241 720 010250 724 010251 732 010301 733 010302 735 010323 ----------------------------------------------------------- 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