COMPILATION LISTING OF SEGMENT generate_words Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1749.1 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 generate_words: gw: procedure; 7 dcl cu_$arg_ptr entry (fixed, ptr, fixed, fixed bin (35)); 8 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin, fixed bin (35), ptr); 9 dcl cu_$arg_list_ptr entry (ptr); 10 dcl argno fixed; 11 dcl new_line char (1) init (" 12 "); 13 dcl error_table_$badopt external fixed bin (35); 14 dcl arglen fixed bin; 15 dcl generate_word_ entry (char (*), char (*), fixed bin, fixed bin); 16 dcl generate_word_$init_seed entry (fixed bin (35)); 17 dcl ios_$write_ptr entry (ptr, fixed bin, fixed bin); 18 dcl argptr ptr; 19 dcl hyphenate bit (1) init ("0"b); 20 dcl cv_dec_check_ entry (char (*), fixed bin) returns (fixed bin (35)); 21 dcl maximum_length fixed bin init (-1); /* set to maximum length of words */ 22 dcl minimum_length fixed bin init (-1); /* minimum length of words */ 23 dcl seed_value fixed bin (35) init (-1); /* value of seed typed by user */ 24 dcl com_err_ entry options (variable); 25 dcl i fixed, code fixed bin (35) init (0); 26 dcl unique_bits_ entry returns (fixed bin (70)); 27 dcl result fixed bin; 28 dcl nwords fixed init (0); 29 dcl max_words fixed init (0); 30 dcl arg char (arglen) based (argptr) unaligned; 31 dcl maximum_hyphenated fixed bin; 32 dcl area char (56); /* where output line goes */ 33 dcl output_line_length fixed bin; /* length of the output line in area */ 34 dcl unhyphenated_word char (maximum_length) based (addr (area)); 35 dcl hyphenated_word char (maximum_hyphenated) based (hph_ptr); 36 dcl hph_ptr ptr; /* pointer to position in area where hyphenated word goes */ 37 38 dcl arglistptr ptr; 39 40 call cu_$arg_list_ptr (arglistptr); 41 do argno = 1 by 1 while (code = 0); 42 call cu_$arg_ptr (argno, argptr, arglen, code); 43 if code = 0 44 then 45 if arg = "-hph" | arg = "-hyphenate" 46 then hyphenate = "1"b; 47 else 48 if arg = "-max" 49 then maximum_length = value ("maximum"); 50 else 51 if arg = "-min" 52 then minimum_length = value ("minimum"); 53 else 54 if arg = "-length" | arg = "-ln" 55 then do; 56 maximum_length = value ("length"); 57 minimum_length = maximum_length; 58 end; 59 else 60 if arg = "-seed" then do; 61 seed_value = value ("seed"); 62 call generate_word_$init_seed (seed_value); 63 end; 64 else do; 65 nwords = cv_dec_check_ (arg, result); /* look for number of words */ 66 if result = 0 & nwords > 0 67 then max_words = nwords; 68 else call ugly (error_table_$badopt, arg); 69 end; 70 end; 71 72 /* Below we decide whether minimum, maximum, both, or none have been specified, 73* and set their default values accordingly. */ 74 75 if nwords = 0 then max_words = 1; 76 if minimum_length = -1 77 then if maximum_length = -1 78 then do; 79 minimum_length = 6; 80 maximum_length = 8; 81 end; 82 else minimum_length = 4; 83 else if maximum_length = -1 84 then maximum_length = 20; 85 if minimum_length < 4 | minimum_length > maximum_length | 86 maximum_length > 20 then 87 call ugly (0, "Bad value of lengths: 3dumps>old>recomp>generate_words.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. area 000120 automatic char(56) unaligned dcl 32 set ref 91 95 100 107 108 108 arg based char unaligned dcl 30 set ref 43 43 47 50 53 53 59 65* 68* 125* 126 arglen 000102 automatic fixed bin(17,0) dcl 14 set ref 42* 43 43 47 50 53 53 59 65 65 68 68 123* 125 125 126 arglistptr 000142 automatic pointer dcl 38 set ref 40* 123* argno 000100 automatic fixed bin(17,0) dcl 10 set ref 41* 42* 122* 122 123* argptr 000104 automatic pointer dcl 18 set ref 42* 43 43 47 50 53 53 59 65 68 123* 125 126 code 000113 automatic fixed bin(35,0) initial dcl 25 set ref 25* 41 42* 43 123* 124 124* codex parameter fixed bin(35,0) dcl 113 set ref 112 115* com_err_ 000030 constant entry external dcl 24 ref 115 cu_$arg_list_ptr 000014 constant entry external dcl 9 ref 40 cu_$arg_ptr 000010 constant entry external dcl 7 ref 42 cu_$arg_ptr_rel 000012 constant entry external dcl 8 ref 123 cv_dec_check_ 000026 constant entry external dcl 20 ref 65 125 error_table_$badopt 000016 external static fixed bin(35,0) dcl 13 set ref 68* generate_word_ 000020 constant entry external dcl 15 ref 107 generate_word_$init_seed 000022 constant entry external dcl 16 ref 62 hph_ptr 000140 automatic pointer dcl 36 set ref 91* 96 107 hyphenate 000106 automatic bit(1) initial unaligned dcl 19 set ref 19* 43* 93 hyphenated_word based char unaligned dcl 35 set ref 96* 107* i 000112 automatic fixed bin(17,0) dcl 25 set ref 106* ios_$write_ptr 000024 constant entry external dcl 17 ref 108 max_words 000116 automatic fixed bin(17,0) initial dcl 29 set ref 29* 66* 75* 106 maximum_hyphenated 000117 automatic fixed bin(17,0) dcl 31 set ref 89* 96 96 97 107 107 maximum_length 000107 automatic fixed bin(17,0) initial dcl 21 set ref 21* 47* 56* 57 76 80* 83 83* 85 85 89 89 91 95 95 97 100 100 101 107 107 107* message parameter char unaligned dcl 114 set ref 112 115* minimum_length 000110 automatic fixed bin(17,0) initial dcl 22 set ref 22* 50* 57* 76 79* 82* 85 85 107* name parameter char unaligned dcl 121 ref 119 124 126 new_line 000101 automatic char(1) initial unaligned dcl 11 set ref 11* 96 100 number 000154 automatic fixed bin(35,0) dcl 120 set ref 125* 126 128 nwords 000115 automatic fixed bin(17,0) initial dcl 28 set ref 28* 65* 66 66 75 output_line_length 000136 automatic fixed bin(17,0) dcl 33 set ref 97* 101* 108* result 000114 automatic fixed bin(17,0) dcl 27 set ref 65* 66 125* 126 seed_value 000111 automatic fixed bin(35,0) initial dcl 23 set ref 23* 61* 62* unhyphenated_word based char unaligned dcl 34 set ref 95* 100* 107* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. code automatic fixed bin(35,0) dcl 113 unique_bits_ 000000 constant entry external dcl 26 NAMES DECLARED BY EXPLICIT CONTEXT. generate_words 000110 constant entry external dcl 6 gw 000100 constant entry external dcl 6 return 000542 constant label dcl 131 ref 116 ugly 000544 constant entry internal dcl 112 ref 68 85 124 126 value 000607 constant entry internal dcl 119 ref 47 50 56 61 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 91 95 100 107 108 108 substr builtin function set ref 91 95* 96* 100* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1206 1240 1052 1216 Length 1424 1052 32 147 134 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gw 206 external procedure is an external procedure. ugly 84 internal procedure is called during a stack extension. value internal procedure shares stack frame of external procedure gw. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gw 000100 argno gw 000101 new_line gw 000102 arglen gw 000104 argptr gw 000106 hyphenate gw 000107 maximum_length gw 000110 minimum_length gw 000111 seed_value gw 000112 i gw 000113 code gw 000114 result gw 000115 nwords gw 000116 max_words gw 000117 maximum_hyphenated gw 000120 area gw 000136 output_line_length gw 000140 hph_ptr gw 000142 arglistptr gw 000154 number value THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this_desc return tra_ext shorten_stack ext_entry int_entry_desc trunc_fx2 divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_list_ptr cu_$arg_ptr cu_$arg_ptr_rel cv_dec_check_ generate_word_ generate_word_$init_seed ios_$write_ptr 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 000062 19 000064 21 000065 22 000067 23 000070 25 000072 28 000073 29 000074 6 000077 40 000116 41 000125 42 000131 43 000146 47 000165 50 000201 53 000215 56 000225 57 000234 58 000235 59 000236 61 000242 62 000247 63 000256 65 000257 66 000305 68 000313 70 000333 75 000335 76 000341 79 000347 80 000351 81 000353 82 000354 83 000357 85 000364 89 000414 91 000430 93 000435 95 000437 96 000443 97 000446 98 000451 100 000452 101 000456 106 000461 107 000470 108 000522 109 000540 131 000542 112 000543 115 000557 116 000604 119 000607 122 000620 123 000621 124 000640 125 000675 126 000722 128 001004 ----------------------------------------------------------- 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