COMPILATION LISTING OF SEGMENT opr_query_response Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/28/85 1108.7 mst Mon Options: optimize list 1 2 /* *********************************************************** 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 5* * * 6* * Copyright (c) 1972 by Massachusetts Institute of * 7* * Technology and Honeywell Information Systems, Inc. * 8* * * 9* *********************************************************** */ 10 11 12 /* format: style4 */ 13 opr_query_response: proc; 14 15 /* opr_query_response - operator command interface to respond to an opr_query_ request */ 16 /* initial coding by J. A. Bush 10/78. 17* Modified 03/83 by Rick Fakoury to allow the operator to send a message in responce to a question. 18* Modified 08/83 by Rick Fakoury to correct an oversight. 19**/ 20 21 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 22 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), 23 fixed bin (2), ptr, fixed bin (35)); 24 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 25 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 26 dcl com_err_ entry options (variable); 27 28 dcl arg char (al) based (ap); 29 dcl (al, arg_cnt, i) fixed bin; 30 dcl ap ptr; 31 dcl msg char (80) varying init (""); 32 dcl code fixed bin (35); 33 dcl error_table_$wrong_no_of_args fixed bin (35) ext; 34 dcl null builtin; 35 dcl pname char (18) static options (constant) init ("opr_query_response"); 36 dcl sc_dir char (168) static options (constant) init 37 (">system_control_1"); 38 39 40 msg = ""; 41 call cu_$arg_count (arg_cnt, code); 42 do i = 1 to arg_cnt; 43 call cu_$arg_ptr (i, ap, al, code); /* get the operators response */ 44 if code ^= 0 then do; /* some error, tell opr about it */ 45 call com_err_ (error_table_$wrong_no_of_args, pname, /* so tell him */ 46 "Usage: ^a answer", pname); 47 return; 48 end; 49 msg = msg || " " || arg; 50 end; 51 52 if oqdp = null then do; /* if first reference in our process */ 53 call hcs_$initiate (sc_dir, "opr_query_data", "", 0, 1, oqdp, code); /* initiate opr_query_data segment */ 54 if oqdp = null then do; /* if we can't initiate, tell user */ 55 call com_err_ (code, pname, "attempting to initiate ^a>opr_query_data", sc_dir); 56 return; 57 end; 58 end; 59 if opr_query_data.lock_id = "0"b then do; /* no response pending */ 60 call com_err_ (0, pname, "No operator response pending"); 61 return; 62 end; 63 if arg = opr_query_data.prim | arg = opr_query_data.alt then do; /* if valid response */ 64 opr_query_data.answer = arg; /* save answer and wakeup requesting process */ 65 call hcs_$wakeup (opr_query_data.process_id, opr_query_data.event_chan, 0, code); 66 if code ^= 0 then do; /* error on wakeup */ 67 call com_err_ (code, pname, "attempting to issue wakeup to process id ^12.3b", 68 opr_query_data.lock_id); 69 return; 70 end; 71 end; 72 else if opr_query_data.q_sw then do; 73 opr_query_data.answer = msg; /* save answer and wakeup requesting process */ 74 call hcs_$wakeup (opr_query_data.process_id, opr_query_data.event_chan, 0, code); 75 if code ^= 0 then do; /* error on wakeup */ 76 call com_err_ (code, pname, "attempting to issue wakeup to process id ^12.3b", 77 opr_query_data.lock_id); 78 return; 79 end; 80 end; 81 else do; /* if invalid response */ 82 call com_err_ (0, pname, " ^[ ^a ^/ ^] ^[ respond: x oqr ^a^]^[ ^/^-^-^-or: x oqr ^a ^] ", 83 (opr_query_data.r_comment ^= ""), opr_query_data.r_comment, (opr_query_data.prim ^= ""), opr_query_data.prim, 84 (opr_query_data.alt ^= ""), opr_query_data.alt); 85 return; /* tell opr what is expected and return */ 86 end; 87 1 1 1 2 /* BEGIN INCLUDE FILE opr_query_data.incl.pl1 */ 1 3 1 4 /* created 10/20/78 by J. A. Bush. 1 5* Modified by Rick Fakoury to increase size of the allowable answer. 1 6**/ 1 7 1 8 dcl oqdp int static ptr init (null); /* ptr to opr_query_data segment in >sc1 */ 1 9 1 10 dcl 1 opr_query_data aligned based (oqdp), /* structure for opr_query_data segment in >sc1 */ 1 11 2 lock_id bit (36), /* lock id of user waiting for operator response */ 1 12 2 process_id bit(36), /* processid of user - used for wakeup call */ 1 13 2 wait_list, /* wait list of channels for operators response */ 1 14 3 nchan fixed bin, /* number of channels, = to 1 */ 1 15 3 pad fixed bin, 1 16 3 event_chan fixed bin (71), /* event channel id of operator wait channel */ 1 17 2 q_sw bit (1) aligned, /* this is a question */ 1 18 2 prim char (8), /* primary expected operators response */ 1 19 2 alt char (8), /* alternate expected operator response */ 1 20 2 r_comment char (64), /* comment with the message */ 1 21 2 answer char (80) varying; /* operators answer */ 1 22 1 23 /* END INCLUDE FILE opr_query_data.incl.pl1 */ 1 24 88 89 90 end opr_query_response; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/28/85 1056.2 opr_query_response.pl1 >spec>online>7058.pbf>opr_query_response.pl1 88 1 06/09/83 1430.8 opr_query_data.incl.pl1 >ldd>include>opr_query_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. al 000100 automatic fixed bin(17,0) dcl 29 set ref 43* 49 63 63 64 alt 11 based char(8) level 2 dcl 1-10 set ref 63 82 82* answer 33 based varying char(80) level 2 dcl 1-10 set ref 64* 73* ap 000104 automatic pointer dcl 30 set ref 43* 49 63 63 64 arg based char unaligned dcl 28 ref 49 63 63 64 arg_cnt 000101 automatic fixed bin(17,0) dcl 29 set ref 41* 42 code 000133 automatic fixed bin(35,0) dcl 32 set ref 41* 43* 44 53* 55* 65* 66 67* 74* 75 76* com_err_ 000022 constant entry external dcl 26 ref 45 55 60 67 76 82 cu_$arg_count 000016 constant entry external dcl 24 ref 41 cu_$arg_ptr 000020 constant entry external dcl 25 ref 43 error_table_$wrong_no_of_args 000024 external static fixed bin(35,0) dcl 33 set ref 45* event_chan 4 based fixed bin(71,0) level 3 dcl 1-10 set ref 65* 74* hcs_$initiate 000014 constant entry external dcl 22 ref 53 hcs_$wakeup 000012 constant entry external dcl 21 ref 65 74 i 000102 automatic fixed bin(17,0) dcl 29 set ref 42* 43* lock_id based bit(36) level 2 dcl 1-10 set ref 59 67* 76* msg 000106 automatic varying char(80) initial dcl 31 set ref 31* 40* 49* 49 73 null builtin function dcl 34 ref 52 54 opr_query_data based structure level 1 dcl 1-10 oqdp 000010 internal static pointer initial dcl 1-8 set ref 52 53* 54 59 63 63 64 65 65 67 72 73 74 74 76 82 82 82 82 82 82 pname 000052 constant char(18) initial unaligned dcl 35 set ref 45* 45* 55* 60* 67* 76* 82* prim 7 based char(8) level 2 dcl 1-10 set ref 63 82 82* process_id 1 based bit(36) level 2 dcl 1-10 set ref 65* 74* q_sw 6 based bit(1) level 2 dcl 1-10 ref 72 r_comment 13 based char(64) level 2 dcl 1-10 set ref 82 82* sc_dir 000000 constant char(168) initial unaligned dcl 36 set ref 53* 55* wait_list 2 based structure level 2 dcl 1-10 NAME DECLARED BY EXPLICIT CONTEXT. opr_query_response 000174 constant entry external dcl 13 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1050 1076 746 1060 Length 1300 746 26 166 101 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME opr_query_response 202 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 oqdp opr_query_response STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME opr_query_response 000100 al opr_query_response 000101 arg_cnt opr_query_response 000102 i opr_query_response 000104 ap opr_query_response 000106 msg opr_query_response 000133 code opr_query_response THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr hcs_$initiate hcs_$wakeup THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$wrong_no_of_args CONSTANTS 000000 aa 076 163 171 163 >sys 000001 aa 164 145 155 137 tem_ 000002 aa 143 157 156 164 cont 000003 aa 162 157 154 137 rol_ 000004 aa 061 040 040 040 1 000005 aa 040 040 040 040 000006 aa 040 040 040 040 000007 aa 040 040 040 040 000010 aa 040 040 040 040 000011 aa 040 040 040 040 000012 aa 040 040 040 040 000013 aa 040 040 040 040 000014 aa 040 040 040 040 000015 aa 040 040 040 040 000016 aa 040 040 040 040 000017 aa 040 040 040 040 000020 aa 040 040 040 040 000021 aa 040 040 040 040 000022 aa 040 040 040 040 000023 aa 040 040 040 040 000024 aa 040 040 040 040 000025 aa 040 040 040 040 000026 aa 040 040 040 040 000027 aa 040 040 040 040 000030 aa 040 040 040 040 000031 aa 040 040 040 040 000032 aa 040 040 040 040 000033 aa 040 040 040 040 000034 aa 040 040 040 040 000035 aa 040 040 040 040 000036 aa 040 040 040 040 000037 aa 040 040 040 040 000040 aa 040 040 040 040 000041 aa 040 040 040 040 000042 aa 040 040 040 040 000043 aa 040 040 040 040 000044 aa 040 040 040 040 000045 aa 040 040 040 040 000046 aa 040 040 040 040 000047 aa 040 040 040 040 000050 aa 040 040 040 040 000051 aa 040 040 040 040 000052 aa 157 160 162 137 opr_ 000053 aa 161 165 145 162 quer 000054 aa 171 137 162 145 y_re 000055 aa 163 160 157 156 spon 000056 aa 163 145 000 000 se 000057 aa 524000000010 000060 aa 524000000100 000061 aa 514000000001 000062 aa 524000000076 000063 aa 514000000044 000064 aa 524000000057 000065 aa 524000000034 000066 aa 404000000005 000067 aa 524000000050 000070 aa 464000000000 000071 aa 404000000002 000072 aa 404000000001 000073 aa 524000000000 000074 aa 524000000016 000075 aa 526000000250 000745 aa 040 000 000 000 000076 aa 524000000020 000077 aa 526000000022 000100 aa 404000000043 000102 aa 000000000000 000103 aa 000000000000 000104 aa 077777000043 000105 aa 000001000000 000106 aa 157 160 162 137 opr_ 000107 aa 161 165 145 162 quer 000110 aa 171 137 144 141 y_da 000111 aa 164 141 000 000 ta 000112 aa 125 163 141 147 Usag 000113 aa 145 072 040 136 e: ^ 000114 aa 141 040 141 156 a an 000115 aa 163 167 145 162 swer 000116 aa 116 157 040 157 No o 000117 aa 160 145 162 141 pera 000120 aa 164 157 162 040 tor 000121 aa 162 145 163 160 resp 000122 aa 157 156 163 145 onse 000123 aa 040 160 145 156 pen 000124 aa 144 151 156 147 ding 000125 aa 141 164 164 145 atte 000126 aa 155 160 164 151 mpti 000127 aa 156 147 040 164 ng t 000130 aa 157 040 151 156 o in 000131 aa 151 164 151 141 itia 000132 aa 164 145 040 136 te ^ 000133 aa 141 076 157 160 a>op 000134 aa 162 137 161 165 r_qu 000135 aa 145 162 171 137 ery_ 000136 aa 144 141 164 141 data 000137 aa 141 164 164 145 atte 000140 aa 155 160 164 151 mpti 000141 aa 156 147 040 164 ng t 000142 aa 157 040 151 163 o is 000143 aa 163 165 145 040 sue 000144 aa 167 141 153 145 wake 000145 aa 165 160 040 164 up t 000146 aa 157 040 160 162 o pr 000147 aa 157 143 145 163 oces 000150 aa 163 040 151 144 s id 000151 aa 040 136 061 062 ^12 000152 aa 056 063 142 000 .3b 000153 aa 040 136 133 040 ^[ 000154 aa 136 141 040 136 ^a ^ 000155 aa 057 040 136 135 / ^] 000156 aa 040 136 133 040 ^[ 000157 aa 162 145 163 160 resp 000160 aa 157 156 144 072 ond: 000161 aa 040 170 040 157 x o 000162 aa 161 162 040 136 qr ^ 000163 aa 141 136 135 136 a^]^ 000164 aa 133 040 136 057 [ ^/ 000165 aa 136 055 136 055 ^-^- 000166 aa 136 055 157 162 ^-or 000167 aa 072 040 170 040 : x 000170 aa 157 161 162 040 oqr 000171 aa 136 141 040 136 ^a ^ 000172 aa 135 040 000 000 ] BEGIN PROCEDURE opr_query_response ENTRY TO opr_query_response STATEMENT 1 ON LINE 13 opr_query_response: proc; 000173 da 000075200000 000174 aa 000320 6270 00 eax7 208 000175 aa 7 00034 3521 20 epp2 pr7|28,* 000176 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000177 aa 000000000000 000200 aa 000000000000 STATEMENT 1 ON LINE 31 000201 aa 6 00106 4501 00 stz pr6|70 msg STATEMENT 1 ON LINE 41 call cu_$arg_count (arg_cnt, code); 000202 aa 6 00101 3521 00 epp2 pr6|65 arg_cnt 000203 aa 6 00140 2521 00 spri2 pr6|96 000204 aa 6 00133 3521 00 epp2 pr6|91 code 000205 aa 6 00142 2521 00 spri2 pr6|98 000206 aa 6 00136 6211 00 eax1 pr6|94 000207 aa 010000 4310 07 fld 4096,dl 000210 la 4 00016 3521 20 epp2 pr4|14,* cu_$arg_count 000211 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 42 do i = 1 to arg_cnt; 000212 aa 6 00101 2361 00 ldq pr6|65 arg_cnt 000213 aa 6 00134 7561 00 stq pr6|92 000214 aa 000001 2360 07 ldq 1,dl 000215 aa 6 00102 7561 00 stq pr6|66 i 000216 aa 6 00102 2361 00 ldq pr6|66 i 000217 aa 6 00134 1161 00 cmpq pr6|92 000220 aa 000111 6054 04 tpnz 73,ic 000331 STATEMENT 1 ON LINE 43 call cu_$arg_ptr (i, ap, al, code); 000221 aa 6 00102 3521 00 epp2 pr6|66 i 000222 aa 6 00146 2521 00 spri2 pr6|102 000223 aa 6 00104 3521 00 epp2 pr6|68 ap 000224 aa 6 00150 2521 00 spri2 pr6|104 000225 aa 6 00100 3521 00 epp2 pr6|64 al 000226 aa 6 00152 2521 00 spri2 pr6|106 000227 aa 6 00133 3521 00 epp2 pr6|91 code 000230 aa 6 00154 2521 00 spri2 pr6|108 000231 aa 6 00144 6211 00 eax1 pr6|100 000232 aa 020000 4310 07 fld 8192,dl 000233 aa 6 00044 3701 20 epp4 pr6|36,* 000234 la 4 00020 3521 20 epp2 pr4|16,* cu_$arg_ptr 000235 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 44 if code ^= 0 then do; 000236 aa 6 00133 2361 00 ldq pr6|91 code 000237 aa 000032 6000 04 tze 26,ic 000271 STATEMENT 1 ON LINE 45 call com_err_ (error_table_$wrong_no_of_args, pname, /* so tell him */ "Usage: ^a answer", pname); 000240 aa 777652 2370 04 ldaq -86,ic 000112 = 125163141147 145072040136 000241 aa 6 00136 7571 00 staq pr6|94 000242 aa 777652 2370 04 ldaq -86,ic 000114 = 141040141156 163167145162 000243 aa 6 00140 7571 00 staq pr6|96 000244 aa 6 00044 3701 20 epp4 pr6|36,* 000245 la 4 00024 3521 20 epp2 pr4|20,* error_table_$wrong_no_of_args 000246 aa 6 00160 2521 00 spri2 pr6|112 000247 aa 777603 3520 04 epp2 -125,ic 000052 = 157160162137 000250 aa 6 00162 2521 00 spri2 pr6|114 000251 aa 6 00136 3521 00 epp2 pr6|94 000252 aa 6 00164 2521 00 spri2 pr6|116 000253 aa 777577 3520 04 epp2 -129,ic 000052 = 157160162137 000254 aa 6 00166 2521 00 spri2 pr6|118 000255 aa 777623 3520 04 epp2 -109,ic 000100 = 404000000043 000256 aa 6 00170 2521 00 spri2 pr6|120 000257 aa 777620 3520 04 epp2 -112,ic 000077 = 526000000022 000260 aa 6 00172 2521 00 spri2 pr6|122 000261 aa 6 00176 2521 00 spri2 pr6|126 000262 aa 777614 3520 04 epp2 -116,ic 000076 = 524000000020 000263 aa 6 00174 2521 00 spri2 pr6|124 000264 aa 6 00156 6211 00 eax1 pr6|110 000265 aa 020000 4310 07 fld 8192,dl 000266 la 4 00022 3521 20 epp2 pr4|18,* com_err_ 000267 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 47 return; 000270 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 48 end; STATEMENT 1 ON LINE 49 msg = msg || " " || arg; 000271 aa 6 00106 2361 00 ldq pr6|70 msg 000272 aa 000001 0760 07 adq 1,dl 000273 aa 0 00551 7001 00 tsx0 pr0|361 alloc_cs 000274 aa 6 00106 7271 00 lxl7 pr6|70 msg 000275 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000276 aa 6 00107 00 0017 desc9a pr6|71,x7 msg 000277 aa 2 00000 00 0017 desc9a pr2|0,x7 000300 aa 6 00106 7271 00 lxl7 pr6|70 msg 000301 aa 040 117 100 404 mlr (ic),(pr,x7),fill(040) 000302 aa 000444 00 0001 desc9a 292,1 000745 = 040000000000 000303 aa 2 00000 00 0001 desc9a pr2|0,1 000304 aa 6 00135 7561 00 stq pr6|93 000305 aa 6 00100 0761 00 adq pr6|64 al 000306 aa 6 00200 7561 00 stq pr6|128 000307 aa 0 00606 7001 00 tsx0 pr0|390 cat_realloc_cs 000310 aa 6 00135 2351 00 lda pr6|93 000311 aa 6 00104 3735 20 epp7 pr6|68,* ap 000312 aa 6 00100 7271 00 lxl7 pr6|64 al 000313 aa 040 145 100 540 mlr (pr,rl),(pr,rl,al),fill(040) 000314 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000315 aa 2 00000 00 0017 desc9a pr2|0,x7 000316 aa 6 00200 2361 00 ldq pr6|128 000317 aa 000120 1160 07 cmpq 80,dl 000320 aa 000002 6040 04 tmi 2,ic 000322 000321 aa 000120 2360 07 ldq 80,dl 000322 aa 6 00106 7561 00 stq pr6|70 msg 000323 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000324 aa 2 00000 00 0006 desc9a pr2|0,ql 000325 aa 6 00107 00 0006 desc9a pr6|71,ql msg STATEMENT 1 ON LINE 50 end; 000326 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000327 aa 6 00102 0541 00 aos pr6|66 i 000330 aa 777666 7100 04 tra -74,ic 000216 STATEMENT 1 ON LINE 52 if oqdp = null then do; 000331 aa 6 00044 3701 20 epp4 pr6|36,* 000332 ia 4 00010 2371 00 ldaq pr4|8 oqdp 000333 aa 777551 6770 04 eraq -151,ic 000104 = 077777000043 000001000000 000334 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 000335 aa 000105 6010 04 tnz 69,ic 000442 STATEMENT 1 ON LINE 53 call hcs_$initiate (sc_dir, "opr_query_data", "", 0, 1, oqdp, code); 000336 aa 777550 2370 04 ldaq -152,ic 000106 = 157160162137 161165145162 000337 aa 6 00136 7571 00 staq pr6|94 000340 aa 777550 2370 04 ldaq -152,ic 000110 = 171137144141 164141000000 000341 aa 6 00140 7571 00 staq pr6|96 000342 aa 6 00135 4501 00 stz pr6|93 000343 aa 000001 2360 07 ldq 1,dl 000344 aa 6 00201 7561 00 stq pr6|129 000345 aa 777433 3520 04 epp2 -229,ic 000000 = 076163171163 000346 aa 6 00204 2521 00 spri2 pr6|132 000347 aa 6 00136 3521 00 epp2 pr6|94 000350 aa 6 00206 2521 00 spri2 pr6|134 000351 aa 6 00200 3521 00 epp2 pr6|128 000352 aa 6 00210 2521 00 spri2 pr6|136 000353 aa 6 00135 3521 00 epp2 pr6|93 000354 aa 6 00212 2521 00 spri2 pr6|138 000355 aa 6 00201 3521 00 epp2 pr6|129 000356 aa 6 00214 2521 00 spri2 pr6|140 000357 ia 4 00010 3521 00 epp2 pr4|8 oqdp 000360 aa 6 00216 2521 00 spri2 pr6|142 000361 aa 6 00133 3521 00 epp2 pr6|91 code 000362 aa 6 00220 2521 00 spri2 pr6|144 000363 aa 777512 3520 04 epp2 -182,ic 000075 = 526000000250 000364 aa 6 00222 2521 00 spri2 pr6|146 000365 aa 777507 3520 04 epp2 -185,ic 000074 = 524000000016 000366 aa 6 00224 2521 00 spri2 pr6|148 000367 aa 777504 3520 04 epp2 -188,ic 000073 = 524000000000 000370 aa 6 00226 2521 00 spri2 pr6|150 000371 aa 777501 3520 04 epp2 -191,ic 000072 = 404000000001 000372 aa 6 00230 2521 00 spri2 pr6|152 000373 aa 777476 3520 04 epp2 -194,ic 000071 = 404000000002 000374 aa 6 00232 2521 00 spri2 pr6|154 000375 aa 777473 3520 04 epp2 -197,ic 000070 = 464000000000 000376 aa 6 00234 2521 00 spri2 pr6|156 000377 aa 777501 3520 04 epp2 -191,ic 000100 = 404000000043 000400 aa 6 00236 2521 00 spri2 pr6|158 000401 aa 6 00202 6211 00 eax1 pr6|130 000402 aa 034000 4310 07 fld 14336,dl 000403 la 4 00014 3521 20 epp2 pr4|12,* hcs_$initiate 000404 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 54 if oqdp = null then do; 000405 aa 6 00044 3701 20 epp4 pr6|36,* 000406 ia 4 00010 2371 00 ldaq pr4|8 oqdp 000407 aa 777475 6770 04 eraq -195,ic 000104 = 077777000043 000001000000 000410 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 000411 aa 000031 6010 04 tnz 25,ic 000442 STATEMENT 1 ON LINE 55 call com_err_ (code, pname, "attempting to initiate ^a>opr_query_data", sc_dir); 000412 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000413 aa 777513 00 0050 desc9a -181,40 000125 = 141164164145 000414 aa 6 00144 00 0050 desc9a pr6|100,40 000415 aa 6 00133 3521 00 epp2 pr6|91 code 000416 aa 6 00160 2521 00 spri2 pr6|112 000417 aa 777433 3520 04 epp2 -229,ic 000052 = 157160162137 000420 aa 6 00162 2521 00 spri2 pr6|114 000421 aa 6 00144 3521 00 epp2 pr6|100 000422 aa 6 00164 2521 00 spri2 pr6|116 000423 aa 777355 3520 04 epp2 -275,ic 000000 = 076163171163 000424 aa 6 00166 2521 00 spri2 pr6|118 000425 aa 777453 3520 04 epp2 -213,ic 000100 = 404000000043 000426 aa 6 00170 2521 00 spri2 pr6|120 000427 aa 777450 3520 04 epp2 -216,ic 000077 = 526000000022 000430 aa 6 00172 2521 00 spri2 pr6|122 000431 aa 777436 3520 04 epp2 -226,ic 000067 = 524000000050 000432 aa 6 00174 2521 00 spri2 pr6|124 000433 aa 777442 3520 04 epp2 -222,ic 000075 = 526000000250 000434 aa 6 00176 2521 00 spri2 pr6|126 000435 aa 6 00156 6211 00 eax1 pr6|110 000436 aa 020000 4310 07 fld 8192,dl 000437 la 4 00022 3521 20 epp2 pr4|18,* com_err_ 000440 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 56 return; 000441 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 57 end; STATEMENT 1 ON LINE 58 end; STATEMENT 1 ON LINE 59 if opr_query_data.lock_id = "0"b then do; 000442 ia 4 00010 2351 20 lda pr4|8,* opr_query_data.lock_id 000443 aa 000026 6010 04 tnz 22,ic 000471 STATEMENT 1 ON LINE 60 call com_err_ (0, pname, "No operator response pending"); 000444 aa 6 00201 4501 00 stz pr6|129 000445 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000446 aa 777451 00 0034 desc9a -215,28 000116 = 116157040157 000447 aa 6 00144 00 0034 desc9a pr6|100,28 000450 aa 6 00201 3521 00 epp2 pr6|129 000451 aa 6 00160 2521 00 spri2 pr6|112 000452 aa 777400 3520 04 epp2 -256,ic 000052 = 157160162137 000453 aa 6 00162 2521 00 spri2 pr6|114 000454 aa 6 00144 3521 00 epp2 pr6|100 000455 aa 6 00164 2521 00 spri2 pr6|116 000456 aa 777410 3520 04 epp2 -248,ic 000066 = 404000000005 000457 aa 6 00166 2521 00 spri2 pr6|118 000460 aa 777417 3520 04 epp2 -241,ic 000077 = 526000000022 000461 aa 6 00170 2521 00 spri2 pr6|120 000462 aa 777403 3520 04 epp2 -253,ic 000065 = 524000000034 000463 aa 6 00172 2521 00 spri2 pr6|122 000464 aa 6 00156 6211 00 eax1 pr6|110 000465 aa 014000 4310 07 fld 6144,dl 000466 la 4 00022 3521 20 epp2 pr4|18,* com_err_ 000467 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 61 return; 000470 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 62 end; STATEMENT 1 ON LINE 63 if arg = opr_query_data.prim | arg = opr_query_data.alt then do; 000471 aa 6 00104 3735 20 epp7 pr6|68,* ap 000472 ia 4 00010 3715 20 epp5 pr4|8,* oqdp 000473 aa 6 00100 7271 00 lxl7 pr6|64 al 000474 aa 040 100 106 540 cmpc (pr,rl),(pr),fill(040) 000475 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000476 aa 5 00007 00 0010 desc9a pr5|7,8 opr_query_data.prim 000477 aa 000005 6000 04 tze 5,ic 000504 000500 aa 040 100 106 540 cmpc (pr,rl),(pr),fill(040) 000501 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000502 aa 5 00011 00 0010 desc9a pr5|9,8 opr_query_data.alt 000503 aa 000063 6010 04 tnz 51,ic 000566 STATEMENT 1 ON LINE 64 opr_query_data.answer = arg; 000504 aa 6 00100 2361 00 ldq pr6|64 al 000505 aa 000120 1160 07 cmpq 80,dl 000506 aa 000002 6040 04 tmi 2,ic 000510 000507 aa 000120 2360 07 ldq 80,dl 000510 aa 5 00033 7561 00 stq pr5|27 opr_query_data.answer 000511 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000512 aa 7 00000 00 0006 desc9a pr7|0,ql arg 000513 aa 5 00034 00 0006 desc9a pr5|28,ql opr_query_data.answer STATEMENT 1 ON LINE 65 call hcs_$wakeup (opr_query_data.process_id, opr_query_data.event_chan, 0, code); 000514 aa 777366 2370 04 ldaq -266,ic 000102 = 000000000000 000000000000 000515 aa 6 00240 7571 00 staq pr6|160 000516 aa 5 00001 3521 00 epp2 pr5|1 opr_query_data.process_id 000517 aa 6 00146 2521 00 spri2 pr6|102 000520 aa 5 00004 3521 00 epp2 pr5|4 opr_query_data.event_chan 000521 aa 6 00150 2521 00 spri2 pr6|104 000522 aa 6 00240 3521 00 epp2 pr6|160 000523 aa 6 00152 2521 00 spri2 pr6|106 000524 aa 6 00133 3521 00 epp2 pr6|91 code 000525 aa 6 00154 2521 00 spri2 pr6|108 000526 aa 6 00144 6211 00 eax1 pr6|100 000527 aa 020000 4310 07 fld 8192,dl 000530 la 4 00012 3521 20 epp2 pr4|10,* hcs_$wakeup 000531 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 66 if code ^= 0 then do; 000532 aa 6 00133 2361 00 ldq pr6|91 code 000533 aa 000211 6000 04 tze 137,ic 000744 STATEMENT 1 ON LINE 67 call com_err_ (code, pname, "attempting to issue wakeup to process id ^12.3b", opr_query_data.lock_id); 000534 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000535 aa 777403 00 0060 desc9a -253,48 000137 = 141164164145 000536 aa 6 00156 00 0060 desc9a pr6|110,48 000537 aa 6 00133 3521 00 epp2 pr6|91 code 000540 aa 6 00204 2521 00 spri2 pr6|132 000541 aa 777311 3520 04 epp2 -311,ic 000052 = 157160162137 000542 aa 6 00206 2521 00 spri2 pr6|134 000543 aa 6 00156 3521 00 epp2 pr6|110 000544 aa 6 00210 2521 00 spri2 pr6|136 000545 aa 6 00044 3701 20 epp4 pr6|36,* 000546 ia 4 00010 3521 20 epp2 pr4|8,* opr_query_data.lock_id 000547 aa 6 00212 2521 00 spri2 pr6|138 000550 aa 777330 3520 04 epp2 -296,ic 000100 = 404000000043 000551 aa 6 00214 2521 00 spri2 pr6|140 000552 aa 777325 3520 04 epp2 -299,ic 000077 = 526000000022 000553 aa 6 00216 2521 00 spri2 pr6|142 000554 aa 777310 3520 04 epp2 -312,ic 000064 = 524000000057 000555 aa 6 00220 2521 00 spri2 pr6|144 000556 aa 777305 3520 04 epp2 -315,ic 000063 = 514000000044 000557 aa 6 00222 2521 00 spri2 pr6|146 000560 aa 6 00202 6211 00 eax1 pr6|130 000561 aa 020000 4310 07 fld 8192,dl 000562 la 4 00022 3521 20 epp2 pr4|18,* com_err_ 000563 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 69 return; 000564 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 70 end; STATEMENT 1 ON LINE 71 end; 000565 aa 000157 7100 04 tra 111,ic 000744 STATEMENT 1 ON LINE 72 else if opr_query_data.q_sw then do; 000566 aa 5 00006 2351 00 lda pr5|6 opr_query_data.q_sw 000567 aa 000060 6000 04 tze 48,ic 000647 STATEMENT 1 ON LINE 73 opr_query_data.answer = msg; 000570 aa 6 00106 2361 00 ldq pr6|70 msg 000571 aa 5 00033 7561 00 stq pr5|27 opr_query_data.answer 000572 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000573 aa 6 00107 00 0006 desc9a pr6|71,ql msg 000574 aa 5 00034 00 0006 desc9a pr5|28,ql opr_query_data.answer STATEMENT 1 ON LINE 74 call hcs_$wakeup (opr_query_data.process_id, opr_query_data.event_chan, 0, code); 000575 aa 777305 2370 04 ldaq -315,ic 000102 = 000000000000 000000000000 000576 aa 6 00240 7571 00 staq pr6|160 000577 aa 5 00001 3521 00 epp2 pr5|1 opr_query_data.process_id 000600 aa 6 00146 2521 00 spri2 pr6|102 000601 aa 5 00004 3521 00 epp2 pr5|4 opr_query_data.event_chan 000602 aa 6 00150 2521 00 spri2 pr6|104 000603 aa 6 00240 3521 00 epp2 pr6|160 000604 aa 6 00152 2521 00 spri2 pr6|106 000605 aa 6 00133 3521 00 epp2 pr6|91 code 000606 aa 6 00154 2521 00 spri2 pr6|108 000607 aa 6 00144 6211 00 eax1 pr6|100 000610 aa 020000 4310 07 fld 8192,dl 000611 la 4 00012 3521 20 epp2 pr4|10,* hcs_$wakeup 000612 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 75 if code ^= 0 then do; 000613 aa 6 00133 2361 00 ldq pr6|91 code 000614 aa 000130 6000 04 tze 88,ic 000744 STATEMENT 1 ON LINE 76 call com_err_ (code, pname, "attempting to issue wakeup to process id ^12.3b", opr_query_data.lock_id); 000615 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000616 aa 777322 00 0060 desc9a -302,48 000137 = 141164164145 000617 aa 6 00156 00 0060 desc9a pr6|110,48 000620 aa 6 00133 3521 00 epp2 pr6|91 code 000621 aa 6 00204 2521 00 spri2 pr6|132 000622 aa 777230 3520 04 epp2 -360,ic 000052 = 157160162137 000623 aa 6 00206 2521 00 spri2 pr6|134 000624 aa 6 00156 3521 00 epp2 pr6|110 000625 aa 6 00210 2521 00 spri2 pr6|136 000626 aa 6 00044 3701 20 epp4 pr6|36,* 000627 ia 4 00010 3521 20 epp2 pr4|8,* opr_query_data.lock_id 000630 aa 6 00212 2521 00 spri2 pr6|138 000631 aa 777247 3520 04 epp2 -345,ic 000100 = 404000000043 000632 aa 6 00214 2521 00 spri2 pr6|140 000633 aa 777244 3520 04 epp2 -348,ic 000077 = 526000000022 000634 aa 6 00216 2521 00 spri2 pr6|142 000635 aa 777227 3520 04 epp2 -361,ic 000064 = 524000000057 000636 aa 6 00220 2521 00 spri2 pr6|144 000637 aa 777224 3520 04 epp2 -364,ic 000063 = 514000000044 000640 aa 6 00222 2521 00 spri2 pr6|146 000641 aa 6 00202 6211 00 eax1 pr6|130 000642 aa 020000 4310 07 fld 8192,dl 000643 la 4 00022 3521 20 epp2 pr4|18,* com_err_ 000644 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 78 return; 000645 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 79 end; STATEMENT 1 ON LINE 80 end; 000646 aa 000076 7100 04 tra 62,ic 000744 STATEMENT 1 ON LINE 81 else do; STATEMENT 1 ON LINE 82 call com_err_ (0, pname, " ^[ ^a ^/ ^] ^[ respond: x oqr ^a^]^[ ^/^-^-^-or: x oqr ^a ^] ", (opr_query_data.r_comment ^= ""), opr_query_data.r_comment, (opr_query_data.prim ^= ""), opr_query_data.prim, (opr_query_data.alt ^= ""), opr_query_data.alt); 000647 aa 6 00201 4501 00 stz pr6|129 000650 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000651 aa 777303 00 0100 desc9a -317,64 000153 = 040136133040 000652 aa 6 00156 00 0100 desc9a pr6|110,64 000653 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 000654 aa 5 00013 00 0100 desc9a pr5|11,64 opr_query_data.r_comment 000655 aa 000072 00 0000 desc9a 58,0 000745 = 040000000000 000656 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 000657 aa 6 00135 7551 00 sta pr6|93 000660 aa 000000 4310 07 fld 0,dl 000661 aa 0 00440 2771 00 oraq pr0|288 = 040040040040 040040040040 000662 aa 5 00007 1151 00 cmpa pr5|7 opr_query_data.prim 000663 aa 000002 6010 04 tnz 2,ic 000665 000664 aa 5 00010 1161 00 cmpq pr5|8 opr_query_data.prim 000665 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 000666 aa 6 00200 7551 00 sta pr6|128 000667 aa 000000 4310 07 fld 0,dl 000670 aa 0 00440 2771 00 oraq pr0|288 = 040040040040 040040040040 000671 aa 5 00011 1151 00 cmpa pr5|9 opr_query_data.alt 000672 aa 000002 6010 04 tnz 2,ic 000674 000673 aa 5 00012 1161 00 cmpq pr5|10 opr_query_data.alt 000674 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 000675 aa 6 00242 7551 00 sta pr6|162 000676 aa 6 00201 3521 00 epp2 pr6|129 000677 aa 6 00246 2521 00 spri2 pr6|166 000700 aa 777152 3520 04 epp2 -406,ic 000052 = 157160162137 000701 aa 6 00250 2521 00 spri2 pr6|168 000702 aa 6 00156 3521 00 epp2 pr6|110 000703 aa 6 00252 2521 00 spri2 pr6|170 000704 aa 6 00135 3521 00 epp2 pr6|93 000705 aa 6 00254 2521 00 spri2 pr6|172 000706 aa 5 00013 3521 00 epp2 pr5|11 opr_query_data.r_comment 000707 aa 6 00256 2521 00 spri2 pr6|174 000710 aa 6 00200 3521 00 epp2 pr6|128 000711 aa 6 00260 2521 00 spri2 pr6|176 000712 aa 5 00007 3521 00 epp2 pr5|7 opr_query_data.prim 000713 aa 6 00262 2521 00 spri2 pr6|178 000714 aa 6 00242 3521 00 epp2 pr6|162 000715 aa 6 00264 2521 00 spri2 pr6|180 000716 aa 5 00011 3521 00 epp2 pr5|9 opr_query_data.alt 000717 aa 6 00266 2521 00 spri2 pr6|182 000720 aa 777146 3520 04 epp2 -410,ic 000066 = 404000000005 000721 aa 6 00270 2521 00 spri2 pr6|184 000722 aa 777155 3520 04 epp2 -403,ic 000077 = 526000000022 000723 aa 6 00272 2521 00 spri2 pr6|186 000724 aa 777136 3520 04 epp2 -418,ic 000062 = 524000000076 000725 aa 6 00274 2521 00 spri2 pr6|188 000726 aa 777133 3520 04 epp2 -421,ic 000061 = 514000000001 000727 aa 6 00276 2521 00 spri2 pr6|190 000730 aa 6 00302 2521 00 spri2 pr6|194 000731 aa 6 00306 2521 00 spri2 pr6|198 000732 aa 777126 3520 04 epp2 -426,ic 000060 = 524000000100 000733 aa 6 00300 2521 00 spri2 pr6|192 000734 aa 777123 3520 04 epp2 -429,ic 000057 = 524000000010 000735 aa 6 00304 2521 00 spri2 pr6|196 000736 aa 6 00310 2521 00 spri2 pr6|200 000737 aa 6 00244 6211 00 eax1 pr6|164 000740 aa 044000 4310 07 fld 18432,dl 000741 la 4 00022 3521 20 epp2 pr4|18,* com_err_ 000742 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 85 return; 000743 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 86 end; STATEMENT 1 ON LINE 90 end opr_query_response; 000744 aa 0 00631 7101 00 tra pr0|409 return END PROCEDURE opr_query_response ----------------------------------------------------------- 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