COMPILATION LISTING OF SEGMENT identify_io_channel_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/25/86 0856.3 mst Tue 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 12 /****^ HISTORY COMMENTS: 13* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 14* audit(86-02-19,Coppola), install(86-03-21,MR12.0-1033): 15* Support IMU. 16* END HISTORY COMMENTS */ 17 18 /* format: style2,indcomtxt */ 19 identify_io_channel_: 20 procedure (P_configp, P_iom, P_channel, P_name, P_code); 21 22 /* Procedure to identify individual IOM channels */ 23 /* Split out of interrupt_meters, August, 1981, W. Olin Sibert */ 24 /* Modified for prph fnp cards BIM 83-12-15 */ 25 /* Modified Feb 1985 by Paul Farley for IMU changes */ 26 27 dcl P_configp pointer parameter; /* Pointer to config deck used for channel identification */ 28 dcl P_iom fixed bin (3) parameter; 29 /* IOM number */ 30 dcl P_channel fixed bin (8) parameter; 31 /* Channel number */ 32 dcl P_name char (*) parameter;/* Returned, interpreted channel name */ 33 dcl P_code fixed bin (35) parameter; 34 35 dcl iom fixed bin (3); 36 dcl channel fixed bin (8); 37 38 dcl error_table_$bad_channel 39 fixed bin (35) external static; 40 41 dcl OVERHEAD_CHANNELS (0:7) char (32) varying internal static options (constant) 42 init ("overhead channel zero", "system fault", "connect", "snapshot", 43 "wraparound", "bootload", "special", "scratchpad"); 44 45 dcl IOM_NAMES (1:8) char (8) varying internal static options (constant) 46 init ("IOM A", "IOM B", "IOM C", "IOM D", "IOM E", "IOM F", "IOM G", "IOM H"); 47 48 dcl IMU_OVERHEAD_CHANNELS (0:7) char (32) varying internal static options (constant) 49 init ("overhead channel zero", "system fault", "connect", "mca", 50 "overhead channel four", "bootload", "special", "overhead channel seven"); 51 52 dcl IMU_NAMES (1:8) char (8) varying internal static options (constant) 53 init ("IMU A", "IMU B", "IMU C", "IMU D", "IMU E", "IMU F", "IMU G", "IMU H"); 54 55 dcl TAGS (1:8) char (1) aligned internal static options (constant) 56 init ("a", "b", "c", "d", "e", "f", "g", "h"); 57 58 dcl (addr, addrel, divide, hbound, max, min, null, size, substr) 59 builtin; 60 61 /* */ 62 63 iom = P_iom; 64 channel = P_channel; 65 66 if (iom < 1) | (iom > 4) | (channel < 0) | (channel > 63) 67 then do; 68 INVALID_IO_CHANNEL: 69 P_name = "invalid channel number"; 70 P_code = error_table_$bad_channel; 71 return; 72 end; 73 74 if P_configp = null () 75 then /* Default is running system config deck */ 76 cardp = addr (config_deck$); /* Prepare to look through the config deck */ 77 else cardp = P_configp; 78 79 P_name = lookup (); 80 P_code = 0; /* Consider successful, even if unidentifiable */ 81 82 return; /* All done */ 83 84 /* */ 85 86 lookup: 87 procedure () returns (char (32)); 88 89 /* This procedure returns the "name" of the specified channel, as best it can */ 90 91 dcl first_channel fixed bin (8); 92 dcl last_channel fixed bin (8); 93 dcl field fixed bin; 94 95 96 if (channel <= hbound (OVERHEAD_CHANNELS, 1)) 97 then do; 98 do while (config_card.word ^= FREE_CARD_WORD); 99 /* look for sentinel at end */ 100 if config_card.word = IOM_CARD_WORD 101 then do; 102 iom_cardp = cardp; 103 if iom_card.tag = iom 104 then do; 105 if iom_card.model = "imu" | iom_card.model = "iioc" 106 then return (IMU_NAMES (iom) || " " || IMU_OVERHEAD_CHANNELS (channel)); 107 else return (IOM_NAMES (iom) || " " || OVERHEAD_CHANNELS (channel)); 108 109 end; 110 end; 111 cardp = addrel (cardp, size (config_card)); 112 /* On to the next config card */ 113 end; 114 return (IOM_NAMES (iom) || " " || OVERHEAD_CHANNELS (channel)); 115 end; 116 117 do while (config_card.word ^= FREE_CARD_WORD); /* look for sentinel at end */ 118 119 if config_card.word = CHNL_CARD_WORD 120 then do; 121 chnl_cardp = cardp; 122 123 do field = 1 to hbound (chnl_card_array.group, 1); 124 /* Loop through channels which exist */ 125 first_channel = chnl_card.chan (field); 126 last_channel = chnl_card.chan (field) + chnl_card.nchan (field) - 1; 127 128 if iom = chnl_card.iom (field) 129 then if channel >= first_channel 130 then if channel <= last_channel 131 then return (chnl_card.name); 132 end; 133 end; 134 135 else if config_card.word = PRPH_CARD_WORD 136 then do; 137 prph_cardp = cardp; 138 prph_dsk_cardp = cardp; 139 prph_tap_cardp = cardp; 140 141 if iom ^= prph_card.iom 142 then goto NEXT_CARD; 143 144 first_channel = prph_card.chan; 145 146 if /* case */ substr (prph_card.name, 1, 3) = "dsk" 147 then last_channel = first_channel + prph_dsk_card.nchan - 1; 148 else if substr (prph_card.name, 1, 3) = "tap" 149 then last_channel = first_channel + prph_tap_card.nchan - 1; 150 else last_channel = first_channel; 151 152 if channel >= first_channel 153 then if channel <= last_channel 154 then return (prph_card.name); 155 end; 156 157 NEXT_CARD: 158 cardp = addrel (cardp, size (config_card)); /* On to the next config card */ 159 end; 160 161 return ("unidentifiable channel"); 162 163 end lookup; 164 165 1 1 /* BEGIN INCLUDE FILE ... config_deck.incl.pl1 ... 11/13/80, W. Olin Sibert */ 1 2 1 3 dcl (configp, cardp) pointer; 1 4 dcl config_n_cards fixed bin; /* Number of cards used in config */ 1 5 dcl config_max_cards fixed bin; /* Max number of cards in config */ 1 6 1 7 dcl config_deck$ fixed bin external static; 1 8 1 9 dcl 1 config_deck aligned based (configp), 1 10 2 cards (config_n_cards) aligned like config_card, 1 11 2 pad_cards (config_max_cards - config_n_cards) aligned like config_card; 1 12 1 13 dcl 1 config_card aligned based (cardp), 1 14 2 word char (4) aligned, 1 15 2 data_field (14) bit (36) aligned, 1 16 2 type_word aligned like config_card_type_word; 1 17 1 18 dcl 1 config_card_type_word aligned based, 1 19 2 field_type (14) bit (2) unaligned, 1 20 2 pad1 bit (4) unaligned, 1 21 2 n_fields fixed bin (4) unsigned unaligned; 1 22 1 23 dcl (CONFIG_DECIMAL_TYPE init ("11"b), 1 24 CONFIG_OCTAL_TYPE init ("00"b), 1 25 CONFIG_SINGLE_CHAR_TYPE init ("01"b), 1 26 CONFIG_STRING_TYPE init ("10"b)) bit (2) aligned static options (constant); 1 27 1 28 dcl ZERO_CARD_WORD char (4) aligned internal static options (constant) init (""); 1 29 dcl FREE_CARD_WORD char (4) aligned internal static options (constant) init ("ÿÿÿÿ"); 1 30 1 31 dcl VALID_CARD_WORD_CHARACTERS char (38) internal static options (constant) init 1 32 ("abcdefghijklmnopqrstuvwxyz0123456789_."); /* lowercase letters, digits, period and underscore */ 1 33 1 34 dcl EMPTY_FIELD bit (36) aligned internal static options (constant) init ("777777777777"b3); 1 35 1 36 /* END INCLUDE FILE config_deck.incl.pl1 */ 166 167 2 1 /* BEGIN INCLUDE FILE ... config_iom_card.incl.pl1 ... 11/37/80 W. Olin Sibert */ 2 2 2 3 dcl iom_cardp pointer; /* pointer to IOM card */ 2 4 2 5 dcl 1 iom_card aligned based (iom_cardp), /* IOM card declaration */ 2 6 2 word char (4), /* "iom" */ 2 7 2 tag fixed bin (3), /* One more than IOM tag set in maintenance panel switches */ 2 8 2 port fixed bin (3), /* Controller port to which IOM is connected */ 2 9 2 model char (4), /* IOM model number: "iomb", "nsa", "iioc" */ 2 10 2 state char (4), /* State: "on" or "off" */ 2 11 2 12 2 pad (10) bit (36) aligned, /* Pad to 15 fields */ 2 13 2 14 2 type_word aligned, 2 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 2 16 3 pad1 bit (4) unaligned, 2 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 2 18 2 19 dcl IOM_CARD_WORD char (4) aligned internal static options (constant) init ("iom"); 2 20 2 21 /* END INCLUDE FILE ... config_iom_card.incl.pl1 */ 168 169 3 1 /* BEGIN INCLUDE FILE ... config_chnl_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 3 2 3 3 dcl chnl_cardp ptr; /* Pointer to a CHNL card. */ 3 4 3 5 dcl 1 chnl_card based (chnl_cardp) aligned, /* CHNL card declaration */ 3 6 2 word char (4), /* "chnl" */ 3 7 2 name char (4), /* subsystem name */ 3 8 2 group (3), /* Channel groups for this subsystem -- 9 fields total */ 3 9 3 iom fixed bin (3), /* IOM number */ 3 10 3 chan fixed bin (8), /* channel number */ 3 11 3 nchan fixed bin, /* number of channels */ 3 12 3 13 2 pad (4) bit (36) aligned, /* pad to 15 fields */ 3 14 3 15 2 type_word aligned, 3 16 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 3 17 3 pad1 bit (4) unaligned, 3 18 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 3 19 3 20 dcl 1 chnl_card_array aligned based (chnl_cardp), /* Overlay for channel group array */ 3 21 2 pad1 (2) bit (36) aligned, 3 22 2 group (min (3, divide (max (0, (chnl_card.n_fields - 1)), 3, 17, 0))), 3 23 3 iom fixed bin (3), /* IOM number */ 3 24 3 chan fixed bin (8), /* Channel number. */ 3 25 3 nchan fixed bin; /* Number of logical channels on this channel. */ 3 26 3 27 dcl CHNL_CARD_WORD char (4) aligned internal static options (constant) init ("chnl"); 3 28 3 29 /* END INCLUDE FILE ... config_chnl_card.incl.pl1 */ 170 171 4 1 /* BEGIN INCLUDE FILE ... config_prph_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 4 2 4 3 dcl prph_cardp ptr; /* Pointer to a PRPH card. */ 4 4 4 5 dcl 1 prph_card based (prph_cardp) aligned, /* PRPH card declaration */ 4 6 2 word char (4), /* "prph" */ 4 7 2 name char (4), /* subsystem name */ 4 8 2 iom fixed bin (3), /* IOM number */ 4 9 2 chan fixed bin (8), /* channel number */ 4 10 2 model fixed bin, /* model number */ 4 11 2 state char (4), /* ON/OFF state */ 4 12 2 pad (9) bit (36) aligned, /* pad to 15 fields */ 4 13 4 14 2 type_word aligned, 4 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 4 16 3 pad1 bit (4) unaligned, 4 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 4 18 4 19 dcl PRPH_CARD_WORD char (4) aligned internal static options (constant) init ("prph"); 4 20 4 21 /* END INCLUDE FILE ... config_prph_card.incl.pl1 */ 172 173 5 1 /* BEGIN INCLUDE FILE ... config_prph_tap_card.incl.pl1 */ 5 2 5 3 dcl prph_tap_cardp ptr; /* Pointer to a PRPH TAPx card. */ 5 4 5 5 dcl 1 prph_tap_card based (prph_tap_cardp) aligned, /* PRPH TAPx card declaration */ 5 6 2 word char (4), /* "prph" */ 5 7 2 name char (4), /* "tapX" */ 5 8 2 iom fixed bin (3), /* IOM number */ 5 9 2 chan fixed bin (8), /* channel number */ 5 10 2 nchan fixed bin, /* number of channels */ 5 11 5 12 2 group (5), 5 13 3 model fixed bin, /* model number */ 5 14 3 ndrives fixed bin, /* number of drives */ 5 15 5 16 2 type_word aligned, 5 17 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 5 18 3 pad1 bit (4) unaligned, 5 19 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 5 20 5 21 dcl 1 prph_tap_card_array aligned based (prph_tap_cardp), /* Overlay for drive group array */ 5 22 2 pad1 (5) bit (36) aligned, 5 23 2 group (divide (max (0, (prph_tap_card.n_fields - 4)), 2, 17, 0)), 5 24 3 model fixed bin, /* model number */ 5 25 3 ndrives fixed bin; /* number of drives */ 5 26 5 27 /* END INCLUDE FILE ... config_prph_tap_card.incl.pl1 */ 174 175 6 1 /* BEGIN INCLUDE FILE ... config_prph_dsk_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 6 2 6 3 dcl prph_dsk_cardp ptr; /* Pointer to a PRPH DSKx card. */ 6 4 6 5 dcl 1 prph_dsk_card based (prph_dsk_cardp) aligned, /* PRPH DSKx card declaration */ 6 6 2 word char (4), /* "prph" */ 6 7 2 name char (4), /* "dskX" */ 6 8 2 iom fixed bin (3), /* IOM number */ 6 9 2 chan fixed bin (8), /* channel number */ 6 10 2 nchan fixed bin, /* number of channels */ 6 11 6 12 2 group (5), 6 13 3 model fixed bin, /* model number */ 6 14 3 ndrives fixed bin, /* number of drives */ 6 15 6 16 2 type_word aligned, 6 17 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 6 18 3 pad1 bit (4) unaligned, 6 19 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 6 20 6 21 dcl 1 prph_dsk_card_array aligned based (prph_dsk_cardp), /* Overlay for drive group array */ 6 22 2 pad1 (5) bit (36) aligned, 6 23 2 group (divide (max (0, (prph_dsk_card.n_fields - 4)), 2, 17, 0)), 6 24 3 model fixed bin, /* model number */ 6 25 3 ndrives fixed bin; /* number of drives */ 6 26 6 27 /* END INCLUDE FILE ... config_prph_dsk_card.incl.pl1 */ 176 177 178 end identify_io_channel_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/25/86 0856.3 identify_io_channel_.pl1 >special_ldd>install>MR12.0-1033>identify_io_channel_.pl1 166 1 05/08/81 1853.6 config_deck.incl.pl1 >ldd>include>config_deck.incl.pl1 168 2 05/08/81 1853.6 config_iom_card.incl.pl1 >ldd>include>config_iom_card.incl.pl1 170 3 05/08/81 1853.6 config_chnl_card.incl.pl1 >ldd>include>config_chnl_card.incl.pl1 172 4 10/31/84 1315.5 config_prph_card.incl.pl1 >ldd>include>config_prph_card.incl.pl1 174 5 11/08/82 1005.8 config_prph_tap_card.incl.pl1 >ldd>include>config_prph_tap_card.incl.pl1 176 6 05/08/81 1853.7 config_prph_dsk_card.incl.pl1 >ldd>include>config_prph_dsk_card.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. CHNL_CARD_WORD 000001 constant char(4) initial dcl 3-27 ref 119 FREE_CARD_WORD 001016 constant char(4) initial dcl 1-29 ref 98 117 IMU_NAMES 000003 constant varying char(8) initial array dcl 52 ref 105 IMU_OVERHEAD_CHANNELS 000033 constant varying char(32) initial array dcl 48 ref 105 IOM_CARD_WORD 000002 constant char(4) initial dcl 2-19 ref 100 IOM_NAMES 000143 constant varying char(8) initial array dcl 45 ref 107 114 OVERHEAD_CHANNELS 000173 constant varying char(32) initial array dcl 41 ref 96 107 114 PRPH_CARD_WORD 000000 constant char(4) initial dcl 4-19 ref 135 P_channel parameter fixed bin(8,0) dcl 30 ref 19 64 P_code parameter fixed bin(35,0) dcl 33 set ref 19 70* 80* P_configp parameter pointer dcl 27 ref 19 74 77 P_iom parameter fixed bin(3,0) dcl 28 ref 19 63 P_name parameter char unaligned dcl 32 set ref 19 68* 79* addr builtin function dcl 58 ref 74 addrel builtin function dcl 58 ref 111 157 cardp 000102 automatic pointer dcl 1-3 set ref 74* 77* 98 100 102 111* 111 111 117 119 121 135 137 138 139 157* 157 157 chan 3 based fixed bin(8,0) array level 3 in structure "chnl_card" dcl 3-5 in procedure "identify_io_channel_" ref 125 126 chan 3 based fixed bin(8,0) level 2 in structure "prph_card" dcl 4-5 in procedure "identify_io_channel_" ref 144 channel 000101 automatic fixed bin(8,0) dcl 36 set ref 64* 66 66 96 105 107 114 128 128 152 152 chnl_card based structure level 1 dcl 3-5 chnl_card_array based structure level 1 dcl 3-20 chnl_cardp 000106 automatic pointer dcl 3-3 set ref 121* 123 123 125 126 126 128 128 config_card based structure level 1 dcl 1-13 ref 111 157 config_card_type_word based structure level 1 dcl 1-18 config_deck$ 000012 external static fixed bin(17,0) dcl 1-7 set ref 74 divide builtin function dcl 58 ref 123 error_table_$bad_channel 000010 external static fixed bin(35,0) dcl 38 ref 70 field 000126 automatic fixed bin(17,0) dcl 93 set ref 123* 125 126 126 128* first_channel 000124 automatic fixed bin(8,0) dcl 91 set ref 125* 128 144* 146 148 150 152 group 2 based structure array level 2 in structure "chnl_card_array" dcl 3-20 in procedure "identify_io_channel_" ref 123 group 2 based structure array level 2 in structure "chnl_card" dcl 3-5 in procedure "identify_io_channel_" hbound builtin function dcl 58 ref 96 123 iom 2 based fixed bin(3,0) level 2 in structure "prph_card" dcl 4-5 in procedure "identify_io_channel_" ref 141 iom 2 based fixed bin(3,0) array level 3 in structure "chnl_card" dcl 3-5 in procedure "identify_io_channel_" ref 128 iom 000100 automatic fixed bin(3,0) dcl 35 in procedure "identify_io_channel_" set ref 63* 66 66 103 105 107 114 128 141 iom_card based structure level 1 dcl 2-5 iom_cardp 000104 automatic pointer dcl 2-3 set ref 102* 103 105 105 last_channel 000125 automatic fixed bin(8,0) dcl 92 set ref 126* 128 146* 148* 150* 152 max builtin function dcl 58 ref 123 min builtin function dcl 58 ref 123 model 3 based char(4) level 2 dcl 2-5 ref 105 105 n_fields 17(32) based fixed bin(4,0) level 3 packed unsigned unaligned dcl 3-5 ref 123 name 1 based char(4) level 2 in structure "chnl_card" dcl 3-5 in procedure "identify_io_channel_" ref 128 name 1 based char(4) level 2 in structure "prph_card" dcl 4-5 in procedure "identify_io_channel_" ref 146 148 152 nchan 4 based fixed bin(17,0) level 2 in structure "prph_tap_card" dcl 5-5 in procedure "identify_io_channel_" ref 148 nchan 4 based fixed bin(17,0) array level 3 in structure "chnl_card" dcl 3-5 in procedure "identify_io_channel_" ref 126 nchan 4 based fixed bin(17,0) level 2 in structure "prph_dsk_card" dcl 6-5 in procedure "identify_io_channel_" ref 146 null builtin function dcl 58 ref 74 prph_card based structure level 1 dcl 4-5 prph_cardp 000110 automatic pointer dcl 4-3 set ref 137* 141 144 146 148 152 prph_dsk_card based structure level 1 dcl 6-5 prph_dsk_cardp 000114 automatic pointer dcl 6-3 set ref 138* 146 prph_tap_card based structure level 1 dcl 5-5 prph_tap_cardp 000112 automatic pointer dcl 5-3 set ref 139* 148 size builtin function dcl 58 ref 111 157 substr builtin function dcl 58 ref 146 148 tag 1 based fixed bin(3,0) level 2 dcl 2-5 ref 103 type_word 17 based structure level 2 dcl 3-5 word based char(4) level 2 dcl 1-13 ref 98 100 117 119 135 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CONFIG_DECIMAL_TYPE internal static bit(2) initial dcl 1-23 CONFIG_OCTAL_TYPE internal static bit(2) initial dcl 1-23 CONFIG_SINGLE_CHAR_TYPE internal static bit(2) initial dcl 1-23 CONFIG_STRING_TYPE internal static bit(2) initial dcl 1-23 EMPTY_FIELD internal static bit(36) initial dcl 1-34 TAGS internal static char(1) initial array dcl 55 VALID_CARD_WORD_CHARACTERS internal static char(38) initial unaligned dcl 1-31 ZERO_CARD_WORD internal static char(4) initial dcl 1-28 config_deck based structure level 1 dcl 1-9 config_max_cards automatic fixed bin(17,0) dcl 1-5 config_n_cards automatic fixed bin(17,0) dcl 1-4 configp automatic pointer dcl 1-3 prph_dsk_card_array based structure level 1 dcl 6-21 prph_tap_card_array based structure level 1 dcl 5-21 NAMES DECLARED BY EXPLICIT CONTEXT. INVALID_IO_CHANNEL 000372 constant label dcl 68 NEXT_CARD 001000 constant label dcl 157 ref 141 identify_io_channel_ 000341 constant entry external dcl 19 lookup 000426 constant entry internal dcl 86 ref 79 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1070 1104 1020 1100 Length 1412 1020 14 272 47 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME identify_io_channel_ 101 external procedure is an external procedure. lookup internal procedure shares stack frame of external procedure identify_io_channel_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME identify_io_channel_ 000100 iom identify_io_channel_ 000101 channel identify_io_channel_ 000102 cardp identify_io_channel_ 000104 iom_cardp identify_io_channel_ 000106 chnl_cardp identify_io_channel_ 000110 prph_cardp identify_io_channel_ 000112 prph_tap_cardp identify_io_channel_ 000114 prph_dsk_cardp identify_io_channel_ 000124 first_channel lookup 000125 last_channel lookup 000126 field lookup THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs return shorten_stack ext_entry_desc NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. config_deck$ error_table_$bad_channel LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000334 63 000354 64 000357 66 000361 68 000372 70 000377 71 000401 74 000402 77 000411 79 000414 80 000424 82 000425 86 000426 96 000430 98 000433 100 000437 102 000441 103 000443 105 000447 107 000524 111 000571 113 000574 114 000575 117 000642 119 000645 121 000647 123 000651 125 000673 126 000677 128 000703 132 000721 133 000723 135 000724 137 000726 138 000730 139 000731 141 000732 144 000736 146 000740 148 000753 150 000763 152 000765 157 001000 159 001003 161 001004