ASSEMBLY LISTING OF SEGMENT >special_ldd>install>MR12.3-1114>bootload_slt_manager.alm ASSEMBLED ON: 11/11/89 0935.4 mst Sat OPTIONS USED: -target l68 list symbols ASSEMBLED BY: ALM Version 8.14 March 1989 ASSEMBLER CREATED: 06/09/89 1002.3 mst Fri 1 " *********************************************************** 2 " * * 3 " * Copyright, (C) Honeywell Bull Inc., 1987 * 4 " * * 5 " * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6 " * * 7 " *********************************************************** 000000 8 name bootload_slt_manager 9 10 " SLT management functions for bootload Multics. 11 " Stolen from slt_manager November 1982 by C. Hornig 12 13 include bootload_equs 1-1 " BEGIN INCLUDE FILE bootload_equs.incl.alm 1-2 " Created 10/04/80 W. Olin Sibert, mostly from bootstrap1 1-3 " Modified by almost everyone, it seems. 1-4 " Last modified for MR11 bootload Multics addresses starting in 1983 by 1-5 " Keith Loepere. 1-6 " 1-7 " This include file describes various things used by the programs in 1-8 " bound_bootload_0. 1-9 1-10 " Default pointer register usage: 1-11 000000 1-12 equ ds,0 " Descriptor segment 000001 1-13 equ seg2,1 " Another temporary 000002 1-14 equ mb,2 " IOM mailbox 000003 1-15 equ slt,3 " Segment loading table (SLT) 000004 1-16 equ nt,4 " Name_table 000005 1-17 equ prb,5 " Physical_record_buffer 000006 1-18 equ seg,6 " Temporary 000007 1-19 equ fv,7 " Interrupt and fault vectors 1-20 1-21 " Macros 1-22 1-23 macro equ_o 1 1-24 maclist off,save 2 1-25 bool &U,&2 3 1-26 equ &1,&U 4 1-27 maclist restore 5 1-28 &end 1-29 1-30 macro set_o 1 1-31 maclist off,save 2 1-32 bool &U,&2 3 1-33 set &1,&U 4 1-34 maclist restore 5 1-35 &end 1-36 1-37 macro include_nolist 1 1-38 maclist off,save 2 1-39 include &1 3 1-40 maclist restore 4 1-41 &end 1-42 1-43 macro Bpush 1 1-44 stx2 bootload_0$entry_stack_ptr,id 2 1-45 ttn bootload_error$out_of_stack 3 1-46 &end 1-47 1-48 " Breturn offset-from-return-point 1-49 1-50 macro Breturn 1 1-51 ldx2 bootload_0$entry_stack_ptr,di 2 1-52 tra 0+&1,x2 3 1-53 &end 1-54 1-55 " Bentry name,offset-from-return-point 1-56 1-57 macro Bentry 1 1-58 segdef &1 2 1-59 macro &1_return 3 1-60 Breturn &<&K,2&[0&;&2&] 4 1-61 &&end 5 1-62 &end 1-63 1-64 " Bentry_internal name,offset_from_return_point 1-65 1-66 macro Bentry_internal 1 1-67 macro &1_return 2 1-68 Breturn &<&K,2&[0&;&2&] 3 1-69 &&end 4 1-70 &end 1-71 1-72 1-73 " Definitions 1-74 1-75 equ_o bostoe_absloc,10000 " bos_teohold 1-76 equ_o bostoe_lth,2000 1-77 1-78 equ_o fgbx_absloc,24000 " now in bce toehold 1-79 equ_o fgbx_lth,2000 1-80 1-81 equ_o toe_absloc,24000 " bootload Multics toehold 1-82 equ_o toe_lth,4000 " This starts at a 0 mod 4 1-83 " page address. It is 1-84 " bound as first element 1-85 " of bound_bootload_0. 1-86 1-87 equ_o bbl0_absloc,24000 " bound_bootload_0 location 1-88 equ_o bbl0_lth,22000 " and length. 1-89 1-90 equ_o toedata_absloc,46000 " toehold_data 1-91 equ_o toedata_lth,4000 1-92 1-93 equ_o upt_absloc,52000 " unpaged_page_tables 1-94 equ_o upt_lth,2000 1-95 1-96 equ_o iupt_absloc,54000 " init_unpaged_page_tables 1-97 equ_o iupt_lth,2000 1-98 1-99 equ_o bkpt_absloc,56000 " breakpoint_page 1-100 equ_o bkpt_lth,2000 1-101 1-102 equ_o prb_absloc,60000 " physical_record_buffer 1-103 equ_o prb_lth,6000 " memory past here up for 1-104 " grabs 1-105 1-106 " END INCLUDE FILE bootload_equs.incl.alm 14 include slt 2-1 2-2 2-3 "BEGIN INCLUDE FILE slt.incl.alm 2-4 2-5 "Created 11/04/76 1459.6 est Thu by convert_include_file, 2-6 " Version of 04/30/76 1208.1 est Fri. 2-7 2-8 "Made from >user_dir_dir>Multics>Morris>slt>include>slt.incl.pl1, 2-9 " modified 11/04/76 1459.5 est Thu 2-10 2-11 " 2-12 " Structure slt 2-13 " 100010 2-14 equ slt_size,32776 2-15 2-16 000000 2-17 equ slt.name_seg_ptr,0 000002 2-18 equ slt.free_core_start,2 000003 2-19 equ slt.first_sup_seg,3 000004 2-20 equ slt.last_sup_seg,4 000005 2-21 equ slt.first_init_seg,5 000006 2-22 equ slt.last_init_seg,6 000007 2-23 equ slt.free_core_size,7 000010 2-24 equ slt.seg,8 "LEVEL 2 2-25 000010 2-26 equ slt.slte,8 2-27 2-28 " 2-29 " Structure name_seg 2-30 " 000201 2-31 equ name_seg_size,129 2-32 000000 2-33 equ name_seg.next_loc,0 "LOWER 2-34 000001 2-35 equ name_seg.ht,1 "UPPER 2-36 2-37 " 2-38 " Structure segnam 2-39 " 2-40 000000 2-41 equ segnam.count,0 000001 2-42 equ segnam.names,1 "LEVEL 2 2-43 000001 2-44 equ segnam.hp,1 "UPPER 400000 2-45 bool segnam.ref,400000 "DL 000000 2-46 equ segnam.segno_shift,0 007777 2-47 bool segnam.segno_mask,007777 2-48 000002 2-49 equ segnam.name,2 "DOUBLE 2-50 2-51 " 2-52 " Structure path 2-53 " 000000 2-54 equ path.size,0 000001 2-55 equ path.name,1 000000 2-56 equ path.acls,0 2-57 2-58 " 2-59 " Structure acls 2-60 " 000000 2-61 equ acls.count,0 000001 2-62 equ acls.acl,1 "LEVEL 2 2-63 000001 2-64 equ acls.userid,1 "DOUBLE 000011 2-65 equ acls.mode,9 000013 2-66 equ acls.code,11 2-67 2-68 "END INCLUDE FILE slt.incl.alm 15 include slte 3-1 3-2 3-3 "BEGIN INCLUDE FILE slte.incl.alm 3-4 3-5 3-6 "Created 12/12/83 1408.5 est Mon by convert_include_file, 3-7 " Version of 11/07/82 1445.1 est Sun. 3-8 3-9 "Made from >bootload>update>incl>slte.incl.pl1, 3-10 " modified 12/12/83 1408.5 est Mon 3-11 3-12 " 3-13 " Structure slte_uns 3-14 " 000004 3-15 equ slte_uns_size,4 3-16 000000 3-17 equ slte_uns.names_ptr,0 " UPPER 000000 3-18 equ slte_uns.path_ptr,0 " LOWER 3-19 000001 3-20 equ slte_uns.access_word,1 000040 3-21 equ slte_uns.access_shift,32 000017 3-22 bool slte_uns.access_mask,000017 000001 3-23 equ slte_uns.cache_word,1 020000 3-24 bool slte_uns.cache,020000 " DU 000001 3-25 equ slte_uns.abs_seg_word,1 010000 3-26 bool slte_uns.abs_seg,010000 " DU 000001 3-27 equ slte_uns.firmware_seg_word,1 004000 3-28 bool slte_uns.firmware_seg,004000 " DU 000001 3-29 equ slte_uns.layout_seg_word,1 002000 3-30 bool slte_uns.layout_seg,002000 " DU 000001 3-31 equ slte_uns.breakpointable_word,1 001000 3-32 bool slte_uns.breakpointable,001000 " DU 000001 3-33 equ slte_uns.wired_word,1 000040 3-34 bool slte_uns.wired,000040 " DU 000001 3-35 equ slte_uns.paged_word,1 000020 3-36 bool slte_uns.paged,000020 " DU 000001 3-37 equ slte_uns.per_process_word,1 000010 3-38 bool slte_uns.per_process,000010 " DU 000001 3-39 equ slte_uns.acl_provided_word,1 000001 3-40 bool slte_uns.acl_provided,000001 " DU 000001 3-41 equ slte_uns.branch_required_word,1 040000 3-42 bool slte_uns.branch_required,040000 " DL 000001 3-43 equ slte_uns.init_seg_word,1 020000 3-44 bool slte_uns.init_seg,020000 " DL 000001 3-45 equ slte_uns.temp_seg_word,1 010000 3-46 bool slte_uns.temp_seg,010000 " DL 000001 3-47 equ slte_uns.link_provided_word,1 004000 3-48 bool slte_uns.link_provided,004000 " DL 000001 3-49 equ slte_uns.link_sect_word,1 002000 3-50 bool slte_uns.link_sect,002000 " DL 000001 3-51 equ slte_uns.link_sect_wired_word,1 001000 3-52 bool slte_uns.link_sect_wired,001000 " DL 000001 3-53 equ slte_uns.combine_link_word,1 000400 3-54 bool slte_uns.combine_link,000400 " DL 000001 3-55 equ slte_uns.pre_linked_word,1 000200 3-56 bool slte_uns.pre_linked,000200 " DL 000001 3-57 equ slte_uns.defs_word,1 000100 3-58 bool slte_uns.defs,000100 " DL 3-59 000002 3-60 equ slte_uns.cur_length_word,2 000033 3-61 equ slte_uns.cur_length_shift,27 000777 3-62 bool slte_uns.cur_length_mask,000777 000002 3-63 equ slte_uns.ringbrack_word,2 000030 3-64 equ slte_uns.ringbrack_shift,24 000007 3-65 bool slte_uns.ringbrack_mask,000007 000002 3-66 equ slte_uns.segno,2 " LOWER 3-67 000003 3-68 equ slte_uns.max_length_word,3 000030 3-69 equ slte_uns.max_length_shift,24 000777 3-70 bool slte_uns.max_length_mask,000777 000003 3-71 equ slte_uns.bit_count_word,3 000000 3-72 equ slte_uns.bit_count_shift,0 3-73 3-74 " 3-75 " Structure slte 3-76 " 000004 3-77 equ slte_size,4 3-78 000000 3-79 equ slte.names_ptr,0 " UPPER 000000 3-80 equ slte.path_ptr,0 " LOWER 3-81 000001 3-82 equ slte.access_word,1 000040 3-83 equ slte.access_shift,32 000017 3-84 bool slte.access_mask,000017 000001 3-85 equ slte.cache_word,1 020000 3-86 bool slte.cache,020000 " DU 000001 3-87 equ slte.abs_seg_word,1 010000 3-88 bool slte.abs_seg,010000 " DU 000001 3-89 equ slte.firmware_seg_word,1 004000 3-90 bool slte.firmware_seg,004000 " DU 000001 3-91 equ slte.layout_seg_word,1 002000 3-92 bool slte.layout_seg,002000 " DU 000001 3-93 equ slte.breakpointable_word,1 001000 3-94 bool slte.breakpointable,001000 " DU 000001 3-95 equ slte.wired_word,1 000040 3-96 bool slte.wired,000040 " DU 000001 3-97 equ slte.paged_word,1 000020 3-98 bool slte.paged,000020 " DU 000001 3-99 equ slte.per_process_word,1 000010 3-100 bool slte.per_process,000010 " DU 000001 3-101 equ slte.acl_provided_word,1 000001 3-102 bool slte.acl_provided,000001 " DU 000001 3-103 equ slte.branch_required_word,1 040000 3-104 bool slte.branch_required,040000 " DL 000001 3-105 equ slte.init_seg_word,1 020000 3-106 bool slte.init_seg,020000 " DL 000001 3-107 equ slte.temp_seg_word,1 010000 3-108 bool slte.temp_seg,010000 " DL 000001 3-109 equ slte.link_provided_word,1 004000 3-110 bool slte.link_provided,004000 " DL 000001 3-111 equ slte.link_sect_word,1 002000 3-112 bool slte.link_sect,002000 " DL 000001 3-113 equ slte.link_sect_wired_word,1 001000 3-114 bool slte.link_sect_wired,001000 " DL 000001 3-115 equ slte.combine_link_word,1 000400 3-116 bool slte.combine_link,000400 " DL 000001 3-117 equ slte.pre_linked_word,1 000200 3-118 bool slte.pre_linked,000200 " DL 000001 3-119 equ slte.defs_word,1 000100 3-120 bool slte.defs,000100 " DL 3-121 000002 3-122 equ slte.cur_length_word,2 000033 3-123 equ slte.cur_length_shift,27 000777 3-124 bool slte.cur_length_mask,000777 000002 3-125 equ slte.ringbrack_word,2 000030 3-126 equ slte.ringbrack_shift,24 000007 3-127 bool slte.ringbrack_mask,000007 000002 3-128 equ slte.segno,2 " LOWER 3-129 000003 3-130 equ slte.max_length_word,3 000030 3-131 equ slte.max_length_shift,24 000777 3-132 bool slte.max_length_mask,000777 000003 3-133 equ slte.bit_count_word,3 000000 3-134 equ slte.bit_count_shift,0 3-135 3-136 "END INCLUDE FILE slte.incl.alm 16 " 17 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 18 " " 19 " Initialize the Segment Loading Table. " 20 " " 21 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 22 000000 23 segdef init_slt 24 000000 25 init_slt: 000000 4a 4 00010 3721 20 26 epp seg,template_slt_$t_slt 27 28 " Calculate size of header+sup segs 29 000001 aa 6 00004 2351 00 30 lda seg|slt.last_sup_seg " this many 000002 aa 000004 7350 00 31 als 4 " 4 words each 000003 aa 000060 0750 07 32 ada 4*(slt.seg+4),dl " header length (zero base adds 1) 33 000004 aa 0 00140 1005 40 34 mlr (pr,rl),(pr,rl) copy SLT header and entries for sup segs 000005 aa 600000 000005 35 desc9a seg|0,al 000006 aa 300000 000005 36 desc9a slt|0,al 37 38 " Now get init segs 39 000007 aa 3 00006 2351 00 40 lda slt|slt.last_init_seg " LENGTH 000010 aa 3 00005 1751 00 41 sba slt|slt.first_init_seg " This many entries 000011 aa 000001 0750 07 42 ada 1,dl " at least one entry 000012 aa 000004 7350 00 43 als 4 " 4 words, to chars 44 000013 aa 3 00004 2361 00 45 ldq slt|slt.last_sup_seg " LOCATION FROM 000014 aa 000001 0760 07 46 adq 1,dl " this many entries 000015 aa 000002 7360 00 47 qls 2 " this many words 000016 aa 6 00010 3721 06 48 epp seg,seg|slt.seg,ql " gotcha 49 000017 aa 3 00005 2361 00 50 ldq slt|slt.first_init_seg " LOCATION TO 000020 aa 000002 7360 00 51 qls 2 " words 000021 aa 3 00010 3515 06 52 epp seg2,slt|slt.seg,ql " gotcha 53 000022 aa 0 00140 1005 40 54 mlr (pr,rl),(pr,rl) 000023 aa 600000 000005 55 desc9a seg|0,al 000024 aa 100000 000005 56 desc9a seg2|0,al 57 58 " Name table 59 000025 4a 4 00012 3721 20 60 epp seg,template_slt_$t_name_table 000026 4a 4 00014 2351 20 61 lda template_slt_$name_table_length 000027 aa 000002 7350 00 62 als 2 " chars 63 000030 aa 0 00140 1005 40 64 mlr (pr,rl),(pr,rl) copy segment and path names 000031 aa 600000 000005 65 desc9a seg|0,al 000032 aa 400000 000005 66 desc9a nt|0,al 67 68 " compute free core size 69 000033 4a 4 00016 2351 20 70 lda bootload_info$bootload_mem_size 000034 aa 3 00002 1751 00 71 sba slt|slt.free_core_start " Subtract those already used, and 000035 aa 3 00007 7551 00 72 sta slt|slt.free_core_size " save it. 73 74 " now hash in names for these template segs 75 000036 aa 3 00005 7211 00 76 lxl1 slt|slt.first_init_seg " do init segs first 000037 aa 3 00005 2351 00 77 lda slt|slt.first_init_seg 000040 78 init_seg_hash_loop: 000040 aa 000002 7350 00 79 als 2 " length of slte 000041 aa 3 00010 3721 05 80 epp seg,slt|slt.seg,al " slte to consider 000042 aa 6 00000 2231 00 81 ldx3 seg|slte.names_ptr " names ptr 000043 0a 000046 6000 00 82 tze next_init_seg_hash 000044 aa 4 00000 3721 13 83 epp seg,nt|0,x3 000045 0a 000213 7050 00 84 tsx5 hash_in 000046 85 next_init_seg_hash: 000046 aa 000001 6210 11 86 eax1 1,x1 " next init_seg 000047 aa 000000 6350 11 87 eaa 0,x1 000050 aa 000022 7310 00 88 ars 18 000051 aa 3 00006 1151 00 89 cmpa slt|slt.last_init_seg 000052 0a 000040 6044 00 90 tmoz init_seg_hash_loop 91 000053 aa 3 00003 7211 00 92 lxl1 slt|slt.first_sup_seg " now do sup segs 000054 aa 3 00003 2351 00 93 lda slt|slt.first_sup_seg 000055 94 sup_seg_hash_loop: 000055 aa 000002 7350 00 95 als 2 " length of slte 000056 aa 3 00010 3721 05 96 epp seg,slt|slt.seg,al " slte to consider 000057 aa 6 00000 2231 00 97 ldx3 seg|slte.names_ptr " names ptr 000060 0a 000063 6000 00 98 tze next_sup_seg_hash 000061 aa 4 00000 3721 13 99 epp seg,nt|0,x3 000062 0a 000213 7050 00 100 tsx5 hash_in 000063 101 next_sup_seg_hash: 000063 aa 000001 6210 11 102 eax1 1,x1 " next init_seg 000064 aa 000000 6350 11 103 eaa 0,x1 000065 aa 000022 7310 00 104 ars 18 000066 aa 3 00004 1151 00 105 cmpa slt|slt.last_sup_seg 000067 0a 000055 6044 00 106 tmoz sup_seg_hash_loop 107 000070 aa 000000 7100 12 108 tra 0,x2 " return 109 " 110 " tsx2 bootload_slt_manager$build_entry 111 " arg slte CW 112 " arg slte 113 " tra error 114 " (pr1 -> segment base) 115 " (pr6 -> new SLTE) 116 000071 117 segdef build_entry 118 000071 119 build_entry: 000071 aa 000001 3514 32 120 epp seg2,1,x2* " seg2 -> SLTE 121 000072 aa 4 00000 7211 00 122 lxl1 nt|name_seg.next_loc X1 contains first unused location 000073 aa 1 00000 7411 00 123 stx1 seg2|slte.names_ptr set name pointer in SLT entry 000074 aa 4 00000 3721 11 124 epp seg,nt|0,x1 125 000075 aa 000000 2350 32 126 lda 0,x2* " get header control word 000076 aa 000004 1750 07 127 sba slte_size,dl " size of names 000077 aa 4 00000 0551 00 128 asa nt|name_seg.next_loc" bump name table pointer 000100 aa 000024 7350 00 129 als 18+2 " characters in AU 130 000101 aa 0 00140 1005 40 131 mlr (pr,rl),(pr,rl) " copy the names & path 000102 aa 100004 000001 132 desc9a seg2|slte_size,au 000103 aa 600000 000001 133 desc9a seg|0,au 134 000104 aa 1 00001 2351 00 135 lda seg2|slte.init_seg_word is this an initialization segment? 000105 aa 020000 3150 07 136 cana slte.init_seg,dl .. 000106 0a 000112 6000 00 137 tze sup if zero, supervisor segment 138 000107 aa 3 00006 0541 00 139 aos slt|slt.last_init_seg otherwise, init segment 000110 aa 3 00006 2361 00 140 ldq slt|slt.last_init_seg segment number in Q 000111 0a 000116 7100 00 141 tra jn .. 142 000112 aa 3 00004 0541 00 143 sup: aos slt|slt.last_sup_seg supervisor segment 000113 aa 3 00004 2361 00 144 ldq slt|slt.last_sup_seg segment number in Q 000114 aa 3 00005 1161 00 145 cmpq slt|slt.first_init_seg are we overlapping the init segs? 000115 aa 000002 6030 12 146 trc 2,x2 fatal error if so 147 000116 148 jn: 000116 aa 000000 6200 06 149 eax0 0,ql " save segment number 000117 aa 1 00002 4401 00 150 sxl0 seg2|slte.segno " in the SLTE 000120 aa 000004 4020 07 151 mpy slte_size,dl multiply by length of SLT entry 000121 aa 3 00010 3721 06 152 epp seg,slt|slt.seg,ql " get ptr to new SLTE 153 000122 aa 0 00100 1005 00 154 mlr (pr),(pr) fill in the SLT entry 000123 aa 100000 000020 155 desc9a seg2|0,slte_size*4 000124 aa 600000 000020 156 desc9a seg|0,slte_size*4 157 000125 aa 6 00001 2351 00 158 lda seg|slte.branch_required_word Look for branch-required switch 000126 aa 040000 3150 07 159 cana slte.branch_required,dl Is path provided 000127 0a 000135 6000 00 160 tze no_copy_path 161 000130 aa 1 00004 2361 00 162 ldq seg2|slte_size+segnam.count count of names in Q 000131 aa 000011 4020 07 163 mpy 9,dl multiply by length of each name 000132 aa 000001 6270 06 164 eax7 1,ql add 1 for name count itself 000133 aa 6 00000 0671 00 165 adx7 seg|slte.names_ptr " add offset of names 000134 aa 6 00000 4471 00 166 sxl7 seg|slte.path_ptr " save it 167 000135 168 no_copy_path: 169 170 " now hash in names for segment 171 000135 aa 6 00000 2231 00 172 ldx3 seg|slte.names_ptr " at segnam 000136 aa 4 00000 3721 13 173 epp seg,nt|0,x3 000137 aa 000000 6210 10 174 eax1 0,x0 " setup registers as needed 000140 0a 000213 7050 00 175 tsx5 hash_in 176 000141 aa 000000 3514 00 177 epp seg2,0 " make a ring-0 pointer 000142 aa 000000 3104 10 178 easp seg2,0,x0 " to the segment 000143 aa 000000 6360 10 179 eaq 0,x0 " now restore pr(seg) -> slte 000144 aa 000004 4020 07 180 mpy slte_size,dl 000145 aa 3 00010 3721 02 181 epp seg,slt|slt.seg,qu 000146 aa 000003 7100 12 182 tra 3,x2 " return 183 " 184 " tsx2 bootload_slt_manager$get_seg_ptr 185 " arg name 186 " tra error 187 " (seg -> segment) 188 " (a = segment number) 189 000147 190 segdef get_seg_ptr 191 000147 192 get_seg_ptr: 000147 aa 000000 3514 32 193 epp seg2,0,x2* " pts at name 000150 0a 000201 7160 00 194 xec spris+seg2 " done so can get spri seg2,name_arg 000151 0a 000241 7030 00 195 tsx3 hash_index_ 000152 0a 000210 0000 00 196 arg name_arg 000153 0a 000322 0000 00 197 arg =32 000154 0a 000323 0000 00 198 arg =0 000155 0a 000324 0000 00 199 arg =128 000156 0a 000212 0000 00 200 arg hash_value " got where should hash 000157 aa 000000 3514 32 201 epp seg2,0,x2* " restore pr(seg2) -> name 000160 0a 000212 7230 00 202 lxl3 hash_value 000161 aa 4 00001 3721 33 203 epp seg,nt|name_seg.ht,x3* " first entry in hash list 000162 204 hash_search_loop: 000162 aa 6 00000 6241 00 205 eax4 seg|0 000163 aa 000001 6000 12 206 tze 1,x2 " ran off end => not found 000164 aa 0 00100 1065 00 207 cmpc (pr),(pr) 000165 aa 100000 000040 208 desc9a seg2|0,32 " does name match? 000166 aa 600001 000040 209 desc9a seg|1,32 000167 0a 000173 6000 00 210 tze get_seg_found 000170 aa 6 00000 2241 00 211 ldx4 seg|0 000171 aa 000000 3320 14 212 eawp seg,0,x4 " next in list 000172 0a 000162 7100 00 213 tra hash_search_loop 000173 214 get_seg_found: 000173 aa 6 00000 2351 00 215 lda seg|0 " get segno 000174 aa 007777 3750 07 216 ana segnam.segno_mask,dl 000175 aa 000000 3720 00 217 epp seg,0 " get a pointer 000176 aa 000000 3330 05 218 easp seg,0,al 000177 aa 000002 7100 12 219 tra 2,x2 " return 220 000200 0a 000210 2500 00 221 spris: spri0 name_arg " table to xec to get spri seg2,name_arg 000201 0a 000210 2514 00 222 spri1 name_arg 000202 0a 000210 2520 00 223 spri2 name_arg 000203 0a 000210 2534 00 224 spri3 name_arg 000204 0a 000210 6500 00 225 spri4 name_arg 000205 0a 000210 6514 00 226 spri5 name_arg 000206 0a 000210 6520 00 227 spri6 name_arg 000207 0a 000210 6534 00 228 spri7 name_arg 229 " 230 " local routine hash_in 231 " hashes in to lists all names for given segment 232 " uses pr(seg), pr(seg2), x3, x4, x6, x7, a, q: tsx5'd to 233 " assumes pr(seg) points to a segnam entry (from name table) 234 " and x1 is segment number to put in slot 235 " 236 237 even 000210 aa 000000 000043 238 name_arg: its 0,0 place for address of name 000211 aa 000000 000000 000212 aa 000000 000000 239 hash_value: dec 0 place for hash return result 240 000213 241 hash_in: 000213 aa 6 00000 7261 00 242 lxl6 seg|segnam.count get number of names to hash 000214 aa 000000 6000 15 243 tze 0,x5 nothing to do 000215 244 hash_in_loop: 000215 aa 6 00002 3515 00 245 epp seg2,seg|segnam.name 000216 0a 000201 7160 00 246 xec spris+seg2 point at name to hash 000217 0a 000241 7030 00 247 tsx3 hash_index_ get hash value 000220 0a 000210 0000 00 248 arg name_arg 000221 0a 000322 0000 00 249 arg =32 000222 0a 000323 0000 00 250 arg =0 000223 0a 000324 0000 00 251 arg =128 000224 0a 000212 0000 00 252 arg hash_value 000225 0a 000212 7270 00 253 lxl7 hash_value thread into hash -list 000226 aa 4 00001 2231 17 254 ldx3 nt|name_seg.ht,x7 000227 aa 6 00001 7431 00 255 stx3 seg|segnam.hp 000230 aa 6 00001 6231 00 256 eax3 seg|segnam.hp 000231 aa 4 00001 7431 17 257 stx3 nt|name_seg.ht,x7 000232 aa 000000 6350 11 258 eaa 0,x1 put segno onto right bits 000233 aa 000022 7310 00 259 ars 18 000234 aa 6 00001 7511 03 260 stca seg|segnam.hp,03 save segno in segnam entry 000235 aa 6 00011 3721 00 261 epp seg,seg|9 advance to next segnam entry 000236 aa 777777 6260 16 262 eax6 -1,x6 000237 0a 000215 6010 00 263 tnz hash_in_loop 000240 aa 000000 7100 15 264 tra 0,x5 return to caller 265 " 266 " local routine hash_index_ 267 " stolen from hash_index_.alm 268 " for bootload0 environment 269 " uses pr(seg2), x3, x4, a, q: tsx3'd to 270 " 271 " tsx3 hash_index_ 272 " arg string_ptr 273 " arg string_length 274 " arg bias 275 " arg hash_table_size 276 " arg hash_value 277 " 000000 278 set string,0 000001 279 set length,1 000002 280 set bias,2 000003 281 set tablesize,3 000004 282 set index,4 000241 283 hash_index_: 000241 aa 000000 3514 33 284 epp seg2,string,x3* get pointer to pointer to string 000242 aa 1 00000 3515 20 285 epp seg2,seg2|0,* get pointer to string 000243 aa 000003 2340 33 286 szn tablesize,x3* check for zero divide 000244 0a 000307 6000 00 287 tze err trouble 000245 aa 000000 6350 00 288 eaa 0 clear the a register 000246 aa 000001 2360 33 289 ldq length,x3* get length of string 000247 aa 000040 1160 07 290 cmpq =32,dl is it an entry name? 000250 0a 000257 6010 00 291 tnz compare no, go to compare 000251 aa 000002 7320 00 292 qrs 2 yes, ignore trailing blanks 000252 aa 1 77777 2351 06 293 strip: lda seg2|-1,ql get end word 000253 0a 000311 1150 00 294 cmpa blanks all blanks? 000254 0a 000267 6010 00 295 tnz add1 no, go to compare 000255 aa 000001 1760 07 296 sbq =1,dl yes, backup 1 word 000256 0a 000252 7100 00 297 tra strip loop back and try again 000257 aa 000106 7770 00 298 compare: llr 70 divide by 4 and save remainder 000260 aa 000020 7710 00 299 arl 16 shift remainder to upper a 000261 aa 000000 6240 01 300 eax4 0,au divisible by 4? 000262 0a 000267 6000 00 301 tze add1 yes go to compare 000263 aa 1 00000 2351 06 302 lda seg2|0,ql no, make blanks out of last chars 000264 0a 000312 3750 14 303 ana mask,4 000265 0a 000316 2750 14 304 ora bits,4 000266 0a 000270 7100 00 305 tra add2 000267 aa 000000 6350 00 306 add1: eaa 0 zero a reg-init sum 000270 307 add2: 000270 aa 000000 7360 00 308 qls 0 set sign of q 000271 0a 000275 6000 00 309 tze noadd no words to be added in 000272 aa 1 77777 0351 06 310 adla seg2|-1,ql 000273 aa 000001 1360 07 311 sblq 1,dl go to next word 000274 0a 000270 6050 00 312 tpl add2 000275 aa 000004 7550 33 313 noadd: sta index,x3* save temporarily 000276 aa 000002 2360 33 314 ldq bias,x3* get bias 000277 aa 303227 4020 07 315 mpy =99991,dl multipy by large prime number 000300 aa 000004 0760 33 316 adq index,x3* add in sum of the words 000301 aa 000003 5060 33 317 div tablesize,x3* divide by hash table size 000302 aa 000000 7350 00 318 als 0 set zero indicator from remainder (in a-reg) 000303 0a 000305 6050 00 319 tpl *+2 must be positive answer 000304 aa 000000 5310 00 320 neg 000305 aa 000004 7550 33 321 sta index,x3* return the remainder of the division 000306 aa 000005 7100 13 322 .rt: tra 5,x3 return to caller 323 000307 aa 000004 4500 33 324 err: stz index,x3* return zero as hash index if error 000310 0a 000306 7100 00 325 tra .rt 326 000311 aa 040 040 040 040 327 blanks: aci " " 000312 aa 000000 000000 328 mask: oct 0,777000000000,777777000000,777777777000 000313 aa 777000 000000 000314 aa 777777 000000 000315 aa 777777 777000 000316 aa 000000 000000 329 bits: oct 0,000040040040,000000040040,000000000040 000317 aa 000040 040040 000320 aa 000000 040040 000321 aa 000000 000040 330 331 end bootload_slt_manager LITERALS 000322 aa 000000 000040 000323 aa 000000 000000 000324 aa 000000 000200 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 000325 5a 000003 000000 000326 5a 000045 600000 000327 aa 000000 000000 000330 55 000014 000002 000331 5a 000002 400003 000332 55 000006 000014 000333 aa 024 142 157 157 000334 aa 164 154 157 141 000335 aa 144 137 163 154 000336 aa 164 137 155 141 000337 aa 156 141 147 145 000340 aa 162 000 000 000 000341 55 000022 000003 000342 0a 000147 400000 000343 55 000017 000003 000344 aa 013 147 145 164 get_seg_ptr 000345 aa 137 163 145 147 000346 aa 137 160 164 162 000347 55 000030 000014 000350 0a 000071 400000 000351 55 000025 000003 000352 aa 013 142 165 151 build_entry 000353 aa 154 144 137 145 000354 aa 156 164 162 171 000355 55 000036 000022 000356 0a 000000 400000 000357 55 000033 000003 000360 aa 010 151 156 151 init_slt 000361 aa 164 137 163 154 000362 aa 164 000 000 000 000363 55 000002 000030 000364 6a 000000 400002 000365 55 000041 000003 000366 aa 014 163 171 155 symbol_table 000367 aa 142 157 154 137 000370 aa 164 141 142 154 000371 aa 145 000 000 000 DEFINITIONS HASH TABLE 000372 aa 000000 000015 000373 aa 000000 000000 000374 aa 000000 000000 000375 aa 000000 000000 000376 5a 000030 000000 000377 5a 000022 000000 000400 aa 000000 000000 000401 5a 000036 000000 000402 aa 000000 000000 000403 5a 000014 000000 000404 aa 000000 000000 000405 aa 000000 000000 000406 aa 000000 000000 000407 aa 000000 000000 EXTERNAL NAMES 000410 aa 021 142 157 157 bootload_mem_size 000411 aa 164 154 157 141 000412 aa 144 137 155 145 000413 aa 155 137 163 151 000414 aa 172 145 000 000 000415 aa 015 142 157 157 bootload_info 000416 aa 164 154 157 141 000417 aa 144 137 151 156 000420 aa 146 157 000 000 000421 aa 021 156 141 155 name_table_length 000422 aa 145 137 164 141 000423 aa 142 154 145 137 000424 aa 154 145 156 147 000425 aa 164 150 000 000 000426 aa 014 164 137 156 t_name_table 000427 aa 141 155 145 137 000430 aa 164 141 142 154 000431 aa 145 000 000 000 000432 aa 005 164 137 163 t_slt 000433 aa 154 164 000 000 000434 aa 015 164 145 155 template_slt_ 000435 aa 160 154 141 164 000436 aa 145 137 163 154 000437 aa 164 137 000 000 NO TRAP POINTER WORDS TYPE PAIR BLOCKS 000440 aa 000004 000000 000441 55 000070 000063 000442 aa 000004 000000 000443 55 000107 000074 000444 aa 000004 000000 000445 55 000107 000101 000446 aa 000004 000000 000447 55 000107 000105 000450 aa 000001 000000 000451 aa 000000 000000 INTERNAL EXPRESSION WORDS 000452 5a 000113 000000 000453 5a 000115 000000 000454 5a 000117 000000 000455 5a 000121 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 000325 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000020 000007 a2 000000 000000 000010 9a 777770 0000 46 template_slt_|t_slt 000011 5a 000130 0000 00 000012 9a 777766 0000 46 template_slt_|t_name_table 000013 5a 000127 0000 00 000014 9a 777764 0000 46 template_slt_|name_table_length 000015 5a 000126 0000 00 000016 9a 777762 0000 46 bootload_info|bootload_mem_size 000017 5a 000125 0000 00 SYMBOL INFORMATION SYMBOL TABLE HEADER 000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000010 000004 aa 000000 117244 000005 aa 361023 525721 000006 aa 000000 117547 000007 aa 247144 723230 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000002 000002 000016 aa 000064 000000 000017 aa 000000 000231 000020 aa 000000 000154 000021 aa 000205 000200 000022 aa 000221 000154 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 070056 061064 000030 aa 040115 141162 000031 aa 143150 040061 000032 aa 071070 071040 000033 aa 040040 040040 000034 aa 110151 162156 000035 aa 145151 163145 000036 aa 156056 123171 000037 aa 163115 141151 000040 aa 156164 056141 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 055164 141162 000045 aa 147145 164040 000046 aa 154066 070040 000047 aa 040040 040040 000050 aa 040040 040040 000051 aa 040040 040040 000052 aa 040040 040040 000053 aa 040040 040040 000054 aa 040040 040040 000055 aa 040040 040040 000056 aa 040154 151163 000057 aa 164040 163171 000060 aa 155142 157154 000061 aa 163040 040040 000062 aa 040040 040040 000063 aa 040040 040040 000064 aa 000000 000001 000065 aa 000000 000004 000066 aa 000106 000071 000067 aa 175453 021736 000070 aa 000000 117547 000071 aa 215115 400000 000072 aa 000125 000043 000073 aa 127236 043477 000074 aa 000000 112724 000075 aa 701742 600000 000076 aa 000136 000031 000077 aa 043243 130516 000100 aa 000000 104205 000101 aa 554413 200000 000102 aa 000145 000032 000103 aa 127236 043555 000104 aa 000000 112724 000105 aa 701750 000000 000106 aa 076163 160145 >special_ldd>install>MR12.3-1114>bootload_slt_manager.alm 000107 aa 143151 141154 000110 aa 137154 144144 000111 aa 076151 156163 000112 aa 164141 154154 000113 aa 076115 122061 000114 aa 062056 063055 000115 aa 061061 061064 000116 aa 076142 157157 000117 aa 164154 157141 000120 aa 144137 163154 000121 aa 164137 155141 000122 aa 156141 147145 000123 aa 162056 141154 000124 aa 155040 040040 000125 aa 076154 144144 >ldd>include>bootload_equs.incl.alm 000126 aa 076151 156143 000127 aa 154165 144145 000130 aa 076142 157157 000131 aa 164154 157141 000132 aa 144137 145161 000133 aa 165163 056151 000134 aa 156143 154056 000135 aa 141154 155040 000136 aa 076154 144144 >ldd>include>slt.incl.alm 000137 aa 076151 156143 000140 aa 154165 144145 000141 aa 076163 154164 000142 aa 056151 156143 000143 aa 154056 141154 000144 aa 155040 040040 000145 aa 076154 144144 >ldd>include>slte.incl.alm 000146 aa 076151 156143 000147 aa 154165 144145 000150 aa 076163 154164 000151 aa 145056 151156 000152 aa 143154 056141 000153 aa 154155 040040 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number 10000 .._00000 bootload_equs: 75. 2000 .._00001 bootload_equs: 76. 24000 .._00002 bootload_equs: 78. 2000 .._00003 bootload_equs: 79. 24000 .._00004 bootload_equs: 81. 4000 .._00005 bootload_equs: 82. 24000 .._00006 bootload_equs: 87. 22000 .._00007 bootload_equs: 88. 46000 .._00010 bootload_equs: 90. 4000 .._00011 bootload_equs: 91. 52000 .._00012 bootload_equs: 93. 2000 .._00013 bootload_equs: 94. 54000 .._00014 bootload_equs: 96. 2000 .._00015 bootload_equs: 97. 56000 .._00016 bootload_equs: 99. 2000 .._00017 bootload_equs: 100. 60000 .._00020 bootload_equs: 102. 6000 .._00021 bootload_equs: 103. 306 .rt bootload_slt_manager: 322, 325. 1 acls.acl slt: 62. 13 acls.code slt: 66. 0 acls.count slt: 61. 11 acls.mode slt: 65. 1 acls.userid slt: 64. 267 add1 bootload_slt_manager: 295, 301, 306. 270 add2 bootload_slt_manager: 305, 307, 312. 24000 bbl0_absloc bootload_equs: 87. 22000 bbl0_lth bootload_equs: 88. 2 bias bootload_slt_manager: 280, 314. 316 bits bootload_slt_manager: 304, 329. 56000 bkpt_absloc bootload_equs: 99. 2000 bkpt_lth bootload_equs: 100. 311 blanks bootload_slt_manager: 294, 327. bootload_info bootload_slt_manager: 70. bootload_mem_size bootload_slt_manager: 70. 10000 bostoe_absloc bootload_equs: 75. 2000 bostoe_lth bootload_equs: 76. 71 build_entry bootload_slt_manager: 117, 119. 257 compare bootload_slt_manager: 291, 298. 0 ds bootload_equs: 12. 307 err bootload_slt_manager: 287, 324. 24000 fgbx_absloc bootload_equs: 78. 2000 fgbx_lth bootload_equs: 79. 7 fv bootload_equs: 19. 173 get_seg_found bootload_slt_manager: 210, 214. 147 get_seg_ptr bootload_slt_manager: 190, 192. 213 hash_in bootload_slt_manager: 84, 100, 175, 241. 241 hash_index_ bootload_slt_manager: 195, 247, 283. 215 hash_in_loop bootload_slt_manager: 244, 263. 162 hash_search_loop bootload_slt_manager: 204, 213. 212 hash_value bootload_slt_manager: 200, 202, 239, 252, 253. 4 index bootload_slt_manager: 282, 313, 316, 321, 324. 40 init_seg_hash_loop bootload_slt_manager: 78, 90. 0 init_slt bootload_slt_manager: 23, 25. 54000 iupt_absloc bootload_equs: 96. 2000 iupt_lth bootload_equs: 97. 116 jn bootload_slt_manager: 141, 148. 1 length bootload_slt_manager: 279, 289. 312 mask bootload_slt_manager: 303, 328. 2 mb bootload_equs: 14. 210 name_arg bootload_slt_manager: 196, 221, 222, 223, 224, 225, 226, 227, 228, 238, 248. 1 name_seg.ht bootload_slt_manager: 203, 254, 257, slt: 35. 0 name_seg.next_loc bootload_slt_manager: 122, 128, slt: 33. 201 name_seg_size slt: 31. name_table_length bootload_slt_manager: 61. 46 next_init_seg_hash bootload_slt_manager: 82, 85. 63 next_sup_seg_hash bootload_slt_manager: 98, 101. 275 noadd bootload_slt_manager: 309, 313. 135 no_copy_path bootload_slt_manager: 160, 168. 4 nt bootload_slt_manager: 66, 83, 99, 122, 124, 128, 173, 203, 254, 257, bootload_equs: 16. 0 path.acls slt: 56. 1 path.name slt: 55. 0 path.size slt: 54. 5 prb bootload_equs: 17. 60000 prb_absloc bootload_equs: 102. 6000 prb_lth bootload_equs: 103. 6 seg bootload_slt_manager: 26, 30, 35, 48, 55, 60, 65, 80, 81, 83, 96, 97, 99, 124, 133, 152, 156, 158, 165, 166, 172, 173, 181, 203, 205, 209, 211, 212, 215, 217, 218, 242, 245, 255, 256, 260, 261, bootload_equs: 18. 1 seg2 bootload_slt_manager: 52, 56, 120, 123, 132, 135, 150, 155, 162, 177, 178, 193, 194, 201, 208, 245, 246, 284, 285, 293, 302, 310, bootload_equs: 13. 0 segnam.count bootload_slt_manager: 162, 242, slt: 41. 1 segnam.hp bootload_slt_manager: 255, 256, 260, slt: 44. 2 segnam.name bootload_slt_manager: 245, slt: 49. 1 segnam.names slt: 42. 400000 segnam.ref slt: 45. 7777 segnam.segno_mask bootload_slt_manager: 216, slt: 47. 0 segnam.segno_shift slt: 46. 3 slt bootload_slt_manager: 36, 40, 41, 45, 50, 52, 71, 72, 76, 77, 80, 89, 92, 93, 96, 105, 139, 140, 143, 144, 145, 152, 181, bootload_equs: 15. 5 slt.first_init_seg bootload_slt_manager: 41, 50, 76, 77, 145, slt: 21. 3 slt.first_sup_seg bootload_slt_manager: 92, 93, slt: 19. 7 slt.free_core_size bootload_slt_manager: 72, slt: 23. 2 slt.free_core_start bootload_slt_manager: 71, slt: 18. 6 slt.last_init_seg bootload_slt_manager: 40, 89, 139, 140, slt: 22. 4 slt.last_sup_seg bootload_slt_manager: 30, 45, 105, 143, 144, slt: 20. 0 slt.name_seg_ptr slt: 17. 10 slt.seg bootload_slt_manager: 32, 48, 52, 80, 96, 152, 181, slt: 24. 10 slt.slte slt: 26. 10000 slte.abs_seg slte: 88. 1 slte.abs_seg_word slte: 87. 17 slte.access_mask slte: 84. 40 slte.access_shift slte: 83. 1 slte.access_word slte: 82. 1 slte.acl_provided slte: 102. 1 slte.acl_provided_word slte: 101. 0 slte.bit_count_shift slte: 134. 3 slte.bit_count_word slte: 133. 40000 slte.branch_required bootload_slt_manager: 159, slte: 104. 1 slte.branch_required_word bootload_slt_manager: 158, slte: 103. 1000 slte.breakpointable slte: 94. 1 slte.breakpointable_word slte: 93. 20000 slte.cache slte: 86. 1 slte.cache_word slte: 85. 400 slte.combine_link slte: 116. 1 slte.combine_link_word slte: 115. 777 slte.cur_length_mask slte: 124. 33 slte.cur_length_shift slte: 123. 2 slte.cur_length_word slte: 122. 100 slte.defs slte: 120. 1 slte.defs_word slte: 119. 4000 slte.firmware_seg slte: 90. 1 slte.firmware_seg_word slte: 89. 20000 slte.init_seg bootload_slt_manager: 136, slte: 106. 1 slte.init_seg_word bootload_slt_manager: 135, slte: 105. 2000 slte.layout_seg slte: 92. 1 slte.layout_seg_word slte: 91. 4000 slte.link_provided slte: 110. 1 slte.link_provided_word slte: 109. 2000 slte.link_sect slte: 112. 1000 slte.link_sect_wired slte: 114. 1 slte.link_sect_wired_word slte: 113. 1 slte.link_sect_word slte: 111. 777 slte.max_length_mask slte: 132. 30 slte.max_length_shift slte: 131. 3 slte.max_length_word slte: 130. 0 slte.names_ptr bootload_slt_manager: 81, 97, 123, 165, 172, slte: 79. 20 slte.paged slte: 98. 1 slte.paged_word slte: 97. 0 slte.path_ptr bootload_slt_manager: 166, slte: 80. 10 slte.per_process slte: 100. 1 slte.per_process_word slte: 99. 200 slte.pre_linked slte: 118. 1 slte.pre_linked_word slte: 117. 7 slte.ringbrack_mask slte: 127. 30 slte.ringbrack_shift slte: 126. 2 slte.ringbrack_word slte: 125. 2 slte.segno bootload_slt_manager: 150, slte: 128. 10000 slte.temp_seg slte: 108. 1 slte.temp_seg_word slte: 107. 40 slte.wired slte: 96. 1 slte.wired_word slte: 95. 4 slte_size bootload_slt_manager: 127, 132, 151, 155, 156, 162, 180, slte: 77. 10000 slte_uns.abs_seg slte: 26. 1 slte_uns.abs_seg_word slte: 25. 17 slte_uns.access_mask slte: 22. 40 slte_uns.access_shift slte: 21. 1 slte_uns.access_word slte: 20. 1 slte_uns.acl_provided slte: 40. 1 slte_uns.acl_provided_word slte: 39. 0 slte_uns.bit_count_shift slte: 72. 3 slte_uns.bit_count_word slte: 71. 40000 slte_uns.branch_required slte: 42. 1 slte_uns.branch_required_word slte: 41. 1000 slte_uns.breakpointable slte: 32. 1 slte_uns.breakpointable_word slte: 31. 20000 slte_uns.cache slte: 24. 1 slte_uns.cache_word slte: 23. 400 slte_uns.combine_link slte: 54. 1 slte_uns.combine_link_word slte: 53. 777 slte_uns.cur_length_mask slte: 62. 33 slte_uns.cur_length_shift slte: 61. 2 slte_uns.cur_length_word slte: 60. 100 slte_uns.defs slte: 58. 1 slte_uns.defs_word slte: 57. 4000 slte_uns.firmware_seg slte: 28. 1 slte_uns.firmware_seg_word slte: 27. 20000 slte_uns.init_seg slte: 44. 1 slte_uns.init_seg_word slte: 43. 2000 slte_uns.layout_seg slte: 30. 1 slte_uns.layout_seg_word slte: 29. 4000 slte_uns.link_provided slte: 48. 1 slte_uns.link_provided_word slte: 47. 2000 slte_uns.link_sect slte: 50. 1000 slte_uns.link_sect_wired slte: 52. 1 slte_uns.link_sect_wired_word slte: 51. 1 slte_uns.link_sect_word slte: 49. 777 slte_uns.max_length_mask slte: 70. 30 slte_uns.max_length_shift slte: 69. 3 slte_uns.max_length_word slte: 68. 0 slte_uns.names_ptr slte: 17. 20 slte_uns.paged slte: 36. 1 slte_uns.paged_word slte: 35. 0 slte_uns.path_ptr slte: 18. 10 slte_uns.per_process slte: 38. 1 slte_uns.per_process_word slte: 37. 200 slte_uns.pre_linked slte: 56. 1 slte_uns.pre_linked_word slte: 55. 7 slte_uns.ringbrack_mask slte: 65. 30 slte_uns.ringbrack_shift slte: 64. 2 slte_uns.ringbrack_word slte: 63. 2 slte_uns.segno slte: 66. 10000 slte_uns.temp_seg slte: 46. 1 slte_uns.temp_seg_word slte: 45. 40 slte_uns.wired slte: 34. 1 slte_uns.wired_word slte: 33. 4 slte_uns_size slte: 15. 100010 slt_size slt: 14. 200 spris bootload_slt_manager: 194, 221, 246. 0 string bootload_slt_manager: 278, 284. 252 strip bootload_slt_manager: 293, 297. 112 sup bootload_slt_manager: 137, 143. 55 sup_seg_hash_loop bootload_slt_manager: 94, 106. 3 tablesize bootload_slt_manager: 281, 286, 317. template_slt_ bootload_slt_manager: 26, 60, 61. 46000 toedata_absloc bootload_equs: 90. 4000 toedata_lth bootload_equs: 91. 24000 toe_absloc bootload_equs: 81. 4000 toe_lth bootload_equs: 82. t_name_table bootload_slt_manager: 60. t_slt bootload_slt_manager: 26. 52000 upt_absloc bootload_equs: 93. 2000 upt_lth bootload_equs: 94. NO FATAL ERRORS ----------------------------------------------------------- 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