COMPILATION LISTING OF SEGMENT upd_message_task_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1724.2 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 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 /* */ 14 /* N__a_m_e: upd_message_task_ */ 15 /* */ 16 /* This procedure types messages on the user's console. Two messages are supplied */ 17 /* by the caller: one to be typed while processing in the "forward" direction; and a */ 18 /* second to be typed while processing in the "reverse" direction. */ 19 /* */ 20 /* U__s_a_g_e */ 21 /* */ 22 /* dcl upd_message_task_ entry(bit(36) aligned, ptr, ptr, fixed bin(35), fixed bin, */ 23 /* ptr, fixed bin, bit(1), bit(1), bit(1) aligned, */ 24 /* ptr, fixed bin, ptr, fixed bin); */ 25 /* */ 26 /* call upd_message_task_ (ctlw, areap, parentp, code, sev, taskp, seqno, */ 27 /* fwd_msg_sw, rev_msg_sw, fwd_done_sw, fwd_msgp, fwd_msgl, rev_msgp, */ 28 /* rev_msgl); */ 29 /* */ 30 /* 1) ctlw updater task control word.(In) */ 31 /* 2) areap ptr to caller-supplied area.(In) */ 32 /* 3) parentp ptr to caller's arglist.(In) */ 33 /* 4) code 0. (In) */ 34 /* status code of highest-severity error encountered during */ 35 /* processing.(Out) */ 36 /* 5) sev 0. (In) */ 37 /* severity of highest error encountered during processing.(Out) */ 38 /* 6) taskp null pointer.(In) */ 39 /* task pointer.(Out) */ 40 /* 7) seqno sequence number.(In) */ 41 /* 8) fwd_msg_sw on if fwd_msg is to be typed. (In) */ 42 /* 9) rev_msg_sw on if rev_msg is to be typed. (In) */ 43 /* 10) fwd_done_sw on if fwd_msg has been typed; off if rev_msg has been typed.(In/Out) */ 44 /* 11) fwd_msgp ptr to message to be typed when "run" in "forward" mode.(In) */ 45 /* 12) fwd_msgl length of message to be typed when "run" in "forward" mode.(In) */ 46 /* 13) rev_msgp ptr to message to be typed when "run" in "reverse" mode.(In) */ 47 /* 14) rev_msgl length of message to be typed when "run" in "reverse" mode.(In) */ 48 /* */ 49 /* S__t_a_t_u_s */ 50 /* */ 51 /* 1) Created: in Dec 1972 by G. C. Dixon */ 52 /* 2) Modified: in Dec 1972 by G. C. Dixon; pass ptr/length of strings to be typed, */ 53 /* rather than strings themselves to avoid */ 54 /* references through descriptors. */ 55 /* */ 56 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 57 58 59 /* */ 60 61 62 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 63 64 65 upd_message_task_: procedure (ctlw, areap, parentp, code, sev, taskp, seqno, 66 fwd_msg_sw, rev_msg_sw, fwd_done_sw, fwd_msgp, fwd_msgl, rev_msgp, rev_msgl); 67 68 69 dcl /* parameters */ 70 ctlw bit(36) aligned, /* updater control word. */ 71 areap ptr, /* caller-supplied area. */ 72 parentp ptr, /* parent's arglist ptr. */ 73 code fixed bin(35), /* status code. */ 74 sev fixed bin, /* severity code. */ 75 taskp ptr, /* task ptr. */ 76 seqno fixed bin, /* task sequence no. */ 77 fwd_msg_sw bit(1) unal, /* on if fwd message to be printed. */ 78 rev_msg_sw bit(1) unal, /* on if rev message to be print. */ 79 fwd_done_sw bit(1) aligned, /* on if fwd message has been printed. */ 80 fwd_msgp ptr, /* ptr to message to be typed in forward mode. */ 81 fwd_msgl fixed bin, /* length of message to be typed in forward */ 82 rev_msgp ptr, /* ptr to message to be typed in reverse mode. */ 83 rev_msgl fixed bin; /* length of message to be typed in reverse mode. */ 84 85 dcl /* automatic variables */ 86 Lmsg fixed bin, /* length of message */ 87 Pmsg ptr, /* ptr to message. */ 88 Psw ptr, /* ptr to msg_sw */ 89 argp ptr, /* ptr to our argument list. */ 90 cp ptr, /* ptr to task control word. */ 91 nelemt fixed bin, /* number of elements actually written. */ 92 rsw bit(1) aligned, /* copy of c.rsw for efficiency. */ 93 status_code bit(72) aligned; /* an IO system status code. */ 94 95 dcl /* based variables */ 96 1 c aligned based (cp), /* overlay for task control word. */ 97 (2 rsw bit(1), /* non-zero if in reverse mode. */ 98 2 tasksw bit(1), /* non-zero if to set up a task call to ourself. */ 99 2 compsw bit(1), /* ignored. */ 100 2 runsw bit(1), /* non-zero if messages to be typed immediately */ 101 2 trunsw bit(1)) unaligned, /* non-zero if this task to be processed */ 102 /* immediately, but not its subtasks. */ 103 sw bit(1) based (Psw); /* on if message is to be printed. */ 104 105 dcl /* entries and builtin functions */ 106 addr builtin, 107 cu_$arg_list_ptr entry (ptr), 108 ios_$write entry (char(*), ptr, fixed bin, fixed bin, fixed bin, bit(72) aligned), 109 length builtin, 110 upd_add_task_ entry (char(*), ptr); 111 112 dcl /* static variable */ 113 nl char(1) aligned int static init (" 114 "); /* a new-line character. */ 115 116 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 117 118 119 120 121 122 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 123 124 125 call cu_$arg_list_ptr (argp); /* get ptr to arglist for "task" mode. */ 126 cp = addr (ctlw); /* overlay our control word. */ 127 if c.tasksw then /* called in "task" mode? Then create a task call */ 128 /* to ourself. */ 129 call upd_add_task_ ("upd_message_task_", argp); 130 131 if ^c.runsw then if ^c.trunsw then /* no more to do? Then quit. */ 132 return; 133 134 rsw = c.rsw; /* copy reverse switch for efficiency. */ 135 if ^rsw then do; /* "Forward" Ho! */ 136 Psw = addr (fwd_msg_sw); /* use fwd msg switch. */ 137 Lmsg = fwd_msgl; /* set length and ptr to msg. */ 138 Pmsg = fwd_msgp; 139 end; 140 else do; /* "Reverse" Away! */ 141 Psw = addr (rev_msg_sw); /* use rev msg switch. */ 142 Lmsg = rev_msgl; 143 Pmsg = rev_msgp; 144 end; 145 146 if rsw = fwd_done_sw then do; /* if "forward" mode and "forward" hasn't been */ 147 /* done, or vica versa for "reverse". */ 148 if sw then /* if we're supposed to type message, then */ 149 if Lmsg > 0 then do; /* if there is a message, then type it. */ 150 call ios_$write ("installation_list_", Pmsg, 0, Lmsg, nelemt, status_code); 151 call ios_$write ("installation_list_", addr (nl), 0, 1, nelemt, status_code); 152 end; 153 fwd_done_sw = ^rsw; /* set our current direction done. */ 154 end; 155 156 157 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 158 159 160 end upd_message_task_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1514.3 upd_message_task_.pl1 >dumps>old>recomp>upd_message_task_.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. Lmsg 000100 automatic fixed bin(17,0) dcl 85 set ref 137* 142* 148 150* Pmsg 000102 automatic pointer dcl 85 set ref 138* 143* 150* Psw 000104 automatic pointer dcl 85 set ref 136* 141* 148 addr builtin function dcl 105 ref 126 136 141 151 151 areap parameter pointer dcl 69 ref 65 argp 000106 automatic pointer dcl 85 set ref 125* 127* c based structure level 1 dcl 95 code parameter fixed bin(35,0) dcl 69 ref 65 cp 000110 automatic pointer dcl 85 set ref 126* 127 131 131 134 ctlw parameter bit(36) dcl 69 set ref 65 126 cu_$arg_list_ptr 000012 constant entry external dcl 105 ref 125 fwd_done_sw parameter bit(1) dcl 69 set ref 65 146 153* fwd_msg_sw parameter bit(1) unaligned dcl 69 set ref 65 136 fwd_msgl parameter fixed bin(17,0) dcl 69 ref 65 137 fwd_msgp parameter pointer dcl 69 ref 65 138 ios_$write 000014 constant entry external dcl 105 ref 150 151 nelemt 000112 automatic fixed bin(17,0) dcl 85 set ref 150* 151* nl 000010 internal static char(1) initial dcl 112 set ref 151 151 parentp parameter pointer dcl 69 ref 65 rev_msg_sw parameter bit(1) unaligned dcl 69 set ref 65 141 rev_msgl parameter fixed bin(17,0) dcl 69 ref 65 142 rev_msgp parameter pointer dcl 69 ref 65 143 rsw based bit(1) level 2 in structure "c" packed unaligned dcl 95 in procedure "upd_message_task_" ref 134 rsw 000113 automatic bit(1) dcl 85 in procedure "upd_message_task_" set ref 134* 135 146 153 runsw 0(03) based bit(1) level 2 packed unaligned dcl 95 ref 131 seqno parameter fixed bin(17,0) dcl 69 ref 65 sev parameter fixed bin(17,0) dcl 69 ref 65 status_code 000114 automatic bit(72) dcl 85 set ref 150* 151* sw based bit(1) unaligned dcl 95 ref 148 taskp parameter pointer dcl 69 ref 65 tasksw 0(01) based bit(1) level 2 packed unaligned dcl 95 ref 127 trunsw 0(04) based bit(1) level 2 packed unaligned dcl 95 ref 131 upd_add_task_ 000016 constant entry external dcl 105 ref 127 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. length builtin function dcl 105 NAME DECLARED BY EXPLICIT CONTEXT. upd_message_task_ 000035 constant entry external dcl 65 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 332 352 255 342 Length 524 255 20 136 54 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME upd_message_task_ 127 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 nl upd_message_task_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME upd_message_task_ 000100 Lmsg upd_message_task_ 000102 Pmsg upd_message_task_ 000104 Psw upd_message_task_ 000106 argp upd_message_task_ 000110 cp upd_message_task_ 000112 nelemt upd_message_task_ 000113 rsw upd_message_task_ 000114 status_code upd_message_task_ 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. cu_$arg_list_ptr ios_$write upd_add_task_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 65 000023 125 000042 126 000050 127 000053 131 000101 134 000107 135 000112 136 000113 137 000116 138 000120 139 000123 141 000124 142 000127 143 000131 146 000134 148 000140 150 000146 151 000205 153 000250 160 000254 ----------------------------------------------------------- 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