COMPILATION LISTING OF SEGMENT apl_graphics_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1132.19_Tue_mdt Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 /* format: style3 */ 11 apl_graphics_: 12 proc; 13 14 /* An interface to the Multics Graphics System for APL */ 15 16 /* Written April 1975 by Joseph W. Dehn III 17* Modified 800122 by PG to bring up to current APL standards 18* Modified 810717 by WMY to fix a bug in return_node which returned 19* a pointer to the data instead of to the value bead. 20**/ 21 22 /* automatic */ 23 24 declare node fixed bin (18), 25 (x, y, z) float bin, 26 code fixed bin (35), 27 data_elements fixed bin (21), 28 ialign fixed bin, 29 left ptr, 30 left_vb ptr, 31 mode_value fixed bin, 32 n_words fixed bin (19), 33 result_vb ptr, 34 result_data ptr, 35 right ptr, 36 right_vb ptr; 37 38 /* builtins */ 39 40 declare (addr, addrel, dim, length, null, rel, size, string, substr) 41 builtin; 42 43 /* based */ 44 45 declare based_string char (right_vb -> value_bead.total_data_elements) based (right_vb -> value_bead.data_pointer); 46 47 /* external static */ 48 49 declare ( 50 apl_error_table_$domain, 51 apl_error_table_$length, 52 apl_error_table_$rank 53 ) fixed bin (35) external; 54 55 /* apl include files */ 56 1 1 /* ====== BEGIN INCLUDE SEGMENT apl_number_data.incl.pl1 ================================== */ 1 2 1 3 /* 1 4* This include file contains information about the machine representation of numbers. 1 5* In all programs numbers should simply be declared 'float'. 1 6* All default statements should be in this include file. 1 7* 1 8* This is the binary version. The manifest constant Binary should be used by programs 1 9* that need to know whether we are using binary or decimal. 1 10* */ 1 11 1 12 /* format: style3,initlm0,idind30 */ 1 13 1 14 default (float & ^decimal & ^binary & ^precision & ^constant) float binary (63); 1 15 1 16 declare ( 1 17 TheBiggestNumberWeveGot float initial (0.1701411834604692317e+39), 1 18 TheSmallestNumberWeveGot float initial (.1469367938527859385e-38), 1 19 Binary bit (1) aligned initial ("1"b) 1 20 ) internal static options (constant); 1 21 1 22 /* Number of characters in a number datum entry; used for copying float number arrays as strings. 1 23* (Obsolete! use array copies!) */ 1 24 1 25 declare NumberSize fixed binary precision (4) internal static initial (8); 1 26 1 27 /* ------ END INCLUDE SEGMENT apl_number_data.incl.pl1 ---------------------------------- */ 57 2 1 /* ====== BEGIN INCLUDE SEGMENT apl_ws_info.incl.pl1 ====================================== */ 2 2 2 3 /* This structure contains all of the global data (or pointers to it) for the APL subsystem */ 2 4 2 5 /* automatic */ 2 6 2 7 declare ws_info_ptr ptr initial (apl_static_$ws_info_ptr.static_ws_info_ptr); 2 8 2 9 /* external static */ 2 10 2 11 declare 1 apl_static_$ws_info_ptr external static aligned structure, 2 12 2 static_ws_info_ptr unaligned pointer; 2 13 2 14 /* based */ 2 15 2 16 declare 1 ws_info aligned based (ws_info_ptr), 2 17 2 version_number fixed bin, /* version of this structure (3) */ 2 18 2 switches unaligned, /* mainly ws parameters */ 2 19 3 long_error_mode bit, /* if 1, long Multics format, else APL/360 format */ 2 20 3 debug_mode bit, /* if 1, system error causes escape to command level */ 2 21 3 canonicalize_mode bit, /* if 1, the editor canonicalizes user input */ 2 22 3 restrict_exec_command bit, /* if 1, the )EXEC command may not be used */ 2 23 3 restrict_debug_command bit, /* if 1, the )DEBUG command may not be used */ 2 24 3 restrict_external_functions 2 25 bit, /* if 1, the )ZFN, )MFN, and )DFN commands may not be used */ 2 26 3 restrict_load bit, /* if 1, the )LOAD and )COPY commands may not be used */ 2 27 3 restrict_load_directory bit, /* if 1, no directory allowed in )LOAD or )COPY pathnames */ 2 28 3 restrict_save bit, /* if 1, the )SAVE command may not be used */ 2 29 3 restrict_save_directory bit, /* if 1, no directory allowed in )SAVE pathnames */ 2 30 3 off_hold bit, /* if 1, )OFF HOLD was typed, else just )OFF */ 2 31 3 transparent_to_signals bit, /* if 1, any conditions slip right past APL */ 2 32 3 meter_mode bit, /* if 1, metering may be done, else speed is all-important */ 2 33 3 restrict_msg_command bit, /* if 1, the )MSG command may not be used. */ 2 34 3 compatibility_check_mode 2 35 bit, /* if 1, check for incompatible operators */ 2 36 3 no_quit_handler bit, /* if 1, do not trap QUITs. */ 2 37 /* remaining 20 bits not presently used */ 2 38 2 39 2 values, /* attributes of the workspace */ 2 40 3 digits fixed bin, /* number of digits of precision printed on output */ 2 41 3 width fixed bin, /* line length for formatted output */ 2 42 3 index_origin fixed bin, /* the index origin (0 or 1) */ 2 43 3 random_link fixed bin(35), /* seed for random number generator */ 2 44 3 fuzz float, /* comparison tolerance (relative fuzz) */ 2 45 3 float_index_origin float, /* the index origin in floating point */ 2 46 3 number_of_symbols fixed bin, /* the number of symbol_beads currently in existence */ 2 47 3 maximum_value_stack_size 2 48 fixed bin (18), /* maximum number of words in one segment of value stack */ 2 49 2 50 2 pointers, /* pointers to various internal tables */ 2 51 3 symbol_table_ptr unaligned pointer, /* -> symbol_table (apl_symbol_table.incl.pl1) */ 2 52 3 current_parse_frame_ptr unaligned pointer, /* -> topmost parse frame */ 2 53 3 value_stack_ptr unaligned pointer, /* -> next free location on value stack */ 2 54 3 alloc_free_info_ptr unaligned pointer, /* -> apl_storage_mngr_ data (apl_storage_system_data.incl.pl1) */ 2 55 2 56 2 time_invoked fixed bin(71), /* clock time that APL was entered */ 2 57 2 integer_fuzz float, /* the absolute fuzz used in checking for integers */ 2 58 2 user_number fixed bin(35), /* number under which the user is signed on */ 2 59 2 latent_expression unaligned pointer, /* -> value_bead for QuadLX */ 2 60 2 lock char(32), /* the lock currently set on this workspace (password) */ 2 61 2 wsid char(100), /* the workspace identification: name, number name, or clear ws */ 2 62 2 last_error_code fixed bin(35), /* last code passed to apl_error_ */ 2 63 2 signoff_lock character (32), 2 64 2 65 2 interrupt_info aligned, /* bits used by apl_interpreter_ to tell when to abort */ 2 66 3 dont_interrupt_parse bit, /* if 1, don't do a dirty stop because the parser is running */ 2 67 3 dont_interrupt_operator bit, /* if 1, don't do a dirty stop because an operator is running */ 2 68 3 dont_interrupt_storage_manager /* if 1, don't stop because apl_storage_mngr_ is */ 2 69 bit, /* munging his tables */ 2 70 3 unused_interrupt_bit bit, /* not presently used */ 2 71 3 dont_interrupt_command bit, 2 72 3 can_be_interrupted bit, /* if 1, OK to do a clean stop (we are between lines, reading) */ 2 73 3 clean_interrupt_pending bit, /* interrupt occured, break cleanly (between lines) */ 2 74 3 dirty_interrupt_pending bit, /* interrupt occured, break as soon as not inhibited */ 2 75 2 76 2 user_name char (32), /* process group id of user */ 2 77 2 immediate_input_prompt char (32) varying, /* normal input */ 2 78 2 evaluated_input_prompt char (32) varying, /* quad input */ 2 79 2 character_input_prompt char (32) varying, /* quad-quote input */ 2 80 2 vcpu_time aligned, 2 81 3 total fixed bin (71), 2 82 3 setup fixed bin (71), 2 83 3 parse fixed bin (71), 2 84 3 lex fixed bin (71), 2 85 3 operator fixed bin (71), 2 86 3 storage_manager fixed bin (71), 2 87 2 output_info aligned, /* data pertaining to output buffer */ 2 88 3 output_buffer_ptr unal ptr, /* ptr to output buffer */ 2 89 3 output_buffer_len fixed bin (21), /* length (bytes) of output buffer */ 2 90 3 output_buffer_pos fixed bin (21), /* index of next byte to write in */ 2 91 3 output_buffer_ll fixed bin (21), /* print positions used up so far */ 2 92 2 tab_width fixed bin (21); /* number of columns a tabs moves cursor */ 2 93 2 94 declare output_buffer char (ws_info.output_buffer_len) based (ws_info.output_buffer_ptr); 2 95 2 96 /* internal static */ 2 97 2 98 declare max_parse_stack_depth fixed bin int static init(64536); 2 99 2 100 /* ------ END INCLUDE SEGMENT apl_ws_info.incl.pl1 -------------------------------------- */ 58 3 1 /* ====== BEGIN INCLUDE SEGMENT apl_bead_format.incl.pl1 ================================== */ 3 2 3 3 declare 1 general_bead aligned based, /* The Venerable Bead */ 3 4 2 type unaligned, 3 5 3 bead_type unaligned, 3 6 4 operator bit (1), /* ON if operator bead */ 3 7 4 symbol bit (1), /* ON if symbol bead */ 3 8 4 value bit (1), /* ON if value bead */ 3 9 4 function bit (1), /* ON if function bead */ 3 10 4 group bit (1), /* ON if group bead */ 3 11 4 label bit (1), /* ON if label bead */ 3 12 4 shared_variable bit (1), /* ON if shared variable bead */ 3 13 4 lexed_function bit (1), /* ON if lexed function bead */ 3 14 3 data_type unaligned, 3 15 4 list_value bit (1), /* ON if a list value bead */ 3 16 4 character_value bit (1), /* ON if a character value bead */ 3 17 4 numeric_value bit (1), /* ON if a numeric value bead */ 3 18 4 integral_value bit (1), /* ON if an integral value bead */ 3 19 4 zero_or_one_value bit (1), /* ON if a boolean value bead */ 3 20 4 complex_value bit (1), /* ON if a complex, numeric value bead */ 3 21 3 unused_bits bit (4) unaligned, /* pad to 18 bits (for future use) */ 3 22 2 size bit (18) unaligned, /* Number of words this bead occupies 3 23* (used by bead storage manager) */ 3 24 2 reference_count fixed binary (29); /* Number of pointers which point 3 25* to this bead (used by bead manager) */ 3 26 3 27 3 28 /* constant strings for initing type field in various beads */ 3 29 3 30 declare ( 3 31 operator_type init("100000000000000000"b), 3 32 symbol_type init("010000000000000000"b), 3 33 value_type init("001000000000000000"b), 3 34 function_type init("000100000000000000"b), 3 35 group_type init("000010000000000000"b), 3 36 label_type init("001001000011000000"b), 3 37 shared_variable_type init("001000100000000000"b), 3 38 lexed_function_type init("000000010000000000"b), 3 39 3 40 list_value_type init("000000001000000000"b), 3 41 character_value_type init("001000000100000000"b), 3 42 numeric_value_type init("001000000010000000"b), 3 43 integral_value_type init("001000000011000000"b), 3 44 zero_or_one_value_type init("001000000011100000"b), 3 45 complex_value_type init("001000000000010000"b), 3 46 3 47 not_integer_mask init("111111111110011111"b), /* to clear integral, zero_or_one bits */ 3 48 not_zero_or_one_mask init("111111111111011111"b) /* to clear zero_or_one bit */ 3 49 ) bit(18) internal static; 3 50 3 51 /* ------ END INCLUDE SEGMENT apl_bead_format.incl.pl1 ---------------------------------- */ 59 4 1 /* ====== BEGIN INCLUDE SEGEMENT apl_operators_argument.incl.pl1 =========================== */ 4 2 4 3 declare 1 operators_argument aligned, 4 4 2 operands (2) aligned, /* these are the operands to the operator to be executed. 4 5* if operand (1).value is null, operator is monadic */ 4 6 3 value pointer unaligned, /* a pointer to the value bead for this operand */ 4 7 3 on_stack bit (1) aligned, /* ON if this value resides on the value stack */ 4 8 2 operator aligned, /* information about the operator to be executed */ 4 9 3 dimension fixed bin, /* (optional) dimension along which to operate */ 4 10 3 padding bit (18) unaligned, /* unused part of operator bead */ 4 11 3 op2 fixed bin (8) unal, /* a modifier for op1, or a 2nd operator if inner product */ 4 12 3 op1 fixed bin (8) unal, /* code for the actual operator to be executed */ 4 13 2 result pointer unal, /* (output) set by operator to point to result bead in stack */ 4 14 2 error_code fixed bin (35), /* (output) set before signaling apl_operator_error_ */ 4 15 2 where_error fixed bin; /* parseme index of where error was - parse sets to operator */ 4 16 4 17 /* ------ END INCLUDE SEGMENT apl_operators_argument.incl.pl1 --------------------------- */ 60 5 1 /* ====== BEGIN INCLUDE SEGMENT apl_value_bead.incl.pl1 =================================== */ 5 2 5 3 declare 5 4 number_of_dimensions fixed bin, 5 5 5 6 1 value_bead aligned based, 5 7 2 header aligned like general_bead, 5 8 2 total_data_elements fixed binary (21), /* length of ,[value] in APL */ 5 9 2 rhorho fixed binary, /* number of dimensions of value */ 5 10 2 data_pointer pointer unaligned, /* packed pointer to the data in value */ 5 11 2 rho fixed binary (21) dimension (number_of_dimensions refer (value_bead.rhorho)); 5 12 /* dimensions of value (zero-origin) */ 5 13 5 14 5 15 declare 1 character_data_structure aligned based, /* alignment trick for PL/I compiler */ 5 16 2 character_datum character (1) unaligned dimension (0:data_elements - 1); 5 17 /* actual elements of character array */ 5 18 5 19 declare character_string_overlay character (data_elements) aligned based; 5 20 /* to overlay on above structure */ 5 21 5 22 5 23 declare numeric_datum float aligned dimension (0:data_elements - 1) based; 5 24 /* actual elements of numeric array */ 5 25 5 26 declare complex_datum complex float aligned dimension (0:data_elements -1) based; 5 27 5 28 declare MAX_VALUE_BEAD_SIZE fixed bin (19) init (261120) int static options (constant); 5 29 5 30 /* ------ END INCLUDE SEGMENT apl_value_bead.incl.pl1 ----------------------------------- */ 61 62 63 /* graphics include files */ 64 6 1 /* *************** BEGIN INCLUDE FILE gm_entry_dcls.incl.pl1 *************** */ 6 2 6 3 dcl (graphic_manipulator_$init, 6 4 gm_$init) entry (fixed bin (35)); 6 5 6 6 dcl (graphic_manipulator_$segp, 6 7 gm_$segp) entry (pointer, fixed bin (35)); 6 8 6 9 dcl (graphic_manipulator_$create_position, 6 10 gm_$create_position, 6 11 graphic_manipulator_$cpos, 6 12 gm_$cpos) entry (fixed bin, float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 6 13 6 14 dcl (graphic_manipulator_$create_mode, 6 15 gm_$create_mode, 6 16 graphic_manipulator_$cmode, 6 17 gm_$cmode) entry (fixed bin, fixed bin, fixed bin (35)) returns (fixed bin (18)); 6 18 6 19 dcl (graphic_manipulator_$create_scale, 6 20 gm_$create_scale, 6 21 graphic_manipulator_$cscale, 6 22 gm_$cscale) entry (float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 6 23 6 24 dcl (graphic_manipulator_$create_rotation, 6 25 gm_$create_rotation, 6 26 graphic_manipulator_$crot, 6 27 gm_$crot) entry (float bin (27), float bin (27), float bin (27), fixed bin (35)) returns (fixed bin (18)); 6 28 6 29 dcl (graphic_manipulator_$create_clip, 6 30 gm_$create_clip, 6 31 graphic_manipulator_$cclip, 6 32 gm_$cclip) entry (float bin (27), float bin (27), float bin (27), float bin (27), float bin (27), float bin (27), 6 33 fixed bin (35)) returns (fixed bin (18)); 6 34 6 35 dcl (graphic_manipulator_$create_color, 6 36 gm_$create_color, 6 37 graphic_manipulator_$ccolor, 6 38 gm_$ccolor) entry (fixed bin, fixed bin, fixed bin, fixed bin (35)) returns (fixed bin (18)); 6 39 6 40 dcl (graphic_manipulator_$create_text, 6 41 gm_$create_text, 6 42 graphic_manipulator_$ctext, 6 43 gm_$ctext) entry (fixed bin, fixed bin, char (*), fixed bin (35)) returns (fixed bin (18)); 6 44 6 45 dcl (graphic_manipulator_$create_data, 6 46 gm_$create_data, 6 47 graphic_manipulator_$cdata, 6 48 gm_$cdata) entry (fixed bin, bit (*), fixed bin (35)) returns (fixed bin (18)); 6 49 6 50 dcl (graphic_manipulator_$create_list, 6 51 gm_$create_list, 6 52 graphic_manipulator_$clist, 6 53 gm_$clist) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)) returns (fixed bin (18)); 6 54 6 55 dcl (graphic_manipulator_$create_array, 6 56 gm_$create_array, 6 57 graphic_manipulator_$carray, 6 58 gm_$carray) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)) returns (fixed bin (18)); 6 59 6 60 dcl (graphic_manipulator_$assign_name, 6 61 gm_$assign_name) entry (char (*), fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 6 62 6 63 dcl (graphic_manipulator_$find_structure, 6 64 gm_$find_structure, 6 65 graphic_manipulator_$fstruc, 6 66 gm_$fstruc) entry (char (*), fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 6 67 6 68 dcl (graphic_manipulator_$add_element, 6 69 gm_$add_element) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35)); 6 70 6 71 dcl (graphic_manipulator_$replace_element, 6 72 gm_$replace_element) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 6 73 6 74 dcl (graphic_manipulator_$replace_node, 6 75 gm_$replace_node) entry (fixed bin (18), fixed bin (18), fixed bin (35)); 6 76 6 77 dcl (graphic_manipulator_$remove_symbol, 6 78 gm_$remove_symbol) entry (char (*), fixed bin (35)); 6 79 6 80 dcl (graphic_manipulator_$replicate, 6 81 gm_$replicate) entry (fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 6 82 6 83 dcl (graphic_manipulator_$examine_type, 6 84 gm_$examine_type) entry (fixed bin (18), bit (1) aligned, fixed bin, fixed bin (35)); 6 85 6 86 dcl (graphic_manipulator_$examine_position, 6 87 gm_$examine_position, 6 88 graphic_manipulator_$epos, 6 89 gm_$epos) entry (fixed bin (18), fixed bin, float bin, float bin, float bin, fixed bin (35)); 6 90 6 91 dcl (graphic_manipulator_$examine_mode, 6 92 gm_$examine_mode, 6 93 graphic_manipulator_$emode, 6 94 gm_$emode) entry (fixed bin (18), fixed bin, fixed bin, fixed bin (35)); 6 95 6 96 dcl (graphic_manipulator_$examine_color, 6 97 gm_$examine_color, 6 98 graphic_manipulator_$ecolor, 6 99 gm_$ecolor) entry (fixed bin (18), fixed bin, fixed bin, fixed bin, fixed bin (35)); 6 100 6 101 dcl (graphic_manipulator_$examine_mapping, 6 102 gm_$examine_mapping, 6 103 graphic_manipulator_$emap, 6 104 gm_$emap) entry (fixed bin (18), fixed bin, float bin dimension (*), fixed bin, fixed bin (35)); 6 105 6 106 dcl (graphic_manipulator_$examine_contents, 6 107 gm_$examine_contents) entry (fixed bin (18), fixed bin (18) dimension (*), fixed bin, fixed bin (35)); 6 108 6 109 dcl (graphic_manipulator_$examine_list, 6 110 gm_$examine_list, 6 111 graphic_manipulator_$elist, 6 112 gm_$elist) entry (fixed bin (18), dimension (*) fixed bin (18), fixed bin, fixed bin (35)); 6 113 6 114 dcl (graphic_manipulator_$examine_symtab, 6 115 graphic_manipulator_$esymtab, 6 116 gm_$examine_symtab, 6 117 gm_$esymtab) entry (fixed bin (18) dimension (*), fixed bin, fixed bin (35)); 6 118 6 119 dcl (graphic_manipulator_$examine_symbol, 6 120 gm_$examine_symbol, 6 121 graphic_manipulator_$esymbol, 6 122 gm_$esymbol) entry (fixed bin (18), fixed bin (18), fixed bin, char (*), fixed bin (35)); 6 123 6 124 dcl (graphic_manipulator_$examine_text, 6 125 gm_$examine_text, 6 126 graphic_manipulator_$etext, 6 127 gm_$etext) entry (fixed bin (18), fixed bin, fixed bin, char (*), fixed bin (35)); 6 128 6 129 dcl (graphic_manipulator_$examine_data, 6 130 gm_$examine_data, 6 131 graphic_manipulator_$edata, 6 132 gm_$edata) entry (fixed bin (18), fixed bin, bit (*), fixed bin (35)); 6 133 6 134 dcl (graphic_manipulator_$get_struc, 6 135 gm_$get_struc, 6 136 graphic_manipulator_$gstruc, 6 137 gm_$gstruc) entry (char (*), char (*), char (*), fixed bin, fixed bin (35)); 6 138 6 139 dcl (graphic_manipulator_$put_struc, 6 140 gm_$put_struc, 6 141 graphic_manipulator_$pstruc, 6 142 gm_$pstruc) entry (char (*), char (*), char (*), fixed bin, fixed bin (35)); 6 143 6 144 dcl (graphic_manipulator_$save_file, 6 145 gm_$save_file) entry (char (*), char (*), fixed bin (35)); 6 146 6 147 dcl (graphic_manipulator_$use_file, 6 148 gm_$use_file) entry (char (*), char (*), fixed bin (35)); 6 149 6 150 /* **************** END INCLUDE FILE gm_entry_dcls.incl.pl1 **************** */ 65 7 1 /* *************** BEGIN INCLUDE FILE gc_entry_dcls.incl.pl1 *************** */ 7 2 7 3 dcl (graphic_compiler_$tree_ptr, 7 4 gc_$tree_ptr) entry returns (pointer); 7 5 7 6 dcl (graphic_compiler_$return_string, 7 7 gc_$return_string, 7 8 graphic_compiler_$rs, 7 9 gc_$rs) entry (fixed bin (18), pointer, fixed bin, fixed bin (35)); 7 10 7 11 dcl (graphic_compiler_$display_append, 7 12 gc_$display_append, 7 13 graphic_compiler_$da, 7 14 gc_$da) entry (fixed bin (18), fixed bin (35)); 7 15 7 16 dcl (graphic_compiler_$display_append_switch, 7 17 gc_$display_append_switch, 7 18 graphic_compiler_$da_switch, 7 19 gc_$da_switch) entry (fixed bin (18), fixed bin (35), pointer); 7 20 7 21 dcl (graphic_compiler_$display, 7 22 gc_$display, 7 23 graphic_compiler_$d, 7 24 gc_$d) entry (fixed bin (18), fixed bin (35)); 7 25 7 26 dcl (graphic_compiler_$display_switch, 7 27 gc_$display_switch, 7 28 graphic_compiler_$d_switch, 7 29 gc_$d_switch) entry (fixed bin (18), fixed bin (35), pointer); 7 30 7 31 dcl (graphic_compiler_$load, 7 32 gc_$load, 7 33 graphic_compiler_$l, 7 34 gc_$l) entry (fixed bin (18), fixed bin (35)); 7 35 7 36 dcl (graphic_compiler_$load_switch, 7 37 gc_$load_switch, 7 38 graphic_compiler_$l_switch, 7 39 gc_$l_switch) entry (fixed bin (18), fixed bin (35), pointer); 7 40 7 41 dcl (graphic_compiler_$display_name_append, 7 42 gc_$display_name_append, 7 43 graphic_compiler_$dna, 7 44 gc_$dna) entry (char (*), fixed bin (35)); 7 45 7 46 dcl (graphic_compiler_$display_name_append_switch, 7 47 gc_$display_name_append_switch, 7 48 graphic_compiler_$dna_switch, 7 49 gc_$dna_switch) entry (char (*), fixed bin (35), pointer); 7 50 7 51 dcl (graphic_compiler_$display_name, 7 52 gc_$display_name, 7 53 graphic_compiler_$dn, 7 54 gc_$dn) entry (char (*), fixed bin (35)); 7 55 7 56 dcl (graphic_compiler_$display_name_switch, 7 57 gc_$display_name_switch, 7 58 graphic_compiler_$dn_switch, 7 59 gc_$dn_switch) entry (char (*), fixed bin (35), pointer); 7 60 7 61 dcl (graphic_compiler_$load_name, 7 62 gc_$load_name, 7 63 graphic_compiler_$ln, 7 64 gc_$ln) entry (char (*), fixed bin (35)); 7 65 7 66 dcl (graphic_compiler_$load_name_switch, 7 67 gc_$load_name_switch, 7 68 graphic_compiler_$ln_switch, 7 69 gc_$ln_switch) entry (char (*), fixed bin (35), pointer); 7 70 7 71 dcl (graphic_compiler_$prune_tree, 7 72 gc_$prune_tree) entry (fixed bin (35)); 7 73 7 74 /* **************** END INCLUDE FILE gc_entry_dcls.incl.pl1 **************** */ 66 8 1 /* *************** BEGIN INCLUDE FILE go_entry_dcls.incl.pl1 *************** */ 8 2 8 3 dcl (graphic_operator_$dispatch, 8 4 go_$dispatch) entry (fixed bin (35)); 8 5 8 6 dcl (graphic_operator_$dispatch_switch, 8 7 go_$dispatch_switch) entry (fixed bin (35), pointer); 8 8 8 9 dcl (graphic_operator_$reset, 8 10 go_$reset) entry; 8 11 8 12 dcl (graphic_operator_$set_immediacy, 8 13 go_$set_immediacy) entry (bit (1) aligned, bit (1) aligned, fixed bin (35)); 8 14 8 15 dcl (graphic_operator_$replace_element, 8 16 go_$replace_element) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35)) returns (fixed bin (18)); 8 17 8 18 dcl (graphic_operator_$replace_element_switch, 8 19 go_$replace_element_switch) entry (fixed bin (18), fixed bin, fixed bin (18), fixed bin (35), pointer) returns (fixed bin (18)); 8 20 8 21 dcl (graphic_operator_$delete, 8 22 go_$delete) entry (fixed bin (18), fixed bin (35)); 8 23 8 24 dcl (graphic_operator_$delete_switch, 8 25 go_$delete_switch) entry (fixed bin (18), fixed bin (35), pointer); 8 26 8 27 dcl (graphic_operator_$display, 8 28 go_$display) entry (fixed bin (18), fixed bin (35)); 8 29 8 30 dcl (graphic_operator_$display_switch, 8 31 go_$display_switch) entry (fixed bin (18), fixed bin (35), pointer); 8 32 8 33 dcl (graphic_operator_$erase, 8 34 go_$erase) entry (fixed bin (35)); 8 35 8 36 dcl (graphic_operator_$erase_switch, 8 37 go_$erase_switch) entry (fixed bin (35), pointer); 8 38 8 39 dcl (graphic_operator_$synchronize, 8 40 go_$synchronize) entry (fixed bin (35)); 8 41 8 42 dcl (graphic_operator_$synchronize_switch, 8 43 go_$synchronize_switch) entry (fixed bin (35), pointer); 8 44 8 45 dcl (graphic_operator_$pause, 8 46 go_$pause) entry (fixed bin (35)); 8 47 8 48 dcl (graphic_operator_$pause_switch, 8 49 go_$pause_switch) entry (fixed bin (35), pointer); 8 50 8 51 dcl (graphic_operator_$increment, 8 52 go_$increment) entry (fixed bin (18), fixed bin, float bin, fixed bin (18), fixed bin (35)); 8 53 8 54 dcl (graphic_operator_$increment_switch, 8 55 go_$increment_switch) entry (fixed bin (18), fixed bin, float bin, fixed bin (18), fixed bin (35), pointer); 8 56 8 57 dcl (graphic_operator_$control, 8 58 go_$control) entry (fixed bin (18), fixed bin (35)); 8 59 8 60 dcl (graphic_operator_$control_switch, 8 61 go_$control_switch) entry (fixed bin (18), fixed bin (35), pointer); 8 62 8 63 dcl (graphic_operator_$where, 8 64 go_$where) entry (fixed bin, float bin, float bin, float bin, fixed bin (35)); 8 65 8 66 dcl (graphic_operator_$where_switch, 8 67 go_$where_switch) entry (fixed bin, float bin, float bin, float bin, fixed bin (35), pointer, pointer); 8 68 8 69 dcl (graphic_operator_$which, 8 70 go_$which) entry (fixed bin, fixed bin (18), fixed bin, fixed bin dimension (*), fixed bin (35)); 8 71 8 72 dcl (graphic_operator_$which_switch, 8 73 go_$which_switch) entry (fixed bin, fixed bin (18), fixed bin, fixed bin dimension (*), fixed bin (35), pointer, pointer); 8 74 8 75 dcl (graphic_operator_$what, 8 76 go_$what) entry (fixed bin, fixed bin, fixed bin (35)) returns (fixed bin (18)); 8 77 8 78 dcl (graphic_operator_$what_switch, 8 79 go_$what_switch) entry (fixed bin, fixed bin, fixed bin (35), pointer, pointer) returns (fixed bin (18)); 8 80 8 81 /* **************** END INCLUDE FILE go_entry_dcls.incl.pl1 **************** */ 67 9 1 /* --------------- BEGIN include file graphic_etypes.incl.pl1 --------------- */ 9 2 9 3 /* Types of position, mode, and other effectors for the 9 4* Multics General Graphic System */ 9 5 9 6 9 7 /* Null code */ 9 8 9 9 dcl (Null initial (-1), 9 10 9 11 /* Position codes */ 9 12 9 13 Setposition initial (0), 9 14 Setpoint initial (1), 9 15 Vector initial (2), 9 16 Shift initial (3), 9 17 Point initial (4), 9 18 9 19 /* Mode codes, with values where appropriate */ 9 20 9 21 Scaling initial (8), 9 22 Rotation initial (9), 9 23 Clipping initial (10), 9 24 9 25 Intensity initial (16), 9 26 Full_intensity initial (7), 9 27 Half_intensity initial (3), 9 28 Invisible initial (0), 9 29 9 30 Linetype initial (17), 9 31 Solid initial (0), 9 32 Dashed initial (1), 9 33 Dotted initial (2), 9 34 Dash_dotted initial (3), 9 35 Long_dashed initial (4), 9 36 9 37 Sensitivity initial (18), 9 38 Sensitive initial (1), 9 39 Insensitive initial (0), 9 40 9 41 Blink initial (19), 9 42 Steady initial (0), 9 43 Blinking initial (1), 9 44 9 45 Color initial (20), 9 46 9 47 Symbol initial (24), 9 48 9 49 /* Text code, with legal alignments */ 9 50 9 51 Text initial (25), 9 52 Upper_left initial (1), 9 53 Upper_center initial (2), 9 54 Upper_right initial (3), 9 55 Left initial (4), 9 56 Center initial (5), 9 57 Right initial (6), 9 58 Lower_left initial (7), 9 59 Lower_center initial (8), 9 60 Lower_right initial (9), 9 61 9 62 /* Datablock code */ 9 63 9 64 Datablock initial (26), 9 65 9 66 /* Structural effector codes */ 9 67 9 68 List initial (32), 9 69 Array initial (33), 9 70 9 71 /* Merge codes for gm_$get_struc and gm_$put_struc */ 9 72 9 73 On_dup_error initial (0), /* allow no name duplications */ 9 74 On_dup_source initial (1), /* on name dup, force move (use source copy) */ 9 75 On_dup_target_then_nulls initial (2), /* on name dup, use target copy, for nondup symbols create null ones */ 9 76 On_dup_target_then_source initial (3), /* on name dup, use target copy, for nondup symbols, use source copy */ 9 77 9 78 /* Device codes for graphic input devices */ 9 79 9 80 Terminal_program initial (0), 9 81 Keyboard initial (1), 9 82 Mouse initial (2), 9 83 Joystick initial (3), 9 84 Tablet_and_pen initial (4), 9 85 Light_pen initial (5), 9 86 Trackball initial (6), 9 87 Any_device initial (63)) /* 63 is equivalent to -1 in SPI */ 9 88 9 89 fixed bin internal static options (constant); 9 90 9 91 /* ---------------- END include file graphic_etypes.incl.pl1 ---------------- */ 68 69 70 /* program */ 71 72 gfsetposition: 73 entry (operators_argument); 74 75 call create_position (Setposition); 76 77 gfsetpoint: 78 entry (operators_argument); 79 80 call create_position (Setpoint); 81 82 gfpoint: 83 entry (operators_argument); 84 85 call create_position (Point); 86 87 gfshift: 88 entry (operators_argument); 89 90 call create_position (Shift); 91 92 gfvector: 93 entry (operators_argument); 94 95 call create_position (Vector); 96 97 gflinetype: 98 entry (operators_argument); 99 100 call create_mode (Linetype); 101 102 gfintensity: 103 entry (operators_argument); 104 105 call create_mode (Intensity); 106 107 gfblinking: 108 entry (operators_argument); 109 110 call create_mode (Blinking); 111 112 gfsensitivity: 113 entry (operators_argument); 114 115 call create_mode (Sensitivity); 116 117 gfscale: 118 entry (operators_argument); 119 120 call three_float; 121 node = graphic_manipulator_$create_scale (x, y, z, code); 122 go to return_node; 123 124 gfrotate: 125 entry (operators_argument); 126 127 call three_float; 128 node = graphic_manipulator_$create_rotation (x, y, z, code); 129 go to return_node; 130 131 gflist: 132 entry (operators_argument); 133 134 call create_structure (graphic_manipulator_$create_list); 135 136 gfarray: 137 entry (operators_argument); 138 139 call create_structure (graphic_manipulator_$create_array); 140 141 gfinit: 142 entry (operators_argument); 143 144 call gm_$init (code); 145 go to return_nothing; 146 147 gferase: 148 entry (operators_argument); 149 150 call graphic_operator_$erase (code); 151 go to return_nothing; 152 153 gfdisplay: 154 entry (operators_argument); 155 156 call one_node; 157 call graphic_compiler_$display (node, code); 158 go to return_nothing; 159 160 gfdisplayappend: 161 entry (operators_argument); 162 163 call one_node; 164 call graphic_compiler_$display_append (node, code); 165 go to return_nothing; 166 167 /* This is the only dyadic entry */ 168 169 gftext: 170 entry (operators_argument); 171 172 left_vb = operators_argument.operands (1).value; 173 174 if ^left_vb -> value_bead.value 175 then go to domain_error_left; 176 177 if ^left_vb -> value_bead.numeric_value 178 then go to domain_error_left; 179 180 right_vb = operators_argument.operands (2).value; 181 182 if ^right_vb -> value_bead.value 183 then go to domain_error_right; 184 185 if ^right_vb -> value_bead.character_value 186 then go to domain_error_right; 187 188 if left_vb -> value_bead.total_data_elements > 1 189 then if left_vb -> value_bead.rhorho > 1 190 then go to rank_error_left; 191 else go to length_error_left; 192 193 ialign = left_vb -> value_bead.data_pointer -> numeric_datum (0); 194 node = graphic_manipulator_$create_text (ialign, length (based_string), based_string, code); 195 go to return_node; 196 197 /* ********** Action Routines ********** */ 198 199 return_node: 200 if operators_argument.operands (2).on_stack 201 then ws_info.value_stack_ptr = operators_argument.operands (2).value; 202 else if operators_argument.operands (1).on_stack 203 then ws_info.value_stack_ptr = operators_argument.operands (1).value; 204 205 number_of_dimensions = 0; 206 data_elements = 1; 207 n_words = size (value_bead) + size (numeric_datum) + 1; 208 result_vb = apl_push_stack_ (n_words); 209 string (result_vb -> value_bead.type) = integral_value_type; 210 result_vb -> value_bead.total_data_elements = data_elements; 211 result_vb -> value_bead.rhorho = number_of_dimensions; 212 result_data = addrel (result_vb, size (value_bead)); 213 if substr (rel (result_data), 18, 1) 214 then result_data = addrel (result_data, 1); 215 216 result_vb -> value_bead.data_pointer = result_data; 217 result_data -> numeric_datum (0) = node; 218 219 operators_argument.result = result_vb; 220 221 return_nothing: 222 if code ^= 0 223 then operators_argument.error_code = code; 224 225 return; 226 227 domain_error_left: 228 operators_argument.where_error = operators_argument.where_error + 2; 229 230 domain_error_right: 231 operators_argument.where_error = operators_argument.where_error - 1; 232 operators_argument.error_code = apl_error_table_$domain; 233 return; 234 235 length_error_left: 236 operators_argument.where_error = operators_argument.where_error + 2; 237 238 length_error_right: 239 operators_argument.where_error = operators_argument.where_error - 1; 240 operators_argument.error_code = apl_error_table_$length; 241 return; 242 243 rank_error_left: 244 operators_argument.where_error = operators_argument.where_error + 2; 245 246 rank_error_right: 247 operators_argument.where_error = operators_argument.where_error - 1; 248 operators_argument.error_code = apl_error_table_$rank; 249 return; 250 251 /* INTERNAL PROCEDURES */ 252 253 create_position: 254 proc (itype); 255 256 dcl itype fixed bin; 257 258 call three_float; 259 node = graphic_manipulator_$create_position (itype, x, y, z, code); 260 go to return_node; 261 end; 262 263 create_mode: 264 proc (itype); 265 266 dcl itype fixed bin; 267 dcl mode_value fixed bin; 268 269 call validate_right; 270 271 if (right_vb -> value_bead.total_data_elements > 1) 272 then if right_vb -> value_bead.rhorho > 1 273 then go to rank_error_right; 274 else go to length_error_right; 275 276 mode_value = right -> numeric_datum (0); 277 node = graphic_manipulator_$create_mode (itype, mode_value, code); 278 go to return_node; 279 end; 280 281 three_float: 282 proc; 283 284 call validate_right; 285 286 if right_vb -> value_bead.rhorho ^= 1 287 then go to rank_error_right; 288 289 if (right_vb -> value_bead.total_data_elements < 2) | (right_vb -> value_bead.total_data_elements > 3) 290 then go to length_error_right; 291 292 if right_vb -> value_bead.total_data_elements = 3 293 then z = right -> numeric_datum (2); 294 else z = 0e0; 295 296 x = right -> numeric_datum (0); 297 y = right -> numeric_datum (1); 298 return; 299 end; 300 301 one_node: 302 proc; 303 304 call validate_right; 305 306 if right_vb -> value_bead.total_data_elements > 1 307 then if right_vb -> value_bead.rhorho > 1 308 then go to rank_error_right; 309 else go to length_error_right; 310 311 node = right -> numeric_datum (0); 312 return; 313 end; 314 315 create_structure: 316 proc (structure_maker); 317 318 dcl structure_maker entry (dimension (*) fixed bin (18), fixed bin, fixed bin (35)) 319 returns (fixed bin (18)) variable; 320 321 call validate_right; 322 323 if right_vb -> value_bead.rhorho ^= 1 324 then go to rank_error_right; 325 326 data_elements = right_vb -> value_bead.rho (1); 327 328 begin; 329 330 dcl node_array fixed bin (18) dim (data_elements); 331 332 node_array (*) = right -> numeric_datum (*); /* copy the floats to temp array */ 333 node = structure_maker (node_array, (data_elements), code); 334 end; 335 336 go to return_node; 337 338 end create_structure; 339 340 validate_right: 341 proc; 342 343 right_vb = operators_argument.operands (2).value; 344 345 if ^right_vb -> value_bead.value 346 then go to domain_error_right; 347 348 if ^right_vb -> value_bead.numeric_value 349 then go to domain_error_right; 350 351 right = right_vb -> value_bead.data_pointer; 352 return; 353 354 end validate_right; 355 10 1 /* ====== BEGIN INCLUDE SEGMENT apl_push_stack_fcn.incl.pl1 =============================== */ 10 2 10 3 /* format: style3 */ 10 4 apl_push_stack_: 10 5 procedure (P_n_words) returns (ptr); 10 6 10 7 /* Function to (1) double-word align ws_info.value_stack_ptr, and 10 8* (2) make sure allocation request will fit on current value stack. 10 9* 10 10* Written 770413 by PG 10 11* Modified 780210 by PG to round allocations up to an even number of words. 10 12**/ 10 13 10 14 /* parameters */ 10 15 10 16 declare P_n_words fixed bin (19) parameter; 10 17 10 18 /* automatic */ 10 19 10 20 declare block_ptr ptr, 10 21 num_words fixed bin (19); 10 22 10 23 /* builtins */ 10 24 10 25 declare (addrel, binary, rel, substr, unspec) 10 26 builtin; 10 27 10 28 /* entries */ 10 29 10 30 declare apl_get_value_stack_ 10 31 entry (fixed bin (19)); 10 32 10 33 /* program */ 10 34 10 35 num_words = P_n_words; 10 36 10 37 if substr (unspec (num_words), 36, 1) = "1"b /* num_words odd */ 10 38 then num_words = num_words + 1; 10 39 10 40 if binary (rel (ws_info.value_stack_ptr), 18) + num_words > ws_info.maximum_value_stack_size 10 41 then call apl_get_value_stack_ (num_words); 10 42 10 43 block_ptr = ws_info.value_stack_ptr; 10 44 ws_info.value_stack_ptr = addrel (ws_info.value_stack_ptr, num_words); 10 45 return (block_ptr); 10 46 10 47 end apl_push_stack_; 10 48 10 49 /* ------ END INCLUDE SEGMENT apl_push_stack_fcn.incl.pl1 ------------------------------- */ 356 357 end apl_graphics_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1132.1 apl_graphics_.pl1 >udd>sm>ds>w>ml>apl_graphics_.pl1 57 1 03/27/82 0529.8 apl_number_data.incl.pl1 >ldd>incl>apl_number_data.incl.pl1 58 2 03/27/82 0539.2 apl_ws_info.incl.pl1 >ldd>incl>apl_ws_info.incl.pl1 59 3 03/27/82 0538.5 apl_bead_format.incl.pl1 >ldd>incl>apl_bead_format.incl.pl1 60 4 03/27/82 0539.0 apl_operators_argument.incl.pl1 >ldd>incl>apl_operators_argument.incl.pl1 61 5 03/27/82 0539.2 apl_value_bead.incl.pl1 >ldd>incl>apl_value_bead.incl.pl1 65 6 08/27/75 1800.7 gm_entry_dcls.incl.pl1 >ldd>incl>gm_entry_dcls.incl.pl1 66 7 08/13/81 2135.4 gc_entry_dcls.incl.pl1 >ldd>incl>gc_entry_dcls.incl.pl1 67 8 11/02/77 1837.5 go_entry_dcls.incl.pl1 >ldd>incl>go_entry_dcls.incl.pl1 68 9 03/27/82 0539.2 graphic_etypes.incl.pl1 >ldd>incl>graphic_etypes.incl.pl1 356 10 03/27/82 0529.8 apl_push_stack_fcn.incl.pl1 >ldd>incl>apl_push_stack_fcn.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. Blinking constant fixed bin(17,0) initial dcl 9-9 set ref 110* Intensity 000001 constant fixed bin(17,0) initial dcl 9-9 set ref 105* Linetype 000000 constant fixed bin(17,0) initial dcl 9-9 set ref 100* P_n_words parameter fixed bin(19,0) dcl 10-16 ref 10-4 10-35 Point constant fixed bin(17,0) initial dcl 9-9 set ref 85* Sensitivity constant fixed bin(17,0) initial dcl 9-9 set ref 115* Setpoint constant fixed bin(17,0) initial dcl 9-9 set ref 80* Setposition constant fixed bin(17,0) initial dcl 9-9 set ref 75* Shift constant fixed bin(17,0) initial dcl 9-9 set ref 90* Vector constant fixed bin(17,0) initial dcl 9-9 set ref 95* addrel builtin function dcl 40 in procedure "apl_graphics_" ref 212 213 addrel builtin function dcl 10-25 in procedure "apl_push_stack_" ref 10-44 apl_error_table_$domain 000010 external static fixed bin(35,0) dcl 49 ref 232 apl_error_table_$length 000012 external static fixed bin(35,0) dcl 49 ref 240 apl_error_table_$rank 000014 external static fixed bin(35,0) dcl 49 ref 248 apl_get_value_stack_ 000046 constant entry external dcl 10-30 ref 10-40 apl_static_$ws_info_ptr 000016 external static structure level 1 dcl 2-11 based_string based char packed unaligned dcl 45 set ref 194 194 194* bead_type based structure level 4 packed packed unaligned dcl 5-3 binary builtin function dcl 10-25 ref 10-40 block_ptr 000204 automatic pointer dcl 10-20 set ref 10-43* 10-45 character_value 0(09) based bit(1) level 5 packed packed unaligned dcl 5-3 set ref 185 code 000104 automatic fixed bin(35,0) dcl 24 set ref 121* 128* 144* 150* 157* 164* 194* 221 221 259* 277* 333* data_elements 000105 automatic fixed bin(21,0) dcl 24 set ref 206* 207 210 326* 330 332 333 data_pointer 4 based pointer level 2 packed packed unaligned dcl 5-3 set ref 193 194 194 194 216* 351 data_type 0(08) based structure level 4 packed packed unaligned dcl 5-3 error_code 7 parameter fixed bin(35,0) level 2 dcl 4-3 set ref 221* 232* 240* 248* general_bead based structure level 1 dcl 3-3 gm_$init 000020 constant entry external dcl 6-3 ref 144 graphic_compiler_$display 000042 constant entry external dcl 7-21 ref 157 graphic_compiler_$display_append 000040 constant entry external dcl 7-11 ref 164 graphic_manipulator_$create_array 000036 constant entry external dcl 6-55 ref 139 139 graphic_manipulator_$create_list 000034 constant entry external dcl 6-50 ref 134 134 graphic_manipulator_$create_mode 000024 constant entry external dcl 6-14 ref 277 graphic_manipulator_$create_position 000022 constant entry external dcl 6-9 ref 259 graphic_manipulator_$create_rotation 000030 constant entry external dcl 6-24 ref 128 graphic_manipulator_$create_scale 000026 constant entry external dcl 6-19 ref 121 graphic_manipulator_$create_text 000032 constant entry external dcl 6-40 ref 194 graphic_operator_$erase 000044 constant entry external dcl 8-33 ref 150 header based structure level 2 dcl 5-3 ialign 000106 automatic fixed bin(17,0) dcl 24 set ref 193* 194* integral_value_type constant bit(18) initial packed unaligned dcl 3-30 ref 209 itype parameter fixed bin(17,0) dcl 266 in procedure "create_mode" set ref 263 277* itype parameter fixed bin(17,0) dcl 256 in procedure "create_position" set ref 253 259* left_vb 000110 automatic pointer dcl 24 set ref 172* 174 177 188 188 193 length builtin function dcl 40 ref 194 194 maximum_value_stack_size 13 based fixed bin(18,0) level 3 dcl 2-16 ref 10-40 mode_value 000144 automatic fixed bin(17,0) dcl 267 set ref 276* 277* n_words 000112 automatic fixed bin(19,0) dcl 24 set ref 207* 208* node 000100 automatic fixed bin(18,0) dcl 24 set ref 121* 128* 157* 164* 194* 217 259* 277* 311* 333* node_array 000100 automatic fixed bin(18,0) array dcl 330 set ref 332* 333* num_words 000206 automatic fixed bin(19,0) dcl 10-20 set ref 10-35* 10-37 10-37* 10-37 10-40 10-40* 10-44 number_of_dimensions 000126 automatic fixed bin(17,0) dcl 5-3 set ref 205* 207 211 212 numeric_datum based float bin(63) array dcl 5-23 set ref 193 207 217* 276 292 296 297 311 332 numeric_value 0(10) based bit(1) level 5 packed packed unaligned dcl 5-3 set ref 177 348 on_stack 1 parameter bit(1) array level 3 dcl 4-3 ref 199 202 operands parameter structure array level 2 dcl 4-3 operators_argument parameter structure level 1 dcl 4-3 set ref 72 77 82 87 92 97 102 107 112 117 124 131 136 141 147 153 160 169 pointers 14 based structure level 2 dcl 2-16 rel builtin function dcl 40 in procedure "apl_graphics_" ref 213 rel builtin function dcl 10-25 in procedure "apl_push_stack_" ref 10-40 result 6 parameter pointer level 2 packed packed unaligned dcl 4-3 set ref 219* result_data 000116 automatic pointer dcl 24 set ref 212* 213 213* 213 216 217 result_vb 000114 automatic pointer dcl 24 set ref 208* 209 210 211 212 216 219 rho 5 based fixed bin(21,0) array level 2 dcl 5-3 ref 326 rhorho 3 based fixed bin(17,0) level 2 dcl 5-3 set ref 188 211* 271 286 306 323 right 000120 automatic pointer dcl 24 set ref 276 292 296 297 311 332 351* right_vb 000122 automatic pointer dcl 24 set ref 180* 182 185 194 194 194 194 194 194 194 271 271 286 289 289 292 306 306 323 326 343* 345 348 351 size builtin function dcl 40 ref 207 207 212 static_ws_info_ptr 000016 external static pointer level 2 packed packed unaligned dcl 2-11 ref 2-7 string builtin function dcl 40 set ref 209* structure_maker parameter entry variable dcl 318 ref 315 333 substr builtin function dcl 10-25 in procedure "apl_push_stack_" ref 10-37 substr builtin function dcl 40 in procedure "apl_graphics_" ref 213 total_data_elements 2 based fixed bin(21,0) level 2 dcl 5-3 set ref 188 194 194 194 194 210* 271 289 289 292 306 type based structure level 3 packed packed unaligned dcl 5-3 set ref 209* unspec builtin function dcl 10-25 ref 10-37 value parameter pointer array level 3 in structure "operators_argument" packed packed unaligned dcl 4-3 in procedure "apl_graphics_" ref 172 180 199 202 343 value 0(02) based bit(1) level 5 in structure "value_bead" packed packed unaligned dcl 5-3 in procedure "apl_graphics_" set ref 174 182 345 value_bead based structure level 1 dcl 5-3 set ref 207 212 value_stack_ptr 16 based pointer level 3 packed packed unaligned dcl 2-16 set ref 199* 202* 10-40 10-43 10-44* 10-44 values 2 based structure level 2 dcl 2-16 where_error 10 parameter fixed bin(17,0) level 2 dcl 4-3 set ref 227* 227 230* 230 235* 235 238* 238 243* 243 246* 246 ws_info based structure level 1 dcl 2-16 ws_info_ptr 000124 automatic pointer initial dcl 2-7 set ref 199 202 2-7* 10-40 10-40 10-43 10-44 10-44 x 000101 automatic float bin(27) dcl 24 set ref 121* 128* 259* 296* y 000102 automatic float bin(27) dcl 24 set ref 121* 128* 259* 297* z 000103 automatic float bin(27) dcl 24 set ref 121* 128* 259* 292* 294* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Any_device internal static fixed bin(17,0) initial dcl 9-9 Array internal static fixed bin(17,0) initial dcl 9-9 Binary internal static bit(1) initial dcl 1-16 Blink internal static fixed bin(17,0) initial dcl 9-9 Center internal static fixed bin(17,0) initial dcl 9-9 Clipping internal static fixed bin(17,0) initial dcl 9-9 Color internal static fixed bin(17,0) initial dcl 9-9 Dash_dotted internal static fixed bin(17,0) initial dcl 9-9 Dashed internal static fixed bin(17,0) initial dcl 9-9 Datablock internal static fixed bin(17,0) initial dcl 9-9 Dotted internal static fixed bin(17,0) initial dcl 9-9 Full_intensity internal static fixed bin(17,0) initial dcl 9-9 Half_intensity internal static fixed bin(17,0) initial dcl 9-9 Insensitive internal static fixed bin(17,0) initial dcl 9-9 Invisible internal static fixed bin(17,0) initial dcl 9-9 Joystick internal static fixed bin(17,0) initial dcl 9-9 Keyboard internal static fixed bin(17,0) initial dcl 9-9 Left internal static fixed bin(17,0) initial dcl 9-9 Light_pen internal static fixed bin(17,0) initial dcl 9-9 List internal static fixed bin(17,0) initial dcl 9-9 Long_dashed internal static fixed bin(17,0) initial dcl 9-9 Lower_center internal static fixed bin(17,0) initial dcl 9-9 Lower_left internal static fixed bin(17,0) initial dcl 9-9 Lower_right internal static fixed bin(17,0) initial dcl 9-9 MAX_VALUE_BEAD_SIZE internal static fixed bin(19,0) initial dcl 5-28 Mouse internal static fixed bin(17,0) initial dcl 9-9 Null internal static fixed bin(17,0) initial dcl 9-9 NumberSize internal static fixed bin(4,0) initial dcl 1-25 On_dup_error internal static fixed bin(17,0) initial dcl 9-9 On_dup_source internal static fixed bin(17,0) initial dcl 9-9 On_dup_target_then_nulls internal static fixed bin(17,0) initial dcl 9-9 On_dup_target_then_source internal static fixed bin(17,0) initial dcl 9-9 Right internal static fixed bin(17,0) initial dcl 9-9 Rotation internal static fixed bin(17,0) initial dcl 9-9 Scaling internal static fixed bin(17,0) initial dcl 9-9 Sensitive internal static fixed bin(17,0) initial dcl 9-9 Solid internal static fixed bin(17,0) initial dcl 9-9 Steady internal static fixed bin(17,0) initial dcl 9-9 Symbol internal static fixed bin(17,0) initial dcl 9-9 Tablet_and_pen internal static fixed bin(17,0) initial dcl 9-9 Terminal_program internal static fixed bin(17,0) initial dcl 9-9 Text internal static fixed bin(17,0) initial dcl 9-9 TheBiggestNumberWeveGot internal static float bin(63) initial dcl 1-16 TheSmallestNumberWeveGot internal static float bin(63) initial dcl 1-16 Trackball internal static fixed bin(17,0) initial dcl 9-9 Upper_center internal static fixed bin(17,0) initial dcl 9-9 Upper_left internal static fixed bin(17,0) initial dcl 9-9 Upper_right internal static fixed bin(17,0) initial dcl 9-9 addr builtin function dcl 40 character_data_structure based structure level 1 dcl 5-15 character_string_overlay based char dcl 5-19 character_value_type internal static bit(18) initial packed unaligned dcl 3-30 complex_datum based complex float bin(63) array dcl 5-26 complex_value_type internal static bit(18) initial packed unaligned dcl 3-30 dim builtin function dcl 40 function_type internal static bit(18) initial packed unaligned dcl 3-30 gc_$d 000000 constant entry external dcl 7-21 gc_$d_switch 000000 constant entry external dcl 7-26 gc_$da 000000 constant entry external dcl 7-11 gc_$da_switch 000000 constant entry external dcl 7-16 gc_$display 000000 constant entry external dcl 7-21 gc_$display_append 000000 constant entry external dcl 7-11 gc_$display_append_switch 000000 constant entry external dcl 7-16 gc_$display_name 000000 constant entry external dcl 7-51 gc_$display_name_append 000000 constant entry external dcl 7-41 gc_$display_name_append_switch 000000 constant entry external dcl 7-46 gc_$display_name_switch 000000 constant entry external dcl 7-56 gc_$display_switch 000000 constant entry external dcl 7-26 gc_$dn 000000 constant entry external dcl 7-51 gc_$dn_switch 000000 constant entry external dcl 7-56 gc_$dna 000000 constant entry external dcl 7-41 gc_$dna_switch 000000 constant entry external dcl 7-46 gc_$l 000000 constant entry external dcl 7-31 gc_$l_switch 000000 constant entry external dcl 7-36 gc_$ln 000000 constant entry external dcl 7-61 gc_$ln_switch 000000 constant entry external dcl 7-66 gc_$load 000000 constant entry external dcl 7-31 gc_$load_name 000000 constant entry external dcl 7-61 gc_$load_name_switch 000000 constant entry external dcl 7-66 gc_$load_switch 000000 constant entry external dcl 7-36 gc_$prune_tree 000000 constant entry external dcl 7-71 gc_$return_string 000000 constant entry external dcl 7-6 gc_$rs 000000 constant entry external dcl 7-6 gc_$tree_ptr 000000 constant entry external dcl 7-3 gm_$add_element 000000 constant entry external dcl 6-68 gm_$assign_name 000000 constant entry external dcl 6-60 gm_$carray 000000 constant entry external dcl 6-55 gm_$cclip 000000 constant entry external dcl 6-29 gm_$ccolor 000000 constant entry external dcl 6-35 gm_$cdata 000000 constant entry external dcl 6-45 gm_$clist 000000 constant entry external dcl 6-50 gm_$cmode 000000 constant entry external dcl 6-14 gm_$cpos 000000 constant entry external dcl 6-9 gm_$create_array 000000 constant entry external dcl 6-55 gm_$create_clip 000000 constant entry external dcl 6-29 gm_$create_color 000000 constant entry external dcl 6-35 gm_$create_data 000000 constant entry external dcl 6-45 gm_$create_list 000000 constant entry external dcl 6-50 gm_$create_mode 000000 constant entry external dcl 6-14 gm_$create_position 000000 constant entry external dcl 6-9 gm_$create_rotation 000000 constant entry external dcl 6-24 gm_$create_scale 000000 constant entry external dcl 6-19 gm_$create_text 000000 constant entry external dcl 6-40 gm_$crot 000000 constant entry external dcl 6-24 gm_$cscale 000000 constant entry external dcl 6-19 gm_$ctext 000000 constant entry external dcl 6-40 gm_$ecolor 000000 constant entry external dcl 6-96 gm_$edata 000000 constant entry external dcl 6-129 gm_$elist 000000 constant entry external dcl 6-109 gm_$emap 000000 constant entry external dcl 6-101 gm_$emode 000000 constant entry external dcl 6-91 gm_$epos 000000 constant entry external dcl 6-86 gm_$esymbol 000000 constant entry external dcl 6-119 gm_$esymtab 000000 constant entry external dcl 6-114 gm_$etext 000000 constant entry external dcl 6-124 gm_$examine_color 000000 constant entry external dcl 6-96 gm_$examine_contents 000000 constant entry external dcl 6-106 gm_$examine_data 000000 constant entry external dcl 6-129 gm_$examine_list 000000 constant entry external dcl 6-109 gm_$examine_mapping 000000 constant entry external dcl 6-101 gm_$examine_mode 000000 constant entry external dcl 6-91 gm_$examine_position 000000 constant entry external dcl 6-86 gm_$examine_symbol 000000 constant entry external dcl 6-119 gm_$examine_symtab 000000 constant entry external dcl 6-114 gm_$examine_text 000000 constant entry external dcl 6-124 gm_$examine_type 000000 constant entry external dcl 6-83 gm_$find_structure 000000 constant entry external dcl 6-63 gm_$fstruc 000000 constant entry external dcl 6-63 gm_$get_struc 000000 constant entry external dcl 6-134 gm_$gstruc 000000 constant entry external dcl 6-134 gm_$pstruc 000000 constant entry external dcl 6-139 gm_$put_struc 000000 constant entry external dcl 6-139 gm_$remove_symbol 000000 constant entry external dcl 6-77 gm_$replace_element 000000 constant entry external dcl 6-71 gm_$replace_node 000000 constant entry external dcl 6-74 gm_$replicate 000000 constant entry external dcl 6-80 gm_$save_file 000000 constant entry external dcl 6-144 gm_$segp 000000 constant entry external dcl 6-6 gm_$use_file 000000 constant entry external dcl 6-147 go_$control 000000 constant entry external dcl 8-57 go_$control_switch 000000 constant entry external dcl 8-60 go_$delete 000000 constant entry external dcl 8-21 go_$delete_switch 000000 constant entry external dcl 8-24 go_$dispatch 000000 constant entry external dcl 8-3 go_$dispatch_switch 000000 constant entry external dcl 8-6 go_$display 000000 constant entry external dcl 8-27 go_$display_switch 000000 constant entry external dcl 8-30 go_$erase 000000 constant entry external dcl 8-33 go_$erase_switch 000000 constant entry external dcl 8-36 go_$increment 000000 constant entry external dcl 8-51 go_$increment_switch 000000 constant entry external dcl 8-54 go_$pause 000000 constant entry external dcl 8-45 go_$pause_switch 000000 constant entry external dcl 8-48 go_$replace_element 000000 constant entry external dcl 8-15 go_$replace_element_switch 000000 constant entry external dcl 8-18 go_$reset 000000 constant entry external dcl 8-9 go_$set_immediacy 000000 constant entry external dcl 8-12 go_$synchronize 000000 constant entry external dcl 8-39 go_$synchronize_switch 000000 constant entry external dcl 8-42 go_$what 000000 constant entry external dcl 8-75 go_$what_switch 000000 constant entry external dcl 8-78 go_$where 000000 constant entry external dcl 8-63 go_$where_switch 000000 constant entry external dcl 8-66 go_$which 000000 constant entry external dcl 8-69 go_$which_switch 000000 constant entry external dcl 8-72 graphic_compiler_$d 000000 constant entry external dcl 7-21 graphic_compiler_$d_switch 000000 constant entry external dcl 7-26 graphic_compiler_$da 000000 constant entry external dcl 7-11 graphic_compiler_$da_switch 000000 constant entry external dcl 7-16 graphic_compiler_$display_append_switch 000000 constant entry external dcl 7-16 graphic_compiler_$display_name 000000 constant entry external dcl 7-51 graphic_compiler_$display_name_append 000000 constant entry external dcl 7-41 graphic_compiler_$display_name_append_switch 000000 constant entry external dcl 7-46 graphic_compiler_$display_name_switch 000000 constant entry external dcl 7-56 graphic_compiler_$display_switch 000000 constant entry external dcl 7-26 graphic_compiler_$dn 000000 constant entry external dcl 7-51 graphic_compiler_$dn_switch 000000 constant entry external dcl 7-56 graphic_compiler_$dna 000000 constant entry external dcl 7-41 graphic_compiler_$dna_switch 000000 constant entry external dcl 7-46 graphic_compiler_$l 000000 constant entry external dcl 7-31 graphic_compiler_$l_switch 000000 constant entry external dcl 7-36 graphic_compiler_$ln 000000 constant entry external dcl 7-61 graphic_compiler_$ln_switch 000000 constant entry external dcl 7-66 graphic_compiler_$load 000000 constant entry external dcl 7-31 graphic_compiler_$load_name 000000 constant entry external dcl 7-61 graphic_compiler_$load_name_switch 000000 constant entry external dcl 7-66 graphic_compiler_$load_switch 000000 constant entry external dcl 7-36 graphic_compiler_$prune_tree 000000 constant entry external dcl 7-71 graphic_compiler_$return_string 000000 constant entry external dcl 7-6 graphic_compiler_$rs 000000 constant entry external dcl 7-6 graphic_compiler_$tree_ptr 000000 constant entry external dcl 7-3 graphic_manipulator_$add_element 000000 constant entry external dcl 6-68 graphic_manipulator_$assign_name 000000 constant entry external dcl 6-60 graphic_manipulator_$carray 000000 constant entry external dcl 6-55 graphic_manipulator_$cclip 000000 constant entry external dcl 6-29 graphic_manipulator_$ccolor 000000 constant entry external dcl 6-35 graphic_manipulator_$cdata 000000 constant entry external dcl 6-45 graphic_manipulator_$clist 000000 constant entry external dcl 6-50 graphic_manipulator_$cmode 000000 constant entry external dcl 6-14 graphic_manipulator_$cpos 000000 constant entry external dcl 6-9 graphic_manipulator_$create_clip 000000 constant entry external dcl 6-29 graphic_manipulator_$create_color 000000 constant entry external dcl 6-35 graphic_manipulator_$create_data 000000 constant entry external dcl 6-45 graphic_manipulator_$crot 000000 constant entry external dcl 6-24 graphic_manipulator_$cscale 000000 constant entry external dcl 6-19 graphic_manipulator_$ctext 000000 constant entry external dcl 6-40 graphic_manipulator_$ecolor 000000 constant entry external dcl 6-96 graphic_manipulator_$edata 000000 constant entry external dcl 6-129 graphic_manipulator_$elist 000000 constant entry external dcl 6-109 graphic_manipulator_$emap 000000 constant entry external dcl 6-101 graphic_manipulator_$emode 000000 constant entry external dcl 6-91 graphic_manipulator_$epos 000000 constant entry external dcl 6-86 graphic_manipulator_$esymbol 000000 constant entry external dcl 6-119 graphic_manipulator_$esymtab 000000 constant entry external dcl 6-114 graphic_manipulator_$etext 000000 constant entry external dcl 6-124 graphic_manipulator_$examine_color 000000 constant entry external dcl 6-96 graphic_manipulator_$examine_contents 000000 constant entry external dcl 6-106 graphic_manipulator_$examine_data 000000 constant entry external dcl 6-129 graphic_manipulator_$examine_list 000000 constant entry external dcl 6-109 graphic_manipulator_$examine_mapping 000000 constant entry external dcl 6-101 graphic_manipulator_$examine_mode 000000 constant entry external dcl 6-91 graphic_manipulator_$examine_position 000000 constant entry external dcl 6-86 graphic_manipulator_$examine_symbol 000000 constant entry external dcl 6-119 graphic_manipulator_$examine_symtab 000000 constant entry external dcl 6-114 graphic_manipulator_$examine_text 000000 constant entry external dcl 6-124 graphic_manipulator_$examine_type 000000 constant entry external dcl 6-83 graphic_manipulator_$find_structure 000000 constant entry external dcl 6-63 graphic_manipulator_$fstruc 000000 constant entry external dcl 6-63 graphic_manipulator_$get_struc 000000 constant entry external dcl 6-134 graphic_manipulator_$gstruc 000000 constant entry external dcl 6-134 graphic_manipulator_$init 000000 constant entry external dcl 6-3 graphic_manipulator_$pstruc 000000 constant entry external dcl 6-139 graphic_manipulator_$put_struc 000000 constant entry external dcl 6-139 graphic_manipulator_$remove_symbol 000000 constant entry external dcl 6-77 graphic_manipulator_$replace_element 000000 constant entry external dcl 6-71 graphic_manipulator_$replace_node 000000 constant entry external dcl 6-74 graphic_manipulator_$replicate 000000 constant entry external dcl 6-80 graphic_manipulator_$save_file 000000 constant entry external dcl 6-144 graphic_manipulator_$segp 000000 constant entry external dcl 6-6 graphic_manipulator_$use_file 000000 constant entry external dcl 6-147 graphic_operator_$control 000000 constant entry external dcl 8-57 graphic_operator_$control_switch 000000 constant entry external dcl 8-60 graphic_operator_$delete 000000 constant entry external dcl 8-21 graphic_operator_$delete_switch 000000 constant entry external dcl 8-24 graphic_operator_$dispatch 000000 constant entry external dcl 8-3 graphic_operator_$dispatch_switch 000000 constant entry external dcl 8-6 graphic_operator_$display 000000 constant entry external dcl 8-27 graphic_operator_$display_switch 000000 constant entry external dcl 8-30 graphic_operator_$erase_switch 000000 constant entry external dcl 8-36 graphic_operator_$increment 000000 constant entry external dcl 8-51 graphic_operator_$increment_switch 000000 constant entry external dcl 8-54 graphic_operator_$pause 000000 constant entry external dcl 8-45 graphic_operator_$pause_switch 000000 constant entry external dcl 8-48 graphic_operator_$replace_element 000000 constant entry external dcl 8-15 graphic_operator_$replace_element_switch 000000 constant entry external dcl 8-18 graphic_operator_$reset 000000 constant entry external dcl 8-9 graphic_operator_$set_immediacy 000000 constant entry external dcl 8-12 graphic_operator_$synchronize 000000 constant entry external dcl 8-39 graphic_operator_$synchronize_switch 000000 constant entry external dcl 8-42 graphic_operator_$what 000000 constant entry external dcl 8-75 graphic_operator_$what_switch 000000 constant entry external dcl 8-78 graphic_operator_$where 000000 constant entry external dcl 8-63 graphic_operator_$where_switch 000000 constant entry external dcl 8-66 graphic_operator_$which 000000 constant entry external dcl 8-69 graphic_operator_$which_switch 000000 constant entry external dcl 8-72 group_type internal static bit(18) initial packed unaligned dcl 3-30 label_type internal static bit(18) initial packed unaligned dcl 3-30 left automatic pointer dcl 24 lexed_function_type internal static bit(18) initial packed unaligned dcl 3-30 list_value_type internal static bit(18) initial packed unaligned dcl 3-30 max_parse_stack_depth internal static fixed bin(17,0) initial dcl 2-98 mode_value automatic fixed bin(17,0) dcl 24 not_integer_mask internal static bit(18) initial packed unaligned dcl 3-30 not_zero_or_one_mask internal static bit(18) initial packed unaligned dcl 3-30 null builtin function dcl 40 numeric_value_type internal static bit(18) initial packed unaligned dcl 3-30 operator_type internal static bit(18) initial packed unaligned dcl 3-30 output_buffer based char packed unaligned dcl 2-94 shared_variable_type internal static bit(18) initial packed unaligned dcl 3-30 symbol_type internal static bit(18) initial packed unaligned dcl 3-30 value_type internal static bit(18) initial packed unaligned dcl 3-30 zero_or_one_value_type internal static bit(18) initial packed unaligned dcl 3-30 NAMES DECLARED BY EXPLICIT CONTEXT. apl_graphics_ 000054 constant entry external dcl 11 apl_push_stack_ 001207 constant entry internal dcl 10-4 ref 208 create_mode 000752 constant entry internal dcl 263 ref 100 105 110 115 create_position 000724 constant entry internal dcl 253 ref 75 80 85 90 95 create_structure 001055 constant entry internal dcl 315 ref 134 139 domain_error_left 000665 constant label dcl 227 ref 174 177 domain_error_right 000670 constant label dcl 230 ref 182 185 345 348 gfarray 000337 constant entry external dcl 136 gfblinking 000203 constant entry external dcl 107 gfdisplay 000423 constant entry external dcl 153 gfdisplayappend 000446 constant entry external dcl 160 gferase 000403 constant entry external dcl 147 gfinit 000363 constant entry external dcl 141 gfintensity 000170 constant entry external dcl 102 gflinetype 000155 constant entry external dcl 97 gflist 000313 constant entry external dcl 131 gfpoint 000114 constant entry external dcl 82 gfrotate 000262 constant entry external dcl 124 gfscale 000231 constant entry external dcl 117 gfsensitivity 000216 constant entry external dcl 112 gfsetpoint 000101 constant entry external dcl 77 gfsetposition 000066 constant entry external dcl 72 gfshift 000127 constant entry external dcl 87 gftext 000471 constant entry external dcl 169 gfvector 000142 constant entry external dcl 92 length_error_left 000700 constant label dcl 235 ref 191 length_error_right 000702 constant label dcl 238 set ref 274 289 309 one_node 001037 constant entry internal dcl 301 ref 156 163 rank_error_left 000712 constant label dcl 243 ref 188 rank_error_right 000714 constant label dcl 246 ref 271 286 306 323 return_node 000573 constant label dcl 199 ref 122 129 195 260 278 336 return_nothing 000657 constant label dcl 221 ref 145 151 158 165 three_float 001007 constant entry internal dcl 281 ref 120 127 258 validate_right 001171 constant entry internal dcl 340 ref 269 284 304 321 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1712 1762 1322 1722 Length 2412 1322 50 414 367 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME apl_graphics_ 208 external procedure is an external procedure. create_position internal procedure shares stack frame of external procedure apl_graphics_. create_mode internal procedure shares stack frame of external procedure apl_graphics_. three_float internal procedure shares stack frame of external procedure apl_graphics_. one_node internal procedure shares stack frame of external procedure apl_graphics_. create_structure internal procedure shares stack frame of external procedure apl_graphics_. begin block on line 328 96 begin block uses auto adjustable storage. validate_right internal procedure shares stack frame of external procedure apl_graphics_. apl_push_stack_ internal procedure shares stack frame of external procedure apl_graphics_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME apl_graphics_ 000100 node apl_graphics_ 000101 x apl_graphics_ 000102 y apl_graphics_ 000103 z apl_graphics_ 000104 code apl_graphics_ 000105 data_elements apl_graphics_ 000106 ialign apl_graphics_ 000110 left_vb apl_graphics_ 000112 n_words apl_graphics_ 000114 result_vb apl_graphics_ 000116 result_data apl_graphics_ 000120 right apl_graphics_ 000122 right_vb apl_graphics_ 000124 ws_info_ptr apl_graphics_ 000126 number_of_dimensions apl_graphics_ 000144 mode_value create_mode 000204 block_ptr apl_push_stack_ 000206 num_words apl_push_stack_ begin block on line 328 000100 node_array begin block on line 328 THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 enter_begin_block leave_begin_block call_ent_var_desc call_ext_out_desc call_ext_out return_mac fl2_to_fx1 alloc_auto_adj bound_ck_signal ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. apl_get_value_stack_ gm_$init graphic_compiler_$display graphic_compiler_$display_append graphic_manipulator_$create_array 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_operator_$erase THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. apl_error_table_$domain apl_error_table_$length apl_error_table_$rank apl_static_$ws_info_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 7 000046 11 000053 72 000062 75 000074 77 000076 80 000107 82 000111 85 000122 87 000124 90 000135 92 000137 95 000150 97 000152 100 000163 102 000165 105 000176 107 000200 110 000211 112 000213 115 000224 117 000226 120 000237 121 000240 122 000257 124 000260 127 000270 128 000271 129 000310 131 000311 134 000321 136 000334 139 000345 141 000360 144 000371 145 000400 147 000401 150 000411 151 000420 153 000421 156 000431 157 000432 158 000443 160 000444 163 000454 164 000455 165 000466 169 000467 172 000477 174 000502 177 000505 180 000510 182 000513 185 000516 188 000521 191 000527 193 000530 194 000534 195 000572 199 000573 202 000604 205 000612 206 000613 207 000615 208 000624 209 000626 210 000631 211 000634 212 000636 213 000642 216 000650 217 000651 219 000654 221 000657 225 000664 227 000665 230 000670 232 000674 233 000677 235 000700 238 000702 240 000706 241 000711 243 000712 246 000714 248 000720 249 000723 253 000724 258 000726 259 000727 260 000751 263 000752 269 000754 271 000755 274 000764 276 000765 277 000770 278 001006 281 001007 284 001010 286 001011 289 001015 292 001022 294 001027 296 001031 297 001033 298 001036 301 001037 304 001040 306 001041 309 001050 311 001051 312 001054 315 001055 321 001057 323 001060 326 001064 328 001066 330 001071 333 001076 332 001106 333 001135 334 001167 336 001170 340 001171 343 001172 345 001176 348 001201 351 001204 352 001206 10 4 001207 10 35 001211 10 37 001213 10 40 001220 10 43 001235 10 44 001240 10 45 001247 ----------------------------------------------------------- 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