COMPILATION LISTING OF SEGMENT pl1_signal_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1001.6 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(87-05-21,RBarstad), approve(87-07-13,MCR7710), 16* audit(87-05-21,GDixon), install(87-08-04,MR12.1-1055): 17* Add quit_info structure if quit condition. 18* END HISTORY COMMENTS */ 19 20 21 pl1_signal_: proc options(support); 22 23 /* This procedure is called to signal all pl1 conditions. 24* It was originally coded by P. A. Belmont and also contained a default handler 25* for the pl1 conditions. It was recoded by M. Weaver 12/27/73 to delete the 26* handler portion and the entry for version 1 programs and to call signal_ 27* with the new structure for pl1 conditions. The old method of storing ondata in 28* an external data base must also be maintained temporarily for compatibility. */ 29 30 /* Modified April 81 Benson I. Margulies for quiet_restart of stringsize */ 31 /* Modified Febrary 84 Tom Oke to accept 415 code (invalid or unimp conversion) 32* from any_to_any_. */ 33 34 35 dcl psp ptr; 36 dcl (fsbp, file_p, fabptr) ptr; 37 dcl based_ptr ptr based; 38 dcl cond_ptr ptr; 39 40 dcl tc256v char(256) var; 41 dcl cname char(*); 42 dcl conname char(32); 43 dcl where char(4) aligned; 44 dcl vchar256 char(256) var; 45 dcl vchar256p char(256) var; 46 dcl filename33 char(33) aligned; 47 48 dcl based_bit bit(36) aligned based; 49 50 dcl tc256vsw fixed bin; 51 dcl (codex, code) fixed bin(35); 52 dcl (file_related, numb, numbp, j) fixed bin; 53 dcl save_ondata_based(ondata_$ondatalength) fixed bin(35) based; 54 dcl save_ondata(300) fixed bin(35); 55 56 dcl (addr, index, size, substr, null, unspec) builtin; 57 58 dcl signal_ entry options(variable); 59 dcl pl1_signal_$help_plio2_signal_ entry(char(*), ptr, fixed bin(35), char(256) var, fixed bin); 60 dcl cleanup condition; 61 62 dcl 1 v2fab aligned based, 63 2 sw bit(36), 64 2 name char(32); 65 66 declare 1 auto_pl1_info aligned like pl1_info automatic; 67 68 dcl 1 pl1_quit_info aligned like quit_info; 69 70 dcl TRUE bit(1) int static options (constant) init ("1"b); 71 72 return; /* this entry used to be for area */ 73 74 math_error_: entry (code); 75 where = "math"; 76 pl1_info_ptr = addr (auto_pl1_info); 77 codex = code; 78 if codex < 1 | codex > 100 then go to bad_oncode; 79 file_p = null; 80 file_related = 0; 81 conname = "error"; 82 go to copy_ondata; 83 84 pl1_signal_from_ops_: entry (cname256, cnamelen, qualifier, code, fileaddr); 85 86 /* format:off */ 87 /* oncode usage: 88* 1000 - signal statement 89* 415 - invalid or unimp 90* 701 - stringrange 91* 702 - stringsize 92* 703 - size 93* 704 - subscriptrange 94* 710 - undefined pl1_operator_ 95**/ 96 /* format:on */ 97 98 dcl (fileaddr, qualifier) ptr; 99 dcl cname256 char(256) unaligned; 100 dcl cnamelen fixed bin; 101 102 pl1_info_ptr = addr (auto_pl1_info); 103 numb = 1; 104 vchar256 = ""; 105 file_p = fileaddr; 106 codex = code; 107 if (codex < 701 & codex ^= 415) | codex > 1000 108 then go to bad_oncode; 109 conname = substr(cname256, 1, cnamelen); 110 where = "ops "; 111 go to copy_ondata; 112 113 help_plio2_signal_: entry(cname, qualifier, code, vchar256p, numbp); 114 115 pl1_info_ptr = addr (auto_pl1_info); 116 vchar256 = vchar256p; 117 numb = numbp; 118 if code = -1 then codex = 600; /* stringsize sends the code -1 */ 119 else codex = code + 200; /* convention to place the version 2 oncodes 120* in the range 301 - 600 */ 121 if codex < 301 | codex > 600 then go to bad_oncode; 122 where = "ver2"; 123 conname = cname; 124 125 /* ASSERT that qualifier = addr(PS) */ 126 if qualifier = null then fsbp = null; 127 else do; 128 fsbp = qualifier -> ps.fsbp; 129 if cname ^= "undefinedfile" /* protect open statements */ 130 then if qualifier -> ps.job.string then fsbp = null; /* since job bits are trash for open statements */ 131 end; 132 if fsbp ^= null then file_p = qualifier -> ps.file_p; 133 /* if file_p ^= null then status_code = fsbp->fsbr.lnzc */ 134 else file_p = null; 135 go to copy_ondata; 136 137 pl1_ops_join: 138 139 cond_ptr = null; 140 141 if numb = -1 | (conname = "key" & where = "ops ") 142 then do; 143 pl1_info.onkey_sw = "1"b; 144 ondata_$onkey, pl1_info.onkey_onfield = vchar256; 145 end; 146 147 if conname = "stringsize" then pl1_info.action_flags.quiet_restart = "1"b; 148 149 if conname = "conversion" then do; 150 ondata_$onsource, pl1_info.onsource = vchar256; 151 ondata_$oncharindex = numb + 3; /* 1st char becomes offset 4 in var char string */ 152 pl1_info.oncharindex = numb; /* newer routines use substr */ 153 pl1_info.onsource_sw, pl1_info.onchar_sw = "1"b; 154 end; 155 156 else if conname = "name" then do; 157 pl1_info.onkey_onfield, 158 ondata_$datafield = vchar256; 159 pl1_info.onfield_sw = "1"b; 160 end; 161 162 if file_p ^= null then file_related = 2; 163 else file_related = 0; 164 165 if conname = "endpage" /* see if we need a file */ 166 | conname = "endfile" 167 | conname = "transmit" 168 | conname = "record" 169 | conname = "undefinedfile" 170 | conname = "name" 171 | conname = "key" 172 then do; 173 file_related = 1; /* must have a file */ 174 if file_p = null then call pl1_signal_$help_plio2_signal_ ("error", null, 169, "", 0); 175 /* 169 + 200 = 369 - a v2 error code */ 176 /* no one should restart this */ 177 ondata_$fileptr = file_p; /* preserve old fileptr unless have new one */ 178 pl1_info.file_ptr_sw = "1"b; 179 pl1_info.file_ptr = file_p; 180 end; 181 182 signal_it: 183 if (conname = "quit") 184 then do; 185 cond_ptr = addr (pl1_quit_info); /* special info for quit */ 186 unspec(pl1_quit_info) = "0"b; 187 pl1_quit_info.header.length = size (pl1_quit_info); 188 pl1_quit_info.header.version = condition_info_version_1; 189 pl1_quit_info.switches.ips_quit = TRUE; /* this is the important switch */ 190 end; 191 192 else do; /* as before */ 193 cond_ptr = addr(pl1_info); 194 ondata_$oncode, pl1_info.oncode = codex; 195 pl1_info.oncode_sw = "1"b; 196 if file_related = 1 | (file_related = 2 & conname = "conversion") then do; 197 fabptr = file_p -> based_ptr; 198 filename33 = fabptr -> v2fab.name; 199 j = index(filename33, " "); 200 ondata_$onfile, pl1_info.onfile = substr(filename33, 1, j-1); 201 pl1_info.onfile_sw = "1"b; 202 end; 203 204 ondata_$condition_name = conname; 205 ondata_$onloc = "?"; /* don't set for old procs--make them recompile */ 206 pl1_info.length = size(pl1_info); 207 pl1_info.version = 1; 208 pl1_info.info_string = ""; 209 pl1_info.status_code = 0; 210 pl1_info.id = "pliocond"; 211 end; 212 213 call signal_(conname, null, cond_ptr); /* signal at last */ 214 215 if conname = "conversion" then if where = "ver2" then vchar256p = ondata_$onsource; 216 217 call restoreondata(); 218 return; 219 220 copy_ondata: 221 addr(pl1_info.action_flags) -> based_bit, 222 addr(pl1_info.content_flags) -> based_bit = "0"b; 223 addr(save_ondata) -> save_ondata_based = addr(ondata_$fileptr) -> save_ondata_based; 224 on cleanup call restoreondata(); 225 if where = "math" then go to signal_it; 226 go to pl1_ops_join; 227 228 bad_oncode: 229 call pl1_signal_$help_plio2_signal_ ("error", null, 174, "", 0); 230 return; /* illegal oncode value */ 231 232 restoreondata: proc; 233 if ondata_$condition_name ^= "conversion" then do; 234 tc256v = ondata_$onsource; 235 tc256vsw = 1; 236 end; 237 else tc256vsw = 0; 238 239 addr(ondata_$fileptr) -> save_ondata_based = addr(save_ondata) -> save_ondata_based; 240 241 if tc256vsw = 1 then ondata_$onsource = tc256v; 242 243 end; 244 1 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 1 2 1 3 /* Structure for find_condition_info_. 1 4* 1 5* Written 1-Mar-79 by M. N. Davidoff. 1 6**/ 1 7 1 8 /* automatic */ 1 9 1 10 declare condition_info_ptr pointer; 1 11 1 12 /* based */ 1 13 1 14 declare 1 condition_info aligned based (condition_info_ptr), 1 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 1 16 2 version fixed binary, /* Must be 1 */ 1 17 2 condition_name char (32) varying, /* name of condition */ 1 18 2 info_ptr pointer, /* pointer to the condition data structure */ 1 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 1 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 1 21 2 flags unaligned, 1 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 1 23 3 pad1 bit (35), 1 24 2 pad2 bit (36), 1 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 1 26 2 pad3 (4) bit (36); 1 27 1 28 /* internal static */ 1 29 1 30 declare condition_info_version_1 1 31 fixed binary internal static options (constant) initial (1); 1 32 1 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 245 246 2 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 2 2 /* format: style2 */ 2 3 2 4 declare condition_info_header_ptr 2 5 pointer; 2 6 declare 1 condition_info_header 2 7 aligned based (condition_info_header_ptr), 2 8 2 length fixed bin, /* length in words of this structure */ 2 9 2 version fixed bin, /* version number of this structure */ 2 10 2 action_flags aligned, /* tell handler how to proceed */ 2 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 2 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 2 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 2 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 2 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 2 16 3 pad bit (32) unaligned, 2 17 2 info_string char (256) varying, /* may contain printable message */ 2 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 2 19 2 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 247 248 3 1 /* BEGIN INCLUDE FILE ... pl1_info.incl.pl1 */ 3 2 /* This is intended to be used by all procedures raising pl1 conditions and by the default handler */ 3 3 /* Created June 1981 by Benson I. Margulies from pl1_info_struc.incl.pl1 */ 3 4 /* This include file must be used with condition_info_header.incl.pl1. Both must be %included */ 3 5 3 6 declare pl1_info_ptr pointer; 3 7 declare 1 pl1_info aligned based (pl1_info_ptr), 3 8 2 header aligned like condition_info_header, 3 9 2 id char(8) aligned, /* init "pliocond"; indicates pl1 structure */ 3 10 2 content_flags aligned, 3 11 (3 v1_sw, /* on if raised by version 1 */ 3 12 3 oncode_sw, /* "1"b->valid oncode */ 3 13 3 onfile_sw, /* "1"b->file name is in structure */ 3 14 3 file_ptr_sw, /* "1"b->file is associated with this condition */ 3 15 3 onsource_sw, /* "1"b->valid onsource string for this condition */ 3 16 3 onchar_sw, /* "1"b->valid onchar index in this structure */ 3 17 3 onkey_sw, /* "1"b->valid onkey string in this structure */ 3 18 3 onfield_sw) bit(1) unaligned, /* "1"b->valid onfield string in this structure */ 3 19 2 oncode fixed bin(35), /* oncode for condition */ 3 20 2 onfile char(32) aligned, /* onfile string */ 3 21 2 file_ptr ptr, /* pointer to file value */ 3 22 2 onsource char(256) var, /* onsource string */ 3 23 2 oncharindex fixed bin, /* char offset in onsource of offending char */ 3 24 2 onkey_onfield char(256) var; /* either onkey string or onfield string */ 3 25 3 26 /* END INCLUDE FILE ... pl1_info.incl.pl1 */ 249 250 4 1 /* BEGIN INCLUDE FILE ... quit_info.incl.pl1 ... */ 4 2 4 3 /* The include file condition_info_header must be used with this file. */ 4 4 4 5 declare quit_info_ptr pointer; 4 6 declare 1 quit_info aligned based (quit_info_ptr), 4 7 2 header aligned like condition_info_header, 4 8 2 switches aligned, 4 9 3 reset_write bit (1) unaligned, 4 10 3 ips_quit bit (1) unaligned, 4 11 3 reconnection_quit bit (1) unaligned, 4 12 3 pad bit (33); 4 13 4 14 /* END INCLUDE FILE ... quit_info.incl.pl1 ... */ 251 252 5 1 /* declarations for users of 5 2* ondata_$ 5 3*installed in >ldd>include>on_data_.incl.pl1 5 4*fixed up in PAB>others>on_data_.incl.pl1 5 5**/ 5 6 5 7 5 8 5 9 dcl ( 5 10 ondata_$ondatalength fixed bin(15), 5 11 ondata_$callersegname char(32) varying, 5 12 ondata_$callerpathname char(168) varying, 5 13 ondata_$calleroffset fixed bin(17), 5 14 ondata_$infoptr ptr, 5 15 ondata_$onreturnp ptr, 5 16 ondata_$this_file ptr, 5 17 ondata_$who char(4) aligned, 5 18 ondata_$handled fixed bin(15), 5 19 ondata_$file_related fixed bin(15), 5 20 ondata_$fileptr ptr, 5 21 ondata_$pliopsp ptr, 5 22 ondata_$datafield char(256) var, 5 23 ondata_$oncalled char(256) var, 5 24 ondata_$onfile char(32) var, 5 25 ondata_$onloc char(292) var, 5 26 ondata_$onsource char(256) var, 5 27 ondata_$onkey char(256) var, 5 28 ondata_$oncharindex fixed bin(15), 5 29 ondata_$onchar char(1000) aligned, 5 30 ondata_$oncode fixed bin(15), 5 31 ondata_$oncount fixed bin(15), 5 32 ondata_$plio_code fixed bin(15), 5 33 ondata_$condition_name char(32) var ) external; 253 254 6 1 /* BEGIN INCLUDE FILE ... plio2_ps.incl.pl1 */ 6 2 /* Stream I/O data block used by PL/I I/O runtime routines. 6 3* 6 4* Modified: 31 January 1978 by RAB to change plio2_data_$fsb_thread to plio2_data_fsb_thread_ 6 5**/ 6 6 /* format: style3,idind30 */ 6 7 6 8 /* based */ 6 9 6 10 declare 1 ps aligned based (psp),/* items set NORMALLY by compiled procedures */ 6 11 2 stack_frame_p ptr, /* items set in block prologue */ 6 12 2 ST_top_p ptr, 6 13 2 ST_block_p ptr, 6 14 2 format_area_p ptr, 6 15 2 ss_list_p ptr, 6 16 2 ab_return, /* items set in prep call */ 6 17 3 abret (3) ptr, 6 18 2 source_p ptr, /* addr(fakefsb) for string option, 6 19* addr(file) for explicit file option */ 6 20 2 special_list_p ptr, /* addr(OKlist) for get data, addr(format_list) for edit */ 6 21 2 copy_file_p ptr, 6 22 2 job aligned, 6 23 3 explicit_file bit (1) unal, 6 24 3 string bit (1) unal, 6 25 3 varying_string bit (1) unal, 6 26 3 data bit (1) unal, 6 27 3 edit bit (1) unal, 6 28 3 list bit (1) unal, 6 29 3 get bit (1) unal, 6 30 3 put bit (1) unal, 6 31 3 page bit (1) unal, 6 32 3 line bit (1) unal, 6 33 3 skip bit (1) unal, 6 34 3 copy bit (1) unal, 6 35 3 p1p2 bit (1) unal, 6 36 3 bit_string bit (1) unal, /* for environment(stringvalue) */ 6 37 3 char_string bit (1) unal, 6 38 3 read bit (1) unal, 6 39 3 write bit (1) unal, 6 40 3 rewrite bit (1) unal, 6 41 3 delete bit (1) unal, 6 42 3 locate bit (1) unal, 6 43 3 key bit (1) unal, 6 44 3 keyto bit (1) unal, 6 45 3 keyfrom bit (1) unal, 6 46 3 set bit (1) unal, 6 47 3 into bit (1) unal, 6 48 3 ignore bit (1) unal, 6 49 3 from bit (1) unal, 6 50 3 version bit (6) unal, 6 51 3 not_byte_buffer bit (1) unal, 6 52 3 pad1 bit (1) unal, 6 53 3 packed_ptr bit (1) unal, 6 54 2 number fixed bin (15), 6 55 2 value_p ptr, /* items set NORMALLY by compiled procedures per transmission */ 6 56 2 descriptor bit (36) aligned, 6 57 2 length fixed bin (15), /* may be swallowed into descriptor */ 6 58 2 top_half bit (18) unal, 6 59 2 offset bit (18) unal, 6 60 2 prep fixed bin (15), /* items treated ABNORMALLY, written by user and PLIO */ 6 61 2 new_format fixed bin (15), 6 62 2 switch aligned, /* items used by PLIO and not touched by compiled procedures */ 6 63 3 first_field bit (1) unal, 6 64 3 file bit (1) unal, 6 65 3 transmit_error bit (1) unal, 6 66 3 semi_sep bit (1) unal, 6 67 3 pad2 bit (32) unal, 6 68 2 file_p ptr, 6 69 2 fsbp ptr, 6 70 2 auxp ptr, /* used as addr(ldidata) for GETs */ 6 71 2 fabp ptr, 6 72 2 fab2p ptr, 6 73 2 vp ptr, 6 74 2 descr bit (36) aligned, 6 75 2 start_copy fixed bin (15), 6 76 2 quick_stream_storage, 6 77 3 a_stored fixed bin (35), 6 78 3 q_stored fixed bin (35); 6 79 6 80 /* external static */ 6 81 6 82 declare ( 6 83 plio2_data_$pspstat, 6 84 plio2_data_$fsbpstat, 6 85 plio2_data_$badfsbp, 6 86 plio2_data_$fabpstat, 6 87 plio2_data_$fab2pstat, 6 88 plio2_data_$pliostringfsbp 6 89 ) ptr external static; 6 90 6 91 dcl plio2_data_fsb_thread_ ptr ext static initial (null); 6 92 /* *system var */ 6 93 6 94 declare ( 6 95 plio2_data_$badjob bit (36) aligned, 6 96 plio2_data_$undef_file_sw bit (1) aligned 6 97 ) external static; 6 98 6 99 /* END INCLUDE FILE ... plio2_ps.incl.pl1 */ 255 256 257 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0804.2 pl1_signal_.pl1 >spec>install>1110>pl1_signal_.pl1 245 1 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 247 2 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 249 3 07/18/81 1100.0 pl1_info.incl.pl1 >ldd>include>pl1_info.incl.pl1 251 4 02/09/82 1152.4 quit_info.incl.pl1 >ldd>include>quit_info.incl.pl1 253 5 05/06/74 1742.5 on_data_.incl.pl1 >ldd>include>on_data_.incl.pl1 255 6 08/13/81 2043.5 plio2_ps.incl.pl1 >ldd>include>plio2_ps.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. TRUE constant bit(1) initial packed unaligned dcl 70 ref 189 action_flags 2 based structure level 3 dcl 3-7 set ref 220 addr builtin function dcl 56 ref 76 102 115 185 193 220 220 223 223 239 239 auto_pl1_info 001024 automatic structure level 1 dcl 66 set ref 76 102 115 based_bit based bit(36) dcl 48 set ref 220* 220* based_ptr based pointer dcl 37 ref 197 cleanup 001016 stack reference condition dcl 60 ref 224 cname parameter char packed unaligned dcl 41 ref 113 123 129 cname256 parameter char(256) packed unaligned dcl 99 ref 84 109 cnamelen parameter fixed bin(17,0) dcl 100 ref 84 109 code parameter fixed bin(35,0) dcl 51 ref 74 77 84 106 113 118 119 codex 000335 automatic fixed bin(35,0) dcl 51 set ref 77* 78 78 106* 107 107 107 118* 119* 121 121 194 cond_ptr 000106 automatic pointer dcl 38 set ref 137* 185* 193* 213* condition_info_header based structure level 1 dcl 2-6 condition_info_version_1 constant fixed bin(17,0) initial dcl 1-30 ref 188 conname 000211 automatic char(32) packed unaligned dcl 42 set ref 81* 109* 123* 141 147 149 156 165 165 165 165 165 165 165 182 196 204 213* 215 content_flags 107 based structure level 2 dcl 3-7 set ref 220 fabptr 000104 automatic pointer dcl 36 set ref 197* 198 file_p 000102 automatic pointer dcl 36 in procedure "pl1_signal_" set ref 79* 105* 132* 134* 162 174 177 179 197 file_p 40 based pointer level 2 in structure "ps" dcl 6-10 in procedure "pl1_signal_" ref 132 file_ptr 122 based pointer level 2 dcl 3-7 set ref 179* file_ptr_sw 107(03) based bit(1) level 3 packed packed unaligned dcl 3-7 set ref 178* file_related 000336 automatic fixed bin(17,0) dcl 52 set ref 80* 162* 163* 173* 196 196 fileaddr parameter pointer dcl 98 ref 84 105 filename33 000323 automatic char(33) dcl 46 set ref 198* 199 200 fsbp 000100 automatic pointer dcl 36 in procedure "pl1_signal_" set ref 126* 128* 129* 132 fsbp 42 based pointer level 2 in structure "ps" dcl 6-10 in procedure "pl1_signal_" ref 128 header based structure level 2 in structure "pl1_info" dcl 3-7 in procedure "pl1_signal_" header 001353 automatic structure level 2 in structure "pl1_quit_info" dcl 68 in procedure "pl1_signal_" id 105 based char(8) level 2 dcl 3-7 set ref 210* index builtin function dcl 56 ref 199 info_string 3 based varying char(256) level 3 dcl 3-7 set ref 208* ips_quit 105(01) 001353 automatic bit(1) level 3 packed packed unaligned dcl 68 set ref 189* j 000340 automatic fixed bin(17,0) dcl 52 set ref 199* 200 job 26 based structure level 2 dcl 6-10 length based fixed bin(17,0) level 3 in structure "pl1_info" dcl 3-7 in procedure "pl1_signal_" set ref 206* length 001353 automatic fixed bin(17,0) level 3 in structure "pl1_quit_info" dcl 68 in procedure "pl1_signal_" set ref 187* name 1 based char(32) level 2 dcl 62 ref 198 null builtin function dcl 56 ref 79 126 126 129 132 134 137 162 174 174 174 213 213 228 228 numb 000337 automatic fixed bin(17,0) dcl 52 set ref 103* 117* 141 151 152 numbp parameter fixed bin(17,0) dcl 52 ref 113 117 onchar_sw 107(05) based bit(1) level 3 packed packed unaligned dcl 3-7 set ref 153* oncharindex 225 based fixed bin(17,0) level 2 dcl 3-7 set ref 152* oncode 110 based fixed bin(35,0) level 2 dcl 3-7 set ref 194* oncode_sw 107(01) based bit(1) level 3 packed packed unaligned dcl 3-7 set ref 195* ondata_$condition_name 000036 external static varying char(32) dcl 5-9 set ref 204* 233 ondata_$datafield 000020 external static varying char(256) dcl 5-9 set ref 157* ondata_$fileptr 000016 external static pointer dcl 5-9 set ref 177* 223 239 ondata_$oncharindex 000032 external static fixed bin(15,0) dcl 5-9 set ref 151* ondata_$oncode 000034 external static fixed bin(15,0) dcl 5-9 set ref 194* ondata_$ondatalength 000014 external static fixed bin(15,0) dcl 5-9 ref 223 239 ondata_$onfile 000022 external static varying char(32) dcl 5-9 set ref 200* ondata_$onkey 000030 external static varying char(256) dcl 5-9 set ref 144* ondata_$onloc 000024 external static varying char(292) dcl 5-9 set ref 205* ondata_$onsource 000026 external static varying char(256) dcl 5-9 set ref 150* 215 234 241* onfield_sw 107(07) based bit(1) level 3 packed packed unaligned dcl 3-7 set ref 159* onfile 111 based char(32) level 2 dcl 3-7 set ref 200* onfile_sw 107(02) based bit(1) level 3 packed packed unaligned dcl 3-7 set ref 201* onkey_onfield 226 based varying char(256) level 2 dcl 3-7 set ref 144* 157* onkey_sw 107(06) based bit(1) level 3 packed packed unaligned dcl 3-7 set ref 143* onsource 124 based varying char(256) level 2 dcl 3-7 set ref 150* onsource_sw 107(04) based bit(1) level 3 packed packed unaligned dcl 3-7 set ref 153* pl1_info based structure level 1 dcl 3-7 set ref 193 206 pl1_info_ptr 001462 automatic pointer dcl 3-6 set ref 76* 102* 115* 143 144 147 150 152 153 153 157 159 178 179 193 194 195 200 201 206 206 207 208 209 210 220 220 pl1_quit_info 001353 automatic structure level 1 dcl 68 set ref 185 186* 187 pl1_signal_$help_plio2_signal_ 000012 constant entry external dcl 59 ref 174 228 ps based structure level 1 dcl 6-10 qualifier parameter pointer dcl 98 ref 84 113 126 128 129 132 quiet_restart 2(02) based bit(1) level 4 packed packed unaligned dcl 3-7 set ref 147* quit_info based structure level 1 dcl 4-6 save_ondata 000341 automatic fixed bin(35,0) array dcl 54 set ref 223 239 save_ondata_based based fixed bin(35,0) array dcl 53 set ref 223* 223 239* 239 signal_ 000010 constant entry external dcl 58 ref 213 size builtin function dcl 56 ref 187 206 status_code 104 based fixed bin(35,0) level 3 dcl 3-7 set ref 209* string 26(01) based bit(1) level 3 packed packed unaligned dcl 6-10 ref 129 substr builtin function dcl 56 ref 109 200 switches 105 001353 automatic structure level 2 dcl 68 tc256v 000110 automatic varying char(256) dcl 40 set ref 234* 241 tc256vsw 000334 automatic fixed bin(17,0) dcl 50 set ref 235* 237* 241 unspec builtin function dcl 56 set ref 186* v2fab based structure level 1 dcl 62 vchar256 000222 automatic varying char(256) dcl 44 set ref 104* 116* 144 150 157 vchar256p parameter varying char(256) dcl 45 set ref 113 116 215* version 1 based fixed bin(17,0) level 3 in structure "pl1_info" dcl 3-7 in procedure "pl1_signal_" set ref 207* version 1 001353 automatic fixed bin(17,0) level 3 in structure "pl1_quit_info" dcl 68 in procedure "pl1_signal_" set ref 188* where 000221 automatic char(4) dcl 43 set ref 75* 110* 122* 141 215 225 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. condition_info based structure level 1 dcl 1-14 condition_info_header_ptr automatic pointer dcl 2-4 condition_info_ptr automatic pointer dcl 1-10 ondata_$calleroffset external static fixed bin(17,0) dcl 5-9 ondata_$callerpathname external static varying char(168) dcl 5-9 ondata_$callersegname external static varying char(32) dcl 5-9 ondata_$file_related external static fixed bin(15,0) dcl 5-9 ondata_$handled external static fixed bin(15,0) dcl 5-9 ondata_$infoptr external static pointer dcl 5-9 ondata_$oncalled external static varying char(256) dcl 5-9 ondata_$onchar external static char(1000) dcl 5-9 ondata_$oncount external static fixed bin(15,0) dcl 5-9 ondata_$onreturnp external static pointer dcl 5-9 ondata_$plio_code external static fixed bin(15,0) dcl 5-9 ondata_$pliopsp external static pointer dcl 5-9 ondata_$this_file external static pointer dcl 5-9 ondata_$who external static char(4) dcl 5-9 plio2_data_$badfsbp external static pointer dcl 6-82 plio2_data_$badjob external static bit(36) dcl 6-94 plio2_data_$fab2pstat external static pointer dcl 6-82 plio2_data_$fabpstat external static pointer dcl 6-82 plio2_data_$fsbpstat external static pointer dcl 6-82 plio2_data_$pliostringfsbp external static pointer dcl 6-82 plio2_data_$pspstat external static pointer dcl 6-82 plio2_data_$undef_file_sw external static bit(1) dcl 6-94 plio2_data_fsb_thread_ external static pointer initial dcl 6-91 psp automatic pointer dcl 35 quit_info_ptr automatic pointer dcl 4-5 NAMES DECLARED BY EXPLICIT CONTEXT. bad_oncode 001065 constant label dcl 228 ref 78 107 121 copy_ondata 001024 constant label dcl 220 ref 82 111 135 help_plio2_signal_ 000173 constant entry external dcl 113 math_error_ 000063 constant entry external dcl 74 pl1_ops_join 000315 constant label dcl 137 ref 226 pl1_signal_ 000051 constant entry external dcl 21 pl1_signal_from_ops_ 000122 constant entry external dcl 84 restoreondata 001130 constant entry internal dcl 232 ref 217 224 signal_it 000624 constant label dcl 182 ref 225 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1374 1434 1201 1404 Length 1750 1201 40 300 173 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME pl1_signal_ 918 external procedure is an external procedure. on unit on line 224 64 on unit restoreondata 64 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME pl1_signal_ 000100 fsbp pl1_signal_ 000102 file_p pl1_signal_ 000104 fabptr pl1_signal_ 000106 cond_ptr pl1_signal_ 000110 tc256v pl1_signal_ 000211 conname pl1_signal_ 000221 where pl1_signal_ 000222 vchar256 pl1_signal_ 000323 filename33 pl1_signal_ 000334 tc256vsw pl1_signal_ 000335 codex pl1_signal_ 000336 file_related pl1_signal_ 000337 numb pl1_signal_ 000340 j pl1_signal_ 000341 save_ondata pl1_signal_ 001024 auto_pl1_info pl1_signal_ 001353 pl1_quit_info pl1_signal_ 001462 pl1_info_ptr pl1_signal_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp call_ext_out_desc call_int_this call_int_other return_mac enable_op shorten_stack ext_entry ext_entry_desc int_entry set_support THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. pl1_signal_$help_plio2_signal_ signal_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. ondata_$condition_name ondata_$datafield ondata_$fileptr ondata_$oncharindex ondata_$oncode ondata_$ondatalength ondata_$onfile ondata_$onkey ondata_$onloc ondata_$onsource LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 21 000050 72 000057 74 000060 75 000074 76 000076 77 000100 78 000102 79 000106 80 000110 81 000111 82 000114 84 000115 102 000135 103 000137 104 000141 105 000142 106 000146 107 000150 109 000156 110 000163 111 000165 113 000166 115 000214 116 000216 117 000225 118 000227 119 000235 121 000241 122 000245 123 000247 126 000254 128 000263 129 000267 132 000301 134 000312 135 000314 137 000315 141 000317 143 000334 144 000337 145 000366 147 000367 149 000376 150 000402 151 000432 152 000436 153 000440 154 000444 156 000445 157 000451 159 000501 162 000504 163 000513 165 000514 173 000546 174 000550 177 000615 178 000620 179 000623 182 000624 185 000630 186 000632 187 000635 188 000637 189 000641 190 000643 193 000644 194 000646 195 000653 196 000655 197 000666 198 000671 199 000674 200 000705 201 000726 204 000731 205 000737 206 000744 207 000746 208 000750 209 000751 210 000752 213 000755 215 000777 217 001017 218 001023 220 001024 223 001027 224 001036 225 001061 226 001064 228 001065 230 001126 232 001127 233 001136 234 001144 235 001153 236 001155 237 001156 239 001160 241 001166 243 001177 ----------------------------------------------------------- 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