COMPILATION LISTING OF SEGMENT apl_clear_workspace_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 11/29/83 1557.9 mst Tue 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 apl_clear_workspace_: 11 procedure (); 12 13 /* 14* * routine to initialize the APL workspace on a )CLEAR command or on entry to the APL subsystem. 15* * 16* * it assumes that the apl_ws_info structure and the value stack have already been created. 17* * 18* * 19* * written 73.7.31 by DAM 20* * modified 8/25/73 by DAM for version 3 workspace format 21* * modified July 1974 by GGB to change names of some subroutines called and to call ios_ slightly 22* * differently to get width 23* * Modified 761005 by PG to use get_line_length_, and to initialize input prompts. 24* Modified 790914 by PG to allocate output buffer. 25* Modified 791013 by PG to initialize ws_info.tab_width. 26* */ 27 28 29 /* automatic */ 30 31 declare 1 initial_latent_expression 32 aligned, /* value bead for '', used to initialize QuadLX */ 33 2 type bit (18) unaligned, /* I can't use like value_bead because I'm programming in this */ 34 2 size bit (18) unaligned, /* crock language where automatic structures can't have */ 35 2 reference_count fixed bin (29), /* refer options in them. */ 36 2 total_data_elements 37 fixed bin (21), 38 2 rhorho fixed bin, 39 2 data_pointer unaligned pointer, 40 2 rho (1) fixed bin (21); 41 42 declare code fixed bin (35); 43 44 /* builtins */ 45 46 declare (addr, addrel, null, size, string) 47 builtin; 48 49 /* entries */ 50 51 declare apl_clear_storage_ entry (), 52 apl_copy_value_ entry (pointer unaligned, pointer unaligned), 53 get_group_id_ entry () returns (char (32)), 54 get_line_length_$switch 55 entry (ptr, fixed bin (35)) returns (fixed bin), 56 iox_$control entry (ptr, char (*), ptr, fixed bin (35)), 57 iox_$modes entry (ptr, char (*), char (*), fixed bin (35)); 58 59 /* external static */ 60 61 declare ( 62 apl_static_$apl_output 63 ptr, 64 apl_static_$immediate_input_prompt 65 char (32) varying, 66 sys_info$max_seg_size 67 fixed bin (18) 68 ) external static; 69 70 /* program */ 71 72 call apl_clear_storage_; /* clear the heap and reset the value stack */ 73 ws_info.digits = 10; 74 75 ws_info.width = get_line_length_$switch (apl_static_$apl_output, code); 76 if code ^= 0 77 then do; 78 ws_info.width = 132; /* make this default */ 79 call iox_$modes (apl_static_$apl_output, "ll132", "", code); 80 end; 81 82 ws_info.index_origin = 1; 83 ws_info.float_index_origin = 1; 84 ws_info.random_link = 16807; /* 7**5, sounds like a good random link to use for now */ 85 ws_info.fuzz = 1e-13; /* defined in APL to be 1e-13 */ 86 ws_info.integer_fuzz = 1.110223e-16; /* 2**-53, sounds like a good integer fuzz */ 87 ws_info.number_of_symbols = 0; 88 ws_info.maximum_value_stack_size = sys_info$max_seg_size - 2; 89 /* the -2 is for pl1_operators_ bugs I guess */ 90 ws_info.last_error_code = 0; 91 ws_info.lock = ""; 92 ws_info.wsid = "clear ws"; 93 ws_info.user_number = 100; /* default user number as in TSO-APL */ 94 string (ws_info.interrupt_info) = ""b; 95 ws_info.user_name = get_group_id_ (); 96 ws_info.immediate_input_prompt = apl_static_$immediate_input_prompt; 97 ws_info.evaluated_input_prompt = QQuad || QColon || QNewLine || (6)" "; 98 ws_info.character_input_prompt = ""; 99 100 call iox_$control (apl_static_$apl_output, "get_tab_width", addr (ws_info.tab_width), code); 101 if code ^= 0 /* no apl dim */ 102 then ws_info.tab_width = 10; /* default */ 103 104 105 /* Allocate and initialize symbol table. */ 106 107 ws_info.symbol_table_ptr = addrel (ws_info_ptr, size (ws_info)); 108 symbol_table.table_size = initial_size; 109 symbol_table.hash_bucket_ptr (*) = null; 110 111 /* Allocate output buffer */ 112 113 ws_info.output_buffer_ptr = addrel (ws_info.symbol_table_ptr, size (symbol_table)); 114 ws_info.output_buffer_len = 900; /* must be < 1000 to avoid kludge in apl_dim_write_ */ 115 /* ...so read_back_output will work */ 116 ws_info.output_buffer_pos = 1; 117 ws_info.output_buffer_ll = 0; 118 119 /* Store pointer to first parse frame. */ 120 121 ws_info.current_parse_frame_ptr = addrel (ws_info.output_buffer_ptr, size (output_buffer)); 122 123 /* create '' as the initial latent expression */ 124 125 string (initial_latent_expression.type) = character_value_type; 126 initial_latent_expression.rhorho = 1; 127 initial_latent_expression.total_data_elements = 0; 128 initial_latent_expression.data_pointer = null; /* no one should ever reference through this */ 129 initial_latent_expression.rho (1) = 0; 130 call apl_copy_value_ (addr (initial_latent_expression), ws_info.latent_expression); 131 return; 132 133 /* include files */ 134 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 ---------------------------------- */ 135 2 1 /* ====== BEGIN INCLUDE SEGMENT apl_bead_format.incl.pl1 ================================== */ 2 2 2 3 declare 1 general_bead aligned based, /* The Venerable Bead */ 2 4 2 type unaligned, 2 5 3 bead_type unaligned, 2 6 4 operator bit (1), /* ON if operator bead */ 2 7 4 symbol bit (1), /* ON if symbol bead */ 2 8 4 value bit (1), /* ON if value bead */ 2 9 4 function bit (1), /* ON if function bead */ 2 10 4 group bit (1), /* ON if group bead */ 2 11 4 label bit (1), /* ON if label bead */ 2 12 4 shared_variable bit (1), /* ON if shared variable bead */ 2 13 4 lexed_function bit (1), /* ON if lexed function bead */ 2 14 3 data_type unaligned, 2 15 4 list_value bit (1), /* ON if a list value bead */ 2 16 4 character_value bit (1), /* ON if a character value bead */ 2 17 4 numeric_value bit (1), /* ON if a numeric value bead */ 2 18 4 integral_value bit (1), /* ON if an integral value bead */ 2 19 4 zero_or_one_value bit (1), /* ON if a boolean value bead */ 2 20 4 complex_value bit (1), /* ON if a complex, numeric value bead */ 2 21 3 unused_bits bit (4) unaligned, /* pad to 18 bits (for future use) */ 2 22 2 size bit (18) unaligned, /* Number of words this bead occupies 2 23* (used by bead storage manager) */ 2 24 2 reference_count fixed binary (29); /* Number of pointers which point 2 25* to this bead (used by bead manager) */ 2 26 2 27 2 28 /* constant strings for initing type field in various beads */ 2 29 2 30 declare ( 2 31 operator_type init("100000000000000000"b), 2 32 symbol_type init("010000000000000000"b), 2 33 value_type init("001000000000000000"b), 2 34 function_type init("000100000000000000"b), 2 35 group_type init("000010000000000000"b), 2 36 label_type init("001001000011000000"b), 2 37 shared_variable_type init("001000100000000000"b), 2 38 lexed_function_type init("000000010000000000"b), 2 39 2 40 list_value_type init("000000001000000000"b), 2 41 character_value_type init("001000000100000000"b), 2 42 numeric_value_type init("001000000010000000"b), 2 43 integral_value_type init("001000000011000000"b), 2 44 zero_or_one_value_type init("001000000011100000"b), 2 45 complex_value_type init("001000000000010000"b), 2 46 2 47 not_integer_mask init("111111111110011111"b), /* to clear integral, zero_or_one bits */ 2 48 not_zero_or_one_mask init("111111111111011111"b) /* to clear zero_or_one bit */ 2 49 ) bit(18) internal static; 2 50 2 51 /* ------ END INCLUDE SEGMENT apl_bead_format.incl.pl1 ---------------------------------- */ 136 3 1 /* BEGIN INCLUDE FILE apl_symbol_table.incl.pl1 3 2* 3 3* initially written 20 June 1973 by Dan Bricklin */ 3 4 3 5 declare 3 6 initial_size fixed bin int static init(17), /* initial size of hash table */ 3 7 3 8 1 symbol_table aligned based(ws_info.symbol_table_ptr), 3 9 2 table_size fixed bin, /* how many buckets */ 3 10 2 hash_bucket_ptr(initial_size refer(table_size)) ptr unaligned; /* the buckets */ 3 11 3 12 /* END INCLUDE FILE apl_symbol_table.incl.pl1 */ 137 4 1 /* ====== BEGIN INCLUDE SEGMENT apl_ws_info.incl.pl1 ====================================== */ 4 2 4 3 /* This structure contains all of the global data (or pointers to it) for the APL subsystem */ 4 4 4 5 /* automatic */ 4 6 4 7 declare ws_info_ptr ptr initial (apl_static_$ws_info_ptr.static_ws_info_ptr); 4 8 4 9 /* external static */ 4 10 4 11 declare 1 apl_static_$ws_info_ptr external static aligned structure, 4 12 2 static_ws_info_ptr unaligned pointer; 4 13 4 14 /* based */ 4 15 4 16 declare 1 ws_info aligned based (ws_info_ptr), 4 17 2 version_number fixed bin, /* version of this structure (3) */ 4 18 2 switches unaligned, /* mainly ws parameters */ 4 19 3 long_error_mode bit, /* if 1, long Multics format, else APL/360 format */ 4 20 3 debug_mode bit, /* if 1, system error causes escape to command level */ 4 21 3 canonicalize_mode bit, /* if 1, the editor canonicalizes user input */ 4 22 3 restrict_exec_command bit, /* if 1, the )EXEC command may not be used */ 4 23 3 restrict_debug_command bit, /* if 1, the )DEBUG command may not be used */ 4 24 3 restrict_external_functions 4 25 bit, /* if 1, the )ZFN, )MFN, and )DFN commands may not be used */ 4 26 3 restrict_load bit, /* if 1, the )LOAD and )COPY commands may not be used */ 4 27 3 restrict_load_directory bit, /* if 1, no directory allowed in )LOAD or )COPY pathnames */ 4 28 3 restrict_save bit, /* if 1, the )SAVE command may not be used */ 4 29 3 restrict_save_directory bit, /* if 1, no directory allowed in )SAVE pathnames */ 4 30 3 off_hold bit, /* if 1, )OFF HOLD was typed, else just )OFF */ 4 31 3 transparent_to_signals bit, /* if 1, any conditions slip right past APL */ 4 32 3 meter_mode bit, /* if 1, metering may be done, else speed is all-important */ 4 33 3 restrict_msg_command bit, /* if 1, the )MSG command may not be used. */ 4 34 3 compatibility_check_mode 4 35 bit, /* if 1, check for incompatible operators */ 4 36 3 no_quit_handler bit, /* if 1, do not trap QUITs. */ 4 37 /* remaining 20 bits not presently used */ 4 38 4 39 2 values, /* attributes of the workspace */ 4 40 3 digits fixed bin, /* number of digits of precision printed on output */ 4 41 3 width fixed bin, /* line length for formatted output */ 4 42 3 index_origin fixed bin, /* the index origin (0 or 1) */ 4 43 3 random_link fixed bin(35), /* seed for random number generator */ 4 44 3 fuzz float, /* comparison tolerance (relative fuzz) */ 4 45 3 float_index_origin float, /* the index origin in floating point */ 4 46 3 number_of_symbols fixed bin, /* the number of symbol_beads currently in existence */ 4 47 3 maximum_value_stack_size 4 48 fixed bin (18), /* maximum number of words in one segment of value stack */ 4 49 4 50 2 pointers, /* pointers to various internal tables */ 4 51 3 symbol_table_ptr unaligned pointer, /* -> symbol_table (apl_symbol_table.incl.pl1) */ 4 52 3 current_parse_frame_ptr unaligned pointer, /* -> topmost parse frame */ 4 53 3 value_stack_ptr unaligned pointer, /* -> next free location on value stack */ 4 54 3 alloc_free_info_ptr unaligned pointer, /* -> apl_storage_mngr_ data (apl_storage_system_data.incl.pl1) */ 4 55 4 56 2 time_invoked fixed bin(71), /* clock time that APL was entered */ 4 57 2 integer_fuzz float, /* the absolute fuzz used in checking for integers */ 4 58 2 user_number fixed bin(35), /* number under which the user is signed on */ 4 59 2 latent_expression unaligned pointer, /* -> value_bead for QuadLX */ 4 60 2 lock char(32), /* the lock currently set on this workspace (password) */ 4 61 2 wsid char(100), /* the workspace identification: name, number name, or clear ws */ 4 62 2 last_error_code fixed bin(35), /* last code passed to apl_error_ */ 4 63 2 signoff_lock character (32), 4 64 4 65 2 interrupt_info aligned, /* bits used by apl_interpreter_ to tell when to abort */ 4 66 3 dont_interrupt_parse bit, /* if 1, don't do a dirty stop because the parser is running */ 4 67 3 dont_interrupt_operator bit, /* if 1, don't do a dirty stop because an operator is running */ 4 68 3 dont_interrupt_storage_manager /* if 1, don't stop because apl_storage_mngr_ is */ 4 69 bit, /* munging his tables */ 4 70 3 unused_interrupt_bit bit, /* not presently used */ 4 71 3 dont_interrupt_command bit, 4 72 3 can_be_interrupted bit, /* if 1, OK to do a clean stop (we are between lines, reading) */ 4 73 3 clean_interrupt_pending bit, /* interrupt occured, break cleanly (between lines) */ 4 74 3 dirty_interrupt_pending bit, /* interrupt occured, break as soon as not inhibited */ 4 75 4 76 2 user_name char (32), /* process group id of user */ 4 77 2 immediate_input_prompt char (32) varying, /* normal input */ 4 78 2 evaluated_input_prompt char (32) varying, /* quad input */ 4 79 2 character_input_prompt char (32) varying, /* quad-quote input */ 4 80 2 vcpu_time aligned, 4 81 3 total fixed bin (71), 4 82 3 setup fixed bin (71), 4 83 3 parse fixed bin (71), 4 84 3 lex fixed bin (71), 4 85 3 operator fixed bin (71), 4 86 3 storage_manager fixed bin (71), 4 87 2 output_info aligned, /* data pertaining to output buffer */ 4 88 3 output_buffer_ptr unal ptr, /* ptr to output buffer */ 4 89 3 output_buffer_len fixed bin (21), /* length (bytes) of output buffer */ 4 90 3 output_buffer_pos fixed bin (21), /* index of next byte to write in */ 4 91 3 output_buffer_ll fixed bin (21), /* print positions used up so far */ 4 92 2 tab_width fixed bin (21); /* number of columns a tabs moves cursor */ 4 93 4 94 declare output_buffer char (ws_info.output_buffer_len) based (ws_info.output_buffer_ptr); 4 95 4 96 /* internal static */ 4 97 4 98 declare max_parse_stack_depth fixed bin int static init(64536); 4 99 4 100 /* ------ END INCLUDE SEGMENT apl_ws_info.incl.pl1 -------------------------------------- */ 138 5 1 /* ====== BEGIN INCLUDE SEGMENT apl_characters.incl.pl1 =================================== */ 5 2 5 3 /* 5 4* * This include file contains all the characters in the APL character set, 5 5* * declared char(1) [Instead of fixed bin as in the apl_character_codes.incl.pl1 file] 5 6* * 5 7* Modified 780913 by PG to add CentSign 5 8* Modified 790319 by PG to add CommaHyphen 5 9* */ 5 10 5 11 declare ( 5 12 QBell init(""), 5 13 QBackSpace init(""), 5 14 QTab init(" "), 5 15 QNewLine init(" 5 16 "), 5 17 QSpace init(" "), 5 18 QExclamation init("!"), 5 19 QDollar init("$"), 5 20 QApostrophe init("'"), 5 21 QLeftParen init("("), 5 22 QRightParen init(")"), 5 23 QStar init("*"), 5 24 QPlus init("+"), 5 25 QComma init(","), 5 26 QMinus init("-"), 5 27 QPeriod init("."), 5 28 QSlash init("/"), 5 29 QZero init("0"), 5 30 QOne init("1"), 5 31 QTwo init("2"), 5 32 QThree init("3"), 5 33 QFour init("4"), 5 34 QFive init("5"), 5 35 QSix init("6"), 5 36 QSeven init("7"), 5 37 QEight init("8"), 5 38 QNine init("9"), 5 39 QColon init(":"), 5 40 QSemiColon init(";"), 5 41 QLessThan init("<"), 5 42 QEqual init("="), 5 43 QGreaterThan init(">"), 5 44 QQuestion init("?"), 5 45 QLetterA_ init("A"), 5 46 QLetterB_ init("B"), 5 47 QLetterC_ init("C"), 5 48 QLetterD_ init("D"), 5 49 QLetterE_ init("E"), 5 50 QLetterF_ init("F"), 5 51 QLetterG_ init("G"), 5 52 QLetterH_ init("H"), 5 53 QLetterI_ init("I"), 5 54 QLetterJ_ init("J"), 5 55 QLetterK_ init("K"), 5 56 QLetterL_ init("L"), 5 57 QLetterM_ init("M"), 5 58 QLetterN_ init("N"), 5 59 QLetterO_ init("O"), 5 60 QLetterP_ init("P"), 5 61 QLetterQ_ init("Q"), 5 62 QLetterR_ init("R"), 5 63 QLetterS_ init("S"), 5 64 QLetterT_ init("T"), 5 65 QLetterU_ init("U"), 5 66 QLetterV_ init("V"), 5 67 QLetterW_ init("W"), 5 68 QLetterX_ init("X"), 5 69 QLetterY_ init("Y"), 5 70 QLetterZ_ init("Z"), 5 71 QLeftBracket init("["), 5 72 QBackSlash init("\"), 5 73 QRightBracket init("]"), 5 74 QUnderLine init("_"), 5 75 QLetterA init("a"), 5 76 QLetterB init("b"), 5 77 QLetterC init("c"), 5 78 QLetterD init("d"), 5 79 QLetterE init("e"), 5 80 QLetterF init("f"), 5 81 QLetterG init("g"), 5 82 QLetterH init("h"), 5 83 QLetterI init("i"), 5 84 QLetterJ init("j"), 5 85 QLetterK init("k"), 5 86 QLetterL init("l"), 5 87 QLetterM init("m"), 5 88 QLetterN init("n"), 5 89 QLetterO init("o"), 5 90 QLetterP init("p"), 5 91 QLetterQ init("q"), 5 92 QLetterR init("r"), 5 93 QLetterS init("s"), 5 94 QLetterT init("t"), 5 95 QLetterU init("u"), 5 96 QLetterV init("v"), 5 97 QLetterW init("w"), 5 98 QLetterX init("x"), 5 99 QLetterY init("y"), 5 100 QLetterZ init("z"), 5 101 QLeftBrace init("{"), 5 102 QVerticalBar init("|"), 5 103 QRightBrace init("}"), 5 104 QTilde init("~"), 5 105 QLessOrEqual init(""), 5 106 QGreaterOrEqual init(""), 5 107 QNotEqual init(""), 5 108 QOrSign init(""), 5 109 QAndSign init(""), 5 110 QDivision init(""), 5 111 QEpsilon init(""), 5 112 QUpArrow init(""), 5 113 QDownArrow init(""), 5 114 QCircle init(""), 5 115 QCeiling init(""), 5 116 QFloor init(""), 5 117 QDelta init(""), 5 118 QSmallCircle init(""), 5 119 QQuad init(""), 5 120 QCap init(""), 5 121 QDeCode init(""), 5 122 QEnCode init(""), 5 123 QLeftLump init(""), 5 124 QRightLump init(""), 5 125 QCup init(""), 5 126 QNorSign init(""), 5 127 QNandSign init(""), 5 128 QCircleHyphen init(""), 5 129 QSlashHyphen init(""), 5 130 QDelTilde init(""), 5 131 QCircleStar init(""), 5 132 QCircleBar init(""), 5 133 QCircleBackSlash init(""), 5 134 QCircleSlash init(""), 5 135 QGradeDown init(""), 5 136 QGradeUp init(""), 5 137 QLamp init(""), 5 138 QQuadQuote init(""), 5 139 QIBeam init(""), 5 140 QBackSlashHyphen init(""), 5 141 QDomino init(""), 5 142 QDiaresis init(""), 5 143 QOmega init(""), 5 144 QIota init(""), 5 145 QRho init(""), 5 146 QTimes init(""), 5 147 QAlpha init(""), 5 148 QUpperMinus init(""), 5 149 QDel init(""), 5 150 QLeftArrow init(""), 5 151 QRightArrow init(""), 5 152 QDiamond init(""), 5 153 QZero_ init(""), 5 154 QOne_ init(""), 5 155 QTwo_ init(""), 5 156 QThree_ init(""), 5 157 QFour_ init(""), 5 158 QFive_ init(""), 5 159 QSix_ init(""), 5 160 QSeven_ init(""), 5 161 QEight_ init(""), 5 162 QNine_ init(""), 5 163 QDelta_ init(""), 5 164 QMarkError init(""), 5 165 QExecuteSign init(""), 5 166 QFormatSign init(""), 5 167 QLeftTack init(""), 5 168 QRightTack init(""), 5 169 QLineFeed init(""), 5 170 QConditionalNewLine init(""), 5 171 QCentSign init(""), 5 172 QCommaHyphen init("") 5 173 ) char(1) internal static options (constant); 5 174 5 175 /* ------ END INCLUDE SEGMENT apl_characters.incl.pl1 ----------------------------------- */ 139 140 end /* apl_clear_workspace_ */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/29/83 1346.2 apl_clear_workspace_.pl1 >special_ldd>on>apl.1129>apl_clear_workspace_.pl1 135 1 03/27/82 0429.8 apl_number_data.incl.pl1 >ldd>include>apl_number_data.incl.pl1 136 2 03/27/82 0438.5 apl_bead_format.incl.pl1 >ldd>include>apl_bead_format.incl.pl1 137 3 03/27/82 0439.2 apl_symbol_table.incl.pl1 >ldd>include>apl_symbol_table.incl.pl1 138 4 03/27/82 0439.2 apl_ws_info.incl.pl1 >ldd>include>apl_ws_info.incl.pl1 139 5 03/27/82 0438.6 apl_characters.incl.pl1 >ldd>include>apl_characters.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. QColon constant char(1) initial unaligned dcl 5-11 ref 97 QNewLine constant char(1) initial unaligned dcl 5-11 ref 97 QQuad constant char(1) initial unaligned dcl 5-11 ref 97 addr builtin function dcl 46 ref 100 100 130 130 addrel builtin function dcl 46 ref 107 113 121 apl_clear_storage_ 000010 constant entry external dcl 51 ref 72 apl_copy_value_ 000012 constant entry external dcl 51 ref 130 apl_static_$apl_output 000024 external static pointer dcl 61 set ref 75* 79* 100* apl_static_$immediate_input_prompt 000026 external static varying char(32) dcl 61 ref 96 apl_static_$ws_info_ptr 000032 external static structure level 1 dcl 4-11 character_input_prompt 142 based varying char(32) level 2 dcl 4-16 set ref 98* character_value_type constant bit(18) initial unaligned dcl 2-30 ref 125 code 000106 automatic fixed bin(35,0) dcl 42 set ref 75* 76 79* 100* 101 current_parse_frame_ptr 15 based pointer level 3 packed unaligned dcl 4-16 set ref 121* data_pointer 4 000100 automatic pointer level 2 packed unaligned dcl 31 set ref 128* digits 2 based fixed bin(17,0) level 3 dcl 4-16 set ref 73* evaluated_input_prompt 131 based varying char(32) level 2 dcl 4-16 set ref 97* float_index_origin 10 based float bin(63) level 3 dcl 4-16 set ref 83* fuzz 6 based float bin(63) level 3 dcl 4-16 set ref 85* get_group_id_ 000014 constant entry external dcl 51 ref 95 get_line_length_$switch 000016 constant entry external dcl 51 ref 75 hash_bucket_ptr 1 based pointer array level 2 packed unaligned dcl 3-5 set ref 109* immediate_input_prompt 120 based varying char(32) level 2 dcl 4-16 set ref 96* index_origin 4 based fixed bin(17,0) level 3 dcl 4-16 set ref 82* initial_latent_expression 000100 automatic structure level 1 dcl 31 set ref 130 130 initial_size constant fixed bin(17,0) initial dcl 3-5 ref 108 113 integer_fuzz 22 based float bin(63) level 2 dcl 4-16 set ref 86* interrupt_info 100 based structure level 2 dcl 4-16 set ref 94* iox_$control 000020 constant entry external dcl 51 ref 100 iox_$modes 000022 constant entry external dcl 51 ref 79 last_error_code 67 based fixed bin(35,0) level 2 dcl 4-16 set ref 90* latent_expression 25 based pointer level 2 packed unaligned dcl 4-16 set ref 130* lock 26 based char(32) level 2 dcl 4-16 set ref 91* maximum_value_stack_size 13 based fixed bin(18,0) level 3 dcl 4-16 set ref 88* null builtin function dcl 46 ref 109 128 number_of_symbols 12 based fixed bin(17,0) level 3 dcl 4-16 set ref 87* output_buffer based char unaligned dcl 4-94 ref 121 output_buffer_len 171 based fixed bin(21,0) level 3 dcl 4-16 set ref 114* 121 121 output_buffer_ll 173 based fixed bin(21,0) level 3 dcl 4-16 set ref 117* output_buffer_pos 172 based fixed bin(21,0) level 3 dcl 4-16 set ref 116* output_buffer_ptr 170 based pointer level 3 packed unaligned dcl 4-16 set ref 113* 121 121 output_info 170 based structure level 2 dcl 4-16 pointers 14 based structure level 2 dcl 4-16 random_link 5 based fixed bin(35,0) level 3 dcl 4-16 set ref 84* rho 5 000100 automatic fixed bin(21,0) array level 2 dcl 31 set ref 129* rhorho 3 000100 automatic fixed bin(17,0) level 2 dcl 31 set ref 126* size builtin function dcl 46 ref 107 113 121 static_ws_info_ptr 000032 external static pointer level 2 packed unaligned dcl 4-11 ref 4-7 string builtin function dcl 46 set ref 94* 125* symbol_table based structure level 1 dcl 3-5 set ref 113 symbol_table_ptr 14 based pointer level 3 packed unaligned dcl 4-16 set ref 107* 108 109 113 113 sys_info$max_seg_size 000030 external static fixed bin(18,0) dcl 61 ref 88 tab_width 174 based fixed bin(21,0) level 2 dcl 4-16 set ref 100 100 101* table_size based fixed bin(17,0) level 2 dcl 3-5 set ref 108* 109 total_data_elements 2 000100 automatic fixed bin(21,0) level 2 dcl 31 set ref 127* type 000100 automatic bit(18) level 2 packed unaligned dcl 31 set ref 125* user_name 110 based char(32) level 2 dcl 4-16 set ref 95* user_number 24 based fixed bin(35,0) level 2 dcl 4-16 set ref 93* values 2 based structure level 2 dcl 4-16 width 3 based fixed bin(17,0) level 3 dcl 4-16 set ref 75* 78* ws_info based structure level 1 dcl 4-16 set ref 107 ws_info_ptr 000110 automatic pointer initial dcl 4-7 set ref 73 75 78 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 100 100 101 107 107 107 108 109 113 113 113 114 116 117 121 121 121 121 121 130 4-7* wsid 36 based char(100) level 2 dcl 4-16 set ref 92* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Binary internal static bit(1) initial dcl 1-16 NumberSize internal static fixed bin(4,0) initial dcl 1-25 QAlpha internal static char(1) initial unaligned dcl 5-11 QAndSign internal static char(1) initial unaligned dcl 5-11 QApostrophe internal static char(1) initial unaligned dcl 5-11 QBackSlash internal static char(1) initial unaligned dcl 5-11 QBackSlashHyphen internal static char(1) initial unaligned dcl 5-11 QBackSpace internal static char(1) initial unaligned dcl 5-11 QBell internal static char(1) initial unaligned dcl 5-11 QCap internal static char(1) initial unaligned dcl 5-11 QCeiling internal static char(1) initial unaligned dcl 5-11 QCentSign internal static char(1) initial unaligned dcl 5-11 QCircle internal static char(1) initial unaligned dcl 5-11 QCircleBackSlash internal static char(1) initial unaligned dcl 5-11 QCircleBar internal static char(1) initial unaligned dcl 5-11 QCircleHyphen internal static char(1) initial unaligned dcl 5-11 QCircleSlash internal static char(1) initial unaligned dcl 5-11 QCircleStar internal static char(1) initial unaligned dcl 5-11 QComma internal static char(1) initial unaligned dcl 5-11 QCommaHyphen internal static char(1) initial unaligned dcl 5-11 QConditionalNewLine internal static char(1) initial unaligned dcl 5-11 QCup internal static char(1) initial unaligned dcl 5-11 QDeCode internal static char(1) initial unaligned dcl 5-11 QDel internal static char(1) initial unaligned dcl 5-11 QDelTilde internal static char(1) initial unaligned dcl 5-11 QDelta internal static char(1) initial unaligned dcl 5-11 QDelta_ internal static char(1) initial unaligned dcl 5-11 QDiamond internal static char(1) initial unaligned dcl 5-11 QDiaresis internal static char(1) initial unaligned dcl 5-11 QDivision internal static char(1) initial unaligned dcl 5-11 QDollar internal static char(1) initial unaligned dcl 5-11 QDomino internal static char(1) initial unaligned dcl 5-11 QDownArrow internal static char(1) initial unaligned dcl 5-11 QEight internal static char(1) initial unaligned dcl 5-11 QEight_ internal static char(1) initial unaligned dcl 5-11 QEnCode internal static char(1) initial unaligned dcl 5-11 QEpsilon internal static char(1) initial unaligned dcl 5-11 QEqual internal static char(1) initial unaligned dcl 5-11 QExclamation internal static char(1) initial unaligned dcl 5-11 QExecuteSign internal static char(1) initial unaligned dcl 5-11 QFive internal static char(1) initial unaligned dcl 5-11 QFive_ internal static char(1) initial unaligned dcl 5-11 QFloor internal static char(1) initial unaligned dcl 5-11 QFormatSign internal static char(1) initial unaligned dcl 5-11 QFour internal static char(1) initial unaligned dcl 5-11 QFour_ internal static char(1) initial unaligned dcl 5-11 QGradeDown internal static char(1) initial unaligned dcl 5-11 QGradeUp internal static char(1) initial unaligned dcl 5-11 QGreaterOrEqual internal static char(1) initial unaligned dcl 5-11 QGreaterThan internal static char(1) initial unaligned dcl 5-11 QIBeam internal static char(1) initial unaligned dcl 5-11 QIota internal static char(1) initial unaligned dcl 5-11 QLamp internal static char(1) initial unaligned dcl 5-11 QLeftArrow internal static char(1) initial unaligned dcl 5-11 QLeftBrace internal static char(1) initial unaligned dcl 5-11 QLeftBracket internal static char(1) initial unaligned dcl 5-11 QLeftLump internal static char(1) initial unaligned dcl 5-11 QLeftParen internal static char(1) initial unaligned dcl 5-11 QLeftTack internal static char(1) initial unaligned dcl 5-11 QLessOrEqual internal static char(1) initial unaligned dcl 5-11 QLessThan internal static char(1) initial unaligned dcl 5-11 QLetterA internal static char(1) initial unaligned dcl 5-11 QLetterA_ internal static char(1) initial unaligned dcl 5-11 QLetterB internal static char(1) initial unaligned dcl 5-11 QLetterB_ internal static char(1) initial unaligned dcl 5-11 QLetterC internal static char(1) initial unaligned dcl 5-11 QLetterC_ internal static char(1) initial unaligned dcl 5-11 QLetterD internal static char(1) initial unaligned dcl 5-11 QLetterD_ internal static char(1) initial unaligned dcl 5-11 QLetterE internal static char(1) initial unaligned dcl 5-11 QLetterE_ internal static char(1) initial unaligned dcl 5-11 QLetterF internal static char(1) initial unaligned dcl 5-11 QLetterF_ internal static char(1) initial unaligned dcl 5-11 QLetterG internal static char(1) initial unaligned dcl 5-11 QLetterG_ internal static char(1) initial unaligned dcl 5-11 QLetterH internal static char(1) initial unaligned dcl 5-11 QLetterH_ internal static char(1) initial unaligned dcl 5-11 QLetterI internal static char(1) initial unaligned dcl 5-11 QLetterI_ internal static char(1) initial unaligned dcl 5-11 QLetterJ internal static char(1) initial unaligned dcl 5-11 QLetterJ_ internal static char(1) initial unaligned dcl 5-11 QLetterK internal static char(1) initial unaligned dcl 5-11 QLetterK_ internal static char(1) initial unaligned dcl 5-11 QLetterL internal static char(1) initial unaligned dcl 5-11 QLetterL_ internal static char(1) initial unaligned dcl 5-11 QLetterM internal static char(1) initial unaligned dcl 5-11 QLetterM_ internal static char(1) initial unaligned dcl 5-11 QLetterN internal static char(1) initial unaligned dcl 5-11 QLetterN_ internal static char(1) initial unaligned dcl 5-11 QLetterO internal static char(1) initial unaligned dcl 5-11 QLetterO_ internal static char(1) initial unaligned dcl 5-11 QLetterP internal static char(1) initial unaligned dcl 5-11 QLetterP_ internal static char(1) initial unaligned dcl 5-11 QLetterQ internal static char(1) initial unaligned dcl 5-11 QLetterQ_ internal static char(1) initial unaligned dcl 5-11 QLetterR internal static char(1) initial unaligned dcl 5-11 QLetterR_ internal static char(1) initial unaligned dcl 5-11 QLetterS internal static char(1) initial unaligned dcl 5-11 QLetterS_ internal static char(1) initial unaligned dcl 5-11 QLetterT internal static char(1) initial unaligned dcl 5-11 QLetterT_ internal static char(1) initial unaligned dcl 5-11 QLetterU internal static char(1) initial unaligned dcl 5-11 QLetterU_ internal static char(1) initial unaligned dcl 5-11 QLetterV internal static char(1) initial unaligned dcl 5-11 QLetterV_ internal static char(1) initial unaligned dcl 5-11 QLetterW internal static char(1) initial unaligned dcl 5-11 QLetterW_ internal static char(1) initial unaligned dcl 5-11 QLetterX internal static char(1) initial unaligned dcl 5-11 QLetterX_ internal static char(1) initial unaligned dcl 5-11 QLetterY internal static char(1) initial unaligned dcl 5-11 QLetterY_ internal static char(1) initial unaligned dcl 5-11 QLetterZ internal static char(1) initial unaligned dcl 5-11 QLetterZ_ internal static char(1) initial unaligned dcl 5-11 QLineFeed internal static char(1) initial unaligned dcl 5-11 QMarkError internal static char(1) initial unaligned dcl 5-11 QMinus internal static char(1) initial unaligned dcl 5-11 QNandSign internal static char(1) initial unaligned dcl 5-11 QNine internal static char(1) initial unaligned dcl 5-11 QNine_ internal static char(1) initial unaligned dcl 5-11 QNorSign internal static char(1) initial unaligned dcl 5-11 QNotEqual internal static char(1) initial unaligned dcl 5-11 QOmega internal static char(1) initial unaligned dcl 5-11 QOne internal static char(1) initial unaligned dcl 5-11 QOne_ internal static char(1) initial unaligned dcl 5-11 QOrSign internal static char(1) initial unaligned dcl 5-11 QPeriod internal static char(1) initial unaligned dcl 5-11 QPlus internal static char(1) initial unaligned dcl 5-11 QQuadQuote internal static char(1) initial unaligned dcl 5-11 QQuestion internal static char(1) initial unaligned dcl 5-11 QRho internal static char(1) initial unaligned dcl 5-11 QRightArrow internal static char(1) initial unaligned dcl 5-11 QRightBrace internal static char(1) initial unaligned dcl 5-11 QRightBracket internal static char(1) initial unaligned dcl 5-11 QRightLump internal static char(1) initial unaligned dcl 5-11 QRightParen internal static char(1) initial unaligned dcl 5-11 QRightTack internal static char(1) initial unaligned dcl 5-11 QSemiColon internal static char(1) initial unaligned dcl 5-11 QSeven internal static char(1) initial unaligned dcl 5-11 QSeven_ internal static char(1) initial unaligned dcl 5-11 QSix internal static char(1) initial unaligned dcl 5-11 QSix_ internal static char(1) initial unaligned dcl 5-11 QSlash internal static char(1) initial unaligned dcl 5-11 QSlashHyphen internal static char(1) initial unaligned dcl 5-11 QSmallCircle internal static char(1) initial unaligned dcl 5-11 QSpace internal static char(1) initial unaligned dcl 5-11 QStar internal static char(1) initial unaligned dcl 5-11 QTab internal static char(1) initial unaligned dcl 5-11 QThree internal static char(1) initial unaligned dcl 5-11 QThree_ internal static char(1) initial unaligned dcl 5-11 QTilde internal static char(1) initial unaligned dcl 5-11 QTimes internal static char(1) initial unaligned dcl 5-11 QTwo internal static char(1) initial unaligned dcl 5-11 QTwo_ internal static char(1) initial unaligned dcl 5-11 QUnderLine internal static char(1) initial unaligned dcl 5-11 QUpArrow internal static char(1) initial unaligned dcl 5-11 QUpperMinus internal static char(1) initial unaligned dcl 5-11 QVerticalBar internal static char(1) initial unaligned dcl 5-11 QZero internal static char(1) initial unaligned dcl 5-11 QZero_ internal static char(1) initial unaligned dcl 5-11 TheBiggestNumberWeveGot internal static float bin(63) initial dcl 1-16 TheSmallestNumberWeveGot internal static float bin(63) initial dcl 1-16 complex_value_type internal static bit(18) initial unaligned dcl 2-30 function_type internal static bit(18) initial unaligned dcl 2-30 general_bead based structure level 1 dcl 2-3 group_type internal static bit(18) initial unaligned dcl 2-30 integral_value_type internal static bit(18) initial unaligned dcl 2-30 label_type internal static bit(18) initial unaligned dcl 2-30 lexed_function_type internal static bit(18) initial unaligned dcl 2-30 list_value_type internal static bit(18) initial unaligned dcl 2-30 max_parse_stack_depth internal static fixed bin(17,0) initial dcl 4-98 not_integer_mask internal static bit(18) initial unaligned dcl 2-30 not_zero_or_one_mask internal static bit(18) initial unaligned dcl 2-30 numeric_value_type internal static bit(18) initial unaligned dcl 2-30 operator_type internal static bit(18) initial unaligned dcl 2-30 shared_variable_type internal static bit(18) initial unaligned dcl 2-30 symbol_type internal static bit(18) initial unaligned dcl 2-30 value_type internal static bit(18) initial unaligned dcl 2-30 zero_or_one_value_type internal static bit(18) initial unaligned dcl 2-30 NAME DECLARED BY EXPLICIT CONTEXT. apl_clear_workspace_ 000033 constant entry external dcl 10 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 526 562 361 536 Length 1054 361 34 256 145 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME apl_clear_workspace_ 114 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME apl_clear_workspace_ 000100 initial_latent_expression apl_clear_workspace_ 000106 code apl_clear_workspace_ 000110 ws_info_ptr apl_clear_workspace_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. apl_clear_storage_ apl_copy_value_ get_group_id_ get_line_length_$switch iox_$control iox_$modes THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. apl_static_$apl_output apl_static_$immediate_input_prompt apl_static_$ws_info_ptr sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000032 4 7 000040 72 000042 73 000046 75 000051 76 000064 78 000066 79 000071 82 000120 83 000123 84 000125 85 000127 86 000131 87 000133 88 000134 90 000140 91 000141 92 000144 93 000147 94 000151 95 000154 96 000166 97 000175 98 000217 100 000221 101 000252 107 000257 108 000263 109 000266 113 000303 114 000312 116 000314 117 000316 121 000317 125 000326 126 000330 127 000332 128 000333 129 000335 130 000336 131 000357 ----------------------------------------------------------- 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