THIS FILE IS DAMAGED æL¾ì<âÀ¸ Maucieri Multics IR,ô*õÉTY–¥TTÛþynoneSTY_TELNET R!RÒY€qžSchroth €ÞBVrÚ Schroth ds Multics !ª_L9R«H|M3 MJp\WnoneVIP7400 ¸ÓSchroth ªèÈ è 8 Schroth ds SysMaint ŽGR~fZT„’¦óT¡Ž>ÐÅnoneSTY P0jú˜t€ ‚TALee €¸<Vúì TALee microbe 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 dcl 1 definition aligned based, 2 13 2 forward unal bit(18), /* offset of next def */ 2 14 2 backward unal bit(18), /* offset of previous def */ 2 15 2 value unal bit(18), 2 16 2 flags unal, 2 17 3 new bit(1), 2 18 3 ignore bit(1), 2 19 3 entry bit(1), 2 20 3 retain bit(1), 2 21 3 argcount bit(1), 2 22 3 descriptors bit(1), 2 23 3 indirect bit(1), 2 24 3 unused bit(8), 2 25 2 class unal bit(3), 2 26 2 symbol unal bit(18), /* offset of ACC for symbol */ 2 27 2 segname unal bit(18); /* offset of segname def */ 2 28 2 29 /* END INCLUDE FILE definition.incl.pl1 */ 43 44 45 b18 = name_assign(name); 46 47 def_pos = bit(cg_static_$def_pos,18); 48 def_ptr = addrel(cg_static_$def_base,def_pos); 49 def_reloc_ptr = addrel(cg_static_$def_reloc_base,def_pos); 50 51 if cg_static_$last_def then def_ptr -> definition.backward = cg_static_$last_def; 52 else def_ptr -> definition.backward = cg_static_$zero_def; 53 54 addrel(cg_static_$def_base,cg_static_$last_def) -> definition.forward = def_pos; 55 56 def_ptr -> definition.forward = cg_static_$zero_def; 57 58 def_ptr -> definition.new = "1"b; 59 def_ptr -> definition.symbol = b18; 60 def_ptr -> definition.value = value; 61 62 def_ptr -> definition.class = bit(class,3); 63 64 if class = 3 then cg_static_$seg_def = def_pos; 65 else do; 66 def_ptr -> definition.segname = cg_static_$seg_def; 67 def_ptr -> definition.entry = bit(fixed(class = 0,1),1); 68 end; 69 70 string(def_reloc_ptr -> reloc(0)) = rc_dp || rc_dp; 71 def_reloc_ptr -> reloc(1).left = rel_code(class); 72 string(def_reloc_ptr -> reloc(2)) = rc_dp || rc_dp; 73 74 cg_static_$def_pos = cg_static_$def_pos + 3; 75 cg_static_$last_def = def_pos; 76 77 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/20/86 1145.0 generate_definition.pl1 >special_ldd>install>MR12.0-1222>generate_definition.pl1 42 1 10/30/80 1648.7 relbts.incl.pl1 >ldd>include>relbts.incl.pl1 43 2 11/20/86 1035.2 definition.incl.pl1 >special_ldd>install>MR12.0-1222>definition.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. addrel builtin function dcl 28 ref 48 49 54 b18 000100 automatic bit(18) dcl 25 set ref 45* 59 backward 0(18) based bit(18) level 2 packed unaligned dcl 2-12 set ref 51* 52* bit builtin function dcl 28 ref 47 62 67 cg_static_$def_base 000010 external static pointer dcl 21 ref 48 54 cg_static_$def_pos 000014 external static fixed bin(18,0) dcl 21 set ref 47 74* 74 cg_static_$def_reloc_base 000012 external static pointer dcl 21 ref 49 cg_static_$last_def 000016 external static bit(18) dcl 21 set ref 51 51 54 75* cg_static_$seg_def 000022 external static bit(18) dcl 21 set ref 64* 66 cg_static_$zero_def 000020 external static bit(18) dcl 21 ref 52 56 class parameter fixed bin(3,0) dcl 17 in procedure "generate_definition" ref 15 62 64 67 71 class 1(33) based bit(3) level 2 in structure "definition" packed unaligned dcl 2-12 in procedure "generate_definition" set ref 62* def_pos 000101 automatic bit(18) dcl 25 set ref 47* 48 49 54 64 75 def_ptr 000102 automatic pointer dcl 25 set ref 48* 51 52 56 58 59 60 62 66 67 def_reloc_ptr 000104 automatic pointer dcl 25 set ref 49* 70 71 72 definition based structure level 1 dcl 2-12 entry 1(20) based bit(1) level 3 packed unaligned dcl 2-12 set ref 67* fixed builtin function dcl 28 ref 67 flags 1(18) based structure level 2 packed unaligned dcl 2-12 forward based bit(18) level 2 packed unaligned dcl 2-12 set ref 54* 56* left based bit(18) array level 2 packed unaligned dcl 32 set ref 71* name parameter char dcl 17 set ref 15 45* name_assign 000024 constant entry external dcl 30 ref 45 new 1(18) based bit(1) level 3 packed unaligned dcl 2-12 set ref 58* rc_dp constant bit(18) initial unaligned dcl 1-6 ref 70 70 72 72 rel_code 000000 constant bit(18) initial array dcl 36 ref 71 reloc based structure array level 1 dcl 32 set ref 70* 72* segname 2(18) based bit(18) level 2 packed unaligned dcl 2-12 set ref 66* string builtin function dcl 28 set ref 70* 72* symbol 2 based bit(18) level 2 packed unaligned dcl 2-12 set ref 59* value 1 based bit(18) level 2 in structure "definition" packed unaligned dcl 2-12 in procedure "generate_definition" set ref 60* value parameter bit(18) dcl 17 in procedure "generate_definition" ref 15 60 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. rc_a internal static bit(18) initial unaligned dcl 1-6 rc_a_dp internal static bit(36) initial unaligned dcl 1-23 rc_dp_dp internal static bit(36) initial unaligned dcl 1-23 rc_e internal static bit(18) initial unaligned dcl 1-6 rc_is15 internal static bit(18) initial unaligned dcl 1-6 rc_is18 internal static bit(18) initial unaligned dcl 1-6 rc_lb internal static bit(18) initial unaligned dcl 1-6 rc_lp15 internal static bit(18) initial unaligned dcl 1-6 rc_lp18 internal static bit(18) initial unaligned dcl 1-6 rc_nlb internal static bit(18) initial unaligned dcl 1-6 rc_nlp18 internal static bit(18) initial unaligned dcl 1-6 rc_ns internal static bit(18) initial unaligned dcl 1-6 rc_nt internal static bit(18) initial unaligned dcl 1-6 rc_s internal static bit(18) initial unaligned dcl 1-6 rc_sr internal static bit(18) initial unaligned dcl 1-6 rc_t internal static bit(18) initial unaligned dcl 1-6 size builtin function dcl 28 NAME DECLARED BY EXPLICIT CONTEXT. generate_definition 000013 constant entry external dcl 15 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 264 312 162 274 Length 530 162 26 202 102 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME generate_definition 82 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME generate_definition 000100 b18 generate_definition 000101 def_pos generate_definition 000102 def_ptr generate_definition 000104 def_reloc_ptr generate_definition THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc return_mac ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. name_assign THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cg_static_$def_base cg_static_$def_pos cg_static_$def_reloc_base cg_static_$last_def cg_static_$seg_def cg_static_$zero_def CONSTANTS 000000 aa 000020000000 000001 aa 000022000000 000002 aa 000026000000 000003 aa 000025000000 000004 aa 514000000022 000005 aa 404000000003 000006 aa 524077777777 BEGIN PROCEDURE generate_definition ENTRY TO generate_definition STATEMENT 1 ON LINE 15 generate_definition: proc(name,class,value); 000007 at 000003000006 000010 tt 000005000004 000011 ta 000007000000 000012 da 000076300000 000013 aa 000140 6270 00 eax7 96 000014 aa 7 00034 3521 20 epp2 pr7|28,* 000015 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000016 aa 000006000000 000017 aa 000000000000 000020 aa 6 00042 3735 20 epp7 pr6|34,* 000021 aa 7 00000 2361 20 ldq pr7|0,* 000022 aa 000002 6040 04 tmi 2,ic 000024 000023 aa 777777 3760 07 anq 262143,dl 000024 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000025 aa 6 00106 7561 00 stq pr6|70 STATEMENT 1 ON LINE 45 b18 = name_assign(name); 000026 aa 6 00032 3715 20 epp5 pr6|26,* 000027 aa 5 00002 3521 20 epp2 pr5|2,* name 000030 aa 6 00112 2521 00 spri2 pr6|74 000031 aa 6 00100 3521 00 epp2 pr6|64 b18 000032 aa 6 00114 2521 00 spri2 pr6|76 000033 aa 7 00000 3521 20 epp2 pr7|0,* 000034 aa 6 00116 2521 00 spri2 pr6|78 000035 aa 777747 3520 04 epp2 -25,ic 000004 = 514000000022 000036 aa 6 00120 2521 00 spri2 pr6|80 000037 aa 6 00110 6211 00 eax1 pr6|72 000040 aa 010000 4310 07 fld 4096,dl 000041 la 4 00024 3521 20 epp2 pr4|20,* name_assign 000042 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 47 def_pos = bit(cg_static_$def_pos,18); 000043 aa 6 00044 3701 20 epp4 pr6|36,* 000044 la 4 00014 2351 20 lda pr4|12,* cg_static_$def_pos 000045 aa 000002 6050 04 tpl 2,ic 000047 000046 aa 000000 5310 00 neg 0 000047 aa 000022 7350 00 als 18 000050 aa 6 00101 7551 00 sta pr6|65 def_pos STATEMENT 1 ON LINE 48 def_ptr = addrel(cg_static_$def_base,def_pos); 000051 la 4 00010 3521 20 epp2 pr4|8,* cg_static_$def_base 000052 aa 2 00000 3521 61 epp2 pr2|0,*au cg_static_$def_base 000053 aa 000000 0520 03 adwp2 0,du 000054 aa 6 00102 2521 00 spri2 pr6|66 def_ptr STATEMENT 1 ON LINE 49 def_reloc_ptr = addrel(cg_static_$def_reloc_base,def_pos); 000055 la 4 00012 3515 20 epp1 pr4|10,* cg_static_$def_reloc_base 000056 aa 1 00000 3515 61 epp1 pr1|0,*au cg_static_$def_reloc_base 000057 aa 000000 0510 03 adwp1 0,du 000060 aa 6 00104 2515 00 spri1 pr6|68 def_reloc_ptr STATEMENT 1 ON LINE 51 if cg_static_$last_def then def_ptr -> definition.backward = cg_static_$last_def; 000061 la 4 00016 2351 20 lda pr4|14,* cg_static_$last_def 000062 aa 000004 6000 04 tze 4,ic 000066 000063 aa 000022 7710 00 arl 18 000064 aa 2 00000 5511 14 stba pr2|0,14 definition.backward 000065 aa 000004 7100 04 tra 4,ic 000071 STATEMENT 1 ON LINE 52 else def_ptr -> definition.backward = cg_static_$zero_def; 000066 la 4 00020 2351 20 lda pr4|16,* cg_static_$zero_def 000067 aa 000022 7710 00 arl 18 000070 aa 2 00000 5511 14 stba pr2|0,14 definition.backward STATEMENT 1 ON LINE 54 addrel(cg_static_$def_base,cg_static_$last_def) -> definition.forward = def_pos; 000071 la 4 00016 2351 20 lda pr4|14,* cg_static_$last_def 000072 la 4 00010 3535 20 epp3 pr4|8,* cg_static_$def_base 000073 aa 3 00000 3535 61 epp3 pr3|0,*au cg_static_$def_base 000074 aa 000000 0530 03 adwp3 0,du 000075 aa 6 00101 2351 00 lda pr6|65 def_pos 000076 aa 3 00000 5511 60 stba pr3|0,60 definition.forward STATEMENT 1 ON LINE 56 def_ptr -> definition.forward = cg_static_$zero_def; 000077 la 4 00020 2351 20 lda pr4|16,* cg_static_$zero_def 000100 aa 2 00000 5511 60 stba pr2|0,60 definition.forward STATEMENT 1 ON LINE 58 def_ptr -> definition.new = "1"b; 000101 aa 400000 2350 07 lda 131072,dl 000102 aa 2 00001 2551 00 orsa pr2|1 definition.new STATEMENT 1 ON LINE 59 def_ptr -> definition.symbol = b18; 000103 aa 6 00100 2351 00 lda pr6|64 b18 000104 aa 2 00002 5511 60 stba pr2|2,60 definition.symbol STATEMENT 1 ON LINE 60 def_ptr -> definition.value = value; 000105 aa 6 00032 3735 20 epp7 pr6|26,* 000106 aa 7 00006 2351 20 lda pr7|6,* value 000107 aa 2 00001 5511 60 stba pr2|1,60 definition.value STATEMENT 1 ON LINE 62 def_ptr -> definition.class = bit(class,3); 000110 aa 7 00004 2351 20 lda pr7|4,* class 000111 aa 000002 6050 04 tpl 2,ic 000113 000112 aa 000000 5310 00 neg 0 000113 aa 0 00322 3771 00 anaq pr0|210 = 000000000007 777777777777 000114 aa 2 00001 6751 00 era pr2|1 definition.class 000115 aa 000007 3750 07 ana 7,dl 000116 aa 2 00001 6551 00 ersa pr2|1 definition.class STATEMENT 1 ON LINE 64 if class = 3 then cg_static_$seg_def = def_pos; 000117 aa 7 00004 2361 20 ldq pr7|4,* class 000120 aa 000003 1160 07 cmpq 3,dl 000121 aa 000004 6010 04 tnz 4,ic 000125 000122 aa 6 00101 2351 00 lda pr6|65 def_pos 000123 la 4 00022 7551 20 sta pr4|18,* cg_static_$seg_def 000124 aa 000020 7100 04 tra 16,ic 000144 STATEMENT 1 ON LINE 65 else do; STATEMENT 1 ON LINE 66 def_ptr -> definition.segname = cg_static_$seg_def; 000125 la 4 00022 2351 20 lda pr4|18,* cg_static_$seg_def 000126 aa 000022 7710 00 arl 18 000127 aa 2 00002 5511 14 stba pr2|2,14 definition.segname STATEMENT 1 ON LINE 67 def_ptr -> definition.entry = bit(fixed(class = 0,1),1); 000130 aa 7 00004 2361 20 ldq pr7|4,* class 000131 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 000132 aa 000107 7730 00 lrl 71 000133 aa 0 00000 1161 00 cmpq pr0|0 = 000000000000 000134 aa 000003 6050 04 tpl 3,ic 000137 000135 aa 0 00110 6761 00 erq pr0|72 = 777777777777 000136 aa 000001 0760 07 adq 1,dl 000137 aa 000107 7370 00 lls 71 000140 aa 000024 7730 00 lrl 20 000141 aa 2 00001 6751 00 era pr2|1 definition.entry 000142 aa 100000 3750 07 ana 32768,dl 000143 aa 2 00001 6551 00 ersa pr2|1 definition.entry STATEMENT 1 ON LINE 68 end; STATEMENT 1 ON LINE 70 string(def_reloc_ptr -> reloc(0)) = rc_dp || rc_dp; 000144 aa 000025 2350 07 lda 21,dl 000145 aa 000025 2750 03 ora 21,du 000146 aa 1 00000 7551 00 sta pr1|0 STATEMENT 1 ON LINE 71 def_reloc_ptr -> reloc(1).left = rel_code(class); 000147 aa 7 00004 7271 20 lxl7 pr7|4,* class 000150 ta 000000 2350 17 lda 0,7 000151 aa 1 00001 5511 60 stba pr1|1,60 reloc.left STATEMENT 1 ON LINE 72 string(def_reloc_ptr -> reloc(2)) = rc_dp || rc_dp; 000152 aa 000025 2350 07 lda 21,dl 000153 aa 000025 2750 03 ora 21,du 000154 aa 1 00002 7551 00 sta pr1|2 STATEMENT 1 ON LINE 74 cg_static_$def_pos = cg_static_$def_pos + 3; 000155 aa 000003 2360 07 ldq 3,dl 000156 la 4 00014 0561 20 asq pr4|12,* cg_static_$def_pos STATEMENT 1 ON LINE 75 cg_static_$last_def = def_pos; 000157 aa 6 00101 2351 00 lda pr6|65 def_pos 000160 la 4 00016 7551 20 sta pr4|14,* cg_static_$last_def STATEMENT 1 ON LINE 77 end; 000161 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE generate_definition ----------------------------------------------------------- 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