ASSEMBLY LISTING OF SEGMENT >spec>h>3.17>boot.alm ASSEMBLED ON: 11/29/83 1538.8 mst Tue OPTIONS USED: list ASSEMBLED BY: ALM Version 6.6 November 1982 ASSEMBLER CREATED: 09/21/83 1227.3 mst Wed  1 " ***********************************************************  2 " * *  3 " * Copyright, (C) Honeywell Information Systems Inc., 1982 *  4 " * *  5 " ***********************************************************  6 " The BOS BOOT command. 7 " Modified on 5/16/72 by Bill Silver to run on 645F.  8 " Modified 7/5/73 by N. I. Morris  9 " Modified 8/79 by R.J.C. Kissel to take account of expanded BOS.  10 " Modified 1/82 by J. Bongiovanni to clear memory faster  11 " Modified 3/82 by J. Bongiovanni for new label format  12 " Modified 2/82 by Benson I. Margulies for the first step  13 " in Bootload Multics integration: booting tapes  14 " with bootable labels compatably.  15 " Modified 10/82 by J. Bongiovanni to fix non-zero IOM port problem with above  16 " Modified 10/83 by E. N. Kittlitz to fix clock printing.  17  18 " This program initiates the bootstrapping of the Multics system.  19 " It reads in the first record of the Multics System Tape  20 " starting at location 14000(8). It places the configuration data  21 " at location 12000(8), and transfers to 14040(8).  22 " At that time, the following index registers contain information:  23 " X0 IOM mailbox address  24 " X1 address of interrupt vector  25 " X2 address of Multics bootstrapping program  26  27 " For bootable tapes, this programs simulates the IOM bootload program. 28 " It relocates the label to 30(8), and fabricates bootload_info,  29 " and the appropriate LPW and SCW data. A fault is used to transfer 30 " control to the label in absolute mode.  31  32 " ******************************************************  33 " * *  34 " * *  35 " * Copyright (c) 1972 by Massachusetts Institute of *  36 " * Technology and Honeywell Information Systems, Inc. *  37 " * *  38 " * *  39 " ******************************************************  40  41  42  43 include mstr  1-1  1-2  1-3 "BEGIN INCLUDE FILE mstr.incl.alm  1-4  1-5  1-6 "  1-7 " Structure mstr  1-8 "  1-9  000000 1-10 equ mstr.head,0 " LEVEL 2 1-11  1-12  000010 1-13 equ mstr.data_word,8  000044 1-14 equ mstr.data_shift,36 000000 1-15 bool mstr.data_mask,000000 1-16  000000 1-17 equ mstr.trail,0 " LEVEL 2  1-18  1-19  1-20 "  1-21 " Structure mst_label  1-22 "  000000 1-23 equ mst_label.xfer_vector,0 " LEVEL 2  1-24  000000 1-25 equ mst_label.lda_instr,0  000001 1-26 equ mst_label.tra_instr,1  000010 1-27 equ mst_label.head,8 " LEVEL 2  1-28  000020 1-29 equ mst_label.vid,16 " LEVEL 2  1-30  000050 1-31 equ mst_label.fv_overlay,40 " LEVEL 2  1-32  000050 1-33 equ mst_label.scu_instr,40 000051 1-34 equ mst_label.dis_instr,41 000150 1-35 equ mst_label.fault_data,104  000160 1-36 equ mst_label.boot_pgm_path,112  000232 1-37 equ mst_label.userid,154  000242 1-38 equ mst_label.label_version,162  000243 1-39 equ mst_label.output_mode,163  000244 1-40 equ mst_label.boot_pgm_len,164 000245 1-41 equ mst_label.copyright,165  000300 1-42 equ mst_label.boot_pgm,192 000000 1-43 equ mst_label.trail,0 " LEVEL 2  1-44  1-45  1-46 "  1-47 " Structure mstr_header 1-48 "  000010 1-49 equ mstr_header_size,8 1-50  000000 1-51 equ mstr_header.c1,0  000001 1-52 equ mstr_header.uid,1 " DOUBLE  1-53  000003 1-54 equ mstr_header.rec_within_file,3 " UPPER  000003 1-55 equ mstr_header.phy_file,3 " LOWER 1-56  000004 1-57 equ mstr_header.data_bits_used,4 " UPPER  000004 1-58 equ mstr_header.data_bit_len,4 " LOWER 1-59  000005 1-60 equ mstr_header.flags_word,5  000011 1-61 equ mstr_header.flags_shift,9  000005 1-62 equ mstr_header.admin_word,5  400000 1-63 bool mstr_header.admin,400000 " DU 000005 1-64 equ mstr_header.label_word,5  200000 1-65 bool mstr_header.label,200000 " DU 000005 1-66 equ mstr_header.eor_word,5 100000 1-67 bool mstr_header.eor,100000 " DU  000005 1-68 equ mstr_header.set_word,5 000010 1-69 bool mstr_header.set,000010 " DU  000005 1-70 equ mstr_header.repeat_word,5  000004 1-71 bool mstr_header.repeat,000004 " DU  000005 1-72 equ mstr_header.eot_word,5 000001 1-73 bool mstr_header.eot,000001 " DU  000005 1-74 equ mstr_header.drain_word,5  400000 1-75 bool mstr_header.drain,400000 " DL 000005 1-76 equ mstr_header.continue_word,5  200000 1-77 bool mstr_header.continue,200000 " DL  000005 1-78 equ mstr_header.repeat_count_word,5  000000 1-79 equ mstr_header.repeat_count_shift,0  000777 1-80 bool mstr_header.repeat_count_mask,000777  1-81  000006 1-82 equ mstr_header.checksum,6 000007 1-83 equ mstr_header.c2,7  1-84  1-85 "  1-86 " Structure mstr_trailer  1-87 "  000010 1-88 equ mstr_trailer_size,8  1-89  000000 1-90 equ mstr_trailer.c1,0  000001 1-91 equ mstr_trailer.uid,1 " DOUBLE  1-92  000003 1-93 equ mstr_trailer.tot_data_bits_word,3  1-94 " equ mstr_trailer.tot_data_bits_shift,0  1-95  000005 1-96 equ mstr_trailer.reel_num_word,5  000030 1-97 equ mstr_trailer.reel_num_shift,24 007777 1-98 bool mstr_trailer.reel_num_mask,007777 000005 1-99 equ mstr_trailer.tot_file_word,5  000000 1-100 equ mstr_trailer.tot_file_shift,0  1-101  000006 1-102 equ mstr_trailer.tot_rec_word,6  000000 1-103 equ mstr_trailer.tot_rec_shift,0  1-104  000007 1-105 equ mstr_trailer.c2,7  1-106  1-107 "  1-108 " Structure volume_identifier  1-109 "  000030 1-110 equ volume_identifier_size,24  1-111  1-112 " equ volume_identifier.installation_id,0  000010 1-113 equ volume_identifier.tape_reel_id,8  000020 1-114 equ volume_identifier.volume_set_id,16 1-115  670314 355245 1-116 bool header_c1,670314355245 " MANIFEST 512556 146073 1-117 bool header_c2,512556146073 " MANIFEST 107463 422532 1-118 bool trailer_c1,107463422532 " MANIFEST  265221 631704 1-119 bool trailer_c2,265221631704 " MANIFEST  1-120  000003 1-121 equ LABEL_VERSION,3 " MANIFEST  1-122  1-123 "END INCLUDE FILE mstr.incl.alm  44 include make_data_macros  2-1 " ------------------------------------------------------------  2-2  2-3 macro vfd_mac  1 2-4 maclist object,save  2 2-5 "  3 2-6 " Utility macro for generating multi-line vfd's 4 2-7 "  5 2-8 vfd &F1  6 2-9 maclist restore  7 2-10 &end  2-11  2-12 " ------------------------------------------------------------  2-13  2-14 " assign_by_keyword Variable,KeywordArgument,MacroName, 2-15 " (ErrorMessage),  2-16 " (Keyword,Value),(Keyword,Value), ... 2-17  2-18 "  2-19 " Internal macro to set arg1 if arg2 matches the keyword in arg3.  2-20 "  2-21 macro assign_single_keyword  1 2-22 &^=4,&K&[ ife FOO,FOO  2 2-23 warn (assign_by_keyword: A (Keyword,Value) pair must contain exactly two values, not &FQ3.)  3 2-24 ifend_exit 4 2-25 &]  5 2-26 ife (&2),(&3)  6 2-27 set &1,&4  7 2-28 macro assign_by_keyword.error " Punt the previous contents of this macro  8 2-29 &&end " Since we have successfully assigned. 9 2-30 ifend_exit 10 2-31 &end  2-32  2-33 " ------------------------------------------------------------  2-34  2-35 macro assign_by_keyword  1 2-36 maclist off,save  2 2-37 &>5,&K&[ ife FOO,FOO  3 2-38 warn (assign_by_keyword: At least five arguments must be supplied.)  4 2-39 maclist restore  5 2-40 ifend_exit 6 2-41 &]  7 2-42  8 2-43 macro assign_by_keyword.error " Create a macro to complain about errors  9 2-44 warn (&3: &4)  10 2-45 set &1,33814345695 11 2-46 &&end  12 2-47  13 2-48 &R5,&K&( assign_single_keyword (&1),(&2),&i  14 2-49 &)  15 2-50  16 2-51 assign_by_keyword.error " Print error message, if any. 17 2-52  18 2-53 maclist restore  19 2-54 &end  2-55  2-56 " ------------------------------------------------------------  2-57  2-58 " assign_flags Variable,(FlagArgument),MacroName,  2-59 " (ErrorMessage),  2-60 " (Flag,Value),(Flag,Value), ...  2-61  2-62 "  2-63 " Internal macro to set arg1 to arg1 + arg2, if arg2 matches the keyword in arg3.  2-64 "  2-65 macro assign_single_flag  1 2-66 &^=4,&K&[ ife FOO,FOO  2 2-67 warn (assign_flags: A (Flag,Value) pair must contain exactly two values, not &FQ3.)  3 2-68 ifend_exit 4 2-69 &]  5 2-70 ife (&2),(&3)  6 2-71 bool &U,&1+&4  7 2-72 set &1,&U  8 2-73 macro assign_flags.error " Punt the error message, now that we've assigned successfully  9 2-74 &&end  10 2-75 ifend_exit 11 2-76 &end  2-77  2-78 " ------------------------------------------------------------  2-79 "  2-80 " Internal macro to iterate over all flag values for a single component of the flags argument  2-81 "  2-82 macro iterate_over_flags  1 2-83  2 2-84 macro assign_flags.error " Create a macro to complain about errors 3 2-85 warn (&2: &3)  4 2-86 set &1,33814345695 5 2-87 &&end  6 2-88  7 2-89 &R5,&K&( assign_single_flag (&1),(&4),&i  8 2-90 &)  9 2-91  10 2-92 assign_flags.error 11 2-93  12 2-94 &end  2-95  2-96 " ------------------------------------------------------------  2-97  2-98 macro assign_flags 1 2-99 maclist off,save  2 2-100 &>5,&K&[ ife FOO,FOO  3 2-101 warn (assign_flags: At least five arguments must be supplied.)  4 2-102 maclist restore  5 2-103 ifend_exit 6 2-104 &]  7 2-105 set &1,0 " start out with none  8 2-106  9 2-107 &(2 iterate_over_flags (&1),(&3),(&4),&i,&FQ5  10 2-108 &)  11 2-109  12 2-110 maclist restore  13 2-111 &end  45 include iom_word_macros  3-1 " Macros for creating IOM control words. They require that make_data_macros 3-2 " have already been included. Formats:  3-3 "  3-4 " make_pcw PCW_name,  3-5 " Command, 3-6 " Channel, 3-7 " Device,  3-8 " {record,multirecord,character,nondata},  3-9 " {proceed,terminate,marker},  3-10 " [ChanData,]  3-11 " [Extension,] 3-12 " [mask,]  3-13 "  3-14 " make_ddcw DDCW_name,  3-15 " Address, 3-16 " Tally,  3-17 " {iotd,iotp,iontp},  3-18 " [{char,word},]  3-19 " [CharOffset] 3-20 "  3-21 " make_idcw IDCW_name,  3-22 " Command, 3-23 " Device,  3-24 " {record,multirecord,character,nondata},  3-25 " {proceed,terminate,marker},  3-26 " [ChanData,]  3-27 " [Extension,] 3-28 " [mask,]  3-29 "  3-30 " make_tdcw TDCW_name,  3-31 " Address, 3-32 " [([restrict,][extend,][relative])]  3-33 "  3-34 "  3-35  3-36 " ------------------------------------------------------------  3-37  3-38 macro make_pcw 1 3-39 maclist off,save  2 3-40 &>6,&K&[ ife foo,foo  3 3-41 warn (make_pcw: At least six arguments are required.)  4 3-42 maclist restore  5 3-43 ifend_exit " give up on this one  6 3-44 &]  7 3-45  8 3-46 assign_by_keyword make_pcw.chan_cmd,(&5),make_pcw, 9 3-47 (Channel command must be one of record, nondata, multirecord, or character, not &5),  10 3-48 (record,0),(rec,0),(nondata,2),(multirecord,6),(character,8),(char,8) 11 3-49  12 3-50 assign_by_keyword make_pcw.chan_ctrl,(&6),make_pcw,  13 3-51 (Channel control must be one of terminate, proceed, or marker, not &6),  14 3-52 (terminate,0),(proceed,2),(marker,3)  15 3-53  16 3-54 assign_by_keyword make_pcw.mask,(&9),make_pcw, 17 3-55 (Mask must be either mask, or omitted, not &9.),  18 3-56 ((),0),(mask,1)  19 3-57  20 3-58  21 3-59 set make_pcw.command,&2  22 3-60 set make_pcw.channel,&3  23 3-61 set make_pcw.device,&4  24 3-62 set make_pcw.chan_data,(&7)  25 3-63 set make_pcw.extension,(&8)  26 3-64  27 3-65 " Now, generate it  28 3-66  29 3-67 maclist on 30 3-68 even  31 3-69 &1: 32 3-70 maclist object 33 3-71 vfd_mac 6/make_pcw.command,  34 3-72 6/make_pcw.device,  35 3-73 6/make_pcw.extension, 36 3-74 3/7,  37 3-75 1/make_pcw.mask,  38 3-76 2/make_pcw.chan_ctrl, 39 3-77 6/make_pcw.chan_cmd,  40 3-78 6/make_pcw.chan_data  41 3-79  42 3-80 vfd_mac 3/0,  43 3-81 6/make_pcw.channel,  44 3-82 27/0  45 3-83  46 3-84 maclist restore  47 3-85 &end  3-86  3-87 " ------------------------------------------------------------  3-88  3-89 macro make_idcw  1 3-90 maclist off,save  2 3-91 &>5,&K&[ ife foo,foo  3 3-92 warn (make_idcw: At least five arguments are required.)  4 3-93 maclist restore  5 3-94 ifend_exit " give up on this one  6 3-95 &]  7 3-96  8 3-97 assign_by_keyword make_pcw.chan_cmd,(&4),make_idcw,  9 3-98 (Channel command must be one of record, nondata, multirecord, or character, not &4),  10 3-99 (record,0),(rec,0),(nondata,2),(multirecord,6),(character,8),(char,8) 11 3-100  12 3-101 assign_by_keyword make_pcw.chan_ctrl,(&5),make_idcw,  13 3-102 (Channel control must be one of terminate, proceed, or marker, not &5),  14 3-103 (terminate,0),(proceed,2),(marker,3)  15 3-104  16 3-105 assign_by_keyword make_pcw.mask,(&8),make_idcw,  17 3-106 (Mask must be either mask, or omitted, not &8.),  18 3-107 ((),0),(mask,1)  19 3-108  20 3-109 set make_pcw.command,&2  21 3-110 set make_pcw.device,&3  22 3-111 set make_pcw.chan_data,(&6)  23 3-112 set make_pcw.extension,(&7)  24 3-113  25 3-114 " Now, generate it  26 3-115  27 3-116 maclist on 28 3-117 &1: 29 3-118 maclist object 30 3-119 vfd_mac 6/make_pcw.command,  31 3-120 6/make_pcw.device,  32 3-121 6/make_pcw.extension, 33 3-122 o3/7, 34 3-123 1/make_pcw.mask,  35 3-124 2/make_pcw.chan_ctrl, 36 3-125 6/make_pcw.chan_cmd,  37 3-126 6/make_pcw.chan_data  38 3-127  39 3-128 maclist restore  40 3-129 &end  3-130  3-131 " ------------------------------------------------------------  3-132  3-133 macro make_ddcw  1 3-134 maclist off,save  2 3-135 &>4,&K&[ ife foo,foo  3 3-136 warn (make_ddcw: At least four arguments are required.)  4 3-137 maclist restore  5 3-138 ifend_exit " give up on this one  6 3-139 &]  7 3-140  8 3-141 assign_by_keyword make_ddcw.op_type,&4,make_ddcw,  9 3-142 (Operation type must be one of iotd, iotp, or iontp, not &4.),  10 3-143 (iotd,0),(iotp,1),(iontp,3)  11 3-144  12 3-145 assign_by_keyword make_ddcw.tally_type,(&5),make_ddcw, 13 3-146 (Tally type must be either word, character, or omitted, not &5.), 14 3-147 ((),0),(word,0),(character,1),(char,1)  15 3-148  16 3-149 set make_ddcw.address,&2  17 3-150 set make_ddcw.tally,&3  18 3-151 set make_ddcw.char_offset,(&6)  19 3-152  20 3-153 " Now, generate it  21 3-154  22 3-155 maclist on 23 3-156 &1: 24 3-157 maclist object 25 3-158 vfd_mac 18/make_ddcw.address,  26 3-159 3/make_ddcw.char_offset,  27 3-160 1/make_ddcw.tally_type,  28 3-161 2/make_ddcw.op_type,  29 3-162 12/make_ddcw.tally  30 3-163  31 3-164 maclist restore  32 3-165 &end  3-166  3-167 " ------------------------------------------------------------  3-168  3-169 macro make_tdcw  1 3-170 maclist off,save  2 3-171 &>2,&K&[ ife foo,foo  3 3-172 warn (make_tdcw: At least two arguments are required.)  4 3-173 maclist restore  5 3-174 ifend_exit " give up on this one  6 3-175 &]  7 3-176  8 3-177 set make_tdcw.address,&2  9 3-178 set make_tdcw.bits,0  10 3-179 &(3 make_tdcw.get_bits &i  11 3-180 &)  12 3-181  13 3-182 " Now, generate it  14 3-183  15 3-184 maclist on 16 3-185 &1: 17 3-186 maclist object 18 3-187 vfd_mac 18/make_tdcw.address,  19 3-188 4/0,  20 3-189 2/2,  21 3-190 9/0,  22 3-191 3/make_tdcw.bits  23 3-192  24 3-193 maclist restore  25 3-194 &end  46  47  48 include bosequ 4-1 " Begin include file ...... bosequ.incl.alm 4-2 " Modified 8/25/76 by N. I. Morris  4-3 " Modified 8/79 by R.J.C. Kissel to expand BOS. 4-4 " Modified November 1981 by C. Hornig to add pgmorg.  4-5 " Modified October 1982 by J. Bongiovanni to take it out  4-6  000000 4-7 bool ds,0 descriptor segment  000001 4-8 bool tmp,1 temp seg  000002 4-9 bool bf,2 buffer segment for save/restor  000003 4-10 bool pgm,3 program in control 000004 4-11 bool xs1,4 spare segment  000005 4-12 bool xs2,5 spare segment  000005 4-13 bool fgb,5 flagbox segment  000006 4-14 bool com,6 common 000007 4-15 bool mem,7 all memory 4-16  000017 4-17 equ arglen,15 max number of args from scan  4-18  004000 4-19 bool runcom_bit,4000 runcom bit in dir entry  002000 4-20 bool firmware_bit,2000 firmware bit in dir entry  4-21  012000 4-22 bool utilorg,12000 origin of utility package  4-23  4-24 " End of include file ...... bosequ.incl.alm  49 include fault_vector  5-1  5-2  5-3 "BEGIN INCLUDE FILE fault_vector.incl.alm  5-4  5-5 " Modified February 1981 by J. Bongiovanni to add fault types  5-6  5-7 "  5-8 " Structure fv  5-9 "  000600 5-10 equ fv_size,384  5-11  5-12  000000 5-13 equ fv.ipair,0 "LEVEL 2  5-14  000000 5-15 equ fv.ipair.scu,0 000001 5-16 equ fv.ipair.tra,1 000100 5-17 equ fv.fpair,64 "LEVEL 2  5-18  000100 5-19 equ fv.fpair.scu,64  000101 5-20 equ fv.fpair.tra,65  000200 5-21 equ fv.i_tra_ptr,128  000300 5-22 equ fv.i_scu_ptr,192  000400 5-23 equ fv.f_tra_ptr,256  000500 5-24 equ fv.f_scu_ptr,320  5-25  000000 5-26 equ FAULT_NO_SDF,0 " Shutdown 000001 5-27 equ FAULT_NO_STR,1 " Store  000002 5-28 equ FAULT_NO_MME,2 " Master Mode Entry 1  000003 5-29 equ FAULT_NO_F1,3 " Fault Tag 1  000004 5-30 equ FAULT_NO_TRO,4 " Timer Runout 000005 5-31 equ FAULT_NO_CMD,5 " Command  000006 5-32 equ FAULT_NO_DRL,6 " Derail  000007 5-33 equ FAULT_NO_LUF,7 " Lockup  000010 5-34 equ FAULT_NO_CON,8 " Connect  000011 5-35 equ FAULT_NO_PAR,9 " Parity  000012 5-36 equ FAULT_NO_IPR,10 " Illegal Procedure  000013 5-37 equ FAULT_NO_ONC,11 " Operation Not Complete  000014 5-38 equ FAULT_NO_SUF,12 " Startup 000015 5-39 equ FAULT_NO_OFL,13 " Overflow  000016 5-40 equ FAULT_NO_DIV,14 " Divide Check  000017 5-41 equ FAULT_NO_EXF,15 " Execute 000020 5-42 equ FAULT_NO_DF0,16 " Directed Fault 0 (Segment Fault)  000021 5-43 equ FAULT_NO_DF1,17 " Directed FAult 1 (Page Fault)  000022 5-44 equ FAULT_NO_DF2,18 " Directed Fault 2  000023 5-45 equ FAULT_NO_DF3,19 " Directed Fault 3  000024 5-46 equ FAULT_NO_ACV,20 " Access Violation  000025 5-47 equ FAULT_NO_MME2,21 " Master Mode Entry 2  000026 5-48 equ FAULT_NO_MME3,22 " Master Mode Entry 3  000027 5-49 equ FAULT_NO_MME4,23 " Master Mode Entry 4  000030 5-50 equ FAULT_NO_F2,24 " Fault Tag 2 (Linkage Fault)  000031 5-51 equ FAULT_NO_F3,25 " Fault Tag 3  5-52 " Fault No. 26-30 are Undefined  000037 5-53 equ FAULT_NO_TRB,31 " Trouble 5-54  5-55 "END INCLUDE FILE fault_vector.incl.alm  50  51  014000 52 bool bootstrap1_orig,14000 address where bootstrap1 will be loaded.  012000 53 bool config_rec_orig,12000 address where config data will be loaded.  54  55 " The following declarations are internal to "boot" only. 56  000070 57 bool rewind_code,70  000040 58 bool reset_status_code,40  000045 59 bool fwd_space_file_code,45  000005 60 bool read_tape_bin_code,05 61  000003 62 equ tapeno,3 "bootload tape number  63  64 " 65  66 include fgbx  6-1  6-2 "BEGIN INCLUDE FILE fgbx.incl.alm  6-3  6-4 " Reconstructed by BSG 8/30/78 from a listing of Noel's;  6-5 " Apparently, the version of 10/07/76 got lost. 6-6 " Modified 8/79 by R.J.C. Kissel to add 32 words for FNP blast message. 6-7 " Modified 7/82 BIM -- 8 words for sentinel, and sentinel  6-8 " macro.  6-9  6-10 "  6-11 " Structure fgbx  6-12 "  000100 6-13 equ fgbx_size,64  6-14  000000 6-15 equ fgbx.flags_word,0  400000 6-16 bool fgbx.flags,400000 "DU  6-17  000001 6-18 equ fgbx.slt_segno,1 "UPPER  6-19  000002 6-20 equ fgbx.cpus,2 "LEVEL 2  6-21  000034 6-22 equ fgbx.ports_shift,28  000571 6-23 equ fgbx.ports_mask,000377 000025 6-24 equ fgbx.tags_shift,21 000007 6-25 equ fgbx.tags_mask,000007  6-26  000003 6-27 equ fgbx.rtb,3 "LEVEL 2  6-28  400000 6-29 bool fgbx.ssenb,400000 "DU  200000 6-30 bool fgbx.call_bos,200000 "DU  100000 6-31 bool fgbx.shut,100000 "DU 040000 6-32 bool fgbx.mess,040000 "DU 020000 6-33 bool fgbx.alert,020000 "DU  000000 6-34 equ fgbx.bos_entry_shift,0 000077 6-35 bool fgbx.bos_entry_mask,000077  6-36  000004 6-37 equ fgbx.sentinel,4 "DOUBLE  000014 6-38 equ fgbx.sst_sdw,12 "DOUBLE  000016 6-39 equ fgbx.hc_dbr,14 "DOUBLE  000020 6-40 equ fgbx.message,16 "DOUBLE  000040 6-41 equ fgbx.fnp_blast,32 "DOUBLE 6-42  6-43 macro flagbox_sentinel 1 6-44 aci "Flagbox && Toehold Valid",32  2 6-45 &end  6-46  6-47 "END INCLUDE FILE fgbx.incl.alm  67 include fs_vol_label  7-1  7-2  7-3 "BEGIN INCLUDE FILE fs_vol_label.incl.alm  7-4  7-5  7-6 "Created 03/27/82 1422.1 est Sat by convert_include_file, 7-7 " Version of 12/01/81 1540.3 est Tue.  7-8  7-9 "Made from >udd>m>bongo>htd>nsd>include>fs_vol_label.incl.pl1, 7-10 " modified 03/27/82 1421.0 est Sat  7-11  7-12 "  7-13 " Structure label  7-14 "  002000 7-15 equ label_size,1024  7-16  7-17  000000 7-18 equ label.gcos,0  000500 7-19 equ label.Multics,320  000510 7-20 equ label.version,328  000511 7-21 equ label.mfg_serial,329  000521 7-22 equ label.pv_name,337  000531 7-23 equ label.lv_name,345  000541 7-24 equ label.pvid,353 000542 7-25 equ label.lvid,354 000543 7-26 equ label.root_pvid,355  000544 7-27 equ label.time_registered,356 " DOUBLE 000546 7-28 equ label.n_pv_in_lv,358  000547 7-29 equ label.vol_size,359 000550 7-30 equ label.vtoc_size,360  7-31  000551 7-32 equ label.not_used_word,361  400000 7-33 bool label.not_used,400000 " DU  000551 7-34 equ label.private_word,361 200000 7-35 bool label.private,200000 " DU 000551 7-36 equ label.flagpad_word,361 000000 7-37 equ label.flagpad_shift,0  7-38  000552 7-39 equ label.max_access_class,362 " DOUBLE  000554 7-40 equ label.min_access_class,364 " DOUBLE  000556 7-41 equ label.password,366 " DOUBLE  000600 7-42 equ label.time_mounted,384 " DOUBLE  000602 7-43 equ label.time_map_updated,386 " DOUBLE  000604 7-44 equ label.volmap_version,388  000606 7-45 equ label.time_salvaged,390 " DOUBLE  000610 7-46 equ label.time_of_boot,392 " DOUBLE  000612 7-47 equ label.time_unmounted,394 " DOUBLE  000614 7-48 equ label.last_pvtx,396  000617 7-49 equ label.err_hist_size,399  000620 7-50 equ label.time_last_dmp,400 " DOUBLE  000626 7-51 equ label.time_last_reloaded,406 " DOUBLE  000700 7-52 equ label.root,448 " LEVEL 2  7-53  400000 7-54 bool label.here,400000 " DU  7-55  000701 7-56 equ label.root_vtocx,449  000702 7-57 equ label.shutdown_state,450  000704 7-58 equ label.disk_table_vtocx,452 000705 7-59 equ label.disk_table_uid,453  000706 7-60 equ label.esd_state,454  000707 7-61 equ label.volmap_record,455  000710 7-62 equ label.size_of_volmap,456  000711 7-63 equ label.vtoc_map_record,457  000712 7-64 equ label.size_of_vtoc_map,458 000713 7-65 equ label.volmap_unit_size,459 000714 7-66 equ label.vtoc_origin_record,460  000715 7-67 equ label.dumper_bit_map_record,461  000716 7-68 equ label.vol_trouble_count,462  001003 7-69 equ label.nparts,515  001004 7-70 equ label.parts,516 " LEVEL 2 7-71  001004 7-72 equ label.part,516 001005 7-73 equ label.frec,517 001006 7-74 equ label.nrec,518 7-75  7-76 "END INCLUDE FILE fs_vol_label.incl.alm  68 include old_fs_vol_label  8-1  8-2  8-3 "BEGIN INCLUDE FILE old_fs_vol_label.incl.alm  8-4  8-5  8-6 "Created 03/27/82 1424.5 est Sat by convert_include_file, 8-7 " Version of 12/01/81 1540.3 est Tue.  8-8  8-9 "Made from >udd>m>bongo>htd>nsd>include>old_fs_vol_label.incl.pl1, 8-10 " modified 03/27/82 1424.5 est Sat  8-11  8-12 "  8-13 " Structure old_label  8-14 "  002000 8-15 equ old_label_size,1024  8-16  8-17  000000 8-18 equ old_label.gcos,0  000500 8-19 equ old_label.Multics,320  000510 8-20 equ old_label.version,328  000511 8-21 equ old_label.mfg_serial,329  000521 8-22 equ old_label.pv_name,337  000531 8-23 equ old_label.lv_name,345  000541 8-24 equ old_label.pvid,353 000542 8-25 equ old_label.lvid,354 000543 8-26 equ old_label.root_pvid,355  000544 8-27 equ old_label.time_registered,356 " DOUBLE 000546 8-28 equ old_label.n_pv_in_lv,358  000547 8-29 equ old_label.vol_size,359 000550 8-30 equ old_label.vtoc_size,360  8-31  000551 8-32 equ old_label.not_used_word,361  400000 8-33 bool old_label.not_used,400000 " DU  000551 8-34 equ old_label.private_word,361 200000 8-35 bool old_label.private,200000 " DU 000551 8-36 equ old_label.flagpad_word,361 000000 8-37 equ old_label.flagpad_shift,0  8-38  000552 8-39 equ old_label.max_access_class,362 " DOUBLE  000554 8-40 equ old_label.min_access_class,364 " DOUBLE  000556 8-41 equ old_label.password,366 " DOUBLE  000600 8-42 equ old_label.time_mounted,384 " DOUBLE  000602 8-43 equ old_label.time_map_updated,386 " DOUBLE  000604 8-44 equ old_label.time_unmounted,388 " DOUBLE  000606 8-45 equ old_label.time_salvaged,390 " DOUBLE  000610 8-46 equ old_label.time_of_boot,392 " DOUBLE  000612 8-47 equ old_label.pd_time,394 " DOUBLE 000614 8-48 equ old_label.last_pvtx,396  000617 8-49 equ old_label.err_hist_size,399  000620 8-50 equ old_label.time_last_dmp,400 " DOUBLE  000626 8-51 equ old_label.time_last_reloaded,406 " DOUBLE  000700 8-52 equ old_label.root,448 " LEVEL 2  8-53  400000 8-54 bool old_label.here,400000 " DU  8-55  000701 8-56 equ old_label.root_vtocx,449  000702 8-57 equ old_label.shutdown_state,450  8-58  000703 8-59 equ old_label.pd_active_word,451  400000 8-60 bool old_label.pd_active,400000 " DU  8-61  000704 8-62 equ old_label.disk_table_vtocx,452 000705 8-63 equ old_label.disk_table_uid,453  000706 8-64 equ old_label.esd_state,454  001003 8-65 equ old_label.nparts,515  001004 8-66 equ old_label.parts,516 " LEVEL 2 8-67  001004 8-68 equ old_label.part,516 001005 8-69 equ old_label.frec,517 001006 8-70 equ old_label.nrec,518 8-71  8-72 "END INCLUDE FILE old_fs_vol_label.incl.alm  69 include disk_pack  9-1  9-2  9-3 "BEGIN INCLUDE FILE disk_pack.incl.alm 9-4  9-5  9-6 "Created 04/02/82 1735.7 est Fri by convert_include_file, 9-7 " Version of 12/01/81 1540.3 est Tue.  9-8  9-9 "Made from >cdd>include>x>disk_pack.incl.pl1,  9-10 " modified 04/02/82 1145.0 est Fri  9-11  9-12  000000 9-13 equ LABEL_ADDR,0 " MANIFEST  000001 9-14 equ VOLMAP_ADDR,1 " MANIFEST  000004 9-15 equ DUMPER_BIT_MAP_ADDR,4 " MANIFEST  000006 9-16 equ VTOC_MAP_ADDR,6 " MANIFEST  000010 9-17 equ VTOC_ORIGIN,8 " MANIFEST  000003 9-18 equ SECTORS_PER_VTOCE,3 " MANIFEST  000005 9-19 equ VTOCES_PER_RECORD,5 " MANIFEST  001750 9-20 equ DEFAULT_HCPART_SIZE,1000 " MANIFEST  076036 9-21 equ MAX_VTOCE_PER_PACK,31774 " MANIFEST  9-22  9-23 "END INCLUDE FILE disk_pack.incl.alm  70  71  72 " 73  000000 0a 000760 7420 00 74 stx2 x2_save Save X2 for return.  000001 aa 012271 7020 00 75 tsx2 init_io "init IOM  000002 aa 012245 7020 00 76 tsx2 ttyinit  000003 0a 001070 0000 00 77 arg ttyrequest 78  000004 aa 012210 7020 00 79 tsx2 cvinit init address conversion package  80  000005 aa 012300 7020 00 81 tsx2 initint init for interrupts  000006 0a 001070 0000 00 82 arg execint  83  84 " Ask for an SDW for a little bit of memory, just to get the  85 " core-clobbering test made by makesdw. 86  000007 aa 000020 2350 03 87 lda 16,du  000010 aa 012221 7020 00 88 tsx2 makesdw  000011 0a 000762 7100 00 89 tra ret_error Whew!  90  91 " Now search the configuration table for an intk card entry.  92 " This card is usually not found. "boot" will build its own intk  93 " card entry in the configuration table.  94  000012 0a 003516 2350 00 95 fndink: lda =aintk Look for intk card entry. 000013 aa 012264 7020 00 96 tsx2 getconf 000014 0a 000016 7100 00 97 tra *+2 Not found => build one.  000015 0a 000023 7100 00 98 tra inkfnd Found => don't build entry.  99  000016 aa 000001 3350 07 100 lca 1,dl Look for 1st unused entry.  000017 aa 012264 7020 00 101 tsx2 getconf  000020 0a 001003 7100 00 102 tra table_full Configuration table full.  103  000021 0a 003516 2350 00 104 lda =aintk Store "intk" in name field 000022 aa 6 00000 7551 17 105 sta com|0,7 of this entry.  106  107 " Set default values on INTK card.  108  000023 109 inkfnd: 000023 aa 000000 6230 17 110 eax3 0,7 X3 -> INTK card  000024 aa 000001 3350 07 111 lca 1,dl wipe out current card  000025 aa 030200 5202 01 112 rpt arglen-3,1 000026 aa 6 00003 7551 13 113 sta com|3,3 clear out with fence  114  000027 aa 000000 6230 17 115 eax3 0,7 again, x3 -> card.  000030 0a 003517 2350 00 116 lda =awarm Get WARM  000031 aa 6 00001 7551 13 117 sta com|1,3 set first parameter  000032 aa 000003 2350 07 118 lda =3,dl get default tape number 000033 aa 6 00002 7551 13 119 sta com|2,3 set second parameter  000034 0a 003520 2350 00 120 lda =v2/2,2/0,26/,6/2 set conversion and count word  000035 aa 6 00017 7551 13 121 sta com|15,3 ..  122  123 " Setup tape channel number in ccw and dkmbx. We get it from common.  124  000036 aa 6 02015 2351 00 125 lda com|tapechanno Channel number now in AU.  000037 0a 001072 7510 70 126 stca ccw,70 Store in bits 0 - 17 in ccw.  000040 aa 000011 7350 00 127 als 9  000041 0a 001201 5510 40 128 stba dkmbx+1,40 Store in bits 36 - 44 in dkmbx  129  130 " Restore X2 so we can get the arguments to boot.  131  000042 0a 000760 2220 00 132 ldx2 x2_save  000043 aa 7 00000 2211 12 133 ldx1 mem|0,2 Get the argument list address.  134  135 " 136  137 " This loop parses the argument to "boot".  138 " An argument that is a number less than 16 is a tape number.  139 " The arguments "warm" and "cold" tell what kind of boot Multics is to  140 " perform. All other arguments are placed on the INTK card.  141  000044 aa 000003 6270 13 142 eax7 3,3 get index for storing into INTK card 000045 0a 003521 2360 00 143 ldq =v4/,2/2 get conversion bits for card 000046 0a 001076 7560 00 144 stq cvbits and save  145  000047 aa 000001 6210 11 146 bargl: eax1 1,1 step input parameter index 000050 aa 7 00000 2351 11 147 lda mem|0,1 get next argument 000051 0a 003522 1150 00 148 cmpa =-1 fence?  000052 0a 000106 6000 00 149 tze barge if so, all finished 150  000053 0a 003523 1150 00 151 cmpa =h warm warm?  000054 0a 000047 6000 00 152 tze bargl already set on INTK card  000055 0a 003524 1150 00 153 cmpa =h cold cold?  000056 0a 000075 6000 00 154 tze setc set on INTK card 155  000057 aa 7 00020 2361 11 156 ldq mem|arglen+1,1 decimal conversion in Q 000060 0a 000063 6044 00 157 tmoz *+3 tape number? 000061 aa 000020 1160 07 158 cmpq =16,dl ..  000062 0a 000100 6044 00 159 tmoz settap if so, set tape number  160  000063 aa 012257 7020 00 161 tsx2 ljust must be characters 000064 aa 012253 7020 00 162 tsx2 geas convert to ASCII  000065 aa 6 00000 7551 17 163 sta com|0,7 and place on card 164  000066 0a 001076 2360 00 165 ldq cvbits get conversion bits  000067 aa 6 00017 2561 13 166 orsq com|15,3 insert conversion bits  000070 aa 000002 7720 00 167 qrl 2 and shift for next parameter  000071 0a 001076 7560 00 168 stq cvbits save bits  000072 aa 6 00017 0541 13 169 aos com|15,3 bump parameter count 170  000073 aa 000001 6270 17 171 eax7 1,7 step to next parameter  000074 0a 000047 7100 00 172 tra bargl loop  173  174  000075 0a 003525 2350 00 175 setc: lda =acold set cold boot 000076 aa 6 00001 7551 13 176 sta com|1,3 place as first parameter  000077 0a 000047 7100 00 177 tra bargl and loop  178  179  180 " If it is a tape number argument we must store it in the CCW and in  181 " the mailbox. This will overlay the default tape number.  182  000100 aa 6 00002 7561 13 183 settap: stq com|2,3 set on INTK card  000101 aa 000014 7360 00 184 qls 12 Position to store in CCW.  000102 0a 001072 7520 04 185 stcq ccw,04  000103 aa 000014 7360 00 186 qls 12 Position to store in mailbox.  000104 0a 001200 7520 20 187 stcq dkmbx,20 "store for bootload mailbox 000105 0a 000047 7100 00 188 tra bargl Go get next arg.  189  190 " 191  192 " All of the arguments have been processed. Before doing more work 193 " start rewinding the tape. 194  000106 aa 012277 7020 00 195 barge: tsx2 xio_wait Will ret when status returned.  000107 aa 000000 000000 196 zero "Zero word => non-data transfer.  000110 0a 001072 000070 197 zero ccw,rewind_code Start the tape rewinding  000111 0a 000112 7100 00 198 tra *+1 Ignore bad status.  199  200 " There must be configuration cards for cpu, iom, and mem. 201 " If any of the three are not found then "boot" will be aborted.  202  000112 0a 003526 2350 00 203 lda =4acpu Look for cpu card entry.  000113 aa 012264 7020 00 204 tsx2 getconf  000114 0a 001014 7100 00 205 tra noconf 206  000115 0a 003527 2350 00 207 lda =4aiom Look for iom card entry.  000116 aa 012264 7020 00 208 tsx2 getconf  000117 0a 001014 7100 00 209 tra noconf 210  000120 0a 003530 2350 00 211 lda =4amem Look for mem card entry.  000121 aa 012264 7020 00 212 tsx2 getconf  000122 0a 001014 7100 00 213 tra noconf 214  215 " Clear out any old stuff in the flagbox area.  216  000123 aa 000000 4310 07 217 fld 0,dl Clear AQ.  000124 aa 5 00016 7571 00 218 staq fgb|fgbx.hc_dbr  000125 aa 5 00014 7571 00 219 staq fgb|fgbx.sst_sdw  000126 aa 5 00002 4501 00 220 stz fgb|fgbx.cpus  000127 aa 5 00003 4501 00 221 stz fgb|fgbx.rtb  000130 aa 5 00001 4501 00 222 stz fgb|fgbx.slt_segno 223  224 " If the arguments to "boot" specify a cold boot,  225 " then the operator will be asked if this is OK.  226  000131 aa 6 00001 2351 13 227 lda com|1,3 cold boot?  000132 0a 003525 1150 00 228 cmpa =acold  000133 0a 000764 6000 00 229 tze coldboot Yes, ask operator for OK.  230 "  231 "  232 " Not a cold boot. Check the clock on the RPV.  233 "  000134 aa 012306 7020 00 234 tsx2 find_root See where root is. 000135 0a 000342 7100 00 235 tra err_no_root  236  000136 0a 000411 7550 00 237 sta root_dev Save the RPV dev loc.  238  000137 0a 003531 2350 00 239 lda =4aclok Try for the clock card.  000140 aa 012264 7020 00 240 tsx2 getconf  000141 0a 000370 7100 00 241 tra boot.no_clok_card  000142 aa 6 00003 2361 17 242 ldq com|3,7 Get offset hedge word, in hours.  000143 0a 000412 7560 00 243 stq fixnum_hour_delta  000144 0a 000150 6040 00 244 tmi clck0  000145 aa 007020 4020 07 245 mpy =3600,dl Multiply to seconds  000146 0a 003532 4020 00 246 mpy =1000000 Microseconds 000147 0a 000406 7570 00 247 staq clock_delta  000150 aa 000000 2350 07 248 clck0: lda LABEL_ADDR,dl Get label address  000151 aa 012216 7020 00 249 tsx2 mulbos "Convert it"  000152 0a 000411 0000 00 250 arg root_dev DEVT word  000153 0a 000354 7100 00 251 tra err_root_problem  000154 aa 012211 7020 00 252 tsx2 rdev Read the rpv label  000155 0a 000411 0000 00 253 arg root_dev  000156 aa 2 00000 0001 00 254 arg bf|0  000157 0a 000354 7100 00 255 tra err_root_problem  256 "  257 " Got the clock at bf|label.time_unmounted. 258 "  000160 aa 2 00604 2351 00 259 lda bf|label.volmap_version Check label format 000161 0a 000170 6044 00 260 tmoz pre_MR10_label Old  000162 aa 000002 1150 07 261 cmpa 2,dl MR 10.x  000163 0a 000170 6054 00 262 tpnz pre_MR10_label No  000164 aa 6 01530 6331 20 263 rccl com|low_order_port,*  000165 aa 2 00612 1371 00 264 sblaq bf|label.time_unmounted  000166 0a 000174 6040 00 265 tmi clckerr  000167 0a 000221 7100 00 266 tra clck1  000170 267 pre_MR10_label: 000170 aa 6 01530 6331 20 268 rccl com|low_order_port,*  000171 aa 2 00604 1371 00 269 sblaq bf|old_label.time_unmounted  000172 0a 000174 6040 00 270 tmi clckerr  000173 0a 000221 7100 00 271 tra clck1  272  000174 273 clckerr:  000174 aa 012241 7020 00 274 tsx2 erpt  000175 aa 050 124 150 145 275 acc "The clock time is behind the time on the" 000176 aa 040 143 154 157 000177 aa 143 153 040 164 000200 aa 151 155 145 040 000201 aa 151 163 040 142 000202 aa 145 150 151 156 000203 aa 144 040 164 150 000204 aa 145 040 164 151 000205 aa 155 145 040 157 000206 aa 156 040 164 150 000207 aa 145 000 000 000 000210 aa 012241 7020 00 276 tsx2 erpt  000211 aa 031 122 120 126 277 acc "RPV label. Will not boot."  000212 aa 040 154 141 142 000213 aa 145 154 056 040 000214 aa 127 151 154 154 000215 aa 040 156 157 164 000216 aa 040 142 157 157 000217 aa 164 056 000 000 000220 0a 001070 7100 00 278 tra nogo  000221 0a 000412 2340 00 279 clck1: szn fixnum_hour_delta  000222 0a 000413 6040 00 280 tmi clock_check_ok No check parm, go ahead.  000223 0a 000406 1370 00 281 sblaq clock_delta  000224 0a 000413 6040 00 282 tmi clock_check_ok 000225 283 clock_check.query:  000225 aa 012241 7020 00 284 tsx2 erpt  000226 aa 027 124 150 145 285 acc "The system clock reads "  000227 aa 040 163 171 163 000230 aa 164 145 155 040 000231 aa 143 154 157 143 000232 aa 153 040 162 145 000233 aa 141 144 163 040 000234 aa 6 01530 6331 20 286 rccl com|low_order_port,*  000235 0a 000320 7020 00 287 tsx2 clockprint  000236 aa 012241 7020 00 288 tsx2 erpt  000237 aa 031 141 156 144 289 acc "and the RPV was last used"  000240 aa 040 164 150 145 000241 aa 040 122 120 126 000242 aa 040 167 141 163 000243 aa 040 154 141 163 000244 aa 164 040 165 163 000245 aa 145 144 000 000 000246 aa 2 00602 2371 00 290 ldaq bf|label.time_map_updated 000247 0a 000320 7020 00 291 tsx2 clockprint  000250 aa 012241 7020 00 292 tsx2 erpt  000251 aa 060 124 150 151 293 acc "This is more than the ^d hours on the CLOK card." 000252 aa 163 040 151 163 000253 aa 040 155 157 162 000254 aa 145 040 164 150 000255 aa 141 156 040 164 000256 aa 150 145 040 136 000257 aa 144 040 150 157 000260 aa 165 162 163 040 000261 aa 157 156 040 164 000262 aa 150 145 040 103 000263 aa 114 117 113 040 000264 aa 143 141 162 144 000265 aa 056 000 000 000 000266 0a 000412 0000 00 294 arg fixnum_hour_delta  000267 aa 012241 7020 00 295 tsx2 erpt  000270 aa 030 104 157 040 296 acc "Do you wish to proceed^g" 000271 aa 171 157 165 040 000272 aa 167 151 163 150 000273 aa 040 164 157 040 000274 aa 160 162 157 143 000275 aa 145 145 144 136 000276 aa 147 000 000 000 000277 0a 003533 0000 00 297 arg =h!!????  000300 aa 012247 7020 00 298 tsx2 readtty  000301 0a 000307 7100 00 299 tra clockchk.payon 000302 aa 012001 2350 00 300 lda line  000303 0a 003534 1150 00 301 cmpa =hyes " 000304 0a 000413 6000 00 302 tze clock_check_ok 000305 0a 003535 1150 00 303 cmpa =hno " 000306 0a 001070 6000 00 304 tze nogo  000307 305 clockchk.payon: 000307 aa 012241 7020 00 306 tsx2 erpt  000310 aa 030 120 154 145 307 acc "Please answer yes or no." 000311 aa 141 163 145 040 000312 aa 141 156 163 167 000313 aa 145 162 040 171 000314 aa 145 163 040 157 000315 aa 162 040 156 157 000316 aa 056 000 000 000 000317 0a 000225 7100 00 308 tra clock_check.query  309  000320 310 clockprint: 000320 0a 000341 7420 00 311 stx2 printclock_x  000321 0a 003321 7020 00 312 tsx2 cv_clock  000322 aa 012241 7020 00 313 tsx2 erpt  000323 aa 027 136 141 040 314 acc "^a ^d ^d ^d:^d:^d ^a ^a"  000324 aa 136 144 040 136 000325 aa 144 040 136 144 000326 aa 072 136 144 072 000327 aa 136 144 040 136 000330 aa 141 040 136 141 000331 0a 003440 0000 00 315 arg rdclock.month_name 000332 0a 003441 0000 00 316 arg rdclock.day_of_month  000333 0a 003444 0000 00 317 arg rdclock.year  000334 0a 003434 0000 00 318 arg rdclock.hr 000335 0a 003435 0000 00 319 arg rdclock.min  000336 0a 003436 0000 00 320 arg rdclock.sec  000337 0a 003447 0000 00 321 arg rdclock.zone_name  000340 0a 003443 0000 00 322 arg rdclock.day_name  000341 323 printclock_x:  000341 aa 000000 7100 00 324 tra *-*  000342 325 err_no_root:  000342 aa 012241 7020 00 326 tsx2 erpt  000343 aa 036 103 141 156 327 acc "Cannot find RPV. Boot aborted."  000344 aa 156 157 164 040 000345 aa 146 151 156 144 000346 aa 040 122 120 126 000347 aa 056 040 102 157 000350 aa 157 164 040 141 000351 aa 142 157 162 164 000352 aa 145 144 056 000 000353 0a 001070 7100 00 328 tra nogo  000354 329 err_root_problem:  000354 aa 012241 7020 00 330 tsx2 erpt  000355 aa 045 103 141 156 331 acc "Cannot read root label. Boot aborted."  000356 aa 156 157 164 040 000357 aa 162 145 141 144 000360 aa 040 162 157 157 000361 aa 164 040 154 141 000362 aa 142 145 154 056 000363 aa 040 102 157 157 000364 aa 164 040 141 142 000365 aa 157 162 164 145 000366 aa 144 056 000 000 000367 0a 001070 7100 00 332 tra nogo  000370 333 boot.no_clok_card:  000370 aa 012241 7020 00 334 tsx2 erpt  000371 aa 040 103 114 117 335 acc "CLOK card missing. Boot aborted." 000372 aa 113 040 143 141 000373 aa 162 144 040 155 000374 aa 151 163 163 151 000375 aa 156 147 056 040 000376 aa 102 157 157 164 000377 aa 040 141 142 157 000400 aa 162 164 145 144 000401 aa 056 000 000 000 000402 0a 001070 7100 00 336 tra nogo  337  000403 aa 000000 0110 03 338 even  000404 aa 000000 000000 339 pclk1temp: dec 0,0  000405 aa 000000 000000 000406 340 clock_delta:  000406 aa 000000 000000 341 dec 0,0  000407 aa 000000 000000 000410 aa 000000 000000 342 pclk2temp: dec 0  000411 aa 000000 000000 343 root_dev: dec 0 000412 344 fixnum_hour_delta:  000412 aa 000000 000000 345 dec 0  000413 346 clock_check_ok: 347  348 " 349  350 " Call to rewind the tape. It may already be rewinding. On an error  351 " keep trying to rewind.  352  000413 353 examine_tape_label: 000413 aa 012277 7020 00 354 intact: tsx2 xio_wait  000414 aa 000000 000000 355 zero "Non data transfer. 000415 0a 001072 000070 356 zero ccw,rewind_code  000416 0a 000413 7100 00 357 tra *-3 On error retry rewind.  358  359 " Make sure tape is mounted in correct density. 000417 aa 012237 7020 00 360 tsx2 itaper  000420 0a 001072 0000 00 361 arg ccw  362  363 " Read in the MST label record, to see if it is a bootable tape 364  000421 aa 012277 7020 00 365 tsx2 xio_wait  000422 0a 001300 000000 366 vfd 18/tbuff,12/0  000423 0a 001072 000005 367 zero ccw,read_tape_bin_code  000424 0a 000413 7100 00 368 tra intact " Rewind and retry on read error  369  370 " Now have a look at the data therein  371  000425 0a 001300 2350 00 372 lda tbuff+mstr.head+mstr_header.c1 "Inspect the header sentinel  000426 0a 003536 1150 00 373 cmpa =v36/header_c1  000427 0a 000565 6000 00 374 tze tape_label.non_bootable " Ordinary Multics Tape  375  000430 0a 001310 2350 00 376 lda tbuff+mst_label.head+mstr_header.c1 " Bootable?  000431 0a 003536 1150 00 377 cmpa =v36/header_c1  000432 0a 000473 6000 00 378 tze tape_label.bootable  379  000433 aa 012241 7020 00 380 tsx2 erpt  000434 aa 041 164 141 160 381 acc "tape does not have a valid label."  000435 aa 145 040 144 157 000436 aa 145 163 040 156 000437 aa 157 164 040 150 000440 aa 141 166 145 040 000441 aa 141 040 166 141 000442 aa 154 151 144 040 000443 aa 154 141 142 145 000444 aa 154 056 000 000 000445 0a 001070 7100 00 382 tra nogo  383  384  385 " Bootable tape label. Time to pretend we are an IOM!  386  387 " Tell All about the tape we read.  388  000446 389 vid.tape_reel_id:  000446 0a 001330 000040 390 desc9a tbuff+mst_label.vid+volume_identifier.tape_reel_id,32  391  000030 392 bool iom_boot_read_loc,000030  393  394 make_pcw boot_info.bootload_pcw,  395 0, " Bootload chan takes this  396 0, " no particular  397 0, " ditto  398 nondata,  399 proceed  000447 aa 000000 0110 03 even  000450 boot_info.bootload_pcw: 000450 aa 000000 720200 000451 aa 000000 000000 400  001400 401 bool iom_0_base_addr,001400  001200 402 bool iom_0_mbx_addr,001200  403  000452 404 boot_info.info: 000452 aa 001400 001200 405 vfd 18/iom_0_base_addr,18/iom_0_mbx_addr  406 make_idcw boot_info.idcw,05,0,record,terminate 000453 boot_info.idcw: 000453 aa 050000 700000 407 make_ddcw boot_info.ddcw,iom_boot_read_loc,0,iotd 000454 boot_info.ddcw: 000454 aa 000030 000000 408  409  000010 410 bool iom_0_system_fault_addr,000010  000455 411 system_fault_vector_data:  000455 aa 000000 616200 412 vfd 18/0,o18/616200  413  001207 414 equ fault_channel_dcw_addr,iom_0_mbx_addr+7  000456 415 fault_channel_dcw:  000456 aa 001202 000002 416 vfd o12/012,6/2,18/2  000457 aa 000000 004000 417 vfd 18/0,o18/004000  418  000460 419 channel_mbx_data:  000460 aa 000003 020003 420 vfd 18/3,6/2,12/3  000461 aa 000000 000000 421 vfd 36/0  000462 aa 001200 000000 422 vfd 18/iom_0_mbx_addr,18/0 423  000463 424 bootable_tape.fgbx_sentinel:  425 flagbox_sentinel  000463 aa 106 154 141 147 aci "Flagbox & Toehold Valid",32  000464 aa 142 157 170 040 000465 aa 046 040 124 157 000466 aa 145 150 157 154 000467 aa 144 040 126 141 000470 aa 154 151 144 040 000471 aa 040 040 040 040 000472 aa 040 040 040 040 426  000473 427 tape_label.bootable:  428  000473 429 boot_the_tape: 430  000473 aa 012241 7020 00 431 tsx2 erpt  000474 aa 020 102 157 157 432 acc "Booting tape ^A." 000475 aa 164 151 156 147 000476 aa 040 164 141 160 000477 aa 145 040 136 101 000500 aa 056 000 000 000 000501 0a 000446 0000 00 433 arg vid.tape_reel_id  434  435 " So much for the word from our sponsor. Now for the work.  436  437 " Save BOS common directory on disk, so RUNCOMS continue apace. 438  000502 aa 6 02000 2351 00 439 lda com|dir  000503 aa 012235 7020 00 440 tsx2 wtsec 000504 aa 6 00000 0111 00 441 nop com|0  000505 0a 000505 6160 00 442 dis * " gotta work.  443  444 " Notify Bootload Multics that we are here  445  000506 aa 000100 1004 00 446 mlr (),(pr)  000507 0a 000463 000040 447 desc9a bootable_tape.fgbx_sentinel,32  000510 aa 500004 000040 448 desc9a fgb|fgbx.sentinel,32  449  450 " First setup PCW in bootload info so that label can read rest of tape  451  000511 0a 001072 2350 00 452 lda ccw channel in AU  000512 aa 000011 7350 00 453 als 9 PCW is vfd 3/0,6/CHANNEL  000513 aa 077000 3750 03 454 ana =o077000,du other stuff in ccw  000514 0a 000451 7550 00 455 sta boot_info.bootload_pcw+1 only nonzero part 456  000515 aa 6 02011 2351 00 457 lda com|iom_mbbase AU -> IOM Mailbox base 000516 aa 7 00001 2351 01 458 lda mem|1,au A = IOM connect word  000517 aa 000007 3750 07 459 ana =o7,dl Strip out SCU port number 000520 0a 000451 2550 00 460 orsa boot_info.bootload_pcw+1 And give to Benson  461  000521 0a 001072 2350 00 462 lda ccw device # into A<18:24>  000522 aa 000014 7350 00 463 als 12 into position of device  000523 aa 007700 3750 03 464 ana =o007700,du in case of trash  000524 0a 000450 2550 00 465 orsa boot_info.bootload_pcw  000525 0a 000453 2550 00 466 orsa boot_info.idcw  467  468 " Move iom bootload info to location 0-4  469  000526 aa 000100 1004 00 470 mlr (),(pr)  000527 0a 000450 000024 471 desc9a boot_info.bootload_pcw,4*5  000530 aa 700000 000024 472 desc9a mem|0,4*5  473  000531 aa 010000 2350 07 474 lda 1024*4,dl  000532 aa 000140 1004 40 475 mlr (rl),(pr,rl)  000533 0a 001300 000005 476 desc9a tbuff,al  000534 aa 700030 000005 477 desc9a mem|iom_boot_read_loc,al  478  000535 0a 000455 2350 00 479 lda system_fault_vector_data  000536 aa 7 00010 7551 00 480 sta mem|iom_0_system_fault_addr  481  000537 0a 000456 2350 00 482 lda fault_channel_dcw  000540 aa 7 01207 7551 00 483 sta mem|fault_channel_dcw_addr 000541 0a 000457 2350 00 484 lda fault_channel_dcw+1 odd addr cant be ldaq 000542 aa 7 01210 7551 00 485 sta mem|fault_channel_dcw_addr+1  486  000543 0a 001072 2350 00 487 lda ccw channel # in AU  000544 aa 000077 3750 03 488 ana =o000077,du get rid of other bits 000545 aa 000002 7350 00 489 als 2 times 4  000546 aa 001200 0750 03 490 ada iom_0_mbx_addr,du Add to base addr  000547 aa 000002 7350 00 491 als 2 Convert words to chars 000550 aa 000101 1004 00 492 mlr (),(pr,au) 000551 0a 000460 000014 493 desc9a channel_mbx_data,3*4  000552 aa 700000 000014 494 desc9a mem|0,3*4 x5 has addr 495  000553 aa 020000 2360 07 496 ldq (econf-conf)*4,dl  000554 aa 0 00140 1005 40 497 mlr (pr,rl),(pr,rl)  000555 aa 603000 000006 498 desc9a com|conf,ql 000556 aa 712000 000006 499 desc9a mem|config_rec_orig,ql  500  501 " Now produce an abs mode transfer into the label  502  000557 0a 000564 2350 00 503 lda tra_label_lda  504  000560 aa 7 00114 7551 00 505 sta mem|fv.fpair+FAULT_NO_DRL*2  000561 aa 000000 0020 00 506 drl  507  508 " That drl should start the boot label program  509  000562 aa 525252 2350 03 510 lda =o525252,du in case it dont  000563 aa 000000 6160 00 511 dis 0 die in lights  512  000564 513 tra_label_lda:  000564 aa 000030 7100 00 514 tra iom_boot_read_loc+mst_label.lda_instr the lda for IOM 0  515  516 " Conventional MST  517  000565 518 tape_label.non_bootable:  519  520 " 521  522 " The following code will zero all of memory except the memory that  523 " is used by BOS itself - at the beginning of memory. The entries  524 " in the "coreblocks" array in bos_common are used to tell what memory is 525 " available on the system. Each entry in coreblocks represents one system  526 " port and contains the following data:  527 "  528 " Bits 0 - 17 = number of 1st 64-word block of mem on this port  529 " 18 - 35 = number of 64-word blocks on this port 530 "  531 " NOTE: the block numbers begin with block (0). If there is no memory on  532 " this port then its coreblocks word will equal (-1).  533 "  534  535 " We will use segment tmp when zeroing memory. The SDW.ADDR field of tmp is  536 " set up for each 32K block of memory cleared. 537 " ** 32K is the size of the smallest system controller that the 645F system  538 " will support. ** 539 "  540 " There are two memory clearing routines: a fast routine using MLR and a slow  541 " routine using STAQ. The fast is attempted first for each block to be cleared.  542 " If it encounters an error, the slow routine retries (in order to print the  543 " address where the problem occurred)  544 "  545 " NOTE: IT IS ASSUMED THAT THE SIZE OF MEMORY USED BY BOS IS LESS THAN ** 32K **.  546  000565 547 clearmem:  000565 aa 012313 7020 00 548 tsx2 getportinfo Pick up current config switch settings.  000566 aa 000010 6270 00 549 eax7 8 There are 8 ports. 000567 aa 037770 2350 03 550 lda ((32*1024/16)-1)*8,du Use effective bound of 32K.  000570 aa 0 00003 6751 00 551 era ds|tmp*2+1 Put it into BOUND field of tmp SDW. 000571 aa 377770 3750 03 552 ana sdw.bound,du Only BOUND field of SDW is changed.  000572 aa 0 00003 6551 00 553 ersa ds|tmp*2+1  554  000573 555 zero_loop:  000573 aa 777777 6270 17 556 eax7 -1,7 Have all the ports been processed?  000574 0a 000646 6040 00 557 tmi zero_loop_end Tra if yes. 558  000575 aa 6 01610 7261 17 559 lxl6 com|coreblocks,7 No, get number of 64-word blocks on this port.  560 " NOTE: Although expressed in terms of  561 " 64-word blocks the size of a memory on a  562 " port must be a multiple of 32K.  000576 0a 000573 6040 00 563 tmi zero_loop (-1) => none - no mem on this port. 564  000577 aa 6 01610 2351 17 565 lda com|coreblocks,7 There is mem - get starting block number. 000600 aa 777777 3750 03 566 ana -1,du Zero out number of blocks.  000601 0a 000606 6010 00 567 tnz port_loop If starting block number not = 0 then skip  568 " special case.  569  000602 aa 6 02003 2361 00 570 ldq com|corearea Get num of 64 word blocks in BOS memory.  000603 aa 000006 7360 00 571 qls 6 Q * 64 = num words in BOS memory.  000604 aa 000000 6210 06 572 eax1 0,ql Save in X1.  000605 0a 000607 7100 00 573 tra port_loop1 Skip setting X1 to zero.  574  000606 575 port_loop:  000606 aa 000000 6210 00 576 eax1 0 Set X1 to start at the beginning of this  577 " memory - this is the non-low-order case.  000607 578 port_loop1: 000607 aa 0 00002 7511 74 579 stca ds|tmp*2,74 Store segment address in SDW. 000610 aa 000000 5320 00 580 cams "Clear ass. mem. for new seg.  000611 0a 000627 6250 00 581 eax5 pl_flt set up for catching fault 000612 aa 012301 7450 20 582 stx5 wantflt,* if memory not there  583  000613 aa 000000 6350 11 584 eaa 0,1 begin address within 32K block  000614 aa 000022 7710 00 585 arl 18 AL = address modulo 32K  000615 aa 000000 5310 00 586 neg " AL = -address module 32K  000616 aa 100000 0750 07 587 ada 32*1024,dl AL = words left in 32K block  000617 aa 000002 7350 00 588 als 2 AL = chars left in 32K block  589  000620 aa 1 00000 3701 11 590 epp xs1,tmp|0,1 xs1 -> begin address  000621 aa 000140 1004 00 591 mlr (),(pr,rl),fill(000) clear block to zeros  000622 aa 000000 000000 592 desc9a 0,0 000623 aa 400000 000005 593 desc9a xs1|0,al  000624 aa 000000 0110 07 594 nop 0,dl for safety, to make sure we catch  000625 aa 000000 0110 07 595 nop 0,dl any fault  000626 0a 000640 7100 00 596 tra port_loop_end 32K block is flushed 597  598 " The following is executed only if a fault occurs on the MLR above 599  000627 0a 001027 6250 00 600 pl_flt: eax5 bl_flt faults will print message  000630 aa 012301 7450 20 601 stx5 wantflt,*  000631 aa 000110 7370 00 602 lls 72 Clear A and Q  603  000632 604 block_loop: 000632 aa 1 00000 7571 11 605 staq tmp|0,1 Zero two words.  000633 aa 000000 0110 07 606 nop 0,dl delay so store fault happens before x1 changes  000634 aa 000000 0110 07 607 nop 0,dl  000635 aa 000002 6210 11 608 eax1 2,1  000636 aa 100000 1010 03 609 cmpx1 1024*32,du Have we zeroed all 32K words? 000637 0a 000632 6040 00 610 tmi block_loop If not keep looping.  611  000640 612 port_loop_end:  000640 aa 012301 4500 20 613 stz wantflt,* No longer interested in faults. 000641 aa 777000 6260 16 614 eax6 -32*1024/64,6 Is this the last 32K block? 000642 0a 000573 6000 00 615 tze zero_loop If yes go process next port.  000643 aa 0 00002 2351 00 616 lda ds|tmp*2 If no get tmp SDW.  000644 aa 001000 0350 03 617 adla 1024*32/64,du Add 32K to its base (24bit addr).  000645 0a 000606 7100 00 618 tra port_loop Process next 32K on this port.  619  620  621 " Now zero out the core image on the disk. 622  000646 623 zero_loop_end:  000646 aa 6 02003 2351 00 624 lda com|corearea Get data about core image on disk.  000647 aa 007777 3750 07 625 ana =o7777,dl Mask the sector length  000650 aa 000022 7350 00 626 als 18 Use num records for SDW base addr. 000651 aa 0 00002 7511 74 627 stca ds|tmp*2,74 Set up tmp SDW to -> to area just cleared.  000652 aa 000000 5320 00 628 cams "Clear ass. mem. for new seg.  629  000653 aa 6 02003 2351 00 630 lda com|corearea Call to clear mem image on disk.  000654 aa 012235 7020 00 631 tsx2 wtsec 000655 aa 1 00000 0111 00 632 nop tmp|0  000656 0a 000656 6160 00 633 dis *  634  635 " Skip over the first EOF mark to position the tape before the first data record.  000657 aa 012277 7020 00 636 tsx2 xio_wait Skip over the first file mark.  000660 aa 000000 000000 637 zero "Non data transfer. 000661 0a 001072 000045 638 zero ccw,fwd_space_file_code  000662 0a 000663 7100 00 639 tra *+1 On error check status.  000663 aa 170000 3750 03 640 ana =o170000,du Clear all but major status.  000664 aa 040000 1150 03 641 cmpa =o040000,du Should indicate EOF. 000665 0a 000413 6010 00 642 tnz intact If not try whole operation again.  643  644  645 " Now we will read in the first data record from the MST tape.  646  000666 aa 012277 7020 00 647 tsx2 xio_wait Read in the first data record.  000667 0a 001300 000000 648 vfd 18/tbuff,12/0 DCW argument word.  000670 0a 001072 000005 649 zero ccw,read_tape_bin_code  000671 0a 000413 7100 00 650 tra intact If error retry everything. 651  652 " Get length of MST record from the record header.  000672 0a 001304 2360 00 653 ldq tbuff+4 data length in bits  000673 aa 000022 7720 00 654 qrl 18 right-justify  000674 aa 000044 5060 07 655 div 36,dl compute # of words  000675 aa 000107 0360 07 656 adlq 63+8,dl round up and add record header lth  000676 aa 000006 7720 00 657 qrl 6 and compute # of 64-word sectors needed 000677 0a 001075 7560 00 658 stq trecs to contain MST record  659  660 " 661  662 " Clear everything in bos_common below port_array. This will  663 " clear all of the machine conditions belonging to BOS and  664 " present the Multics system with an "initialized" machine. 665  000700 aa 000100 1004 00 666 mlr (),(pr),fill(0) clear common  000701 0a 000701 000000 667 desc9a *,0 000702 aa 600000 006534 668 desc9a com|0,(low_order_port-1)*4  669  000703 aa 6 02011 2201 00 670 ldx0 com|iom_mbbase Set Multics X0 = IOM Mailbox addr. 000704 aa 6 01520 7401 00 671 stx0 com|regs+0 X0 picked up from mach conds.  672  000705 aa 7 00001 2351 10 673 lda mem|1,0  000706 0a 001201 7510 01 674 stca dkmbx+1,01 Set cow in mailbox image.  675  676 " Write out the IOM mailbox image into BOS saved core image on disk.  000707 aa 000000 6350 10 677 eaa 0,0 X0 = core address of mailbox. 000710 aa 000014 7710 00 678 arl 6+6 Divide by 64 and shift to sector addr. position  000711 aa 6 02003 0751 00 679 ada com|corearea Add sector address of beginning of core image.  000712 0a 003537 3750 00 680 ana =o777777770000 Only interested in sector addr. 000713 aa 000001 0750 07 681 ada =1,dl AL = num records to write.  000714 aa 012235 7020 00 682 tsx2 wtsec Write out mailbox. 000715 aa 3 01200 0111 00 683 nop pgm|dkmbx  000716 0a 000716 6160 00 684 dis *  685  686 " When Multics is given control, X2 must contain the address of the  687 " beginning of the first record read from the MST tape.  000717 aa 014000 6220 00 688 eax2 bootstrap1_orig Address for loading bootstrap1.  000720 aa 6 01521 7421 00 689 stx2 com|regs+1 X2 = bootstrap1 base.  690  691 " Set up to enter bootstrap1 at 40(8). The ILC word in the machine 692 " conditions area of common will be set to this value.  000721 aa 000040 6350 12 693 eaa 32,2 A = addr(bootstrap1)+40(8).  000722 aa 000220 2750 07 694 ora scu.ir.abs+scu.ir.bm,dl Set abs and bm indicators. 000723 aa 6 01544 7551 00 695 sta com|scu+scu.ilc_word Set PPR.IC and IR.  000724 aa 000400 2350 07 696 lda scu.cu.rfi,dl restart inst from start of cycle 000725 aa 6 01545 7551 00 697 sta com|scu+scu.cu_stat_word  000726 aa 400000 2350 07 698 lda scu.ppr.p,dl must place machine in privileged mode 000727 aa 6 01540 7551 00 699 sta com|scu+scu.ppr.p_word ..  700  701 " Set the mode registers. The history registers will be turned on until  702 " a fault is encountered. The cache will be turned off. The lockup fault  703 " grace time will be set to the maximum.  000730 aa 000061 2350 07 704 lda =o61,dl turn on history registers 000731 aa 000003 2360 07 705 ldq =o3,dl turn off cache 000732 aa 6 01574 7571 00 706 staq com|modereg set mode registers  707  708  709 " The first record of the MST tape will now be written out on the disk. 000733 aa 000000 6350 12 710 eaa 0,2 X2 still = addr(bootstrap1 origin).  000734 aa 000014 7710 00 711 arl 6+6 Divide by 64 to get record addr.  000735 aa 6 02003 0751 00 712 ada com|corearea Add record addr of core image.  000736 0a 003537 3750 00 713 ana =o777777770000 Leave beginning record addr.  000737 0a 001075 2750 00 714 ora trecs Insert # of records needed for MST record.  000740 aa 012235 7020 00 715 tsx2 wtsec Write first MST record = bootstrap1.  000741 aa 3 01300 0111 00 716 nop pgm|tbuff  000742 0a 000742 6160 00 717 dis *  718  719  720 " Set up the eight memory controller masks in bos_common.  721 " They will all have the same mask. 000743 aa 000020 6270 00 722 eax7 16 Load loop index.  000744 0a 001100 2370 00 723 ldaq mcmsk Get mask.  000745 aa 6 01546 7571 17 724 staq com|mcm-2,7  000746 aa 777776 6270 17 725 eax7 -2,7  000747 0a 000745 6010 00 726 tnz *-2  727  728 " Now write out the configuration table on the disk. It will go in the 729 " core image starting at 6000 octal.  000750 aa 6 02003 2351 00 730 lda com|corearea Get first rec num of core image.  000751 0a 003540 0750 00 731 ada =v24/config_rec_orig/64 Add rec address to 1st rec number. 000752 0a 003537 3750 00 732 ana =o777777770000 Clear num records field.  000753 aa 000040 0750 07 733 ada econf/64-conf/64,dl Add num recs needed for config tab.  000754 aa 012235 7020 00 734 tsx2 wtsec 000755 aa 6 03000 0111 00 735 nop com|conf  000756 0a 000756 6160 00 736 dis *  737  738  739 " Now return to setup. Load the A so setup will chain to the "contin" command. 000757 0a 003541 2350 00 740 lda =hcontin Chain into contin.  000760 0a 000760 6220 00 741 x2_save: eax2 * Return to setup.  000761 aa 7 00001 7101 12 742 tra mem|1,2  000762 aa 000001 3350 07 743 ret_error:lca 1,dl  000763 0a 000760 7100 00 744 tra x2_save  745 " 746  000764 aa 012241 7020 00 747 coldboot: tsx2 erpt "ask about cold boot  000765 aa 032 144 157 040 748 acc 'do you wish to boot cold^g'  000766 aa 171 157 165 040 000767 aa 167 151 163 150 000770 aa 040 164 157 040 000771 aa 142 157 157 164 000772 aa 040 143 157 154 000773 aa 144 136 147 000 000774 0a 003533 0000 00 749 arg =h!!????  750  000775 aa 012247 7020 00 751 tsx2 readtty "get answer  000776 0a 000764 7100 00 752 tra coldboot  000777 aa 012001 2360 00 753 ldq line  001000 0a 003534 1160 00 754 cmpq =hyes " "yes  001001 0a 001070 6010 00 755 tnz nogo "if not, do nothing  756  001002 0a 000413 7100 00 757 tra examine_tape_label 758 " 759  760  001003 761 table_full: 001003 aa 012241 7020 00 762 tsx2 erpt If configuration table full.  001004 aa 030 143 157 156 763 acc 'configuration table full' 001005 aa 146 151 147 165 001006 aa 162 141 164 151 001007 aa 157 156 040 164 001010 aa 141 142 154 145 001011 aa 040 146 165 154 001012 aa 154 000 000 000 001013 0a 001070 7100 00 764 tra nogo  765  766  001014 0a 001102 7550 00 767 noconf: sta config_card_name  001015 aa 012241 7020 00 768 tsx2 erpt "if no config deck  001016 aa 031 156 157 040 769 acc 'no ^a card in config deck'  001017 aa 136 141 040 143 001020 aa 141 162 144 040 001021 aa 151 156 040 143 001022 aa 157 156 146 151 001023 aa 147 040 144 145 001024 aa 143 153 000 000 001025 0a 001102 0000 00 770 arg config_card_name  001026 0a 001070 7100 00 771 tra nogo  772  773  001027 774 bl_flt: "Here if faulted while zeroing memory.  001027 aa 012301 4500 20 775 stz wantflt,*  001030 aa 000000 6210 11 776 eax1 0,1 check block offset  001031 0a 001035 6010 00 777 tnz bl_flt1 not at beginning - complain  001032 aa 0 00002 2251 00 778 ldx5 ds|tmp*2 was this the first access to this port  001033 aa 6 01610 1051 17 779 cmpx5 com|coreblocks,7 001034 0a 000573 6010 00 780 tnz zero_loop no - continue with next port  781  001035 0a 001074 7470 00 782 bl_flt1: stx7 x7_save save across erpt call  001036 0a 001073 4500 00 783 stz bl_flt_loc store block offset  001037 0a 001073 4410 00 784 sxl1 bl_flt_loc after zeroing the word 001040 aa 0 00002 2351 00 785 lda ds|tmp*2 Pick up SDW faulted on.  001041 aa 000014 7710 00 786 arl sdw.add_shift Position the address field.  001042 0a 001073 0550 00 787 asa bl_flt_loc add in the block address  001043 aa 012241 7020 00 788 bl_flt2: tsx2 erpt  001044 aa 052 125 156 141 789 acc 'Unable to access memory loc ^w, continue^g'  001045 aa 142 154 145 040 001046 aa 164 157 040 141 001047 aa 143 143 145 163 001050 aa 163 040 155 145 001051 aa 155 157 162 171 001052 aa 040 154 157 143 001053 aa 040 136 167 054 001054 aa 040 143 157 156 001055 aa 164 151 156 165 001056 aa 145 136 147 000 001057 0a 001073 0000 00 790 arg bl_flt_loc 001060 0a 003533 0000 00 791 arg =h!!????  792  001061 aa 012247 7020 00 793 tsx2 readtty get answer  001062 0a 001043 7100 00 794 tra bl_flt2  001063 aa 012001 2360 00 795 ldq line  001064 0a 003534 1160 00 796 cmpq =hyes " 001065 0a 001070 6010 00 797 tnz nogo  001066 0a 001074 2270 00 798 ldx7 x7_save Restore index to port table  001067 0a 000573 7100 00 799 tra zero_loop And go back to it  800  001070 801 ttyrequest: 001070 802 execint:  001070 aa 000001 3350 07 803 nogo: lca 1,dl Return to setup without chaining.  001071 0a 000760 7100 00 804 tra x2_save  805  806  807 " 808  001072 aa 000000 030000 809 ccw: vfd 18/0,6/tapeno  001073 810 bl_flt_loc: 001073 aa 000000 000000 811 oct 0 location of fault  001074 812 x7_save: bss ,1 001075 813 trecs: bss ,1  001076 814 cvbits: bss ,1  815  001077 aa 000000 0110 03 816 even  001100 aa 000000 000017 817 mcmsk: oct 00000000017,00000000017 mcm for no interrupts.  001101 aa 000000 000017 001102 818 config_card_name:  001102 aa 000000 000000 819 oct 0  820  821  822  001103 aa 000000 0110 03 823 mod 64 001104 aa 000000 0110 03 001105 aa 000000 0110 03 001106 aa 000000 0110 03 001107 aa 000000 0110 03 001110 aa 000000 0110 03 001111 aa 000000 0110 03 001112 aa 000000 0110 03 001113 aa 000000 0110 03 001114 aa 000000 0110 03 001115 aa 000000 0110 03 001116 aa 000000 0110 03 001117 aa 000000 0110 03 001120 aa 000000 0110 03 001121 aa 000000 0110 03 001122 aa 000000 0110 03 001123 aa 000000 0110 03 001124 aa 000000 0110 03 001125 aa 000000 0110 03 001126 aa 000000 0110 03 001127 aa 000000 0110 03 001130 aa 000000 0110 03 001131 aa 000000 0110 03 001132 aa 000000 0110 03 001133 aa 000000 0110 03 001134 aa 000000 0110 03 001135 aa 000000 0110 03 001136 aa 000000 0110 03 001137 aa 000000 0110 03 001140 aa 000000 0110 03 001141 aa 000000 0110 03 001142 aa 000000 0110 03 001143 aa 000000 0110 03 001144 aa 000000 0110 03 001145 aa 000000 0110 03 001146 aa 000000 0110 03 001147 aa 000000 0110 03 001150 aa 000000 0110 03 001151 aa 000000 0110 03 001152 aa 000000 0110 03 001153 aa 000000 0110 03 001154 aa 000000 0110 03 001155 aa 000000 0110 03 001156 aa 000000 0110 03 001157 aa 000000 0110 03 001160 aa 000000 0110 03 001161 aa 000000 0110 03 001162 aa 000000 0110 03 001163 aa 000000 0110 03 001164 aa 000000 0110 03 001165 aa 000000 0110 03 001166 aa 000000 0110 03 001167 aa 000000 0110 03 001170 aa 000000 0110 03 001171 aa 000000 0110 03 001172 aa 000000 0110 03 001173 aa 000000 0110 03 001174 aa 000000 0110 03 001175 aa 000000 0110 03 001176 aa 000000 0110 03 001177 aa 000000 0110 03 001200 824 dkmbx:  001200 aa 050300 700000 825 vfd o6/05,6/tapeno,6/0,o3/7,3/0,6/0,6/0  001201 aa 000000 000000 826 vfd 9/0,27/0  827  828  001202 aa 000000 0110 03 829 mod 64 001203 aa 000000 0110 03 001204 aa 000000 0110 03 001205 aa 000000 0110 03 001206 aa 000000 0110 03 001207 aa 000000 0110 03 001210 aa 000000 0110 03 001211 aa 000000 0110 03 001212 aa 000000 0110 03 001213 aa 000000 0110 03 001214 aa 000000 0110 03 001215 aa 000000 0110 03 001216 aa 000000 0110 03 001217 aa 000000 0110 03 001220 aa 000000 0110 03 001221 aa 000000 0110 03 001222 aa 000000 0110 03 001223 aa 000000 0110 03 001224 aa 000000 0110 03 001225 aa 000000 0110 03 001226 aa 000000 0110 03 001227 aa 000000 0110 03 001230 aa 000000 0110 03 001231 aa 000000 0110 03 001232 aa 000000 0110 03 001233 aa 000000 0110 03 001234 aa 000000 0110 03 001235 aa 000000 0110 03 001236 aa 000000 0110 03 001237 aa 000000 0110 03 001240 aa 000000 0110 03 001241 aa 000000 0110 03 001242 aa 000000 0110 03 001243 aa 000000 0110 03 001244 aa 000000 0110 03 001245 aa 000000 0110 03 001246 aa 000000 0110 03 001247 aa 000000 0110 03 001250 aa 000000 0110 03 001251 aa 000000 0110 03 001252 aa 000000 0110 03 001253 aa 000000 0110 03 001254 aa 000000 0110 03 001255 aa 000000 0110 03 001256 aa 000000 0110 03 001257 aa 000000 0110 03 001260 aa 000000 0110 03 001261 aa 000000 0110 03 001262 aa 000000 0110 03 001263 aa 000000 0110 03 001264 aa 000000 0110 03 001265 aa 000000 0110 03 001266 aa 000000 0110 03 001267 aa 000000 0110 03 001270 aa 000000 0110 03 001271 aa 000000 0110 03 001272 aa 000000 0110 03 001273 aa 000000 0110 03 001274 aa 000000 0110 03 001275 aa 000000 0110 03 001276 aa 000000 0110 03 001277 aa 000000 0110 03 001300 830 tbuff:  001300 831 bss ,1040 "buffer for Multics standard tape record  832 include eis_micro_ops  000020 10-1 bool insm,020  000040 10-2 bool enf,040  000060 10-3 bool ses,060  000100 10-4 bool mvzb,100  000120 10-5 bool mvza,120  000140 10-6 bool mfls,140  000160 10-7 bool mflc,160  000200 10-8 bool insb,200  000220 10-9 bool insa,220  000240 10-10 bool insn,240  000260 10-11 bool insp,260  000300 10-12 bool ign,300  000320 10-13 bool mvc,320  000340 10-14 bool mses,340  000360 10-15 bool mors,360  000400 10-16 bool lte,400  000420 10-17 bool cht,420  10-18 "  000010 10-19 bool if0,10  000004 10-20 bool if1,4 000002 10-21 bool if2,2 000001 10-22 bool if3,1 833 include rdclock  11-1 " 11-2 " Begin include file ...... rdclock.incl.alm  11-3 " last modified 7/20/76 by Noel I. Morris  11-4 " last modified 7/10/78 by Bernard S. Greenberg for externally gettable vars  11-5 " and calculating every parameter imaginable.  11-6 " last modified 5/05/80 by Mike Grady to calculate a few more imaginable  11-7 " variables, and to fix a bug in leap years.  11-8 "  11-9 " tsx2 rd_clock 11-10 " staq MM/DD HH:MM  11-11  11-12 " ldaq clocktime  11-13 " tsx2 cv_clock 11-14 " staq MM/DD HH:MM  11-15  003320 aa 000040 4130 00 11-16 rd_clock: rscr 4*8 read the clock 11-17  003321 0a 003452 7570 00 11-18 cv_clock: staq rdctime save clock reading 003322 0a 003423 7420 00 11-19 stx2 datx2 save XR's 003323 0a 003424 7400 00 11-20 stx0 datx2+1 ..  11-21  003324 aa 000034 2350 07 11-22 lda 28,dl Initialize montab  003325 0a 003455 7550 00 11-23 sta montab+1 to prime Feb  11-24  003326 0a 003531 2350 00 11-25 lda =aclok find clock config card  003327 aa 012264 7020 00 11-26 tsx2 getconf  003330 0a 003335 7100 00 11-27 tra no_clok_card Use default  003331 aa 6 00001 2361 17 11-28 ldq com|1,7  003332 0a 003446 7560 00 11-29 stq rdclock.zone_temp Delta hours 003333 aa 6 00002 2361 17 11-30 ldq com|2,7  003334 0a 003447 7560 00 11-31 stq rdclock.zone_name Name of zone  11-32  003335 11-33 no_clok_card:  003335 0a 003452 2370 00 11-34 ldaq rdctime Get clock reading  003336 aa 000001 7370 00 11-35 lls 1 Set for dvf  003337 0a 003532 5070 00 11-36 dvf =1000000 Get seconds since 1900. 003340 aa 000044 7770 00 11-37 llr 36 Into Q.  003341 aa 000074 5060 07 11-38 div 60,dl Seconds since min to A, mins to Q. 003342 0a 003436 7550 00 11-39 sta rdclock.sec Save for inspection.  003343 aa 000074 5060 07 11-40 div 60,dl Min since hr to A, hrs to Q.  003344 0a 003435 7550 00 11-41 sta rdclock.min  11-42 "  11-43 " Set up X7 for field filling.  11-44 "  003345 aa 000006 6270 00 11-45 eax7 6 003346 0a 003426 7020 00 11-46 tsx2 datecv Convert the minutes. 003347 0a 003446 1760 00 11-47 sbq rdclock.zone_temp Adjust for GMT. 003350 aa 000030 5060 07 11-48 div 24,dl Days since 1900 in q.  003351 0a 003445 7560 00 11-49 stq rdclock.day_of_century save for later.  003352 0a 003434 7550 00 11-50 sta rdclock.hr Hours since daybreak.  003353 0a 003426 7020 00 11-51 tsx2 datecv Convert the hours  11-52  003354 aa 002665 5060 07 11-53 div 365*4+1,dl get leap year cycle  003355 aa 002110 1150 07 11-54 cmpa 365*3+1,dl if in last year of cycle (the leap year)  003356 0a 003360 6040 00 11-55 tmi *+2 no  003357 0a 003455 0540 00 11-56 aos montab+1 allow for feb 29  11-57  003360 aa 000002 7360 00 11-58 qls 2 4*# leap year cycles  003361 aa 003555 0360 07 11-59 adlq 1901,dl  003362 0a 003444 7560 00 11-60 stq rdclock.year Save 11-61  003363 aa 000044 7770 00 11-62 llr 36 003364 aa 000555 5060 07 11-63 div 365,dl Years complete since l.y.c. =>Q  11-64 " Days since that year end => A 11-65  003365 aa 000004 1160 07 11-66 cmpq 4,dl Dec 31st of leap year? 003366 0a 003371 6010 00 11-67 tnz *+3 No.  003367 aa 000001 1760 07 11-68 sbq 1,dl Adjust year and 003370 aa 000555 2350 07 11-69 lda 365,dl day numbers.  11-70  003371 0a 003444 0560 00 11-71 asq rdclock.year Add in years complete.  003372 aa 000000 6260 00 11-72 eax6 0 search for correct month  003373 aa 030220 5202 01 11-73 rpt 12,1,tmi ..  003374 0a 003454 1750 16 11-74 sba montab,6 subtract off days for each month  003375 aa 777777 0750 16 11-75 ada -1,6 put back last entry 003376 aa 000001 0750 07 11-76 ada 1,dl plus one more  003377 0a 003441 7550 00 11-77 sta rdclock.day_of_month Day of month  003400 0a 003426 7020 00 11-78 tsx2 datecv convert day  11-79  003401 aa 000000 6350 16 11-80 eaa 0,6  003402 0a 003454 1350 03 11-81 sbla montab,du get index into month table  003403 aa 000022 7710 00 11-82 arl 18 ..  003404 0a 003437 7550 00 11-83 sta rdclock.month Save month number  003405 0a 003501 2360 05 11-84 ldq rdc.months-1,al Get name of month.  003406 0a 003440 7560 00 11-85 stq rdclock.month_name 003407 0a 003426 7020 00 11-86 tsx2 datecv convert month  11-87  003410 aa 000000 0244 00 11-88 mvne (),(),() edit the date and time 003411 0a 003451 070010 11-89 desc4ns date,8 003412 0a 003470 000014 11-90 desc9a datedit,12  003413 0a 003452 020014 11-91 desc6a rdctime,12  11-92  003414 0a 003445 2360 00 11-93 ldq rdclock.day_of_century 003415 aa 000002 0760 07 11-94 adq 2,dl Bump Tuesday into place.  003416 aa 000007 5060 07 11-95 div 7,dl  003417 0a 003442 7550 00 11-96 sta rdclock.day_of_week  003420 0a 003473 2360 05 11-97 ldq rdc.days,al Get name of day.  003421 0a 003443 7560 00 11-98 stq rdclock.day_name  11-99  003422 0a 003452 2370 00 11-100 ldaq rdctime get conversion in AQ  003423 0a 003423 6220 00 11-101 datx2: eax2 * restore XR's  003424 0a 003424 6200 00 11-102 eax0 * ..  003425 aa 000000 7100 12 11-103 tra 0,2 return to caller 11-104  11-105  003426 0a 003450 7550 00 11-106 datecv: sta datenum save number  11-107  003427 aa 000017 3014 00 11-108 btd (),(x7) convert into proper place  003430 0a 003450 000004 11-109 desc9a datenum,4  003431 0a 003451 070002 11-110 desc4ns date,2 11-111  003432 aa 777776 6270 17 11-112 eax7 -2,7 move offset index  003433 aa 000000 7100 12 11-113 tra 0,2 and return  11-114  11-115 "  11-116 " Usefull outside visible variables rdclock.xxxxx  11-117  003434 11-118 rdclock.hr: 003434 11-119 bss ,1 003435 11-120 rdclock.min:  003435 11-121 bss ,1 003436 11-122 rdclock.sec:  003436 11-123 bss ,1 003437 11-124 rdclock.month:  003437 11-125 bss ,1 003440 11-126 rdclock.month_name: 003440 11-127 bss ,1 003441 11-128 rdclock.day_of_month:  003441 11-129 bss ,1 003442 11-130 rdclock.day_of_week:  003442 11-131 bss ,1 003443 11-132 rdclock.day_name:  003443 11-133 bss ,1 003444 11-134 rdclock.year:  003444 11-135 bss ,1 003445 11-136 rdclock.day_of_century: 003445 11-137 bss ,1 003446 11-138 rdclock.zone_temp:  003446 aa 000000 000005 11-139 dec 5  003447 11-140 rdclock.zone_name:  003447 aa 145 163 164 040 11-141 aci 'est ' 11-142  003450 11-143 datenum: bss ,1 003451 11-144 date: bss ,1  11-145  11-146 even  003452 11-147 rdctime: bss ,2 11-148  003454 aa 000000 000037 11-149 montab: dec 31,28,31,30,31,30,31,31,30,31,30,31 003455 aa 000000 000034 003456 aa 000000 000037 003457 aa 000000 000036 003460 aa 000000 000037 003461 aa 000000 000036 003462 aa 000000 000037 003463 aa 000000 000037 003464 aa 000000 000036 003465 aa 000000 000037 003466 aa 000000 000036 003467 aa 000000 000037 11-150  003470 aa 401020 102260 11-151 datedit: vfd 9/lte+1,o9/20,9/mvzb+2,9/insp,o9/61,9/mvc+2,9/insm+1,9/mvc+2  003471 aa 061322 021322 003472 aa 260015 322021 11-152 vfd 9/insp,o9/15,9/mvc+2,9/insm+1  11-153  003473 aa 163 165 156 040 11-154 rdc.days: aci 'sun mon tue wed thurfri sat '  003474 aa 155 157 156 040 003475 aa 164 165 145 040 003476 aa 167 145 144 040 003477 aa 164 150 165 162 003500 aa 146 162 151 040 003501 aa 163 141 164 040 11-155  003502 11-156 rdc.months:  003502 aa 152 141 156 040 11-157 aci 'jan feb mar apr may jun jul aug septoct nov dec ' 003503 aa 146 145 142 040 003504 aa 155 141 162 040 003505 aa 141 160 162 040 003506 aa 155 141 171 040 003507 aa 152 165 156 040 003510 aa 152 165 154 040 003511 aa 141 165 147 040 003512 aa 163 145 160 164 003513 aa 157 143 164 040 003514 aa 156 157 166 040 003515 aa 144 145 143 040 11-158  11-159 " End of include file ...... rdclock.incl.alm  11-160  834 include bos_sdw  12-1 "  12-2 " BEGIN INCLUDE FILE sdw.incl.alm 02/12/74  12-3 "  000014 12-4 equ sdw.add_shift,12  007000 12-5 bool sdw.r1,007000 Ringbrack 1 (DL)  000700 12-6 bool sdw.r2,000700 Ringbrack 2 (DL)  000070 12-7 bool sdw.r3,000070 Ringbrack 3 (DL)  12-8  000004 12-9 bool sdw.df,000004 Directed fault bit (0 -> fault)  000003 12-10 bool sdw.fault_code,000003 Number of directed fault  12-11  377770 12-12 bool sdw.bound,377770 Bound field (DU)  000004 12-13 bool sdw.read,000004 Read permission bit (DU) 000002 12-14 bool sdw.execute,000002 Execute permission bit (DU)  000001 12-15 bool sdw.write,000001 Write permission bit (DU)  12-16  400000 12-17 bool sdw.privileged,400000 Privileged bit (DL) 200000 12-18 bool sdw.unpaged,200000 Unpaged bit (DL)  100000 12-19 bool sdw.entry_bound_sw,100000 Entry bound switch (DL) 040000 12-20 bool sdw.cache,040000 Cache enabled bit (DL)  037777 12-21 bool sdw.entry_bound,037777 Entry bound (DL)  12-22  12-23 "  12-24 " END INCLUDE FILE sdw.incl.alm  12-25 "  835 include mc  13-1 "  13-2 " BEGIN INCLUDE FILE mc.incl.alm 6/72 SHW 13-3 " Modified 8/80 by J. A. Bush for dps8/70M CPU  13-4 "  13-5  13-6 " General layout of data items. 13-7  000000 13-8 equ mc.prs,0 pointer registers  000020 13-9 equ mc.regs,16 registers  000030 13-10 equ mc.scu,24 SCU data  000050 13-11 equ mc.eis_info,40 pointers and lengths for EIS  13-12  13-13 " Temporary storage for software  13-14  000040 13-15 equ mc.mask,32 system controller mask at time of fault 000042 13-16 equ mc.ips_temp,34 temporary storage for IPS info  000043 13-17 equ mc.errcode,35 error code  000044 13-18 equ mc.fim_temp,36 temporary to hold fault index and unique index  000045 13-19 equ mc.fault_reg,37 fault register 000046 13-20 equ mc.fault_time,38 time of fault 000046 13-21 equ mc.cpu_type_word,38 CPU type from rsw (2). overlays part of time word 300000 13-22 bool mc.cpu_type_mask,300000 DU  000046 13-23 equ mc.ext_fault_reg,38 ext fault reg for dps8. overlays part of time word 077774 13-24 bool mc.ext_fault_reg_mask,77774 DU  000003 13-25 equ mc.cpu_type_shift,3 positions to shift right or left  13-26  13-27  13-28  13-29 " SCU DATA 13-30  13-31 " WORD (0) PROCEDURE POINTER REGISTER 13-32  000030 13-33 equ mc.scu.ppr.prr_word,24 Procedure Ring Register 000000 13-34 equ scu.ppr.prr_word,0 700000 13-35 bool scu.ppr.prr_mask,700000 DU  000041 13-36 equ scu.ppr.prr_shift,33  13-37  000030 13-38 equ mc.scu.ppr.psr_word,24 Procedure Segment Register  000000 13-39 equ scu.ppr.psr_word,0 077777 13-40 bool scu.ppr.psr_mask,077777 DU  000022 13-41 equ scu.ppr.psr_shift,18  13-42  000030 13-43 equ mc.scu.ppr.p_word,24 Procedure Privileged Bit  000000 13-44 equ scu.ppr.p_word,0  400000 13-45 bool scu.ppr.p,400000 DL  13-46  13-47 " APPENDING UNIT STATUS  000030 13-48 equ mc.scu.apu_stat_word,24 APPENDING UNIT STATUS  000000 13-49 equ scu.apu_stat_word,0  13-50  200000 13-51 bool scu.apu.xsf,200000 DL - Ext Seg Flag - IT mod.  100000 13-52 bool scu.apu.sdwm,100000 DL - Match in SDW Ass. Mem.  040000 13-53 bool scu.apu.sd_on,040000 DL - SDW Ass. Mem. ON  020000 13-54 bool scu.apu.ptwm,020000 DL - Match in PTW Ass. Mem.  010000 13-55 bool scu.apu.pt_on,010000 DL - PTW Ass. Mem. ON  004000 13-56 bool scu.apu.pi_ap,004000 DL - Instr fetch or Append cycle 002000 13-57 bool scu.apu.dsptw,002000 DL - Fetch of DSPTW  001000 13-58 bool scu.apu.sdwnp,001000 DL - Fetch of SDW non-paged  000400 13-59 bool scu.apu.sdwp,000400 DL - Fetch of SDW paged  000200 13-60 bool scu.apu.ptw,000200 DL - Fetch of PTW 000100 13-61 bool scu.apu.ptw2,000100 DL - Fetch of pre-paged PTW 000040 13-62 bool scu.apu.fap,000040 DL - Fetch of final address paged 000020 13-63 bool scu.apu.fanp,000020 DL - Fetch final address non-paged  000010 13-64 bool scu.apu.fabs,000010 DL - Fetch of final address absolute 13-65  000030 13-66 equ mc.scu.fault_cntr_word,24 Num of retrys of EIS instructions.  000000 13-67 equ scu.fault_cntr_word,0 13-68  000007 13-69 bool scu.fault_cntr_mask,000007  13-70  13-71  13-72 " WORD (1) FAULT DATA 13-73  000031 13-74 equ mc.scu.fault_data_word,25 FAULT DATA  000001 13-75 equ scu.fault_data_word,1  13-76  400000 13-77 bool scu.fd.iro,400000 DU - Illegal Ring Order  200000 13-78 bool scu.fd.oeb,200000 DU - Not In Execute Bracket  100000 13-79 bool scu.fd.e_off,100000 DU - No Execute 040000 13-80 bool scu.fd.orb,040000 DU - Not In Read Bracket  020000 13-81 bool scu.fd.r_off,020000 DU - No Read  010000 13-82 bool scu.fd.owb,010000 DU - Not In Write Bracket  004000 13-83 bool scu.fd.w_off,004000 DU - No Write  002000 13-84 bool scu.fd.no_ga,002000 DU - Not A Gate  001000 13-85 bool scu.fd.ocb,001000 DU - Not in Call Bracket  000400 13-86 bool scu.fd.ocall,000400 DU - Outward Call  000200 13-87 bool scu.fd.boc,000200 DU - Bad Outward Call  000100 13-88 bool scu.fd.inret,000100 DU - Inward Return  000040 13-89 bool scu.fd.crt,000040 DU - Cross Ring Transfer  000020 13-90 bool scu.fd.ralr,000020 DU - Ring Alarm 000010 13-91 bool scu.fd.am_er,000010 DU - Assoc. Mem. Fault  000004 13-92 bool scu.fd.oosb,000004 DU - Out Of Bounds  000002 13-93 bool scu.fd.paru,000002 DU - Parity Upper 000001 13-94 bool scu.fd.parl,000001 DU - Parity Lower 13-95  400000 13-96 bool scu.fd.onc_1,400000 DL - Op Not Complete 200000 13-97 bool scu.fd.onc_2,200000 DL - Op Not Complete 13-98  13-99 " GROUP II FAULT DATA  400000 13-100 bool scu.fd.isn,400000 DU - Illegal Segment Number  200000 13-101 bool scu.fd.ioc,200000 DU - Illegal Op Code  100000 13-102 bool scu.fd.ia_im,100000 DU - Illegal Addr - Modifier 040000 13-103 bool scu.fd.isp,040000 DU - Illegal Slave Procedure  020000 13-104 bool scu.fd.ipr,020000 DU - Illegal Procedure 010000 13-105 bool scu.fd.nea,010000 DU - Non Existent Address  004000 13-106 bool scu.fd.oobb,004000 DU - Out Of Bounds  13-107  000031 13-108 equ mc.scu.port_stat_word,25 PORT STATUS  000001 13-109 equ scu.port_stat_word,1  13-110  170000 13-111 bool scu.ial_mask,170000 DL - Illegal Action Lines  000014 13-112 equ scu.ial_shift,12  13-113  007000 13-114 bool scu.iac_mask,007000 DL - Illegal Action Channel  000011 13-115 equ scu.iac_shift,9  13-116  000700 13-117 bool scu.con_chan_mask,000700 DL - Connect Channel 000006 13-118 equ scu.con_chan_shift,6  13-119  000076 13-120 bool scu.fi_num_mask,000076 DL - Fault / Interrupt Number 000001 13-121 equ scu.fi_num_shift,1 13-122  000001 13-123 bool scu.fi_flag_mask,000001 DL - Fault / Interrupt Flag  13-124  13-125  13-126 " WORD (2) TEMPORARY POINTER REGISTER 13-127  000032 13-128 equ mc.scu.tpr.trr_word,26 Temporary Ring Register 000002 13-129 equ scu.tpr.trr_word,2 700000 13-130 bool scu.tpr.trr_mask,700000 DU  000041 13-131 equ scu.tpr.trr_shift,33  13-132  000032 13-133 equ mc.scu.tpr.tsr_word,26 Temporary Segment Register  000002 13-134 equ scu.tpr.tsr_word,2 077777 13-135 bool scu.tpr.tsr_mask,077777 DU  000022 13-136 equ scu.tpr.tsr_shift,18  13-137  000032 13-138 equ mc.scu.cpu_no_word,26 CPU Number  000002 13-139 equ scu.cpu_no_word,2  13-140  000700 13-141 bool scu.cpu_no_mask,000700 DL 000006 13-142 equ scu.cpu_shift,6  13-143  000032 13-144 equ mc.scu.delta_word,26 Tally Modification DELTA  000002 13-145 equ scu.delta_word,2  13-146  000077 13-147 bool scu.delta_mask,000077 DL  13-148  13-149  13-150 " WORD (3) TSR STATUS 13-151  000033 13-152 equ mc.scu.tsr_stat_word,27 TSR STATUS for 1,2, and 3  000003 13-153 equ scu.tsr_stat_word,3 Word Instructions 13-154  777700 13-155 bool scu.tsr_stat_mask,777700 DL - All of Status  000006 13-156 equ scu.tsr_stat_shift,6  13-157  740000 13-158 bool scu.tsna_mask,740000 DL - Word 1 Status  700000 13-159 bool scu.tsna.prn_mask,700000 DL - Word 1 PR num  000017 13-160 equ scu.tsna.prn_shift,15  040000 13-161 bool scu.tsna.prv,040000 DL - Word 1 PR valid bit 13-162  036000 13-163 bool scu.tsnb_mask,036000 DL - Word 2 Status  034000 13-164 bool scu.tsnb.prn_mask,034000 DL - Word 2 PR num  000013 13-165 equ scu.tsnb.prn_shift,11  002000 13-166 bool scu.tsnb.prv,002000 DL - Word 2 PR valid bit 13-167  000013 13-168 bool scu.tsnc_mask,0013 DL - Word 3 Status  001600 13-169 bool scu.tsnc.prn_mask,001600 DL - Word 3 PR num  000007 13-170 equ scu.tsnc.prn_shift,7  000100 13-171 bool scu.tsnc.prv,000100 DL - Word 3 PR valid bit 13-172  13-173  000033 13-174 equ mc.scu.tpr.tbr_word,27 TPR.TBR Field  000003 13-175 equ scu.tpr.tbr_word,3 13-176  000077 13-177 bool scu.tpr.tbr_mask,000077 DL  13-178  13-179  13-180 " WORD (4) INSTRUCTION COUNTER  13-181  000034 13-182 equ mc.scu.ilc_word,28 INSTRUCTION COUNTER  000004 13-183 equ scu.ilc_word,4 000022 13-184 equ scu.ilc_shift,18  13-185  000034 13-186 equ mc.scu.indicators_word,28 INDICATOR REGISTERS 000004 13-187 equ scu.indicators_word,4  13-188  400000 13-189 bool scu.ir.zero,400000 DL - Zero Indicator  200000 13-190 bool scu.ir.neg,200000 DL - Negative Indicator  100000 13-191 bool scu.ir.carry,100000 DL - Carry Indicator 040000 13-192 bool scu.ir.ovfl,040000 DL - Overflow Indicator  020000 13-193 bool scu.ir.eovf,020000 DL - Exponent Overflow Ind  010000 13-194 bool scu.ir.eufl,010000 DL - Exponent Underflow Ind  004000 13-195 bool scu.ir.oflm,004000 DL - Overflow Mask Indicator  002000 13-196 bool scu.ir.tro,002000 DL - Tally Runout Indicator  001000 13-197 bool scu.ir.par,001000 DL - Parity Indicator 000400 13-198 bool scu.ir.parm,000400 DL - Parity Mask Indicator  000200 13-199 bool scu.ir.bm,000200 DL - Bar Mode Indicator  000100 13-200 bool scu.ir.tru,000100 DL - Truncation Indicator  000040 13-201 bool scu.ir.mif,000040 DL - Multiword Indicator  000020 13-202 bool scu.ir.abs,000020 DL - Absolute Indicator  13-203  13-204  13-205 " WORD (5) COMPUTED ADDRESS  13-206  000035 13-207 equ mc.scu.ca_word,29 COMPUTED ADDRESS  000005 13-208 equ scu.ca_word,5  000022 13-209 equ scu.ca_shift,18  13-210  000035 13-211 equ mc.scu.cu_stat_word,29 CONTROL UNIT STATUS 000005 13-212 equ scu.cu_stat_word,5 13-213  400000 13-214 bool scu.cu.rf,400000 DL - Repeat First  13-215 " On First Cycle of Repeat Inst.  200000 13-216 bool scu.cu.rpt,200000 DL - Repeat Instruction  100000 13-217 bool scu.cu.rd,100000 DL - Repeat Double Instr.  040000 13-218 bool scu.cu.rl,040000 DL - Repeat Link Instr.  13-219  020000 13-220 bool scu.cu.pot,020000 DL - IT Modification  010000 13-221 bool scu.cu.pon,010000 DL - Return Type Instruction  13-222  004000 13-223 bool scu.cu.xde,004000 DL - XDE from Even Location  002000 13-224 bool scu.cu.xdo,002000 DL - XDE from Odd Location  13-225  001000 13-226 bool scu.cu.poa,001000 DL - Operand Preparation  000400 13-227 bool scu.cu.rfi,000400 DL - Tells CPU to refetch instruction  13-228 " This Bit Not Used (000200)  000100 13-229 bool scu.cu.if,000100 DL - Fault occurred during instruction fetch  13-230  000035 13-231 equ mc.scu.cpu_tag_word,29 Computed Tag Field  000005 13-232 equ scu.cpu_tag_word,5 13-233  000007 13-234 bool scu.cpu_tag_mask,000007 DL  13-235  13-236  13-237 " WORDS (6,7) INSTRUCTIONS 13-238  000036 13-239 equ scu.even_inst_word,30 Even Instruction 13-240  000037 13-241 equ scu.odd_inst_word,31 Odd Instruction  13-242  13-243  13-244 " END INCLUDE FILE incl.alm 836 include bos_tv 14-1 " 14-2 " Begin include file ...... bos_tv.incl.alm 14-3 " Created in November 1971 by N. I. Morris. 14-4 " Modified 9/9/76 by Noel I. Morris 14-5 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 14-6 " Modified November 1981 by C. Hornig to remove iom_connect_rel.  14-7 " Modified January 1982 by J. Bongiovanni to add getport_info  14-8 " Modified May 1982 by Sherman D. Sprague to add getmpc.  14-9  14-10 " BOS Utility Package Transfer Vector.  14-11  012000 14-12 equ pagectl,utilorg  012001 14-13 equ line,pagectl+1 012040 14-14 equ arg,line+31  012060 14-15 equ darg,arg+arglen+1  012100 14-16 equ earg,darg+arglen+1 012120 14-17 equ fltscu,earg+arglen+1  14-18  012200 14-19 equ tv_org,utilorg+128 14-20  012200 14-21 equ scan,tv_org+0  012201 14-22 equ arg_count,tv_org+1 012202 14-23 equ nextline,tv_org+2  012203 14-24 equ nlraw,tv_org+3 012204 14-25 equ search,tv_org+4  012205 14-26 equ makefil,tv_org+5  012206 14-27 equ ldcom,tv_org+6 012207 14-28 equ getsec,tv_org+7  012210 14-29 equ cvinit,tv_org+8  012211 14-30 equ rdev,tv_org+9  012212 14-31 equ wdev,tv_org+10 012213 14-32 equ phybos,tv_org+11  012214 14-33 equ bosphy,tv_org+12  012215 14-34 equ phyadd,tv_org+13  012216 14-35 equ mulbos,tv_org+14  012217 14-36 equ bosmul,tv_org+15  012220 14-37 equ lookup_devmodel,tv_org+16  012221 14-38 equ makesdw,tv_org+17  012222 14-39 equ argbos,tv_org+18  012223 14-40 equ argmul,tv_org+19  012224 14-41 equ amdvt,tv_org+20  012225 14-42 equ amfirst,tv_org+21  012226 14-43 equ amlast,tv_org+22  012227 14-44 equ cvnamla,tv_org+23  012230 14-45 equ sect_per_cyl_list,tv_org+24  012231 14-46 equ sect_per_dev_list,tv_org+25  012232 14-47 equ rec_per_dev_list,tv_org+26 012233 14-48 equ amaxio,tv_org+27  012234 14-49 equ rdsec,tv_org+28  012235 14-50 equ wtsec,tv_org+29  012236 14-51 equ disk_brief,tv_org+30  012237 14-52 equ itaper,tv_org+31  012240 14-53 equ itapew,tv_org+32  012241 14-54 equ erpt,tv_org+33 012242 14-55 equ ercv,tv_org+34 012243 14-56 equ erbuf,tv_org+35  012244 14-57 equ type,tv_org+36 012245 14-58 equ ttyinit,tv_org+37  012246 14-59 equ readcd,tv_org+38  012247 14-60 equ readtty,tv_org+39  012250 14-61 equ getprt,tv_org+40  012251 14-62 equ punch,tv_org+41  012252 14-63 equ octwd,tv_org+42  012253 14-64 equ geas,tv_org+43 012254 14-65 equ geastab,tv_org+44  012255 14-66 equ asge,tv_org+45 012256 14-67 equ asgetab,tv_org+46  012257 14-68 equ ljust,tv_org+47  012260 14-69 equ rjust,tv_org+48  012261 14-70 equ bzel,tv_org+49 012262 14-71 equ stripa,tv_org+50  012263 14-72 equ stripg,tv_org+51  012264 14-73 equ getconf,tv_org+52  012265 14-74 equ getmore,tv_org+53  012266 14-75 equ getperiph,tv_org+54  012267 14-76 equ rdclock,tv_org+55  012270 14-77 equ cvclock,tv_org+56  012271 14-78 equ init_io,tv_org+57  012272 14-79 equ connect_iom,tv_org+58  012273 14-80 equ getmpc,tv_org+59  012274 14-81 equ check_status,tv_org+60 012275 14-82 equ get_special_interrupt,tv_org+61  012276 14-83 equ get_status_interrupt,tv_org+62 012277 14-84 equ xio_wait,tv_org+63 012300 14-85 equ initint,tv_org+64  012301 14-86 equ wantflt,tv_org+65  012302 14-87 equ intno,tv_org+66  012303 14-88 equ intrpts1,tv_org+67 012304 14-89 equ hexwd,tv_org+68  012305 14-90 equ find_disk,tv_org+69  012306 14-91 equ find_root,tv_org+70  012307 14-92 equ find_part,tv_org+71  012310 14-93 equ check_status_no_stat,tv_org+72 012311 14-94 equ check_special_status,tv_org+73 012312 14-95 equ check_cpu_type,tv_org+74  012313 14-96 equ getportinfo,tv_org+75  14-97  14-98 " End of include file ...... bos_tv.incl.alm  14-99  837 include bos_common 15-1 "  15-2 " Begin include file ...... bos_common.incl.alm 15-3 " Modified on 8/31/76 by N. I. Morris  15-4 " Modified on 9/01/80 by Sherman D. Sprague for DPS8 operation  15-5 " Modified on 5/26/82 by Sherman D. Sprague to lengthen config size 15-6 " Modified on 3/01/83 by Sherman D. Sprague to lengthen dirlen  15-7 " MACHINE CONDITIONS AREA  15-8 " Its length is "storlen". 15-9  000000 15-10 equ amptwregs,0 Ass. Mem PTW registers  000100 15-11 equ amptwptr,64 Ass. Mem PTW pointers 000200 15-12 equ amsdwregs,128 Ass. Mem SDW registers  000400 15-13 equ amsdwptr,256 Ass. Mem SDW pointers  000500 15-14 equ ouhist,320 operations hist regs  000700 15-15 equ cuhist,448 control unit hist regs  001100 15-16 equ eishist,576 eis hist regs  001300 15-17 equ aphist,704 appending unit hist regs  001500 15-18 equ prs,832 pointer regs  001520 15-19 equ regs,848 sreg 001530 15-20 equ low_order_port,856 port to read clock from 001532 15-21 equ mctime,858 bootload memory clock  001540 15-22 equ scu,864  001550 15-23 equ mcm,872 memory masks 8 ports 001570 15-24 equ dbr,888  001572 15-25 equ intrpts,890 waiting interrupts 001573 15-26 equ bar,891 bar  001574 15-27 equ modereg,892 processor & cache mode registers  001576 15-28 equ faultreg,894 processor fault register  001600 15-29 equ ptrlen,896 pointer-lengths EIS 0 mod 8 001610 15-30 equ coreblocks,904 array of port information  15-31 " Bits 0-17 => num 1st 64-word block  15-32 " Bits 18-35 => num of 64-word blocks  15-33 " (-1) => no mem on this port  001620 15-34 equ lowport_cfg,912 Saved CFG from bootload SCU  15-35  002000 15-36 equ storlen,1024  15-37  15-38  15-39  15-40 " BOS COMMAND DIRECTORY 15-41 " Its length is "dirlen".  15-42  002000 15-43 equ dir,1024 ( 0-23) => sector # of first sector on BOS disk  15-44 " (24-35) => # of sectors in BOS common  002001 15-45 equ used,dir+1 ( 0-23) => # of next available sector on BOS disk  002002 15-46 equ useable,dir+2 ( 0-23) => first unavailable sector on BOS disk  002003 15-47 equ corearea,dir+3 ( 0-23) => starting sector of Multics core image  15-48 " (24-35) => # of sectors in Multics core image  002004 15-49 equ setuparea,dir+4 Sector and length of setup 002005 15-50 equ utilarea,dir+5 where utility package is kept  002010 15-51 equ iom_mxbase,dir+8 IOM IMW area address  002011 15-52 equ iom_mbbase,dir+9 IOM mailbox base  002012 15-53 equ bos_dvt,dir+10 BOS disk loc: (o3/iom,o6/chn,o9/drive,o18/devtype)  002013 15-54 equ unitgroup,dir+11 disk unitgroup (device no. or area no.)  002014 15-55 equ diskchanno,dir+12 channel to be used for disk  002015 15-56 equ tapechanno,dir+13 channel # for tapes  002016 15-57 equ rdrchanno,dir+14 channel number for card reader  002017 15-58 equ ttychanno,dir+15 channel # for operator's tty  002020 15-59 equ quietsw,dir+16 if on, don't print card and macro commands  002021 15-60 equ inputsw,dir+17 read from tty, cards, macros  002022 15-61 equ macroloc,dir+18 disk addr, buffer index of macro file  002023 15-62 equ fdump_state,dir+19 completion flag for last FDUMP  002024 15-63 equ d355_state,dir+20 = 1 if DataNet 355 loaded successfully  002025 15-64 equ skipsw,dir+21 if on, skip runcom lines 002026 15-65 equ ttypmtsw,dir+22 if on, prompt  002027 15-66 equ curtcmd,dir+23 current bos command 002030 15-67 equ readysw,dir+24 if on, print ready message  002032 15-68 equ cmdlst,dir+26 list of commands 15-69  000600 15-70 equ dirlen,384 15-71  15-72  15-73  15-74 " MACRO BUFFER AREA 15-75  002600 15-76 equ macrobuf,dir+dirlen io buffer for macro files 002700 15-77 equ macroline,macrobuf+64 runcom command line 002716 15-78 equ macroargs,macroline+14 argument descriptors for runcom  15-79  15-80  15-81  15-82 " CONFIGURATION CARD AREA  15-83 " Its length is 2048 words.  15-84  003000 15-85 equ conf,macrobuf+128 start of configuration info  007000 15-86 equ econf,conf+2048 end of configuration info  000020 15-87 equ confl,16 length of each line  15-88  15-89  007000 15-90 equ seg6length,econf length of bos_common area segment 15-91  15-92 " End of include file ...... bos_common.incl.alm  15-93  838 end  LITERALS 003516 aa 151156 164153 003517 aa 167141 162155 003520 aa 400000 000002 003521 aa 020000 000000 003522 aa 777777 777777 003523 aa 202066 215144 003524 aa 202023 464324 003525 aa 143157 154144 003526 aa 143160 165040 003527 aa 151157 155040 003530 aa 155145 155040 003531 aa 143154 157153 003532 aa 000003 641100 003533 aa 777717 171717 003534 aa 702562 202020 003535 aa 454620 202020 003536 aa 670314 355245 003537 aa 777777 770000 003540 aa 000001 200000 003541 aa 234645 633145 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 003542 5a 000003 000000 003543 5a 000017 600000 003544 aa 000000 000000 003545 55 000010 000002 003546 5a 000002 400003 003547 55 000006 000010 003550 aa 004 142 157 157 003551 aa 164 000 000 000 003552 55 000002 000003 003553 6a 000000 400002 003554 55 000013 000003 003555 aa 014 163 171 155 symbol_table  003556 aa 142 157 154 137 003557 aa 164 141 142 154 003560 aa 145 000 000 000 DEFINITIONS HASH TABLE  003561 aa 000000 000015 003562 aa 000000 000000 003563 aa 000000 000000 003564 aa 000000 000000 003565 aa 000000 000000 003566 aa 000000 000000 003567 aa 000000 000000 003570 5a 000010 000000 003571 aa 000000 000000 003572 aa 000000 000000 003573 aa 000000 000000 003574 aa 000000 000000 003575 aa 000000 000000 003576 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  003577 aa 000001 000000 003600 aa 000000 000000 INTERNAL EXPRESSION WORDS 003601 aa 000000 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 003542 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000010 000007 a2 000000 000000 SYMBOL INFORMATION SYMBOL TABLE HEADER  000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000004 000004 aa 000000 112143 000005 aa 305203 523135 000006 aa 000000 112272 000007 aa 234175 754375 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000100 000002 000016 aa 000064 000000 000017 aa 000000 000623 000020 aa 000000 000374 000021 aa 000000 000600 000022 aa 000603 000374 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 040066 056066 000030 aa 040040 116157 000031 aa 166145 155142 000032 aa 145162 040061 000033 aa 071070 062040 000034 aa 110157 154155 000035 aa 163164 145144 000036 aa 164056 123171 000037 aa 163115 141151 000040 aa 156164 056141 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 154151 163164 000045 aa 040040 040040 000046 aa 040040 040040 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 040040 040040 000057 aa 040040 040040 000060 aa 040040 040040 000061 aa 040040 040040 000062 aa 040040 040040 000063 aa 040040 040040 000064 aa 000000 000001 000065 aa 000000 000020 000066 aa 000166 000025 000067 aa 122721 273221 000070 aa 000000 112272 000071 aa 216406 400000 000072 aa 000174 000032 000073 aa 112375 747474 000074 aa 000000 111240 000075 aa 207532 000000 000076 aa 000203 000046 000077 aa 112375 747473 000100 aa 000000 111240 000101 aa 207531 200000 000102 aa 000215 000045 000103 aa 112375 747472 000104 aa 000000 111240 000105 aa 207531 200000 000106 aa 000227 000040 000107 aa 113400 415301 000110 aa 000000 111341 000111 aa 220414 400000 000112 aa 000237 000042 000113 aa 101301 045475 000114 aa 000000 110133 000115 aa 352304 600000 000116 aa 000250 000032 000117 aa 112375 747471 000120 aa 000000 111240 000121 aa 207531 200000 000122 aa 000257 000042 000123 aa 110044 377556 000124 aa 000000 111005 000125 aa 417043 600000 000126 aa 000270 000046 000127 aa 110044 377561 000130 aa 000000 111005 000131 aa 417071 200000 000132 aa 000302 000037 000133 aa 110044 377547 000134 aa 000000 111005 000135 aa 417017 600000 000136 aa 000312 000043 000137 aa 043243 127523 000140 aa 000000 101621 000141 aa 351624 000000 000142 aa 000323 000041 000143 aa 102324 451016 000144 aa 000000 110235 000145 aa 732232 200000 000146 aa 000334 000041 000147 aa 105543 476637 000150 aa 000000 110555 000151 aa 260135 200000 000152 aa 000345 000030 000153 aa 077377 110471 000154 aa 000000 107737 000155 aa 746246 400000 000156 aa 000353 000040 000157 aa 110235 072677 000160 aa 000000 111024 000161 aa 524460 600000 000162 aa 000363 000044 000163 aa 121622 277475 000164 aa 000000 112162 000165 aa 321563 400000 000166 aa 076163 160145 >spec>h>3.17>boot.alm  000167 aa 143076 150076 000170 aa 063056 061067 000171 aa 076142 157157 000172 aa 164056 141154 000173 aa 155040 040040 000174 aa 076154 144144 >ldd>include>mstr.incl.alm  000175 aa 076151 156143 000176 aa 154165 144145 000177 aa 076155 163164 000200 aa 162056 151156 000201 aa 143154 056141 000202 aa 154155 040040 000203 aa 076154 144144 >ldd>include>make_data_macros.incl.alm  000204 aa 076151 156143 000205 aa 154165 144145 000206 aa 076155 141153 000207 aa 145137 144141 000210 aa 164141 137155 000211 aa 141143 162157 000212 aa 163056 151156 000213 aa 143154 056141 000214 aa 154155 040040 000215 aa 076154 144144 >ldd>include>iom_word_macros.incl.alm  000216 aa 076151 156143 000217 aa 154165 144145 000220 aa 076151 157155 000221 aa 137167 157162 000222 aa 144137 155141 000223 aa 143162 157163 000224 aa 056151 156143 000225 aa 154056 141154 000226 aa 155040 040040 000227 aa 076154 144144 >ldd>bos>include>bosequ.incl.alm  000230 aa 076142 157163 000231 aa 076151 156143 000232 aa 154165 144145 000233 aa 076142 157163 000234 aa 145161 165056 000235 aa 151156 143154 000236 aa 056141 154155 000237 aa 076154 144144 >ldd>include>fault_vector.incl.alm  000240 aa 076151 156143 000241 aa 154165 144145 000242 aa 076146 141165 000243 aa 154164 137166 000244 aa 145143 164157 000245 aa 162056 151156 000246 aa 143154 056141 000247 aa 154155 040040 000250 aa 076154 144144 >ldd>include>fgbx.incl.alm  000251 aa 076151 156143 000252 aa 154165 144145 000253 aa 076146 147142 000254 aa 170056 151156 000255 aa 143154 056141 000256 aa 154155 040040 000257 aa 076154 144144 >ldd>include>fs_vol_label.incl.alm  000260 aa 076151 156143 000261 aa 154165 144145 000262 aa 076146 163137 000263 aa 166157 154137 000264 aa 154141 142145 000265 aa 154056 151156 000266 aa 143154 056141 000267 aa 154155 040040 000270 aa 076154 144144 >ldd>include>old_fs_vol_label.incl.alm  000271 aa 076151 156143 000272 aa 154165 144145 000273 aa 076157 154144 000274 aa 137146 163137 000275 aa 166157 154137 000276 aa 154141 142145 000277 aa 154056 151156 000300 aa 143154 056141 000301 aa 154155 040040 000302 aa 076154 144144 >ldd>include>disk_pack.incl.alm 000303 aa 076151 156143 000304 aa 154165 144145 000305 aa 076144 151163 000306 aa 153137 160141 000307 aa 143153 056151 000310 aa 156143 154056 000311 aa 141154 155040 000312 aa 076154 144144 >ldd>include>eis_micro_ops.incl.alm 000313 aa 076151 156143 000314 aa 154165 144145 000315 aa 076145 151163 000316 aa 137155 151143 000317 aa 162157 137157 000320 aa 160163 056151 000321 aa 156143 154056 000322 aa 141154 155040 000323 aa 076154 144144 >ldd>bos>include>rdclock.incl.alm  000324 aa 076142 157163 000325 aa 076151 156143 000326 aa 154165 144145 000327 aa 076162 144143 000330 aa 154157 143153 000331 aa 056151 156143 000332 aa 154056 141154 000333 aa 155040 040040 000334 aa 076154 144144 >ldd>bos>include>bos_sdw.incl.alm  000335 aa 076142 157163 000336 aa 076151 156143 000337 aa 154165 144145 000340 aa 076142 157163 000341 aa 137163 144167 000342 aa 056151 156143 000343 aa 154056 141154 000344 aa 155040 040040 000345 aa 076154 144144 >ldd>include>mc.incl.alm  000346 aa 076151 156143 000347 aa 154165 144145 000350 aa 076155 143056 000351 aa 151156 143154 000352 aa 056141 154155 000353 aa 076154 144144 >ldd>bos>include>bos_tv.incl.alm  000354 aa 076142 157163 000355 aa 076151 156143 000356 aa 154165 144145 000357 aa 076142 157163 000360 aa 137164 166056 000361 aa 151156 143154 000362 aa 056141 154155 000363 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000364 aa 076142 157163 000365 aa 076151 156143 000366 aa 154165 144145 000367 aa 076142 157163 000370 aa 137143 157155 000371 aa 155157 156056 000372 aa 151156 143154 000373 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  12233 amaxio bos_tv: 48. 12224 amdvt bos_tv: 41. 12225 amfirst bos_tv: 42. 12226 amlast bos_tv: 43. 100 amptwptr bos_common: 11. 0 amptwregs bos_common: 10. 400 amsdwptr bos_common: 13. 200 amsdwregs bos_common: 12. 1300 aphist bos_common: 17. 12040 arg bos_tv: 14, 15.  12222 argbos bos_tv: 39. 17 arglen boot: 112, 156,  bosequ: 17, bos_tv: 15, 16, 17. 12223 argmul bos_tv: 40. 12201 arg_count bos_tv: 22. 12255 asge bos_tv: 66. 12256 asgetab bos_tv: 67. 1573 bar bos_common: 26. 106 barge boot: 149, 195.  47 bargl boot: 146, 152, 172, 177, 188. 2 bf boot: 254, 259, 264, 269, 290, bosequ: 9. 632 block_loop boot: 604, 610.  1027 bl_flt boot: 600, 774.  1035 bl_flt1 boot: 777, 782.  1043 bl_flt2 boot: 788, 794.  1073 bl_flt_loc boot: 783, 784, 787, 790, 810. 370 boot.no_clok_card boot: 241, 333.  463 bootable_tape.fgbx_sentinel boot: 424, 447. 14000 bootstrap1_orig boot: 52, 688.  450 boot_info.bootload_pcw boot: 399, 455, 460, 465, 471. 454 boot_info.ddcw boot: 407. 453 boot_info.idcw boot: 406, 466.  452 boot_info.info boot: 404. 473 boot_the_tape boot: 429. 12217 bosmul bos_tv: 36. 12214 bosphy bos_tv: 33. 2012 bos_dvt bos_common: 53. 12261 bzel bos_tv: 70. 1072 ccw boot: 126, 185, 197, 356, 361, 367, 452, 462, 487, 638, 649, 809.  460 channel_mbx_data boot: 419, 493.  12312 check_cpu_type bos_tv: 95. 12311 check_special_status bos_tv: 94. 12274 check_status bos_tv: 81. 12310 check_status_no_stat bos_tv: 93. 420 cht eis_micro_ops: 17.  150 clck0 boot: 244, 248.  221 clck1 boot: 266, 271, 279. 174 clckerr boot: 265, 270, 273. 565 clearmem boot: 547. 307 clockchk.payon boot: 299, 305.  320 clockprint boot: 287, 291, 310. 225 clock_check.query boot: 283, 308.  413 clock_check_ok boot: 280, 282, 302, 346.  406 clock_delta boot: 247, 281, 340. 2032 cmdlst bos_common: 68. 764 coldboot boot: 229, 747, 752. 6 com boot: 105, 113, 117, 119, 121, 125, 163, 166, 169, 176, 183, 227,  242, 263, 268, 286, 439, 441, 457, 498, 559, 565, 570, 624,  630, 668, 670, 671, 679, 689, 695, 697, 699, 706, 712, 724,  730, 735, 779, bosequ: 14, rdclock: 28, 30.  3000 conf boot: 496, 498, 733, 735,  bos_common: 85, 86.  1102 config_card_name boot: 767, 770, 818. 12000 config_rec_orig boot: 53, 499, 731. 20 confl bos_common: 87. 12272 connect_iom bos_tv: 79. 2003 corearea boot: 570, 624, 630, 679, 712, 730,  bos_common: 47. 1610 coreblocks boot: 559, 565, 779, bos_common: 30. 700 cuhist bos_common: 15. 2027 curtcmd bos_common: 66. 1076 cvbits boot: 144, 165, 168, 814.  12270 cvclock bos_tv: 77. 12210 cvinit boot: 79, bos_tv: 29. 12227 cvnamla bos_tv: 44. 3321 cv_clock boot: 312, rdclock: 18. 2024 d355_state bos_common: 63. 12060 darg bos_tv: 15, 16.  3451 date rdclock: 89, 110, 144. 3426 datecv rdclock: 46, 51, 78, 86, 106. 3470 datedit rdclock: 90, 151.  3450 datenum rdclock: 106, 109, 143. 3423 datx2 rdclock: 19, 20, 101. 1570 dbr bos_common: 24. 1750 DEFAULT_HCPART_SIZE disk_pack: 20. 2000 dir boot: 439, bos_common: 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56,  57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 76. 600 dirlen bos_common: 70, 76.  2014 diskchanno bos_common: 55. 12236 disk_brief bos_tv: 51. 1200 dkmbx boot: 128, 187, 674, 683, 824. 0 ds boot: 551, 553, 579, 616, 627, 778, 785, bosequ: 7. 4 DUMPER_BIT_MAP_ADDR disk_pack: 15. 12100 earg bos_tv: 16, 17.  7000 econf boot: 496, 733,  bos_common: 86, 90.  1100 eishist bos_common: 16. 40 enf eis_micro_ops: 2.  12243 erbuf bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt boot: 274, 276, 284, 288, 292, 295, 306, 313, 326, 330, 334, 380,  431, 747, 762, 768, 788, bos_tv: 54. 342 err_no_root boot: 235, 325.  354 err_root_problem boot: 251, 255, 329. 413 examine_tape_label boot: 353, 757.  1070 execint boot: 82, 802.  1576 faultreg bos_common: 28. 456 fault_channel_dcw boot: 415, 482, 484. 1207 fault_channel_dcw_addr boot: 414, 483, 485. 24 FAULT_NO_ACV fault_vector: 46.  5 FAULT_NO_CMD fault_vector: 31.  10 FAULT_NO_CON fault_vector: 34.  20 FAULT_NO_DF0 fault_vector: 42.  21 FAULT_NO_DF1 fault_vector: 43.  22 FAULT_NO_DF2 fault_vector: 44.  23 FAULT_NO_DF3 fault_vector: 45.  16 FAULT_NO_DIV fault_vector: 40.  6 FAULT_NO_DRL boot: 505, fault_vector: 32.  17 FAULT_NO_EXF fault_vector: 41.  3 FAULT_NO_F1 fault_vector: 29.  30 FAULT_NO_F2 fault_vector: 50.  31 FAULT_NO_F3 fault_vector: 51.  12 FAULT_NO_IPR fault_vector: 36.  7 FAULT_NO_LUF fault_vector: 33.  2 FAULT_NO_MME fault_vector: 28.  25 FAULT_NO_MME2 fault_vector: 47.  26 FAULT_NO_MME3 fault_vector: 48.  27 FAULT_NO_MME4 fault_vector: 49.  15 FAULT_NO_OFL fault_vector: 39.  13 FAULT_NO_ONC fault_vector: 37.  11 FAULT_NO_PAR fault_vector: 35.  0 FAULT_NO_SDF fault_vector: 26.  1 FAULT_NO_STR fault_vector: 27.  14 FAULT_NO_SUF fault_vector: 38.  37 FAULT_NO_TRB fault_vector: 53.  4 FAULT_NO_TRO fault_vector: 30.  2023 fdump_state bos_common: 62. 5 fgb boot: 218, 219, 220, 221, 222, 448,  bosequ: 13. 20000 fgbx.alert fgbx: 33. 77 fgbx.bos_entry_mask fgbx: 35. 0 fgbx.bos_entry_shift fgbx: 34. 200000 fgbx.call_bos fgbx: 30. 2 fgbx.cpus boot: 220, fgbx: 20. 400000 fgbx.flags fgbx: 16. 0 fgbx.flags_word fgbx: 15. 40 fgbx.fnp_blast fgbx: 41. 16 fgbx.hc_dbr boot: 218, fgbx: 39. 40000 fgbx.mess fgbx: 32. 20 fgbx.message fgbx: 40. 571 fgbx.ports_mask fgbx: 23. 34 fgbx.ports_shift fgbx: 22. 3 fgbx.rtb boot: 221, fgbx: 27. 4 fgbx.sentinel boot: 448, fgbx: 37. 100000 fgbx.shut fgbx: 31. 1 fgbx.slt_segno boot: 222, fgbx: 18. 400000 fgbx.ssenb fgbx: 29. 14 fgbx.sst_sdw boot: 219, fgbx: 38. 7 fgbx.tags_mask fgbx: 25. 25 fgbx.tags_shift fgbx: 24. 100 fgbx_size fgbx: 13. 12305 find_disk bos_tv: 90. 12307 find_part bos_tv: 92. 12306 find_root boot: 234, bos_tv: 91. 2000 firmware_bit bosequ: 20. 412 fixnum_hour_delta boot: 243, 279, 294, 344.  12120 fltscu bos_tv: 17. 12 fndink boot: 95. 100 fv.fpair boot: 505, fault_vector: 17.  100 fv.fpair.scu fault_vector: 19.  101 fv.fpair.tra fault_vector: 20.  500 fv.f_scu_ptr fault_vector: 24.  400 fv.f_tra_ptr fault_vector: 23.  0 fv.ipair fault_vector: 13.  0 fv.ipair.scu fault_vector: 15.  1 fv.ipair.tra fault_vector: 16.  300 fv.i_scu_ptr fault_vector: 22.  200 fv.i_tra_ptr fault_vector: 21.  600 fv_size fault_vector: 10.  45 fwd_space_file_code boot: 59, 638.  12253 geas boot: 162, bos_tv: 64. 12254 geastab bos_tv: 65. 12264 getconf boot: 96, 101, 204, 208, 212, 240,  rdclock: 26, bos_tv: 73. 12265 getmore bos_tv: 74. 12273 getmpc bos_tv: 80. 12266 getperiph bos_tv: 75. 12313 getportinfo boot: 548, bos_tv: 96. 12250 getprt bos_tv: 61. 12207 getsec bos_tv: 28. 12275 get_special_interrupt bos_tv: 82. 12276 get_status_interrupt bos_tv: 83. 355245 header_c1 boot: 373, 377,  mstr: 116. 146073 header_c2 mstr: 117. 12304 hexwd bos_tv: 89. 10 if0 eis_micro_ops: 19.  4 if1 eis_micro_ops: 20.  2 if2 eis_micro_ops: 21.  1 if3 eis_micro_ops: 22.  300 ign eis_micro_ops: 12.  12300 initint boot: 81, bos_tv: 85. 12271 init_io boot: 75, bos_tv: 78. 23 inkfnd boot: 98, 109.  2021 inputsw bos_common: 60. 220 insa eis_micro_ops: 9.  200 insb eis_micro_ops: 8.  20 insm eis_micro_ops: 1,  rdclock: 151, 152.  240 insn eis_micro_ops: 10.  260 insp eis_micro_ops: 11,  rdclock: 151, 152.  413 intact boot: 354, 368, 642, 650.  12302 intno bos_tv: 87. 1572 intrpts bos_common: 25. 12303 intrpts1 bos_tv: 88. 1400 iom_0_base_addr boot: 401, 405.  1200 iom_0_mbx_addr boot: 402, 405, 414, 422, 490. 10 iom_0_system_fault_addr boot: 410, 480.  30 iom_boot_read_loc boot: 392, 407, 477, 514.  2011 iom_mbbase boot: 457, 670,  bos_common: 52. 2010 iom_mxbase bos_common: 51. 12237 itaper boot: 360, bos_tv: 52. 12240 itapew bos_tv: 53. 705 label.disk_table_uid fs_vol_label: 59.  704 label.disk_table_vtocx fs_vol_label: 58.  715 label.dumper_bit_map_record fs_vol_label: 67. 617 label.err_hist_size fs_vol_label: 49.  706 label.esd_state fs_vol_label: 60.  0 label.flagpad_shift fs_vol_label: 37.  551 label.flagpad_word fs_vol_label: 36.  1005 label.frec fs_vol_label: 73.  0 label.gcos fs_vol_label: 18.  400000 label.here fs_vol_label: 54.  614 label.last_pvtx fs_vol_label: 48.  542 label.lvid fs_vol_label: 25.  531 label.lv_name fs_vol_label: 23.  552 label.max_access_class fs_vol_label: 39.  511 label.mfg_serial fs_vol_label: 21.  554 label.min_access_class fs_vol_label: 40.  500 label.Multics fs_vol_label: 19.  400000 label.not_used fs_vol_label: 33.  551 label.not_used_word fs_vol_label: 32.  1003 label.nparts fs_vol_label: 69.  1006 label.nrec fs_vol_label: 74.  546 label.n_pv_in_lv fs_vol_label: 28.  1004 label.part fs_vol_label: 72.  1004 label.parts fs_vol_label: 70.  556 label.password fs_vol_label: 41.  200000 label.private fs_vol_label: 35.  551 label.private_word fs_vol_label: 34.  541 label.pvid fs_vol_label: 24.  521 label.pv_name fs_vol_label: 22.  700 label.root fs_vol_label: 52.  543 label.root_pvid fs_vol_label: 26.  701 label.root_vtocx fs_vol_label: 56.  702 label.shutdown_state fs_vol_label: 57.  710 label.size_of_volmap fs_vol_label: 62.  712 label.size_of_vtoc_map fs_vol_label: 64.  620 label.time_last_dmp fs_vol_label: 50.  626 label.time_last_reloaded fs_vol_label: 51. 602 label.time_map_updated boot: 290, fs_vol_label: 43.  600 label.time_mounted fs_vol_label: 42.  610 label.time_of_boot fs_vol_label: 46.  544 label.time_registered fs_vol_label: 27.  606 label.time_salvaged fs_vol_label: 45.  612 label.time_unmounted boot: 264, fs_vol_label: 47.  510 label.version fs_vol_label: 20.  707 label.volmap_record fs_vol_label: 61.  713 label.volmap_unit_size fs_vol_label: 65.  604 label.volmap_version boot: 259, fs_vol_label: 44.  547 label.vol_size fs_vol_label: 29.  716 label.vol_trouble_count fs_vol_label: 68.  711 label.vtoc_map_record fs_vol_label: 63.  714 label.vtoc_origin_record fs_vol_label: 66. 550 label.vtoc_size fs_vol_label: 30.  0 LABEL_ADDR boot: 248, disk_pack: 13. 2000 label_size fs_vol_label: 15.  3 LABEL_VERSION mstr: 121. 12206 ldcom bos_tv: 27. 12001 line boot: 300, 753, 795, bos_tv: 13, 14.  12257 ljust boot: 161, bos_tv: 68. 12220 lookup_devmodel bos_tv: 37. 1620 lowport_cfg bos_common: 34. 1530 low_order_port boot: 263, 268, 286, 668,  bos_common: 20. 400 lte eis_micro_ops: 16,  rdclock: 151. 2716 macroargs bos_common: 78. 2600 macrobuf bos_common: 76, 77, 85. 2700 macroline bos_common: 77, 78.  2022 macroloc bos_common: 61. 12205 makefil bos_tv: 26. 12221 makesdw boot: 88, bos_tv: 38. 30 make_ddcw.address boot: 407. 0 make_ddcw.char_offset boot: 407. 0 make_ddcw.op_type boot: 407. 0 make_ddcw.tally boot: 407. 0 make_ddcw.tally_type boot: 407. 0 make_pcw.channel boot: 399. 0 make_pcw.chan_cmd boot: 399, 406.  0 make_pcw.chan_ctrl boot: 399, 406.  0 make_pcw.chan_data boot: 399, 406.  5 make_pcw.command boot: 399, 406.  0 make_pcw.device boot: 399, 406.  0 make_pcw.extension boot: 399, 406.  0 make_pcw.mask boot: 399, 406.  76036 MAX_VTOCE_PER_PACK disk_pack: 21. 300000 mc.cpu_type_mask mc: 22. 3 mc.cpu_type_shift mc: 25. 46 mc.cpu_type_word mc: 21. 50 mc.eis_info mc: 11. 43 mc.errcode mc: 17. 46 mc.ext_fault_reg mc: 23. 77774 mc.ext_fault_reg_mask mc: 24. 45 mc.fault_reg mc: 19. 46 mc.fault_time mc: 20. 44 mc.fim_temp mc: 18. 42 mc.ips_temp mc: 16. 40 mc.mask mc: 15. 0 mc.prs mc: 8. 20 mc.regs mc: 9. 30 mc.scu mc: 10. 30 mc.scu.apu_stat_word mc: 48. 35 mc.scu.ca_word mc: 207. 32 mc.scu.cpu_no_word mc: 138. 35 mc.scu.cpu_tag_word mc: 231. 35 mc.scu.cu_stat_word mc: 211. 32 mc.scu.delta_word mc: 144. 30 mc.scu.fault_cntr_word mc: 66. 31 mc.scu.fault_data_word mc: 74. 34 mc.scu.ilc_word mc: 182. 34 mc.scu.indicators_word mc: 186. 31 mc.scu.port_stat_word mc: 108. 30 mc.scu.ppr.prr_word mc: 33. 30 mc.scu.ppr.psr_word mc: 38. 30 mc.scu.ppr.p_word mc: 43. 33 mc.scu.tpr.tbr_word mc: 174. 32 mc.scu.tpr.trr_word mc: 128. 32 mc.scu.tpr.tsr_word mc: 133. 33 mc.scu.tsr_stat_word mc: 152. 1550 mcm boot: 724, bos_common: 23. 1100 mcmsk boot: 723, 817.  1532 mctime bos_common: 21. 7 mem boot: 133, 147, 156, 458, 472, 477, 480, 483, 485, 494, 499, 505,  673, 742,  bosequ: 15. 160 mflc eis_micro_ops: 7.  140 mfls eis_micro_ops: 6.  1574 modereg boot: 706, bos_common: 27. 3454 montab rdclock: 23, 56, 74, 81, 149. 360 mors eis_micro_ops: 15.  340 mses eis_micro_ops: 14.  0 mstr.data_mask mstr: 15. 44 mstr.data_shift mstr: 14. 10 mstr.data_word mstr: 13. 0 mstr.head boot: 372, mstr: 10. 0 mstr.trail mstr: 17. 400000 mstr_header.admin mstr: 63. 5 mstr_header.admin_word mstr: 62. 0 mstr_header.c1 boot: 372, 376,  mstr: 51. 7 mstr_header.c2 mstr: 83. 6 mstr_header.checksum mstr: 82. 200000 mstr_header.continue mstr: 77. 5 mstr_header.continue_word mstr: 76.  4 mstr_header.data_bits_used mstr: 57.  4 mstr_header.data_bit_len mstr: 58.  400000 mstr_header.drain mstr: 75. 5 mstr_header.drain_word mstr: 74. 100000 mstr_header.eor mstr: 67. 5 mstr_header.eor_word mstr: 66. 1 mstr_header.eot mstr: 73. 5 mstr_header.eot_word mstr: 72. 11 mstr_header.flags_shift mstr: 61. 5 mstr_header.flags_word mstr: 60. 200000 mstr_header.label mstr: 65. 5 mstr_header.label_word mstr: 64. 3 mstr_header.phy_file mstr: 55. 3 mstr_header.rec_within_file mstr: 54.  4 mstr_header.repeat mstr: 71. 777 mstr_header.repeat_count_mask mstr: 80.  0 mstr_header.repeat_count_shift mstr: 79. 5 mstr_header.repeat_count_word mstr: 78.  5 mstr_header.repeat_word mstr: 70. 10 mstr_header.set mstr: 69. 5 mstr_header.set_word mstr: 68. 1 mstr_header.uid mstr: 52. 10 mstr_header_size mstr: 49. 0 mstr_trailer.c1 mstr: 90. 7 mstr_trailer.c2 mstr: 105. 7777 mstr_trailer.reel_num_mask mstr: 98.  30 mstr_trailer.reel_num_shift mstr: 97.  5 mstr_trailer.reel_num_word mstr: 96.  3 mstr_trailer.tot_data_bits_word mstr: 93. 0 mstr_trailer.tot_file_shift mstr: 100.  5 mstr_trailer.tot_file_word mstr: 99.  0 mstr_trailer.tot_rec_shift mstr: 103.  6 mstr_trailer.tot_rec_word mstr: 102.  1 mstr_trailer.uid mstr: 91. 10 mstr_trailer_size mstr: 88. 300 mst_label.boot_pgm mstr: 42. 244 mst_label.boot_pgm_len mstr: 40. 160 mst_label.boot_pgm_path mstr: 36. 245 mst_label.copyright mstr: 41. 51 mst_label.dis_instr mstr: 34. 150 mst_label.fault_data mstr: 35. 50 mst_label.fv_overlay mstr: 31. 10 mst_label.head boot: 376, mstr: 27. 242 mst_label.label_version mstr: 38. 0 mst_label.lda_instr boot: 514, mstr: 25. 243 mst_label.output_mode mstr: 39. 50 mst_label.scu_instr mstr: 33. 0 mst_label.trail mstr: 43. 1 mst_label.tra_instr mstr: 26. 232 mst_label.userid mstr: 37. 20 mst_label.vid boot: 390, mstr: 29. 0 mst_label.xfer_vector mstr: 23. 12216 mulbos boot: 249, bos_tv: 35. 320 mvc eis_micro_ops: 13,  rdclock: 151, 152.  120 mvza eis_micro_ops: 5.  100 mvzb eis_micro_ops: 4,  rdclock: 151. 12202 nextline bos_tv: 23. 12203 nlraw bos_tv: 24. 1014 noconf boot: 205, 209, 213, 767.  1070 nogo boot: 278, 304, 328, 332, 336, 382, 755, 764, 771, 797, 803. 3335 no_clok_card rdclock: 27, 33.  12252 octwd bos_tv: 63. 705 old_label.disk_table_uid old_fs_vol_label: 63. 704 old_label.disk_table_vtocx old_fs_vol_label: 62. 617 old_label.err_hist_size old_fs_vol_label: 49.  706 old_label.esd_state old_fs_vol_label: 64.  0 old_label.flagpad_shift old_fs_vol_label: 37.  551 old_label.flagpad_word old_fs_vol_label: 36.  1005 old_label.frec old_fs_vol_label: 69.  0 old_label.gcos old_fs_vol_label: 18.  400000 old_label.here old_fs_vol_label: 54.  614 old_label.last_pvtx old_fs_vol_label: 48.  542 old_label.lvid old_fs_vol_label: 25.  531 old_label.lv_name old_fs_vol_label: 23.  552 old_label.max_access_class old_fs_vol_label: 39. 511 old_label.mfg_serial old_fs_vol_label: 21.  554 old_label.min_access_class old_fs_vol_label: 40. 500 old_label.Multics old_fs_vol_label: 19.  400000 old_label.not_used old_fs_vol_label: 33.  551 old_label.not_used_word old_fs_vol_label: 32.  1003 old_label.nparts old_fs_vol_label: 65.  1006 old_label.nrec old_fs_vol_label: 70.  546 old_label.n_pv_in_lv old_fs_vol_label: 28.  1004 old_label.part old_fs_vol_label: 68.  1004 old_label.parts old_fs_vol_label: 66.  556 old_label.password old_fs_vol_label: 41.  400000 old_label.pd_active old_fs_vol_label: 60.  703 old_label.pd_active_word old_fs_vol_label: 59. 612 old_label.pd_time old_fs_vol_label: 47.  200000 old_label.private old_fs_vol_label: 35.  551 old_label.private_word old_fs_vol_label: 34.  541 old_label.pvid old_fs_vol_label: 24.  521 old_label.pv_name old_fs_vol_label: 22.  700 old_label.root old_fs_vol_label: 52.  543 old_label.root_pvid old_fs_vol_label: 26.  701 old_label.root_vtocx old_fs_vol_label: 56.  702 old_label.shutdown_state old_fs_vol_label: 57. 620 old_label.time_last_dmp old_fs_vol_label: 50.  626 old_label.time_last_reloaded old_fs_vol_label: 51. 602 old_label.time_map_updated old_fs_vol_label: 43. 600 old_label.time_mounted old_fs_vol_label: 42.  610 old_label.time_of_boot old_fs_vol_label: 46.  544 old_label.time_registered old_fs_vol_label: 27. 606 old_label.time_salvaged old_fs_vol_label: 45.  604 old_label.time_unmounted boot: 269,  old_fs_vol_label: 44. 510 old_label.version old_fs_vol_label: 20.  547 old_label.vol_size old_fs_vol_label: 29.  550 old_label.vtoc_size old_fs_vol_label: 30.  2000 old_label_size old_fs_vol_label: 15.  500 ouhist bos_common: 14. 12000 pagectl bos_tv: 12, 13.  404 pclk1temp boot: 339. 410 pclk2temp boot: 342. 3 pgm boot: 683, 716,  bosequ: 10. 12215 phyadd bos_tv: 34. 12213 phybos bos_tv: 32. 627 pl_flt boot: 581, 600.  606 port_loop boot: 567, 575, 618. 607 port_loop1 boot: 573, 578.  640 port_loop_end boot: 596, 612.  170 pre_MR10_label boot: 260, 262, 267. 341 printclock_x boot: 311, 323.  1500 prs bos_common: 18. 1600 ptrlen bos_common: 29. 12251 punch bos_tv: 62. 2020 quietsw bos_common: 59. 3473 rdc.days rdclock: 97, 154.  3502 rdc.months rdclock: 84, 156.  12267 rdclock bos_tv: 76. 3443 rdclock.day_name boot: 322, rdclock: 98, 132.  3445 rdclock.day_of_century rdclock: 49, 93, 136. 3441 rdclock.day_of_month boot: 316, rdclock: 77, 128.  3442 rdclock.day_of_week rdclock: 96, 130.  3434 rdclock.hr boot: 318, rdclock: 50, 118.  3435 rdclock.min boot: 319, rdclock: 41, 120.  3437 rdclock.month rdclock: 83, 124.  3440 rdclock.month_name boot: 315, rdclock: 85, 126.  3436 rdclock.sec boot: 320, rdclock: 39, 122.  3444 rdclock.year boot: 317, rdclock: 60, 71, 134. 3447 rdclock.zone_name boot: 321, rdclock: 31, 140.  3446 rdclock.zone_temp rdclock: 29, 47, 138. 3452 rdctime rdclock: 18, 34, 91, 100, 147. 12211 rdev boot: 252, bos_tv: 30. 2016 rdrchanno bos_common: 57. 12234 rdsec bos_tv: 49. 3320 rd_clock rdclock: 16. 12246 readcd bos_tv: 59. 12247 readtty boot: 298, 751, 793, bos_tv: 60. 2030 readysw bos_common: 67. 5 read_tape_bin_code boot: 60, 367, 649. 12232 rec_per_dev_list bos_tv: 47. 1520 regs boot: 671, 689,  bos_common: 19. 40 reset_status_code boot: 58. 762 ret_error boot: 89, 743.  70 rewind_code boot: 57, 197, 356. 12260 rjust bos_tv: 69. 411 root_dev boot: 237, 250, 253, 343.  4000 runcom_bit bosequ: 19. 12200 scan bos_tv: 21. 1540 scu boot: 695, 697, 699, bos_common: 22. 2000 scu.apu.dsptw mc: 57. 10 scu.apu.fabs mc: 64. 20 scu.apu.fanp mc: 63. 40 scu.apu.fap mc: 62. 4000 scu.apu.pi_ap mc: 56. 200 scu.apu.ptw mc: 60. 100 scu.apu.ptw2 mc: 61. 20000 scu.apu.ptwm mc: 54. 10000 scu.apu.pt_on mc: 55. 100000 scu.apu.sdwm mc: 52. 1000 scu.apu.sdwnp mc: 58. 400 scu.apu.sdwp mc: 59. 40000 scu.apu.sd_on mc: 53. 200000 scu.apu.xsf mc: 51. 0 scu.apu_stat_word mc: 49. 22 scu.ca_shift mc: 209. 5 scu.ca_word mc: 208. 700 scu.con_chan_mask mc: 117. 6 scu.con_chan_shift mc: 118. 700 scu.cpu_no_mask mc: 141. 2 scu.cpu_no_word mc: 139. 6 scu.cpu_shift mc: 142. 7 scu.cpu_tag_mask mc: 234. 5 scu.cpu_tag_word mc: 232. 100 scu.cu.if mc: 229. 1000 scu.cu.poa mc: 226. 10000 scu.cu.pon mc: 221. 20000 scu.cu.pot mc: 220. 100000 scu.cu.rd mc: 217. 400000 scu.cu.rf mc: 214. 400 scu.cu.rfi boot: 696, mc: 227. 40000 scu.cu.rl mc: 218. 200000 scu.cu.rpt mc: 216. 4000 scu.cu.xde mc: 223. 2000 scu.cu.xdo mc: 224. 5 scu.cu_stat_word boot: 697, mc: 212. 77 scu.delta_mask mc: 147. 2 scu.delta_word mc: 145. 36 scu.even_inst_word mc: 239. 7 scu.fault_cntr_mask mc: 69. 0 scu.fault_cntr_word mc: 67. 1 scu.fault_data_word mc: 75. 10 scu.fd.am_er mc: 91. 200 scu.fd.boc mc: 87. 40 scu.fd.crt mc: 89. 100000 scu.fd.e_off mc: 79. 100000 scu.fd.ia_im mc: 102. 100 scu.fd.inret mc: 88. 200000 scu.fd.ioc mc: 101. 20000 scu.fd.ipr mc: 104. 400000 scu.fd.iro mc: 77. 400000 scu.fd.isn mc: 100. 40000 scu.fd.isp mc: 103. 10000 scu.fd.nea mc: 105. 2000 scu.fd.no_ga mc: 84. 400 scu.fd.ocall mc: 86. 1000 scu.fd.ocb mc: 85. 200000 scu.fd.oeb mc: 78. 400000 scu.fd.onc_1 mc: 96. 200000 scu.fd.onc_2 mc: 97. 4000 scu.fd.oobb mc: 106. 4 scu.fd.oosb mc: 92. 40000 scu.fd.orb mc: 80. 10000 scu.fd.owb mc: 82. 1 scu.fd.parl mc: 94. 2 scu.fd.paru mc: 93. 20 scu.fd.ralr mc: 90. 20000 scu.fd.r_off mc: 81. 4000 scu.fd.w_off mc: 83. 1 scu.fi_flag_mask mc: 123. 76 scu.fi_num_mask mc: 120. 1 scu.fi_num_shift mc: 121. 7000 scu.iac_mask mc: 114. 11 scu.iac_shift mc: 115. 170000 scu.ial_mask mc: 111. 14 scu.ial_shift mc: 112. 22 scu.ilc_shift mc: 184. 4 scu.ilc_word boot: 695, mc: 183. 4 scu.indicators_word mc: 187. 20 scu.ir.abs boot: 694, mc: 202. 200 scu.ir.bm boot: 694, mc: 199. 100000 scu.ir.carry mc: 191. 20000 scu.ir.eovf mc: 193. 10000 scu.ir.eufl mc: 194. 40 scu.ir.mif mc: 201. 200000 scu.ir.neg mc: 190. 4000 scu.ir.oflm mc: 195. 40000 scu.ir.ovfl mc: 192. 1000 scu.ir.par mc: 197. 400 scu.ir.parm mc: 198. 2000 scu.ir.tro mc: 196. 100 scu.ir.tru mc: 200. 400000 scu.ir.zero mc: 189. 37 scu.odd_inst_word mc: 241. 1 scu.port_stat_word mc: 109. 400000 scu.ppr.p boot: 698, mc: 45. 700000 scu.ppr.prr_mask mc: 35. 41 scu.ppr.prr_shift mc: 36. 0 scu.ppr.prr_word mc: 34. 77777 scu.ppr.psr_mask mc: 40. 22 scu.ppr.psr_shift mc: 41. 0 scu.ppr.psr_word mc: 39. 0 scu.ppr.p_word boot: 699, mc: 44. 77 scu.tpr.tbr_mask mc: 177. 3 scu.tpr.tbr_word mc: 175. 700000 scu.tpr.trr_mask mc: 130. 41 scu.tpr.trr_shift mc: 131. 2 scu.tpr.trr_word mc: 129. 77777 scu.tpr.tsr_mask mc: 135. 22 scu.tpr.tsr_shift mc: 136. 2 scu.tpr.tsr_word mc: 134. 700000 scu.tsna.prn_mask mc: 159. 17 scu.tsna.prn_shift mc: 160. 40000 scu.tsna.prv mc: 161. 740000 scu.tsna_mask mc: 158. 34000 scu.tsnb.prn_mask mc: 164. 13 scu.tsnb.prn_shift mc: 165. 2000 scu.tsnb.prv mc: 166. 36000 scu.tsnb_mask mc: 163. 1600 scu.tsnc.prn_mask mc: 169. 7 scu.tsnc.prn_shift mc: 170. 100 scu.tsnc.prv mc: 171. 13 scu.tsnc_mask mc: 168. 777700 scu.tsr_stat_mask mc: 155. 6 scu.tsr_stat_shift mc: 156. 3 scu.tsr_stat_word mc: 153. 14 sdw.add_shift boot: 786, bos_sdw: 4. 377770 sdw.bound boot: 552, bos_sdw: 12. 40000 sdw.cache bos_sdw: 20. 4 sdw.df bos_sdw: 9. 37777 sdw.entry_bound bos_sdw: 21. 100000 sdw.entry_bound_sw bos_sdw: 19. 2 sdw.execute bos_sdw: 14. 3 sdw.fault_code bos_sdw: 10. 400000 sdw.privileged bos_sdw: 17. 7000 sdw.r1 bos_sdw: 5. 700 sdw.r2 bos_sdw: 6. 70 sdw.r3 bos_sdw: 7. 4 sdw.read bos_sdw: 13. 200000 sdw.unpaged bos_sdw: 18. 1 sdw.write bos_sdw: 15. 12204 search bos_tv: 25. 3 SECTORS_PER_VTOCE disk_pack: 18. 12230 sect_per_cyl_list bos_tv: 45. 12231 sect_per_dev_list bos_tv: 46. 7000 seg6length bos_common: 90. 60 ses eis_micro_ops: 3.  75 setc boot: 154, 175.  100 settap boot: 159, 183.  2004 setuparea bos_common: 49. 2025 skipsw bos_common: 64. 2000 storlen bos_common: 36. 12262 stripa bos_tv: 71. 12263 stripg bos_tv: 72. 455 system_fault_vector_data boot: 411, 479. 1003 table_full boot: 102, 761.  2015 tapechanno boot: 125, bos_common: 56. 3 tapeno boot: 62, 809, 825. 473 tape_label.bootable boot: 378, 427.  565 tape_label.non_bootable boot: 374, 518.  1300 tbuff boot: 366, 372, 376, 390, 476, 648, 653, 716, 830. 1 tmp boot: 551, 553, 579, 590, 605, 616, 627, 632, 778, 785,  bosequ: 8. 422532 trailer_c1 mstr: 118. 631704 trailer_c2 mstr: 119. 564 tra_label_lda boot: 503, 513.  1075 trecs boot: 658, 714, 813. 2017 ttychanno bos_common: 58. 12245 ttyinit boot: 76, bos_tv: 58. 2026 ttypmtsw bos_common: 65. 1070 ttyrequest boot: 77, 801.  12200 tv_org bos_tv: 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,  44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,  56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,  68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,  80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,  92, 93, 94, 95, 96. 12244 type bos_tv: 57. 2013 unitgroup bos_common: 54. 2002 useable bos_common: 46. 2001 used bos_common: 45. 2005 utilarea bos_common: 50. 12000 utilorg bosequ: 22, bos_tv: 12, 19.  446 vid.tape_reel_id boot: 389, 433.  1 VOLMAP_ADDR disk_pack: 14. 10 volume_identifier.tape_reel_id boot: 390, mstr: 113. 20 volume_identifier.volume_set_id mstr: 114. 30 volume_identifier_size mstr: 110. 5 VTOCES_PER_RECORD disk_pack: 19. 6 VTOC_MAP_ADDR disk_pack: 16. 10 VTOC_ORIGIN disk_pack: 17. 12301 wantflt boot: 582, 601, 613, 775,  bos_tv: 86. 12212 wdev bos_tv: 31. 12235 wtsec boot: 440, 631, 682, 715, 734, bos_tv: 50. 760 x2_save boot: 74, 132, 741, 744, 804. 1074 x7_save boot: 782, 798, 812. 12277 xio_wait boot: 195, 354, 365, 636, 647, bos_tv: 84. 4 xs1 boot: 590, 593,  bosequ: 11. 5 xs2 bosequ: 12. 573 zero_loop boot: 555, 563, 615, 780, 799. 646 zero_loop_end boot: 557, 623.  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