COMPILATION LISTING OF SEGMENT ted_command_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/07/88 1306.9 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(88-08-03,RWaters), approve(88-08-03,MCR7950), audit(88-09-29,Huen), 16* install(88-10-07,MR12.2-1146): 17* Bug fixes for MR12.2. 18* END HISTORY COMMENTS */ 19 20 21 /**** format: ind3,ll80,initcol6,indattr,^inddcls,dclind4,idind16 */ 22 /**** format: struclvlind2,^ifthenstmt,^ifthendo,^ifthen,^indnoniterdo */ 23 /**** format: ^inditerdo,^indnoniterend,^indthenelse,case,^indproc,^indend */ 24 /**** format: ^delnl,^insnl,comcol41,^indcom,^indblkcom,linecom,^indcomtxt */ 25 26 /* */ 27 /* _|_ | /| */ 28 /* | _ _ | / | */ 29 /* | / \ / \| |__|_ */ 30 /* | (__/ ( | | */ 31 /* \_ \_/ \_/| | */ 32 /* */ 33 /* */ 34 35 /* ted is an editor based on qedx. There have been extensive modifications. 36* ted 06/01/72 J Falksen 37* ted3 01/01/73 J Falksen 38* ted4 11/01/74 J Falksen 39* ted2.0 07/14/76 J Falksen 40* ted2.5 05/15/80 jaf 41* ted2.6 02/20/81 jaf 42* ted3.0 01/15/82 jaf 43* ted3.2 07/08/88 RW 44**/ 45 ted: proc; 46 td.ted_mode = NORMAL; 47 goto init; 48 49 qedx: entry; 50 51 td.tedname = "qedx"; 52 td.ted_mode = NORMAL; 53 opt_sw = "0"b; 54 goto initq; 55 56 ted_opt: entry; 57 td.tedname = "ted_opt"; 58 td.ted_mode = -1; 59 opt_sw = "1"b; 60 goto initq; 61 /**** format: off */ 62 dcl 1 keywords int static options (constant), 63 2 k10, 3 f bin init(01), 3 c char(12)init("-Jset"), /* out-of-date */ 64 2 k11, 3 f bin init(02), 3 c char(12)init("-Jshow"), /* out-of-date */ 65 2 k12, 3 f bin init(07), 3 c char(12)init("-abort"), 66 2 k13, 3 f bin init(03), 3 c char(12)init("-ag"), 67 2 k14, 3 f bin init(03), 3 c char(12)init("-arguments"), 68 2 k15, 3 f bin init(05), 3 c char(12)init("-blank"), /* out-of-date */ 69 2 k16, 3 f bin init(06), 3 c char(12)init("-break"), /* out-of-date */ 70 2 k17, 3 f bin init(07), 3 c char(12)init("-com"), 71 2 k18, 3 f bin init(26), 3 c char(12)init("-db"), 72 2 k19, 3 f bin init(26), 3 c char(12)init("-debug"), 73 2 k20, 3 f bin init(08), 3 c char(12)init("-label"), /* out-of-date */ 74 2 k21, 3 f bin init(10), 3 c char(12)init("-no_blank"), /* out-of-date */ 75 2 k22, 3 f bin init(11), 3 c char(12)init("-no_break"), /* out-of-date */ 76 2 k23, 3 f bin init(12), 3 c char(12)init("-no_label"), /* out-of-date */ 77 2 k24, 3 f bin init(25), 3 c char(12)init("-no_read"), /* out-of-date */ 78 2 k25, 3 f bin init(13), 3 c char(12)init("-no_trace"), /* out-of-date */ 79 2 k26, 3 f bin init(24), 3 c char(12)init("-opt"), 80 2 k27, 3 f bin init(24), 3 c char(12)init("-option"), 81 2 k28, 3 f bin init(14), 3 c char(12)init("-part_blank"), /* out-of-date */ 82 2 k29, 3 f bin init(15), 3 c char(12)init("-pathname"), 83 2 k30, 3 f bin init(16), 3 c char(12)init("-pause"), 84 2 k31, 3 f bin init(15), 3 c char(12)init("-pn"), 85 2 k33, 3 f bin init(27), 3 c char(12)init("-request"), 86 2 k34, 3 f bin init(17), 3 c char(12)init("-reset"), 87 2 k35, 3 f bin init(18), 3 c char(12)init("-restart"), 88 2 k32, 3 f bin init(27), 3 c char(12)init("-rq"), 89 2 k36, 3 f bin init(19), 3 c char(12)init("-safe"), 90 2 k37, 3 f bin init(23), 3 c char(12)init("-st"), 91 2 k38, 3 f bin init(23), 3 c char(12)init("-status"), 92 2 k39, 3 f bin init(28), 3 c char(12)init("-td"), 93 2 k40, 3 f bin init(28), 3 c char(12)init("-temp_dir"), 94 2 k41, 3 f bin init(20), 3 c char(12)init("-trace"), /* out-of-date */ 95 2 k42, 3 f bin init(21), 3 c char(12)init("-trace_edit"), /* out-of-date */ 96 2 k43, 3 f bin init(22), 3 c char(12)init("-trace_input"); /* out-of-date */ 97 /**** format: on */ 98 99 dcl 1 param (34) based (addr (keywords)), 100 2 f bin, 101 2 c char (12); 102 103 safe: entry; 104 td.ted_mode = SAFE; 105 goto init; 106 107 com: entry; 108 td.ted_mode = COM; 109 goto init; 110 111 restart: entry; 112 td.ted_mode = RESTART; 113 goto init; 114 115 116 dcl debug_sw bit (1); 117 118 dcl ted_data_p ptr; 119 120 dcl 1 td like ted_data; 121 dcl absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 122 dcl tedsort_$set entry (char (*)); 123 dcl tedsort_$show entry; 124 dcl tedbreak_ entry; 125 126 dcl ted_com char (1020) var; 127 128 /* RW 88 */ 129 dcl message char (64); /* Some are longer than 32 */ 130 131 dcl arg char (arg_l) based (arg_p); 132 dcl arg_l fixed bin (21); 133 dcl arg_p ptr; 134 dcl argno fixed bin; 135 dcl bf_msg bit (1); 136 dcl code fixed bin (35); 137 dcl com_p ptr; 138 dcl com_l fixed bin (24); 139 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 140 dcl cu_$arg_list_ptr entry returns (ptr); 141 dcl error_table_$action_not_performed fixed bin (35) ext static; 142 dcl error_table_$badopt fixed bin (35) ext static; 143 dcl first fixed bin (24); 144 dcl i fixed bin (24); 145 dcl last fixed bin (24); 146 dcl opt char (256) var init (""); 147 dcl opt_sw bit (1); 148 dcl pn char (256) var init (""); 149 dcl req char (500) var init (""); 150 dcl state fixed bin; 151 dcl subfile_name char (32) var; 152 dcl NL char (1) int static init (" 153 "); 154 155 dcl cu_$af_arg_count entry (fixed bin, fixed bin (35)); 156 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 157 dcl af_value char (td.return_string_l) var based (td.return_string_p); 158 dcl af_sw bit (1); 159 dcl ioa_ entry () options (variable); 160 dcl tedreset_ entry options (variable); 161 dcl get_default_wdir_ entry () returns (char (168) aligned); 162 dcl err_ entry () options (variable) automatic; 163 dcl com_err_ entry () options (variable); 164 dcl active_fnc_err_ entry () options (variable); 165 166 dcl (addr, addrel, divide, hbound, index, length, null, substr) builtin; 167 init: 168 td.tedname = "ted"; 169 opt_sw = "0"b; 170 initq: 171 if ""b /* can be patched on if needed */ 172 then call send_message_("ted","Multics",td.tedname||"_"||ted_vers,0); 173 dcl send_message_ entry (char(*), char(*), char(*), fixed bin(35)); 174 td.temp_dir = ""; 175 td.version = ted_data_version_1; 176 req = ""; 177 com_p = null (); 178 call cu_$af_arg_count (td.arg_list_n, code); 179 if (code ^= 0) 180 then do; /* not an active function */ 181 td.return_string_p = null (); 182 td.return_string_l = 0; 183 err_ = com_err_; 184 af_sw = "0"b; 185 end; 186 else do; 187 call cu_$af_return_arg (0, td.return_string_p, td.return_string_l, 188 code); 189 af_value = ""; 190 err_ = active_fnc_err_; 191 af_sw = "1"b; 192 end; 193 194 if (td.ted_mode = RESTART) & af_sw 195 then goto af_err; 196 197 if opt_sw & (td.arg_list_n = 0) 198 then do; 199 call ioa_ ("Usage: ted """" -ctl- -args- 200 ted ted_com -ctl- -args- 201 ted -reset -level- 202 ted -restart 203 ted -pause 204 ted -status 205 ted_opt -ctl-"); 206 call ioa_ ("Ctlargs: -safe|-abort, -arguments args, -request XXX, 207 -option XXX, -debug, -pathname xxx"); 208 return; 209 end; 210 ted_com = ""; 211 td.arg_list_1 = td.arg_list_n + 1; 212 argno = 0; 213 code = 0; 214 debug_sw = "0"b; 215 state = 0; 216 do argno = 1 to td.arg_list_n; 217 call cu_$arg_ptr (argno, arg_p, arg_l, code); 218 if (code = 0) 219 then do; 220 goto word_rtn (state); 221 222 word_rtn (0): /* nothing pending */ 223 if (substr (arg, 1, 1) = "-") 224 then do; /* binary search the keyword table */ 225 first = 1; 226 last = hbound (param, 1); 227 do while (first <= last); 228 i = divide (first + last, 2, 17, 0); 229 if (param (i).c = arg) 230 then goto key_rtn (param (i).f); 231 if (param (i).c > arg) 232 then last = i - 1; 233 else first = i + 1; 234 end; 235 message = "^a"; 236 code = error_table_$badopt; 237 goto comerr; 238 key_rtn (01): /* set collating sequence for Jsort */ 239 if af_sw 240 then do; 241 af_err: 242 message = "Control arg not usable with active function."; 243 code = error_table_$action_not_performed; 244 goto comerr; 245 end; 246 state = 1; 247 goto need_value; 248 word_rtn (1): 249 call tedsort_$set (arg); 250 return; 251 252 key_rtn (02): /* show collating sequence for Jsort */ 253 if af_sw 254 then goto af_err; 255 call tedsort_$show; 256 return; 257 258 key_rtn (03): /* everything after this is args */ 259 if opt_sw 260 then goto not_allowed; 261 td.arg_list_1 = argno + 1; 262 argno = td.arg_list_n + 1; /* force end-of-loop */ 263 goto done_key; 264 265 key_rtn (04): /* brief message format */ 266 bf_msg = "1"b; 267 goto done_key; 268 269 key_rtn (05): /* blank */ 270 opt = opt || ",blank"; 271 goto done_key; 272 273 key_rtn (06): /* allow breaks */ 274 opt = opt || ",break"; 275 goto done_key; 276 277 key_rtn (07): /* executing ted_com */ 278 if (td.ted_mode ^= NORMAL) 279 then goto mod_err; 280 td.ted_mode = COM; 281 goto done_key; 282 283 key_rtn (08): /* show labels when executed */ 284 opt = opt || ",label"; 285 goto done_key; 286 287 key_rtn (09): /* long message format */ 288 bf_msg = "0"b; 289 goto done_key; 290 291 key_rtn (10): /* no_blank */ 292 opt = opt || ",^break"; 293 goto done_key; 294 295 key_rtn (11): /* turn off breaks */ 296 opt = opt || ",^break"; 297 goto done_key; 298 299 key_rtn (12): /* dont show labels */ 300 opt = opt || ",^label"; 301 goto done_key; 302 303 key_rtn (13): /* trace off */ 304 opt = opt || ",^trace"; 305 goto done_key; 306 307 key_rtn (14): /* part_blank */ 308 opt = opt || ",partblank"; 309 goto done_key; 310 311 key_rtn (15): /* read file for editing */ 312 if opt_sw 313 then goto not_allowed; 314 state = 2; 315 goto need_value; 316 word_rtn (2): 317 pn = arg; 318 goto done_word; 319 320 key_rtn (16): /* act like a break NOW */ 321 if af_sw 322 then goto af_err; 323 call tedbreak_; 324 325 /* NEVER RETURNS */ 326 327 key_rtn (17): /* reset */ 328 if af_sw 329 then goto af_err; 330 if (argno = td.arg_list_n) 331 then do; /* no argument follows */ 332 call tedreset_; 333 return; 334 end; 335 state = 3; 336 goto done_key; 337 word_rtn (3): 338 call tedreset_ (arg); 339 return; 340 341 key_rtn (18): /* restart */ 342 if af_sw 343 then goto af_err; 344 if (td.ted_mode ^= NORMAL) 345 then goto mod_err; 346 td.ted_mode = RESTART; 347 goto done_key; 348 349 key_rtn (19): /* safe */ 350 if (td.ted_mode ^= NORMAL) 351 then goto mod_err; 352 td.ted_mode = SAFE; 353 goto done_key; 354 355 key_rtn (20): /* trace on */ 356 opt = opt || ",trace"; 357 goto done_key; 358 359 key_rtn (21): /* trace edit */ 360 opt = opt || ",edit"; 361 goto done_key; 362 363 key_rtn (22): /* trace input */ 364 opt = opt || ",input"; 365 goto done_key; 366 367 key_rtn (23): /* status st */ 368 if af_sw 369 then goto af_err; 370 /* nothing doing */ 371 call tedstatus_(get_default_wdir_ (), code); 372 return; 373 374 key_rtn (24): /* option */ 375 state = 4; 376 goto need_value; 377 word_rtn (4): 378 opt = opt || ","; 379 opt = opt || arg; 380 goto done_word; 381 382 key_rtn (25): /* no_read */ 383 opt = opt || ",^read"; 384 goto done_key; 385 386 key_rtn (26): /* debug */ 387 debug_sw = "1"b; 388 goto done_key; 389 390 key_rtn (27): /* request */ 391 state = 5; 392 goto need_value; 393 word_rtn (5): 394 req = req || arg; 395 req = req || NL; 396 goto done_word; 397 398 key_rtn (28): /* temp_dir */ 399 if (td.ted_mode ^= NORMAL) 400 then goto mod_err; 401 td.ted_mode = SAFE; 402 state = 6; 403 goto done_key; 404 word_rtn (6): 405 call absolute_pathname_ (arg, td.temp_dir, code); 406 if (code ^= 0) 407 then goto comerr; 408 goto done_word; 409 need_value: 410 message = arg; 411 goto done_key; 412 413 done_word: 414 state = 0; 415 done_key: 416 end; 417 else do; 418 if opt_sw 419 then do; 420 call err_ (0, td.tedname, "Only options are allowed"); 421 return; 422 end; 423 if (com_p = null ()) 424 then do; 425 com_p = arg_p; 426 com_l = arg_l; 427 end; 428 else do; 429 td.arg_list_1 = argno; 430 argno = td.arg_list_n + 1; 431 end; 432 end; 433 end; 434 end; 435 if (state ^= 0) 436 then do; 437 call err_ (0, td.tedname, "Missing value for ^a.", message); 438 return; 439 end; 440 /* the order of things in execute string: 441* -opt {optonly} -pn -req {ted_com} -abort -db 442*/* note that the option is executed FIRST */ 443 if opt ^= "" 444 then ted_com = ted_com ||"o " || substr (opt, 2) || NL; 445 446 if opt_sw 447 then ted_com = ted_com || " q" || NL; 448 449 if (pn ^= "") 450 then do; 451 ted_com = ted_com || "^>(-pn) r "; 452 ted_com = ted_com || pn; 453 ted_com = ted_com || " 454 >+2 455 :(-pn) {""ted: ""||fs(em,5);} Q 456 "" 457 "; 458 end; 459 460 if (req ^= "") 461 then ted_com = ted_com || req; 462 463 if (com_p ^= null ()) 464 then do; 465 arg_p = com_p; 466 arg_l = com_l; 467 if (arg ^= "") 468 then do; 469 ted_com = ted_com || "b(exec) r "; /* set up input */ 470 /* lines to read in and execute */ 471 /* macro */ 472 subfile_name = ""; 473 if (td.tedname = "ted") 474 then do; 475 i = index (arg, "|"); 476 if (i ^= 0) 477 then do; 478 subfile_name = substr (arg, i); 479 arg_l = i - 1; 480 end; 481 end; 482 ted_com = ted_com || arg; /* .. */ 483 if (arg_l < 5) 484 then goto add_name; 485 if substr (arg, (arg_l - 4), 5) ^= ".qedx" 486 /* add suffix to path if necessary */ 487 then if (substr (arg, (arg_l - 3), 4) ^= ".ted") 488 then do; 489 add_name: 490 ted_com = ted_com || "."; 491 ted_com = ted_com || td.tedname; 492 end; 493 ted_com = ted_com || subfile_name; 494 495 ted_com = ted_com || " 496 b0 497 \B(exec) 498 "; 499 end; 500 end; 501 502 if (td.ted_mode = COM) 503 then do; 504 ted_com = ted_com || "t|"; 505 ted_com = ted_com || td.tedname; 506 ted_com = ted_com || ": exiting| l Q 507 "; 508 end; 509 510 if debug_sw 511 then ted_com = ted_com || "t|Edit.| l 512 "; 513 514 td.ted_com_p = addrel (addr (ted_com), 1); 515 td.ted_com_l = length (ted_com); 516 td.arg_list_p = cu_$arg_list_ptr (); 517 td.input_p, td.output_p = null (); 518 if (td.temp_dir = "") & ((td.ted_mode = SAFE) | (td.ted_mode = RESTART)) 519 then td.temp_dir = get_default_wdir_ (); 520 call tedshow_$init; dcl tedshow_$init entry; 521 if db_sw then call ioa_ ("ted_com:^/^a", ted_com); 522 call ted__ (addr (td), code); 523 dcl ted__ entry(ptr,fixed bin(35)); 524 if (code ^= 0) 525 then call err_(code, td.tedname); 526 return; 527 528 dcl db_sw bit (1) int static init ("0"b); 529 dbn: entry; db_sw="1"b; return; 530 dbf: entry; db_sw="0"b; return; 531 /* /* . . . ERROR MESSAGE ROUTINES . . . */ 532 533 not_allowed: 534 message = "^a not allowed."; 535 goto comerr; 536 537 mod_err: 538 if opt_sw 539 then goto not_allowed; 540 message = "^a duplicates prior option."; 541 goto comerr; 542 543 comerr: 544 call err_ (code, td.tedname, message, arg); 545 return; 546 547 1 1 /**** format: ind3,ll80,initcol6,indattr,^inddcls,dclind4,idind16 */ 1 2 /**** format: struclvlind2,^ifthenstmt,^ifthendo,^ifthen,^indnoniterdo */ 1 3 /**** format: ^inditerdo,^indnoniterend,^indthenelse,case,^indproc,^indend */ 1 4 /**** format: ^delnl,^insnl,comcol41,^indcom,^indblkcom,linecom,^indcomtxt */ 1 5 /* BEGIN INCLUDE FILE ..... ted_.incl.pl1 ..... 12/08/77 J Falksen */ 1 6 /* 08/11/81 jaf Added version number in place of implied pad field */ 1 7 1 8 dcl ted_ entry (ptr, fixed bin (35)) options(variable); 1 9 1 10 /* call ted_ (ted_data_p,code); */ 1 11 dcl ted_data_version_1 fixed bin int static options (constant) init (1001); 1 12 1 13 dcl 1 ted_data based (ted_data_p), 1 14 2 tedname char (32) var, /* name which should appear in error */ 1 15 /* messages */ 1 16 2 version fixed bin (35), 1 17 2 ted_com_p ptr, /* string to be initially executed */ 1 18 2 ted_com_l fixed bin (21), /* length thereof */ 1 19 2 ted_mode fixed bin, /* ted operating mode */ 1 20 /* 0 - NORMAL */ 1 21 /* 1 - SAFE */ 1 22 /* 2 - COM */ 1 23 /* 3 - RESTART */ 1 24 1 25 2 arg_list_p ptr, /* pointer to the argument list */ 1 26 2 arg_list_1 fixed bin, /* first argument to be used */ 1 27 2 arg_list_n fixed bin, /* last argument to be used */ 1 28 1 29 /* To avoid forcing the caller to always manufacture an argument list for */ 1 30 /* arg_list_p to point to, ted_ will accept additional arguments (3...n). */ 1 31 /* If more than 2 are present, ted_'s argument pointer will be placed in */ 1 32 /* arg_list_p, 3 into arg_list_1 and the number of args into arg_list_n. */ 1 33 1 34 2 return_string_p ptr, /* active function return string */ 1 35 2 return_string_l fixed bin (21), /* length thereof */ 1 36 /* b(argn) is copied into this */ 1 37 /* string if it exists */ 1 38 2 input_p ptr, /* pointer to data to be edited */ 1 39 2 input_l fixed bin (21), /* length of data to be edited */ 1 40 /* if this exists, the the data is */ 1 41 /* copied into b0 */ 1 42 2 output_p ptr, /* pointer to output segment */ 1 43 2 output_l fixed bin (21), /* length of output data (output) */ 1 44 /* if output_p = null the data is */ 1 45 /* put back into input area */ 1 46 2 temp_dir char (168); /* directory to hold work segments */ 1 47 1 48 dcl tederror_table_$ted_com_abort fixed bin(35) ext static; 1 49 1 50 1 51 /* END INCLUDE FILE ..... ted_.incl.pl1 ..... */ 548 2 1 /* BEGIN INCLUDE FILE ..... tedbase.incl.pl1 ..... 02/09/82 J Falksen */ 2 2 2 3 dcl NORMAL fixed bin (24) int static init (0), 2 4 SAFE fixed bin (24) int static init (1), 2 5 COM fixed bin (24) int static init (2), 2 6 RESTART fixed bin (24) int static init (3); 2 7 2 8 dcl rc_close fixed bin (24) int static init (100); 2 9 dcl rc_fail fixed bin (24) int static init (10); 2 10 dcl rc_nop fixed bin (24) int static init (2); 2 11 dcl rc_keyerr fixed bin (24) int static init (1); 2 12 2 13 /*** the request line as both string and character */ 2 14 dcl rl_b fixed bin (21); /* where current req begins */ 2 15 dcl rl_i fixed bin (21) defined (dbase.rl.l.le); 2 16 dcl rl_l fixed bin (21) defined (dbase.rl.l.re); 2 17 dcl rl_c (rl_l) char (1) based (dbase.rl.sp); 2 18 dcl rl_s char (rl_l) based (dbase.rl.sp); 2 19 2 20 dcl 1 seg_des based, /* segment descriptor */ 2 21 2 sp ptr, /* -> segment */ 2 22 2 sn fixed bin, /* sequence # in dbase */ 2 23 2 pn fixed bin, /* part #, if in pool */ 2 24 2 ast fixed bin, /* size of aste */ 2 25 2 mbz fixed bin; /* --reserved */ 2 26 2 27 2 28 2 29 dcl dbase_p ptr; 2 30 dcl dbase_vers_3 fixed bin int static init (3); 2 31 dcl 1 dbase based (dbase_p), 2 32 2 version fixed bin, 2 33 2 recurs fixed bin, /* recursion level at which active */ 2 34 2 bwd ptr, /* links active db's together */ 2 35 2 cba_p ptr, /* contains addr (cb (1)) */ 2 36 2 eval_p ptr, /* contains cb (2).sp */ 2 37 2 rl, /* describes the request buffer */ 2 38 3 part1 like seg_des, /* ..its segment */ 2 39 3 part2 like buf_des, /* ..its limits */ 2 40 2 seg_p (-1:72) ptr, /* list of segment pointers */ 2 41 /* seg_p(-1)is a temp for restart */ 2 42 /* seg_p(0) is the database */ 2 43 /* seg_p(1) is the 1K/4K pool */ 2 44 /* seg_p(2) is reserved for 16K pool */ 2 45 /* seg_p(3) is reserved for call_stk */ 2 46 2 inuse_seg bit (72) aligned, /* which segments (1:72) are in use */ 2 47 /* seg_p(0) is ALWAYS in use */ 2 48 2 inuse_1K bit (16) aligned, /* which 1K buffers are in use */ 2 49 2 inuse_4K bit (12) aligned, /* which 4K buffers are in use */ 2 50 2 inuse_16K bit (4) aligned, /* which 16K buffers are in use */ 2 51 2 reset label, /* where to go on a reset condition */ 2 52 2 time fixed bin (71), /* time request id is based on */ 2 53 2 seg_ct fixed bin, /* how many segments in use */ 2 54 /* seg_p (0)--database */ 2 55 /* seg_p (1)--4K pool (64K total) */ 2 56 /* seg_p (2)--16K pool (64K total) */ 2 57 2 argct fixed bin, /* how many args to ted */ 2 58 2 S_count fixed bin, /* # matches on last substitute */ 2 59 2 not_read_ct fixed bin, /* how many "not-read" files */ 2 60 2 at_break fixed bin, /* 1-break pending, 2-break entered */ 2 61 2 bufnum fixed bin, /* how many buffer control blocks */ 2 62 2 lock bit (36), /* to find if active (set LAST!) */ 2 63 2 cb_c_r bit (18) aligned, /* offset of current buffer */ 2 64 2 cb_w_r bit (18) aligned, /* offset of buffer being worked on */ 2 65 2 sws, 2 66 3 flow_sw bit (1) unal, /* -label specified */ 2 67 3 break_sw bit (1) unal, /* -break specified */ 2 68 3 edit_sw bit (1) unal, /* -trace_edit specified */ 2 69 3 input_sw bit (1) unal, /* -trace_input */ 2 70 3 old_style bit (1) unal, /* 1-old-style escapes allowed */ 2 71 3 remote_sw bit (1) unal, /* 1-not in home_dir */ 2 72 3 read_sw bit (1) unal, /* 1-always read files */ 2 73 3 lit_sw bit (1) unal, /* 1-expressions are literal */ 2 74 3 fill bit (28) unal, 2 75 2 tedname char (32) var, /* name under which ted_ was called */ 2 76 2 comment char (256)var, /* user ident of environment */ 2 77 2 err_msg char (168)var, 2 78 2 regexp char (500), /* holds the remembered regular expr */ 2 79 /* is placed here to get word */ 2 80 /* alignment */ 2 81 2 dir_db char (168), /* where work segments live */ 2 82 2 person char (22), /* who started */ 2 83 2 project char (9), /* ...this environment */ 2 84 2 nulreq char (2), /* what is null request (p|P|!p) */ 2 85 2 err_go char (16), /* label to go to on error */ 2 86 2 rq_id char (19), /* request id for this */ 2 87 2 stk_info, 2 88 3 curp ptr, /* pointer to current buffer */ 2 89 3 top ptr, /* pointer to top of stack */ 2 90 3 level fixed bin (21), /* recursion depth */ 2 91 3 next fixed bin (21); 2 92 /* next space available in stack */ 2 93 2 94 2 95 /* END INCLUDE FILE ..... tedbase.incl.pl1 ..... */ 549 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 ..... */ 550 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 ..... */ 551 552 /*dcl tedget_existing_buffer_ entry ( /* find a named buffer * / 553* ptr, /* -> database * / 554* ptr, /* -> string containing buffer name * / 555* fixed bin (21), /* length of string [IN]* / 556* /* how much was used [OUT]* / 557* ptr, /* buffer control block (OUT) * / 558* char (168)var /* error message text * / 559* ); */ 560 561 /*dcl tedget_buffer_ entry ( /* find (or create) a buffer * / 562* ptr, /* -> database * / 563* ptr, /* -> string containing buffer name * / 564* fixed bin (21), /* length of string [IN]* / 565* /* how much was used [OUT]* / 566* ptr, /* buffer control block (OUT) * / 567* char (168)var /* error message text * / 568* ); */ 569 570 571 dcl tedstatus_ entry ( /* display saved environments */ 572 char (*), /* name of temp dir */ 573 fixed bin (35) /* status code */ 574 ); 575 576 577 end ted; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/07/88 1306.9 ted_command_.pl1 >spec>install>1146>ted_command_.pl1 548 1 11/23/82 1324.6 ted_.incl.pl1 >ldd>include>ted_.incl.pl1 549 2 11/23/82 1324.7 tedbase.incl.pl1 >ldd>include>tedbase.incl.pl1 550 3 12/18/84 0954.3 tedcommon_.incl.pl1 >ldd>include>tedcommon_.incl.pl1 551 4 12/18/84 0954.3 tedbcb.incl.pl1 >ldd>include>tedbcb.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. COM constant fixed bin(24,0) initial dcl 2-3 ref 108 280 502 NL 002724 constant char(1) initial packed unaligned dcl 152 ref 395 443 446 NORMAL constant fixed bin(24,0) initial dcl 2-3 ref 46 52 277 344 349 398 RESTART constant fixed bin(24,0) initial dcl 2-3 ref 112 194 346 518 SAFE constant fixed bin(24,0) initial dcl 2-3 ref 104 352 401 518 absolute_pathname_ 000012 constant entry external dcl 121 ref 404 active_fnc_err_ 000046 constant entry external dcl 164 ref 190 addr builtin function dcl 166 ref 226 229 229 231 514 522 522 addrel builtin function dcl 166 ref 514 af_sw 001261 automatic bit(1) packed unaligned dcl 158 set ref 184* 191* 194 238 252 320 327 341 367 af_value based varying char dcl 157 set ref 189* arg based char packed unaligned dcl 131 set ref 222 229 231 248* 316 337* 379 393 404* 409 467 475 478 482 485 485 543* arg_l 000631 automatic fixed bin(21,0) dcl 132 set ref 217* 222 229 231 248 248 316 337 337 379 393 404 404 409 426 466* 467 475 478 479* 482 483 485 485 485 485 543 543 arg_list_1 20 000102 automatic fixed bin(17,0) level 2 dcl 120 set ref 211* 261* 429* arg_list_n 21 000102 automatic fixed bin(17,0) level 2 dcl 120 set ref 178* 197 211 216 262 330 430 arg_list_p 16 000102 automatic pointer level 2 dcl 120 set ref 516* arg_p 000632 automatic pointer dcl 133 set ref 217* 222 229 231 248 316 337 379 393 404 409 425 465* 467 475 478 482 485 485 543 argno 000634 automatic fixed bin(17,0) dcl 134 set ref 212* 216* 217* 261 262* 330 429 430* b based structure level 1 unaligned dcl 4-67 bf_msg 000635 automatic bit(1) packed unaligned dcl 135 set ref 265* 287* buf_des based structure array level 1 unaligned dcl 4-11 c 1 based char(12) array level 2 packed packed unaligned dcl 99 ref 229 231 code 000636 automatic fixed bin(35,0) dcl 136 set ref 178* 179 187* 213* 217* 218 236* 243* 371* 404* 406 522* 524 524* 543* com_err_ 000044 constant entry external dcl 163 ref 183 com_l 000642 automatic fixed bin(24,0) dcl 138 set ref 426* 466 com_p 000640 automatic pointer dcl 137 set ref 177* 423 425* 463 465 cu_$af_arg_count 000032 constant entry external dcl 155 ref 178 cu_$af_return_arg 000034 constant entry external dcl 156 ref 187 cu_$arg_list_ptr 000024 constant entry external dcl 140 ref 516 cu_$arg_ptr 000022 constant entry external dcl 139 ref 217 db_sw 000010 internal static bit(1) initial packed unaligned dcl 528 set ref 521 529* 530* debug_sw 000100 automatic bit(1) packed unaligned dcl 116 set ref 214* 386* 510 divide builtin function dcl 166 ref 228 err_ 001262 automatic entry variable dcl 162 set ref 183* 190* 420 437 524 543 error_table_$action_not_performed 000026 external static fixed bin(35,0) dcl 141 ref 243 error_table_$badopt 000030 external static fixed bin(35,0) dcl 142 ref 236 f based fixed bin(17,0) array level 2 dcl 99 ref 229 first 000643 automatic fixed bin(24,0) dcl 143 set ref 225* 227 228 233* get_default_wdir_ 000042 constant entry external dcl 161 ref 371 371 518 hbound builtin function dcl 166 ref 226 i 000644 automatic fixed bin(24,0) dcl 144 set ref 228* 229 229 231 231 233 475* 476 478 479 index builtin function dcl 166 ref 475 input_p 26 000102 automatic pointer level 2 dcl 120 set ref 517* ioa_ 000036 constant entry external dcl 159 ref 199 206 521 keywords 000000 constant structure level 1 unaligned dcl 62 set ref 226 229 229 231 l 16 based structure level 4 in structure "dbase" unaligned dcl 2-31 in procedure "ted" l 44 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "ted" l based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "ted" l internal static structure level 2 in structure "tedcommon_$no_data" unaligned dcl 3-8 in procedure "ted" l based structure array level 2 in structure "buf_des" unaligned dcl 4-11 in procedure "ted" l 66 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "ted" l 52 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "ted" l 14 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "ted" l 6 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "ted" l 74 based structure array level 3 in structure "b" unaligned dcl 4-67 in procedure "ted" l 60 based structure level 3 in structure "b" unaligned dcl 4-67 in procedure "ted" l 22 based structure array level 3 in structure "b" unaligned dcl 4-67 in procedure "ted" last 000645 automatic fixed bin(24,0) dcl 145 set ref 226* 227 228 231* length builtin function dcl 166 ref 515 message 000611 automatic char(64) packed unaligned dcl 129 set ref 235* 241* 409* 437* 533* 540* 543* null builtin function dcl 166 ref 177 181 423 463 517 old 116 based structure level 2 unaligned dcl 4-67 opt 000646 automatic varying char(256) initial dcl 146 set ref 146* 269* 269 273* 273 283* 283 291* 291 295* 295 299* 299 303* 303 307* 307 355* 355 359* 359 363* 363 377* 377 379* 379 382* 382 443 443 opt_sw 000747 automatic bit(1) packed unaligned dcl 147 set ref 53* 59* 169* 197 258 311 418 446 537 output_p 32 000102 automatic pointer level 2 dcl 120 set ref 517* param based structure array level 1 unaligned dcl 99 ref 226 pn 000750 automatic varying char(256) initial dcl 148 set ref 148* 316* 449 452 req 001051 automatic varying char(500) initial dcl 149 set ref 149* 176* 393* 393 395* 395 460 460 return_string_l 24 000102 automatic fixed bin(21,0) level 2 dcl 120 set ref 182* 187* 189 return_string_p 22 000102 automatic pointer level 2 dcl 120 set ref 181* 187* 189 seg_des based structure level 1 unaligned dcl 2-20 send_message_ 000050 constant entry external dcl 173 ref 170 state 001247 automatic fixed bin(17,0) dcl 150 set ref 215* 220 246* 314* 335* 374* 390* 402* 413* 435 subfile_name 001250 automatic varying char(32) dcl 151 set ref 472* 478* 493 substr builtin function dcl 166 ref 222 443 478 485 485 td 000102 automatic structure level 1 unaligned dcl 120 set ref 522 522 ted__ 000054 constant entry external dcl 523 ref 522 ted_com 000211 automatic varying char(1020) dcl 126 set ref 210* 443* 443 446* 446 451* 451 452* 452 453* 453 460* 460 469* 469 482* 482 489* 489 491* 491 493* 493 495* 495 504* 504 505* 505 506* 506 510* 510 514 515 521* ted_com_l 14 000102 automatic fixed bin(21,0) level 2 dcl 120 set ref 515* ted_com_p 12 000102 automatic pointer level 2 dcl 120 set ref 514* ted_data based structure level 1 unaligned dcl 1-13 ted_data_version_1 constant fixed bin(17,0) initial dcl 1-11 ref 175 ted_mode 15 000102 automatic fixed bin(17,0) level 2 dcl 120 set ref 46* 52* 58* 104* 108* 112* 194 277 280* 344 346* 349 352* 398 401* 502 518 518 ted_vers 000056 external static varying char(12) level 2 dcl 3-5 ref 170 tedbreak_ 000020 constant entry external dcl 124 ref 323 tedcommon_$id 000056 external static structure level 1 unaligned dcl 3-5 tedname 000102 automatic varying char(32) level 2 dcl 120 set ref 51* 57* 167* 170 420* 437* 473 491 505 524* 543* tedreset_ 000040 constant entry external dcl 160 ref 332 337 tedshow_$init 000052 constant entry external dcl 520 ref 520 tedsort_$set 000014 constant entry external dcl 122 ref 248 tedsort_$show 000016 constant entry external dcl 123 ref 255 tedstatus_ 000060 constant entry external dcl 571 ref 371 temp_dir 35 000102 automatic char(168) level 2 packed packed unaligned dcl 120 set ref 174* 404* 518 518* version 11 000102 automatic fixed bin(35,0) level 2 dcl 120 set ref 175* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. all_des internal static fixed bin(17,0) initial dcl 4-61 b_c based char(1) array packed unaligned dcl 4-58 b_s based char packed unaligned dcl 4-59 bp automatic pointer dcl 4-66 dbase based structure level 1 unaligned dcl 2-31 dbase_p automatic pointer dcl 2-29 dbase_vers_3 internal static fixed bin(17,0) initial dcl 2-30 live_des internal static fixed bin(17,0) initial dcl 4-61 rc_close internal static fixed bin(24,0) initial dcl 2-8 rc_fail internal static fixed bin(24,0) initial dcl 2-9 rc_keyerr internal static fixed bin(24,0) initial dcl 2-11 rc_nop internal static fixed bin(24,0) initial dcl 2-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 2-14 rl_c based char(1) array packed unaligned dcl 2-17 rl_i defined fixed bin(21,0) dcl 2-15 rl_l defined fixed bin(21,0) dcl 2-16 rl_s based char packed unaligned dcl 2-18 ted_ 000000 constant entry external dcl 1-8 ted_data_p automatic pointer dcl 118 tedcommon_$etc external static structure level 1 unaligned dcl 3-11 tedcommon_$no_data external static structure level 1 unaligned dcl 3-8 tedcommon_$no_seg external static structure level 1 unaligned dcl 3-9 tederror_table_$ted_com_abort external static fixed bin(35,0) dcl 1-48 NAMES DECLARED BY EXPLICIT CONTEXT. add_name 002363 constant label dcl 489 ref 483 af_err 001210 constant label dcl 241 ref 194 252 320 327 341 367 com 000627 constant entry external dcl 107 comerr 002672 constant label dcl 543 set ref 237 244 406 535 541 dbf 002647 constant entry external dcl 530 dbn 002634 constant entry external dcl 529 done_key 001750 constant label dcl 415 ref 263 267 271 275 281 285 289 293 297 301 305 309 336 347 353 357 361 365 384 388 403 411 done_word 001747 constant label dcl 413 ref 318 380 396 408 init 000652 constant label dcl 167 ref 47 105 109 113 initq 000657 constant label dcl 170 ref 54 60 key_rtn 000217 constant label array(28) dcl 238 ref 229 mod_err 002664 constant label dcl 537 ref 277 344 349 398 need_value 001742 constant label dcl 409 ref 247 315 376 392 not_allowed 002660 constant label dcl 533 ref 258 311 537 qedx 000555 constant entry external dcl 49 restart 000641 constant entry external dcl 111 safe 000615 constant entry external dcl 103 ted 000543 constant entry external dcl 45 ted_opt 000574 constant entry external dcl 56 word_rtn 000210 constant label array(0:6) dcl 222 ref 220 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3234 3316 2735 3244 Length 3612 2735 62 257 276 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ted 844 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 db_sw ted STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ted 000100 debug_sw ted 000102 td ted 000211 ted_com ted 000611 message ted 000631 arg_l ted 000632 arg_p ted 000634 argno ted 000635 bf_msg ted 000636 code ted 000640 com_p ted 000642 com_l ted 000643 first ted 000644 i ted 000645 last ted 000646 opt ted 000747 opt_sw ted 000750 pn ted 001051 req ted 001247 state ted 001250 subfile_name ted 001261 af_sw ted 001262 err_ ted THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ent_var_desc call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ active_fnc_err_ com_err_ cu_$af_arg_count cu_$af_return_arg cu_$arg_list_ptr cu_$arg_ptr get_default_wdir_ ioa_ send_message_ ted__ tedbreak_ tedreset_ tedshow_$init tedsort_$set tedsort_$show tedstatus_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$badopt tedcommon_$id LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 146 000535 148 000536 149 000537 45 000542 46 000551 47 000553 49 000554 51 000563 52 000567 53 000571 54 000572 56 000573 57 000602 58 000607 59 000611 60 000613 103 000614 104 000623 105 000625 107 000626 108 000635 109 000637 111 000640 112 000647 113 000651 167 000652 169 000656 170 000657 174 000743 175 000747 176 000751 177 000752 178 000754 179 000765 181 000767 182 000771 183 000772 184 000777 185 001000 187 001001 189 001017 190 001020 191 001025 194 001027 197 001034 199 001040 206 001053 208 001067 210 001070 211 001071 212 001074 213 001075 214 001076 215 001077 216 001100 217 001107 218 001124 220 001126 222 001130 225 001135 226 001137 227 001141 228 001145 229 001150 231 001165 233 001173 234 001176 235 001177 236 001202 237 001205 238 001206 241 001210 243 001213 244 001216 246 001217 247 001221 248 001222 250 001236 252 001237 255 001241 256 001246 258 001247 261 001251 262 001254 263 001257 265 001260 267 001262 269 001263 271 001275 273 001276 275 001310 277 001311 280 001313 281 001315 283 001316 285 001330 287 001331 289 001332 291 001333 293 001345 295 001346 297 001360 299 001361 301 001373 303 001374 305 001406 307 001407 309 001421 311 001422 314 001424 315 001426 316 001427 318 001440 320 001441 323 001443 327 001450 330 001452 332 001455 333 001462 335 001463 336 001465 337 001466 339 001502 341 001503 344 001505 346 001507 347 001511 349 001512 352 001514 353 001516 355 001517 357 001531 359 001532 361 001544 363 001545 365 001557 367 001560 371 001562 372 001611 374 001612 376 001614 377 001615 379 001624 380 001637 382 001640 384 001652 386 001653 388 001655 390 001656 392 001660 393 001661 395 001674 396 001703 398 001704 401 001706 402 001710 403 001712 404 001713 406 001737 408 001741 409 001742 411 001746 413 001747 415 001750 418 001751 420 001753 421 001777 423 002000 425 002004 426 002005 427 002007 429 002010 430 002012 434 002015 435 002017 437 002021 438 002051 443 002052 446 002126 449 002164 451 002172 452 002204 453 002216 460 002230 463 002247 465 002253 466 002255 467 002257 469 002264 472 002276 473 002277 475 002304 476 002316 478 002317 479 002333 482 002336 483 002350 485 002353 489 002363 491 002372 493 002404 495 002416 502 002430 504 002433 505 002445 506 002457 510 002471 514 002505 515 002511 516 002513 517 002523 518 002526 520 002551 521 002556 522 002601 524 002614 526 002632 529 002633 529 002642 529 002645 530 002646 530 002655 530 002657 533 002660 535 002663 537 002664 540 002666 541 002671 543 002672 545 002721 ----------------------------------------------------------- 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