COMPILATION LISTING OF SEGMENT imft_pnt_interface_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/05/84 1139.6 mst Wed Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 8 /* Interface between IMFT and the system PNT manager */ 9 10 /* Note: All errors are translated into some code in imft_et_ to insure that the code can be properly transmitteded 11* between the two systems */ 12 13 /* Created: April 1982 by G. Palter */ 14 /* Modified 1984-08-15 by E. Swenson for Version 2 PNTs. */ 15 16 /* format: style4,delnl,insnl,ifthenstmt,ifthen */ 17 18 19 imft_pnt_interface_: 20 procedure (); 21 22 return; /* not an entrypoint */ 23 24 25 /* Parameters */ 26 27 dcl P_system_id character (*) parameter; /* get_system_password: the system's Person_id */ 28 dcl P_system_password character (8) aligned parameter; /* get_system_password: set to the system's password */ 29 30 dcl P_user_id character (*) parameter; /* validate_personid: the user's Person_id */ 31 32 dcl P_code fixed binary (35) parameter; 33 34 35 /* Local copies of parameters */ 36 37 dcl code fixed binary (35); 38 39 /* Remaining declarations */ 40 41 dcl system_password char (8); 42 43 /* format: off */ 44 dcl (imft_et_$cant_access_pnt, imft_et_$no_card_password, imft_et_$no_person_id) 45 fixed binary (35) external; 46 /* format: on */ 47 48 dcl error_table_$id_not_found fixed binary (35) external; 49 dcl error_table_$bad_password fixed bin (35) external static; 50 51 dcl pnt_manager_$validate_entry entry (char (*), fixed bin (35)); 52 dcl pnt_manager_$get_network_password entry (char (*), char (*), bit (1), fixed bin (35)); 53 54 dcl addr builtin; 55 56 /* */ 57 58 /* Determines a system's card input password */ 59 60 get_system_password: 61 entry (P_system_id, P_system_password, P_code); 62 63 call pnt_manager_$get_network_password (P_system_id, system_password, ("0"b), code); 64 if code ^= 0 then 65 if code = error_table_$bad_password then /* No network password */ 66 code = imft_et_$no_card_password; /* the ID specified for a system must have one */ 67 else if code = error_table_$id_not_found then code = imft_et_$no_person_id; 68 else code = imft_et_$cant_access_pnt; /* the daemon doesn't have access to the PNT */ 69 70 P_system_password = system_password; 71 P_code = code; 72 73 return; 74 75 /* */ 76 77 /* Validates that the given Person_id is in the PNT */ 78 79 validate_personid: 80 entry (P_user_id, P_code); 81 82 call pnt_manager_$validate_entry (P_user_id, code); 83 84 if code = 0 then ; /* found the given ID */ 85 86 else if code = error_table_$id_not_found then code = imft_et_$no_person_id; 87 88 else code = imft_et_$cant_access_pnt; /* the daemon doesn't have access to the PNT */ 89 90 P_code = code; 91 92 return; 93 94 end imft_pnt_interface_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/05/84 1004.0 imft_pnt_interface_.pl1 >special_ldd>temp>as>imft_pnt_interface_.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. P_code parameter fixed bin(35,0) dcl 32 set ref 60 71* 79 90* P_system_id parameter char unaligned dcl 27 set ref 60 63* P_system_password parameter char(8) dcl 28 set ref 60 70* P_user_id parameter char unaligned dcl 30 set ref 79 82* code 000100 automatic fixed bin(35,0) dcl 37 set ref 63* 64 64 64* 67 67* 68* 71 82* 84 86 86* 88* 90 error_table_$bad_password 000020 external static fixed bin(35,0) dcl 49 ref 64 error_table_$id_not_found 000016 external static fixed bin(35,0) dcl 48 ref 67 86 imft_et_$cant_access_pnt 000010 external static fixed bin(35,0) dcl 44 ref 68 88 imft_et_$no_card_password 000012 external static fixed bin(35,0) dcl 44 ref 64 imft_et_$no_person_id 000014 external static fixed bin(35,0) dcl 44 ref 67 86 pnt_manager_$get_network_password 000024 constant entry external dcl 52 ref 63 pnt_manager_$validate_entry 000022 constant entry external dcl 51 ref 82 system_password 000102 automatic char(8) unaligned dcl 41 set ref 63* 70 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addr builtin function dcl 54 NAMES DECLARED BY EXPLICIT CONTEXT. get_system_password 000020 constant entry external dcl 60 imft_pnt_interface_ 000006 constant entry external dcl 19 validate_personid 000122 constant entry external dcl 79 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 342 370 174 352 Length 554 174 26 150 145 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME imft_pnt_interface_ 90 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME imft_pnt_interface_ 000100 code imft_pnt_interface_ 000102 system_password imft_pnt_interface_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. pnt_manager_$get_network_password pnt_manager_$validate_entry THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_password error_table_$id_not_found imft_et_$cant_access_pnt imft_et_$no_card_password imft_et_$no_person_id CONSTANTS 000000 aa 514000000001 000001 aa 526000000010 000002 aa 404000000043 000003 aa 524000000010 000004 aa 526077777777 BEGIN PROCEDURE imft_pnt_interface_ ENTRY TO imft_pnt_interface_ STATEMENT 1 ON LINE 19 imft_pnt_interface_: procedure (); 000005 da 000121200000 000006 aa 000140 6270 00 eax7 96 000007 aa 7 00034 3521 20 epp2 pr7|28,* 000010 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000011 aa 000000000000 000012 aa 000000000000 STATEMENT 1 ON LINE 22 return; 000013 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO get_system_password STATEMENT 1 ON LINE 60 get_system_password: entry (P_system_id, P_system_password, P_code); 000014 at 000003000004 000015 tt 000003000002 000016 ta 000014000000 000017 da 000131300000 000020 aa 000140 6270 00 eax7 96 000021 aa 7 00034 3521 20 epp2 pr7|28,* 000022 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000023 aa 000006000000 000024 aa 000000000000 000025 aa 6 00042 3735 20 epp7 pr6|34,* 000026 aa 7 00000 2361 20 ldq pr7|0,* 000027 aa 000002 6040 04 tmi 2,ic 000031 000030 aa 777777 3760 07 anq 262143,dl 000031 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000032 aa 6 00106 7561 00 stq pr6|70 000033 aa 6 00032 3715 20 epp5 pr6|26,* 000034 aa 5 00006 3535 20 epp3 pr5|6,* 000035 aa 6 00104 2535 00 spri3 pr6|68 STATEMENT 1 ON LINE 63 call pnt_manager_$get_network_password (P_system_id, system_password, ("0"b), code); 000036 aa 000000 2350 07 lda 0,dl 000037 aa 6 00107 7551 00 sta pr6|71 000040 aa 6 00032 3735 20 epp7 pr6|26,* 000041 aa 7 00002 3521 20 epp2 pr7|2,* P_system_id 000042 aa 6 00112 2521 00 spri2 pr6|74 000043 aa 6 00102 3521 00 epp2 pr6|66 system_password 000044 aa 6 00114 2521 00 spri2 pr6|76 000045 aa 6 00107 3521 00 epp2 pr6|71 000046 aa 6 00116 2521 00 spri2 pr6|78 000047 aa 6 00100 3521 00 epp2 pr6|64 code 000050 aa 6 00120 2521 00 spri2 pr6|80 000051 aa 6 00042 3715 20 epp5 pr6|34,* 000052 aa 5 00000 3521 20 epp2 pr5|0,* 000053 aa 6 00122 2521 00 spri2 pr6|82 000054 aa 777725 3520 04 epp2 -43,ic 000001 = 526000000010 000055 aa 6 00124 2521 00 spri2 pr6|84 000056 aa 777722 3520 04 epp2 -46,ic 000000 = 514000000001 000057 aa 6 00126 2521 00 spri2 pr6|86 000060 aa 777722 3520 04 epp2 -46,ic 000002 = 404000000043 000061 aa 6 00130 2521 00 spri2 pr6|88 000062 aa 6 00110 6211 00 eax1 pr6|72 000063 aa 020000 4310 07 fld 8192,dl 000064 aa 6 00044 3701 20 epp4 pr6|36,* 000065 la 4 00024 3521 20 epp2 pr4|20,* pnt_manager_$get_network_password 000066 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 64 if code ^= 0 then if code = error_table_$bad_password then /* No network password */ code = imft_et_$no_card_password; 000067 aa 6 00100 2361 00 ldq pr6|64 code 000070 aa 000016 6000 04 tze 14,ic 000106 000071 aa 6 00044 3701 20 epp4 pr6|36,* 000072 la 4 00020 1161 20 cmpq pr4|16,* error_table_$bad_password 000073 aa 000004 6010 04 tnz 4,ic 000077 000074 la 4 00012 2361 20 ldq pr4|10,* imft_et_$no_card_password 000075 aa 6 00100 7561 00 stq pr6|64 code 000076 aa 000010 7100 04 tra 8,ic 000106 STATEMENT 1 ON LINE 67 else if code = error_table_$id_not_found then code = imft_et_$no_person_id; 000077 la 4 00016 1161 20 cmpq pr4|14,* error_table_$id_not_found 000100 aa 000004 6010 04 tnz 4,ic 000104 000101 la 4 00014 2361 20 ldq pr4|12,* imft_et_$no_person_id 000102 aa 6 00100 7561 00 stq pr6|64 code 000103 aa 000003 7100 04 tra 3,ic 000106 STATEMENT 1 ON LINE 68 else code = imft_et_$cant_access_pnt; 000104 la 4 00010 2361 20 ldq pr4|8,* imft_et_$cant_access_pnt 000105 aa 6 00100 7561 00 stq pr6|64 code STATEMENT 1 ON LINE 70 P_system_password = system_password; 000106 aa 6 00102 2371 00 ldaq pr6|66 system_password 000107 aa 6 00032 3735 20 epp7 pr6|26,* 000110 aa 7 00004 3715 20 epp5 pr7|4,* 000111 aa 5 00000 7551 00 sta pr5|0 P_system_password 000112 aa 5 00001 7561 00 stq pr5|1 P_system_password STATEMENT 1 ON LINE 71 P_code = code; 000113 aa 6 00100 2361 00 ldq pr6|64 code 000114 aa 6 00104 7561 20 stq pr6|68,* P_code STATEMENT 1 ON LINE 73 return; 000115 aa 0 00631 7101 00 tra pr0|409 return ENTRY TO validate_personid STATEMENT 1 ON LINE 79 validate_personid: entry (P_user_id, P_code); 000116 at 000002000004 000117 ta 000002000000 000120 ta 000116000000 000121 da 000141300000 000122 aa 000140 6270 00 eax7 96 000123 aa 7 00034 3521 20 epp2 pr7|28,* 000124 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000125 aa 000004000000 000126 aa 000000000000 000127 aa 6 00042 3735 20 epp7 pr6|34,* 000130 aa 7 00000 2361 20 ldq pr7|0,* 000131 aa 000002 6040 04 tmi 2,ic 000133 000132 aa 777777 3760 07 anq 262143,dl 000133 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000134 aa 6 00106 7561 00 stq pr6|70 000135 aa 6 00032 3715 20 epp5 pr6|26,* 000136 aa 5 00004 3535 20 epp3 pr5|4,* 000137 aa 6 00104 2535 00 spri3 pr6|68 STATEMENT 1 ON LINE 82 call pnt_manager_$validate_entry (P_user_id, code); 000140 aa 6 00032 3735 20 epp7 pr6|26,* 000141 aa 7 00002 3521 20 epp2 pr7|2,* P_user_id 000142 aa 6 00112 2521 00 spri2 pr6|74 000143 aa 6 00100 3521 00 epp2 pr6|64 code 000144 aa 6 00114 2521 00 spri2 pr6|76 000145 aa 6 00042 3715 20 epp5 pr6|34,* 000146 aa 5 00000 3521 20 epp2 pr5|0,* 000147 aa 6 00116 2521 00 spri2 pr6|78 000150 aa 777632 3520 04 epp2 -102,ic 000002 = 404000000043 000151 aa 6 00120 2521 00 spri2 pr6|80 000152 aa 6 00110 6211 00 eax1 pr6|72 000153 aa 010000 4310 07 fld 4096,dl 000154 aa 6 00044 3701 20 epp4 pr6|36,* 000155 la 4 00022 3521 20 epp2 pr4|18,* pnt_manager_$validate_entry 000156 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 84 if code = 0 then ; 000157 aa 6 00100 2361 00 ldq pr6|64 code 000160 aa 000002 6010 04 tnz 2,ic 000162 000161 aa 000011 7100 04 tra 9,ic 000172 STATEMENT 1 ON LINE 86 else if code = error_table_$id_not_found then code = imft_et_$no_person_id; 000162 aa 6 00044 3701 20 epp4 pr6|36,* 000163 la 4 00016 1161 20 cmpq pr4|14,* error_table_$id_not_found 000164 aa 000004 6010 04 tnz 4,ic 000170 000165 la 4 00014 2361 20 ldq pr4|12,* imft_et_$no_person_id 000166 aa 6 00100 7561 00 stq pr6|64 code 000167 aa 000003 7100 04 tra 3,ic 000172 STATEMENT 1 ON LINE 88 else code = imft_et_$cant_access_pnt; 000170 la 4 00010 2361 20 ldq pr4|8,* imft_et_$cant_access_pnt 000171 aa 6 00100 7561 00 stq pr6|64 code STATEMENT 1 ON LINE 90 P_code = code; 000172 aa 6 00104 7561 20 stq pr6|68,* P_code STATEMENT 1 ON LINE 92 return; 000173 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 94 end imft_pnt_interface_; END PROCEDURE imft_pnt_interface_ ----------------------------------------------------------- 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