COMPILATION LISTING OF SEGMENT db_fnp_reader_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1618.1 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* DB_FNP_READER_ - Contains entries for reading and parsing debug_fnp commands */ 12 13 /* Written February 1977 by Larry Johnson */ 14 /* Rewritten January 1978 by Larry Johnson to support multiple commands on a line */ 15 16 db_fnp_reader_: proc; 17 18 /* Arguments */ 19 20 dcl arg_cmd_infop ptr; /* Pointer to command data */ 21 22 /* Automatic */ 23 24 dcl code fixed bin (35); 25 dcl inlen fixed bin (21); 26 dcl i fixed bin; 27 dcl have_cmd_start bit (1); 28 29 dcl next_char char (1) based (cmd_info.commandp); 30 31 /* Constants */ 32 33 dcl name char (14) int static options (constant) init ("db_fnp_reader_"); 34 dcl nl char (1) int static options (constant) init (" 35 "); 36 37 /* External stuff */ 38 39 dcl iox_$get_line entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 40 dcl sub_err_ entry options (variable); 41 dcl ioa_ entry options (variable); 42 43 dcl iox_$user_input ext ptr; 44 45 dcl (addr, index, length, null, search, substr, verify) builtin; 46 47 /* Entry to read command line */ 48 49 get_command: entry (arg_cmd_infop); 50 51 cmd_infop = arg_cmd_infop; 52 53 have_cmd_start = "0"b; 54 get_command_retry: 55 cmd_info.endline, cmd_info.error, cmd_info.opstring = "0"b; 56 57 /* Find first character in command name */ 58 59 get_command_startx: 60 go to get_command_start (next_char_type ()); 61 get_command_start (0): /* Data char */ 62 if have_cmd_start then go to get_command_name; /* Good start */ 63 get_command_start (4): /* White space */ 64 call skip_char; /* Flush till command starts */ 65 go to get_command_startx; 66 get_command_start (1): /* Quote */ 67 get_command_start (2): /* Apostrophe */ 68 go to bad_command_char; /* These are invalid */ 69 get_command_start (3): /* Semi-colon */ 70 call skip_char; 71 have_cmd_start = "1"b; /* Next char will start command name */ 72 go to get_command_startx; 73 get_command_start (5): /* End of line */ 74 call iox_$get_line (iox_$user_input, addr (cmd_info.inbuf), length (cmd_info.inbuf), inlen, code); 75 if code ^= 0 then do; 76 cmd_info.flush = "1"b; 77 call sub_err_ (code, name, "h", null, (0), "Unable to read from user_input"); 78 go to get_command_retry; 79 end; 80 if inlen > 0 then if substr (cmd_info.inbuf, inlen, 1) = nl then inlen = inlen - 1; 81 cmd_info.commandp = addr (cmd_info.inbuf); /* Start new command scan */ 82 cmd_info.commandl = inlen; 83 have_cmd_start = "1"b; /* Next char can start command */ 84 cmd_info.flush = "0"b; 85 go to get_command_startx; 86 87 /* Count characters in command name */ 88 89 get_command_name: 90 cmd_info.operandp = cmd_info.commandp; /* Start of name */ 91 cmd_info.operandl = 0; 92 get_command_charx: 93 go to get_command_char (next_char_type ()); 94 get_command_char (0): /* Data char */ 95 cmd_info.operandl = cmd_info.operandl + 1; /* Include in name */ 96 call skip_char; 97 if cmd_info.operandl = 1 then /* If first character */ 98 if operand = "=" then return; /* Don't required whitespace after '=' command */ 99 go to get_command_charx; 100 get_command_char (1): /* Quote */ 101 get_command_char (2): /* Apostrophe */ 102 go to bad_command_char; 103 get_command_char (3): /* Semi-colon */ 104 get_command_char (4): /* White space */ 105 get_command_char (5): /* End of line */ 106 if cmd_info.operandl = 0 then go to get_command_retry; /* Start all over if null command */ 107 else return; /* Otherwise command name is now found */ 108 109 bad_command_char: 110 call ioa_ ("Invalid ^a in command name.", next_char); 111 cmd_info.flush = "1"b; 112 go to get_command_retry; 113 114 /* Entry to get one operand from command line */ 115 116 get_operand: entry (arg_cmd_infop); 117 118 cmd_infop = arg_cmd_infop; 119 cmd_info.opstring, cmd_info.endline, cmd_info.error = "0"b; 120 cmd_info.operandp = null; 121 cmd_info.operandl = 0; 122 123 /* Find start of an operand */ 124 125 get_operand_startx: 126 go to get_operand_start (next_char_type ()); 127 get_operand_start (0): /* Data char */ 128 cmd_info.operandp = cmd_info.commandp; /* Operand starts here */ 129 go to get_operand_charx; 130 get_operand_start (1): /* Quote */ 131 go to get_operand_quote; /* Handel quoted operand */ 132 get_operand_start (2): /* Apostrophe */ 133 go to get_operand_apost; /* Handle apostrophed operand */ 134 get_operand_start (3): /* Semi-colon */ 135 get_operand_start (5): /* End of line */ 136 cmd_info.endline = "1"b; /* No more operands */ 137 return; 138 get_operand_start (4): /* White space */ 139 call skip_char; 140 go to get_operand_startx; /* Keep looking */ 141 142 /* Regular vanilla operand. count its characters */ 143 144 get_operand_charx: 145 go to get_operand_char (next_char_type ()); 146 get_operand_char (0): /* Data char */ 147 cmd_info.operandl = cmd_info.operandl + 1; /* Operand 1 longer */ 148 call skip_char; 149 go to get_operand_charx; 150 get_operand_char (1): /* Quote */ 151 get_operand_char (2): /* Apostrophe */ 152 call ioa_ ("Invalid ^a in middle of operand", next_char); 153 go to operand_err; 154 get_operand_char (3): /* Semi colon */ 155 get_operand_char (4): /* White space */ 156 get_operand_char (5): /* End of line */ 157 return; /* All indicate end of operand */ 158 159 /* Here when operand starts with quuote. A dequoted version is reconstructed. */ 160 161 get_operand_quote: 162 cmd_info.operandp = addr (cmd_info.opbuf); /* Will build unquoted string here */ 163 cmd_info.opstring = "1"b; 164 call skip_char; 165 get_quote_charx: 166 go to get_quote_char (next_char_type ()); 167 get_quote_char (0): /* Data char */ 168 get_quote_char (2): /* Apostrophe */ 169 get_quote_char (3): /* Semi colon */ 170 get_quote_char (4): /* White space */ 171 cmd_info.operandl = cmd_info.operandl + 1; /* All are operand characters */ 172 substr (operand, cmd_info.operandl, 1) = next_char; 173 call skip_char; 174 go to get_quote_charx; 175 get_quote_char (5): /* End of line */ 176 call ioa_ ("Unmatched quotes"); 177 go to operand_err; 178 get_quote_char (1): /* Quote */ 179 call skip_char; /* May be double quote or end of string */ 180 181 /* Be sure quoted string terminates correctly */ 182 183 go to char_after_quote (next_char_type ()); 184 char_after_quote (0): /* Data char */ 185 char_after_quote (2): /* Apostrophe */ 186 call ioa_ ("Invalid ^a after quoted string", next_char); 187 go to operand_err; 188 char_after_quote (1): /* Quote */ 189 go to get_quote_char (0); /* Treat as quote data char */ 190 char_after_quote (3): /* Semi colon */ 191 char_after_quote (4): /* White space */ 192 char_after_quote (5): /* End of line */ 193 return; /* All are valid end of quoted string */ 194 195 /* Here when operand starts with apostrophe. count its characters */ 196 197 get_operand_apost: 198 cmd_info.operandl = 1; /* Include apostrophe in operand */ 199 cmd_info.operandp = cmd_info.commandp; 200 call skip_char; 201 get_apost_charx: 202 go to get_apost_char (next_char_type ()); 203 get_apost_char (0): /* Data char */ 204 get_apost_char (4): /* White space */ 205 cmd_info.operandl = cmd_info.operandl + 1; /* Treat as data */ 206 call skip_char; 207 go to get_apost_charx; 208 get_apost_char (1): /* Quote */ 209 get_apost_char (3): /* Semi colon */ 210 call ioa_ ("Invalid ^a in apostrophed string", next_char); 211 go to operand_err; 212 get_apost_char (5): /* End of line */ 213 call ioa_ ("Unmatched apostrophes"); 214 go to operand_err; 215 get_apost_char (2): /* Should be closing apostrophe */ 216 cmd_info.operandl = cmd_info.operandl + 1; 217 call skip_char; 218 219 /* Be sure qpostrophed string ends correctly */ 220 221 go to char_after_apost (next_char_type ()); 222 char_after_apost (0): /* Data char */ 223 char_after_apost (1): /* Quote */ 224 char_after_apost (2): /* Apostrophe */ 225 call ioa_ ("Invalid ^a after apostrophed string", next_char); 226 go to operand_err; 227 char_after_apost (3): /* Sime colon */ 228 char_after_apost (4): /* White space */ 229 char_after_apost (5): /* End of line */ 230 return; /* All valid ends of apostrophed operand */ 231 232 /* Here when some error deteched in the operand */ 233 234 operand_err: 235 cmd_info.error = "1"b; 236 cmd_info.flush = "1"b; 237 return; 238 239 /* Function which returns a code indicating the type of the next character on the command line */ 240 /* Codes are: 241* 0 = data character 242* 1 = quote 243* 2 = apostrophe 244* 3 = semi-colon 245* 4 = white space 246* 5 = end of line */ 247 248 next_char_type: proc returns (fixed bin); 249 250 if cmd_info.flush then return (5); /* End of line */ 251 if cmd_info.commandl = 0 then return (5); 252 if next_char = """" then return (1); 253 if next_char = "'" then return (2); 254 if next_char = ";" then return (3); 255 if next_char = " " | next_char = " " | next_char = nl then return (4); 256 if unspec (next_char) = "014"b3 then return (4); 257 return (0); /* Must be data */ 258 259 end next_char_type; 260 261 262 /* Skip next char in input stream */ 263 264 skip_char: proc; 265 266 cmd_info.commandp = substraddr (command, 2); 267 cmd_info.commandl = cmd_info.commandl - 1; 268 return; 269 270 end skip_char; 271 272 /* Simulate substraddr builtin temporarily */ 273 274 substraddr: proc (c, n) returns (ptr); 275 276 dcl c char (*); 277 dcl n fixed bin; 278 dcl ca (n) char (1) unal based (addr (c)); 279 280 return (addr (ca (n))); 281 282 end substraddr; 283 1 1 /* Begin include file ..... debug_fnp_data.incl.pl1 */ 1 2 1 3 /* Describes various structures used by the debug_fnp command */ 1 4 1 5 /* Written February 1977 by Larry Johnson */ 1 6 1 7 /* Structures describing a symbol table used by the debug_fnp command, 1 8* to find values for common FNP symbols. */ 1 9 1 10 dcl db_fnp_symbols_$db_fnp_symbols_ ext; 1 11 1 12 dcl symbol_tablep ptr; 1 13 1 14 dcl 1 symbol_table aligned based (symbol_tablep), 1 15 2 cnt fixed bin, /* Number of entries */ 1 16 2 maxcnt fixed bin, /* Max count */ 1 17 2 entry (symbol_table.cnt) unal, 1 18 3 one_symbol like sym unal; 1 19 1 20 dcl symp ptr; /* Pointer to one symbol */ 1 21 1 22 dcl 1 sym unal based (symp), 1 23 2 name char (6), 1 24 2 value fixed bin (17), 1 25 2 len fixed bin (17), /* Number of words */ 1 26 2 reloc fixed bin (17), 1 27 2 type fixed bin (17), 1 28 2 flag_mem char (6), /* If non blank, name of word in which this is a flag */ 1 29 2 explain bit (18), /* Offset to explanation for symbol */ 1 30 2 pad bit (18); 1 31 1 32 dcl exptextp ptr; 1 33 1 34 dcl 1 exptext aligned based (exptextp), /* Symbol explanation entry */ 1 35 2 len fixed bin (8) unal, 1 36 2 data char (exptext.len) unal; 1 37 1 38 /* Values for sym.reloc, which is relocation required to find the symbol */ 1 39 1 40 dcl (reloc_abs init (0), /* Value is absolute */ 1 41 reloc_tib init (1), /* Value is relative to current tib addr */ 1 42 reloc_hwcm init (2), /* Value is relative to current hwcm */ 1 43 reloc_sfcm init (3), /* Value is relative to software comm region */ 1 44 reloc_meters init (4)) /* Value is relative to tib meters */ 1 45 int static options (constant); 1 46 1 47 /* Values for sym.type, which is the mode to be used in displaying symbol */ 1 48 1 49 dcl (type_oct init (0), /* Octal, default for most symbols */ 1 50 type_char init (1), /* Ascii characters */ 1 51 type_addr init (2), /* Address to be converted to mod|offset */ 1 52 type_clock init (3), /* Multics clock value */ 1 53 type_inst init (4), /* Machine instruction */ 1 54 type_op init (5), /* Interpreter opblock format */ 1 55 type_dec init (6), /* Decimal */ 1 56 type_bit init (7), /* In bits */ 1 57 type_ebcdic init (8)) /* 8-bit ebcdic characters */ 1 58 int static options (constant); 1 59 1 60 dcl long_type_names (0:8) char (12) int static options (constant) init ( 1 61 "octal", "character", "address", "clock", "instruction", "opblock", "decimal", "bit", "ebcdic"); 1 62 dcl short_type_names (0:8) char (4) int static options (constant) init ( 1 63 "oct", "ch", "addr", "ck", "inst", "op", "dec", "bit", "ebc"); 1 64 1 65 1 66 /* Structure of suplmental data used in evaluating expressions */ 1 67 1 68 dcl expr_infop ptr; 1 69 1 70 dcl 1 expr_info aligned based (expr_infop), 1 71 2 flags, 1 72 3 star_known bit (1) unal, /* Value of "*" is known */ 1 73 3 tib_known bit (1) unal, /* TIB addresses may be used */ 1 74 3 hwcm_known bit (1) unal, /* HWCM address may be used */ 1 75 3 sfcm_known bit (1) unal, /* SFCM address may be used */ 1 76 3 pad bit (32) unal, 1 77 2 star_addr fixed bin, /* Value of "*" */ 1 78 2 tib_addr fixed bin, /* Address of TIB */ 1 79 2 hwcm_addr fixed bin, /* Address of HWCM */ 1 80 2 sfcm_addr fixed bin, /* Address of SFCM */ 1 81 2 type fixed bin, /* Expression type (mode for printing) */ 1 82 2 len fixed bin, /* Implied length of expression */ 1 83 2 user_tablep ptr; /* Pointer to a user symbol table */ 1 84 1 85 1 86 /* Structure of opcode table of machine instructions */ 1 87 1 88 dcl db_fnp_opcodes_$ ext; 1 89 1 90 dcl optablep ptr; 1 91 1 92 dcl 1 optable aligned based (optablep), 1 93 2 cnt fixed bin, 1 94 2 entry (optable.cnt) unal, 1 95 3 one_op like op; 1 96 1 97 dcl opp ptr; 1 98 1 99 dcl 1 op unal based (opp), 1 100 2 name char (6), /* The mneumonic */ 1 101 2 code bit (12), /* The opcode */ 1 102 2 mask bit (12), /* Mask that says where the opcode is */ 1 103 2 type fixed bin (11), /* Type of display required */ 1 104 2 pad bit (18); 1 105 1 106 /* Values for op.type are: 1 107* 0 - storage reference 1 108* 1 - non-storage reference (immediate), 1 109* 2 - non-storage reference (iacxn only), 1 110* 3 - non-storage reference (shifts), 1 111* 4 - non-storage reference (no operands) */ 1 112 1 113 1 114 /* Stuctures used while parsing commands into operands */ 1 115 1 116 dcl cmd_infop ptr; 1 117 1 118 dcl 1 cmd_info aligned based (cmd_infop), 1 119 2 inbuf char (256), /* For reading lines */ 1 120 2 opbuf char (256), /* Used for operand in undoubling quotes */ 1 121 2 commandp ptr, /* Address of unparsed part of command */ 1 122 2 commandl fixed bin, /* Length of unparsed part */ 1 123 2 operandp ptr, /* Address of current operand */ 1 124 2 operandl fixed bin, /* And its length */ 1 125 2 error bit (1), /* Set if error parsing operand */ 1 126 2 endline bit (1), /* Set if no more operands on line */ 1 127 2 opstring bit (1), /* Set if operand was unquoted string */ 1 128 2 flush bit (1), /* If set, rest of input line will be ignored */ 1 129 2 envp ptr; /* Pointer to the debug_fnp environment structure */ 1 130 1 131 dcl command char (cmd_info.commandl) based (cmd_info.commandp); 1 132 dcl operand char (cmd_info.operandl) based (cmd_info.operandp); 1 133 1 134 /* The following structure describes the current debug_fnp environment. */ 1 135 /* It specifies whether we are working on a dump, fnp, core image, etc. */ 1 136 1 137 dcl envp ptr; 1 138 1 139 dcl 1 env aligned based (envp), 1 140 2 corep ptr, /* Ptr to current dump or core-image. Null means live FNP */ 1 141 2 fnp fixed bin, /* Current fnp number */ 1 142 2 dump_dir char (168) unal, /* Directory where dumps are found */ 1 143 2 dir char (168) unal, /* Directory for current dump or core image */ 1 144 2 ename char (32) unal, /* Ename for current dump or core image */ 1 145 2 tty_name char (32), /* Name of current channel */ 1 146 2 segp ptr, /* Pointer to base of current segment */ 1 147 2 flags unal, 1 148 3 fnps_configured bit (8), /* Says which FNP's appear in config deck */ 1 149 3 fnp_sw bit (1), /* 1 if currently working on fnp */ 1 150 3 image_sw bit (1), /* 1 if currently working on a core-image */ 1 151 3 dump_sw bit (1), /* 1 if current working on a dump */ 1 152 3 fdump_sw bit (1), /* 1 if current dump is a fdump */ 1 153 3 pad bit (24), 1 154 2 dump_time fixed bin (71); /* Clock time dump occured */ 1 155 1 156 /* Structure of data defining table of interpreter opblock names */ 1 157 1 158 dcl db_fnp_opblocks_$ ext; 1 159 1 160 dcl opblock_tablep ptr; 1 161 1 162 dcl 1 opblock_table aligned based (opblock_tablep), 1 163 2 cnt fixed bin, 1 164 2 name (0:opblock_table.cnt) char (6) unal; 1 165 1 166 /* End include file ..... debug_fnp_data.incl.pl1 */ 284 285 end db_fnp_reader_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1502.1 db_fnp_reader_.pl1 >dumps>old>recomp>db_fnp_reader_.pl1 284 1 06/19/81 2115.0 debug_fnp_data.incl.pl1 >ldd>include>debug_fnp_data.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. addr builtin function dcl 45 ref 73 73 81 161 280 280 arg_cmd_infop parameter pointer dcl 20 ref 49 51 116 118 c parameter char unaligned dcl 276 set ref 274 280 ca based char(1) array unaligned dcl 278 set ref 280 cmd_info based structure level 1 dcl 1-118 cmd_infop 000104 automatic pointer dcl 1-116 set ref 51* 54 54 54 73 73 73 73 76 80 81 81 82 84 89 89 91 94 94 97 97 97 103 109 111 118* 119 119 119 120 121 127 127 134 146 146 150 161 161 163 167 167 172 172 172 172 184 197 199 199 203 203 208 215 215 222 234 236 250 251 252 253 254 255 255 255 256 266 266 266 266 267 267 code 000100 automatic fixed bin(35,0) dcl 24 set ref 73* 75 77* command based char unaligned dcl 1-131 set ref 266* commandl 202 based fixed bin(17,0) level 2 dcl 1-118 set ref 82* 251 266 266 267* 267 commandp 200 based pointer level 2 dcl 1-118 set ref 81* 89 109 127 150 172 184 199 208 222 252 253 254 255 255 255 256 266* 266 endline 210 based bit(1) level 2 dcl 1-118 set ref 54* 119* 134* error 207 based bit(1) level 2 dcl 1-118 set ref 54* 119* 234* flush 212 based bit(1) level 2 dcl 1-118 set ref 76* 84* 111* 236* 250 have_cmd_start 000102 automatic bit(1) unaligned dcl 27 set ref 53* 61 71* 83* inbuf based char(256) level 2 dcl 1-118 set ref 73 73 73 73 80 81 inlen 000101 automatic fixed bin(21,0) dcl 25 set ref 73* 80 80 80* 80 82 ioa_ 000014 constant entry external dcl 41 ref 109 150 175 184 208 212 222 iox_$get_line 000010 constant entry external dcl 39 ref 73 iox_$user_input 000016 external static pointer dcl 43 set ref 73* length builtin function dcl 45 ref 73 73 n parameter fixed bin(17,0) dcl 277 ref 274 280 name 000060 constant char(14) initial unaligned dcl 33 set ref 77* next_char based char(1) unaligned dcl 29 set ref 109* 150* 172 184* 208* 222* 252 253 254 255 255 255 256 nl 001120 constant char(1) initial unaligned dcl 34 ref 80 255 null builtin function dcl 45 ref 77 77 120 op based structure level 1 packed unaligned dcl 1-99 opbuf 100 based char(256) level 2 dcl 1-118 set ref 161 operand based char unaligned dcl 1-132 set ref 97 172* operandl 206 based fixed bin(17,0) level 2 dcl 1-118 set ref 91* 94* 94 97 97 103 121* 146* 146 167* 167 172 172 197* 203* 203 215* 215 operandp 204 based pointer level 2 dcl 1-118 set ref 89* 97 120* 127* 161* 172 199* opstring 211 based bit(1) level 2 dcl 1-118 set ref 54* 119* 163* sub_err_ 000012 constant entry external dcl 40 ref 77 substr builtin function dcl 45 set ref 80 172* sym based structure level 1 packed unaligned dcl 1-22 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. db_fnp_opblocks_$ external static fixed bin(17,0) dcl 1-158 db_fnp_opcodes_$ external static fixed bin(17,0) dcl 1-88 db_fnp_symbols_$db_fnp_symbols_ external static fixed bin(17,0) dcl 1-10 env based structure level 1 dcl 1-139 envp automatic pointer dcl 1-137 expr_info based structure level 1 dcl 1-70 expr_infop automatic pointer dcl 1-68 exptext based structure level 1 dcl 1-34 exptextp automatic pointer dcl 1-32 i automatic fixed bin(17,0) dcl 26 index builtin function dcl 45 long_type_names internal static char(12) initial array unaligned dcl 1-60 opblock_table based structure level 1 dcl 1-162 opblock_tablep automatic pointer dcl 1-160 opp automatic pointer dcl 1-97 optable based structure level 1 dcl 1-92 optablep automatic pointer dcl 1-90 reloc_abs internal static fixed bin(17,0) initial dcl 1-40 reloc_hwcm internal static fixed bin(17,0) initial dcl 1-40 reloc_meters internal static fixed bin(17,0) initial dcl 1-40 reloc_sfcm internal static fixed bin(17,0) initial dcl 1-40 reloc_tib internal static fixed bin(17,0) initial dcl 1-40 search builtin function dcl 45 short_type_names internal static char(4) initial array unaligned dcl 1-62 symbol_table based structure level 1 dcl 1-14 symbol_tablep automatic pointer dcl 1-12 symp automatic pointer dcl 1-20 type_addr internal static fixed bin(17,0) initial dcl 1-49 type_bit internal static fixed bin(17,0) initial dcl 1-49 type_char internal static fixed bin(17,0) initial dcl 1-49 type_clock internal static fixed bin(17,0) initial dcl 1-49 type_dec internal static fixed bin(17,0) initial dcl 1-49 type_ebcdic internal static fixed bin(17,0) initial dcl 1-49 type_inst internal static fixed bin(17,0) initial dcl 1-49 type_oct internal static fixed bin(17,0) initial dcl 1-49 type_op internal static fixed bin(17,0) initial dcl 1-49 verify builtin function dcl 45 NAMES DECLARED BY EXPLICIT CONTEXT. bad_command_char 000420 constant label dcl 109 ref 66 100 char_after_apost 000052 constant label array(0:5) dcl 222 ref 221 char_after_quote 000036 constant label array(0:5) dcl 184 set ref 183 db_fnp_reader_ 000201 constant entry external dcl 16 get_apost_char 000044 constant label array(0:5) dcl 203 set ref 201 get_apost_charx 000643 constant label dcl 201 set ref 207 get_command 000212 constant entry external dcl 49 get_command_char 000006 constant label array(0:5) dcl 94 set ref 92 get_command_charx 000372 constant label dcl 92 ref 99 get_command_name 000365 constant label dcl 89 ref 61 get_command_retry 000224 constant label dcl 54 ref 78 103 112 get_command_start 000000 constant label array(0:5) dcl 61 ref 59 get_command_startx 000230 constant label dcl 59 ref 65 72 85 get_operand 000447 constant entry external dcl 116 get_operand_apost 000635 constant label dcl 197 ref 132 get_operand_char 000022 constant label array(0:5) dcl 146 set ref 144 get_operand_charx 000507 constant label dcl 144 set ref 129 149 get_operand_quote 000542 constant label dcl 161 ref 130 get_operand_start 000014 constant label array(0:5) dcl 127 set ref 125 get_operand_startx 000466 constant label dcl 125 set ref 140 get_quote_char 000030 constant label array(0:5) dcl 167 ref 165 188 get_quote_charx 000550 constant label dcl 165 set ref 174 next_char_type 000754 constant entry internal dcl 248 ref 59 92 125 144 165 183 201 221 operand_err 000747 constant label dcl 234 ref 153 177 187 211 214 226 skip_char 001037 constant entry internal dcl 264 ref 63 69 96 138 148 164 173 178 200 206 217 substraddr 001072 constant entry internal dcl 274 ref 266 NAME DECLARED BY CONTEXT OR IMPLICATION. unspec builtin function ref 256 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1216 1236 1123 1226 Length 1434 1123 20 162 72 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME db_fnp_reader_ 154 external procedure is an external procedure. next_char_type internal procedure shares stack frame of external procedure db_fnp_reader_. skip_char internal procedure shares stack frame of external procedure db_fnp_reader_. substraddr internal procedure shares stack frame of external procedure db_fnp_reader_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME db_fnp_reader_ 000100 code db_fnp_reader_ 000101 inlen db_fnp_reader_ 000102 have_cmd_start db_fnp_reader_ 000104 cmd_infop db_fnp_reader_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_ iox_$get_line sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_input LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000200 49 000206 51 000217 53 000223 54 000224 59 000230 61 000234 63 000236 65 000237 66 000240 69 000241 71 000242 72 000244 73 000245 75 000270 76 000272 77 000275 78 000342 80 000343 81 000354 82 000357 83 000361 84 000363 85 000364 89 000365 91 000371 92 000372 94 000376 96 000400 97 000401 99 000412 100 000413 103 000414 107 000417 109 000420 111 000441 112 000444 116 000445 118 000454 119 000460 120 000463 121 000465 125 000466 127 000472 129 000476 130 000477 132 000500 134 000501 137 000504 138 000505 140 000506 144 000507 146 000513 148 000515 149 000516 150 000517 153 000540 154 000541 161 000542 163 000545 164 000547 165 000550 167 000554 172 000556 173 000564 174 000565 175 000566 177 000603 178 000604 183 000605 184 000611 187 000632 188 000633 190 000634 197 000635 199 000640 200 000642 201 000643 203 000647 206 000651 207 000652 208 000653 211 000674 212 000675 214 000714 215 000715 217 000717 221 000720 222 000724 226 000745 227 000746 234 000747 236 000752 237 000753 248 000754 250 000756 251 000764 252 000771 253 001003 254 001010 255 001015 256 001026 257 001035 264 001037 266 001040 267 001066 268 001071 274 001072 280 001103 ----------------------------------------------------------- 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