COMPILATION LISTING OF SEGMENT extract_message_doc Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1726.6 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 extract_message_doc: proc; 12 13 /* EXTRACT_MESSAGE_DOC - Find error message documentation in source program comment. 14* 15* THVV 4/77 */ 16 17 dcl i fixed bin; 18 dcl ap ptr, al fixed bin, bchr char (al) based (ap) unal; 19 dcl me char (19) static options (constant) init ("extract_message_doc"); 20 dcl segp ptr; 21 dcl scc fixed bin (21); 22 dcl iocbp ptr; 23 dcl bitc fixed bin (24); 24 dcl ec fixed bin (35); 25 dcl dn char (168); 26 dcl en char (32); 27 dcl target char (168); 28 dcl acptr ptr; 29 dcl acsw bit (1) init ("0"b); 30 dcl bfsw bit (1) init ("0"b); 31 32 dcl extract_msg_doc_ entry (char (*), ptr, fixed bin (21), ptr, fixed bin (35)); 33 34 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 35 dcl com_err_ entry options (variable); 36 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 37 dcl absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 38 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 39 dcl unique_chars_ entry (bit (*)) returns (char (15)); 40 dcl iox_$attach_ioname entry (char (*), ptr, char (*), fixed bin (35)); 41 dcl iox_$open entry (ptr, fixed bin, bit (1), fixed bin (35)); 42 dcl iox_$close entry (ptr, fixed bin (35)); 43 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 44 dcl hcs_$initiate_count entry (char (*), char (*), char (*), fixed bin (24), fixed bin (2), 45 ptr, fixed bin (35)); 46 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), 47 ptr, fixed bin (35)); 48 dcl archive_util_$first_disected entry (ptr, ptr, char (32), fixed bin (24), fixed bin (35)); 49 dcl archive_util_$disected_element entry (ptr, ptr, char (32), fixed bin (24), fixed bin (35)); 50 51 dcl error_table_$badopt fixed bin (35) ext; 52 53 dcl (divide, index, length, null, rtrim, substr, verify) builtin; 54 dcl cleanup condition; 55 56 call cu_$arg_ptr (1, ap, al, ec); 57 if ec ^= 0 then do; 58 er1: call com_err_ (ec, me, ""); 59 return; 60 end; 61 call expand_pathname_ (bchr, dn, en, ec); 62 if ec ^= 0 then do; 63 call com_err_ (ec, me, "^a", bchr); 64 return; 65 end; 66 call hcs_$initiate_count (dn, en, "", bitc, 1, segp, ec); 67 if segp = null then do; 68 er: call com_err_ (ec, me, "^a>^a", dn, en); 69 return; 70 end; 71 if index (en, ".archive") ^= 0 then do; 72 acsw = "1"b; 73 acptr = segp; 74 call archive_util_$first_disected (acptr, segp, en, bitc, ec); 75 if ec ^= 0 then go to er; 76 end; 77 scc = divide (bitc, 9, 17, 0); 78 79 call cu_$arg_ptr (2, ap, al, ec); 80 if ec ^= 0 then go to er1; 81 call absolute_pathname_ (bchr, target, ec); 82 if ec ^= 0 then do; 83 call com_err_ (ec, "^a", bchr); 84 go to exit; 85 end; 86 call iox_$attach_ioname (unique_chars_ ("0"b), iocbp, 87 "vfile_ " || target || " -extend", ec); 88 if ec ^= 0 then do; 89 call com_err_ (ec, me, "Attaching to ^a", target); 90 go to exit; 91 end; 92 call iox_$open (iocbp, 2, "1"b, ec); 93 94 call cu_$arg_ptr (3, ap, al, ec); 95 if ec = 0 then 96 if bchr = "-brief" | bchr = "-bf" then bfsw = "1"b; 97 else do; 98 call com_err_ (error_table_$badopt, me, "^a", bchr); 99 go to wump; 100 end; 101 102 on cleanup begin; 103 call iox_$close (iocbp, 0); 104 call iox_$detach_iocb (iocbp, 0); 105 end; 106 107 nxac: call extract_msg_doc_ (en, segp, scc, iocbp, ec); 108 if ec = 1 109 then if bfsw then; 110 else call com_err_ (0, me, "Documentation missing in ^a", en); 111 else if ec ^= 0 then call com_err_ (ec, me, "Error extracting documentation from ^a", en); 112 if acsw then do; 113 call archive_util_$disected_element (acptr, segp, en, bitc, ec); 114 if ec = 0 then do; 115 scc = divide (bitc, 9, 17, 0); 116 go to nxac; 117 end; 118 end; 119 120 wump: call iox_$close (iocbp, ec); 121 call iox_$detach_iocb (iocbp, ec); 122 exit: call hcs_$terminate_noname (segp, ec); 123 124 end extract_message_doc; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1516.1 extract_message_doc.pl1 >dumps>old>recomp>extract_message_doc.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. absolute_pathname_ 000020 constant entry external dcl 37 ref 81 acptr 000250 automatic pointer dcl 28 set ref 73* 74* 113* acsw 000252 automatic bit(1) initial unaligned dcl 29 set ref 29* 72* 112 al 000102 automatic fixed bin(17,0) dcl 18 set ref 56* 61 61 63 63 79* 81 81 83 83 94* 95 95 98 98 ap 000100 automatic pointer dcl 18 set ref 56* 61 63 79* 81 83 94* 95 95 98 archive_util_$disected_element 000042 constant entry external dcl 49 ref 113 archive_util_$first_disected 000040 constant entry external dcl 48 ref 74 bchr based char unaligned dcl 18 set ref 61* 63* 81* 83* 95 95 98* bfsw 000253 automatic bit(1) initial unaligned dcl 30 set ref 30* 95* 108 bitc 000112 automatic fixed bin(24,0) dcl 23 set ref 66* 74* 77 113* 115 cleanup 000254 stack reference condition dcl 54 ref 102 com_err_ 000014 constant entry external dcl 35 ref 58 63 68 83 89 98 110 111 cu_$arg_ptr 000012 constant entry external dcl 34 ref 56 79 94 divide builtin function dcl 53 ref 77 115 dn 000114 automatic char(168) unaligned dcl 25 set ref 61* 66* 68* ec 000113 automatic fixed bin(35,0) dcl 24 set ref 56* 57 58* 61* 62 63* 66* 68* 74* 75 79* 80 81* 82 83* 86* 88 89* 92* 94* 95 107* 108 111 111* 113* 114 120* 121* 122* en 000166 automatic char(32) unaligned dcl 26 set ref 61* 66* 68* 71 74* 107* 110* 111* 113* error_table_$badopt 000044 external static fixed bin(35,0) dcl 51 set ref 98* expand_pathname_ 000016 constant entry external dcl 36 ref 61 extract_msg_doc_ 000010 constant entry external dcl 32 ref 107 hcs_$initiate_count 000036 constant entry external dcl 44 ref 66 hcs_$terminate_noname 000022 constant entry external dcl 38 ref 122 index builtin function dcl 53 ref 71 iocbp 000110 automatic pointer dcl 22 set ref 86* 92* 103* 104* 107* 120* 121* iox_$attach_ioname 000026 constant entry external dcl 40 ref 86 iox_$close 000032 constant entry external dcl 42 ref 103 120 iox_$detach_iocb 000034 constant entry external dcl 43 ref 104 121 iox_$open 000030 constant entry external dcl 41 ref 92 me 000000 constant char(19) initial unaligned dcl 19 set ref 58* 63* 68* 89* 98* 110* 111* null builtin function dcl 53 ref 67 scc 000106 automatic fixed bin(21,0) dcl 21 set ref 77* 107* 115* segp 000104 automatic pointer dcl 20 set ref 66* 67 73 74* 107* 113* 122* target 000176 automatic char(168) unaligned dcl 27 set ref 81* 86 89* unique_chars_ 000024 constant entry external dcl 39 ref 86 86 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. hcs_$make_seg 000000 constant entry external dcl 46 i automatic fixed bin(17,0) dcl 17 length builtin function dcl 53 rtrim builtin function dcl 53 substr builtin function dcl 53 verify builtin function dcl 53 NAMES DECLARED BY EXPLICIT CONTEXT. er 000303 constant label dcl 68 ref 75 er1 000125 constant label dcl 58 ref 80 exit 001162 constant label dcl 122 ref 84 90 extract_message_doc 000076 constant entry external dcl 11 nxac 000767 constant label dcl 107 ref 116 wump 001140 constant label dcl 120 ref 99 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1412 1460 1174 1422 Length 1662 1174 46 166 215 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME extract_message_doc 300 external procedure is an external procedure. on unit on line 102 72 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME extract_message_doc 000100 ap extract_message_doc 000102 al extract_message_doc 000104 segp extract_message_doc 000106 scc extract_message_doc 000110 iocbp extract_message_doc 000112 bitc extract_message_doc 000113 ec extract_message_doc 000114 dn extract_message_doc 000166 en extract_message_doc 000176 target extract_message_doc 000250 acptr extract_message_doc 000252 acsw extract_message_doc 000253 bfsw extract_message_doc THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return enable shorten_stack ext_entry int_entry set_cs_eis index_cs_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ archive_util_$disected_element archive_util_$first_disected com_err_ cu_$arg_ptr expand_pathname_ extract_msg_doc_ hcs_$initiate_count hcs_$terminate_noname iox_$attach_ioname iox_$close iox_$detach_iocb iox_$open unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000075 29 000103 30 000104 56 000105 57 000123 58 000125 59 000146 61 000147 62 000177 63 000201 64 000233 66 000234 67 000277 68 000303 69 000336 71 000337 72 000346 73 000350 74 000352 75 000371 77 000373 79 000376 80 000415 81 000417 82 000443 83 000445 84 000473 86 000474 88 000556 89 000561 90 000612 92 000613 94 000634 95 000653 98 000672 99 000724 102 000725 103 000741 104 000753 105 000766 107 000767 108 001017 110 001025 111 001057 112 001111 113 001113 114 001132 115 001134 116 001137 120 001140 121 001151 122 001162 124 001173 ----------------------------------------------------------- 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