COMPILATION LISTING OF SEGMENT od_print_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1727.1 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 /* "ioa_" for on-line dumper, generates page headers etc. */ 12 /* converted to 6180, v2pl1 by R Mullen Feb 1973 */ 13 14 od_print_: proc (num_nl) recursive; /* Calls itself to print page headings */ 15 16 dcl num_nl fixed bin; 17 18 dcl (bufp ptr, 19 (linect, cur_word_no, erf_no, proc_no, seg_no, page_no, 20 zero init (0), 21 two init (2), 22 three init (3), 23 wpl) fixed bin, 24 (ioname char (32) init ("od_output_"), 25 time_string char (24), /* date and time */ 26 fmtheader char (51) 27 init ("^|^-ERF ^d^3-^a^3-Page ^3d^2-Process ^d, Seg ^3o^2/"), 28 buffer char (4104)) aligned) int static, /* 4096 + 8 characters of slop */ 29 status bit (72) aligned, /* for ios_ calls */ 30 p ptr, 31 (i, /* Misc */ 32 fmt_sw, /* 0 - fast 8 words, 1 - regular format */ 33 n, /* length of formatted string */ 34 nnl) fixed bin; /* # of NL chars in formatted string */ 35 36 declare 1 fun based aligned, /* For adding NL plus PAD */ 37 2 fill char (n) unaligned, 38 2 ny bit (36) unaligned; 39 40 dcl formline_ entry (fixed bin, fixed bin, ptr, fixed bin, fixed bin), 41 format_dump_line_ entry (ptr), /* Plus three args passed to "od_print_" */ 42 ios_$write entry (char (*) aligned, ptr, fixed bin, fixed bin, fixed bin, bit (72) aligned), 43 date_time_ entry (fixed bin (52), char (*) aligned), 44 od_print_ entry options (variable); 45 46 dcl format_dump_line_$line_size ext fixed bin; 47 48 dcl (addr, addrel, divide) builtin; 49 50 /* 51* Format the output line. */ 52 53 fmt_sw = 1; /* not special, do formatting */ 54 nnl = num_nl; 55 56 test_page: /* First see if page overflow */ 57 if nnl >= 0 58 then do; 59 60 if (linect + nnl) > 54 /* Check for page overflow. */ 61 then do; 62 63 linect = -3; /* Reset line counter. */ 64 page_no = page_no + 1; /* Increment the page number. */ 65 call od_print_ (three, fmtheader, 66 erf_no, time_string, page_no, proc_no, seg_no); 67 /* Print out page heading. */ 68 end; 69 70 linect = linect + nnl; /* Now update the counter */ 71 72 end; 73 74 p = addrel (bufp, cur_word_no); /* Pointer to space to generate new text */ 75 76 if fmt_sw ^= 0 77 then do; 78 79 n = 256; /* Allow for multi-line formats */ 80 call formline_ (two, three, p, n, zero); 81 82 p -> fun.ny = "000001010001111111001111111001111111"b; 83 /* Add NL char plus PADs */ 84 85 cur_word_no = cur_word_no + divide (n + 4, 4, 17, 0); 86 87 end; 88 89 else do; 90 91 call format_dump_line_ (p); 92 cur_word_no = cur_word_no + wpl; 93 94 end; 95 96 if cur_word_no > 960 /* 1024 - 64 */ 97 then do; 98 99 n = cur_word_no * 4; /* Convert words to characters */ 100 cur_word_no = 0; /* and reset counter */ 101 102 call ios_$write (ioname, bufp, 0, n, i, status); 103 104 end; 105 106 return; 107 108 op_fmt_line: entry (num_nl); /* Nominally */ 109 110 nnl = 1; 111 fmt_sw = 0; 112 113 go to test_page; 114 115 /* 116* Miscellaneous entry points */ 117 118 op_finish: entry; 119 120 if cur_word_no = 0 121 then return; 122 123 n = cur_word_no * 4; /* Same as before */ 124 cur_word_no = 0; /* .. */ 125 126 call ios_$write (ioname, bufp, 0, n, i, status); 127 128 return; 129 130 op_new_seg: entry (segno); 131 132 dcl segno fixed bin; 133 134 seg_no = segno; 135 if seg_no = 0 136 then proc_no = proc_no + 1; 137 138 op_new_page: entry; 139 140 linect = 54; 141 142 return; 143 144 op_init: entry (erfno, time_val); 145 146 dcl erfno fixed bin, 147 time_val fixed bin (52); 148 149 erf_no = erfno; 150 call date_time_ (time_val, time_string); 151 152 wpl = format_dump_line_$line_size; 153 bufp = addr (buffer); 154 cur_word_no = 0; 155 page_no = 0; 156 proc_no = 0; 157 seg_no = 0; 158 linect = 54; 159 160 end od_print_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1516.5 od_print_.pl1 >dumps>old>recomp>od_print_.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. addr builtin function dcl 48 ref 153 addrel builtin function dcl 48 ref 74 buffer 000057 internal static char(4104) dcl 18 set ref 153 bufp 000010 internal static pointer dcl 18 set ref 74 102* 126* 153* cur_word_no 000013 internal static fixed bin(17,0) dcl 18 set ref 74 85* 85 92* 92 96 99 100* 120 123 124* 154* date_time_ 002070 constant entry external dcl 40 ref 150 divide builtin function dcl 48 ref 85 erf_no 000014 internal static fixed bin(17,0) dcl 18 set ref 65* 149* erfno parameter fixed bin(17,0) dcl 146 ref 144 149 fmt_sw 000105 automatic fixed bin(17,0) dcl 18 set ref 53* 76 111* fmtheader 000042 internal static char(51) initial dcl 18 set ref 65* format_dump_line_ 002064 constant entry external dcl 40 ref 91 format_dump_line_$line_size 002074 external static fixed bin(17,0) dcl 46 ref 152 formline_ 002062 constant entry external dcl 40 ref 80 fun based structure level 1 dcl 36 i 000104 automatic fixed bin(17,0) dcl 18 set ref 102* 126* ioname 000024 internal static char(32) initial dcl 18 set ref 102* 126* ios_$write 002066 constant entry external dcl 40 ref 102 126 linect 000012 internal static fixed bin(17,0) dcl 18 set ref 60 63* 70* 70 140* 158* n 000106 automatic fixed bin(17,0) dcl 18 set ref 79* 80* 82 85 99* 102* 123* 126* nnl 000107 automatic fixed bin(17,0) dcl 18 set ref 54* 56 60 70 110* num_nl parameter fixed bin(17,0) dcl 16 ref 14 54 108 ny based bit(36) level 2 packed unaligned dcl 36 set ref 82* od_print_ 002072 constant entry external dcl 40 ref 65 p 000102 automatic pointer dcl 18 set ref 74* 80* 82 91* page_no 000017 internal static fixed bin(17,0) dcl 18 set ref 64* 64 65* 155* proc_no 000015 internal static fixed bin(17,0) dcl 18 set ref 65* 135* 135 156* seg_no 000016 internal static fixed bin(17,0) dcl 18 set ref 65* 134* 135 157* segno parameter fixed bin(17,0) dcl 132 ref 130 134 status 000100 automatic bit(72) dcl 18 set ref 102* 126* three 000022 internal static fixed bin(17,0) initial dcl 18 set ref 65* 80* time_string 000034 internal static char(24) dcl 18 set ref 65* 150* time_val parameter fixed bin(52,0) dcl 146 set ref 144 150* two 000021 internal static fixed bin(17,0) initial dcl 18 set ref 80* wpl 000023 internal static fixed bin(17,0) dcl 18 set ref 92 152* zero 000020 internal static fixed bin(17,0) initial dcl 18 set ref 80* NAMES DECLARED BY EXPLICIT CONTEXT. od_print_ 000013 constant entry external dcl 14 op_finish 000227 constant entry external dcl 118 op_fmt_line 000215 constant entry external dcl 108 op_init 000331 constant entry external dcl 144 op_new_page 000315 constant entry external dcl 138 op_new_seg 000300 constant entry external dcl 130 test_page 000025 constant label dcl 56 ref 113 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 520 2616 372 530 Length 3010 372 2076 156 125 2052 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME od_print_ 103 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 bufp od_print_ 000012 linect od_print_ 000013 cur_word_no od_print_ 000014 erf_no od_print_ 000015 proc_no od_print_ 000016 seg_no od_print_ 000017 page_no od_print_ 000020 zero od_print_ 000021 two od_print_ 000022 three od_print_ 000023 wpl od_print_ 000024 ioname od_print_ 000034 time_string od_print_ 000042 fmtheader od_print_ 000057 buffer od_print_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME od_print_ 000100 status od_print_ 000102 p od_print_ 000104 i od_print_ 000105 fmt_sw od_print_ 000106 n od_print_ 000107 nnl od_print_ 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. date_time_ format_dump_line_ formline_ ios_$write od_print_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. format_dump_line_$line_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000010 53 000020 54 000022 56 000025 60 000027 63 000033 64 000035 65 000036 70 000072 74 000075 76 000102 79 000104 80 000106 82 000124 85 000132 87 000137 91 000140 92 000146 96 000151 99 000154 100 000156 102 000157 106 000212 108 000213 110 000222 111 000224 113 000225 118 000226 120 000234 123 000237 124 000241 126 000242 128 000275 130 000276 134 000305 135 000311 138 000313 140 000322 142 000324 144 000325 149 000336 150 000342 152 000356 153 000361 154 000363 155 000364 156 000365 157 000366 158 000367 160 000371 ----------------------------------------------------------- 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