COMPILATION LISTING OF SEGMENT graphic_decompiler_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/18/82 1636.7 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 /* ****************************************************** 10* * * 11* * * 12* * Copyright (c) 1972 by Massachusetts Institute of * 13* * Technology and Honeywell Information Systems, Inc. * 14* * * 15* * * 16* ****************************************************** */ 17 18 graphic_decompiler_: proc (graphic_code, code) returns (fixed bin (18)); 19 20 /* graphic_decompiler_ takes Multics Graphics Code and makes it into graphic structures. */ 21 /* Written 3/19/75 by C. D. Tavares */ 22 /* Last modified 03/25/80 by CDT to check for too many elements in a single list or array 23* and to replace two signal statements with calls to sub_err_ */ 24 25 /* -- PARAMETERS -- */ 26 27 dcl graphic_code char (*) parameter, 28 code fixed bin (35) parameter; 29 30 /* -- EXTERNAL ENTRIES -- */ 31 32 dcl (graphic_code_util_$decode_spi, 33 graphic_code_util_$decode_dpi) ext entry (pointer, fixed bin, (*) fixed bin), 34 graphic_code_util_$decode_uid ext entry (pointer, fixed bin, (*) fixed bin (18)), 35 graphic_code_util_$decode_scl ext entry (pointer, fixed bin, (*) float bin); 36 37 dcl graphic_element_length_ ext entry (char (*), fixed bin) returns (fixed bin); 38 39 dcl sub_err_ ext entry options (variable); 40 41 /* -- EXTERNAL VARIABLES -- */ 42 43 dcl (graphic_error_table_$unrecognized_effector, 44 graphic_error_table_$incomplete_structure, 45 graphic_error_table_$lsm_blk_len, 46 graphic_error_table_$node_list_overflow, 47 graphic_error_table_$impossible_effector_length, 48 graphic_error_table_$not_a_structure) ext fixed bin (35); 49 50 /* -- STATIC -- */ 51 52 dcl 1 node_table static aligned, 53 2 number_known_nodes fixed bin initial (0), 54 2 known_nodes (200) aligned, 55 3 input_node fixed bin (18), 56 3 wgs_node fixed bin (18); 57 58 /* -- AUTOMATIC -- */ 59 60 dcl first_element_offset fixed bin; 61 62 /* -- BUILTINS -- */ 63 64 dcl (addr, divide, hbound, index, length, null, string, substr, unspec) builtin; 65 1 1 /* -------- BEGIN include file graphic_code_dcl.incl.pl1 ---------- */ 1 2 1 3 /* The following structure maintains a nonobvious positional relationship 1 4* with respect to the LSM block types as defined by the graphic compiler. 1 5* It therefore has an intimiate and delicate relationship with certain tables 1 6* defined in graphic_comp_specs.incl.pl1. */ 1 7 1 8 dcl 1 Graphic_Code_Structure aligned static options (constant), 1 9 2 Dynamic_and_structural_effectors aligned, 1 10 3 (Pause_char initial ("$"), 1 11 Reference_char initial ("%"), 1 12 Increment_char initial ("&"), 1 13 Alter_char initial ("'"), 1 14 Node_begin_char initial ("("), 1 15 Node_end_char initial (")"), 1 16 Control_char initial ("*"), 1 17 Display_char initial ("+"), 1 18 Query_char initial (","), 1 19 Erase_char initial ("-"), 1 20 Synchronize_char initial ("."), 1 21 Delete_char initial ("/")) char (1) unaligned, 1 22 2 Graphic_effectors aligned, 1 23 3 (Setposition_char initial ("0"), 1 24 Setpoint_char initial ("1"), 1 25 Vector_char initial ("2"), 1 26 Shift_char initial ("3"), 1 27 Point_char initial ("4")) char (1) unaligned, 1 28 3 Illegal_pad char (3) unaligned initial ((3)"U"), 1 29 2 Mapping_effectors aligned, 1 30 3 (Scaling_char initial ("5"), 1 31 Rotation_char initial ("6"), 1 32 Clipping_char initial ("7")) char (1) unaligned, 1 33 3 Illegal_pad char (5) unaligned initial ((5)"U"), 1 34 2 Mode_effectors aligned, 1 35 3 (Intensity_char initial ("8"), 1 36 Linetype_char initial ("9"), 1 37 Sensitivity_char initial (";"), 1 38 Blinking_char initial (":"), 1 39 Color_char initial ("<")) char (1) unaligned, 1 40 3 Illegal_pad char (3) unaligned initial ((3)"U"), 1 41 2 Special_effectors aligned, 1 42 3 (Symbol_char initial ("="), 1 43 Text_char initial (">"), 1 44 Datablock_char initial ("?")) char (1) unaligned, 1 45 3 Illegal_pad char (9) unaligned initial ((9)"U"); 1 46 1 47 dcl 1 Graphic_Defaults aligned static options (constant), 1 48 2 Mode_defaults aligned, 1 49 3 Intensity_default fixed bin initial (7), 1 50 3 Linetype_default fixed bin initial (0), 1 51 3 Blinking_default fixed bin initial (0), 1 52 3 Sensitivity_default fixed bin initial (0), 1 53 3 Color_default (3) fixed bin initial ((3)16), 1 54 2 Mapping_defaults aligned, 1 55 3 Scaling_default (3) float bin initial ((3)1e0), 1 56 3 Rotation_default (3) fixed bin initial ((3)0), 1 57 3 Clipping_default (3, 2) fixed bin initial ((3) (-2048, 2048)), 1 58 2 Identity_matrix (3, 3) float bin initial (1e0, (3)0e0, 1e0, (3)0e0, 1e0); 1 59 1 60 dcl Graphic_Element_Lengths (32 : 63) aligned static options (constant) initial 1 61 ((4)-1, /* not used */ 1 62 1, /* pause */ 4, /* reference */ 9, /* increment */ 9, /* alter */ 1 63 5, /* node begin */ 1, /* node end */ 4, /* control */ 4, /* display */ 1 64 3, /* query */ 1, /* erase */ 1, /* synchronize */ 4, /* delete */ 1 65 10, /* setposition */ 10, /* setpoint */ 10, /* vector */ 10, /* shift */ 1 66 10, /* point */ 10, /* scaling */ 7, /* rotation */ 13, /* clipping */ 1 67 2, /* intensity */ 2, /* line type */ 2, /* blinking */ 2, /* sensitivity */ 1 68 4, /* color */ 0, /* symbol */ 0, /* text */ 0 /* data */); 1 69 1 70 dcl zero_node_id char (3) static initial ("@@@") options (constant); 1 71 1 72 dcl request_for_status char (1) static aligned initial ("") options (constant); 1 73 1 74 dcl (List_char initial ("@"), 1 75 Array_char initial ("A")) char (1) aligned static options (constant); 1 76 1 77 /* --------- END include file graphic_code_dcl.incl.pl1 ----------- */ 66 67 2 1 /* Begin include file . . . lsm_formats.incl.pl1 */ 2 2 2 3 /* CONSTANTS */ 2 4 2 5 dcl (LSM_version_7 initial (7), /* current version, root is always symtab */ 2 6 LSM_version_6 initial (6)) /* root wasn't automatically symtab */ 2 7 fixed bin static options (constant); 2 8 2 9 dcl 1 lsm_constants aligned static options (constant), 2 10 2 n_types fixed bin initial (9), 2 11 2 types, 2 12 3 indirect_type initial (1), 2 13 3 fixed_type initial (2), 2 14 3 float_type initial (3), 2 15 3 bit_type initial (4), 2 16 3 char_type initial (5), 2 17 3 symtab_type initial (6), 2 18 3 symbol_type initial (7), 2 19 3 list_type initial (8), 2 20 3 array_type initial (9), 2 21 2 data_length_factors (9) initial (1, 1, 1, 36, 4, 1, 1, 1, 1), 2 22 2 max_allocation fixed bin initial (4095), 2 23 2 initial_component_slots fixed bin initial (8); 2 24 2 25 dcl lsm_segptr pointer; 2 26 2 27 dcl 1 lsm aligned based (lsm_segptr), /* declaration of head of lsm_ segment */ 2 28 2 version fixed bin, /* number of lsm_ version that created this seg */ 2 29 2 free fixed bin (18), /* word number of first free word in seg */ 2 30 2 root_symtab fixed bin (18), /* node number of the root symbol table */ 2 31 2 lock bit (36) aligned, 2 32 2 component_slots fixed bin, 2 33 2 components fixed bin, 2 34 2 pad (26) fixed bin (18), 2 35 2 component_ptrs (lsm_constants.initial_component_slots refer (lsm.component_slots)) pointer unaligned; 2 36 2 37 2 38 /* Formats of different node types used by lsm_ */ 2 39 2 40 dcl node_ptr pointer; 2 41 2 42 dcl 1 header aligned based (node_ptr), /* Used in all formats below */ 2 43 2 type fixed bin (6) unsigned unaligned, /* type of node */ 2 44 2 allocated_len fixed bin (12) unsigned unaligned, /* allocated length of data space */ 2 45 2 data_len fixed bin (18) unsigned unaligned; /* current length of data in block */ 2 46 /* (in appropriate units) */ 2 47 2 48 dcl 1 any_node aligned based (node_ptr), /* general node description */ 2 49 2 header like header aligned, 2 50 2 data_space (0 refer (any_node.allocated_len)) bit (36) aligned; 2 51 2 52 dcl 1 indirect_node aligned based (node_ptr), /* internal to lsm_ */ 2 53 2 header like header, 2 54 2 new_node fixed bin (18); /* numberof reallocated node */ 2 55 2 56 dcl 1 fixed_node aligned based (node_ptr), /* array of fixed bin (35) */ 2 57 2 header like header, 2 58 2 element (0 refer (fixed_node.data_len)) fixed bin (35); /* array of values */ 2 59 2 60 dcl 1 float_node aligned based (node_ptr), /* array of float binary (27) */ 2 61 2 header like header, 2 62 2 element (0 refer (float_node.data_len)) float bin (27); 2 63 2 64 dcl 1 bit_node aligned based (node_ptr), /* string of bits */ 2 65 2 header like header, 2 66 2 string bit (0 refer (bit_node.data_len)); /* bit string of max length */ 2 67 2 68 dcl 1 char_node aligned based (node_ptr), /* string of characters */ 2 69 2 header like header, 2 70 2 string char (0 refer (char_node.data_len)) unaligned; /* character string of max length */ 2 71 2 72 dcl 1 symtab_node aligned based (node_ptr), /* symbol table node */ 2 73 2 header like header, 2 74 2 bucket_root (0 : 1 refer (symtab_node.data_len)) fixed bin (18); 2 75 /* actually, it is (0 : data_len - 1), but there's no way to do */ 2 76 /* this with a refer option, and it's invalid not to use refer */ 2 77 2 78 dcl 1 symbol_node aligned based (node_ptr), /* symbol node */ 2 79 2 header like header, 2 80 2 name_node fixed bin (18), /* number of character string node containing symbol name */ 2 81 2 value_node fixed bin (18), /* number of node that is the "value" of this symbol */ 2 82 2 next_node fixed bin (18); /* number of next symbol node in this bucket chain */ 2 83 /* =0 if this is last node o chain */ 2 84 2 85 dcl 1 list_node aligned based (node_ptr), /* non-terminal list node */ 2 86 2 header like header, 2 87 2 node (0 refer (list_node.data_len)) fixed bin (18); /* numbers of nodes comprising this list */ 2 88 2 89 dcl 1 array_node aligned based (node_ptr), /* non-terminal list with terminal properties */ 2 90 2 header like header, 2 91 2 node (0 refer (array_node.data_len)) fixed bin (18); /* numbers of nodes comprising this array */ 2 92 2 93 2 94 /* End include file . . . lsm_formats.incl.pl1 */ 68 69 70 call graphic_manipulator_$segp (null, code); /* see if WGS exists */ 71 if code ^= 0 then return (-1); /* tsk tsk */ 72 73 if substr (graphic_code, 1, 1) ^= Node_begin_char then do; /* it must be that */ 74 bad_struc: code = graphic_error_table_$not_a_structure; /* complain */ 75 error_return: return (-1); /* farewell */ 76 end; 77 78 first_element_offset = graphic_element_length_ (graphic_code, 1); 79 /* This is the char offset of the first element of any list. 80* It is used to compute whether the first element of a list 81* is another list, etc. */ 82 83 number_known_nodes = 0; /* initialize state variables */ 84 85 return (graphic_decompiler_recur (graphic_code, 1)); /* pass it off to a friend */ 86 87 88 graphic_decompiler_recur: proc (graphic_code, start) returns (fixed bin (18)) recursive; 89 90 /* -- PARAMETERS -- */ 91 92 dcl graphic_code char (*) parameter, 93 start fixed bin parameter; 94 95 /* -- BASED VARIABLES, THEIR POINTERS, AND LENGTHS -- */ 96 97 dcl contents_len fixed bin, 98 contents_ptr pointer; 99 100 dcl char_array (0:1000) char (1) unaligned based; 101 102 /* -- AUTOMATIC -- */ 103 104 dcl finished bit (1) aligned initial (""b); 105 106 dcl ID fixed bin; 107 108 dcl graphic_code_index fixed bin, 109 node fixed bin (18), 110 element fixed bin (18), 111 this_list_index fixed bin initial (0), 112 fixed_array (6) fixed bin, 113 float_array (3) float bin; 114 115 dcl this_input_node fixed bin (18) initial (-1), 116 (we_are_list, we_are_array) bit (1) aligned initial (""b); 117 118 dcl i fixed bin, 119 ch char (1) aligned; 120 121 dcl this_list (lsm_constants.max_allocation) fixed bin (18); 122 123 dcl len fixed bin; 124 125 126 127 do graphic_code_index = start to length (graphic_code) while (^finished); 128 /* loop through whole string of MSGC */ 129 130 ch = substr (graphic_code, graphic_code_index, 1); /* get the effector character */ 131 contents_ptr = addr (addr (graphic_code) -> char_array (graphic_code_index)); 132 /* get ptr to this effectors arguments */ 133 contents_len = graphic_element_length_ (graphic_code, graphic_code_index) - 1; 134 135 ID = index (string (Graphic_effectors), ch); /* see if it is a graphic effector */ 136 if ID > 0 then do; /* yes it is, do: */ 137 element = decompile_graphic_effector (ID); /* make a node of it */ 138 goto endloop; 139 end; 140 141 ID = index (string (Dynamic_and_structural_effectors), ch); /* see if it's one of those */ 142 if ID > 0 then do; /* yes it is */ 143 element = decompile_structural_effector (ID); /* etc. */ 144 goto endloop; 145 end; 146 147 ID = index (string (Mapping_effectors), ch); /* is it a map? */ 148 if ID > 0 then do; 149 element = decompile_mapping_effector (ID); 150 goto endloop; 151 end; 152 153 ID = index (string (Mode_effectors), ch); /* A mode?? */ 154 if ID > 0 then do; 155 element = decompile_mode_effector (ID); 156 goto endloop; 157 end; 158 159 ID = index (string (Special_effectors), ch); /* A special???? */ 160 if ID > 0 then do; 161 element = decompile_special_effector (ID); 162 goto endloop; 163 end; 164 165 code = graphic_error_table_$unrecognized_effector; /* Ai; no kapitsch! */ 166 goto error_return; 167 168 endloop: 169 if element ^= -1 then do; /* then we should add it to list */ 170 this_list_index = this_list_index + 1; 171 if this_list_index > hbound (this_list, 1) then do; 172 code = graphic_error_table_$lsm_blk_len; 173 goto error_return; 174 end; 175 this_list (this_list_index) = element; 176 end; 177 178 graphic_code_index = graphic_code_index + contents_len; /* waddle thru string */ 179 end; 180 181 if ^finished then do; /* incomplete structure, guys */ 182 code = graphic_error_table_$incomplete_structure; 183 goto error_return; 184 end; 185 186 if we_are_list | we_are_array then do; /* make a list/array of us */ 187 if we_are_array then node = graphic_manipulator_$create_array (this_list, this_list_index, code); 188 else node = graphic_manipulator_$create_list (this_list, this_list_index, code); 189 if code ^= 0 then goto error_return; 190 end; 191 192 else do; 193 if this_list_index > 1 then /* multiple and not a list?? */ 194 call sub_err_ (graphic_error_table_$impossible_effector_length, "graphic_decompiler_", "h", null, 0, 195 "A multiple element was encountered which was neither a list nor an array."); 196 node = this_list (1); /* we are a single element, flaunt it */ 197 end; 198 199 do i = 1 to number_known_nodes while (known_nodes (i).input_node ^= this_input_node); 200 /* see if anybody we already know has our node number */ 201 end; 202 203 if i > number_known_nodes then do; /* nope, we're safe, add us */ 204 if number_known_nodes + 1 > hbound (known_nodes, 1) then 205 call sub_err_ (graphic_error_table_$node_list_overflow, "graphic_decompiler_", "c", null, 0, 206 "More than ^d distinct nodes encountered.", hbound (known_nodes, 1)); 207 /* So far, BIG structures haven't bombed us yet */ 208 else do; 209 number_known_nodes = number_known_nodes + 1; 210 known_nodes (number_known_nodes).input_node = this_input_node; 211 known_nodes (number_known_nodes).wgs_node = node; 212 end; 213 end; 214 215 else if known_nodes (i).wgs_node ^= node then do; /* i.e. don't do this for symbol nodes! */ 216 /* Replacements of symbols will always recur, otherwise */ 217 call graphic_manipulator_$replace_node (known_nodes (i).wgs_node, node, code); 218 /* replace the old copy with our "new" contents */ 219 if code ^= 0 then goto error_return; 220 known_nodes (i).wgs_node = node; /* remember our new address */ 221 end; 222 223 start = graphic_code_index; /* tell possible recursive parents what we have eaten */ 224 225 return (node); /* present our result */ 226 227 228 229 decompile_graphic_effector: proc (ID) returns (fixed bin (18)); 230 231 dcl ID fixed bin; 232 233 if we_are_list then goto bad_struc; /* each of us must be an island */ 234 235 call graphic_code_util_$decode_scl (contents_ptr, 3, float_array); /* get our arguments */ 236 237 node = graphic_manipulator_$create_position (ID-1, float_array (1), float_array (2), 238 float_array (3), code); /* create the effector */ 239 if code ^= 0 then goto error_return; 240 241 return (node); 242 243 end decompile_graphic_effector; 244 245 246 decompile_mode_effector: proc (ID) returns (fixed bin (18)); 247 248 dcl ID fixed bin; 249 250 if we_are_list then goto bad_struc; /* we must all be our own lists */ 251 252 if ID = 5 then len = 3; /* color effector */ 253 else len = 1; /* everything else */ 254 255 call graphic_code_util_$decode_spi (contents_ptr, len, fixed_array); /* get our args */ 256 257 if len ^= 3 258 then node = graphic_manipulator_$create_mode (15+ID, fixed_array (1), code); 259 else node = graphic_manipulator_$create_color (fixed_array (1), fixed_array (2), fixed_array (3), code); 260 /* make the node */ 261 262 if code ^= 0 then goto error_return; 263 return (node); 264 265 end decompile_mode_effector; 266 267 decompile_mapping_effector: proc (ID) returns (fixed bin (18)); 268 269 dcl ID fixed bin; 270 271 if we_are_list then goto bad_struc; /* see above */ 272 273 goto decompile_mapping (ID); 274 275 decompile_mapping (1): /* scaling */ 276 call graphic_code_util_$decode_scl (contents_ptr, 3, float_array); 277 278 node = graphic_manipulator_$create_scale (float_array (1), float_array (2), float_array (3), code); 279 if code ^= 0 then goto error_return; 280 281 return (node); 282 283 decompile_mapping (2): /* rotation */ 284 call graphic_code_util_$decode_dpi (contents_ptr, 2, fixed_array); 285 node = graphic_manipulator_$create_rotation ((fixed_array (1)), (fixed_array (2)), (fixed_array (3)), code); 286 if code ^= 0 then goto error_return; 287 288 return (node); 289 290 decompile_mapping (3): /* clipping */ 291 call graphic_code_util_$decode_dpi (contents_ptr, 6, fixed_array); 292 node = graphic_manipulator_$create_clip ((fixed_array (1)), (fixed_array (2)), (fixed_array (3)), 293 (fixed_array (4)), (fixed_array (5)), (fixed_array (6)), code); 294 if code ^= 0 then goto error_return; 295 296 return (node); 297 298 end decompile_mapping_effector; 299 300 301 decompile_special_effector: proc (ID) returns (fixed bin (18)); 302 303 dcl ID fixed bin; 304 305 dcl symbol_name char (168); 306 307 dcl i fixed bin; 308 309 dcl temp_string bit (temp_string_len) based (p), 310 p pointer, 311 temp_string_len fixed bin, 312 cu_$grow_stack_frame ext entry (fixed bin, pointer, fixed bin (35)), 313 cu_$shrink_stack_frame ext entry (pointer, fixed bin (35)); 314 315 if we_are_list then goto bad_struc; 316 317 goto special_effector (ID); 318 319 special_effector (1): /* symbol */ 320 symbol_name = substr (graphic_code, graphic_code_index + 3, contents_len - 2); 321 322 graphic_code_index = graphic_code_index + contents_len + 1; 323 324 node = graphic_decompiler_recur (graphic_code, graphic_code_index); 325 /* recur but remember symbol */ 326 327 node = graphic_manipulator_$assign_name (symbol_name, (node), code); 328 /* now use the symbol name */ 329 if code ^= 0 then goto error_return; 330 331 contents_len = -1; /* Back up to correct for son's appetite */ 332 return (node); 333 334 special_effector (2): /* text */ 335 call graphic_code_util_$decode_spi (contents_ptr, 1, fixed_array); 336 node = graphic_manipulator_$create_text (fixed_array (1), contents_len - 3, 337 substr (graphic_code, graphic_code_index + 4, contents_len - 3), code); 338 if code ^= 0 then goto error_return; 339 340 return (node); 341 342 special_effector (3): /* datablock */ 343 temp_string_len = (contents_len - 2) * 9; /* compute length of temp string */ 344 345 call cu_$grow_stack_frame (divide (temp_string_len, 36, 17), p, code); 346 /* get temp storage for temp string */ 347 if code ^= 0 then goto error_return; 348 349 temp_string = unspec (substr (graphic_code, graphic_code_index + 3, contents_len - 2)); 350 /* move it into temp storage */ 351 352 do i = 0 to contents_len - 3; /* extract the relevant bits */ 353 substr (temp_string, i*6+1, 6) = substr (temp_string, i*9+4, 6); 354 end; 355 356 temp_string_len = (contents_len - 2) * 6; /* reset the length to reflect useful contents */ 357 node = graphic_manipulator_$create_data (temp_string_len, temp_string, code); 358 if code ^= 0 then goto error_return; 359 360 call cu_$shrink_stack_frame (p, code); /* free temp storage */ 361 if code ^= 0 then goto error_return; 362 363 return (node); 364 365 end decompile_special_effector; 366 367 368 decompile_structural_effector: proc (ID) returns (fixed bin (18)); 369 370 dcl ID fixed bin; 371 372 dcl uid (1) fixed bin (18); 373 374 goto structural_effector (ID); 375 376 structural_effector (1): structural_effector (3): structural_effector (4): structural_effector (7): 377 structural_effector (8): structural_effector (9): structural_effector (10): structural_effector (11): 378 structural_effector (12): /* dynamic effectors */ 379 code = graphic_error_table_$not_a_structure; /* these can't BE within a structure */ 380 goto error_return; 381 382 structural_effector (2): /* reference */ 383 if ^we_are_list then if start + first_element_offset ^= graphic_code_index 384 then goto bad_struc; /* i.e. we can't occur in an array. */ 385 we_are_list = "1"b; /* say we are */ 386 387 call graphic_code_util_$decode_uid (contents_ptr, 1, uid); /* get the arg */ 388 389 do i = 1 to number_known_nodes while (known_nodes (i).input_node ^= uid (1)); 390 /* make sure we know about this node */ 391 end; 392 393 if i > number_known_nodes /* node does not exist, can't be "reference"d */ 394 then do; 395 code = graphic_error_table_$not_a_structure; 396 goto error_return; 397 end; 398 399 return (uid (1)); /* we're happy. */ 400 401 structural_effector (5): /* node begin */ 402 if graphic_code_index = start then do; /* begins our own level list */ 403 we_are_array = (substr (graphic_code, graphic_code_index + 1, 1) = Array_char); 404 /* decide whether we are array or list */ 405 406 contents_ptr = addr (contents_ptr -> char_array (1)); /* bump to point to next char */ 407 408 call graphic_code_util_$decode_uid (contents_ptr, 1, uid); /* get our UID */ 409 this_input_node = uid (1); /* this is who we are now. */ 410 411 return (-1); /* means, "Don't have any contents yet" */ 412 end; 413 414 else do; /* we must recur and decompile it */ 415 if ^we_are_list then if start + first_element_offset ^= graphic_code_index 416 then goto bad_struc; /* A list must contain only lists */ 417 418 if we_are_array then goto bad_struc; /* an array cannot contain lists */ 419 420 we_are_list = "1"b; /* say we are now list */ 421 422 node = graphic_decompiler_recur (graphic_code, graphic_code_index); 423 /* generate a son to do work on subtree */ 424 425 contents_len = -1; /* adjust for son's appetite */ 426 427 return (node); 428 end; 429 430 structural_effector (6): /* node end */ 431 finished = "1"b; /* make note to create array or list */ 432 return (-1); 433 434 end decompile_structural_effector; 435 436 end graphic_decompiler_recur; 437 3 1 /* *************** BEGIN INCLUDE FILE gm_entry_dcls.incl.pl1 *************** */ 3 2 3 3 dcl (graphic_manipulator_$init, 3 4 gm_$init) entry (fixed bin (35)); 3 5 3 6 dcl (graphic_manipulator_$segp, 3 7 gm_$segp) entry (pointer, fixed bin (35)); 3 8 3 9 dcl (graphic_manipulator_$create_position, 3 10 gm_$create_position, 3 11 graphic_manipulator_$cpos, 3 12 gm_$cpos) entry (fixed bin, float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 3 13 3 14 dcl (graphic_manipulator_$create_mode, 3 15 gm_$create_mode, 3 16 graphic_manipulator_$cmode, 3 17 gm_$cmode) entry (fixed bin, fixed bin, fixed bin (35)) returns (fixed bin (18)); 3 18 3 19 dcl (graphic_manipulator_$create_scale, 3 20 gm_$create_scale, 3 21 graphic_manipulator_$cscale, 3 22 gm_$cscale) entry (float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 3 23 3 24 dcl (graphic_manipulator_$create_rotation, 3 25 gm_$create_rotation, 3 26 graphic_manipulator_$crot, 3 27 gm_$crot) entry (float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 3 28 3 29 dcl (graphic_manipulator_$create_clip, 3 30 gm_$create_clip, 3 31 graphic_manipulator_$cclip, 3 32 gm_$cclip) entry (float bin (27), float bin (27), float bin (27), float bin (27), float bin (27), float bin (27), 3 33 fixed bin (35)) returns (fixed bin (18)); 3 34 3 35 dcl (graphic_manipulator_$create_color, 3 36 gm_$create_color, 3 37 graphic_manipulator_$ccolor, 3 38 gm_$ccolor) entry (fixed bin, fixed bin, fixed bin, fixed bin (35)) returns (fixed bin (18)); 3 39 3 40 dcl (graphic_manipulator_$create_text, 3 41 gm_$create_text, 3 42 graphic_manipulator_$ctext, 3 43 gm_$ctext) entry (fixed bin, fixed bin, char (*), fixed bin (35)) returns (fixed bin (18)); 3 44 3 45 dcl (graphic_manipulator_$create_data, 3 46 gm_$create_data, 3 47 graphic_manipulator_$cdata, 3 48 gm_$cdata) entry (fixed bin, bit (*), fixed bin (35)) returns (fixed bin (18)); 3 49 3 50 dcl (graphic_manipulator_$create_list, 3 51 gm_$create_list, 3 52 graphic_manipulator_$clist, 3 53 gm_$clist) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)) returns (fixed bin (18)); 3 54 3 55 dcl (graphic_manipulator_$create_array, 3 56 gm_$create_array, 3 57 graphic_manipulator_$carray, 3 58 gm_$carray) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)) returns (fixed bin (18)); 3 59 3 60 dcl (graphic_manipulator_$assign_name, 3 61 gm_$assign_name) entry (char (*), fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 3 62 3 63 dcl (graphic_manipulator_$find_structure, 3 64 gm_$find_structure, 3 65 graphic_manipulator_$fstruc, 3 66 gm_$fstruc) entry (char (*), fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 3 67 3 68 dcl (graphic_manipulator_$add_element, 3 69 gm_$add_element) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35)); 3 70 3 71 dcl (graphic_manipulator_$replace_element, 3 72 gm_$replace_element) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 3 73 3 74 dcl (graphic_manipulator_$replace_node, 3 75 gm_$replace_node) entry (fixed bin (18), fixed bin (18), fixed bin (35)); 3 76 3 77 dcl (graphic_manipulator_$remove_symbol, 3 78 gm_$remove_symbol) entry (char (*), fixed bin (35)); 3 79 3 80 dcl (graphic_manipulator_$replicate, 3 81 gm_$replicate) entry (fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 3 82 3 83 dcl (graphic_manipulator_$examine_type, 3 84 gm_$examine_type) entry (fixed bin (18), bit (1) aligned, fixed bin, fixed bin (35)); 3 85 3 86 dcl (graphic_manipulator_$examine_position, 3 87 gm_$examine_position, 3 88 graphic_manipulator_$epos, 3 89 gm_$epos) entry (fixed bin (18), fixed bin, float bin, float bin, float bin, fixed bin (35)); 3 90 3 91 dcl (graphic_manipulator_$examine_mode, 3 92 gm_$examine_mode, 3 93 graphic_manipulator_$emode, 3 94 gm_$emode) entry (fixed bin (18), fixed bin, fixed bin, fixed bin (35)); 3 95 3 96 dcl (graphic_manipulator_$examine_color, 3 97 gm_$examine_color, 3 98 graphic_manipulator_$ecolor, 3 99 gm_$ecolor) entry (fixed bin (18), fixed bin, fixed bin, fixed bin, fixed bin (35)); 3 100 3 101 dcl (graphic_manipulator_$examine_mapping, 3 102 gm_$examine_mapping, 3 103 graphic_manipulator_$emap, 3 104 gm_$emap) entry (fixed bin (18), fixed bin, float bin dimension (*), fixed bin, fixed bin (35)); 3 105 3 106 dcl (graphic_manipulator_$examine_contents, 3 107 gm_$examine_contents) entry (fixed bin (18), fixed bin (18) dimension (*), fixed bin, fixed bin (35)); 3 108 3 109 dcl (graphic_manipulator_$examine_list, 3 110 gm_$examine_list, 3 111 graphic_manipulator_$elist, 3 112 gm_$elist) entry (fixed bin (18), dimension (*) fixed bin (18), fixed bin, fixed bin (35)); 3 113 3 114 dcl (graphic_manipulator_$examine_symtab, 3 115 graphic_manipulator_$esymtab, 3 116 gm_$examine_symtab, 3 117 gm_$esymtab) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)); 3 118 3 119 dcl (graphic_manipulator_$examine_symbol, 3 120 gm_$examine_symbol, 3 121 graphic_manipulator_$esymbol, 3 122 gm_$esymbol) entry (fixed bin (18), fixed bin (18), fixed bin, char (*), fixed bin (35)); 3 123 3 124 dcl (graphic_manipulator_$examine_text, 3 125 gm_$examine_text, 3 126 graphic_manipulator_$etext, 3 127 gm_$etext) entry (fixed bin (18), fixed bin, fixed bin, char (*), fixed bin (35)); 3 128 3 129 dcl (graphic_manipulator_$examine_data, 3 130 gm_$examine_data, 3 131 graphic_manipulator_$edata, 3 132 gm_$edata) entry (fixed bin (18), fixed bin, bit (*), fixed bin (35)); 3 133 3 134 dcl (graphic_manipulator_$get_struc, 3 135 gm_$get_struc, 3 136 graphic_manipulator_$gstruc, 3 137 gm_$gstruc) entry (char (*), char (*), char (*), fixed bin, fixed bin (35)); 3 138 3 139 dcl (graphic_manipulator_$put_struc, 3 140 gm_$put_struc, 3 141 graphic_manipulator_$pstruc, 3 142 gm_$pstruc) entry (char (*), char (*), char (*), fixed bin, fixed bin (35)); 3 143 3 144 dcl (graphic_manipulator_$save_file, 3 145 gm_$save_file) entry (char (*), char (*), fixed bin (35)); 3 146 3 147 dcl (graphic_manipulator_$use_file, 3 148 gm_$use_file) entry (char (*), char (*), fixed bin (35)); 3 149 3 150 /* **************** END INCLUDE FILE gm_entry_dcls.incl.pl1 **************** */ 438 439 440 end graphic_decompiler_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/18/82 1625.4 graphic_decompiler_.pl1 >dumps>old>recomp>graphic_decompiler_.pl1 66 1 03/27/82 0439.2 graphic_code_dcl.incl.pl1 >ldd>include>graphic_code_dcl.incl.pl1 68 2 12/17/79 1708.9 lsm_formats.incl.pl1 >ldd>include>lsm_formats.incl.pl1 438 3 08/27/75 1700.7 gm_entry_dcls.incl.pl1 >ldd>include>gm_entry_dcls.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_char 002536 constant char(1) initial dcl 1-74 ref 403 Dynamic_and_structural_effectors 000000 constant structure level 2 dcl 1-8 ref 141 Graphic_Code_Structure 000000 constant structure level 1 dcl 1-8 Graphic_effectors 3 000000 constant structure level 2 dcl 1-8 ref 135 ID parameter fixed bin(17,0) dcl 231 in procedure "decompile_graphic_effector" ref 229 237 ID parameter fixed bin(17,0) dcl 248 in procedure "decompile_mode_effector" ref 246 252 257 ID 000105 automatic fixed bin(17,0) dcl 106 in procedure "graphic_decompiler_recur" set ref 135* 136 137* 141* 142 143* 147* 148 149* 153* 154 155* 159* 160 161* ID parameter fixed bin(17,0) dcl 370 in procedure "decompile_structural_effector" ref 368 374 ID parameter fixed bin(17,0) dcl 303 in procedure "decompile_special_effector" ref 301 317 ID parameter fixed bin(17,0) dcl 269 in procedure "decompile_mapping_effector" ref 267 273 Mapping_effectors 5 000000 constant structure level 2 dcl 1-8 ref 147 Mode_effectors 7 000000 constant structure level 2 dcl 1-8 ref 153 Node_begin_char 1 000000 constant char(1) initial level 3 packed unaligned dcl 1-8 ref 73 Special_effectors 11 000000 constant structure level 2 dcl 1-8 ref 159 addr builtin function dcl 64 ref 131 131 406 ch 000127 automatic char(1) dcl 118 set ref 130* 135 141 147 153 159 char_array based char(1) array unaligned dcl 100 set ref 131 406 code parameter fixed bin(35,0) dcl 27 set ref 18 70* 71 74* 165* 172* 182* 187* 188* 189 217* 219 237* 239 257* 259* 262 278* 279 285* 286 292* 294 327* 329 336* 338 345* 347 357* 358 360* 361 376* 395* contents_len 000100 automatic fixed bin(17,0) dcl 97 set ref 133* 178 319 322 331* 336 336 336 342 349 352 356 425* contents_ptr 000102 automatic pointer dcl 97 set ref 131* 235* 255* 275* 283* 290* 334* 387* 406* 406 408* cu_$grow_stack_frame 000714 constant entry external dcl 309 ref 345 cu_$shrink_stack_frame 000716 constant entry external dcl 309 ref 360 divide builtin function dcl 64 ref 345 345 element 000110 automatic fixed bin(18,0) dcl 108 set ref 137* 143* 149* 155* 161* 168 175 finished 000104 automatic bit(1) initial dcl 104 set ref 104* 127 181 430* first_element_offset 000100 automatic fixed bin(17,0) dcl 60 set ref 78* 382 415 fixed_array 000112 automatic fixed bin(17,0) array dcl 108 set ref 255* 257* 259* 259* 259* 283* 285 285 285 290* 292 292 292 292 292 292 334* 336* float_array 000120 automatic float bin(27) array dcl 108 set ref 235* 237* 237* 237* 275* 278* 278* 278* graphic_code parameter char unaligned dcl 92 in procedure "graphic_decompiler_recur" set ref 88 127 130 131 133* 319 324* 336 336 349 403 422* graphic_code parameter char unaligned dcl 27 in procedure "graphic_decompiler_" set ref 18 73 78* 85* graphic_code_index 000106 automatic fixed bin(17,0) dcl 108 set ref 127* 130 131 133* 178* 178* 223 319 322* 322 324* 336 336 349 382 401 403 415 422* graphic_code_util_$decode_dpi 000634 constant entry external dcl 32 ref 283 290 graphic_code_util_$decode_scl 000640 constant entry external dcl 32 ref 235 275 graphic_code_util_$decode_spi 000632 constant entry external dcl 32 ref 255 334 graphic_code_util_$decode_uid 000636 constant entry external dcl 32 ref 387 408 graphic_element_length_ 000642 constant entry external dcl 37 ref 78 133 graphic_error_table_$impossible_effector_length 000656 external static fixed bin(35,0) dcl 43 set ref 193* graphic_error_table_$incomplete_structure 000650 external static fixed bin(35,0) dcl 43 ref 182 graphic_error_table_$lsm_blk_len 000652 external static fixed bin(35,0) dcl 43 ref 172 graphic_error_table_$node_list_overflow 000654 external static fixed bin(35,0) dcl 43 set ref 204* graphic_error_table_$not_a_structure 000660 external static fixed bin(35,0) dcl 43 ref 74 376 395 graphic_error_table_$unrecognized_effector 000646 external static fixed bin(35,0) dcl 43 ref 165 graphic_manipulator_$assign_name 000710 constant entry external dcl 3-60 ref 327 graphic_manipulator_$create_array 000706 constant entry external dcl 3-55 ref 187 graphic_manipulator_$create_clip 000674 constant entry external dcl 3-29 ref 292 graphic_manipulator_$create_color 000676 constant entry external dcl 3-35 ref 259 graphic_manipulator_$create_data 000702 constant entry external dcl 3-45 ref 357 graphic_manipulator_$create_list 000704 constant entry external dcl 3-50 ref 188 graphic_manipulator_$create_mode 000666 constant entry external dcl 3-14 ref 257 graphic_manipulator_$create_position 000664 constant entry external dcl 3-9 ref 237 graphic_manipulator_$create_rotation 000672 constant entry external dcl 3-24 ref 285 graphic_manipulator_$create_scale 000670 constant entry external dcl 3-19 ref 278 graphic_manipulator_$create_text 000700 constant entry external dcl 3-40 ref 336 graphic_manipulator_$replace_node 000712 constant entry external dcl 3-74 ref 217 graphic_manipulator_$segp 000662 constant entry external dcl 3-6 ref 70 hbound builtin function dcl 64 ref 171 204 204 204 header based structure level 1 dcl 2-42 i 000126 automatic fixed bin(17,0) dcl 118 in procedure "graphic_decompiler_recur" set ref 199* 199* 203 215 217 220 389* 389* 393 i 000250 automatic fixed bin(17,0) dcl 307 in procedure "decompile_special_effector" set ref 352* 353 353* index builtin function dcl 64 ref 135 141 147 153 159 input_node 1 000010 internal static fixed bin(18,0) array level 3 dcl 52 set ref 199 210* 389 known_nodes 1 000010 internal static structure array level 2 dcl 52 set ref 204 204 204 len 000130 automatic fixed bin(17,0) dcl 123 set ref 252* 253* 255* 257 length builtin function dcl 64 ref 127 lsm_constants 000014 constant structure level 1 dcl 2-9 max_allocation 23 000014 constant fixed bin(17,0) initial level 2 dcl 2-9 ref 121 node 000107 automatic fixed bin(18,0) dcl 108 set ref 187* 188* 196* 211 215 217* 220 225 237* 241 257* 259* 263 278* 281 285* 288 292* 296 324* 327* 327 332 336* 340 357* 363 422* 427 node_table 000010 internal static structure level 1 dcl 52 null builtin function dcl 64 ref 70 70 193 193 204 204 number_known_nodes 000010 internal static fixed bin(17,0) initial level 2 dcl 52 set ref 83* 199 203 204 209* 209 210 211 389 393 p 000252 automatic pointer dcl 309 set ref 345* 349 353 353 357 360* start parameter fixed bin(17,0) dcl 92 set ref 88 127 223* 382 401 415 string builtin function dcl 64 ref 135 141 147 153 159 sub_err_ 000644 constant entry external dcl 39 ref 193 204 substr builtin function dcl 64 set ref 73 130 319 336 336 349 353* 353 403 symbol_name 000176 automatic char(168) unaligned dcl 305 set ref 319* 327* temp_string based bit unaligned dcl 309 set ref 349* 353* 353 357* temp_string_len 000254 automatic fixed bin(17,0) dcl 309 set ref 342* 345 345 349 353 353 356* 357* 357 357 this_input_node 000123 automatic fixed bin(18,0) initial dcl 115 set ref 115* 199 210 409* this_list 000130 automatic fixed bin(18,0) array dcl 121 set ref 171 175* 187* 188* 196 this_list_index 000111 automatic fixed bin(17,0) initial dcl 108 set ref 108* 170* 170 171 175 187* 188* 193 uid 000264 automatic fixed bin(18,0) array dcl 372 set ref 387* 389 399 408* 409 unspec builtin function dcl 64 ref 349 we_are_array 000125 automatic bit(1) initial dcl 115 set ref 115* 186 187 403* 418 we_are_list 000124 automatic bit(1) initial dcl 115 set ref 115* 186 233 250 271 315 382 385* 415 420* wgs_node 2 000010 internal static fixed bin(18,0) array level 3 dcl 52 set ref 211* 215 217* 220* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Graphic_Defaults internal static structure level 1 dcl 1-47 Graphic_Element_Lengths internal static fixed bin(17,0) initial array dcl 1-60 LSM_version_6 internal static fixed bin(17,0) initial dcl 2-5 LSM_version_7 internal static fixed bin(17,0) initial dcl 2-5 List_char internal static char(1) initial dcl 1-74 any_node based structure level 1 dcl 2-48 array_node based structure level 1 dcl 2-89 bit_node based structure level 1 dcl 2-64 char_node based structure level 1 dcl 2-68 fixed_node based structure level 1 dcl 2-56 float_node based structure level 1 dcl 2-60 gm_$add_element 000000 constant entry external dcl 3-68 gm_$assign_name 000000 constant entry external dcl 3-60 gm_$carray 000000 constant entry external dcl 3-55 gm_$cclip 000000 constant entry external dcl 3-29 gm_$ccolor 000000 constant entry external dcl 3-35 gm_$cdata 000000 constant entry external dcl 3-45 gm_$clist 000000 constant entry external dcl 3-50 gm_$cmode 000000 constant entry external dcl 3-14 gm_$cpos 000000 constant entry external dcl 3-9 gm_$create_array 000000 constant entry external dcl 3-55 gm_$create_clip 000000 constant entry external dcl 3-29 gm_$create_color 000000 constant entry external dcl 3-35 gm_$create_data 000000 constant entry external dcl 3-45 gm_$create_list 000000 constant entry external dcl 3-50 gm_$create_mode 000000 constant entry external dcl 3-14 gm_$create_position 000000 constant entry external dcl 3-9 gm_$create_rotation 000000 constant entry external dcl 3-24 gm_$create_scale 000000 constant entry external dcl 3-19 gm_$create_text 000000 constant entry external dcl 3-40 gm_$crot 000000 constant entry external dcl 3-24 gm_$cscale 000000 constant entry external dcl 3-19 gm_$ctext 000000 constant entry external dcl 3-40 gm_$ecolor 000000 constant entry external dcl 3-96 gm_$edata 000000 constant entry external dcl 3-129 gm_$elist 000000 constant entry external dcl 3-109 gm_$emap 000000 constant entry external dcl 3-101 gm_$emode 000000 constant entry external dcl 3-91 gm_$epos 000000 constant entry external dcl 3-86 gm_$esymbol 000000 constant entry external dcl 3-119 gm_$esymtab 000000 constant entry external dcl 3-114 gm_$etext 000000 constant entry external dcl 3-124 gm_$examine_color 000000 constant entry external dcl 3-96 gm_$examine_contents 000000 constant entry external dcl 3-106 gm_$examine_data 000000 constant entry external dcl 3-129 gm_$examine_list 000000 constant entry external dcl 3-109 gm_$examine_mapping 000000 constant entry external dcl 3-101 gm_$examine_mode 000000 constant entry external dcl 3-91 gm_$examine_position 000000 constant entry external dcl 3-86 gm_$examine_symbol 000000 constant entry external dcl 3-119 gm_$examine_symtab 000000 constant entry external dcl 3-114 gm_$examine_text 000000 constant entry external dcl 3-124 gm_$examine_type 000000 constant entry external dcl 3-83 gm_$find_structure 000000 constant entry external dcl 3-63 gm_$fstruc 000000 constant entry external dcl 3-63 gm_$get_struc 000000 constant entry external dcl 3-134 gm_$gstruc 000000 constant entry external dcl 3-134 gm_$init 000000 constant entry external dcl 3-3 gm_$pstruc 000000 constant entry external dcl 3-139 gm_$put_struc 000000 constant entry external dcl 3-139 gm_$remove_symbol 000000 constant entry external dcl 3-77 gm_$replace_element 000000 constant entry external dcl 3-71 gm_$replace_node 000000 constant entry external dcl 3-74 gm_$replicate 000000 constant entry external dcl 3-80 gm_$save_file 000000 constant entry external dcl 3-144 gm_$segp 000000 constant entry external dcl 3-6 gm_$use_file 000000 constant entry external dcl 3-147 graphic_manipulator_$add_element 000000 constant entry external dcl 3-68 graphic_manipulator_$carray 000000 constant entry external dcl 3-55 graphic_manipulator_$cclip 000000 constant entry external dcl 3-29 graphic_manipulator_$ccolor 000000 constant entry external dcl 3-35 graphic_manipulator_$cdata 000000 constant entry external dcl 3-45 graphic_manipulator_$clist 000000 constant entry external dcl 3-50 graphic_manipulator_$cmode 000000 constant entry external dcl 3-14 graphic_manipulator_$cpos 000000 constant entry external dcl 3-9 graphic_manipulator_$crot 000000 constant entry external dcl 3-24 graphic_manipulator_$cscale 000000 constant entry external dcl 3-19 graphic_manipulator_$ctext 000000 constant entry external dcl 3-40 graphic_manipulator_$ecolor 000000 constant entry external dcl 3-96 graphic_manipulator_$edata 000000 constant entry external dcl 3-129 graphic_manipulator_$elist 000000 constant entry external dcl 3-109 graphic_manipulator_$emap 000000 constant entry external dcl 3-101 graphic_manipulator_$emode 000000 constant entry external dcl 3-91 graphic_manipulator_$epos 000000 constant entry external dcl 3-86 graphic_manipulator_$esymbol 000000 constant entry external dcl 3-119 graphic_manipulator_$esymtab 000000 constant entry external dcl 3-114 graphic_manipulator_$etext 000000 constant entry external dcl 3-124 graphic_manipulator_$examine_color 000000 constant entry external dcl 3-96 graphic_manipulator_$examine_contents 000000 constant entry external dcl 3-106 graphic_manipulator_$examine_data 000000 constant entry external dcl 3-129 graphic_manipulator_$examine_list 000000 constant entry external dcl 3-109 graphic_manipulator_$examine_mapping 000000 constant entry external dcl 3-101 graphic_manipulator_$examine_mode 000000 constant entry external dcl 3-91 graphic_manipulator_$examine_position 000000 constant entry external dcl 3-86 graphic_manipulator_$examine_symbol 000000 constant entry external dcl 3-119 graphic_manipulator_$examine_symtab 000000 constant entry external dcl 3-114 graphic_manipulator_$examine_text 000000 constant entry external dcl 3-124 graphic_manipulator_$examine_type 000000 constant entry external dcl 3-83 graphic_manipulator_$find_structure 000000 constant entry external dcl 3-63 graphic_manipulator_$fstruc 000000 constant entry external dcl 3-63 graphic_manipulator_$get_struc 000000 constant entry external dcl 3-134 graphic_manipulator_$gstruc 000000 constant entry external dcl 3-134 graphic_manipulator_$init 000000 constant entry external dcl 3-3 graphic_manipulator_$pstruc 000000 constant entry external dcl 3-139 graphic_manipulator_$put_struc 000000 constant entry external dcl 3-139 graphic_manipulator_$remove_symbol 000000 constant entry external dcl 3-77 graphic_manipulator_$replace_element 000000 constant entry external dcl 3-71 graphic_manipulator_$replicate 000000 constant entry external dcl 3-80 graphic_manipulator_$save_file 000000 constant entry external dcl 3-144 graphic_manipulator_$use_file 000000 constant entry external dcl 3-147 indirect_node based structure level 1 dcl 2-52 list_node based structure level 1 dcl 2-85 lsm based structure level 1 dcl 2-27 lsm_segptr automatic pointer dcl 2-25 node_ptr automatic pointer dcl 2-40 request_for_status internal static char(1) initial dcl 1-72 symbol_node based structure level 1 dcl 2-78 symtab_node based structure level 1 dcl 2-72 zero_node_id internal static char(3) initial unaligned dcl 1-70 NAMES DECLARED BY EXPLICIT CONTEXT. bad_struc 000227 constant label dcl 74 ref 233 250 271 315 382 415 418 decompile_graphic_effector 001150 constant entry internal dcl 229 ref 137 decompile_mapping 000041 constant label array(3) dcl 275 ref 273 decompile_mapping_effector 001370 constant entry internal dcl 267 ref 149 decompile_mode_effector 001244 constant entry internal dcl 246 ref 155 decompile_special_effector 001660 constant entry internal dcl 301 ref 161 decompile_structural_effector 002267 constant entry internal dcl 368 ref 143 endloop 000546 constant label dcl 168 ref 138 144 150 156 162 error_return 000233 constant label dcl 75 ref 166 173 183 189 219 239 262 279 286 294 329 338 347 358 361 380 396 graphic_decompiler_ 000166 constant entry external dcl 18 graphic_decompiler_recur 000315 constant entry internal dcl 88 ref 85 324 422 special_effector 000044 constant label array(3) dcl 319 set ref 317 structural_effector 000047 constant label array(12) dcl 376 ref 374 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3116 4036 2540 3126 Length 4342 2540 720 270 355 622 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME graphic_decompiler_ 106 external procedure is an external procedure. graphic_decompiler_recur 460 internal procedure uses auto adjustable storage. decompile_graphic_effector internal procedure shares stack frame of internal procedure graphic_decompiler_recur. decompile_mode_effector internal procedure shares stack frame of internal procedure graphic_decompiler_recur. decompile_mapping_effector internal procedure shares stack frame of internal procedure graphic_decompiler_recur. decompile_special_effector internal procedure shares stack frame of internal procedure graphic_decompiler_recur. decompile_structural_effector internal procedure shares stack frame of internal procedure graphic_decompiler_recur. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 node_table graphic_decompiler_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME graphic_decompiler_ 000100 first_element_offset graphic_decompiler_ graphic_decompiler_recur 000100 contents_len graphic_decompiler_recur 000102 contents_ptr graphic_decompiler_recur 000104 finished graphic_decompiler_recur 000105 ID graphic_decompiler_recur 000106 graphic_code_index graphic_decompiler_recur 000107 node graphic_decompiler_recur 000110 element graphic_decompiler_recur 000111 this_list_index graphic_decompiler_recur 000112 fixed_array graphic_decompiler_recur 000120 float_array graphic_decompiler_recur 000123 this_input_node graphic_decompiler_recur 000124 we_are_list graphic_decompiler_recur 000125 we_are_array graphic_decompiler_recur 000126 i graphic_decompiler_recur 000127 ch graphic_decompiler_recur 000130 this_list graphic_decompiler_recur 000130 len graphic_decompiler_recur 000176 symbol_name decompile_special_effector 000250 i decompile_special_effector 000252 p decompile_special_effector 000254 temp_string_len decompile_special_effector 000264 uid decompile_structural_effector THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 r_e_as alloc_cs call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return tra_ext alloc_auto_adj shorten_stack ext_entry_desc int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$grow_stack_frame cu_$shrink_stack_frame graphic_code_util_$decode_dpi graphic_code_util_$decode_scl graphic_code_util_$decode_spi graphic_code_util_$decode_uid graphic_element_length_ graphic_manipulator_$assign_name graphic_manipulator_$create_array graphic_manipulator_$create_clip graphic_manipulator_$create_color graphic_manipulator_$create_data graphic_manipulator_$create_list graphic_manipulator_$create_mode graphic_manipulator_$create_position graphic_manipulator_$create_rotation graphic_manipulator_$create_scale graphic_manipulator_$create_text graphic_manipulator_$replace_node graphic_manipulator_$segp sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. graphic_error_table_$impossible_effector_length graphic_error_table_$incomplete_structure graphic_error_table_$lsm_blk_len graphic_error_table_$node_list_overflow graphic_error_table_$not_a_structure graphic_error_table_$unrecognized_effector LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000162 70 000201 71 000214 73 000222 74 000227 75 000233 78 000237 83 000262 85 000264 88 000314 104 000330 108 000331 115 000332 121 000336 187 000342 188 000352 127 000362 130 000377 131 000405 133 000411 135 000435 136 000446 137 000447 138 000451 141 000452 142 000463 143 000464 144 000466 147 000467 148 000500 149 000501 150 000503 153 000504 154 000515 155 000516 156 000520 159 000521 160 000532 161 000533 162 000535 165 000536 166 000543 168 000546 170 000551 171 000552 172 000555 173 000562 175 000565 178 000571 179 000573 181 000575 182 000577 183 000604 186 000607 187 000613 188 000645 189 000674 190 000703 193 000704 196 000762 199 000764 201 001001 203 001003 204 001007 209 001074 210 001075 211 001102 213 001104 215 001105 217 001112 219 001127 220 001136 223 001142 225 001145 229 001150 233 001152 235 001157 237 001202 239 001231 241 001240 246 001244 250 001246 252 001253 253 001262 255 001264 257 001305 259 001334 262 001355 263 001364 267 001370 271 001372 273 001377 275 001402 278 001425 279 001446 281 001455 283 001461 285 001504 286 001536 288 001545 290 001551 292 001574 294 001645 296 001654 301 001660 315 001662 317 001667 319 001672 322 001702 324 001706 327 001730 329 001760 331 001767 332 001771 334 001775 336 002020 338 002071 340 002101 342 002105 345 002111 347 002131 349 002140 352 002152 353 002161 354 002173 356 002175 357 002201 358 002232 360 002241 361 002254 363 002263 368 002267 374 002271 376 002273 380 002300 382 002303 385 002316 387 002320 389 002343 391 002360 393 002362 395 002366 396 002372 399 002375 401 002401 403 002405 406 002413 408 002417 409 002442 411 002444 415 002450 418 002462 420 002467 422 002471 425 002514 427 002516 430 002522 432 002524