COMPILATION LISTING OF SEGMENT ge_interpret_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1110.66_Tue_mdt Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 ge_interpret_: proc; 12 return; 13 14 /* This module implements the "show" and "replay" commands of the graphic_editor. */ 15 /* Written c. Feb 1, 1975 by C. D. Tavares */ 16 /* Modified 08/08/75 by CDT to handle "replay sym1, sym2, ... symn" correctly, i.e. with 17* semicolons after EACH symbol, and not to replay already-replayed subsymbols in this case. */ 18 /* Modified 08/14/75 by CDT to replay quotes arond datablocks correctly. */ 19 /* Modified 08/15/75 by CDT to write around hairy PL/I bug which was causing 20* recursions to lose totally. */ 21 /* Modified 08/28/75 by CDT to put out tabs wherever possible, to save storage space 22* and to chop off trailing zeroes in replays */ 23 /* Last modified 06/25/76 to support system macro feature */ 24 25 replay: entry (environment_ptr, code); 26 1 1 /* ---------------- BEGIN include file ge_environment.incl.pl1 ---------------- */ 1 2 1 3 /* Last modified 10/20/75 by C. D. Tavares to make items in all structures look 1 4* as much alike as possible. */ 1 5 1 6 dcl environment_ptr pointer parameter; 1 7 1 8 dcl 1 environment aligned based (environment_ptr), 1 9 2 stack_p pointer, 1 10 2 command_p pointer, 1 11 2 system_symbol_p pointer, 1 12 2 system_macro_p pointer, 1 13 2 sym_p pointer, 1 14 2 mac_p pointer, 1 15 2 areap pointer, 1 16 2 at_ptr pointer, 1 17 2 error_message char (100) varying, 1 18 2 external_char_table aligned, 1 19 3 dirname char (168) unaligned, 1 20 3 ename char (32) unaligned, 1 21 2 default_char_table aligned like external_char_table, 1 22 2 cur_char_table aligned like external_char_table; 1 23 1 24 dcl 1 based_system_symbol_list aligned based (system_symbol_p), 1 25 2 n_system_symbols fixed bin, 1 26 2 each_system_symbol (0 refer (based_system_symbol_list.n_system_symbols)) aligned, 1 27 3 system_symbols (2) char (32) varying, 1 28 3 system_symbol_vector fixed bin; 1 29 1 30 dcl 1 based_system_macro_list aligned based (system_macro_p), 1 31 2 n_system_macros fixed bin, 1 32 2 each_system_macro (0 refer (based_system_macro_list.n_system_macros)) aligned, 1 33 3 system_macros (2) char (32) varying, 1 34 3 system_macro_vector fixed bin; 1 35 1 36 dcl (stack_p, command_p, system_symbol_p, system_macro_p, 1 37 sym_p, mac_p, areap, at_ptr) pointer; 1 38 1 39 1 40 initialize_ptrs: proc; 1 41 1 42 stack_p = environment.stack_p; 1 43 command_p = environment.command_p; 1 44 system_symbol_p = environment.system_symbol_p; 1 45 system_macro_p = environment.system_macro_p; 1 46 sym_p = environment.sym_p; 1 47 mac_p = environment.mac_p; 1 48 areap = environment.areap; 1 49 at_ptr = environment.at_ptr; 1 50 1 51 environment.error_message = ""; 1 52 1 53 return; 1 54 end initialize_ptrs; 1 55 1 56 /* ----------------- END include file ge_environment.incl.pl1 ----------------- */ 27 28 2 1 /* ---------------- BEGIN include file ge_data_structures.incl.pl1 ---------------- */ 2 2 2 3 dcl my_area area (261120) based (areap); 2 4 2 5 dcl (max_frames, max_symbols, max_macros, cur_elements) fixed bin; 2 6 2 7 dcl 1 symbols aligned based (sym_p), 2 8 2 n_symbols initial (0) fixed bin, 2 9 2 cur_max_symbols fixed bin, 2 10 2 symbol (max_symbols refer (cur_max_symbols)) aligned, 2 11 3 name char (32) varying, 2 12 3 node_value fixed bin (18); 2 13 2 14 dcl 1 macros aligned based (mac_p), 2 15 2 n_macros initial (0) fixed bin, 2 16 2 cur_max_macros fixed bin, 2 17 2 macro (max_macros refer (cur_max_macros)) aligned like symbols.symbol; 2 18 2 19 dcl tuple_p pointer; 2 20 2 21 dcl 1 tuple aligned based (tuple_p), 2 22 2 n_elements fixed bin, 2 23 2 element (cur_elements refer (n_elements)) aligned, 2 24 3 name char (32) varying, 2 25 3 type fixed bin, 2 26 3 lvalue fixed bin (18), 2 27 3 offset fixed bin, 2 28 3 rvalue fixed bin (18), 2 29 3 table_idx fixed bin; 2 30 2 31 dcl 1 assembly_tuple aligned based (at_ptr), 2 32 2 element (4094) like tuple.element aligned; 2 33 2 34 dcl 1 stack aligned based (stack_p), 2 35 2 level fixed bin, 2 36 2 cur_max_frames fixed bin, 2 37 2 tuple_ptr (max_frames refer (cur_max_frames)) pointer; 2 38 2 39 /* ----------------- END include file ge_data_structures.incl.pl1 ----------------- */ 29 30 31 dcl code fixed bin (35); 32 33 dcl sysprint stream; 34 35 dcl db_sw bit (1) aligned static initial ("0"b); 36 37 dcl string char (200), 38 n_chars fixed bin, 39 alignment fixed bin; 40 41 dcl number_spaces fixed bin static initial (2); /* indentation spaces per level */ 42 43 dcl (plural, paren) char (1), 44 article char (2); 45 46 dcl (i, j) fixed bin, 47 (com_err_$suppress_name, ioa_, ioa_$nnl) ext entry options (variable); 48 49 dcl 1 found_symbols aligned based (fs_ptr), 50 2 n_found_symbols fixed bin, 51 2 cur_max_found_symbols fixed bin, 52 2 name (max_found_symbols refer (cur_max_found_symbols)) char (32) varying; 53 54 dcl fs_ptr pointer, 55 old_p pointer, 56 max_found_symbols fixed bin; 57 58 dcl 1 fake_element_array (1) like tuple.element based aligned; 59 60 call initialize_ptrs; 61 62 tuple_p = stack (1).tuple_ptr; 63 64 max_found_symbols = 50; 65 allocate found_symbols in (my_area); 66 n_found_symbols = 0; 67 68 do i = 1 to tuple.n_elements; 69 if index (tuple.name (i), ".") > 0 70 then call com_err_$suppress_name (0, "ge_interpret_", 71 """^a"" may not be replayed.", tuple.name (i)); 72 73 else do; 74 do j = 1 to n_found_symbols while (found_symbols.name (j) ^= tuple.name (i)); 75 end; /* check to see if already put out as sublist */ 76 77 if j > n_found_symbols 78 then call replay_recur (addr (tuple.element (i)) -> fake_element_array, 0, "1"b); 79 /* fake it, otherwise PL/I builds structure descriptor */ 80 /* instead of array of structures descriptor! */ 81 end; 82 end; 83 84 call ioa_ (""); /* put out last null line */ 85 86 free fs_ptr -> found_symbols in (my_area); 87 88 return; 89 90 show: entry (environment_ptr, code); 91 92 call initialize_ptrs; 93 94 tuple_p = stack (1).tuple_ptr; 95 96 call replay_recur (tuple.element (*), 0, ""b); 97 return; 98 99 100 /* -------------------------------------------------- */ 101 102 replay_recur: proc (x_element, level, is_replay) recursive; 103 104 dcl 1 x_element like tuple.element aligned parameter dimension (*); 105 106 dcl level fixed bin parameter, 107 is_replay bit (1) aligned parameter; 108 109 dcl i fixed bin, 110 indentation fixed bin, 111 limit fixed bin; 112 113 if ^is_replay then if db_sw then do; 114 call ioa_$nnl ("|LEVEL ^d->", level); 115 put list ("Showing: "); put skip; 116 put list /* data */ (x_element); 117 put skip; 118 end; 119 120 limit = hbound (x_element, 1); 121 if db_sw then call ioa_$nnl ("|^d ELEMS AT LEVEL ^d->", limit, level); 122 123 indentation = level * number_spaces; 124 125 do i = lbound (x_element, 1) to limit; 126 call replay_element (x_element (i), level, is_replay); 127 if i = limit 128 then if level = 0 129 then call ioa_ (";"); 130 else; 131 else call ioa_$nnl (",^/^v-^vx", divide (indentation, 10, 17, 0), mod (indentation, 10)); 132 end; 133 134 if db_sw then call ioa_$nnl ("<-LEVEL ^d|", level); 135 136 return; 137 138 /* -------------------------------------------------- */ 139 140 replay_element: proc (element_arg, level, is_replay); 141 142 dcl 1 element_arg like tuple.element aligned parameter, 143 level fixed bin parameter, 144 is_replay bit (1) aligned parameter; 145 146 dcl i fixed bin, 147 mappings (6) float bin, 148 mappings_len fixed bin, 149 (red, green, blue) fixed bin, 150 (x, y, z) float bin, 151 ioa_string char (20) varying, 152 mode fixed bin, 153 mode_string char (32), 154 sub_value fixed bin (18), 155 nc fixed bin, 156 symbol_name char (168) varying, 157 new_indentation fixed bin, 158 array (4095) fixed bin (18), 159 array_len fixed bin; 160 161 dcl 1 local_tuple like tuple aligned based (local_tuple_p); 162 163 /* can't use declaration of tuple in outer block for this purpose because of 164* arcane PL/I compiler bug; tries to share descriptor instances during recursion! */ 165 166 dcl local_tuple_p pointer; 167 168 169 call graphic_manipulator_$examine_type (element_arg.rvalue, ""b, element_arg.type, code); 170 if code ^= 0 then call crump (is_replay); 171 172 goto describe_type (element_arg.type); 173 174 describe_type (-2): /* illegal node */ 175 176 call crump (is_replay); 177 178 describe_type (-1): /* null node */ 179 180 if is_replay then call ioa_$nnl ("null"); 181 else call ioa_$nnl ("^a is null", element_arg.name); 182 return; 183 184 describe_type (0): describe_type (1): describe_type (2): 185 describe_type (3): describe_type (4): /* all positionals */ 186 187 call graphic_manipulator_$examine_position (element_arg.rvalue, 0, x, y, z, code); 188 if code ^= 0 then call crump (is_replay); 189 190 if is_replay then do; 191 192 if z = 0 /* save output space by killing trailing zeroes */ 193 then if y = 0 194 then if x = 0 195 then ioa_string = "^a"; 196 else ioa_string = "^a ^f"; 197 else ioa_string = "^a ^f ^f"; 198 else ioa_string = "^a ^f ^f ^f"; 199 200 call ioa_$nnl (ioa_string, Element_names (element_arg.type), x, y, z); 201 end; 202 203 else do; 204 205 if z = 0 /* save output space by killing trailing zeroes */ 206 then if y = 0 207 then if x = 0 208 then ioa_string = "^a is ^a"; 209 else ioa_string = "^a is ^a ^f"; 210 else ioa_string = "^a is ^a ^f ^f"; 211 else ioa_string = "^a is ^a ^f ^f ^f"; 212 213 call ioa_$nnl ("^a is ^a ^f ^f ^f", element_arg.name, Element_names (element_arg.type), x, y, z); 214 end; 215 216 return; 217 218 describe_type (8): /* scaling */ 219 describe_type (9): /* rotation */ 220 221 call graphic_manipulator_$examine_mapping (element_arg.rvalue, 0, mappings, mappings_len, code); 222 if code ^= 0 then call crump (is_replay); 223 224 if is_replay then call ioa_$nnl ("^a ^f ^f ^f", Element_names (element_arg.type), mappings (1), mappings (2), 225 mappings (3)); 226 else call ioa_$nnl ("^a is ^a ^f ^f ^f", element_arg.name, Element_names (element_arg.type), 227 mappings (1), mappings (2), mappings (3)); 228 return; 229 230 describe_type (16): describe_type (17): 231 describe_type (18): describe_type (19): /* all modes except color */ 232 233 call graphic_manipulator_$examine_mode (element_arg.rvalue, 0, mode, code); 234 if code ^= 0 then call crump (is_replay); 235 236 if element_arg.type = 16 then mode_string = Intensity_names (mode); 237 else if element_arg.type = 17 then mode_string = Linetype_names (mode); 238 else if element_arg.type = 18 then mode_string = Sensitivity_names (mode); 239 else mode_string = Blink_names (mode); 240 241 if is_replay then call ioa_$nnl ("^a ^a", Element_names (element_arg.type), mode_string); 242 else call ioa_$nnl ("^a is ^a ^a", element_arg.name, Element_names (element_arg.type), mode_string); 243 244 return; 245 246 describe_type (20): /* color */ 247 248 call graphic_manipulator_$examine_color (element_arg.rvalue, red, green, blue, code); 249 if code ^= 0 then call crump (is_replay); 250 251 if is_replay then call ioa_$nnl ("color red ^d green ^d blue ^d", red, green, blue); 252 else call ioa_$nnl ("^a is color red ^d green ^d blue ^d", element_arg.name, red, green, blue); 253 254 return; 255 256 describe_type (24): /* symbol */ 257 258 dcl based_databit_string bit (size (symbol_name) * 36) based; 259 260 call graphic_manipulator_$examine_symbol (element_arg.rvalue, sub_value, nc, string, code); 261 if code ^= 0 then call crump (is_replay); 262 263 symbol_name = substr (string, 1, nc); 264 265 if substr (symbol_name, 1, 10) = "!sysmacro." then do; /* system macro, fake it */ 266 call graphic_manipulator_$examine_list (sub_value, array, array_len, code); 267 if code ^= 0 then call crump (is_replay); 268 269 call graphic_manipulator_$examine_data (array (1), 0, 270 addr (symbol_name) -> based_databit_string, code); 271 if code ^= 0 then call crump (is_replay); 272 273 if is_replay then 274 call ioa_$nnl ("^a", symbol_name); 275 else call ioa_$nnl ("^a is system macro ""^a""", element_arg.name, symbol_name); 276 return; 277 end; 278 279 if ^is_replay then do; 280 call ioa_$nnl ("^a is symbol ""^a""", element_arg.name, symbol_name); 281 return; 282 end; 283 284 do i = 1 to n_found_symbols while (found_symbols.name (i) ^= symbol_name); 285 end; 286 287 if i <= n_found_symbols then do; /* already know this one */ 288 call ioa_$nnl ("^a", symbol_name); 289 return; 290 end; 291 292 cur_elements = 1; 293 allocate local_tuple in (my_area); 294 295 local_tuple.rvalue (1) = sub_value; 296 297 local_tuple.name (1) = "???"; 298 299 if level = 0 then paren = ""; 300 else paren = "("; 301 call ioa_$nnl ("^/^v-^vx^a^a = ", divide (indentation, 10, 17, 0), mod (indentation, 10), paren, symbol_name); 302 if db_sw then call ioa_$nnl ("|SYMBOL RECURSION - ONE ELEMENT"); 303 call replay_recur (local_tuple.element (*), level+1, is_replay); 304 if level > 0 then call ioa_$nnl (")"); 305 306 n_found_symbols = n_found_symbols + 1; 307 if n_found_symbols > cur_max_found_symbols then do; 308 old_p = fs_ptr; 309 max_found_symbols = cur_max_found_symbols + 50; 310 allocate found_symbols in (my_area); 311 312 do i = 1 to old_p -> n_found_symbols - 1; 313 fs_ptr -> found_symbols.name (i) = old_p -> found_symbols.name (i); 314 end; 315 316 fs_ptr -> n_found_symbols = old_p -> n_found_symbols; 317 318 free old_p -> found_symbols in (my_area); 319 end; 320 321 found_symbols.name (n_found_symbols) = symbol_name; 322 323 free local_tuple in (my_area); 324 325 return; 326 327 describe_type (25): /* text */ 328 329 call graphic_manipulator_$examine_text (element_arg.rvalue, alignment, n_chars, string, code); 330 if code ^= 0 then call crump (is_replay); 331 332 if is_replay then do; 333 /* double all the quotes */ 334 do i = 1 by 1 while (i <= n_chars); 335 if substr (string, i, 1) = """" then do; 336 string = substr (string, 1, i) || """" || substr (string, i+1); 337 i = i + 1; 338 n_chars = n_chars + 1; 339 end; 340 end; 341 342 call ioa_$nnl ("text ""^a"" ^a", substr (string, 1, n_chars), 343 Text_alignments (alignment)); 344 end; 345 else call ioa_$nnl ("^a is text ""^a"" ^a", element_arg.name, substr (string, 1, n_chars), 346 Text_alignments (alignment)); 347 348 return; 349 350 describe_type (26): /* datablock */ 351 352 dcl data_string char (200) varying, 353 based_macro_bits bit (macro_bits_l) based (macro_bits_p), 354 macro_bits_p pointer, 355 macro_bits_l fixed bin; 356 357 macro_bits_p = addr (data_string); 358 macro_bits_l = size (data_string) * 36; 359 360 call graphic_manipulator_$examine_data (element_arg.rvalue, 0, based_macro_bits, code); 361 if code ^= 0 then call crump (is_replay); 362 363 if (length (data_string) > (size (data_string) - 1) * 4 364 | length (data_string) < 0) then /* not a good varying string */ 365 data_string = "!uninterpretable!"; /* datablock probably created by some other program */ 366 367 if is_replay then do; /* double all the quotes */ 368 369 do i = 1 by 1 while (i <= length (data_string)); 370 if substr (data_string, i, 1) = """" then do; 371 data_string = substr (data_string, 1, i) || """" || substr (data_string, i+1); 372 i = i + 1; 373 end; 374 end; 375 376 call ioa_$nnl ("^a ""^a""", Element_names (element_arg.type), data_string); 377 end; 378 379 else call ioa_$nnl ("^a is ^a ""^a""", element_arg.name, Element_names (element_arg.type), data_string); 380 381 return; 382 383 describe_type (32): 384 describe_type (33): /* list & array */ 385 386 call graphic_manipulator_$examine_list (element_arg.rvalue, array, array_len, code); 387 if code ^= 0 then call crump (is_replay); 388 389 if ^is_replay then do; 390 if array_len > 0 then plural = "s"; 391 else plural = ""; 392 if element_arg.type = Array then article = "an"; 393 else article = "a"; 394 call ioa_$nnl ("^a is ^a ^a of ^d element^a", element_arg.name, article, 395 Element_names (element_arg.type), array_len, plural); 396 return; 397 end; 398 399 cur_elements = array_len; 400 allocate local_tuple in (my_area); 401 402 do i = 1 to array_len; 403 local_tuple.rvalue (i) = array (i); 404 end; 405 406 local_tuple.name (*) = "???"; 407 408 new_indentation = indentation + number_spaces - 1; 409 410 call ioa_$nnl ("^a^/^v-^vx(", Element_names (element_arg.type), 411 divide (new_indentation, 10, 17, 0), mod (new_indentation, 10)); 412 if db_sw then call ioa_$nnl ("|ARRAY RECURSION - ^d ELEMENTS", local_tuple.n_elements); 413 call replay_recur (local_tuple.element (*), level + 1, is_replay); 414 call ioa_$nnl (")"); 415 416 free local_tuple in (my_area); 417 418 return; 419 420 end replay_element; 421 422 end replay_recur; 423 424 crump: proc (is_replay); 425 426 dcl is_replay bit (1) aligned parameter; 427 428 if code = 0 then code = -1; 429 if is_replay then environment.error_message = "While replaying."; 430 else environment.error_message = "While showing."; 431 goto returner; 432 end; 433 434 returner: 435 return; 436 437 replay_macro: entry (environment_ptr, code); 438 439 call macro_common ("1"b); 440 call ioa_ (""); 441 return; 442 443 show_macro: entry (environment_ptr, code); 444 445 call macro_common (""b); 446 call ioa_ (""); 447 return; 448 449 /* ------------------------- */ 450 451 macro_common: proc (is_replay); 452 453 dcl is_replay bit (1) aligned parameter; 454 3 1 /* --------------- BEGIN include file ge_token_types.incl.pl1 --------------- */ 3 2 3 3 dcl (Illegal initial (-2), 3 4 Undefined initial (-1), 3 5 Name initial (1), 3 6 Break initial (2), 3 7 Number initial (3)) fixed bin static; 3 8 3 9 /* ---------------- END include file ge_token_types.incl.pl1 ---------------- */ 455 456 457 dcl ge_parse_$get_token ext entry (char (*) varying, fixed bin, fixed bin), 458 ge_parse_$backup ext entry; 459 460 dcl token char (32) varying, 461 token_type fixed bin; 462 463 dcl com_err_$suppress_name ext entry options (variable); 464 465 dcl size builtin; 466 467 dcl array (21) fixed bin (18), 468 array_len fixed bin; 469 470 dcl (ioa_, ioa_$nnl) ext entry options (variable); 471 4 1 /* --------------- BEGIN include file ge_macro_info.incl.pl1 --------------- */ 4 2 4 3 dcl 1 macro_info based, 4 4 2 n_args fixed bin, 4 5 2 x (n_macro_args refer (macro_info.n_args)), 4 6 3 argument char (32) varying, 4 7 3 replacement char (1020) varying; 4 8 4 9 dcl replacement_string_size fixed bin static initial (1020) options (constant); 4 10 4 11 dcl 1 based_varying_string aligned based, 4 12 2 somelength fixed bin (35), 4 13 2 string char (0 refer (somelength)) aligned; 4 14 4 15 dcl n_macro_args fixed bin; 4 16 4 17 dcl macro_def char (200) varying; 4 18 4 19 dcl macro_info_p pointer; 4 20 4 21 dcl based_macro_bits bit (macro_bits_l) based (macro_bits_p), 4 22 macro_bits_p pointer, 4 23 macro_bits_l fixed bin; 4 24 4 25 dcl based_macro_arg char (32) based; 4 26 4 27 /* ---------------- END include file ge_macro_info.incl.pl1 ---------------- */ 472 473 474 dcl temp_node fixed bin (18); 475 476 call initialize_ptrs; 477 478 call ge_parse_$get_token (token, token_type, stack.level); 479 480 if token = ";" then call generate_error ("No arguments to macro replay/show.", ""); 481 482 do while ("1"b); 483 if token_type ^= Name then call generate_error ("Misplaced ""^a"".", token); 484 485 do i = 1 to n_macros while (macro.name (i) ^= token); 486 end; 487 488 if i > n_macros 489 then call com_err_$suppress_name (0, "ge_interpret_", "^/Macro ""^a"" not found.", token); 490 491 else do; 492 493 call graphic_manipulator_$examine_symbol (macro.node_value (i), temp_node, 0, "", code); 494 if code ^= 0 then call crump (is_replay); 495 496 call graphic_manipulator_$examine_list (temp_node, array, array_len, code); 497 if code ^= 0 then call crump (is_replay); 498 499 n_macro_args = array_len - 1; 500 501 allocate macro_info in (my_area) set (macro_info_p); 502 503 macro_bits_l = size (based_macro_arg) * 36; 504 505 do i = 1 to n_macro_args; 506 macro_bits_p = addr (macro_info_p -> macro_info.argument (i)); 507 call graphic_manipulator_$examine_data (array (i), 0, based_macro_bits, code); 508 if code ^= 0 then call crump (is_replay); 509 end; 510 511 macro_bits_p = addr (macro_def); 512 macro_bits_l = size (macro_def) * 36; 513 514 call graphic_manipulator_$examine_data (array (array_len), 0, based_macro_bits, code); 515 if code ^= 0 then call crump (is_replay); 516 517 if is_replay then do; 518 call ioa_$nnl ("^/macro ^a", token); 519 520 do i = 1 to array_len- 1; 521 call ioa_$nnl (" ^a", macro_info_p -> macro_info.argument (i)); 522 end; 523 524 call ioa_ (" = ^a;", macro_def); 525 526 end; 527 528 else do; 529 if array_len = 2 then plural = ""; 530 else plural = "s"; 531 call ioa_ ("^a is macro of ^d argument^a:", token, array_len - 1, plural); 532 533 do i = 1 to array_len - 1; 534 call ioa_ ("Arg ^d: ^a", i, macro_info_p -> macro_info.argument (i)); 535 end; 536 537 call ioa_ ("Definition: ^a;", macro_def); 538 end; 539 540 free macro_info_p -> macro_info in (my_area); 541 end; 542 543 call ge_parse_$get_token (token, token_type, stack.level); 544 if token = ";" then return; 545 end; 546 547 end macro_common; 548 549 generate_error: proc (string, offender); 550 551 dcl string char (*) parameter, 552 offender char (*) varying parameter; 553 554 dcl ioa_$rsnnl ext entry options (variable); 555 556 if code = 0 then code = -1; 557 call ioa_$rsnnl (string, environment.error_message, 0, offender); 558 goto returner; 559 end generate_error; 560 5 1 /* *************** BEGIN INCLUDE FILE gm_entry_dcls.incl.pl1 *************** */ 5 2 5 3 dcl (graphic_manipulator_$init, 5 4 gm_$init) entry (fixed bin (35)); 5 5 5 6 dcl (graphic_manipulator_$segp, 5 7 gm_$segp) entry (pointer, fixed bin (35)); 5 8 5 9 dcl (graphic_manipulator_$create_position, 5 10 gm_$create_position, 5 11 graphic_manipulator_$cpos, 5 12 gm_$cpos) entry (fixed bin, float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 5 13 5 14 dcl (graphic_manipulator_$create_mode, 5 15 gm_$create_mode, 5 16 graphic_manipulator_$cmode, 5 17 gm_$cmode) entry (fixed bin, fixed bin, fixed bin (35)) returns (fixed bin (18)); 5 18 5 19 dcl (graphic_manipulator_$create_scale, 5 20 gm_$create_scale, 5 21 graphic_manipulator_$cscale, 5 22 gm_$cscale) entry (float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 5 23 5 24 dcl (graphic_manipulator_$create_rotation, 5 25 gm_$create_rotation, 5 26 graphic_manipulator_$crot, 5 27 gm_$crot) entry (float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 5 28 5 29 dcl (graphic_manipulator_$create_clip, 5 30 gm_$create_clip, 5 31 graphic_manipulator_$cclip, 5 32 gm_$cclip) entry (float bin (27), float bin (27), float bin (27), float bin (27), float bin (27), float bin (27), 5 33 fixed bin (35)) returns (fixed bin (18)); 5 34 5 35 dcl (graphic_manipulator_$create_color, 5 36 gm_$create_color, 5 37 graphic_manipulator_$ccolor, 5 38 gm_$ccolor) entry (fixed bin, fixed bin, fixed bin, fixed bin (35)) returns (fixed bin (18)); 5 39 5 40 dcl (graphic_manipulator_$create_text, 5 41 gm_$create_text, 5 42 graphic_manipulator_$ctext, 5 43 gm_$ctext) entry (fixed bin, fixed bin, char (*), fixed bin (35)) returns (fixed bin (18)); 5 44 5 45 dcl (graphic_manipulator_$create_data, 5 46 gm_$create_data, 5 47 graphic_manipulator_$cdata, 5 48 gm_$cdata) entry (fixed bin, bit (*), fixed bin (35)) returns (fixed bin (18)); 5 49 5 50 dcl (graphic_manipulator_$create_list, 5 51 gm_$create_list, 5 52 graphic_manipulator_$clist, 5 53 gm_$clist) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)) returns (fixed bin (18)); 5 54 5 55 dcl (graphic_manipulator_$create_array, 5 56 gm_$create_array, 5 57 graphic_manipulator_$carray, 5 58 gm_$carray) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)) returns (fixed bin (18)); 5 59 5 60 dcl (graphic_manipulator_$assign_name, 5 61 gm_$assign_name) entry (char (*), fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 5 62 5 63 dcl (graphic_manipulator_$find_structure, 5 64 gm_$find_structure, 5 65 graphic_manipulator_$fstruc, 5 66 gm_$fstruc) entry (char (*), fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 5 67 5 68 dcl (graphic_manipulator_$add_element, 5 69 gm_$add_element) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35)); 5 70 5 71 dcl (graphic_manipulator_$replace_element, 5 72 gm_$replace_element) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 5 73 5 74 dcl (graphic_manipulator_$replace_node, 5 75 gm_$replace_node) entry (fixed bin (18), fixed bin (18), fixed bin (35)); 5 76 5 77 dcl (graphic_manipulator_$remove_symbol, 5 78 gm_$remove_symbol) entry (char (*), fixed bin (35)); 5 79 5 80 dcl (graphic_manipulator_$replicate, 5 81 gm_$replicate) entry (fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 5 82 5 83 dcl (graphic_manipulator_$examine_type, 5 84 gm_$examine_type) entry (fixed bin (18), bit (1) aligned, fixed bin, fixed bin (35)); 5 85 5 86 dcl (graphic_manipulator_$examine_position, 5 87 gm_$examine_position, 5 88 graphic_manipulator_$epos, 5 89 gm_$epos) entry (fixed bin (18), fixed bin, float bin, float bin, float bin, fixed bin (35)); 5 90 5 91 dcl (graphic_manipulator_$examine_mode, 5 92 gm_$examine_mode, 5 93 graphic_manipulator_$emode, 5 94 gm_$emode) entry (fixed bin (18), fixed bin, fixed bin, fixed bin (35)); 5 95 5 96 dcl (graphic_manipulator_$examine_color, 5 97 gm_$examine_color, 5 98 graphic_manipulator_$ecolor, 5 99 gm_$ecolor) entry (fixed bin (18), fixed bin, fixed bin, fixed bin, fixed bin (35)); 5 100 5 101 dcl (graphic_manipulator_$examine_mapping, 5 102 gm_$examine_mapping, 5 103 graphic_manipulator_$emap, 5 104 gm_$emap) entry (fixed bin (18), fixed bin, float bin dimension (*), fixed bin, fixed bin (35)); 5 105 5 106 dcl (graphic_manipulator_$examine_contents, 5 107 gm_$examine_contents) entry (fixed bin (18), fixed bin (18) dimension (*), fixed bin, fixed bin (35)); 5 108 5 109 dcl (graphic_manipulator_$examine_list, 5 110 gm_$examine_list, 5 111 graphic_manipulator_$elist, 5 112 gm_$elist) entry (fixed bin (18), dimension (*) fixed bin (18), fixed bin, fixed bin (35)); 5 113 5 114 dcl (graphic_manipulator_$examine_symtab, 5 115 graphic_manipulator_$esymtab, 5 116 gm_$examine_symtab, 5 117 gm_$esymtab) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)); 5 118 5 119 dcl (graphic_manipulator_$examine_symbol, 5 120 gm_$examine_symbol, 5 121 graphic_manipulator_$esymbol, 5 122 gm_$esymbol) entry (fixed bin (18), fixed bin (18), fixed bin, char (*), fixed bin (35)); 5 123 5 124 dcl (graphic_manipulator_$examine_text, 5 125 gm_$examine_text, 5 126 graphic_manipulator_$etext, 5 127 gm_$etext) entry (fixed bin (18), fixed bin, fixed bin, char (*), fixed bin (35)); 5 128 5 129 dcl (graphic_manipulator_$examine_data, 5 130 gm_$examine_data, 5 131 graphic_manipulator_$edata, 5 132 gm_$edata) entry (fixed bin (18), fixed bin, bit (*), fixed bin (35)); 5 133 5 134 dcl (graphic_manipulator_$get_struc, 5 135 gm_$get_struc, 5 136 graphic_manipulator_$gstruc, 5 137 gm_$gstruc) entry (char (*), char (*), char (*), fixed bin, fixed bin (35)); 5 138 5 139 dcl (graphic_manipulator_$put_struc, 5 140 gm_$put_struc, 5 141 graphic_manipulator_$pstruc, 5 142 gm_$pstruc) entry (char (*), char (*), char (*), fixed bin, fixed bin (35)); 5 143 5 144 dcl (graphic_manipulator_$save_file, 5 145 gm_$save_file) entry (char (*), char (*), fixed bin (35)); 5 146 5 147 dcl (graphic_manipulator_$use_file, 5 148 gm_$use_file) entry (char (*), char (*), fixed bin (35)); 5 149 5 150 /* **************** END INCLUDE FILE gm_entry_dcls.incl.pl1 **************** */ 561 562 6 1 /* --------------- BEGIN include file graphic_etypes.incl.pl1 --------------- */ 6 2 6 3 /* Types of position, mode, and other effectors for the 6 4* Multics General Graphic System */ 6 5 6 6 6 7 /* Null code */ 6 8 6 9 dcl (Null initial (-1), 6 10 6 11 /* Position codes */ 6 12 6 13 Setposition initial (0), 6 14 Setpoint initial (1), 6 15 Vector initial (2), 6 16 Shift initial (3), 6 17 Point initial (4), 6 18 6 19 /* Mode codes, with values where appropriate */ 6 20 6 21 Scaling initial (8), 6 22 Rotation initial (9), 6 23 Clipping initial (10), 6 24 6 25 Intensity initial (16), 6 26 Full_intensity initial (7), 6 27 Half_intensity initial (3), 6 28 Invisible initial (0), 6 29 6 30 Linetype initial (17), 6 31 Solid initial (0), 6 32 Dashed initial (1), 6 33 Dotted initial (2), 6 34 Dash_dotted initial (3), 6 35 Long_dashed initial (4), 6 36 6 37 Sensitivity initial (18), 6 38 Sensitive initial (1), 6 39 Insensitive initial (0), 6 40 6 41 Blink initial (19), 6 42 Steady initial (0), 6 43 Blinking initial (1), 6 44 6 45 Color initial (20), 6 46 6 47 Symbol initial (24), 6 48 6 49 /* Text code, with legal alignments */ 6 50 6 51 Text initial (25), 6 52 Upper_left initial (1), 6 53 Upper_center initial (2), 6 54 Upper_right initial (3), 6 55 Left initial (4), 6 56 Center initial (5), 6 57 Right initial (6), 6 58 Lower_left initial (7), 6 59 Lower_center initial (8), 6 60 Lower_right initial (9), 6 61 6 62 /* Datablock code */ 6 63 6 64 Datablock initial (26), 6 65 6 66 /* Structural effector codes */ 6 67 6 68 List initial (32), 6 69 Array initial (33), 6 70 6 71 /* Merge codes for gm_$get_struc and gm_$put_struc */ 6 72 6 73 On_dup_error initial (0), /* allow no name duplications */ 6 74 On_dup_source initial (1), /* on name dup, force move (use source copy) */ 6 75 On_dup_target_then_nulls initial (2), /* on name dup, use target copy, for nondup symbols create null ones */ 6 76 On_dup_target_then_source initial (3), /* on name dup, use target copy, for nondup symbols, use source copy */ 6 77 6 78 /* Device codes for graphic input devices */ 6 79 6 80 Terminal_program initial (0), 6 81 Keyboard initial (1), 6 82 Mouse initial (2), 6 83 Joystick initial (3), 6 84 Tablet_and_pen initial (4), 6 85 Light_pen initial (5), 6 86 Trackball initial (6), 6 87 Any_device initial (63)) /* 63 is equivalent to -1 in SPI */ 6 88 6 89 fixed bin internal static options (constant); 6 90 6 91 /* ---------------- END include file graphic_etypes.incl.pl1 ---------------- */ 563 564 7 1 /* --------------- BEGIN include file graphic_enames.incl.pl1 --------------- */ 7 2 7 3 dcl Element_names (-2:33) char (16) static options (constant) initial 7 4 ("illegal type", "null", "setposition", "setpoint", "vector", "shift", "point", (3) (1) "undefined", 7 5 "scaling", "rotation", "clipping", (5) (1) "undefined", 7 6 "intensity", "linetype", "sensitivity", "blink", "color", (3) (1) "undefined", 7 7 "symbol", "text", "datablock", (5) (1) "undefined", 7 8 "list", "array"); 7 9 7 10 dcl Intensity_names (0:7) char (8) static options (constant) initial 7 11 ("off", "1", "2", "3", "4", "5", "6", "full"); 7 12 7 13 dcl Linetype_names (0:4) char (12) static options (constant) initial 7 14 ("solid", "dashed", "dotted", "dash_dotted", "long_dashed"); 7 15 7 16 dcl Sensitivity_names (0:1) char (12) static options (constant) initial 7 17 ("insensitive", "sensitive"); 7 18 7 19 dcl Blink_names (0:1) char (8) static options (constant) initial 7 20 ("steady", "blinking"); 7 21 7 22 dcl Text_alignments (9) char (16) static options (constant) initial 7 23 ("upper_left", "upper_center", "upper_right", 7 24 "left", "center", "right", 7 25 "lower_left", "lower_center", "lower_right"); 7 26 7 27 dcl Input_device_names (0:63) char (16) static options (constant) initial 7 28 ("terminal_program", "keyboard", "mouse", "joystick", "pen_tablet", 7 29 "lightpen", "trackball", (56)(1)"undefined", "any"); 7 30 7 31 /* ---------------- END include file graphic_enames.incl.pl1 ---------------- */ 565 566 flip: entry; 567 db_sw = ^db_sw; 568 return; 569 570 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1110.6 ge_interpret_.pl1 >udd>sm>ds>w>ml>ge_interpret_.pl1 27 1 12/17/79 1809.0 ge_environment.incl.pl1 >ldd>incl>ge_environment.incl.pl1 29 2 08/27/75 1800.7 ge_data_structures.incl.pl1 >ldd>incl>ge_data_structures.incl.pl1 455 3 08/27/75 1800.7 ge_token_types.incl.pl1 >ldd>incl>ge_token_types.incl.pl1 472 4 11/02/77 1838.4 ge_macro_info.incl.pl1 >ldd>incl>ge_macro_info.incl.pl1 561 5 08/27/75 1800.7 gm_entry_dcls.incl.pl1 >ldd>incl>gm_entry_dcls.incl.pl1 563 6 03/27/82 0539.2 graphic_etypes.incl.pl1 >ldd>incl>graphic_etypes.incl.pl1 565 7 03/27/82 0539.3 graphic_enames.incl.pl1 >ldd>incl>graphic_enames.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. Array constant fixed bin(17,0) initial dcl 6-9 ref 392 Blink_names 000110 constant char(8) initial array packed unaligned dcl 7-19 ref 239 Element_names 000161 constant char(16) initial array packed unaligned dcl 7-3 set ref 200* 213* 224* 226* 241* 242* 376* 379* 394* 410* Intensity_names 000141 constant char(8) initial array packed unaligned dcl 7-10 ref 236 Linetype_names 000122 constant char(12) initial array packed unaligned dcl 7-13 ref 237 Name constant fixed bin(17,0) initial dcl 3-3 ref 483 Sensitivity_names 000114 constant char(12) initial array packed unaligned dcl 7-16 ref 238 Text_alignments 000044 constant char(16) initial array packed unaligned dcl 7-22 set ref 342* 345* alignment 000207 automatic fixed bin(17,0) dcl 37 set ref 327* 342 345 areap 14 based pointer level 2 in structure "environment" dcl 1-8 in procedure "ge_interpret_" ref 1-48 areap 000114 automatic pointer dcl 1-36 in procedure "ge_interpret_" set ref 65 86 1-48* 293 310 318 323 400 416 501 540 argument 1 based varying char(32) array level 3 dcl 4-3 set ref 506 521* 534* array 000307 automatic fixed bin(18,0) array dcl 146 in procedure "replay_element" set ref 266* 269* 383* 403 array 000254 automatic fixed bin(18,0) array dcl 467 in procedure "macro_common" set ref 496* 507* 514* array_len 000301 automatic fixed bin(17,0) dcl 467 in procedure "macro_common" set ref 496* 499 514 520 529 531 533 array_len 010306 automatic fixed bin(17,0) dcl 146 in procedure "replay_element" set ref 266* 383* 390 394* 399 402 article 000212 automatic char(2) packed unaligned dcl 43 set ref 392* 393* 394* at_ptr 16 based pointer level 2 in structure "environment" dcl 1-8 in procedure "ge_interpret_" ref 1-49 at_ptr 000116 automatic pointer dcl 1-36 in procedure "ge_interpret_" set ref 1-49* based_databit_string based bit packed unaligned dcl 256 set ref 269* based_macro_arg based char(32) packed unaligned dcl 4-25 ref 503 based_macro_bits based bit packed unaligned dcl 4-21 in procedure "macro_common" set ref 507* 514* based_macro_bits based bit packed unaligned dcl 350 in procedure "replay_element" set ref 360* blue 000206 automatic fixed bin(17,0) dcl 146 set ref 246* 251* 252* code parameter fixed bin(35,0) dcl 31 set ref 25 90 169* 170 184* 188 218* 222 230* 234 246* 249 260* 261 266* 267 269* 271 327* 330 360* 361 383* 387 428 428* 437 443 493* 494 496* 497 507* 508 514* 515 556 556* com_err_$suppress_name 000050 constant entry external dcl 463 in procedure "macro_common" ref 488 com_err_$suppress_name 000014 constant entry external dcl 46 in procedure "ge_interpret_" ref 69 command_p 2 based pointer level 2 in structure "environment" dcl 1-8 in procedure "ge_interpret_" ref 1-43 command_p 000102 automatic pointer dcl 1-36 in procedure "ge_interpret_" set ref 1-43* cur_elements 000120 automatic fixed bin(17,0) dcl 2-5 set ref 292* 293 293 399* 400 400 cur_max_found_symbols 1 based fixed bin(17,0) level 2 dcl 49 set ref 65* 86 307 309 310* 318 data_string 010312 automatic varying char(200) dcl 350 set ref 357 358 363 363 363 363* 369 370 371* 371 371 376* 379* db_sw 000010 internal static bit(1) initial dcl 35 set ref 113 121 134 302 412 567* 567 element 1 based structure array level 2 in structure "local_tuple" dcl 161 in procedure "replay_element" set ref 303* 413* element 1 based structure array level 2 in structure "tuple" dcl 2-21 in procedure "ge_interpret_" set ref 77 96* element_arg parameter structure level 1 dcl 142 set ref 140 environment based structure level 1 dcl 1-8 environment_ptr parameter pointer dcl 1-6 ref 25 90 437 443 1-42 1-43 1-44 1-45 1-46 1-47 1-48 1-49 1-51 429 430 557 error_message 20 based varying char(100) level 2 dcl 1-8 set ref 1-51* 429* 430* 557* external_char_table 52 based structure level 2 dcl 1-8 fake_element_array based structure array level 1 dcl 58 set ref 77* found_symbols based structure level 1 dcl 49 set ref 65 86 310 318 fs_ptr 000216 automatic pointer dcl 54 set ref 65* 66 74 74 77 86 284 284 287 306 306 307 307 308 309 310* 313 316 321 321 ge_parse_$get_token 000046 constant entry external dcl 457 ref 478 543 graphic_manipulator_$examine_color 000030 constant entry external dcl 5-96 ref 246 graphic_manipulator_$examine_data 000042 constant entry external dcl 5-129 ref 269 360 507 514 graphic_manipulator_$examine_list 000034 constant entry external dcl 5-109 ref 266 383 496 graphic_manipulator_$examine_mapping 000032 constant entry external dcl 5-101 ref 218 graphic_manipulator_$examine_mode 000026 constant entry external dcl 5-91 ref 230 graphic_manipulator_$examine_position 000024 constant entry external dcl 5-86 ref 184 graphic_manipulator_$examine_symbol 000036 constant entry external dcl 5-119 ref 260 493 graphic_manipulator_$examine_text 000040 constant entry external dcl 5-124 ref 327 graphic_manipulator_$examine_type 000022 constant entry external dcl 5-83 ref 169 green 000205 automatic fixed bin(17,0) dcl 146 set ref 246* 251* 252* i 000213 automatic fixed bin(17,0) dcl 46 in procedure "ge_interpret_" set ref 68* 69 69 74 77* 485* 485* 488 493 505* 506 507* 520* 521* 533* 534* 534* i 000174 automatic fixed bin(17,0) dcl 146 in procedure "replay_element" set ref 284* 284* 287 312* 313 313* 334* 334* 335 336 336 337* 337* 369* 369* 370 371 371 372* 372* 402* 403 403* i 000100 automatic fixed bin(17,0) dcl 109 in procedure "replay_recur" set ref 125* 126 127* indentation 000101 automatic fixed bin(17,0) dcl 109 set ref 123* 131 131 131 131 301 301 301 301 408 ioa_ 000052 constant entry external dcl 470 in procedure "macro_common" ref 524 531 534 537 ioa_ 000016 constant entry external dcl 46 in procedure "ge_interpret_" ref 84 127 440 446 ioa_$nnl 000054 constant entry external dcl 470 in procedure "macro_common" ref 518 521 ioa_$nnl 000020 constant entry external dcl 46 in procedure "ge_interpret_" ref 114 121 131 134 178 181 200 213 224 226 241 242 251 252 273 275 280 288 301 302 304 342 345 376 379 394 410 412 414 ioa_$rsnnl 000056 constant entry external dcl 554 ref 557 ioa_string 000212 automatic varying char(20) dcl 146 set ref 192* 196* 197* 198* 200* 205* 209* 210* 211* is_replay parameter bit(1) dcl 106 in procedure "replay_recur" set ref 102 113 126* is_replay parameter bit(1) dcl 426 in procedure "crump" ref 424 429 is_replay parameter bit(1) dcl 453 in procedure "macro_common" set ref 451 494* 497* 508* 515* 517 is_replay parameter bit(1) dcl 142 in procedure "replay_element" set ref 140 170* 174* 178 188* 190 222* 224 234* 241 249* 251 261* 267* 271* 273 279 303* 330* 332 361* 367 387* 389 413* j 000214 automatic fixed bin(17,0) dcl 46 set ref 74* 74* 77 level parameter fixed bin(17,0) dcl 106 in procedure "replay_recur" set ref 102 114* 121* 123 126* 127 134* level based fixed bin(17,0) level 2 in structure "stack" dcl 2-34 in procedure "ge_interpret_" set ref 478* 543* level parameter fixed bin(17,0) dcl 142 in procedure "replay_element" ref 140 299 303 304 413 limit 000102 automatic fixed bin(17,0) dcl 109 set ref 120* 121* 125 127 local_tuple based structure level 1 dcl 161 set ref 293 323 400 416 local_tuple_p 010310 automatic pointer dcl 166 set ref 293* 295 297 303 323 400* 403 406 412 413 416 mac_p 000112 automatic pointer dcl 1-36 in procedure "ge_interpret_" set ref 1-47* 485 485 488 493 mac_p 12 based pointer level 2 in structure "environment" dcl 1-8 in procedure "ge_interpret_" ref 1-47 macro 2 based structure array level 2 dcl 2-14 macro_bits_l 000372 automatic fixed bin(17,0) dcl 4-21 in procedure "macro_common" set ref 503* 507 507 512* 514 514 macro_bits_l 010400 automatic fixed bin(17,0) dcl 350 in procedure "replay_element" set ref 358* 360 360 macro_bits_p 010376 automatic pointer dcl 350 in procedure "replay_element" set ref 357* 360 macro_bits_p 000370 automatic pointer dcl 4-21 in procedure "macro_common" set ref 506* 507 511* 514 macro_def 000303 automatic varying char(200) dcl 4-17 set ref 511 512 524* 537* macro_info based structure level 1 unaligned dcl 4-3 set ref 501 540 macro_info_p 000366 automatic pointer dcl 4-19 set ref 501* 506 521 534 540 macros based structure level 1 dcl 2-14 mappings 000175 automatic float bin(27) array dcl 146 set ref 218* 224* 224* 224* 226* 226* 226* mappings_len 000203 automatic fixed bin(17,0) dcl 146 set ref 218* max_found_symbols 000222 automatic fixed bin(17,0) dcl 54 set ref 64* 65 65 309* 310 310 mode 000220 automatic fixed bin(17,0) dcl 146 set ref 230* 236 237 238 239 mode_string 000221 automatic char(32) packed unaligned dcl 146 set ref 236* 237* 238* 239* 241* 242* my_area based area(261120) dcl 2-3 ref 65 86 293 310 318 323 400 416 501 540 n_args based fixed bin(17,0) level 2 dcl 4-3 set ref 501* 540 n_chars 000206 automatic fixed bin(17,0) dcl 37 set ref 327* 334 338* 338 342 342 345 345 n_elements based fixed bin(17,0) level 2 in structure "tuple" dcl 2-21 in procedure "ge_interpret_" ref 68 96 96 96 96 96 96 96 n_elements based fixed bin(17,0) level 2 in structure "local_tuple" dcl 161 in procedure "replay_element" set ref 293* 303 303 303 303 303 303 303 323 400* 406 412* 413 413 413 413 413 413 413 416 n_found_symbols based fixed bin(17,0) level 2 dcl 49 set ref 66* 74 77 284 287 306* 306 307 312 316* 316 321 n_macro_args 000302 automatic fixed bin(17,0) dcl 4-15 set ref 499* 501 501 505 n_macros based fixed bin(17,0) initial level 2 dcl 2-14 ref 485 488 name 1 based varying char(32) array level 3 in structure "tuple" dcl 2-21 in procedure "ge_interpret_" set ref 69 69* 74 name 2 based varying char(32) array level 3 in structure "macros" dcl 2-14 in procedure "ge_interpret_" ref 485 name parameter varying char(32) level 2 in structure "element_arg" dcl 142 in procedure "replay_element" set ref 181* 213* 226* 242* 252* 275* 280* 345* 379* 394* name 2 based varying char(32) array level 2 in structure "found_symbols" dcl 49 in procedure "ge_interpret_" set ref 74 284 313* 313 321* name 1 based varying char(32) array level 3 in structure "local_tuple" dcl 161 in procedure "replay_element" set ref 297* 406* nc 000232 automatic fixed bin(17,0) dcl 146 set ref 260* 263 new_indentation 000306 automatic fixed bin(17,0) dcl 146 set ref 408* 410 410 410 410 node_value 13 based fixed bin(18,0) array level 3 dcl 2-14 set ref 493* number_spaces constant fixed bin(17,0) initial dcl 41 ref 123 408 offender parameter varying char dcl 551 set ref 549 557* old_p 000220 automatic pointer dcl 54 set ref 308* 312 313 316 318 paren 000211 automatic char(1) packed unaligned dcl 43 set ref 299* 300* 301* plural 000210 automatic char(1) packed unaligned dcl 43 set ref 390* 391* 394* 529* 530* 531* red 000204 automatic fixed bin(17,0) dcl 146 set ref 246* 251* 252* rvalue 14 parameter fixed bin(18,0) level 2 in structure "element_arg" dcl 142 in procedure "replay_element" set ref 169* 184* 218* 230* 246* 260* 327* 360* 383* rvalue 15 based fixed bin(18,0) array level 3 in structure "local_tuple" dcl 161 in procedure "replay_element" set ref 295* 403* size builtin function dcl 465 ref 503 512 stack based structure level 1 dcl 2-34 stack_p based pointer level 2 in structure "environment" dcl 1-8 in procedure "ge_interpret_" ref 1-42 stack_p 000100 automatic pointer dcl 1-36 in procedure "ge_interpret_" set ref 62 94 1-42* 478 543 string 000124 automatic char(200) packed unaligned dcl 37 in procedure "ge_interpret_" set ref 260* 263 327* 335 336* 336 336 342 342 345 345 string parameter char packed unaligned dcl 551 in procedure "generate_error" set ref 549 557* sub_value 000231 automatic fixed bin(18,0) dcl 146 set ref 260* 266* 295 sym_p 10 based pointer level 2 in structure "environment" dcl 1-8 in procedure "ge_interpret_" ref 1-46 sym_p 000110 automatic pointer dcl 1-36 in procedure "ge_interpret_" set ref 1-46* symbol 2 based structure array level 2 dcl 2-7 symbol_name 000233 automatic varying char(168) dcl 146 set ref 263* 265 269 269 269 273* 275* 280* 284 288* 301* 321 symbols based structure level 1 dcl 2-7 sysprint 000012 constant file stream dcl 33 set ref 115 115 116 117 system_macro_p 6 based pointer level 2 in structure "environment" dcl 1-8 in procedure "ge_interpret_" ref 1-45 system_macro_p 000106 automatic pointer dcl 1-36 in procedure "ge_interpret_" set ref 1-45* system_symbol_p 4 based pointer level 2 in structure "environment" dcl 1-8 in procedure "ge_interpret_" ref 1-44 system_symbol_p 000104 automatic pointer dcl 1-36 in procedure "ge_interpret_" set ref 1-44* temp_node 000373 automatic fixed bin(18,0) dcl 474 set ref 493* 496* token 000242 automatic varying char(32) dcl 460 set ref 478* 480 483* 485 488* 518* 531* 543* 544 token_type 000253 automatic fixed bin(17,0) dcl 460 set ref 478* 483 543* tuple based structure level 1 dcl 2-21 tuple_p 000122 automatic pointer dcl 2-19 set ref 62* 68 69 69 74 77 94* 96 tuple_ptr 2 based pointer array level 2 dcl 2-34 ref 62 94 type 11 parameter fixed bin(17,0) level 2 dcl 142 set ref 169* 172 200 213 224 226 236 237 238 241 242 376 379 392 394 410 x 000207 automatic float bin(27) dcl 146 in procedure "replay_element" set ref 184* 192 200* 205 213* x 1 based structure array level 2 in structure "macro_info" unaligned dcl 4-3 in procedure "macro_common" x_element parameter structure array level 1 dcl 104 set ref 102 116 120 125 126* y 000210 automatic float bin(27) dcl 146 set ref 184* 192 200* 205 213* z 000211 automatic float bin(27) dcl 146 set ref 184* 192 200* 205 213* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Any_device internal static fixed bin(17,0) initial dcl 6-9 Blink internal static fixed bin(17,0) initial dcl 6-9 Blinking internal static fixed bin(17,0) initial dcl 6-9 Break internal static fixed bin(17,0) initial dcl 3-3 Center internal static fixed bin(17,0) initial dcl 6-9 Clipping internal static fixed bin(17,0) initial dcl 6-9 Color internal static fixed bin(17,0) initial dcl 6-9 Dash_dotted internal static fixed bin(17,0) initial dcl 6-9 Dashed internal static fixed bin(17,0) initial dcl 6-9 Datablock internal static fixed bin(17,0) initial dcl 6-9 Dotted internal static fixed bin(17,0) initial dcl 6-9 Full_intensity internal static fixed bin(17,0) initial dcl 6-9 Half_intensity internal static fixed bin(17,0) initial dcl 6-9 Illegal internal static fixed bin(17,0) initial dcl 3-3 Input_device_names internal static char(16) initial array packed unaligned dcl 7-27 Insensitive internal static fixed bin(17,0) initial dcl 6-9 Intensity internal static fixed bin(17,0) initial dcl 6-9 Invisible internal static fixed bin(17,0) initial dcl 6-9 Joystick internal static fixed bin(17,0) initial dcl 6-9 Keyboard internal static fixed bin(17,0) initial dcl 6-9 Left internal static fixed bin(17,0) initial dcl 6-9 Light_pen internal static fixed bin(17,0) initial dcl 6-9 Linetype internal static fixed bin(17,0) initial dcl 6-9 List internal static fixed bin(17,0) initial dcl 6-9 Long_dashed internal static fixed bin(17,0) initial dcl 6-9 Lower_center internal static fixed bin(17,0) initial dcl 6-9 Lower_left internal static fixed bin(17,0) initial dcl 6-9 Lower_right internal static fixed bin(17,0) initial dcl 6-9 Mouse internal static fixed bin(17,0) initial dcl 6-9 Null internal static fixed bin(17,0) initial dcl 6-9 Number internal static fixed bin(17,0) initial dcl 3-3 On_dup_error internal static fixed bin(17,0) initial dcl 6-9 On_dup_source internal static fixed bin(17,0) initial dcl 6-9 On_dup_target_then_nulls internal static fixed bin(17,0) initial dcl 6-9 On_dup_target_then_source internal static fixed bin(17,0) initial dcl 6-9 Point internal static fixed bin(17,0) initial dcl 6-9 Right internal static fixed bin(17,0) initial dcl 6-9 Rotation internal static fixed bin(17,0) initial dcl 6-9 Scaling internal static fixed bin(17,0) initial dcl 6-9 Sensitive internal static fixed bin(17,0) initial dcl 6-9 Sensitivity internal static fixed bin(17,0) initial dcl 6-9 Setpoint internal static fixed bin(17,0) initial dcl 6-9 Setposition internal static fixed bin(17,0) initial dcl 6-9 Shift internal static fixed bin(17,0) initial dcl 6-9 Solid internal static fixed bin(17,0) initial dcl 6-9 Steady internal static fixed bin(17,0) initial dcl 6-9 Symbol internal static fixed bin(17,0) initial dcl 6-9 Tablet_and_pen internal static fixed bin(17,0) initial dcl 6-9 Terminal_program internal static fixed bin(17,0) initial dcl 6-9 Text internal static fixed bin(17,0) initial dcl 6-9 Trackball internal static fixed bin(17,0) initial dcl 6-9 Undefined internal static fixed bin(17,0) initial dcl 3-3 Upper_center internal static fixed bin(17,0) initial dcl 6-9 Upper_left internal static fixed bin(17,0) initial dcl 6-9 Upper_right internal static fixed bin(17,0) initial dcl 6-9 Vector internal static fixed bin(17,0) initial dcl 6-9 assembly_tuple based structure level 1 dcl 2-31 based_system_macro_list based structure level 1 dcl 1-30 based_system_symbol_list based structure level 1 dcl 1-24 based_varying_string based structure level 1 dcl 4-11 ge_parse_$backup 000000 constant entry external dcl 457 gm_$add_element 000000 constant entry external dcl 5-68 gm_$assign_name 000000 constant entry external dcl 5-60 gm_$carray 000000 constant entry external dcl 5-55 gm_$cclip 000000 constant entry external dcl 5-29 gm_$ccolor 000000 constant entry external dcl 5-35 gm_$cdata 000000 constant entry external dcl 5-45 gm_$clist 000000 constant entry external dcl 5-50 gm_$cmode 000000 constant entry external dcl 5-14 gm_$cpos 000000 constant entry external dcl 5-9 gm_$create_array 000000 constant entry external dcl 5-55 gm_$create_clip 000000 constant entry external dcl 5-29 gm_$create_color 000000 constant entry external dcl 5-35 gm_$create_data 000000 constant entry external dcl 5-45 gm_$create_list 000000 constant entry external dcl 5-50 gm_$create_mode 000000 constant entry external dcl 5-14 gm_$create_position 000000 constant entry external dcl 5-9 gm_$create_rotation 000000 constant entry external dcl 5-24 gm_$create_scale 000000 constant entry external dcl 5-19 gm_$create_text 000000 constant entry external dcl 5-40 gm_$crot 000000 constant entry external dcl 5-24 gm_$cscale 000000 constant entry external dcl 5-19 gm_$ctext 000000 constant entry external dcl 5-40 gm_$ecolor 000000 constant entry external dcl 5-96 gm_$edata 000000 constant entry external dcl 5-129 gm_$elist 000000 constant entry external dcl 5-109 gm_$emap 000000 constant entry external dcl 5-101 gm_$emode 000000 constant entry external dcl 5-91 gm_$epos 000000 constant entry external dcl 5-86 gm_$esymbol 000000 constant entry external dcl 5-119 gm_$esymtab 000000 constant entry external dcl 5-114 gm_$etext 000000 constant entry external dcl 5-124 gm_$examine_color 000000 constant entry external dcl 5-96 gm_$examine_contents 000000 constant entry external dcl 5-106 gm_$examine_data 000000 constant entry external dcl 5-129 gm_$examine_list 000000 constant entry external dcl 5-109 gm_$examine_mapping 000000 constant entry external dcl 5-101 gm_$examine_mode 000000 constant entry external dcl 5-91 gm_$examine_position 000000 constant entry external dcl 5-86 gm_$examine_symbol 000000 constant entry external dcl 5-119 gm_$examine_symtab 000000 constant entry external dcl 5-114 gm_$examine_text 000000 constant entry external dcl 5-124 gm_$examine_type 000000 constant entry external dcl 5-83 gm_$find_structure 000000 constant entry external dcl 5-63 gm_$fstruc 000000 constant entry external dcl 5-63 gm_$get_struc 000000 constant entry external dcl 5-134 gm_$gstruc 000000 constant entry external dcl 5-134 gm_$init 000000 constant entry external dcl 5-3 gm_$pstruc 000000 constant entry external dcl 5-139 gm_$put_struc 000000 constant entry external dcl 5-139 gm_$remove_symbol 000000 constant entry external dcl 5-77 gm_$replace_element 000000 constant entry external dcl 5-71 gm_$replace_node 000000 constant entry external dcl 5-74 gm_$replicate 000000 constant entry external dcl 5-80 gm_$save_file 000000 constant entry external dcl 5-144 gm_$segp 000000 constant entry external dcl 5-6 gm_$use_file 000000 constant entry external dcl 5-147 graphic_manipulator_$add_element 000000 constant entry external dcl 5-68 graphic_manipulator_$assign_name 000000 constant entry external dcl 5-60 graphic_manipulator_$carray 000000 constant entry external dcl 5-55 graphic_manipulator_$cclip 000000 constant entry external dcl 5-29 graphic_manipulator_$ccolor 000000 constant entry external dcl 5-35 graphic_manipulator_$cdata 000000 constant entry external dcl 5-45 graphic_manipulator_$clist 000000 constant entry external dcl 5-50 graphic_manipulator_$cmode 000000 constant entry external dcl 5-14 graphic_manipulator_$cpos 000000 constant entry external dcl 5-9 graphic_manipulator_$create_array 000000 constant entry external dcl 5-55 graphic_manipulator_$create_clip 000000 constant entry external dcl 5-29 graphic_manipulator_$create_color 000000 constant entry external dcl 5-35 graphic_manipulator_$create_data 000000 constant entry external dcl 5-45 graphic_manipulator_$create_list 000000 constant entry external dcl 5-50 graphic_manipulator_$create_mode 000000 constant entry external dcl 5-14 graphic_manipulator_$create_position 000000 constant entry external dcl 5-9 graphic_manipulator_$create_rotation 000000 constant entry external dcl 5-24 graphic_manipulator_$create_scale 000000 constant entry external dcl 5-19 graphic_manipulator_$create_text 000000 constant entry external dcl 5-40 graphic_manipulator_$crot 000000 constant entry external dcl 5-24 graphic_manipulator_$cscale 000000 constant entry external dcl 5-19 graphic_manipulator_$ctext 000000 constant entry external dcl 5-40 graphic_manipulator_$ecolor 000000 constant entry external dcl 5-96 graphic_manipulator_$edata 000000 constant entry external dcl 5-129 graphic_manipulator_$elist 000000 constant entry external dcl 5-109 graphic_manipulator_$emap 000000 constant entry external dcl 5-101 graphic_manipulator_$emode 000000 constant entry external dcl 5-91 graphic_manipulator_$epos 000000 constant entry external dcl 5-86 graphic_manipulator_$esymbol 000000 constant entry external dcl 5-119 graphic_manipulator_$esymtab 000000 constant entry external dcl 5-114 graphic_manipulator_$etext 000000 constant entry external dcl 5-124 graphic_manipulator_$examine_contents 000000 constant entry external dcl 5-106 graphic_manipulator_$examine_symtab 000000 constant entry external dcl 5-114 graphic_manipulator_$find_structure 000000 constant entry external dcl 5-63 graphic_manipulator_$fstruc 000000 constant entry external dcl 5-63 graphic_manipulator_$get_struc 000000 constant entry external dcl 5-134 graphic_manipulator_$gstruc 000000 constant entry external dcl 5-134 graphic_manipulator_$init 000000 constant entry external dcl 5-3 graphic_manipulator_$pstruc 000000 constant entry external dcl 5-139 graphic_manipulator_$put_struc 000000 constant entry external dcl 5-139 graphic_manipulator_$remove_symbol 000000 constant entry external dcl 5-77 graphic_manipulator_$replace_element 000000 constant entry external dcl 5-71 graphic_manipulator_$replace_node 000000 constant entry external dcl 5-74 graphic_manipulator_$replicate 000000 constant entry external dcl 5-80 graphic_manipulator_$save_file 000000 constant entry external dcl 5-144 graphic_manipulator_$segp 000000 constant entry external dcl 5-6 graphic_manipulator_$use_file 000000 constant entry external dcl 5-147 max_frames automatic fixed bin(17,0) dcl 2-5 max_macros automatic fixed bin(17,0) dcl 2-5 max_symbols automatic fixed bin(17,0) dcl 2-5 replacement_string_size internal static fixed bin(17,0) initial dcl 4-9 NAMES DECLARED BY EXPLICIT CONTEXT. crump 005431 constant entry internal dcl 424 ref 170 174 188 222 234 249 261 267 271 330 361 387 494 497 508 515 describe_type 000000 constant label array(-2:33) dcl 174 set ref 172 flip 001575 constant entry external dcl 566 ge_interpret_ 001131 constant entry external dcl 11 generate_error 006411 constant entry internal dcl 549 ref 480 483 initialize_ptrs 001610 constant entry internal dcl 1-40 ref 60 92 476 macro_common 005472 constant entry internal dcl 451 ref 439 445 replay 001144 constant entry external dcl 25 replay_element 002300 constant entry internal dcl 140 ref 126 replay_macro 001522 constant entry external dcl 437 replay_recur 001640 constant entry internal dcl 102 ref 77 96 303 413 returner 001517 constant label dcl 434 ref 431 558 show 001371 constant entry external dcl 90 show_macro 001550 constant entry external dcl 443 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 77 269 357 506 511 divide builtin function ref 131 131 301 301 410 410 hbound builtin function ref 120 index builtin function ref 69 lbound builtin function ref 125 length builtin function ref 363 363 369 mod builtin function ref 131 131 301 301 410 410 size builtin function ref 269 269 358 363 substr builtin function ref 263 265 335 336 336 342 342 345 345 370 371 371 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7024 7104 6525 7034 Length 7516 6525 60 376 276 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ge_interpret_ 416 external procedure is an external procedure. initialize_ptrs internal procedure shares stack frame of external procedure ge_interpret_. replay_recur 4510 internal procedure uses I/O statements. replay_element internal procedure shares stack frame of internal procedure replay_recur. crump 64 internal procedure is called by several nonquick procedures. macro_common internal procedure shares stack frame of external procedure ge_interpret_. generate_error internal procedure shares stack frame of external procedure ge_interpret_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 db_sw ge_interpret_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ge_interpret_ 000100 stack_p ge_interpret_ 000102 command_p ge_interpret_ 000104 system_symbol_p ge_interpret_ 000106 system_macro_p ge_interpret_ 000110 sym_p ge_interpret_ 000112 mac_p ge_interpret_ 000114 areap ge_interpret_ 000116 at_ptr ge_interpret_ 000120 cur_elements ge_interpret_ 000122 tuple_p ge_interpret_ 000124 string ge_interpret_ 000206 n_chars ge_interpret_ 000207 alignment ge_interpret_ 000210 plural ge_interpret_ 000211 paren ge_interpret_ 000212 article ge_interpret_ 000213 i ge_interpret_ 000214 j ge_interpret_ 000216 fs_ptr ge_interpret_ 000220 old_p ge_interpret_ 000222 max_found_symbols ge_interpret_ 000242 token macro_common 000253 token_type macro_common 000254 array macro_common 000301 array_len macro_common 000302 n_macro_args macro_common 000303 macro_def macro_common 000366 macro_info_p macro_common 000370 macro_bits_p macro_common 000372 macro_bits_l macro_common 000373 temp_node macro_common replay_recur 000100 i replay_recur 000101 indentation replay_recur 000102 limit replay_recur 000174 i replay_element 000175 mappings replay_element 000203 mappings_len replay_element 000204 red replay_element 000205 green replay_element 000206 blue replay_element 000207 x replay_element 000210 y replay_element 000211 z replay_element 000212 ioa_string replay_element 000220 mode replay_element 000221 mode_string replay_element 000231 sub_value replay_element 000232 nc replay_element 000233 symbol_name replay_element 000306 new_indentation replay_element 000307 array replay_element 010306 array_len replay_element 010310 local_tuple_p replay_element 010312 data_string replay_element 010376 macro_bits_p replay_element 010400 macro_bits_l replay_element THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac tra_ext_1 mdfx1 shorten_stack ext_entry int_entry int_entry_desc put_terminate strem_prep put_list_eis put_field op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_$suppress_name com_err_$suppress_name ge_parse_$get_token graphic_manipulator_$examine_color graphic_manipulator_$examine_data graphic_manipulator_$examine_list graphic_manipulator_$examine_mapping graphic_manipulator_$examine_mode graphic_manipulator_$examine_position graphic_manipulator_$examine_symbol graphic_manipulator_$examine_text graphic_manipulator_$examine_type ioa_ ioa_ ioa_$nnl ioa_$nnl ioa_$rsnnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. sysprint sysprint.fsb LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 33 001111 11 001130 12 001137 25 001140 60 001152 62 001153 64 001156 65 001160 66 001171 68 001172 69 001201 74 001263 75 001311 77 001313 82 001345 84 001347 86 001360 88 001366 90 001367 92 001377 94 001400 96 001403 97 001516 434 001517 437 001520 439 001530 440 001534 441 001545 443 001546 445 001556 446 001562 447 001573 566 001574 567 001603 568 001607 1 40 001610 1 42 001611 1 43 001616 1 44 001621 1 45 001623 1 46 001625 1 47 001627 1 48 001631 1 49 001633 1 51 001635 1 53 001636 102 001637 113 001650 114 001656 115 001676 115 001711 116 001723 117 002066 120 002100 121 002104 123 002132 125 002136 126 002147 127 002172 130 002213 131 002214 132 002250 134 002252 136 002277 140 002300 169 002302 170 002324 172 002340 174 002344 178 002353 181 002373 182 002415 184 002416 188 002442 190 002456 192 002462 196 002475 197 002503 198 002511 200 002516 201 002550 205 002551 209 002565 210 002573 211 002601 213 002606 216 002652 218 002653 222 002706 224 002722 226 002767 228 003033 230 003034 234 003054 236 003070 237 003104 238 003115 239 003126 241 003134 242 003165 244 003221 246 003222 249 003243 251 003257 252 003312 254 003345 260 003346 261 003401 263 003415 265 003426 266 003432 267 003460 269 003474 271 003530 273 003544 275 003570 276 003615 279 003616 280 003622 281 003647 284 003650 285 003671 287 003673 288 003677 289 003716 292 003717 293 003721 295 003734 297 003736 299 003742 300 003750 301 003752 302 004020 303 004036 304 004154 306 004172 307 004174 308 004200 309 004201 310 004204 312 004217 313 004227 314 004243 316 004245 318 004250 321 004256 323 004274 325 004301 327 004302 330 004334 332 004350 334 004354 335 004362 336 004366 337 004420 338 004422 340 004423 342 004425 344 004464 345 004466 348 004534 357 004536 358 004540 360 004542 361 004574 363 004610 367 004622 369 004626 370 004633 371 004637 372 004675 374 004677 376 004701 377 004730 379 004731 381 004767 383 004770 387 005017 389 005033 390 005037 391 005045 392 005050 393 005057 394 005061 396 005122 399 005123 400 005126 402 005141 403 005151 404 005157 406 005161 408 005177 410 005202 412 005247 413 005271 414 005407 416 005422 418 005427 424 005430 428 005436 429 005444 430 005460 431 005467 451 005472 476 005474 478 005475 480 005515 482 005531 483 005532 485 005546 486 005566 488 005570 493 005633 494 005673 496 005705 497 005733 499 005745 501 005750 503 005761 505 005763 506 005773 507 005777 508 006032 509 006044 511 006046 512 006050 514 006052 515 006104 517 006116 518 006122 520 006144 521 006155 522 006201 524 006203 526 006222 529 006223 530 006231 531 006233 533 006265 534 006275 535 006327 537 006331 540 006354 543 006361 544 006401 545 006407 547 006410 549 006411 556 006427 557 006434 558 006466 ----------------------------------------------------------- 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