ASSEMBLY LISTING OF SEGMENT >special_ldd>online>7055>fwload.alm ASSEMBLED ON: 12/11/84 1313.9 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 " FWLOAD - Multics Firmware loader--  7 " 'Borrowed' from loaddm by B. Greenberg, 8/12/74  8  9  10 " Modified 9/75 by Noel I. Morris & B. S. Greenberg 11 " Modified 5/78 by Sherman D. Sprague  12 " Modified 3/79 by Sherman D. Sprague To print error when cache is hard on. 13 " Modified by Sherman D. Sprague 2/11/81 for DPS8 support.  14 " Modified by J. A. Bush 6/20/81 for bootable tape labels  15 " Modified by Sherman D. Sprague 8/21/81 add new mpc models 16 " Modified by Paul Farley March/April 1984 for IMU and MSP800 (DAU) support.  17 " ******************************************************  18 " * *  19 " * *  20 " * Copyright (c) 1972 by Massachusetts Institute of *  21 " * Technology and Honeywell Information Systems, Inc. *  22 " * *  23 " * *  24 " ******************************************************  25  26  27 include bosequ 1-1 " Begin include file ...... bosequ.incl.alm 1-2 " Modified 8/25/76 by N. I. Morris  1-3 " Modified 8/79 by R.J.C. Kissel to expand BOS. 1-4 " Modified November 1981 by C. Hornig to add pgmorg.  1-5 " Modified October 1982 by J. Bongiovanni to take it out  1-6  000000 1-7 bool ds,0 descriptor segment  000001 1-8 bool tmp,1 temp seg  000002 1-9 bool bf,2 buffer segment for save/restor  000003 1-10 bool pgm,3 program in control 000004 1-11 bool xs1,4 spare segment  000005 1-12 bool xs2,5 spare segment  000005 1-13 bool fgb,5 flagbox segment  000006 1-14 bool com,6 common 000007 1-15 bool mem,7 all memory 1-16  000017 1-17 equ arglen,15 max number of args from scan  1-18  004000 1-19 bool runcom_bit,4000 runcom bit in dir entry  002000 1-20 bool firmware_bit,2000 firmware bit in dir entry  1-21  012000 1-22 bool utilorg,12000 origin of utility package  1-23  1-24 " End of include file ...... bosequ.incl.alm  28  29 use toec  30  31 include bos_toequ  2-1 "  2-2 " Begin include file ...... bos_toequ.incl.alm  2-3 " Converted for follow-on on 5/5/72 at 17:30 by D R Vinograd  2-4 " Modified on 5/3/77 by N. I. Morris  2-5 " Modified 8/79 by R.J.C. Kissel to expand parts of BOS.  2-6 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support  2-7 " Last modified by Keith Loepere to fix addresses to toehold and setup so  2-8 " that dcw list in setup will correctly save/restore Multics image  2-9 " The following is a map of BOS memory. 2-10 "  2-11 " Address Length  2-12 "  2-13 " 0 100 interrupt vector  2-14 " 100 100 fault vector  2-15 " 200 400 its pointers for fault and interrupt vectors  2-16 " 600 300 padding?  2-17 " 1100 100 bulk store mbx  2-18 " 1200 200 IOM imw area  2-19 " 1400 400 IOM A mbx 2-20 " 2000 400 IOM B mbx 2-21 " 2400 400 IOM C mbx 2-22 " 3000 400 IOM D mbx 2-23 " 3400 300 FNP A mbx 2-24 " 3700 300 FNP B mbx 2-25 " 4200 300 FNP C mbx 2-26 " 4500 300 FNP D mbx 2-27 " 5000 300 FNP E mbx 2-28 " 5300 300 FNP F mbx 2-29 " 5600 300 FNP G mbx 2-30 " 6100 300 FNP H mbx 2-31 " 6400 1340 padding  2-32 " 7740 40 ds (descriptor segment)  2-33 " 10000 1000 toehold  2-34 " 11000 7000 setup  2-35 " 20000 2000 bf (buffer)  2-36 " 22000 4000 com (common) 2-37 " 31000 12000 pgm (program area)  2-38 " 40000 20000 util (utilities) 2-39 " 60000 717777 rest of BOS memory, unused  2-40  2-41 " EQU's for BOS core image. 2-42  060000 2-43 bool coresaved,60000 amount of Multics core saved by BOS  2-44  777777 2-45 bool lnmem,777777 length of memory  000000 2-46 bool origmem,0 absolute origin of start of memory  2-47  010000 2-48 bool lnsetup,10000 length of BOS control program  010000 2-49 bool origsetup,10000 absolute origin of BOS control program  2-50  010020 2-51 equ origflagbox,origsetup+16 absolute origin of flagbox area  000100 2-52 equ lnflagbox,64 length of flagbox area  2-53  000040 2-54 bool lnds,40 length of BOS descriptor segment  007740 2-55 equ origds,origsetup-lnds absolute origin of BOS descriptor segment  2-56  002000 2-57 equ lnbf,1024 length of buffer segment  020000 2-58 equ origbf,origsetup+lnsetup absolute origin of 1024-word buffer  2-59  007000 2-60 bool lncom,7000 length of BOS common area 022000 2-61 equ origcom,origbf+lnbf absolute origin of BOS common area  2-62  031000 2-63 equ origpgm,origcom+lncom absolute origin of BOS command programs  031000 2-64 equ pgmorg,origpgm for compatibility  027000 2-65 equ lnpgm,coresaved-origpgm length of BOS command programs 2-66  001400 2-67 bool imbx,1400 absolute loc'n of actual IOM mailbox  2-68  000037 2-69 bool rewpu,37 REWP access, unpaged bit for SDW  2-70  2-71  010000 2-72 bool maxw,10000  2-73  2-74  000020 2-75 bool absi,000020  004000 2-76 bool ovflm,004000  2-77  2-78  2-79 " BOS pointer registers.  2-80  2-81 mod 16 005160 2-82 bos_pr: 005160 aa 000000 000043 2-83 its 0,0 pr0 -> seg 0 etc  005161 aa 000000 000000 005162 aa 000001 000043 2-84 its 1,0  005163 aa 000000 000000 005164 aa 000002 000043 2-85 its 2,0  005165 aa 000000 000000 005166 aa 000003 000043 2-86 its 3,0  005167 aa 000000 000000 005170 aa 000004 000043 2-87 its 4,0  005171 aa 000000 000000 005172 aa 000005 000043 2-88 its 5,0  005173 aa 000000 000000 005174 aa 000006 000043 2-89 its 6,0  005175 aa 000000 000000 005176 aa 000007 000043 2-90 its 7,0  005177 aa 000000 000000 2-91  2-92  2-93 " BOS descriptor segment template.  2-94  005200 2-95 bos_dbr:  005200 2-96 dseg:  005200 aa 000077 400004 2-97 seg0: vfd 24/origds,9/0,o3/4  005201 aa 000017 600000 2-98 vfd 1/0,14/(lnds/16-1),5/rewpu,15/0  2-99  005202 aa 000310 000004 2-100 seg1: vfd 24/origpgm,9/0,o3/4  005203 aa 013377 600000 2-101 vfd 1/0,14/(lnpgm/16-1),5/rewpu,15/0  2-102  005204 aa 000200 000004 2-103 seg2: vfd 24/origbf,9/0,o3/4  005205 aa 000777 600000 2-104 vfd 1/0,14/(lnbf/16-1),5/rewpu,15/0  2-105  005206 aa 000100 000004 2-106 seg3: vfd 24/origsetup,9/0,o3/4 005207 aa 003777 600000 2-107 vfd 1/0,14/(lnsetup/16-1),5/rewpu,15/0 2-108  005210 aa 000000 000000 2-109 seg4: zero  005211 aa 000000 000000 2-110 zero  2-111  005212 aa 000100 200004 2-112 seg5: vfd 24/origflagbox,9/0,o3/4  005213 aa 000037 600000 2-113 vfd 1/0,14/(lnflagbox/16-1),5/rewpu,15/0  2-114  005214 aa 000220 000004 2-115 seg6: vfd 24/origcom,9/0,o3/4  005215 aa 003377 600000 2-116 vfd 1/0,14/(lncom/16-1),5/rewpu,15/0  2-117  005216 aa 000000 000004 2-118 seg7: vfd 24/origmem,9/0,o3/4  005217 aa 377767 600000 2-119 vfd 1/0,14/(lnmem/16-1),5/rewpu,15/0  2-120  2-121  2-122 " EQU's for locations in the IOM mailbox used by BOS toehold.  2-123  000014 2-124 equ scwr,3*4 loc of refill for IOM scw  000002 2-125 equ statq,2 loc of status word  000000 2-126 equ pcw,0 loc of pcw  000001 2-127 equ cow,1 loc of cow  000011 2-128 equ lpwr,2*4+1 array of lpw refills  2-129  2-130  2-131 " EQU's for locations in setup used by BOS toehold. 2-132 " NOTE: toelen M_U_S_T_ be 0 mod 64 long because it must fit into  2-133 " an integral number of disk sectors.  2-134  001000 2-135 bool toelen,1000  031000 2-136 equ toesaved,origcom+lncom core saved by toehold  000200 2-137 equ swaplen,128 Size of the Bos toehold area which is  2-138 " swapped with the Multics toehold area.  000575 2-139 equ mbxloc,toelen-swaplen-3  000576 2-140 equ devid,toelen-swaplen-2 000577 2-141 equ ttychan,toelen-swaplen-1  001000 2-142 equ cowsav,toelen  001001 2-143 equ mbbasesav,toelen+1 001002 2-144 equ mxbasesav,toelen+2 001003 2-145 equ dirbase,toelen+3  2-146  2-147 " End of include file ...... bos_toequ.incl.alm 2-148  32  33 use mainc  34  35 join /text/mainc,toec  36  37 " 38  39  000006 40 equ sltlen,6  000010 41 equ tape_header_lth,8  000020 42 equ seg_header_lth,16  43  000000 44 equ begin_program,*  777777 777760 45 equ seg_header,begin_program-seg_header_lth  777777 777750 46 equ tape_header,seg_header-tape_header_lth 777777 777777 47 equ log_header,begin_program-1 48  49  020000 50 equ scu_info,origbf place to store SCU info during boot  51  000000 52 bool int_vector,0 interrupt vector location  000100 53 bool flt_vector,100 fault vector location  54  000014 55 bool term,14 terminate interrupt cell #  000006 56 bool drl,6 derail fault # 000007 57 bool lockup,7 lockup fault #  000037 58 bool trouble,37 trouble fault #  59  000100 60 equ chans,64 # of IOM channels  000002 61 equ ioms,2 # of IOM's 000002 62 bool connect_channel,2 connect channel #  000001 63 equ iom_cow,1 place in mailbox for COW  64  65  000030 66 equ bootload_base,int_vector+term*2  777777 777720 67 equ program_offset,(tape_header-begin_program)-bootload_base  68  69 " 70  71 " This is the BOS bootstrapping program. It can be entered by bootloading  72 " a BOS tape with a program written on the tape label which will read in the  73 " the label EOF record to skip it, and then read in this record under control  74 " of a DCW. The label begin will have a starting address of 10000 octal.  75 " If the BOS tape in use does not have a bootable label, this record is entered 76 " by initializing and booting three times and the tape record header will be  77 " written at loc 30 octal (absolute). This will cause an IPR fault, which in  78 " turn will cause a trouble fault (because the IPR fault vector contains 0's)  79 " and the trouble fault vector contains a transfer to the begin label.  80  000000 81 begin: inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  000000 aa 000150 7542 04 82 sti temp-*,ic see if in abs mode  000001 aa 000147 2352 04 83 lda temp-*,ic  000002 aa 000020 3152 07 84 cana absi,dl  000003 0a 000301 6002 00 85 tze ascom if not, we were entered from BOS  000004 aa 000700 6212 00 86 eax1 7*64 set all controller masks  000005 aa 000000 4312 07 87 fld 0,dl mask all interrupts  000006 aa 000020 0572 11 88 sscr 2*8,1 .. 000007 aa 777700 6212 11 89 eax1 -64,1 SSCR will do nothing for unassigned masks  000010 aa 777776 6052 04 90 tpl -2,ic ..  000011 91 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  92  000011 aa 777767 2120 04 93 absa begin-*,ic get abs entry address  000012 aa 000014 7710 00 94 arl 12 in AL  000013 aa 000030 1350 07 95 sbla tape_header_lth+seg_header_lth,dl 000014 aa 000000 6220 05 96 eax2 0,al copy move address to x2 000015 aa 000007 7420 04 97 stx2 mv_pgm+1-*,ic store in move descriptor  000016 aa 000004 2360 12 98 ldq 4,2 load bit lenth of record  000017 aa 000044 5060 07 99 div 36,dl QU contains data word count 000020 aa 777777 3760 03 100 anq =-1,du mask it  000021 aa 000010 0760 03 101 adq tape_header_lth,du include length of record header 000022 aa 000020 7720 00 102 qrl 18-2 compute character count  000023 aa 000040 1014 40 103 mv_pgm: mrl (rl),(rl) copy everything into proper place  000024 0a 000024 000006 104 desc9a *,ql ..  000025 0a 030750 000006 105 desc9a origpgm+tape_header,ql  000026 aa 031151 7100 00 106 tra origpgm+(boot2-begin) enter program at rightful place  107  108 " 109  110 "The following code is entered when the BOS tape is booted from the tape  111 "controller, without the bos boot label prgram being present in the bos tape  112 "label (init/boot three times). An instruction of 670314355245(8) will be  113 "executed after the tape record is loaded. This is an ANSA instruction with an 114 "SCR modifier. It causes an IPR fault when the terminate interrupt is set. 115 "This causes a trouble fault which is caught and handled by the following code. 116  000116 117 equ trouble_org,program_offset+(flt_vector+2*trouble)  000116 118 org trouble_org  119  000116 0a 000060 7100 00 120 tra begin-program_offset catch trouble fault here  000117 aa 000000 0110 03 121 nop 0,du ..  122  123 " The following code catches spurious lockup faults which sometimes 124 " occur when the BOS tape is booted (without the bos boot label pgm)  125  000036 126 equ lockup_org,program_offset+(flt_vector+2*lockup)  000036 127 org lockup_org 128  000036 0a 000060 7100 00 129 tra begin-program_offset catch lockup fault here  000037 aa 000000 0110 03 130 nop 0,du  131  132  133 " 134  135 " Read in logical record.  136  000040 137 boot_tape:  000040 aa 000000 7230 17 138 lxl3 0,7 get count from next control word 000041 aa 000001 6230 13 139 eax3 1,3 add 1 to include control word  000042 aa 000103 0230 04 140 adlx3 lrec_offset-*,ic add to offset in last record  141  000043 aa 777711 2360 04 142 boot_loop:ldq tape_header+4-*,ic get data length of record in bits  000044 aa 000044 5060 07 143 div 36,dl compute number of data words  000045 aa 000077 7560 04 144 stq record_length-*,ic save record length  145  000046 aa 000076 1030 04 146 cmpx3 record_length-*,ic Any more words to read?  000047 aa 000024 6040 04 147 tmi boot_end-*,ic All done.  000050 aa 000074 1230 04 148 sblx3 record_length-*,ic Decrement remaining count.  000051 aa 000073 0240 04 149 adlx4 record_length-*,ic compute address for reading next record  000052 aa 000060 7440 04 150 stx4 data_dcw+1-*,ic Absolute address for data.  000053 aa 000070 0540 04 151 aos tape_recno-*,ic Go for next record.  152  000054 153 boot_retry: " Read current record.  000054 aa 000054 6350 04 154 eaa data_idcw-*,ic Absolute address of DCW list.  000055 aa 000000 7550 16 155 sta 0,6 Set tape LPW. 000056 aa 000056 4500 04 156 stz tape_status-*,ic Clear status word.  157  000057 aa 000060 0150 04 158 cioc bootload_info+1-*,ic read next record  159  000060 aa 000004 5320 00 160 cams 4 000061 aa 000053 2350 04 161 lda tape_status-*,ic  000062 aa 777776 6000 04 162 tze -2,ic Wait for it to happen.  000063 aa 000057 3150 04 163 cana stat_mask-*,ic Examine error bits.  000064 aa 777770 6010 04 164 tnz boot_retry-*,ic Try again. 165  000065 aa 777666 2360 04 166 ldq tape_header+3-*,ic Record/file number. 000066 aa 000022 7760 00 167 qlr 18 swap record and file numbers.  000067 aa 000054 1160 04 168 cmpq tape_recno-*,ic  000070 aa 777753 6000 04 169 tze boot_loop-*,ic Got the right one, too. 000071 aa 777763 6040 04 170 tmi boot_retry-*,ic Too far back, keep reading.  000072 aa 000026 7100 04 171 tra boot_die-*,ic Cannot backspace tape.  172  000073 173 boot_end:  000073 aa 000053 7440 04 174 stx4 lrec_addr-*,ic save address of last record  000074 aa 000051 7430 04 175 stx3 lrec_offset-*,ic save offset into last record 176  000075 aa 000000 6270 14 177 eax7 0,4 address in X7  000076 aa 000047 0270 04 178 adlx7 lrec_offset-*,ic plus offset 000077 aa 000000 7100 12 179 tra 0,2 return with pointer to next logical record  180  181 " 182  000120 183 org trouble_org+2  184  185 even  000120 186 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  000120 0a 000120 6162 00 187 boot_die: dis * stop the machine  000121 aa 777777 7102 04 188 tra -1,ic I said stop!  189  000122 aa 020000 6572 00 190 die_pair: scu scu_info  000123 0a 000123 6162 00 191 dis *  192  000124 193 ignore_pair:  000124 aa 020010 6572 00 194 scu scu_info+8 000125 aa 020010 6132 00 195 rcu scu_info+8 196  000126 197 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  198  000126 aa 400000 720201 199 tape_pcw: vfd o6/40,6/0,6/0,3/7,3/2,6/2,6/1 Reset status.  000127 aa 000000 000000 200 vfd o9/0  201  000130 aa 050000 700000 202 data_idcw:vfd o6/5,6/0,6/0,3/7,3/0,6/0,6/0 Read tape binary.  000131 0a 777750 010010 203 data_dcw: vfd 18/tape_header,6/1,12/8 IOTP - 8 word header.  000132 aa 000000 000000 204 vfd 18/0,6/0,12/0 IOTD - 1 record. 205  000133 aa 000000 0110 03 206 even  000134 207 tape_status:  000134 208 bss ,2 209  000136 210 bootload_info:  000136 211 bss ,4 212  000142 213 stat_mask:  000142 aa 370000 770000 214 oct 370000770000  215  000143 216 tape_recno: 000143 217 bss ,1 000144 218 record_length:  000144 219 bss ,1 000145 220 lrec_offset:  000145 221 bss ,1 offset into last record  000146 222 lrec_addr:  000146 223 bss ,1 absolute addr of last record  000147 224 util_addr:  000147 225 bss ,1 address of utility package 000150 226 temp: bss ,1  227  228 " 229  000151 230 boot2:  000151 aa 777751 2370 04 231 ldaq die_pair-*,ic Initialize faults and interrupts.  000152 aa 000000 6210 00 232 eax1 0 Die on unexpected fault.  000153 aa 100200 5202 02 233 rpt 32,2  000154 aa 000100 7570 11 234 staq flt_vector,1  235  000155 aa 000004 1004 00 236 mlr (),(ic) Copy data left by bootload channel.  000156 aa 000000 000020 237 desc9a 0,4*4  000157 aa 777761 000020 238 desc9a bootload_info-*+2,4*4  239  000160 aa 777760 2250 04 240 ldx5 bootload_info+2-*,ic Mailbox loc in X5.  000161 aa 777755 2370 04 241 ldaq bootload_info-*,ic Last PCW  000162 aa 777745 7560 04 242 stq tape_pcw+1-*,ic Set up PCW for reading rest of program 000163 aa 000007 7720 00 243 qrl 9-2  000164 aa 000000 6260 02 244 eax6 0,qu Tape channel number * 4 in X6.  000165 aa 777753 0260 04 245 adlx6 bootload_info+2-*,ic Add in base of mailbox 246  000166 aa 777740 6350 04 247 eaa tape_pcw-*,ic get address of tape PCW  000167 aa 040000 2750 07 248 ora =o040000,dl insert no change bit  000170 aa 000010 7550 15 249 sta connect_channel*4,5 and set connect channel LPW  000171 aa 777743 6350 04 250 eaa tape_status-*,ic get address of status word  000172 aa 000002 7550 16 251 sta 2,6 set SCW for tape channel  000173 aa 777731 2370 04 252 ldaq ignore_pair-*,ic Ignore lockup faults.  000174 aa 000116 7570 00 253 staq flt_vector+lockup*2 Ignore lockup faults. 254  000175 aa 004000 6340 07 255 ldi ovflm,dl Mask overflow.  256  000176 aa 777552 6270 04 257 eax7 tape_header-*,ic  000177 aa 777732 7470 04 258 stx7 data_dcw-*,ic Set up absolute address in DCW. 259  000200 aa 777553 2350 04 260 lda tape_header+3-*,ic Record/file number. 000201 aa 000022 7750 00 261 alr 18 swap record and file numbers  000202 aa 777741 7550 04 262 sta tape_recno-*,ic  263  000203 aa 777555 6240 04 264 eax4 seg_header-*,ic X4 is physical record pointer 000204 aa 000000 6270 14 265 eax7 0,4 X7 is logical record pointer 266  000205 aa 777633 7020 04 267 tsx2 boot_tape-*,ic read program header  000206 aa 777632 7020 04 268 tsx2 boot_tape-*,ic and first program  269  270 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 271 " "  272 " NOTE: The above code must reside within the first "  273 " physical record of the tape. "  274 " "  275 " "  276 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 277  000207 aa 777631 7020 04 278 tsx2 boot_tape-*,ic read header for utility package  000210 aa 777737 7470 04 279 stx7 util_addr-*,ic save address of utility package  000211 aa 777627 7020 04 280 tsx2 boot_tape-*,ic and read in utility package  281  000212 aa 777735 2350 04 282 lda util_addr-*,ic get address of utility package  000213 aa 000000 2360 01 283 ldq 0,au get control word 000214 aa 002423 7560 04 284 stq util_cwd-*,ic save control word  000215 aa 766000 6360 06 285 eaq -utilorg,ql compute number of words to move  000216 aa 000020 7730 00 286 lrl 18-2 get character offset and count  287  000217 aa 000044 1004 45 288 mlr (rl,al),(rl,ic) copy into proper place 000220 aa 012001 000006 289 desc9a utilorg+1,ql  000221 aa 011561 000006 290 desc9a begin_program+utilorg-*+2,ql  291  000222 aa 000000 1004 04 292 mlr (ic),(),fill(0) move descriptor segment template  000223 aa 004756 000100 293 desc9a dseg-*+1,8*2*4  000224 aa 007740 000200 294 desc9a origds,lnds*4  295  000225 aa 777553 2120 04 296 absa begin_program-*,ic set up SDW for pgm 000226 aa 007746 7510 74 297 stca origds+pgm*2,74 load address field of SDW 298  000227 aa 002410 2350 04 299 lda util_cwd-*,ic get length for this segment  000230 aa 000017 0350 07 300 adla 15,dl 000231 aa 777777 3750 07 301 ana -1,dl  000232 aa 000004 7710 00 302 arl 4 divide by 16  000233 aa 000001 1350 07 303 sbla 1,dl  000234 aa 000025 7350 00 304 als 21 shift to bound position  000235 aa 007747 6750 00 305 era origds+pgm*2+1 000236 aa 377770 3750 03 306 ana sdw.bound,du  000237 aa 007747 6550 00 307 ersa origds+pgm*2+1 set bounds field  308  309 " 310  000240 aa 004720 1730 04 311 lpri bos_pr-*,ic  000241 aa 004737 2320 04 312 ldbr bos_dbr-*,ic  000242 aa 3 00243 7101 00 313 tra pgm|*+1 and go to appending mode  314  000243 aa 034000 2350 07 315 lda seg6length*4,dl length of common in AL 000244 aa 000140 1004 00 316 mlr (),(pr,rl),fill(0) clear common area  000245 0a 000245 000000 317 desc9a *,0 000246 aa 600000 000005 318 desc9a com|0,al  319  000247 aa 020000 2350 07 320 lda (econf-conf)*4,dl length of config deck in AL  000250 aa 777140 1004 00 321 mlr (),(pr,rl),fill(777) clear the config deck  000251 0a 000251 000000 322 desc9a *,0 000252 aa 603000 000005 323 desc9a com|conf,al 324  000253 aa 000100 1004 00 325 mlr (),(pr),fill(0) clear the flagbox  000254 0a 000254 000000 326 desc9a *,0 000255 aa 500000 000400 327 desc9a fgb|0,lnflagbox*4  328  000256 0a 000140 2270 00 329 ldx7 bootload_info+2 IOM mailbox base  000257 aa 6 02011 7471 00 330 stx7 com|iom_mbbase  000260 0a 000140 7270 00 331 lxl7 bootload_info+2 IOM multiplex base and IOM I.D.  000261 aa 6 02010 7471 00 332 stx7 com|iom_mxbase  333  000262 0a 000127 2350 00 334 lda tape_pcw+1 extract tape channel number 000263 0a 002667 7550 00 335 sta mpcw+1 save for booting tape firmware 000264 aa 000011 7710 00 336 arl 9 from PCW  000265 aa 777777 3750 03 337 ana -1,du  000266 aa 6 02015 7551 00 338 sta com|tapechanno 000267 0a 003131 7550 00 339 sta tapeno 340  000270 0a 005220 2350 00 341 lda =hfwload prompt arg  000271 aa 6 02027 7551 00 342 sta com|curtcmd but it where we can get it 343  000272 aa 6 02021 4501 00 344 stz com|inputsw assume reading from console  345  000273 aa 6 02011 2271 00 346 ldx7 com|iom_mbbase X7 -> IOM mailbox  000274 0a 000137 2350 00 347 lda bootload_info+1 IOM COW  000275 aa 000007 3750 07 348 ana =o7,dl 000276 aa 7 00001 7551 17 349 sta mem|1,7 set COW at base of mailbox  350  000277 0a 002635 4500 00 351 stz boscom we were not entered from BOS  000300 0a 000303 7100 00 352 tra on 353  354 " 355  000301 356 ascom:  000301 0a 002636 7420 00 357 stx2 x2 save X2  000302 0a 002635 5540 00 358 stc1 boscom  359  000303 360 on: 000303 aa 100000 6350 00 361 eaa 32768 make a buffer segment  000304 aa 012221 7020 00 362 tsx2 makesdw ..  000305 0a 000327 7100 00 363 tra bosexit Don't clobber core today.  000306 aa 0 00002 7571 00 364 staq ds|tmp*2  000307 aa 000000 5320 00 365 cams  366  000310 aa 012300 7020 00 367 tsx2 initint init interrupts  000311 0a 000332 0000 00 368 arg execint  000312 369 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  370  000312 aa 012271 7020 00 371 tsx2 init_io Setup iom mailbox.  372  000313 0a 002635 2340 00 373 szn boscom if entered from bos  000314 0a 000356 6000 00 374 tze boot_entry 375  376  000315 aa 012245 7020 00 377 tsx2 ttyinit  000316 0a 000332 0000 00 378 arg ttyrequest 379  000317 0a 002636 2220 00 380 ldx2 x2 restore X2  000320 aa 7 00000 2351 12 381 lda mem|0,2 get address of argument list  000321 aa 000020 7710 00 382 arl 18-2 as character offset  000322 aa 7 77000 1005 05 383 mlr (pr,al),(),fill(777) copy the arguments  000323 aa 700001 000070 384 desc9a mem|1,(arglen-1)*4  000324 aa 012040 000074 385 desc9a arg,arglen*4  386  000325 aa 012040 2350 00 387 lda arg get argument in A 000326 0a 000576 7100 00 388 tra command enter into the command loop  389  390  391  000327 0a 002636 2220 00 392 bosexit: ldx2 x2 restore X2  000330 aa 000001 3350 07 393 lca 1,dl no command chaining  000331 aa 7 00001 7101 12 394 tra mem|1,2 return to BOS command level  395  396  397  000332 398 execint:  000332 399 ttyrequest: 000332 0a 002635 2340 00 400 szn boscom BOS command?  000333 aa 000000 6000 12 401 tze 0,2 if not, ignore interrupt  000334 0a 000564 7100 00 402 tra cycle otherwise, go to main loop  403 " 000335 aa 012041 7270 00 404 patch: lxl7 arg+1 simple patch procedure  000336 aa 012042 2350 00 405 lda arg+2 ..  000337 aa 000000 7550 17 406 sta 0,7 patch this program  000340 0a 000564 7100 00 407 tra cycle ..  408  409  000341 410 adump:  000341 aa 012041 7270 00 411 lxl7 arg+1 get the location to dump  000342 aa 7 00000 2351 17 412 lda mem|0,7 and the word that's there 000343 0a 000346 7100 00 413 tra dump_common and dump it  414  415  000344 416 sdump:  000344 aa 012041 7270 00 417 lxl7 arg+1 get the location to dump  000345 aa 000000 2350 17 418 lda 0,7 and the word that's there 419  420  000346 421 dump_common:  000346 0a 000355 7550 00 422 sta dump_word save the data for printing  000347 aa 012241 7020 00 423 tsx2 erpt  000350 aa 006 136 157 040 424 acc '^o ^w'  000351 aa 040 136 167 000 000352 aa 012041 0000 00 425 arg arg+1  000353 0a 000355 0000 00 426 arg dump_word  000354 0a 000564 7100 00 427 tra cycle  428  429  000355 430 dump_word:  000355 431 bss ,1 this is where we store the data word to be dumped  432 " 433  000356 434 boot_entry: 000356 aa 000010 6200 00 435 eax0 8 prepare to find operator's console 000357 aa 000000 6350 10 436 opctest: eaa 0,0 test channel number in AU 000360 0a 002641 7550 00 437 sta opcchan save it for call to check_status  000361 aa 000011 7350 00 438 als 9 move to PCW position  000362 0a 002663 7550 00 439 sta opcpcw+1 and store  000363 0a 002665 7550 00 440 sta opcidpcw+1 and store  441  000364 aa 012272 7020 00 442 tsx2 connect_iom connect this channel  000365 00 002662 002662 443 zero opcpcw,opcpcw 444  000366 aa 000062 6210 00 445 eax1 50 wait for status  000367 aa 012274 7020 00 446 opcwait: tsx2 check_status see if it's there  000370 0a 002641 0000 00 447 arg opcchan  000371 0a 000405 7100 00 448 tra opcnost  000372 0a 000407 7100 00 449 tra noopc  450  000373 aa 012272 7020 00 451 tsx2 connect_iom setup to read 000374 00 002664 002664 452 zero opcidpcw,opcidpcw ID if LCC  453  000375 aa 000062 6210 00 454 eax1 50  000376 455 opctypwait: 000376 aa 012274 7020 00 456 tsx2 check_status wait for ID status  000377 0a 002641 0000 00 457 arg opcchan  000400 0a 000403 7100 00 458 tra opctypnost 000401 0a 000414 7100 00 459 tra notlcc 000402 0a 000416 7100 00 460 tra opcfound success  461  000403 462 opctypnost: 000403 aa 777777 6210 11 463 eax1 -1,1 wait for status to arrive  000404 0a 000376 6010 00 464 tnz opctypwait .. 465  000405 aa 777777 6210 11 466 opcnost: eax1 -1,1 wait for status to arrive  000406 0a 000367 6010 00 467 tnz opcwait ..  468  000407 aa 000001 6200 10 469 noopc: eax0 1,0 step to next channel  000410 aa 000040 1000 03 470 cmpx0 32,du must be one of first 32  000411 0a 000357 6040 00 471 tmi opctest try next one  472  000412 0a 000412 6160 00 473 dis * could not find operator's console  000413 aa 777777 7100 04 474 tra -1,ic ..  475  000414 476 notlcc: 000414 0a 005221 2350 00 477 lda =h off turn off prompt  000415 aa 6 02026 7551 00 478 sta com|ttypmtsw  479  000416 0a 002641 2350 00 480 opcfound: lda opcchan get channel number  000417 aa 6 02017 7551 00 481 sta com|ttychanno set in BOS common  482  000420 aa 012245 7020 00 483 tsx2 ttyinit initialize console software  000421 0a 000332 0000 00 484 arg ttyrequest 485  000422 0a 002710 2350 00 486 lda rsmlc_pcw this test may have clobbered tape MPC  000423 0a 002666 7550 00 487 sta mpcw so we must reset it before proceding 488  000424 aa 012272 7020 00 489 tsx2 connect_iom zap the tape controller  000425 0a 002666 000000 490 zero mpcw,0  491  492 " 493  000426 0a 000145 2350 00 494 lda lrec_offset get offset into last record  000427 0a 003125 7550 00 495 sta tbufi save as buffer index  496  000430 0a 000146 2360 00 497 ldq lrec_addr get absolute addr of last record  000431 aa 000000 6270 02 498 eax7 0,qu in X7  000432 0a 000144 0670 00 499 adx7 record_length plus length of record  000433 aa 7 00006 2351 17 500 lda mem|6,7 get record number from trailer  000434 0a 003123 7550 00 501 sta recno and save for reading tape  502  000435 0a 000144 2350 00 503 lda record_length get length of tape record  000436 aa 777777 3750 03 504 ana =-1,du mask data length of record 000437 0a 003124 7550 00 505 sta tbufd save it 000440 aa 000020 7730 00 506 lrl 18-2 offset in AL, length in AL  000441 aa 0 00040 1005 46 507 mlr (pr,rl,ql),(rl) copy last record into tape buffer  000442 aa 700000 000005 508 desc9a mem|0,al  000443 0a 003150 000005 509 desc9a tbuf,al 510  000444 0a 000134 2350 00 511 lda tape_status get status from reading program  000445 aa 000077 3750 07 512 ana =o77,dl MPC put the device address here  000446 0a 003132 7550 00 513 sta tapdev indicate if cold or warm MPC  000447 0a 003132 6000 00 514 tze tapdev if cold, boot it now  515  000450 aa 6 02015 2351 00 516 lda com|tapechanno get tape channel number 000451 aa 000022 7710 00 517 arl 18 in AL  000452 0a 002713 7550 00 518 sta mpc_chan set channel for loading F/W  000453 0a 005222 2360 00 519 ldq =h a IOM ID is "A"  000454 0a 002717 7560 00 520 stq iomid ..  521  000455 0a 002730 4500 00 522 cache: stz cache_prog clear work area  000456 0a 002731 4500 00 523 stz cache_prog+1  000457 0a 002730 6740 02 524 lcpr cache_prog,02 load cashe mode with 0  000460 0a 002730 4520 06 525 scpr cache_prog,06 read it back  000461 0a 002731 2350 00 526 lda cache_prog+1 check it !  000462 aa 760000 3750 07 527 ana =o760000,dl set mask for cache bits  528  000463 0a 000512 6000 00 529 tze ask_again continue on it worked  000464 aa 012241 7020 00 530 tsx2 erpt tell operator- -.  000465 aa 073 143 141 156 531 acc 'can not turn off cache check free edge swithes and type GO'  000466 aa 040 156 157 164 000467 aa 040 164 165 162 000470 aa 156 040 157 146 000471 aa 146 040 143 141 000472 aa 143 150 145 040 000473 aa 040 143 150 145 000474 aa 143 153 040 146 000475 aa 162 145 145 040 000476 aa 145 144 147 145 000477 aa 040 163 167 151 000500 aa 164 150 145 163 000501 aa 040 141 156 144 000502 aa 040 164 171 160 000503 aa 145 040 107 117 532  000504 aa 012202 7020 00 533 tsx2 nextline  000505 aa 012040 2350 00 534 lda arg  000506 0a 002732 1150 00 535 cmpa cache_on eng. may want to continue  000507 0a 000512 6000 00 536 tze ask_again so lets continue on!  000510 0a 000455 7100 00 537 tra cache  000511 0a 000120 7100 00 538 tra boot_die quit the boot ?!?!?!?  539  000512 540 ask_again:  000512 aa 012241 7020 00 541 tsx2 erpt ask for tape controller ID  000513 aa 033 145 156 164 542 acc 'enter tape controller type:'  000514 aa 145 162 040 164 000515 aa 141 160 145 040 000516 aa 143 157 156 164 000517 aa 162 157 154 154 000520 aa 145 162 040 164 000521 aa 171 160 145 072 543  000522 aa 012202 7020 00 544 tsx2 nextline read in controller type 545  000523 aa 012040 2350 00 546 lda arg get firmware ID in A  000524 aa 000000 2210 03 547 ldx1 0,du  000525 aa 060300 5202 02 548 rpt (mpctblend-mpctbl)/2,2,tze scan for mpc name  000526 0a 000657 1150 11 549 cmpa mpctbl,1  000527 0a 000554 6070 00 550 ttf search_for_tape_fw 000530 551 help_tapes: 000530 aa 012241 7020 00 552 tsx2 erpt  000531 aa 074 164 150 145 553 acc 'the following is a list of acceptable tape controller types.' 000532 aa 040 146 157 154 000533 aa 154 157 167 151 000534 aa 156 147 040 151 000535 aa 163 040 141 040 000536 aa 154 151 163 164 000537 aa 040 157 146 040 000540 aa 141 143 143 145 000541 aa 160 164 141 142 000542 aa 154 145 040 164 000543 aa 141 160 145 040 000544 aa 143 157 156 164 000545 aa 162 157 154 154 000546 aa 145 162 040 164 000547 aa 171 160 145 163 000550 aa 056 000 000 000 000551 0a 001001 7020 00 554 tsx2 print_fwids  000552 aa 000020 000000 555 zero diskids-mpctbl  000553 0a 000512 7100 00 556 tra ask_again  000554 557 search_for_tape_fw: 000554 aa 777777 2350 11 558 lda -1,1 get the real firmware id 000555 0a 002277 7020 00 559 tsx2 fw_search look for it on tape  000556 0a 002412 7100 00 560 tra notpfw die if not found  561  000557 0a 002375 7020 00 562 tsx2 fw_adjust adjust the length  000560 0a 002120 7020 00 563 tsx2 send_image send out the firmware  564  000561 0a 003132 0340 00 565 ldac tapdev get boot device number  000562 aa 000014 7350 00 566 als 12 shift to position  000563 0a 003131 2550 00 567 orsa tapeno and set in tape number  568  569 " 570  000564 571 cycle:  000564 0a 002635 2340 00 572 szn boscom BOS command?  000565 0a 000327 6010 00 573 tnz bosexit if so, exit  574  000566 aa 012202 7020 00 575 tsx2 nextline get next input line 576  000567 aa 012040 2350 00 577 lda arg  000570 0a 005223 1150 00 578 cmpa =-1 see if null line 000571 0a 000564 6000 00 579 tze cycle yes, retry  580  000572 aa 000000 2210 03 581 ldx1 0,du  000573 aa 024300 5202 02 582 rpt (comtblend-comtbl)/2,2,tze search for command  000574 0a 000633 1150 11 583 cmpa comtbl,1  000575 aa 777777 6070 31 584 ttf -1,1* if found, dispatch to it  000576 585 command:  000576 aa 000000 2210 03 586 ldx1 0,du  000577 aa 060300 5202 02 587 rpt (mpctblend-mpctbl)/2,2,tze scan for mpc name  000600 0a 000657 1150 11 588 cmpa mpctbl,1  000601 0a 001720 6070 00 589 ttf loadit if found, go load F/W  590  000602 591 what_:  000602 0a 002635 2340 00 592 szn boscom BOS command?  000603 0a 000606 6000 00 593 tze help_msg nope, let the poor thing use help  000604 0a 000651 1150 00 594 cmpa help_cmnd has he asked for help? 000605 0a 000757 6000 00 595 tze help yes, do it.  000606 596 help_msg:  000606 aa 012241 7020 00 597 tsx2 erpt  000607 aa 110 165 156 153 598 acc 'unknown request - use help request for a list of valid controller types.' 000610 aa 156 157 167 156 000611 aa 040 162 145 161 000612 aa 165 145 163 164 000613 aa 040 055 040 165 000614 aa 163 145 040 150 000615 aa 145 154 160 040 000616 aa 162 145 161 165 000617 aa 145 163 164 040 000620 aa 146 157 162 040 000621 aa 141 040 154 151 000622 aa 163 164 040 157 000623 aa 146 040 166 141 000624 aa 154 151 144 040 000625 aa 143 157 156 164 000626 aa 162 157 154 154 000627 aa 145 162 040 164 000630 aa 171 160 145 163 000631 aa 056 000 000 000 000632 0a 000564 7100 00 599 tra cycle and try again  600  601 " 602  000633 603 comtbl: 000633 aa 202 066 215 144 604 bci ' warm'  000634 0a 000737 7100 00 605 tra go_to_bos  000635 aa 202 023 464 324 606 bci ' cold'  000636 0a 000737 7100 00 607 tra go_to_bos  000637 aa 454 321 222 543 608 bci 'nlabel'  000640 0a 000737 7100 00 609 tra go_to_bos  000641 aa 264 651 442 163 610 bci 'format'  000642 0a 000737 7100 00 611 tra go_to_bos  000643 aa 434 621 242 444 612 bci 'loaddm'  000644 0a 000737 7100 00 613 tra go_to_bos  000645 aa 204 721 632 330 614 bci ' patch'  000646 0a 000335 7100 00 615 tra patch  000647 aa 202 020 314 644 616 bci ' iom'  000650 0a 001015 7100 00 617 tra set_iom  000651 618 help_cmnd:  000651 aa 202 030 254 347 619 bci ' help'  000652 0a 000757 7100 00 620 tra help  000653 aa 202 124 644 447 621 bci ' adump'  000654 0a 000341 7100 00 622 tra adump  000655 aa 206 224 644 447 623 bci ' sdump'  000656 0a 000344 7100 00 624 tra sdump  000657 625 comtblend:  626  627  000657 628 mpctbl: 000657 aa 202 063 050 000 629 bci ' t500 m500' 000660 aa 202 044 050 000 000661 aa 202 063 050 001 630 bci ' t501 m500' 000662 aa 202 044 050 000 000663 aa 202 063 050 002 631 bci ' t502 m500' 000664 aa 202 044 050 000 000665 aa 202 063 060 000 632 bci ' t600 m500' 000666 aa 202 044 050 000 000667 aa 202 063 060 001 633 bci ' t601 m601' 000670 aa 202 044 060 001 000671 aa 202 063 060 002 634 bci ' t602 m601' 000672 aa 202 044 060 001 000673 aa 202 063 060 100 635 bci ' t610 m610' 000674 aa 202 044 060 100 000675 aa 202 063 060 101 636 bci ' t611 m610' 000676 aa 202 044 060 100 000677 637 diskids:  000677 aa 202 024 011 101 638 bci ' d191 m191' 000700 aa 202 044 011 101 000701 aa 202 024 011 100 639 bci ' d190 m190' 000702 aa 202 044 011 100 000703 aa 202 024 011 001 640 bci ' d181 m181' 000704 aa 202 044 011 001 000705 aa 202 024 040 000 641 bci ' d400 m191' 000706 aa 202 044 011 101 000707 aa 202 024 040 500 642 bci ' d450 m191' 000710 aa 202 044 011 101 000711 aa 202 024 040 501 643 bci ' d451 m191' 000712 aa 202 044 011 101 000713 aa 202 024 060 001 644 bci ' d601 m191' 000714 aa 202 044 011 101 000715 aa 202 024 060 003 645 bci ' d603 m191' 000716 aa 202 044 011 101 000717 aa 202 024 050 000 646 bci ' d500 d500' 000720 aa 202 024 050 000 000721 aa 202 024 060 007 647 bci ' d607 d500' 000722 aa 202 024 050 000 000723 aa 202 024 060 011 648 bci ' d609 d500' 000724 aa 202 024 050 000 000725 aa 202 024 060 101 649 bci ' d611 d500' 000726 aa 202 024 050 000 000727 aa 202 024 060 102 650 bci ' d612 d500' 000730 aa 202 024 050 000 000731 aa 202 024 100 000 651 dauid: bci ' d800 msp8'  000732 aa 202 044 624 710 000733 652 urid:  000733 aa 202 064 000 002 653 bci ' u002 ucmn' 000734 aa 202 064 234 445 000735 aa 202 064 060 000 654 bci ' u600 ucmn' 000736 aa 202 064 234 445 000737 655 mpctblend:  656  657 " 658  000737 659 go_to_bos:  000737 0a 005224 2350 00 660 lda =hloaddm get name of BOS loader  000740 0a 002277 7020 00 661 tsx2 fw_search get it into buffer 000741 0a 002424 7100 00 662 tra nobos  663  000742 0a 003131 2350 00 664 lda tapeno get tape channel and device  000743 aa 6 02015 7551 00 665 sta com|tapechanno save for loaddm 666  000744 aa 000100 1004 00 667 mlr (),(pr) copy small program somewhere else 000745 0a 000753 000020 668 desc9a absprogram,labsprogram*4  000746 aa 710000 000020 669 desc9a mem|origsetup,labsprogram*4 670  000747 0a 003122 2360 00 671 ldq kind get length of program  000750 aa 777777 3760 07 672 anq =-1,dl mask length  000751 aa 000002 7360 00 673 qls 2 compute character length  000752 aa 7 10000 7101 00 674 tra mem|origsetup copy loaddm and go to it 675  676  000753 677 absprogram: 000753 aa 0 00140 1005 40 678 mlr (pr,rl),(pr,rl) move BOS loadder into correct place  000754 aa 100000 000006 679 desc9a tmp|0,ql  000755 aa 300000 000006 680 desc9a pgm|0,ql  681  000756 aa 3 00001 7101 00 682 tra pgm|1 enter BOS loader  683  000004 684 equ labsprogram,*-absprogram  685  686 " 000757 687 help:  000757 aa 012241 7020 00 688 tsx2 erpt print heading  000760 aa 067 164 150 145 689 acc 'the following is a list of acceptable controller types.'  000761 aa 040 146 157 154 000762 aa 154 157 167 151 000763 aa 156 147 040 151 000764 aa 163 040 141 040 000765 aa 154 151 163 164 000766 aa 040 157 146 040 000767 aa 141 143 143 145 000770 aa 160 164 141 142 000771 aa 154 145 040 143 000772 aa 157 156 164 162 000773 aa 157 154 154 145 000774 aa 162 040 164 171 000775 aa 160 145 163 056 000776 0a 001001 7020 00 690 tsx2 print_fwids  000777 aa 000060 000000 691 zero mpctblend-mpctbl  001000 0a 000564 7100 00 692 tra cycle  693 "  694 "  001001 695 print_fwids:  001001 0a 001012 7420 00 696 stx2 pfwidsx save the x2  001002 aa 000000 6210 00 697 eax1 0 001003 698 pfwidsl:  001003 0a 000657 2360 11 699 ldq mpctbl,1 get fw id  001004 0a 001014 7560 00 700 stq temp_fw_id and stash it for print  001005 aa 012244 7020 00 701 tsx2 type type the id 001006 0a 001014 000001 702 zero temp_fw_id,1  001007 aa 000002 6210 11 703 eax1 2,1 move to next id  001010 0a 001012 1010 20 704 cmpx1 pfwidsx,* done yet? 001011 0a 001003 6010 00 705 tnz pfwidsl nope, continue  001012 706 pfwidsx:  001012 aa 000000 6220 00 707 eax2 *-*  001013 aa 000001 7100 12 708 tra 1,2 return  001014 709 temp_fw_id: 001014 aa 202 020 202 020 710 bci ' '  711 " 712  001015 713 set_iom:  001015 0a 005222 2350 00 714 lda =h a check IOM ID 001016 0a 005225 2360 00 715 ldq =h h ..  001017 aa 012041 1110 00 716 cwl arg+1 ..  001020 0a 002434 6010 00 717 tnz illiom .. 001021 aa 012041 2360 00 718 ldq arg+1 get IOM ID  001022 aa 000001 1760 07 719 sbq 1,dl minus 1  001023 aa 000007 3760 07 720 anq =o7,dl mask out extraneous bits  001024 aa 000002 1160 07 721 cmpq ioms,dl must be within range 001025 0a 002434 6050 00 722 tpl illiom 001026 aa 000032 7360 00 723 qls 18+8 multiply by 256  001027 aa 6 02011 0361 00 724 adlq com|iom_mbbase relocate to mailbox base  001030 aa 012042 2350 00 725 lda arg+2 get port number 001031 aa 7 00001 7551 02 726 sta mem|iom_cow,qu place in proper mailbox 727  001032 0a 000564 7100 00 728 tra cycle that's all  729  730 "  731  732 " If this program is bootloaded from tape by the IOM bootload program,  733 " the IOM mailbox will get overwritten with the contents of this  734 " tape record. It is imperitive that the previous contents be restored.  735 " It is the purpose of the following code to perform this restoration.  736  737  001120 738 equ mbx_org,program_offset+(imbx-128)  001120 739 org mbx_org  740  001120 741 bss ,128 IMW area 742  001320 743 bss ,2 for status storage 001322 744 bss ,2 for system fault storage  745  001324 746 bss ,3 001327 aa 001402 000002 747 vfd 18/imbx+2,6/,12/2 system fault DCW 748  001330 aa 000000 040000 749 vfd 18/0,o6/04,12/0 connect LPW  001331 750 bss ,3 751  001334 752 bss ,20  753  000070 754 dup 56 payload channel mailboxes  001360 aa 000003 020003 755 vfd 18/3,o6/02,12/3 LPW  001361 756 bss ,1 LPWX  001362 aa 001400 000000 757 vfd 18/imbx,6/,12/0 SCW  001363 758 bss ,1 DCW  759  760 dupend 001364 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001365 bss ,1 LPWX  001366 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001367 bss ,1 DCW   001370 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001371 bss ,1 LPWX  001372 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001373 bss ,1 DCW   001374 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001375 bss ,1 LPWX  001376 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001377 bss ,1 DCW   001400 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001401 bss ,1 LPWX  001402 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001403 bss ,1 DCW   001404 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001405 bss ,1 LPWX  001406 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001407 bss ,1 DCW   001410 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001411 bss ,1 LPWX  001412 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001413 bss ,1 DCW   001414 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001415 bss ,1 LPWX  001416 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001417 bss ,1 DCW   001420 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001421 bss ,1 LPWX  001422 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001423 bss ,1 DCW   001424 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001425 bss ,1 LPWX  001426 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001427 bss ,1 DCW   001430 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001431 bss ,1 LPWX  001432 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001433 bss ,1 DCW   001434 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001435 bss ,1 LPWX  001436 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001437 bss ,1 DCW   001440 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001441 bss ,1 LPWX  001442 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001443 bss ,1 DCW   001444 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001445 bss ,1 LPWX  001446 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001447 bss ,1 DCW   001450 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001451 bss ,1 LPWX  001452 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001453 bss ,1 DCW   001454 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001455 bss ,1 LPWX  001456 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001457 bss ,1 DCW   001460 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001461 bss ,1 LPWX  001462 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001463 bss ,1 DCW   001464 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001465 bss ,1 LPWX  001466 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001467 bss ,1 DCW   001470 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001471 bss ,1 LPWX  001472 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001473 bss ,1 DCW   001474 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001475 bss ,1 LPWX  001476 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001477 bss ,1 DCW   001500 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001501 bss ,1 LPWX  001502 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001503 bss ,1 DCW   001504 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001505 bss ,1 LPWX  001506 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001507 bss ,1 DCW   001510 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001511 bss ,1 LPWX  001512 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001513 bss ,1 DCW   001514 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001515 bss ,1 LPWX  001516 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001517 bss ,1 DCW   001520 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001521 bss ,1 LPWX  001522 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001523 bss ,1 DCW   001524 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001525 bss ,1 LPWX  001526 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001527 bss ,1 DCW   001530 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001531 bss ,1 LPWX  001532 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001533 bss ,1 DCW   001534 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001535 bss ,1 LPWX  001536 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001537 bss ,1 DCW   001540 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001541 bss ,1 LPWX  001542 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001543 bss ,1 DCW   001544 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001545 bss ,1 LPWX  001546 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001547 bss ,1 DCW   001550 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001551 bss ,1 LPWX  001552 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001553 bss ,1 DCW   001554 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001555 bss ,1 LPWX  001556 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001557 bss ,1 DCW   001560 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001561 bss ,1 LPWX  001562 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001563 bss ,1 DCW   001564 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001565 bss ,1 LPWX  001566 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001567 bss ,1 DCW   001570 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001571 bss ,1 LPWX  001572 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001573 bss ,1 DCW   001574 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001575 bss ,1 LPWX  001576 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001577 bss ,1 DCW   001600 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001601 bss ,1 LPWX  001602 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001603 bss ,1 DCW   001604 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001605 bss ,1 LPWX  001606 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001607 bss ,1 DCW   001610 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001611 bss ,1 LPWX  001612 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001613 bss ,1 DCW   001614 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001615 bss ,1 LPWX  001616 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001617 bss ,1 DCW   001620 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001621 bss ,1 LPWX  001622 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001623 bss ,1 DCW   001624 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001625 bss ,1 LPWX  001626 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001627 bss ,1 DCW   001630 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001631 bss ,1 LPWX  001632 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001633 bss ,1 DCW   001634 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001635 bss ,1 LPWX  001636 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001637 bss ,1 DCW   001640 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001641 bss ,1 LPWX  001642 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001643 bss ,1 DCW   001644 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001645 bss ,1 LPWX  001646 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001647 bss ,1 DCW   001650 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001651 bss ,1 LPWX  001652 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001653 bss ,1 DCW   001654 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001655 bss ,1 LPWX  001656 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001657 bss ,1 DCW   001660 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001661 bss ,1 LPWX  001662 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001663 bss ,1 DCW   001664 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001665 bss ,1 LPWX  001666 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001667 bss ,1 DCW   001670 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001671 bss ,1 LPWX  001672 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001673 bss ,1 DCW   001674 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001675 bss ,1 LPWX  001676 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001677 bss ,1 DCW   001700 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001701 bss ,1 LPWX  001702 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001703 bss ,1 DCW   001704 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001705 bss ,1 LPWX  001706 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001707 bss ,1 DCW   001710 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001711 bss ,1 LPWX  001712 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001713 bss ,1 DCW   001714 aa 000003 020003 vfd 18/3,o6/02,12/3 LPW  001715 bss ,1 LPWX  001716 aa 001400 000000 vfd 18/imbx,6/,12/0 SCW  001717 bss ,1 DCW   761  762 " 763  001720 764 loadit: 001720 0a 000733 1010 03 765 cmpx1 urid,du is this a unit record controller?  001721 0a 001724 6044 00 766 tmoz *+3 no, reset flag  001722 0a 002642 5540 00 767 stc1 urmpc_flag  001723 0a 001725 7100 00 768 tra *+2  001724 0a 002642 4500 00 769 stz urmpc_flag 770  001725 aa 012041 6350 00 771 eaa arg+1  001726 0a 002661 7550 00 772 sta the_arg  773  001727 0a 005222 2350 00 774 lda =h a check IOM ID 001730 0a 005225 2360 00 775 ldq =h h ..  001731 0a 002661 1110 20 776 cwl the_arg,* ..  001732 0a 002434 6010 00 777 tnz illiom .. 001733 0a 002661 2360 20 778 ldq the_arg,* consider IOM number 001734 0a 002717 7560 00 779 stq iomid  001735 aa 000007 3760 07 780 anq =o7,dl 001736 aa 000002 1160 07 781 cmpq ioms,dl  001737 0a 002434 6054 00 782 tpnz illiom  783  001740 aa 000001 2350 03 784 lda 1,du  001741 0a 002661 0550 00 785 asa the_arg point to next arg 786  001742 0a 002661 2350 20 787 lda the_arg,* consider channel number 001743 0a 002713 7550 00 788 sta mpc_chan  001744 aa 000010 1150 07 789 cmpa 8,dl lower limit 001745 0a 002442 6040 00 790 tmi illchan  001746 aa 000100 1150 07 791 cmpa chans,dl  001747 0a 002442 6050 00 792 tpl illchan  793  001750 aa 777777 2350 11 794 lda -1,1 get mpc real name  001751 0a 002277 7020 00 795 tsx2 fw_search look for file  001752 0a 002451 7100 00 796 tra fw_nf error exit if not there 797  001753 0a 002642 2340 00 798 szn urmpc_flag see if urmpc  001754 0a 002007 6000 00 799 tze not_urmpc_1 no, skip devname validation  800  001755 aa 000001 2350 03 801 lda 1,du  001756 0a 002661 0550 00 802 asa the_arg point to next arg 803  001757 0a 002661 7270 20 804 lxl7 the_arg,* see how many  001760 0a 002614 6044 00 805 tmoz badur 001761 aa 000010 1070 03 806 cmpx7 =8,du  001762 0a 002614 6050 00 807 tpl badur  001763 0a 002726 7470 00 808 stx7 parmct save for index comparison  809  001764 aa 000001 2350 03 810 lda 1,du  001765 0a 002661 0550 00 811 asa the_arg point to next arg 812  001766 aa 000000 6270 00 813 eax7 0 set for scan of carrd  001767 0a 002661 2350 77 814 urlp1: lda the_arg,*7 consider dev name 001770 0a 005223 1150 00 815 cmpa =-1 is it there at all?  001771 0a 002614 6000 00 816 tze badur  001772 0a 002727 7550 00 817 sta urtmp  818  001773 aa 000000 2210 03 819 ldx1 0,du set scan  001774 aa 016300 5202 02 820 rpt (urtblend-urtbl)/2,2,tze scan dev names  001775 0a 002065 1150 11 821 cmpa urtbl,1  001776 0a 002625 6064 00 822 ttn badurd not there, print error 823  001777 aa 777777 2350 11 824 lda -1,1 get translated name  002000 0a 002661 7550 77 825 sta the_arg,*7 826  002001 aa 000001 6270 17 827 eax7 1,7 move to next 002002 0a 002726 1070 00 828 cmpx7 parmct  002003 0a 001767 6040 00 829 tmi urlp1 ok  830  002004 0a 002661 2350 77 831 lda the_arg,*7 no more, no less  002005 0a 005223 1150 00 832 cmpa =-1  002006 0a 002614 6010 00 833 tnz badur  834  835 " 836  837 " Boot actual MPC.  838  002007 839 not_urmpc_1:  002007 aa 000001 2350 03 840 lda 1,du  002010 0a 002661 0550 00 841 asa the_arg point to next arg 002011 aa 000000 2350 07 842 lda 0,dl  002012 0a 002661 2360 20 843 ldq the_arg,* check for POF cycling value in mills  002013 0a 002017 6050 00 844 tpl *+4  002014 0a 002654 2370 00 845 ldaq pause_tm get default cycle value 002015 0a 002650 7570 00 846 staq pof_cycle_tm  002016 0a 002026 7100 00 847 tra end_pof_arg  002017 0a 005226 1160 00 848 cmpq =h wait see if user wants to only wait  002020 0a 002024 6010 00 849 tnz *+4 no, must be millisecond value 002021 0a 002650 4500 00 850 stz pof_cycle_tm yes, zero out cell  002022 0a 002651 4500 00 851 stz pof_cycle_tm+1 002023 0a 002026 7100 00 852 tra end_pof_arg  002024 aa 001750 4020 07 853 mpy 1000,dl convert to micro seconds  002025 0a 002650 7570 00 854 staq pof_cycle_tm  002026 855 end_pof_arg:  002026 0a 002375 7020 00 856 tsx2 fw_adjust adjust length of F/W image 002027 0a 002120 7020 00 857 tsx2 send_image  858  002030 0a 002642 2340 00 859 szn urmpc_flag see if urmpc  002031 0a 000564 6000 00 860 tze cycle no, get more commands  861  002032 aa 012044 6350 00 862 eaa arg+4  002033 0a 002661 7550 00 863 sta the_arg point to arg number 4 864  002034 aa 000000 6200 00 865 eax0 0 initialize index  002035 0a 002661 2350 70 866 urlp2: lda the_arg,*0 get type name 002036 0a 002061 6000 00 867 tze urnext if zero, already processed 002037 0a 002715 7550 00 868 sta fwid and save 869  002040 0a 002725 4500 00 870 stz lawd link adapter wd  002041 aa 200000 2360 03 871 ldq =o200000,du bits to put in lawd  872  002042 aa 000000 6270 00 873 eax7 0 count links  002043 874 urlp3:  002043 0a 002661 1150 77 875 cmpa the_arg,*7 this fwdim on this log channel?  002044 0a 002047 6010 00 876 tnz *+3 tra if not  002045 0a 002725 2560 00 877 orsq lawd render bit unto lawd  002046 0a 002661 4500 77 878 stz the_arg,*7 and clear argument  002047 aa 000001 7720 00 879 qrl 1 set up for next 880  002050 aa 000001 6270 17 881 eax7 1,7  002051 0a 002726 1070 00 882 cmpx7 parmct see if all covered  002052 0a 002043 6040 00 883 tmi urlp3 next log channel  884  002053 0a 002725 2340 00 885 szn lawd do we need this ovly?  002054 0a 002061 6000 00 886 tze urnext skip if not  887  002055 0a 002277 7020 00 888 tsx2 fw_search find F/W module  002056 0a 002463 7100 00 889 tra fw_ovl_nf  890  002057 0a 002375 7020 00 891 tsx2 fw_adjust adjust length  002060 0a 002237 7020 00 892 tsx2 urboot load it  893  002061 aa 000001 6200 10 894 urnext: eax0 1,0 step to next type 002062 0a 002726 1000 00 895 cmpx0 parmct are we finished? 002063 0a 002035 6040 00 896 tmi urlp2 if not, continue  002064 0a 000564 7100 00 897 tra cycle  898  899 "  900  002065 901 urtbl:  002065 aa 202 020 475 104 902 bci ' pr4 u400' 002066 aa 202 064 040 000 002067 aa 202 020 475 103 903 bci ' pr3 u303' 002070 aa 202 064 030 003 002071 aa 202 020 475 102 904 bci ' pr2 u203' 002072 aa 202 064 020 003 002073 aa 202 020 235 147 905 bci ' crp ucrp' 002074 aa 202 064 235 147 002075 aa 202 020 235 171 906 bci ' crz ucrp' 002076 aa 202 064 235 147 002077 aa 202 020 234 771 907 bci ' cpz ucrp' 002100 aa 202 064 235 147 002101 aa 202 045 464 525 908 bci ' none000000' 002102 aa 000 000 000 000 002103 909 urtblend:  910  911 " 912  913 " Set up DCW list.  914  915 " absa data 916 " eax7 tally  917 " tsx2 bldl 918  002103 919 bldl:  002103 aa 000006 7350 00 920 als 6 "convert from absa fmt to au  002104 0a 002671 6260 00 921 eax6 miot set up starting addr  002105 aa 010000 2750 07 922 ora =o10000,dl IOTP bit  923  002106 aa 000000 7550 16 924 bldll: sta 0,6 set IOTP DCW  002107 aa 010000 1070 03 925 cmpx7 4096,du can tally fit in 1 DCW? 002110 0a 002115 6044 00 926 tmoz bldlx if so, tra 002111 aa 010000 0350 03 927 adla =4096,du bump address  002112 aa 000001 6260 16 928 eax6 1,6 bump DCW index  002113 aa 770000 6270 17 929 eax7 -4096,7 decrement tally  002114 0a 002106 7100 00 930 tra bldll go back and do next DCW 931  002115 aa 007777 3670 03 932 bldlx: anx7 =o7777,du mask tally (needed if tally = 4096)  002116 aa 000000 4470 16 933 sxl7 0,6 place tally in list and make IOTD  934  002117 aa 000000 7100 12 935 tra 0,2  936  937 " 938  939 " Routine to send firmware out. 940  002120 941 send_image: 002120 0a 002236 7420 00 942 stx2 sim_x2  002121 0a 002235 7430 00 943 stx3 sim_x3  944  002122 aa 012241 7020 00 945 tsx2 erpt  002123 aa 033 142 157 157 946 acc 'booting ^g on IOM ^g chn ^o'  002124 aa 164 151 156 147 002125 aa 040 136 147 040 002126 aa 157 156 040 111 002127 aa 117 115 040 136 002130 aa 147 040 143 150 002131 aa 156 040 136 157 002132 aa 012040 0000 00 947 arg arg  002133 0a 002717 0000 00 948 arg iomid  002134 0a 002713 0000 00 949 arg mpc_chan  950  002135 0a 002717 2350 00 951 lda iomid get IOM number  002136 aa 000007 3750 07 952 ana =o7,dl .. 002137 aa 000001 1750 07 953 sba 1,dl minus 1  002140 aa 000006 7350 00 954 als 6 multiply by channels  002141 0a 002713 0750 00 955 ada mpc_chan insert channel number  002142 aa 000022 7350 00 956 als 18 shift to left-half 002143 0a 002714 7550 00 957 sta mpc_chan_high save 002144 aa 000011 7350 00 958 als 9 shift to PCW position  002145 0a 002667 7550 00 959 sta mpcw+1 and set in PCW 960  961  962 " Issue reset-and-mask-LC PCW.  963  002146 aa 000040 4130 00 964 rscr 32 read the clock  002147 0a 002644 7570 00 965 staq rsm_time and save  966  002150 0a 002710 2350 00 967 lda rsmlc_pcw  002151 0a 002666 7550 00 968 sta mpcw  969  002152 aa 012272 7020 00 970 tsx2 connect_iom  002153 0a 002666 000000 971 zero mpcw,0  972  002154 aa 000040 4130 00 973 rscr 32  002155 0a 002644 1770 00 974 sbaq rsm_time  002156 aa 047040 1160 07 975 cmpq =o047040,dl 20 milliseconds  002157 0a 002154 6040 00 976 tmi *-3 need to wait longer  977  002160 978 cs_boot:  002160 aa 000040 4130 00 979 rscr 32 read the clock  002161 0a 002646 7570 00 980 staq last_cs_io_tm save for CS time check  981  002162 0a 002707 2350 00 982 lda regular_pcw  002163 0a 002666 7550 00 983 sta mpcw  984  002164 0a 002704 2350 00 985 lda btdcw set up CS dcw  002165 0a 002670 7550 00 986 sta midcw  987  002166 0a 002724 7230 00 988 lxl3 wc get adjusted wc of file  002167 aa 1 00004 2271 13 989 ldx7 tmp|4,3 get address of R/W mem part  002170 aa 1 00000 2121 00 990 absa tmp|0 CS addr  002171 0a 002103 7020 00 991 tsx2 bldl  002172 aa 012272 7020 00 992 tsx2 connect_iom  002173 00 002666 002670 993 zero mpcw,midcw  994  002174 995 cs_wait_st: 002174 aa 012274 7020 00 996 tsx2 check_status  002175 0a 002714 0000 00 997 arg mpc_chan_high  002176 0a 002474 7100 00 998 tra chk_boot_tm  002177 0a 002517 7100 00 999 tra cs_boot_err  1000  002200 aa 040000 2350 07 1001 lda =o40000,dl delay as prescribed 002201 aa 000001 1350 07 1002 sbla 1,dl  002202 0a 002204 6000 00 1003 tze *+2  002203 0a 002201 7100 00 1004 tra *-2  1005  002204 aa 1 00004 2211 13 1006 ldx1 tmp|4,3 get rel addr of deck id card 002205 aa 1 00000 2121 11 1007 absa tmp|0,1 get addr of RWM stuff  002206 0a 002724 7270 00 1008 lxl7 wc get whole wc  002207 aa 1 00004 1271 13 1009 sblx7 tmp|4,3 get RWM wc  002210 0a 002103 7020 00 1010 tsx2 bldl  002211 0a 002705 2350 00 1011 lda mmdcw get special hokum  002212 0a 002670 7550 00 1012 sta midcw set to use  002213 aa 012272 7020 00 1013 tsx2 connect_iom  002214 00 002666 002670 1014 zero mpcw,midcw  1015  002215 aa 012274 7020 00 1016 tsx2 check_status  002216 0a 002714 0000 00 1017 arg mpc_chan_high  002217 0a 002215 7100 00 1018 tra *-2  002220 0a 002530 7100 00 1019 tra rw_boot_err  1020  002221 aa 012241 7020 00 1021 tsx2 erpt  002222 aa 036 142 157 157 1022 acc 'booted ^g with ^g ^g firmware.'  002223 aa 164 145 144 040 002224 aa 136 147 040 167 002225 aa 151 164 150 040 002226 aa 136 147 040 136 002227 aa 147 040 146 151 002230 aa 162 155 167 141 002231 aa 162 145 056 000 002232 aa 012040 0000 00 1023 arg arg  002233 0a 002715 0000 00 1024 arg fwid  002234 0a 002716 0000 00 1025 arg fwrev  1026  1027  002235 aa 000000 6230 00 1028 sim_x3: eax3 *-*  002236 aa 000000 7100 00 1029 sim_x2: tra *-* 1030  1031 " 1032  1033 " Routine to boot URMPC device overlay. 1034  002237 1035 urboot: 002237 0a 002276 7420 00 1036 stx2 urbx save exit  1037  002240 0a 002724 2360 00 1038 ldq wc get word count 002241 aa 000002 7360 00 1039 qls 2 compute character count 002242 aa 0 00140 1015 40 1040 mrl (pr,rl),(pr,rl) move everything down one word  002243 aa 100000 000006 1041 desc9a tmp|0,ql  002244 aa 100001 000006 1042 desc9a tmp|1,ql  1043  002245 0a 002724 7270 00 1044 lxl7 wc word count in X7  002246 aa 000001 0270 03 1045 adlx7 1,du plus one more  002247 aa 1 00000 2121 00 1046 absa tmp|0 get buffer address 002250 0a 002103 7020 00 1047 tsx2 bldl set up dcw's  1048  002251 0a 002707 2350 00 1049 lda regular_pcw restore good pcw  002252 0a 002666 7550 00 1050 sta mpcw  1051  002253 0a 002725 2360 00 1052 ldq lawd  002254 aa 1 00000 7561 00 1053 stq tmp|0 put in place  1054  002255 0a 002706 2350 00 1055 lda urdcw get special idcw  002256 0a 002670 7550 00 1056 sta midcw  1057  002257 aa 012272 7020 00 1058 tsx2 connect_iom wham!!!  002260 00 002666 002670 1059 zero mpcw,midcw  1060  002261 aa 012274 7020 00 1061 tsx2 check_status  002262 0a 002714 0000 00 1062 arg mpc_chan_high  002263 0a 002261 7100 00 1063 tra *-2  002264 0a 002533 7100 00 1064 tra ovly_boot_err  1065  002265 aa 012241 7020 00 1066 tsx2 erpt  002266 aa 025 142 157 157 1067 acc 'booted overlay ^g ^g.'  002267 aa 164 145 144 040 002270 aa 157 166 145 162 002271 aa 154 141 171 040 002272 aa 136 147 040 136 002273 aa 147 056 000 000 002274 0a 002715 0000 00 1068 arg fwid  002275 0a 002716 0000 00 1069 arg fwrev  1070  002276 aa 000000 7100 00 1071 urbx: tra *-*  1072  1073 " 1074  1075 " Routine to search for Firmware Module on tape.  1076  002277 1077 fw_search:  002277 0a 002341 7420 00 1078 stx2 fwshx2 save X2  002300 0a 002715 7550 00 1079 sta fwid save ID of F/W  1080  002301 0a 002635 2340 00 1081 szn boscom BOS entry? 002302 0a 002361 6010 00 1082 tnz fwsbos if so, search in BOS file dir  1083  002303 aa 012256 2350 00 1084 lda asgetab set up descriptor for MVT 002304 0a 002325 7550 00 1085 sta fwsmvt .. 002305 aa 000001 3360 07 1086 lcq 1,dl initialize switch to indicate first time 002306 0a 002711 7560 00 1087 stq srchsw .. 1088  002307 1089 fw_search_loop: 002307 0a 002733 7020 00 1090 tsx2 readtape read input tape 002310 0a 003122 2350 00 1091 lda kind look at record type  002311 0a 002343 6040 00 1092 tmi fw_search_again if negative, EOT  002312 aa 777777 3750 03 1093 ana =-1,du look at record type  002313 0a 002307 6010 00 1094 tnz fw_search_loop should be header record 1095  002314 aa 000000 6270 00 1096 eax7 0 name offset is 0 unless "fw."  002315 aa 0 00000 1065 00 1097 cmpc (pr),() check for "fw."  002316 aa 100006 000003 1098 desc9a tmp|sltlen,3  002317 0a 002640 000003 1099 desc9a fw.,3  002320 0a 002322 6010 00 1100 tnz *+2  002321 aa 000012 6270 00 1101 eax7 10 if "fw.", use last name component 1102  002322 aa 0 00000 1605 17 1103 mvt (pr,x7),() get name from header record 002323 aa 100006 000006 1104 desc9a tmp|sltlen,6 only 6 chars  002324 0a 002712 020006 1105 desc6a srchcmp,6  002325 0a 002325 0000 00 1106 fwsmvt: arg *  1107  002326 0a 002712 2350 00 1108 lda srchcmp is this correct name? 002327 aa 012260 7020 00 1109 tsx2 rjust (right-justified)  002330 0a 002715 1150 00 1110 cmpa fwid ..  002331 0a 002307 6010 00 1111 tnz fw_search_loop if not, look some more  1112  002332 0a 002733 7020 00 1113 tsx2 readtape read in the module  002333 0a 003122 2350 00 1114 lda kind get record type  002334 0a 002343 6040 00 1115 tmi fw_search_again test for EOT  002335 0a 002724 7510 07 1116 stca wc,07 save word count  002336 aa 777777 3750 03 1117 ana =-1,du mask type code 002337 aa 000001 1150 03 1118 cmpa 1,du must be segment record  002340 0a 002343 6010 00 1119 tnz fw_search_again if not, look some more 1120  002341 0a 002341 6220 00 1121 fwshx2: eax2 * restore X2  002342 aa 000001 7100 12 1122 tra 1,2 return to caller  1123  002343 1124 fw_search_again:  002343 0a 002711 0540 00 1125 aos srchsw first time?  002344 0a 002347 6000 00 1126 tze fw_research if so, rewind and try again  002345 1127 fwserr: 002345 0a 002341 2220 00 1128 ldx2 fwshx2 restore X2  002346 aa 000000 7100 12 1129 tra 0,2 take error return 1130  002347 1131 fw_research:  002347 0a 003132 2340 00 1132 szn tapdev cold tape MPC? 002350 0a 002345 6010 00 1133 tnz fwserr if so, cannot rewind tape  1134  002351 aa 012277 7020 00 1135 tsx2 xio_wait rewind the tape 002352 aa 000000 000000 1136 zero  002353 0a 003131 000070 1137 zero tapeno,56 002354 0a 002351 7100 00 1138 tra *-3  1139  002355 0a 003123 4500 00 1140 stz recno reset expected record number  002356 0a 003124 2220 00 1141 ldx2 tbufd reset buffer index 002357 0a 003125 7420 00 1142 stx2 tbufi .. 002360 0a 002307 7100 00 1143 tra fw_search_loop try again  1144  1145  002361 aa 012204 7020 00 1146 fwsbos: tsx2 search search for F/W file  002362 0a 002345 7100 00 1147 tra fwserr 002363 0a 005227 3750 00 1148 ana =o777777770777 Mask out extraneous bits.  002364 0a 003122 7550 00 1149 sta kind save length  1150  002365 aa 012234 7020 00 1151 tsx2 rdsec read in F/W file  002366 aa 1 00000 0001 00 1152 arg tmp|0  002367 0a 002345 7100 00 1153 tra fwserr 1154  002370 0a 003122 2350 00 1155 lda kind get length  002371 aa 000777 3750 07 1156 ana =o777,dl ..  002372 aa 000006 7350 00 1157 als 6 in words  002373 0a 002724 7550 00 1158 sta wc and save  1159  002374 0a 002341 7100 00 1160 tra fwshx2 return 1161  1162 " 1163  1164 " Procedure to adjust word count of Firmware Module.  1165  002375 1166 fw_adjust:  002375 0a 002724 2360 00 1167 ldq wc get unadjusted word count  002376 aa 777700 6360 06 1168 eaq -64,ql QU contains address of last 64 words  002377 0a 005230 2350 00 1169 lda =hmpcbot look for "mpcbot"  002400 aa 1 00000 1151 02 1170 cmpa tmp|0,qu ..  002401 0a 002404 6000 00 1171 tze *+3 until found  002402 aa 000001 6360 02 1172 eaq 1,qu ..  002403 0a 002400 7100 00 1173 tra *-3 ..  002404 aa 777767 6360 02 1174 eaq -9,qu leave off ID card now  002405 aa 000022 7720 00 1175 qrl 18 right-justify  002406 0a 002724 7560 00 1176 stq wc and save adjusted word count  1177  002407 aa 1 00001 2351 06 1178 lda tmp|1,ql get revision ID  002410 0a 002716 7550 00 1179 sta fwrev save for printing  1180  002411 aa 000000 7100 12 1181 tra 0,2 return  1182  1183 "  1184  002412 aa 012241 7020 00 1185 notpfw: tsx2 erpt  002413 aa 030 143 141 156 1186 acc 'cannot find ^g firmware.' 002414 aa 156 157 164 040 002415 aa 146 151 156 144 002416 aa 040 136 147 040 002417 aa 146 151 162 155 002420 aa 167 141 162 145 002421 aa 056 000 000 000 002422 aa 012040 0000 00 1187 arg arg  002423 0a 000530 7100 00 1188 tra help_tapes 1189  002424 aa 012241 7020 00 1190 nobos: tsx2 erpt  002425 aa 027 143 141 156 1191 acc 'cannot find BOS loader.'  002426 aa 156 157 164 040 002427 aa 146 151 156 144 002430 aa 040 102 117 123 002431 aa 040 154 157 141 002432 aa 144 145 162 056 002433 0a 000564 7100 00 1192 tra cycle  1193  002434 aa 012241 7020 00 1194 illiom: tsx2 erpt  002435 aa 014 151 156 166 1195 acc 'invalid IOM.' 002436 aa 141 154 151 144 002437 aa 040 111 117 115 002440 aa 056 000 000 000 002441 0a 000564 7100 00 1196 tra cycle  1197  002442 aa 012241 7020 00 1198 illchan: tsx2 erpt  002443 aa 020 151 156 166 1199 acc 'invalid channel.' 002444 aa 141 154 151 144 002445 aa 040 143 150 141 002446 aa 156 156 145 154 002447 aa 056 000 000 000 002450 0a 000564 7100 00 1200 tra cycle  1201  002451 aa 012241 7020 00 1202 fw_nf: tsx2 erpt  002452 aa 032 146 151 162 1203 acc 'firmware for ^g not found.'  002453 aa 155 167 141 162 002454 aa 145 040 146 157 002455 aa 162 040 136 147 002456 aa 040 156 157 164 002457 aa 040 146 157 165 002460 aa 156 144 056 000 002461 aa 012040 0000 00 1204 arg arg  002462 0a 000564 7100 00 1205 tra cycle  1206  002463 1207 fw_ovl_nf:  002463 aa 012241 7020 00 1208 tsx2 erpt  002464 aa 025 157 166 145 1209 acc 'overlay ^g not found.'  002465 aa 162 154 141 171 002466 aa 040 136 147 040 002467 aa 156 157 164 040 002470 aa 146 157 165 156 002471 aa 144 056 000 000 002472 0a 002715 0000 00 1210 arg fwid  002473 0a 002061 7100 00 1211 tra urnext 1212  002474 1213 chk_boot_tm:  002474 aa 000040 4130 00 1214 rscr 32 read the clock  002475 0a 002646 1770 00 1215 sbaq last_cs_io_tm subtract the last IO time  002476 0a 002656 1170 00 1216 cmpaq max_wait have we waited long enough 002477 0a 002174 6040 00 1217 tmi cs_wait_st no...  002500 aa 012241 7020 00 1218 tsx2 erpt  002501 aa 055 145 162 162 1219 acc 'error booting cs, no status after ^d seconds.'  002502 aa 157 162 040 142 002503 aa 157 157 164 151 002504 aa 156 147 040 143 002505 aa 163 054 040 156 002506 aa 157 040 163 164 002507 aa 141 164 165 163 002510 aa 040 141 146 164 002511 aa 145 162 040 136 002512 aa 144 040 163 145 002513 aa 143 157 156 144 002514 aa 163 056 000 000 002515 0a 002660 0000 00 1220 arg max_wait_in_seconds  002516 0a 000564 7100 00 1221 tra cycle  002517 1222 cs_boot_err:  002517 0a 002722 7570 00 1223 staq erstat  002520 aa 200000 3750 03 1224 ana =o200000,du mask All, but PWR-OFF  002521 0a 002527 6000 00 1225 tze *+6 Nop, report error 002522 aa 000040 4130 00 1226 rscr 32 read the clock  002523 0a 002644 1770 00 1227 sbaq rsm_time subtract reset/mask time  002524 0a 002656 1170 00 1228 cmpaq max_wait 002525 0a 002554 6040 00 1229 tmi pof_wait OK, to wait somemore 002526 0a 005231 2350 00 1230 lda =h cs  002527 0a 002535 7100 00 1231 tra boot_err_join  1232  002530 1233 rw_boot_err:  002530 0a 002722 7570 00 1234 staq erstat  002531 0a 005232 2350 00 1235 lda =h rw  002532 0a 002535 7100 00 1236 tra boot_err_join  1237  002533 1238 ovly_boot_err:  002533 0a 002722 7570 00 1239 staq erstat  002534 0a 002715 2350 00 1240 lda fwid  1241  002535 1242 boot_err_join:  002535 0a 002720 7550 00 1243 sta fwtype 002536 aa 012241 7020 00 1244 tsx2 erpt  002537 aa 042 145 162 162 1245 acc 'error booting ^g, status = ^w ^w.'  002540 aa 157 162 040 142 002541 aa 157 157 164 151 002542 aa 156 147 040 136 002543 aa 147 054 040 163 002544 aa 164 141 164 165 002545 aa 163 040 075 040 002546 aa 136 167 040 040 002547 aa 136 167 056 000 002550 0a 002720 0000 00 1246 arg fwtype 002551 0a 002722 0000 00 1247 arg erstat 002552 0a 002723 0000 00 1248 arg erstat+1  002553 0a 000564 7100 00 1249 tra cycle  1250  002554 1251 pof_wait:  002554 0a 002650 2370 00 1252 ldaq pof_cycle_tm  002555 0a 002565 6000 00 1253 tze *+8 if ZERO then make it ONE LONG wait  1254 " else, wait alittle while and try again 002556 aa 000040 4130 00 1255 rscr 32 read the clock  002557 0a 002650 0770 00 1256 adaq pof_cycle_tm  002560 0a 002652 7570 00 1257 staq end_pof_wait  002561 aa 000040 4130 00 1258 rscr 32  002562 0a 002652 1170 00 1259 cmpaq end_pof_wait 002563 0a 002561 6040 00 1260 tmi *-2  002564 0a 002160 7100 00 1261 tra cs_boot  002565 aa 012241 7020 00 1262 tsx2 erpt  002566 aa 077 160 157 167 1263 acc 'power off detected on boot, will wait ^d seconds and try again.'  002567 aa 145 162 040 157 002570 aa 146 146 040 144 002571 aa 145 164 145 143 002572 aa 164 145 144 040 002573 aa 157 156 040 142 002574 aa 157 157 164 054 002575 aa 040 167 151 154 002576 aa 154 040 167 141 002577 aa 151 164 040 136 002600 aa 144 040 163 145 002601 aa 143 157 156 144 002602 aa 163 040 141 156 002603 aa 144 040 164 162 002604 aa 171 040 141 147 002605 aa 141 151 156 056 002606 0a 002660 0000 00 1264 arg max_wait_in_seconds  002607 1265 pof_wait_loop:  002607 aa 000040 4130 00 1266 rscr 32  002610 0a 002644 1770 00 1267 sbaq rsm_time  002611 0a 002656 1170 00 1268 cmpaq max_wait 002612 0a 002607 6040 00 1269 tmi pof_wait_loop  002613 0a 002160 7100 00 1270 tra cs_boot  1271  002614 aa 012241 7020 00 1272 badur: tsx2 erpt  002615 aa 033 151 156 143 1273 acc 'inconsistent URMPC request.'  002616 aa 157 156 163 151 002617 aa 163 164 145 156 002620 aa 164 040 125 122 002621 aa 115 120 103 040 002622 aa 162 145 161 165 002623 aa 145 163 164 056 002624 0a 000564 7100 00 1274 tra cycle  1275  002625 aa 012241 7020 00 1276 badurd: tsx2 erpt  002626 aa 023 151 156 166 1277 acc 'invalid device: ^g.'  002627 aa 141 154 151 144 002630 aa 040 144 145 166 002631 aa 151 143 145 072 002632 aa 040 136 147 056 002633 0a 002727 0000 00 1278 arg urtmp  002634 0a 000564 7100 00 1279 tra cycle  1280  1281 " 1282  002635 1283 boscom: bss ,1 nonzero if entered as BOS command  002636 1284 x2: bss ,1  002637 1285 util_cwd: bss ,1 control word for utility package  002640 aa 146 167 056 000 1286 fw.: aci "fw."  1287  002641 1288 opcchan: bss ,1 002642 1289 urmpc_flag: 002642 1290 bss ,1 002643 aa 000000 0110 03 1291 even  002644 1292 rsm_time: bss ,2  002646 1293 last_cs_io_tm:  002646 1294 bss ,2 002650 1295 pof_cycle_tm:  002650 1296 bss ,2 002652 1297 end_pof_wait:  002652 1298 bss ,2 002654 aa 000000 000000 1299 pause_tm: oct 0,47040 20 milliseconds (in micros)  002655 aa 000000 047040 002656 aa 000000 000000 1300 max_wait: oct 0,46113200 10 seconds (in micros) 002657 aa 000046 113200 002660 1301 max_wait_in_seconds:  002660 aa 000000 000012 1302 oct 12 10 seconds 002661 1303 the_arg: bss ,1 address of current argument  1304 even  002662 aa 510000 700201 1305 opcpcw: vfd o6/51,6/0,6/0,o3/7,3/0,6/2,6/1 " Write alert command.  002663 aa 000000 000000 1306 vfd o9/0  1307  1308 even  002664 aa 570000 700201 1309 opcidpcw: vfd o6/57,6/0,6/0,o3/7,3/0,6/2,6/1 " Read ID status of LCC  002665 aa 000000 000000 1310 vfd o9/0  1311  1312 even  002666 aa 400000 720201 1313 mpcw: oct 400000720201  002667 aa 000000 000000 1314 oct 0  1315  002670 aa 000000 000000 1316 midcw: oct 0  002671 aa 000000 000000 1317 miot: oct 0 002672 1318 bss ,10  1319  002704 aa 100000 700000 1320 btdcw: vfd 6/8,6/0,6/0,3/7,3/0,6/0/,6/0 002705 aa 110000 700000 1321 mmdcw: vfd 6/9,6/0,6/0,3/7,3/0,6/0,6/0  002706 aa 360100 704000 1322 urdcw: vfd 6/30,6/1,6/0,3/7,3/0,3/4,3/0,6/0 002707 1323 regular_pcw:  002707 aa 400000 720201 1324 vfd 6/32,12/0,3/7,3/2,6/2,6/1  002710 1325 rsmlc_pcw:  002710 aa 400000 770201 1326 vfd 6/32,12/0,3/7,3/7,6/2,6/1  1327  1328  002711 1329 srchsw: bss ,1 counter for tape passes 002712 1330 srchcmp: bss ,1 holds name for comparison  1331  002713 1332 mpc_chan: bss ,1 MPC bootload channel  002714 1333 mpc_chan_high:  002714 1334 bss ,1 channel in upper  002715 1335 fwid: bss ,1 F/W module ID 002716 1336 fwrev: bss ,1 F/W module revision  002717 1337 iomid: bss ,1 IOM number  1338  002720 1339 fwtype: bss ,1 for error messages  002721 aa 000000 0110 03 1340 even  002722 1341 erstat: bss ,2 error status  1342  002724 1343 wc: bss ,1 word count  002725 1344 lawd: bss ,1 logical assignment for UR device  002726 1345 parmct: bss ,1 URMPC parameter count  002727 1346 urtmp: bss ,1  1347 even  002730 1348 cache_prog: 002730 1349 bss ,2  002732 aa 202062 423147 1350 cache_on: oct 202062423147  1351  1352 " 1353  1354  1355  1356 include bos_sdw  3-1 "  3-2 " BEGIN INCLUDE FILE sdw.incl.alm 02/12/74  3-3 "  000014 3-4 equ sdw.add_shift,12  007000 3-5 bool sdw.r1,007000 Ringbrack 1 (DL)  000700 3-6 bool sdw.r2,000700 Ringbrack 2 (DL)  000070 3-7 bool sdw.r3,000070 Ringbrack 3 (DL)  3-8  000004 3-9 bool sdw.df,000004 Directed fault bit (0 -> fault)  000003 3-10 bool sdw.fault_code,000003 Number of directed fault  3-11  377770 3-12 bool sdw.bound,377770 Bound field (DU)  000004 3-13 bool sdw.read,000004 Read permission bit (DU) 000002 3-14 bool sdw.execute,000002 Execute permission bit (DU)  000001 3-15 bool sdw.write,000001 Write permission bit (DU)  3-16  400000 3-17 bool sdw.privileged,400000 Privileged bit (DL) 200000 3-18 bool sdw.unpaged,200000 Unpaged bit (DL)  100000 3-19 bool sdw.entry_bound_sw,100000 Entry bound switch (DL) 040000 3-20 bool sdw.cache,040000 Cache enabled bit (DL)  037777 3-21 bool sdw.entry_bound,037777 Entry bound (DL)  3-22  3-23 "  3-24 " END INCLUDE FILE sdw.incl.alm  3-25 "  1357 include readtape  4-1 " 4-2 " Begin include file ...... readtape.incl.alm  4-3 " Created 9/15/75 by Noel I. Morris 4-4  002733 0a 002774 7420 00 4-5 readtape: stx2 rtx2 subr to read one log record  002734 0a 002775 7410 00 4-6 stx1 rtx1 save XR's  4-7  002735 0a 003125 2260 00 4-8 ldx6 tbufi buffer offset in X6  002736 0a 003124 2270 00 4-9 ldx7 tbufd compute lth of data left in buffer 002737 0a 003125 1670 00 4-10 sbx7 tbufi .. 002740 0a 002742 6054 00 4-11 tpnz *+2 if empty,  002741 0a 002777 7020 00 4-12 tsx2 tfill refill the buffer  4-13  002742 0a 003150 2350 16 4-14 lda tbuf,6 get control word  002743 0a 003122 7550 00 4-15 sta kind save it  002744 aa 000000 6210 05 4-16 eax1 0,al X1 contains data length 4-17  002745 aa 777777 6270 17 4-18 eax7 -1,7 decrement remaining length  002746 aa 000001 6260 16 4-19 eax6 1,6 increment offset 4-20  002747 aa 000000 1070 03 4-21 trlp: cmpx7 0,du buffer empty? 002750 0a 002752 6054 00 4-22 tpnz *+2 if so,  002751 0a 002777 7020 00 4-23 tsx2 tfill fill it  4-24  002752 0a 003126 7410 00 4-25 stx1 tlrl save length to xfer 002753 aa 000000 6350 17 4-26 eaa 0,7 remaining buffer length in AU 002754 0a 003126 1150 00 4-27 cmpa tlrl compare against desired length  002755 0a 002757 6044 00 4-28 tmoz *+2 take min 002756 0a 003126 2350 00 4-29 lda tlrl to get number of words to move  002757 0a 003127 7550 00 4-30 sta trlen save length to xfer this time  4-31  002760 aa 000000 6360 16 4-32 eaq 0,6 buffer offset in QU  002761 aa 000002 7370 00 4-33 lls 2 compute char offset and length  002762 aa 000140 1004 42 4-34 mlr (rl,qu),(pr,rl) move data  002763 0a 003150 000001 4-35 desc9a tbuf,au 002764 aa 100000 000001 4-36 desc9a tmp|0,au  4-37  002765 0a 003127 0510 00 4-38 adwp1 trlen bump data pointer 002766 0a 003127 0660 00 4-39 adx6 trlen bump buffer offset 002767 0a 003127 1670 00 4-40 sbx7 trlen decrement remaining buffer length  002770 0a 003127 1610 00 4-41 sbx1 trlen decrement remaining data length  002771 0a 002747 6054 00 4-42 tpnz trlp loop if more data to move  4-43  002772 0a 003125 7460 00 4-44 stx6 tbufi save buffer offset 002773 aa 1 00000 3511 00 4-45 rtxit: epbp1 tmp|0 set pointer back to base of buffer seg  002774 0a 002774 6220 00 4-46 rtx2: eax2 * restore XR's  002775 0a 002775 6210 00 4-47 rtx1: eax1 * ..  002776 aa 000000 7100 12 4-48 tra 0,2 return to caller  4-49  4-50 " 4-51  002777 0a 003065 7420 00 4-52 tfill: stx2 tfx2 save X2  003000 0a 003066 7400 00 4-53 stx0 tfx0 and X0  003001 0a 003123 0540 00 4-54 aos recno bump number 4-55  003002 0a 003140 4500 00 4-56 trbuf: stz thdr here to get new buffer 003003 0a 003147 4500 00 4-57 stz thdr+7 reset known words  003004 0a 003130 2260 00 4-58 ldx6 ttlr get pointer to trailer  003005 aa 000000 4500 16 4-59 stz 0,6 clear trailer words  003006 aa 000007 4500 16 4-60 stz 7,6 ..  4-61  003007 aa 012277 7020 00 4-62 tsx2 xio_wait read record 003010 0a 003140 202000 4-63 vfd 18/thdr,12/tbufl+16,6/0  003011 0a 003131 000005 4-64 zero tapeno,5  003012 0a 003007 7100 00 4-65 tra *-3 retry if error  4-66  003013 0a 003140 2350 00 4-67 lda thdr check known words  003014 0a 003147 2360 00 4-68 ldq thdr+7 003015 0a 003134 1170 00 4-69 cmpaq tkw  003016 0a 003002 6010 00 4-70 tnz trbuf  4-71  003017 0a 003145 2350 00 4-72 lda thdr+5 check for end of tape record  003020 aa 100000 3150 03 4-73 cana eor,du  003021 0a 003102 6010 00 4-74 tnz eot  003022 aa 600000 3150 03 4-75 cana admin,du ignore administrative records  003023 0a 003002 6010 00 4-76 tnz trbuf  4-77  003024 0a 003144 2360 00 4-78 ldq thdr+4 get # of data bits in record  003025 aa 000044 5060 07 4-79 div 36,dl compute # of words  003026 0a 003124 7520 70 4-80 stcq tbufd,70 save word count 4-81  003027 0a 003150 6260 06 4-82 eax6 tbuf,ql X6 points to record trailer  003030 0a 003130 7460 00 4-83 stx6 ttlr save trailer pointer  4-84  003031 aa 000000 2350 16 4-85 lda 0,6 check known words of trailer  003032 aa 000007 2360 16 4-86 ldq 7,6 ..  003033 0a 003136 1170 00 4-87 cmpaq tkw+2  003034 0a 003002 6010 00 4-88 tnz trbuf  4-89  003035 aa 004000 6340 07 4-90 ldi ovflm,dl turn overflow mask on  003036 aa 000000 2350 07 4-91 lda =0,dl clear A 003037 0a 003140 6260 00 4-92 eax6 thdr X6 first points to record header  003040 aa 000001 6270 00 4-93 eax7 1 X7 is shift count  4-94 odd; rpda 6,1 add up header words  003041 aa 015200 5602 01 003042 aa 000000 0710 16 4-95 awca 0,6 ..  003043 aa 000000 7750 17 4-96 alr 0,7 ..  003044 aa 000001 0710 16 4-97 awca 1,6 skip checksum word  003045 aa 000000 7750 17 4-98 alr 0,7  4-99  003046 0a 003130 2260 00 4-100 ldx6 ttlr X6 now points to record trailer 4-101 odd; rpda 8,1 add up trailer words 003047 aa 021200 5602 01 003050 aa 000000 0710 16 4-102 awca 0,6 ..  003051 aa 000000 7750 17 4-103 alr 0,7 ..  003052 aa 000000 0710 07 4-104 awca 0,dl add any last carry  4-105  003053 0a 003146 1150 00 4-106 cmpa thdr+6 check it  003054 0a 003002 6010 00 4-107 tnz trbuf  4-108  003055 0a 003130 2260 00 4-109 ldx6 ttlr X6 -> record trailer  003056 aa 000006 2350 16 4-110 lda 6,6 check recno  003057 0a 003123 1150 00 4-111 cmpa recno 003060 0a 003063 6000 00 4-112 tze *+3  003061 0a 003070 6050 00 4-113 tpl tback too high, backup  003062 0a 003002 7100 00 4-114 tra trbuf too low, read more  4-115  003063 0a 003124 2270 00 4-116 ldx7 tbufd buffer length in X7  003064 aa 000000 6260 00 4-117 eax6 0 buffer offset in X6  003065 0a 003065 6220 00 4-118 tfx2: eax2 * restore XR's  003066 0a 003066 6200 00 4-119 tfx0: eax0 * ..  003067 aa 000000 7100 12 4-120 tra 0,2 return  4-121  4-122  003070 0a 003132 2340 00 4-123 tback: szn tapdev reading on cold MPC? 003071 0a 003106 6010 00 4-124 tnz tapfatal if so, incapable of backspacing  4-125  003072 aa 000012 6200 00 4-126 eax0 10 here if too far down tape 003073 aa 012277 7020 00 4-127 backup: tsx2 xio_wait  003074 aa 000000 000000 4-128 zero  003075 0a 003131 000046 4-129 zero tapeno,38 backspace  003076 0a 003077 7100 00 4-130 tra *+1 ignore errors 003077 aa 777777 6200 10 4-131 eax0 -1,0  003100 0a 003073 6050 00 4-132 tpl backup 003101 0a 003002 7100 00 4-133 tra trbuf now, try here on tape  4-134  4-135  003102 aa 000001 3350 07 4-136 eot: lca 1,dl all one's in A  003103 0a 003122 7550 00 4-137 sta kind set end of tape indication  4-138  003104 0a 003066 2200 00 4-139 ldx0 tfx0 restore X0  003105 0a 002773 7100 00 4-140 tra rtxit and exit  4-141  4-142  003106 aa 012241 7020 00 4-143 tapfatal: tsx2 erpt 003107 aa 043 143 141 156 4-144 acc 'cannot reposition tape, reboot bos.'  003110 aa 156 157 164 040 003111 aa 162 145 160 157 003112 aa 163 151 164 151 003113 aa 157 156 040 164 003114 aa 141 160 145 054 003115 aa 040 162 145 142 003116 aa 157 157 164 040 003117 aa 142 157 163 056 003120 0a 003120 6160 00 4-145 dis *  003121 aa 777777 7100 04 4-146 tra -1,ic  4-147  4-148 " 4-149  003122 aa 000000 000000 4-150 kind: oct 0 logical record ID  003123 aa 000000 000000 4-151 recno: oct 0 physical record number  003124 4-152 tbufd: bss ,1 data length of tape record  003125 4-153 tbufi: bss ,1 offset into tape buffer  003126 4-154 tlrl: bss ,1 length of logical record  003127 4-155 trlen: bss ,1 number of words to move  003130 0a 005150 0000 00 4-156 ttlr: arg tbuf+tbufl pointer to tape record trailer 4-157  003131 4-158 tapeno: bss ,1 tape channel and device 003132 4-159 tapdev: bss ,1 non-zero if cold tape MPC  4-160  003133 aa 000000 0110 03 4-161 even  003134 aa 670314 355245 4-162 tkw: oct 670314355245,512556146073,107463422532,265221631704  003135 aa 512556 146073 003136 aa 107463 422532 003137 aa 265221 631704 4-163  100000 4-164 bool eor,100000  600000 4-165 bool admin,600000  4-166  002000 4-167 equ tbufl,1024 4-168  4-169 eight  003140 4-170 thdr: bss ,8  003150 4-171 tbuf: bss ,tbufl  005150 4-172 bss ,8 4-173  4-174 " End of include file ...... readtape.incl.alm  4-175  1358 include bos_tv 5-1 " 5-2 " Begin include file ...... bos_tv.incl.alm 5-3 " Created in November 1971 by N. I. Morris. 5-4 " Modified 9/9/76 by Noel I. Morris 5-5 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 5-6 " Modified November 1981 by C. Hornig to remove iom_connect_rel.  5-7 " Modified January 1982 by J. Bongiovanni to add getport_info  5-8 " Modified May 1982 by Sherman D. Sprague to add getmpc.  5-9  5-10 " BOS Utility Package Transfer Vector.  5-11  012000 5-12 equ pagectl,utilorg  012001 5-13 equ line,pagectl+1 012040 5-14 equ arg,line+31  012060 5-15 equ darg,arg+arglen+1  012100 5-16 equ earg,darg+arglen+1 012120 5-17 equ fltscu,earg+arglen+1  5-18  012200 5-19 equ tv_org,utilorg+128 5-20  012200 5-21 equ scan,tv_org+0  012201 5-22 equ arg_count,tv_org+1 012202 5-23 equ nextline,tv_org+2  012203 5-24 equ nlraw,tv_org+3 012204 5-25 equ search,tv_org+4  012205 5-26 equ makefil,tv_org+5  012206 5-27 equ ldcom,tv_org+6 012207 5-28 equ getsec,tv_org+7  012210 5-29 equ cvinit,tv_org+8  012211 5-30 equ rdev,tv_org+9  012212 5-31 equ wdev,tv_org+10 012213 5-32 equ phybos,tv_org+11  012214 5-33 equ bosphy,tv_org+12  012215 5-34 equ phyadd,tv_org+13  012216 5-35 equ mulbos,tv_org+14  012217 5-36 equ bosmul,tv_org+15  012220 5-37 equ lookup_devmodel,tv_org+16  012221 5-38 equ makesdw,tv_org+17  012222 5-39 equ argbos,tv_org+18  012223 5-40 equ argmul,tv_org+19  012224 5-41 equ amdvt,tv_org+20  012225 5-42 equ amfirst,tv_org+21  012226 5-43 equ amlast,tv_org+22  012227 5-44 equ cvnamla,tv_org+23  012230 5-45 equ sect_per_cyl_list,tv_org+24  012231 5-46 equ sect_per_dev_list,tv_org+25  012232 5-47 equ rec_per_dev_list,tv_org+26 012233 5-48 equ amaxio,tv_org+27  012234 5-49 equ rdsec,tv_org+28  012235 5-50 equ wtsec,tv_org+29  012236 5-51 equ disk_brief,tv_org+30  012237 5-52 equ itaper,tv_org+31  012240 5-53 equ itapew,tv_org+32  012241 5-54 equ erpt,tv_org+33 012242 5-55 equ ercv,tv_org+34 012243 5-56 equ erbuf,tv_org+35  012244 5-57 equ type,tv_org+36 012245 5-58 equ ttyinit,tv_org+37  012246 5-59 equ readcd,tv_org+38  012247 5-60 equ readtty,tv_org+39  012250 5-61 equ getprt,tv_org+40  012251 5-62 equ punch,tv_org+41  012252 5-63 equ octwd,tv_org+42  012253 5-64 equ geas,tv_org+43 012254 5-65 equ geastab,tv_org+44  012255 5-66 equ asge,tv_org+45 012256 5-67 equ asgetab,tv_org+46  012257 5-68 equ ljust,tv_org+47  012260 5-69 equ rjust,tv_org+48  012261 5-70 equ bzel,tv_org+49 012262 5-71 equ stripa,tv_org+50  012263 5-72 equ stripg,tv_org+51  012264 5-73 equ getconf,tv_org+52  012265 5-74 equ getmore,tv_org+53  012266 5-75 equ getperiph,tv_org+54  012267 5-76 equ rdclock,tv_org+55  012270 5-77 equ cvclock,tv_org+56  012271 5-78 equ init_io,tv_org+57  012272 5-79 equ connect_iom,tv_org+58  012273 5-80 equ getmpc,tv_org+59  012274 5-81 equ check_status,tv_org+60 012275 5-82 equ get_special_interrupt,tv_org+61  012276 5-83 equ get_status_interrupt,tv_org+62 012277 5-84 equ xio_wait,tv_org+63 012300 5-85 equ initint,tv_org+64  012301 5-86 equ wantflt,tv_org+65  012302 5-87 equ intno,tv_org+66  012303 5-88 equ intrpts1,tv_org+67 012304 5-89 equ hexwd,tv_org+68  012305 5-90 equ find_disk,tv_org+69  012306 5-91 equ find_root,tv_org+70  012307 5-92 equ find_part,tv_org+71  012310 5-93 equ check_status_no_stat,tv_org+72 012311 5-94 equ check_special_status,tv_org+73 012312 5-95 equ check_cpu_type,tv_org+74  012313 5-96 equ getportinfo,tv_org+75  5-97  5-98 " End of include file ...... bos_tv.incl.alm  5-99  1359 include bos_common 6-1 "  6-2 " Begin include file ...... bos_common.incl.alm 6-3 " Modified on 8/31/76 by N. I. Morris  6-4 " Modified on 9/01/80 by Sherman D. Sprague for DPS8 operation  6-5 " Modified on 5/26/82 by Sherman D. Sprague to lengthen config size 6-6 " Modified on 3/01/83 by Sherman D. Sprague to lengthen dirlen  6-7 " MACHINE CONDITIONS AREA  6-8 " Its length is "storlen". 6-9  000000 6-10 equ amptwregs,0 Ass. Mem PTW registers  000100 6-11 equ amptwptr,64 Ass. Mem PTW pointers 000200 6-12 equ amsdwregs,128 Ass. Mem SDW registers  000400 6-13 equ amsdwptr,256 Ass. Mem SDW pointers  000500 6-14 equ ouhist,320 operations hist regs  000700 6-15 equ cuhist,448 control unit hist regs  001100 6-16 equ eishist,576 eis hist regs  001300 6-17 equ aphist,704 appending unit hist regs  001500 6-18 equ prs,832 pointer regs  001520 6-19 equ regs,848 sreg 001530 6-20 equ low_order_port,856 port to read clock from 001532 6-21 equ mctime,858 bootload memory clock  001540 6-22 equ scu,864  001550 6-23 equ mcm,872 memory masks 8 ports 001570 6-24 equ dbr,888  001572 6-25 equ intrpts,890 waiting interrupts 001573 6-26 equ bar,891 bar  001574 6-27 equ modereg,892 processor & cache mode registers  001576 6-28 equ faultreg,894 processor fault register  001600 6-29 equ ptrlen,896 pointer-lengths EIS 0 mod 8 001610 6-30 equ coreblocks,904 array of port information  6-31 " Bits 0-17 => num 1st 64-word block  6-32 " Bits 18-35 => num of 64-word blocks  6-33 " (-1) => no mem on this port  001620 6-34 equ lowport_cfg,912 Saved CFG from bootload SCU  6-35  002000 6-36 equ storlen,1024  6-37  6-38  6-39  6-40 " BOS COMMAND DIRECTORY 6-41 " Its length is "dirlen".  6-42  002000 6-43 equ dir,1024 ( 0-23) => sector # of first sector on BOS disk  6-44 " (24-35) => # of sectors in BOS common  002001 6-45 equ used,dir+1 ( 0-23) => # of next available sector on BOS disk  002002 6-46 equ useable,dir+2 ( 0-23) => first unavailable sector on BOS disk  002003 6-47 equ corearea,dir+3 ( 0-23) => starting sector of Multics core image  6-48 " (24-35) => # of sectors in Multics core image  002004 6-49 equ setuparea,dir+4 Sector and length of setup 002005 6-50 equ utilarea,dir+5 where utility package is kept  002010 6-51 equ iom_mxbase,dir+8 IOM IMW area address  002011 6-52 equ iom_mbbase,dir+9 IOM mailbox base  002012 6-53 equ bos_dvt,dir+10 BOS disk loc: (o3/iom,o6/chn,o9/drive,o18/devtype)  002013 6-54 equ unitgroup,dir+11 disk unitgroup (device no. or area no.)  002014 6-55 equ diskchanno,dir+12 channel to be used for disk  002015 6-56 equ tapechanno,dir+13 channel # for tapes  002016 6-57 equ rdrchanno,dir+14 channel number for card reader  002017 6-58 equ ttychanno,dir+15 channel # for operator's tty  002020 6-59 equ quietsw,dir+16 if on, don't print card and macro commands  002021 6-60 equ inputsw,dir+17 read from tty, cards, macros  002022 6-61 equ macroloc,dir+18 disk addr, buffer index of macro file  002023 6-62 equ fdump_state,dir+19 completion flag for last FDUMP  002024 6-63 equ d355_state,dir+20 = 1 if DataNet 355 loaded successfully  002025 6-64 equ skipsw,dir+21 if on, skip runcom lines 002026 6-65 equ ttypmtsw,dir+22 if on, prompt  002027 6-66 equ curtcmd,dir+23 current bos command 002030 6-67 equ readysw,dir+24 if on, print ready message  002032 6-68 equ cmdlst,dir+26 list of commands 6-69  000600 6-70 equ dirlen,384 6-71  6-72  6-73  6-74 " MACRO BUFFER AREA 6-75  002600 6-76 equ macrobuf,dir+dirlen io buffer for macro files 002700 6-77 equ macroline,macrobuf+64 runcom command line 002716 6-78 equ macroargs,macroline+14 argument descriptors for runcom  6-79  6-80  6-81  6-82 " CONFIGURATION CARD AREA  6-83 " Its length is 2048 words.  6-84  003000 6-85 equ conf,macrobuf+128 start of configuration info  007000 6-86 equ econf,conf+2048 end of configuration info  000020 6-87 equ confl,16 length of each line  6-88  6-89  007000 6-90 equ seg6length,econf length of bos_common area segment 6-91  6-92 " End of include file ...... bos_common.incl.alm  6-93  1360  1361  1362 end  LITERALS 005220 aa 266643 462124 005221 aa 202020 462626 005222 aa 202020 202021 005223 aa 777777 777777 005224 aa 434621 242444 005225 aa 202020 202030 005226 aa 202066 213163 005227 aa 777777 770777 005230 aa 444723 224663 005231 aa 202020 202362 005232 aa 202020 205166 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 005233 5a 000003 000000 005234 5a 000017 600000 005235 aa 000000 000000 005236 55 000010 000002 005237 5a 000002 400003 005240 55 000006 000010 005241 aa 006 146 167 154 005242 aa 157 141 144 000 005243 55 000002 000003 005244 6a 000000 400002 005245 55 000013 000003 005246 aa 014 163 171 155 symbol_table  005247 aa 142 157 154 137 005250 aa 164 141 142 154 005251 aa 145 000 000 000 DEFINITIONS HASH TABLE  005252 aa 000000 000015 005253 aa 000000 000000 005254 aa 000000 000000 005255 aa 000000 000000 005256 aa 000000 000000 005257 aa 000000 000000 005260 aa 000000 000000 005261 5a 000010 000000 005262 aa 000000 000000 005263 aa 000000 000000 005264 aa 000000 000000 005265 aa 000000 000000 005266 aa 000000 000000 005267 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  005270 aa 000001 000000 005271 aa 000000 000000 INTERNAL EXPRESSION WORDS LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 005233 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 113225 000007 aa 335404 017656 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000020 000002 000016 aa 000064 000000 000017 aa 000000 000545 000020 aa 000000 000217 000021 aa 000000 000530 000022 aa 000533 000217 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 107112 157150 000035 aa 156163 157156 000036 aa 056123 171163 000037 aa 115141 151156 000040 aa 164056 141040 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 000007 000066 aa 000122 000043 000067 aa 132233 015352 000070 aa 000000 113224 000071 aa 006465 400000 000072 aa 000133 000040 000073 aa 113400 415301 000074 aa 000000 111341 000075 aa 220414 400000 000076 aa 000143 000043 000077 aa 122721 301436 000100 aa 000000 112272 000101 aa 246253 000000 000102 aa 000154 000041 000103 aa 105543 476637 000104 aa 000000 110555 000105 aa 260135 200000 000106 aa 000165 000042 000107 aa 060666 223063 000110 aa 000000 106067 000111 aa 446456 600000 000112 aa 000176 000040 000113 aa 110235 072677 000114 aa 000000 111024 000115 aa 524460 600000 000116 aa 000206 000044 000117 aa 121622 277475 000120 aa 000000 112162 000121 aa 321563 400000 000122 aa 076163 160145 >special_ldd>online>7055>fwload.alm 000123 aa 143151 141154 000124 aa 137154 144144 000125 aa 076157 156154 000126 aa 151156 145076 000127 aa 067060 065065 000130 aa 076146 167154 000131 aa 157141 144056 000132 aa 141154 155040 000133 aa 076154 144144 >ldd>bos>include>bosequ.incl.alm  000134 aa 076142 157163 000135 aa 076151 156143 000136 aa 154165 144145 000137 aa 076142 157163 000140 aa 145161 165056 000141 aa 151156 143154 000142 aa 056141 154155 000143 aa 076154 144144 >ldd>bos>include>bos_toequ.incl.alm 000144 aa 076142 157163 000145 aa 076151 156143 000146 aa 154165 144145 000147 aa 076142 157163 000150 aa 137164 157145 000151 aa 161165 056151 000152 aa 156143 154056 000153 aa 141154 155040 000154 aa 076154 144144 >ldd>bos>include>bos_sdw.incl.alm  000155 aa 076142 157163 000156 aa 076151 156143 000157 aa 154165 144145 000160 aa 076142 157163 000161 aa 137163 144167 000162 aa 056151 156143 000163 aa 154056 141154 000164 aa 155040 040040 000165 aa 076154 144144 >ldd>bos>include>readtape.incl.alm  000166 aa 076142 157163 000167 aa 076151 156143 000170 aa 154165 144145 000171 aa 076162 145141 000172 aa 144164 141160 000173 aa 145056 151156 000174 aa 143154 056141 000175 aa 154155 040040 000176 aa 076154 144144 >ldd>bos>include>bos_tv.incl.alm  000177 aa 076142 157163 000200 aa 076151 156143 000201 aa 154165 144145 000202 aa 076142 157163 000203 aa 137164 166056 000204 aa 151156 143154 000205 aa 056141 154155 000206 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000207 aa 076142 157163 000210 aa 076151 156143 000211 aa 154165 144145 000212 aa 076142 157163 000213 aa 137143 157155 000214 aa 155157 156056 000215 aa 151156 143154 000216 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  20 absi fwload: 84, bos_toequ: 75. 753 absprogram fwload: 668, 677, 684. 600000 admin readtape: 75, 165.  341 adump fwload: 410, 622.  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 fwload: 385, 387, 404, 405, 411, 417, 425, 534, 546, 577, 716, 718,  725, 771, 862, 947, 1023, 1187, 1204, bos_tv: 14, 15.  12222 argbos bos_tv: 39. 17 arglen fwload: 384, 385,  bosequ: 17, bos_tv: 15, 16, 17. 12223 argmul bos_tv: 40. 12201 arg_count bos_tv: 22. 301 ascom fwload: 85, 356.  12255 asge bos_tv: 66. 12256 asgetab fwload: 1084, bos_tv: 67. 512 ask_again fwload: 529, 536, 540, 556.  3073 backup readtape: 127, 132.  2614 badur fwload: 805, 807, 816, 833, 1272. 2625 badurd fwload: 822, 1276.  1573 bar bos_common: 26. 0 begin fwload: 81, 93, 106, 120, 129. 0 begin_program fwload: 44, 45, 47, 67, 290, 296.  2 bf bosequ: 9. 2103 bldl fwload: 919, 991, 1010, 1047.  2106 bldll fwload: 924, 930.  2115 bldlx fwload: 926, 932.  151 boot2 fwload: 106, 230.  30 bootload_base fwload: 66, 67.  136 bootload_info fwload: 158, 210, 238, 240, 241, 245, 329, 331, 347. 120 boot_die fwload: 171, 187, 538. 73 boot_end fwload: 147, 173.  356 boot_entry fwload: 374, 434.  2535 boot_err_join fwload: 1231, 1236, 1242. 43 boot_loop fwload: 142, 169.  54 boot_retry fwload: 153, 164, 170. 40 boot_tape fwload: 137, 267, 268, 278, 280. 2635 boscom fwload: 351, 358, 373, 400, 572, 592, 1081, 1283.  327 bosexit fwload: 363, 392, 573. 12217 bosmul bos_tv: 36. 12214 bosphy bos_tv: 33. 5200 bos_dbr fwload: 312, bos_toequ: 95. 2012 bos_dvt bos_common: 53. 5160 bos_pr fwload: 311, bos_toequ: 82. 2704 btdcw fwload: 985, 1320.  12261 bzel bos_tv: 70. 455 cache fwload: 522, 537.  2732 cache_on fwload: 535, 1350.  2730 cache_prog fwload: 522, 523, 524, 525, 526, 1348.  100 chans fwload: 60, 791.  12312 check_cpu_type bos_tv: 95. 12311 check_special_status bos_tv: 94. 12274 check_status fwload: 446, 456, 996, 1016, 1061, bos_tv: 81. 12310 check_status_no_stat bos_tv: 93. 2474 chk_boot_tm fwload: 998, 1213.  2032 cmdlst bos_common: 68. 6 com fwload: 318, 323, 330, 332, 338, 342, 344, 346, 478, 481, 516, 665,  724, bosequ: 14. 576 command fwload: 388, 585.  633 comtbl fwload: 582, 583, 603. 657 comtblend fwload: 582, 625.  3000 conf fwload: 320, 323,  bos_common: 85, 86.  20 confl bos_common: 87. 2 connect_channel fwload: 62, 249.  12272 connect_iom fwload: 442, 451, 489, 970, 992, 1013, 1058, bos_tv: 79. 2003 corearea bos_common: 47. 1610 coreblocks bos_common: 30. 60000 coresaved bos_toequ: 43, 65.  1 cow bos_toequ: 127. 1000 cowsav bos_toequ: 142. 2160 cs_boot fwload: 978, 1261, 1270. 2517 cs_boot_err fwload: 999, 1222.  2174 cs_wait_st fwload: 995, 1217.  700 cuhist bos_common: 15. 2027 curtcmd fwload: 342, bos_common: 66. 12270 cvclock bos_tv: 77. 12210 cvinit bos_tv: 29. 12227 cvnamla bos_tv: 44. 564 cycle fwload: 402, 407, 427, 571, 579, 599, 692, 728, 860, 897, 1192, 1196,  1200, 1205, 1221, 1249, 1274, 1279.  2024 d355_state bos_common: 63. 12060 darg bos_tv: 15, 16.  131 data_dcw fwload: 150, 203, 258. 130 data_idcw fwload: 154, 202.  731 dauid fwload: 651. 1570 dbr bos_common: 24. 576 devid bos_toequ: 140. 122 die_pair fwload: 190, 231.  2000 dir 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. 1003 dirbase bos_toequ: 145. 600 dirlen bos_common: 70, 76.  2014 diskchanno bos_common: 55. 677 diskids fwload: 555, 637.  12236 disk_brief bos_tv: 51. 6 drl fwload: 56. 0 ds fwload: 364, bosequ: 7. 5200 dseg fwload: 293, bos_toequ: 96. 346 dump_common fwload: 413, 421.  355 dump_word fwload: 422, 426, 430. 12100 earg bos_tv: 16, 17.  7000 econf fwload: 320, bos_common: 86, 90.  1100 eishist bos_common: 16. 2026 end_pof_arg fwload: 847, 852, 855. 2652 end_pof_wait fwload: 1257, 1259, 1297. 100000 eor readtape: 73, 164.  3102 eot readtape: 74, 136.  12243 erbuf bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt fwload: 423, 530, 541, 552, 597, 688, 945, 1021, 1066, 1185, 1190, 1194,  1198, 1202, 1208, 1218, 1244, 1262, 1272, 1276,  readtape: 143, bos_tv: 54. 2722 erstat fwload: 1223, 1234, 1239, 1247, 1248, 1341.  332 execint fwload: 368, 398.  1576 faultreg bos_common: 28. 2023 fdump_state bos_common: 62. 5 fgb fwload: 327, bosequ: 13. 12305 find_disk bos_tv: 90. 12307 find_part bos_tv: 92. 12306 find_root bos_tv: 91. 2000 firmware_bit bosequ: 20. 12120 fltscu bos_tv: 17. 100 flt_vector fwload: 53, 117, 126, 234, 253. 2640 fw. fwload: 1099, 1286.  2715 fwid fwload: 868, 1024, 1068, 1079, 1110, 1210, 1240, 1335.  2716 fwrev fwload: 1025, 1069, 1179, 1336.  2361 fwsbos fwload: 1082, 1146.  2345 fwserr fwload: 1127, 1133, 1147, 1153.  2341 fwshx2 fwload: 1078, 1121, 1128, 1160.  2325 fwsmvt fwload: 1085, 1106.  2720 fwtype fwload: 1243, 1246, 1339. 2375 fw_adjust fwload: 562, 856, 891, 1166.  2451 fw_nf fwload: 796, 1202.  2463 fw_ovl_nf fwload: 889, 1207.  2347 fw_research fwload: 1126, 1131.  2277 fw_search fwload: 559, 661, 795, 888, 1077. 2343 fw_search_again fwload: 1092, 1115, 1119, 1124.  2307 fw_search_loop fwload: 1089, 1094, 1111, 1143.  12253 geas bos_tv: 64. 12254 geastab bos_tv: 65. 12264 getconf bos_tv: 73. 12265 getmore bos_tv: 74. 12273 getmpc bos_tv: 80. 12266 getperiph bos_tv: 75. 12313 getportinfo 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. 737 go_to_bos fwload: 605, 607, 609, 611, 613, 659.  757 help fwload: 595, 620, 687. 651 help_cmnd fwload: 594, 618.  606 help_msg fwload: 593, 596.  530 help_tapes fwload: 551, 1188.  12304 hexwd bos_tv: 89. 124 ignore_pair fwload: 193, 252.  2442 illchan fwload: 790, 792, 1198. 2434 illiom fwload: 717, 722, 777, 782, 1194. 1400 imbx fwload: 738, 747, 757, 760,  bos_toequ: 67. 12300 initint fwload: 367, bos_tv: 85. 12271 init_io fwload: 371, bos_tv: 78. 2021 inputsw fwload: 344, bos_common: 60. 12302 intno bos_tv: 87. 1572 intrpts bos_common: 25. 12303 intrpts1 bos_tv: 88. 0 int_vector fwload: 52, 66.  2717 iomid fwload: 520, 779, 948, 951, 1337. 2 ioms fwload: 61, 721, 781. 1 iom_cow fwload: 63, 726.  2011 iom_mbbase fwload: 330, 346, 724, bos_common: 52. 2010 iom_mxbase fwload: 332, bos_common: 51. 12237 itaper bos_tv: 52. 12240 itapew bos_tv: 53. 3122 kind fwload: 671, 1091, 1114, 1149, 1155, readtape: 15, 137, 150. 4 labsprogram fwload: 668, 669, 684. 2646 last_cs_io_tm fwload: 980, 1215, 1293. 2725 lawd fwload: 870, 877, 885, 1052, 1344. 12206 ldcom bos_tv: 27. 12001 line bos_tv: 13, 14.  12257 ljust bos_tv: 68. 2000 lnbf bos_toequ: 57, 61, 104. 7000 lncom bos_toequ: 60, 63, 116, 136.  40 lnds fwload: 294, bos_toequ: 54, 55, 98. 100 lnflagbox fwload: 327, bos_toequ: 52, 113.  777777 lnmem bos_toequ: 45, 119.  27000 lnpgm bos_toequ: 65, 101.  10000 lnsetup bos_toequ: 48, 58, 107. 1720 loadit fwload: 589, 764.  7 lockup fwload: 57, 126, 253. 36 lockup_org fwload: 126, 127.  777777 log_header fwload: 47. 12220 lookup_devmodel bos_tv: 37. 1620 lowport_cfg bos_common: 34. 1530 low_order_port bos_common: 20. 11 lpwr bos_toequ: 128. 146 lrec_addr fwload: 174, 222, 497. 145 lrec_offset fwload: 140, 175, 178, 220, 494. 2716 macroargs bos_common: 78. 2600 macrobuf bos_common: 76, 77, 85. 2700 macroline bos_common: 77, 78.  2022 macroloc bos_common: 61. 0 mainc fwload: 33, 35.  12205 makefil bos_tv: 26. 12221 makesdw fwload: 362, bos_tv: 38. 10000 maxw bos_toequ: 72. 2656 max_wait fwload: 1216, 1228, 1268, 1300.  2660 max_wait_in_seconds fwload: 1220, 1264, 1301. 1001 mbbasesav bos_toequ: 143. 575 mbxloc bos_toequ: 139. 1120 mbx_org fwload: 738, 739.  1550 mcm bos_common: 23. 1532 mctime bos_common: 21. 7 mem fwload: 349, 381, 384, 394, 412, 500, 508, 669, 674, 726,  bosequ: 15. 2670 midcw fwload: 986, 993, 1012, 1014, 1056, 1059, 1316. 2671 miot fwload: 921, 1317.  2705 mmdcw fwload: 1011, 1321.  1574 modereg bos_common: 27. 657 mpctbl fwload: 548, 549, 555, 587, 588, 628, 691, 699.  737 mpctblend fwload: 548, 587, 655, 691.  2666 mpcw fwload: 335, 487, 490, 959, 968, 971, 983, 993, 1014, 1050, 1059, 1313.  2713 mpc_chan fwload: 518, 788, 949, 955, 1332. 2714 mpc_chan_high fwload: 957, 997, 1017, 1062, 1333. 12216 mulbos bos_tv: 35. 23 mv_pgm fwload: 97, 103.  1002 mxbasesav bos_toequ: 144. 12202 nextline fwload: 533, 544, 575, bos_tv: 23. 12203 nlraw bos_tv: 24. 2424 nobos fwload: 662, 1190.  407 noopc fwload: 449, 469.  414 notlcc fwload: 459, 476.  2412 notpfw fwload: 560, 1185.  2007 not_urmpc_1 fwload: 799, 839.  12252 octwd bos_tv: 63. 303 on fwload: 352, 360.  2641 opcchan fwload: 437, 447, 457, 480, 1288. 416 opcfound fwload: 460, 480.  2664 opcidpcw fwload: 440, 452, 1309. 405 opcnost fwload: 448, 466.  2662 opcpcw fwload: 439, 443, 1305. 357 opctest fwload: 436, 471.  403 opctypnost fwload: 458, 462.  376 opctypwait fwload: 455, 464.  367 opcwait fwload: 446, 467.  20000 origbf fwload: 50, bos_toequ: 58, 61, 103. 22000 origcom bos_toequ: 61, 63, 115, 136.  7740 origds fwload: 294, 297, 305, 307,  bos_toequ: 55, 97.  10020 origflagbox bos_toequ: 51, 112.  0 origmem bos_toequ: 46, 118.  31000 origpgm fwload: 105, 106,  bos_toequ: 63, 64, 65, 100.  10000 origsetup fwload: 669, 674,  bos_toequ: 49, 51, 55, 58, 106. 500 ouhist bos_common: 14. 4000 ovflm fwload: 255, bos_toequ: 76, readtape: 90. 2533 ovly_boot_err fwload: 1064, 1238.  12000 pagectl bos_tv: 12, 13.  2726 parmct fwload: 808, 828, 882, 895, 1345. 335 patch fwload: 404, 615.  2654 pause_tm fwload: 845, 1299.  0 pcw bos_toequ: 126. 1003 pfwidsl fwload: 698, 705.  1012 pfwidsx fwload: 696, 704, 706. 3 pgm fwload: 297, 305, 307, 313, 680, 682,  bosequ: 10. 31000 pgmorg bos_toequ: 64. 12215 phyadd bos_tv: 34. 12213 phybos bos_tv: 32. 2650 pof_cycle_tm fwload: 846, 850, 851, 854, 1252, 1256, 1295. 2554 pof_wait fwload: 1229, 1251.  2607 pof_wait_loop fwload: 1265, 1269.  1001 print_fwids fwload: 554, 690, 695. 777720 program_offset fwload: 67, 117, 120, 126, 129, 738.  1500 prs bos_common: 18. 1600 ptrlen bos_common: 29. 12251 punch bos_tv: 62. 2020 quietsw bos_common: 59. 12267 rdclock bos_tv: 76. 12211 rdev bos_tv: 30. 2016 rdrchanno bos_common: 57. 12234 rdsec fwload: 1151, bos_tv: 49. 12246 readcd bos_tv: 59. 2733 readtape fwload: 1090, 1113,  readtape: 5. 12247 readtty bos_tv: 60. 2030 readysw bos_common: 67. 3123 recno fwload: 501, 1140,  readtape: 54, 111, 151. 144 record_length fwload: 144, 146, 148, 149, 218, 499, 503. 12232 rec_per_dev_list bos_tv: 47. 1520 regs bos_common: 19. 2707 regular_pcw fwload: 982, 1049, 1323. 37 rewpu bos_toequ: 69, 98, 101, 104, 107, 113, 116, 119.  12260 rjust fwload: 1109, bos_tv: 69. 2710 rsmlc_pcw fwload: 486, 967, 1325. 2644 rsm_time fwload: 965, 974, 1227, 1267, 1292. 2775 rtx1 readtape: 6, 47.  2774 rtx2 readtape: 5, 46.  2773 rtxit readtape: 45, 140.  4000 runcom_bit bosequ: 19. 2530 rw_boot_err fwload: 1019, 1233.  12200 scan bos_tv: 21. 1540 scu bos_common: 22. 20000 scu_info fwload: 50, 190, 194, 195.  14 scwr bos_toequ: 124. 344 sdump fwload: 416, 624.  14 sdw.add_shift bos_sdw: 4. 377770 sdw.bound fwload: 306, 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 fwload: 1146, bos_tv: 25. 554 search_for_tape_fw fwload: 550, 557.  12230 sect_per_cyl_list bos_tv: 45. 12231 sect_per_dev_list bos_tv: 46. 5200 seg0 bos_toequ: 97. 5202 seg1 bos_toequ: 100. 5204 seg2 bos_toequ: 103. 5206 seg3 bos_toequ: 106. 5210 seg4 bos_toequ: 109. 5212 seg5 bos_toequ: 112. 5214 seg6 bos_toequ: 115. 7000 seg6length fwload: 315, bos_common: 90. 5216 seg7 bos_toequ: 118. 777760 seg_header fwload: 45, 46, 264. 20 seg_header_lth fwload: 42, 45, 95. 2120 send_image fwload: 563, 857, 941. 2004 setuparea bos_common: 49. 1015 set_iom fwload: 617, 713.  2236 sim_x2 fwload: 942, 1029.  2235 sim_x3 fwload: 943, 1028.  2025 skipsw bos_common: 64. 6 sltlen fwload: 40, 1098, 1104. 2712 srchcmp fwload: 1105, 1108, 1330. 2711 srchsw fwload: 1087, 1125, 1329. 2 statq bos_toequ: 125. 142 stat_mask fwload: 163, 213.  2000 storlen bos_common: 36. 12262 stripa bos_tv: 71. 12263 stripg bos_tv: 72. 200 swaplen bos_toequ: 137, 139, 140, 141.  3132 tapdev fwload: 513, 514, 565, 1132,  readtape: 123, 159.  2015 tapechanno fwload: 338, 516, 665, bos_common: 56. 3131 tapeno fwload: 339, 567, 664, 1137,  readtape: 64, 129, 158. 777750 tape_header fwload: 46, 67, 105, 142, 166, 203, 257, 260.  10 tape_header_lth fwload: 41, 46, 95, 101.  126 tape_pcw fwload: 199, 242, 247, 334.  143 tape_recno fwload: 151, 168, 216, 262.  134 tape_status fwload: 156, 161, 207, 250, 511. 3106 tapfatal readtape: 124, 143.  3070 tback readtape: 113, 123.  3150 tbuf fwload: 509, readtape: 14, 35, 82, 156, 171. 3124 tbufd fwload: 505, 1141,  readtape: 9, 80, 116, 152.  3125 tbufi fwload: 495, 1142,  readtape: 8, 10, 44, 153.  2000 tbufl readtape: 63, 156, 167, 171.  150 temp fwload: 82, 83, 226. 1014 temp_fw_id fwload: 700, 702, 709. 14 term fwload: 55, 66.  2777 tfill readtape: 12, 23, 52. 3066 tfx0 readtape: 53, 119, 139. 3065 tfx2 readtape: 52, 118.  3140 thdr readtape: 56, 57, 63, 67, 68, 72, 78, 92, 106, 170.  2661 the_arg fwload: 772, 776, 778, 785, 787, 802, 804, 811, 814, 825, 831, 841,  843, 863, 866, 875, 878, 1303.  3134 tkw readtape: 69, 87, 162. 3126 tlrl readtape: 25, 27, 29, 154.  1 tmp fwload: 364, 679, 989, 990, 1006, 1007, 1009, 1041, 1042, 1046, 1053, 1098,  1104, 1152, 1170, 1178,  bosequ: 8, readtape: 36, 45.  5160 toec fwload: 29, 35.  1000 toelen bos_toequ: 135, 139, 140, 141, 142, 143, 144, 145.  31000 toesaved bos_toequ: 136. 3002 trbuf readtape: 56, 70, 76, 88, 107, 114, 133. 3127 trlen readtape: 30, 38, 39, 40, 41, 155.  2747 trlp readtape: 21, 42.  37 trouble fwload: 58, 117.  116 trouble_org fwload: 117, 118, 183. 3130 ttlr readtape: 58, 83, 100, 109, 156. 577 ttychan bos_toequ: 141. 2017 ttychanno fwload: 481, bos_common: 58. 12245 ttyinit fwload: 377, 483,  bos_tv: 58. 2026 ttypmtsw fwload: 478, bos_common: 65. 332 ttyrequest fwload: 378, 399, 484. 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 fwload: 701, bos_tv: 57. 2013 unitgroup bos_common: 54. 2237 urboot fwload: 892, 1035.  2276 urbx fwload: 1036, 1071.  2706 urdcw fwload: 1055, 1322.  733 urid fwload: 652, 765.  1767 urlp1 fwload: 814, 829.  2035 urlp2 fwload: 866, 896.  2043 urlp3 fwload: 874, 883.  2642 urmpc_flag fwload: 767, 769, 798, 859, 1289. 2061 urnext fwload: 867, 886, 894, 1211.  2065 urtbl fwload: 820, 821, 901. 2103 urtblend fwload: 820, 909.  2727 urtmp fwload: 817, 1278, 1346. 2002 useable bos_common: 46. 2001 used bos_common: 45. 2005 utilarea bos_common: 50. 12000 utilorg fwload: 285, 289, 290, bosequ: 22, bos_tv: 12, 19.  147 util_addr fwload: 224, 279, 282. 2637 util_cwd fwload: 284, 299, 1285. 12301 wantflt bos_tv: 86. 2724 wc fwload: 988, 1008, 1038, 1044, 1116, 1158, 1167, 1176, 1343. 12212 wdev bos_tv: 31. 602 what_ fwload: 591. 12235 wtsec bos_tv: 50. 2636 x2 fwload: 357, 380, 392, 1284.  12277 xio_wait fwload: 1135, readtape: 62, 127,  bos_tv: 84. 4 xs1 bosequ: 11. 5 xs2 bosequ: 12. 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