COMPILATION LISTING OF SEGMENT sort_reqfile Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 09/18/84 1232.2 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 /* ****************************************************** 8* * * 9* * * 10* * Copyright (c) 1972 by Massachusetts Institute of * 11* * Technology and Honeywell Information Systems, Inc. * 12* * * 13* * * 14* ****************************************************** */ 15 16 sort_reqfile: proc; 17 18 dcl (path, dn) char (168) aligned, 19 en char (32) aligned, 20 (i, j, k, l, m, n) fixed bin, 21 movelen fixed bin, 22 ap ptr, 23 al fixed bin, 24 bchr char (al) unaligned based (ap), 25 ec fixed bin, 26 (p, q, p1, q1, qp) ptr; 27 28 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin), 29 idsort_ entry ((*) char (32) aligned, (*) fixed bin, fixed bin), 30 expand_path_ entry (ptr, fixed bin, ptr, ptr, fixed bin), 31 com_err_ entry options (variable); 32 33 dcl (addr, null, substr) builtin; 34 35 dcl hcs_$initiate entry (char (*) aligned, char (*) aligned, char (*) aligned, fixed bin (1), 36 fixed bin (2), ptr, fixed bin), 37 hcs_$make_seg entry (char (*) aligned, char (*) aligned, char (*) aligned, fixed bin (5), ptr, fixed bin), 38 hcs_$set_bc entry (char (*) aligned, char (*) aligned, fixed bin (24), fixed bin), 39 hcs_$terminate_noname entry (ptr, fixed bin), 40 hcs_$delentry_seg entry (ptr, fixed bin), 41 hcs_$truncate_seg entry (ptr, fixed bin, fixed bin); 42 43 44 dcl 1 movetable based aligned, 45 2 moveary (movelen) fixed bin (35); 46 1 1 /* Requisition file declaration */ 1 2 /* Modified BIM 1984-07-10 for unaligned strings */ 1 3 /* Modified BIM 1984-09-14 foor 3000 size-array */ 1 4 1 5 dcl 1 reqfile based (qp) aligned, /* MIT accounting data */ 1 6 2 nacts fixed, 1 7 2 version fixed bin, 1 8 2 pad (6) bit (36) aligned, 1 9 2 reqfiletab (3000), /* one entry per Multics account */ 1 10 /* same size as projfile */ 1 11 3 acctid char (12) unal, /* account id. usually same as Proj */ 1 12 3 mitacct char (12) unal, /* MIT account no. */ 1 13 3 reqno char (12) unal, /* requisition or PO no. */ 1 14 3 qflag char (8), /* class & activity */ 1 15 3 procssd fixed bin, /* temp for usage report */ 1 16 3 qdn fixed bin (71), /* date on for account */ 1 17 3 qdf fixed bin (71), /* date off */ 1 18 3 billing_name char (32) unal, /* where to send bill */ 1 19 3 billing_addr char (32) unal, 1 20 3 chg_mo float bin (63), /* charges this month */ 1 21 3 chg_tr float bin (63), /* charges this req */ 1 22 3 req_amt float bin (63), /* req face value */ 1 23 3 cutoff fixed bin (71); /* term date for req */ 1 24 1 25 dcl loqh int static fixed bin (17) init (8), /* length of reqfile head */ 1 26 loqe int static fixed bin (17) init (40); /* lth of reqfile entry */ 1 27 1 28 declare REQFILE_VERSION fixed bin init (2) int static options (constant); 1 29 1 30 /* End include file reqfile.incl.pl1 */ 47 48 49 /* ====================================================== */ 50 51 call cu_$arg_ptr (1, ap, al, ec); 52 if ec ^= 0 then do; 53 path = "reqfile"; 54 al = 7; 55 end; 56 else path = bchr; 57 call expand_path_ (addr (path), al, addr (dn), addr (en), ec); 58 if ec ^= 0 then do; 59 er: call com_err_ (ec, "sort_reqfile", path); 60 return; 61 end; 62 63 call hcs_$initiate (dn, en, "", 0, 1, qp, ec); 64 if qp = null then go to er; 65 66 call hcs_$make_seg ("", "", "", 1011b, p, ec); 67 if p = null then go to er; 68 69 movelen = loqh; 70 p -> movetable = qp -> movetable; 71 72 movelen = loqe; 73 74 m = nacts; 75 begin; 76 77 dcl key (m) char (32) aligned; 78 dcl ord (m) fixed bin; 79 80 do i = 1 to m; 81 key (i) = mitacct (i) || reqno (i); 82 ord (i) = i; 83 end; 84 85 call idsort_ (key, ord, m); 86 87 do i = 1 to m; 88 p1 = addr (reqfiletab (ord (i))); 89 q1 = addr (p -> reqfiletab (i)); 90 q1 -> movetable = p1 -> movetable; 91 end; 92 93 end; 94 95 movelen = loqh + m * loqe; 96 97 call hcs_$truncate_seg (qp, 0, ec); 98 qp -> movetable = p -> movetable; 99 100 call hcs_$terminate_noname (qp, ec); 101 call hcs_$delentry_seg (p, ec); 102 103 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/18/84 0759.0 sort_reqfile.pl1 >special_ldd>online>09/18/84>sort_reqfile.pl1 47 1 09/18/84 1000.6 reqfile.incl.pl1 >special_ldd>online>09/18/84>reqfile.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. addr builtin function dcl 33 ref 57 57 57 57 57 57 88 89 al 000242 automatic fixed bin(17,0) dcl 18 set ref 51* 54* 56 57* ap 000240 automatic pointer dcl 18 set ref 51* 56 bchr based char unaligned dcl 18 ref 56 com_err_ 000016 constant entry external dcl 28 ref 59 cu_$arg_ptr 000010 constant entry external dcl 28 ref 51 dn 000152 automatic char(168) dcl 18 set ref 57 57 63* ec 000243 automatic fixed bin(17,0) dcl 18 set ref 51* 52 57* 58 59* 63* 66* 97* 100* 101* en 000224 automatic char(32) dcl 18 set ref 57 57 63* expand_path_ 000014 constant entry external dcl 28 ref 57 hcs_$delentry_seg 000026 constant entry external dcl 35 ref 101 hcs_$initiate 000020 constant entry external dcl 35 ref 63 hcs_$make_seg 000022 constant entry external dcl 35 ref 66 hcs_$terminate_noname 000024 constant entry external dcl 35 ref 100 hcs_$truncate_seg 000030 constant entry external dcl 35 ref 97 i 000234 automatic fixed bin(17,0) dcl 18 set ref 80* 81 81 81 82 82* 87* 88 89* idsort_ 000012 constant entry external dcl 28 ref 85 key 000100 automatic char(32) array dcl 77 set ref 81* 85* loqe constant fixed bin(17,0) initial dcl 1-25 ref 72 95 loqh constant fixed bin(17,0) initial dcl 1-25 ref 69 95 m 000235 automatic fixed bin(17,0) dcl 18 set ref 74* 77 78 80 85* 87 95 mitacct 13 based char(12) array level 3 packed unaligned dcl 1-5 set ref 81 movelen 000236 automatic fixed bin(17,0) dcl 18 set ref 69* 70 72* 90 95* 98 movetable based structure level 1 dcl 44 set ref 70* 70 90* 90 98* 98 nacts based fixed bin(17,0) level 2 dcl 1-5 ref 74 null builtin function dcl 33 ref 64 67 ord 000100 automatic fixed bin(17,0) array dcl 78 set ref 82* 85* 88 p 000244 automatic pointer dcl 18 set ref 66* 67 70 89 98 101* p1 000246 automatic pointer dcl 18 set ref 88* 90 path 000100 automatic char(168) dcl 18 set ref 53* 56* 57 57 59* q1 000250 automatic pointer dcl 18 set ref 89* 90 qp 000252 automatic pointer dcl 18 set ref 63* 64 70 74 81 81 88 97* 98 100* reqfile based structure level 1 dcl 1-5 reqfiletab 10 based structure array level 2 dcl 1-5 set ref 88 89 reqno 16 based char(12) array level 3 packed unaligned dcl 1-5 set ref 81 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. REQFILE_VERSION internal static fixed bin(17,0) initial dcl 1-28 hcs_$set_bc 000000 constant entry external dcl 35 j automatic fixed bin(17,0) dcl 18 k automatic fixed bin(17,0) dcl 18 l automatic fixed bin(17,0) dcl 18 n automatic fixed bin(17,0) dcl 18 q automatic pointer dcl 18 substr builtin function dcl 33 NAMES DECLARED BY EXPLICIT CONTEXT. er 000113 constant label dcl 59 ref 64 67 sort_reqfile 000024 constant entry external dcl 16 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 642 674 521 652 Length 1074 521 32 164 121 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME sort_reqfile 248 external procedure is an external procedure. begin block on line 75 98 begin block uses auto adjustable storage. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 75 000100 key begin block on line 75 000100 ord begin block on line 75 sort_reqfile 000100 path sort_reqfile 000152 dn sort_reqfile 000224 en sort_reqfile 000234 i sort_reqfile 000235 m sort_reqfile 000236 movelen sort_reqfile 000240 ap sort_reqfile 000242 al sort_reqfile 000243 ec sort_reqfile 000244 p sort_reqfile 000246 p1 sort_reqfile 000250 q1 sort_reqfile 000252 qp sort_reqfile THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs enter_begin leave_begin call_ext_out_desc call_ext_out return alloc_auto_adj shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_ptr expand_path_ hcs_$delentry_seg hcs_$initiate hcs_$make_seg hcs_$terminate_noname hcs_$truncate_seg idsort_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000023 51 000031 52 000047 53 000051 54 000054 55 000056 56 000057 57 000064 58 000111 59 000113 60 000140 63 000141 64 000205 66 000211 67 000246 69 000252 70 000254 72 000262 74 000264 75 000266 77 000271 78 000300 85 000304 80 000324 81 000334 82 000362 83 000366 85 000370 87 000411 88 000422 89 000430 90 000435 91 000442 93 000444 95 000445 97 000453 98 000467 100 000476 101 000507 103 000520 ----------------------------------------------------------- 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