ASSEMBLY LISTING OF SEGMENT >spec>hard>MR11.0>setup.alm ASSEMBLED ON: 05/23/85 2133.4 mst Thu 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  7 " setup, contains the bos toehold and command sys  8 " Modified for IOM operation on 10/7/71 by N. I. Morris 9 " Modified for use of the utility package on 11/5/71 by N. I. Morris  10 " Modified for use on follow-on on 5/11/72 by D R Vinograd  11 " Modified 8/79 by R.J.C. Kissel for expanded BOS.  12 " Modified 4/30/80 by Mike Grady to modify clock pkg.  13 " Modified 9/01/80 by Sherman D. Sprague for DPS8 support  14 " Modified 10/5/81 by Sherman D. Sprague for change in AM store procedure.  15 " Modified 1/08/82 by J. Bongiovanni to do spl on RTB  16 " Modified 9/28/82 by J. Bongiovanni to grab an interrupt mask on RTB, 4MW SCU  17 " Modified 1/22/85 by Paul Farley to add a time delay after status store to 18 " allow for the DAU to do its interrupt service.  19  20 " ******************************************************  21 " * *  22 " * *  23 " * Copyright (c) 1972 by Massachusetts Institute of *  24 " * Technology and Honeywell Information Systems, Inc. *  25 " * *  26 " * *  27 " ******************************************************  28  29  000000 30 name setup 31  32  33 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  34  000002 35 bool scr_mr.id.4mw,000002  36  37 use toec place toehold info after body of program 38  39 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 007660 2-82 bos_pr: 007660 aa 000000 000043 2-83 its 0,0 pr0 -> seg 0 etc  007661 aa 000000 000000 007662 aa 000001 000043 2-84 its 1,0  007663 aa 000000 000000 007664 aa 000002 000043 2-85 its 2,0  007665 aa 000000 000000 007666 aa 000003 000043 2-86 its 3,0  007667 aa 000000 000000 007670 aa 000004 000043 2-87 its 4,0  007671 aa 000000 000000 007672 aa 000005 000043 2-88 its 5,0  007673 aa 000000 000000 007674 aa 000006 000043 2-89 its 6,0  007675 aa 000000 000000 007676 aa 000007 000043 2-90 its 7,0  007677 aa 000000 000000 2-91  2-92  2-93 " BOS descriptor segment template.  2-94  007700 2-95 bos_dbr:  007700 2-96 dseg:  007700 aa 000077 400004 2-97 seg0: vfd 24/origds,9/0,o3/4  007701 aa 000017 600000 2-98 vfd 1/0,14/(lnds/16-1),5/rewpu,15/0  2-99  007702 aa 000310 000004 2-100 seg1: vfd 24/origpgm,9/0,o3/4  007703 aa 013377 600000 2-101 vfd 1/0,14/(lnpgm/16-1),5/rewpu,15/0  2-102  007704 aa 000200 000004 2-103 seg2: vfd 24/origbf,9/0,o3/4  007705 aa 000777 600000 2-104 vfd 1/0,14/(lnbf/16-1),5/rewpu,15/0  2-105  007706 aa 000100 000004 2-106 seg3: vfd 24/origsetup,9/0,o3/4 007707 aa 003777 600000 2-107 vfd 1/0,14/(lnsetup/16-1),5/rewpu,15/0 2-108  007710 aa 000000 000000 2-109 seg4: zero  007711 aa 000000 000000 2-110 zero  2-111  007712 aa 000100 200004 2-112 seg5: vfd 24/origflagbox,9/0,o3/4  007713 aa 000037 600000 2-113 vfd 1/0,14/(lnflagbox/16-1),5/rewpu,15/0  2-114  007714 aa 000220 000004 2-115 seg6: vfd 24/origcom,9/0,o3/4  007715 aa 003377 600000 2-116 vfd 1/0,14/(lncom/16-1),5/rewpu,15/0  2-117  007716 aa 000000 000004 2-118 seg7: vfd 24/origmem,9/0,o3/4  007717 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  40  41  42 use mainc use standard location counter  43 join /text/mainc,toec  44  45  46 include fgbx  3-1  3-2 "BEGIN INCLUDE FILE fgbx.incl.alm  3-3  3-4 " Reconstructed by BSG 8/30/78 from a listing of Noel's;  3-5 " Apparently, the version of 10/07/76 got lost. 3-6 " Modified 8/79 by R.J.C. Kissel to add 32 words for FNP blast message. 3-7 " Modified 7/82 BIM -- 8 words for sentinel, and sentinel  3-8 " macro.  3-9  3-10 " NOTE: THIS INCLUDE FILE DESCRIBES THE FLAGBOX WITHIN THE BOS TOEHOLD, WHICH  3-11 " HAS NO VALUE WHATSOEVER. THE REAL MULTICS/BCE TOEHOLD FLAGBOX IS DESCRIBED  3-12 " BY THE FLAGBOX INCLUDE FILE.  3-13  3-14 "  3-15 " Structure fgbx  3-16 "  000100 3-17 equ fgbx_size,64  3-18  000000 3-19 equ fgbx.flags_word,0  400000 3-20 bool fgbx.flags,400000 "DU  3-21  000001 3-22 equ fgbx.slt_segno,1 "UPPER  3-23  000002 3-24 equ fgbx.cpus,2 "LEVEL 2  3-25  000034 3-26 equ fgbx.ports_shift,28  000571 3-27 equ fgbx.ports_mask,000377 000025 3-28 equ fgbx.tags_shift,21 000007 3-29 equ fgbx.tags_mask,000007  3-30  000003 3-31 equ fgbx.rtb,3 "LEVEL 2  3-32  400000 3-33 bool fgbx.ssenb,400000 "DU  200000 3-34 bool fgbx.call_bos,200000 "DU  100000 3-35 bool fgbx.shut,100000 "DU 040000 3-36 bool fgbx.mess,040000 "DU 020000 3-37 bool fgbx.alert,020000 "DU  000000 3-38 equ fgbx.bos_entry_shift,0 000077 3-39 bool fgbx.bos_entry_mask,000077  3-40  000004 3-41 equ fgbx.sentinel,4 "DOUBLE  000014 3-42 equ fgbx.sst_sdw,12 "DOUBLE  000016 3-43 equ fgbx.hc_dbr,14 "DOUBLE  000020 3-44 equ fgbx.message,16 "DOUBLE  000040 3-45 equ fgbx.fnp_blast,32 "DOUBLE 3-46  3-47 macro flagbox_sentinel 1 3-48 aci "Flagbox && Toehold Valid",32  2 3-49 &end  3-50  3-51 "END INCLUDE FILE fgbx.incl.alm  47  48  49 " 50 " ***************************************************************************** 51 "  52 " IMPORTANT NOTE ! ! ! IMPORTANT NOTE ! ! ! IMPORTANT NOTE ! ! !  53 "  54 " The toehold M_U_S_T_ be 0 mod 64 locations long because  55 " it must fit into an integral number of disk sectors.  56 "  57 " Also, bce (actually bootload_flagbox) knows the contents of the three 58 " BOS entry sequences (locations 0 to 5 below). Any changes to these  59 " locations must be reflected in bce.  60 "  61 " ***************************************************************************** 62  63 " Here starts the toe hold prog. Loc 10000(8) follows.  64 " The toehold saves BOS memory up to pgm using kprog in loaddm. Then setup 65 " saves the rest of BOS memory which is pgm and util.  66  000000 67 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  68  000000 0a 010370 6572 00 69 scu origsetup+tscu save control unit  000001 0a 010007 6302 00 70 ret origsetup+switchentry and go to common entry code  71  000002 0a 010370 6572 00 72 scu origsetup+tscu entry to ignore switch setting 000003 0a 010010 6302 00 73 ret origsetup+bosentry 74  000004 0a 010370 6572 00 75 scu origsetup+tscu here from Multics, bump ILC  000005 0a 010011 6302 00 76 ret origsetup+mulentry 77  000006 0a 011114 7102 00 78 tra origsetup+lstart here after loading BOS  79  000007 80 switchentry:  000007 0a 010120 020220 81 vfd 18/origsetup+savmach,6/2,12/scu.ir.bm+scu.ir.abs  82  000010 83 bosentry:  000010 0a 010120 000220 84 vfd 18/origsetup+savmach,6/0,12/scu.ir.bm+scu.ir.abs  85  000011 86 mulentry:  000011 0a 010120 010220 87 vfd 18/origsetup+savmach,6/1,12/scu.ir.bm+scu.ir.abs  88  89  90  000012 aa 000000 000000 91 thist_off:oct 0 to turn off history registers  000013 aa 000000 000003 92 cache_off:oct 3 to turn off cache  93  000014 aa 000000 000000 94 swapsw: oct 0 non-zero when mailbox swapped  000015 aa 000000 000000 95 savsw: oct 0 non-zero when machine image saved 96  000016 0a 010251 7102 00 97 lkp_tra: tra origsetup+lkp_done tra on lockup fault 98  99  100  000020 101 org origflagbox-origsetup flagbox area follows 102  000020 103 flagbox: bss ,lnflagbox 104  105 " 106  000120 0a 010316 4522 06 107 savmach: scpr origsetup+tmode,06 save mode register  000121 0a 010012 6742 04 108 lcpr origsetup+thist_off,04 turn off history registers 000122 0a 010013 6742 02 109 lcpr origsetup+cache_off,02 and cache  000123 0a 010360 4476 00 110 spl origsetup+treg un-wedge EIS box  000124 0a 010360 7532 00 111 sreg origsetup+treg save machine  112  000125 aa 010023 7542 00 113 sti origflagbox+fgbx.rtb save indicators  000126 aa 010023 2352 00 114 lda origflagbox+fgbx.rtb indicators in AL  000127 aa 000014 7712 00 115 arl 12 entry code in AL  000130 aa 000077 3752 07 116 ana =o77,dl mask the entry code  000131 aa 010023 7512 07 117 stca origflagbox+fgbx.rtb,07 and save it  118  000132 aa 000002 6012 04 119 tnz 2,ic if zero, entered from BOS  000133 0a 010015 4502 00 120 stz origsetup+savsw force saving of machine image 121  000134 aa 000001 1152 07 122 cmpa 1,dl if one, entered from Multics  000135 aa 000004 6012 04 123 tnz 4,ic must bump ILC by 1  000136 aa 000001 2352 03 124 lda =1,du  000137 0a 010374 0352 00 125 adla origsetup+tscu+scu.ilc_word  000140 0a 010374 7552 00 126 sta origsetup+tscu+scu.ilc_word  127  000141 0a 010014 2342 00 128 szn origsetup+swapsw already in toehold?  000142 0a 010204 6012 00 129 tnz origsetup+noswap1  000143 aa 000040 4132 00 130 rscr 4*8 read the clock  000144 0a 010320 7572 00 131 staq origsetup+tclock and save it 000145 aa 000030 4132 00 132 rscr 3*8 read the interrupt cells  000146 0a 010314 7572 00 133 staq origsetup+savint save pending interrupts 134  000147 aa 000700 6272 00 135 eax7 7*64 RSCR index in X7  000150 aa 000016 6262 00 136 eax6 7*2 controller mask index in X6 000151 aa 000020 4132 17 137 svmcm: rscr 2*8,7 read a mask 000152 0a 010326 7572 16 138 staq origsetup+tmcm,6 and save it 000153 aa 000000 4312 07 139 fld 0,dl clear AQ  000154 aa 000020 0572 17 140 sscr 2*8,7 turn off mask bits  000155 aa 777700 6272 17 141 eax7 -64,7 decrement RSCR index  000156 aa 777776 6262 16 142 eax6 -2,6 and mask index 000157 0a 010151 6052 00 143 tpl origsetup+svmcm loop for all masks  144  000160 aa 000000 4312 07 145 fld 0,dl  000161 0a 010400 7572 00 146 staq origsetup+saved_cfg  000162 aa 000000 2202 03 147 ldx0 SC_MR*8,du Get mode register 000163 0a 010406 4132 20 148 rscr origsetup+low_port_x0,* On bootload SCU  000164 aa 000002 3162 03 149 canq scr_mr.id.4mw,du 4MW SCU?  000165 0a 010202 6002 00 150 tze origsetup+skip_mask_set No 000166 aa 000010 2202 03 151 ldx0 SC_CFG*8,du Read/diddle config register  000167 0a 010406 4132 20 152 rscr origsetup+low_port_x0,* On bootload SCU  000170 0a 010400 7572 00 153 staq origsetup+saved_cfg Save for later  000171 0a 010404 3772 00 154 anaq origsetup+cfg_mask_mask Strip out Mask A/B  000172 0a 010402 7572 00 155 staq origsetup+new_cfg  000173 aa 000064 7732 00 156 lrl scr_cfg2.port_no_shift+36 000174 aa 000017 3762 07 157 anq scr_cfg2.port_no_mask,dl Our port number to QL 000175 aa 400000 2352 03 158 lda =o400000,du Mask A to port 0  000176 aa 000000 7712 06 159 arl 0,ql Mask A to our port  000177 aa 001000 2362 03 160 ldq =o001000,du Mask B off  000200 0a 010402 2772 00 161 oraq origsetup+new_cfg Rest of CFG register  000201 0a 010406 0572 20 162 sscr origsetup+low_port_x0,* Set it  000202 163 skip_mask_set:  000202 aa 000116 2372 00 164 ldaq fvloc+lockup*2 save lockup fault loc 000203 0a 010324 7572 00 165 staq origsetup+locsav  000204 0a 010322 2372 00 166 noswap1: ldaq origsetup+scurcu replace with scurcu 000205 aa 000116 7572 00 167 staq fvloc+lockup*2  168  169 " 170  000206 0a 010014 2342 00 171 szn origsetup+swapsw already done?  000207 0a 010211 6012 00 172 tnz origsetup+noswap2 yup 000210 0a 010261 7022 00 173 tsx2 origsetup+swap swap mailbox with mine  000211 0a 010014 7502 00 174 noswap2: stc2 origsetup+swapsw done it 175  000212 0a 010015 2342 00 176 szn origsetup+savsw should we save memory image?  000213 0a 010216 6012 00 177 tnz origsetup+nosav if not, don't write out memory  178  000214 aa 000000 6272 00 179 eax7 0 write out memory  000215 0a 010271 7022 00 180 tsx2 origsetup+ioprog  181  000216 aa 000001 6272 00 182 nosav: eax7 1 and read in setup  000217 0a 010271 7022 00 183 tsx2 origsetup+ioprog  184  000220 0a 010261 7022 00 185 tsx2 origsetup+swap swap back toehold mailbox 000221 0a 010014 4502 00 186 stz origsetup+swapsw reset for swap  187  000222 0a 010015 2342 00 188 szn origsetup+savsw machine image to be saved?  000223 0a 011004 6002 00 189 tze origsetup+setup if so, go save it 000224 0a 011114 7102 00 190 tra origsetup+lstart otherwise, just enter main control  191  192 "  193 " Come here to restart machine image.  194  000225 195 tcont:  000225 aa 000002 6272 00 196 eax7 2 read in core  000226 0a 010271 7022 00 197 tsx2 origsetup+ioprog  198  000227 0a 010261 7022 00 199 tsx2 origsetup+swap restore mailbox  200  000230 0a 010015 4502 00 201 stz origsetup+savsw indicate machine image restored  202  000231 0a 010400 2372 00 203 ldaq origsetup+saved_cfg Bootload SCU CFG register 000232 0a 010235 6002 00 204 tze origsetup+skip_mask_restore Not to do 000233 aa 000010 2202 03 205 ldx0 SC_CFG*8,du  000234 0a 010406 0572 20 206 sscr origsetup+low_port_x0,* Restore it  000235 207 skip_mask_restore:  000235 aa 000700 6272 00 208 eax7 7*64 SSCR index in X7  000236 aa 000016 6262 00 209 eax6 7*2 controller mask index in X6  000237 0a 010326 2372 16 210 rsmcm: ldaq origsetup+tmcm,6 get mask  000240 aa 000020 0572 17 211 sscr 2*8,7 set in controller  000241 aa 777700 6272 17 212 eax7 -64,7 decrement SSCR index  000242 aa 777776 6262 16 213 eax6 -2,6 and mask index  000243 0a 010237 6052 00 214 tpl origsetup+rsmcm loop for all masks 215  000244 0a 010016 2352 00 216 lda origsetup+lkp_tra set up to wait for lockup fault  000245 aa 000116 7552 00 217 sta fvloc+lockup*2 000246 aa 000001 2352 03 218 lda 1,du one in AU  000247 aa 000001 1752 07 219 sba 1,dl wait for lockup to go off  000250 aa 777777 6056 04 220 tpnz -1,ic continue if no lockup occurs  000251 221 lkp_done: " YOU NOW HAVE 32 MS TO TURN OFF INHIBIT. GO!  222  000251 0a 010324 2372 00 223 ldaq origsetup+locsav restore lockup fault 000252 aa 000116 7572 00 224 staq fvloc+lockup*2  225  000253 0a 010314 2372 00 226 ldaq origsetup+savint restore interrupts  000254 aa 000030 0572 00 227 sscr 3*8 ..  228  000255 0a 010360 0732 00 229 lreg origsetup+treg restore regs  000256 0a 010316 6742 04 230 lcpr origsetup+tmode,04 restore mode register  000257 0a 010317 6742 02 231 lcpr origsetup+tmode+1,02 restore cache mode register 000260 0a 010370 6132 00 232 rcu origsetup+tscu and continue prog  233  234 "  235  000261 aa 000177 6272 00 236 swap: eax7 swaplen-1 interchange top half of toeho 000262 aa 010575 2352 77 237 swapl: lda origsetup+mbxloc,*7 with mailbox 000263 0a 010600 2362 17 238 ldq origsetup+dprog,7  000264 aa 010575 7562 77 239 stq origsetup+mbxloc,*7  000265 0a 010600 7552 17 240 sta origsetup+dprog,7  000266 aa 777777 6272 17 241 eax7 -1,7  000267 0a 010262 6052 00 242 tpl origsetup+swapl  000270 aa 000000 7102 12 243 tra 0,2  244  245  246  000271 247 ioprog: 000271 aa 010576 2352 00 248 lda origsetup+devid  000272 aa 000007 7712 00 249 arl 9-2 (was in 3-8) 4*channel = mbx index  000273 aa 000000 6262 01 250 eax6 0,au  000274 aa 001414 2362 00 251 ldq scwr+imbx  000275 aa 001402 7562 16 252 stq imbx+2,6  000276 aa 001411 2362 17 253 ldq lpwr+imbx,7  000277 aa 001400 7562 16 254 stq imbx+0,6  255  000300 aa 001402 4502 00 256 stz statq+imbx clear status  000301 aa 001401 0152 00 257 cioc cow+imbx start io  258  000302 aa 001402 2352 00 259 lda statq+imbx examine status  000303 aa 777777 6002 04 260 tze -1,ic wait for it to come in  261 "  262 " Now pause for status interrupt to complete (~ 350 - 550 usec).  263 "  000304 aa 000377 2362 07 264 ldq =o377,dl  000305 aa 000001 1762 07 265 sbq 1,dl  000306 aa 000000 0112 00 266 nop  000307 aa 777776 6012 04 267 tnz -2,ic  268  000310 0a 010313 3152 00 269 cana origsetup+statmsk check for error 000311 0a 010271 6012 00 270 tnz origsetup+ioprog if error, try again  000312 aa 000000 7102 12 271 tra 0,2  272  000313 aa 370000 770000 273 statmsk: oct 370000770000  274  275 "  276  277 even  000314 278 savint: bss ,2 interrupt bits for SMIC 279  280 even  000316 281 tmode: bss ,2 mode registers  282  283 even  000320 284 tclock: bss ,2 time of toehold entry  285  286 even  000322 0a 010350 6572 00 287 scurcu: scu origsetup+lkp_scu ignore lockup faults  000323 0a 010350 6132 00 288 rcu origsetup+lkp_scu  289  290 even  000324 291 locsav: bss ,2 lockup fault vector saved here  292  293  294 even  000326 295 tmcm: bss ,16 controller masks saved here  296  000346 aa 000000 0112 03 297 eight  000347 aa 000000 0112 03 000350 298 lkp_scu: bss ,8 SCU area for lockup faults 299  300 eight  000360 301 treg: bss ,8 registers saved here temporarily  302  303 eight  000370 304 tscu: bss ,8 SCU data saved here temporarily  305  306 even  000400 307 saved_cfg:  000400 308 bss ,2 Saved CFG for bootload SCU 000402 309 new_cfg:  000402 310 bss ,2 Used to build our CFG  311 even  000404 312 cfg_mask_mask:  000404 aa 000777 777777 313 oct 000777777777 Mask out Mask A and Mask B  000405 aa 000777 777777 314 oct 000777777777  000406 315 low_port_x0:  000406 aa 000000 0002 10 316 arg 0,x0 Used to access bootload SCU sscr/rscr  317  318  000575 319 org mbxloc 000575 aa 000000 000000 320 zero 0 mbxloc 321  000576 322 org devid  000576 aa 000000 000000 323 zero 0 devid (3/iom,6/chn,9/devno,18/type)  324  325  000577 326 org ttychan  000577 aa 000000 000000 327 zero 0 ttychan  328  000600 329 bss dprog,swaplen space for IOM program  330  331 mod 64 This guarantees the toehold is an  332 " integral number of sectors long.  333 "  334 " This is BOS main control. 335 " loc 4600(8) follows  336  001000 337 org cowsav begin non-toehold part of setup  001000 aa 000000 000000 338 zero 0,0 cowsave  339  001001 340 org mbbasesav  001001 aa 000000 0002 00 341 arg 0 mbbasesave  342  001002 343 org mxbasesav  001002 aa 000000 0002 00 344 arg 0 mxbasesave  345  001003 346 org dirbase  001003 aa 000000 000070 347 vfd 24/0,12/seg6length/64 dirbase  348  349  001004 350 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  351  001004 352 setup:  001004 0a 011514 7022 00 353 tsx2 origsetup+savemc  354  001005 0a 010015 7502 00 355 stc2 origsetup+savsw indicate machine image has been saved 356  001006 0a 011454 7022 00 357 tsx2 origsetup+iappend load pointer regs, dbr, init IOM,  001007 358 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  359  001007 aa 001003 2350 00 360 lda dirbase write out machine cond  001010 0a 007720 3750 00 361 ana =o777777770000 001011 aa 000020 2750 07 362 ora dir/64,dl  001012 0a 003321 7020 00 363 tsx2 wtsec 001013 aa 6 00000 0111 00 364 nop com|0  001014 0a 001014 6160 00 365 dis *  366  001015 aa 001003 2350 00 367 lda dirbase read in dir  001016 0a 007721 0750 00 368 ada =v24/dir/64  001017 aa 000020 1750 07 369 sba dir/64,dl  001020 0a 003317 7020 00 370 tsx2 rdsec 001021 aa 6 02000 0111 00 371 nop com|dir  001022 0a 001022 6160 00 372 dis *  373  001023 0a 001505 7020 00 374 tsx2 setone  375  001024 aa 6 02023 4501 00 376 stz com|fdump_state initialize for if command  377  001025 aa 6 02003 2351 00 378 lda com|corearea get loc'n of saved memory 001026 0a 007720 3750 00 379 ana =o777777770000 mask out the sector count  001027 0a 007722 0750 00 380 ada =v24/origsetup/64,12/toelen/64 add offset of toehold  001030 0a 003321 7020 00 381 tsx2 wtsec write out the toehold  001031 aa 7 10000 0111 00 382 nop mem|origsetup since toehold skipped itself 001032 0a 001032 6160 00 383 dis *  384  001033 aa 6 02003 2351 00 385 lda com|corearea save remainder of low core  001034 0a 007723 0750 00 386 ada =v24/toesaved/64 increment the sector number by what the  387 " toehold saved.  001035 aa 000310 1750 07 388 sba toesaved/64,dl decrement the sector count by what the  389 " toehold saved.  001036 0a 003321 7020 00 390 tsx2 wtsec 001037 aa 7 31000 0111 00 391 nop mem|toesaved  001040 0a 001040 6160 00 392 dis *  393  001041 0a 002020 7020 00 394 tsx2 getportinfo initialize port array 001042 aa 6 01530 2221 00 395 ldx2 com|low_order_port setup for RSCR/SSCR  001043 aa 7 10406 7421 00 396 stx2 mem|origsetup+low_port_x0 397  001044 0a 007724 2350 00 398 lda =v24/fvloc/64 restore lockup fault loc 001045 aa 6 02003 0751 00 399 ada com|corearea on disk  001046 0a 001701 7510 74 400 stca fltloc,74 001047 0a 001701 2350 00 401 lda fltloc 001050 0a 003317 7020 00 402 tsx2 rdsec read sector  001051 aa 1 00000 0111 00 403 nop tmp|0  001052 0a 001052 6160 00 404 dis *  405  001053 0a 000324 2370 00 406 ldaq locsav get old pair  001054 aa 1 00016 7571 00 407 staq tmp|lockup*2  001055 0a 001701 2350 00 408 lda fltloc 001056 0a 003321 7020 00 409 tsx2 wtsec 001057 aa 1 00000 0111 00 410 nop tmp|0  001060 0a 001060 6160 00 411 dis *  412  001061 0a 004153 7020 00 413 tsx2 type get fresh line on console  001062 0a 007725 000001 414 zero =h??????,1  415  001063 0a 000023 2350 00 416 lda flagbox+fgbx.rtb see if BOS entered manually  001064 aa 000077 3750 07 417 ana fgbx.bos_entry_mask,dl ..  001065 aa 000001 1150 07 418 cmpa 1,dl .. 001066 0a 001077 6000 00 419 tze tstmsg if not, test for panic message  420  001067 0a 003630 7020 00 421 tsx2 erpt print message  001070 aa 025 102 117 123 422 acc "BOS entered manually."  001071 aa 040 145 156 164 001072 aa 145 162 145 144 001073 aa 040 155 141 156 001074 aa 165 141 154 154 001075 aa 171 056 000 000 001076 0a 001140 7100 00 423 tra cready .. 424  001077 0a 000023 2350 00 425 tstmsg: lda flagbox+fgbx.rtb look at BOS return flags  001100 aa 040000 3150 03 426 cana fgbx.mess,du message for to print?  001101 0a 001140 6000 00 427 tze cready if not, give ready message 001102 aa 040000 6750 03 428 era fgbx.mess,du turn off bit  001103 0a 000023 7550 00 429 sta flagbox+fgbx.rtb ..  430  001104 aa 020000 3150 03 431 cana fgbx.alert,du turn on audible alarm?  001105 0a 001107 6000 00 432 tze *+2 if not, skip call 001106 0a 004225 7020 00 433 tsx2 ttyalert sound the alarm 434  001107 0a 003630 7020 00 435 tsx2 erpt print message  001110 aa 002 136 101 000 436 acc "^A"  001111 0a 001113 0000 00 437 arg fgmsdesc  438  001112 0a 001140 7100 00 439 tra cready 440  001113 0a 000040 000100 441 fgmsdesc: desc9a flagbox+fgbx.message,64  442  443 "  001114 444 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  445  001114 446 lstart: 001114 0a 011454 7022 00 447 tsx2 origsetup+iappend here at startup and for troub  448  001115 449 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  450  001115 aa 001003 2350 00 451 lda dirbase readin mach cond  001116 0a 003317 7020 00 452 tsx2 rdsec 001117 aa 6 00000 0111 00 453 nop com|0  001120 0a 001120 6160 00 454 dis *  455  001121 aa 6 02021 2351 00 456 lda com|inputsw look at input mode 001122 aa 000036 7710 00 457 arl 30 .. 001123 aa 000002 1150 07 458 cmpa 2,dl in runcom?  001124 0a 001132 6040 00 459 tmi execint if not, skip following  001125 aa 6 02021 2351 00 460 lda com|inputsw pop to previous source 001126 aa 000006 7350 00 461 als 6 ..  001127 aa 6 02021 7551 00 462 sta com|inputsw .. 001130 aa 6 02022 4501 00 463 stz com|macroloc clear runcom flags  001131 aa 6 02025 4501 00 464 stz com|skipsw ..  465  001132 0a 001505 7020 00 466 execint: tsx2 setone set bound of seg 1  467  001133 0a 002020 7020 00 468 tsx2 getportinfo port array info  001134 aa 6 01530 2221 00 469 ldx2 com|low_order_port setup for RSCR/SSCR  001135 aa 7 10406 7421 00 470 stx2 mem|origsetup+low_port_x0 471  472  473  474  475  001136 aa 6 02030 2341 00 476 bready: szn com|readysw shell we print a ready ?  001137 0a 001174 6010 00 477 tnz cycle not this time  001140 0a 002145 7020 00 478 cready: tsx2 rd_clock Read the clock  001141 0a 002271 2350 00 479 lda rdclock.year Get year  001142 aa 003554 1350 07 480 sbla 1900,dl  001143 0a 001700 7550 00 481 sta year_temp  001144 0a 003630 7020 00 482 tsx2 erpt print bos at time  001145 aa 043 142 157 163 483 acc 'bos ^a^a at ^d:^d:^d ^a ^a ^d/^d/^d'  001146 aa 040 136 141 136 001147 aa 141 040 141 164 001150 aa 040 136 144 072 001151 aa 136 144 072 136 001152 aa 144 040 136 141 001153 aa 040 136 141 040 001154 aa 136 144 057 136 001155 aa 144 057 136 144 001156 0a 001676 0000 00 484 arg bos_version  001157 0a 001677 0000 00 485 arg bos_version+1  001160 0a 002261 0000 00 486 arg rdclock.hr 001161 0a 002262 0000 00 487 arg rdclock.min  001162 0a 002263 0000 00 488 arg rdclock.sec  001163 0a 002274 0000 00 489 arg rdclock.zone_name  001164 0a 002270 0000 00 490 arg rdclock.day_name  001165 0a 002264 0000 00 491 arg rdclock.month  001166 0a 002266 0000 00 492 arg rdclock.day_of_month  001167 0a 001700 0000 00 493 arg year_temp  001170 0a 001174 7100 00 494 tra cycle  495  001171 0a 003630 7020 00 496 comerr: tsx2 erpt error, print ?  001172 aa 002 136 147 000 497 acc '^g'  001173 0a 007726 0000 00 498 arg =h!!? "  499  001174 0a 007727 2350 00 500 cycle: lda =h bos load return prompt 001175 aa 6 02027 7551 00 501 sta com|curtcmd store it !!  001176 0a 002540 7020 00 502 tsx2 nextline read next input line  503  001177 aa 000016 6270 00 504 fndc: eax7 arglen-1 relocate all descriptors  001200 aa 710000 2350 03 505 reldesc: lda mem*32768+origsetup,du 001201 0a 001761 0350 17 506 adla earg,7 insert segment tag, also  001202 0a 001761 7550 17 507 sta earg,7 .. 508  001203 aa 777777 6270 17 509 eax7 -1,7 loop through all descriptors  001204 0a 001200 6050 00 510 tpl reldesc ..  511  001205 0a 001721 2350 00 512 lda arg  001206 aa 000000 6210 00 513 eax1 0 initialize index  001207 aa 014300 5202 02 514 rpt nbc/2,2,tze is it built-in command?  001210 0a 001315 1150 11 515 cmpa bcl,1 001211 aa 777777 6070 31 516 ttf -1,1* if so, go to it 517  001212 0a 003102 7020 00 518 tsx2 search search BOS command directory  001213 0a 001171 7100 00 519 tra comerr 001214 aa 000000 6200 17 520 eax0 0,7 X0 -> directory entry  521  001215 aa 004000 3150 07 522 cana =o4000,dl is it a macro file 001216 0a 001305 6010 00 523 tnz isrun  001217 aa 000777 3750 07 524 ana =o777,dl mask the length  001220 0a 001702 7550 00 525 sta bound and save for bound calc.  526  001221 0a 001721 2350 00 527 lda arg load command for prompt  001222 aa 6 02027 7551 00 528 sta com|curtcmd  529  001223 aa 134000 2350 07 530 lda lnpgm*4,dl clear command area  001224 aa 000140 1004 00 531 mlr (),(pr,rl),fill(0) clear the command area  001225 0a 001225 000000 532 desc9a *,0 001226 aa 100000 000005 533 desc9a tmp|0,al  534  001227 aa 6 02005 2351 00 535 lda com|utilarea get length of utility package 001230 aa 000777 3750 07 536 ana =o777,dl  001231 0a 001702 1150 00 537 cmpa bound get max. bound 001232 0a 001234 6050 00 538 tpl *+2  001233 0a 001702 2350 00 539 lda bound  001234 aa 000002 7350 00 540 als 2 0 mod 64 to 0 mod 16  001235 aa 000001 1350 07 541 sbla 1,dl minus 1 for SDW bound  001236 aa 000025 7350 00 542 als 21 shift to SDW bound position  001237 aa 0 00003 6751 00 543 era ds|tmp*2+1 and insert into bound field 001240 aa 377770 3750 03 544 ana sdw.bound,du  001241 aa 0 00003 6551 00 545 ersa ds|tmp*2+1  001242 aa 000000 5320 00 546 cams 0 547  001243 aa 6 02005 2351 00 548 lda com|utilarea load the utility package  001244 0a 003317 7020 00 549 tsx2 rdsec 001245 aa 1 00000 0111 00 550 nop tmp|0 into segment 1  001246 0a 001246 6160 00 551 dis *  552  001247 aa 6 00001 2351 10 553 lda com|1,0 now overlay with command  001250 0a 007730 3750 00 554 ana =o777777770777 only address and length 001251 0a 003317 7020 00 555 tsx2 rdsec 001252 aa 1 00000 0111 00 556 nop tmp|0 into seg 1  001253 0a 001253 6160 00 557 dis *  558  001254 aa 7 11255 7101 00 559 tra mem|origsetup+*+1 go to seg 7  001255 aa 0 00002 2371 00 560 ldaq ds|tmp*2 and set 3 to tmp*2  001256 aa 0 00006 6771 00 561 eraq ds|pgm*2 and vice versa  001257 aa 0 00002 6551 00 562 ersa ds|tmp*2  001260 aa 0 00003 6561 00 563 ersq ds|tmp*2+1  001261 aa 0 00006 6551 00 564 ersa ds|pgm*2  001262 aa 0 00007 6561 00 565 ersq ds|pgm*2+1  001263 aa 000000 5320 00 566 cams 0 567  001264 aa 3 00000 7021 00 568 tsx2 pgm|0 tsx2 to loaded command 001265 569 inhibit on 001265 00 011721 011703 570 zero origsetup+arg,origsetup+line  001266 0a 011721 7552 00 571 sta origsetup+arg save possible command  572  001267 0a 011454 7022 00 573 tsx2 origsetup+iappend reinit setup  001270 574 inhibit off  001270 0a 001505 7020 00 575 tsx2 setone  001271 0a 002020 7020 00 576 tsx2 getportinfo  001272 aa 6 01530 2221 00 577 ldx2 com|low_order_port setup for RSCR/SSCR  001273 aa 7 10406 7421 00 578 stx2 mem|origsetup+low_port_x0 579  001274 aa 001003 2350 00 580 lda dirbase write out machine cond  001275 0a 003321 7020 00 581 tsx2 wtsec 001276 aa 6 00000 0111 00 582 nop com|0  001277 0a 001277 6160 00 583 dis *  584  001300 0a 001721 2350 00 585 lda arg if chaining, don't type ready 001301 0a 001313 6000 00 586 tze scanc if zero, rescan command line  001302 0a 007731 1150 00 587 cmpa =-1  001303 0a 001177 6010 00 588 tnz fndc  001304 0a 001136 7100 00 589 tra bready 590  001305 aa 000000 1014 00 591 isrun: mrl (),() move the whole line down  001306 0a 001703 020111 592 desc6a line,73 001307 0a 001704 520111 593 desc6a line+1(5),73  594  001310 aa 000000 1004 00 595 mlr (),() now insert "RUNCOM RUN "  001311 0a 001672 020013 596 desc6a runcom_run,11  001312 0a 001703 020013 597 desc6a line,11 598  599  001313 0a 002557 7020 00 600 scanc: tsx2 nxtlinea rescan the command line  001314 0a 001177 7100 00 601 tra fndc and process command  602  603 "  001315 aa 234 645 633 145 604 bcl: bci 'contin'  001316 0a 001407 000000 605 zero contin  001317 aa 202 020 202 746 606 bci ' go'  001320 0a 001407 000000 607 zero contin  001321 aa 202 043 316 263 608 bci ' list'  001322 0a 001331 000000 609 zero list  001323 aa 512 545 214 425 610 bci 'rename'  001324 0a 001352 000000 611 zero rename  001325 aa 242 543 256 325 612 bci 'delete'  001326 0a 001364 000000 613 zero delete  001327 aa 202 026 432 127 614 bci ' flag'  001330 0a 001372 000000 615 zero flag  000014 616 equ nbc,*-bcl  617  618 " 619  001331 aa 000000 6200 00 620 list: eax0 0 now print each command  001332 0a 001703 4500 00 621 stz line  001333 aa 6 02032 2351 10 622 listl: lda com|cmdlst,0 001334 0a 001346 6000 00 623 tze listx  001335 0a 001704 7550 00 624 sta line+1 001336 aa 6 02033 2351 10 625 lda com|cmdlst+1,0 print disk locatin  001337 aa 000014 7710 00 626 arl 12 right-justify sector addr. 001340 0a 001703 7550 00 627 sta line  001341 0a 003630 7020 00 628 tsx2 erpt print  001342 aa 005 136 157 040 629 acc '^o ^g'  001343 aa 136 147 000 000 001344 0a 001703 0000 00 630 arg line  001345 0a 001704 0000 00 631 arg line+1 001346 aa 000002 6200 10 632 listx: eax0 2,0 001347 aa 000546 1000 03 633 cmpx0 dirlen-(cmdlst-dir),du  001350 0a 001333 6040 00 634 tmi listl  001351 0a 001174 7100 00 635 tra cycle  636  637  001352 0a 001723 2350 00 638 rename: lda arg+2 Get new name.  001353 0a 003102 7020 00 639 tsx2 search Is it there already.  001354 0a 001356 7100 00 640 tra *+2 If not, OK.  001355 0a 001171 7100 00 641 tra comerr Otherwise, error.  642  001356 0a 001722 2350 00 643 lda arg+1 Get original name.  001357 0a 003102 7020 00 644 tsx2 search Look up in directory. 001360 0a 001171 7100 00 645 tra comerr .. 646  001361 0a 001723 2350 00 647 lda arg+2 Get new name.  001362 aa 6 00000 7551 17 648 sta com|0,7 Replace name in directory.  001363 0a 001174 7100 00 649 tra cycle  650  651  001364 0a 001722 2350 00 652 delete: lda arg+1 search for file  001365 0a 003102 7020 00 653 tsx2 search  001366 0a 001171 7100 00 654 tra comerr 001367 aa 6 00000 4501 17 655 stz com|0,7 zero out directory entry  001370 aa 6 00001 4501 17 656 stz com|1,7 ..  001371 0a 001174 7100 00 657 tra cycle and that's it  658  659  001372 aa 400000 2360 03 660 flag: ldq =o400000,du get bit for flag  001373 0a 001742 2350 00 661 lda darg+1 get bit position  001374 aa 777777 7720 05 662 qrl -1,al move to correct position  663  001375 0a 001723 2350 00 664 lda arg+2 get ON or OFF  001376 0a 007732 1150 00 665 cmpa =h on  001377 0a 001405 6000 00 666 tze flagon go turn it ON  001400 0a 007733 1150 00 667 cmpa =h off  001401 0a 001174 6010 00 668 tnz cycle  001402 0a 007731 6760 00 669 erq =-1 complement bits  001403 0a 000020 3560 00 670 ansq flagbox+fgbx.flags_word turn off desired bit 001404 0a 001174 7100 00 671 tra cycle  672  001405 0a 000020 2560 00 673 flagon: orsq flagbox+fgbx.flags_word turn on desired bit  001406 0a 001174 7100 00 674 tra cycle  675  676 " 001407 677 contin: 001407 aa 001003 2350 00 678 lda dirbase write out common  001410 0a 003321 7020 00 679 tsx2 wtsec .. 001411 aa 6 00000 0111 00 680 nop com|0  001412 0a 001412 6160 00 681 dis *  682  001413 0a 007724 2350 00 683 lda =v24/fvloc/64 place scu-rcu in lockup fault  001414 aa 6 02003 0351 00 684 adla com|corearea  001415 0a 001701 7510 74 685 stca fltloc,74 001416 0a 001701 2350 00 686 lda fltloc 001417 0a 003317 7020 00 687 tsx2 rdsec 001420 aa 1 00000 0111 00 688 nop tmp|0  001421 0a 001421 6160 00 689 dis *  690  001422 aa 1 00016 2371 00 691 ldaq tmp|lockup*2  001423 0a 000324 7570 00 692 staq locsav  001424 0a 000322 2370 00 693 ldaq scurcu on disk  001425 aa 1 00016 7571 00 694 staq tmp|lockup*2  001426 0a 001701 2350 00 695 lda fltloc 001427 0a 003321 7020 00 696 tsx2 wtsec 001430 aa 1 00000 0111 00 697 nop tmp|0  001431 0a 001431 6160 00 698 dis *  699  001432 aa 6 02003 2351 00 700 lda com|corearea restore core  001433 0a 007723 0750 00 701 ada =v24/toesaved/64 except what we are running in 001434 aa 000310 1750 07 702 sba toesaved/64,dl 001435 0a 003317 7020 00 703 tsx2 rdsec 001436 aa 7 31000 0111 00 704 nop mem|toesaved  001437 0a 001437 6160 00 705 dis *  706  001440 707 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  001440 0a 000322 2372 00 708 ldaq scurcu before inhibit, disable locku 001441 aa 7 00116 7573 00 709 staq mem|fvloc+lockup*2  710  001442 0a 001445 2352 00 711 lda abstra go to abs mode 001443 aa 7 00114 7553 00 712 sta mem|fvloc+drl*2  001444 aa 000000 0022 00 713 drl  001445 0a 011446 7102 00 714 abstra: tra origsetup+*+1  001446 0a 011636 7022 00 715 tsx2 origsetup+restormc  001447 aa 000400 2352 07 716 lda scu.cu.rfi,dl turn on the refetch bit  001450 0a 010375 7552 00 717 sta origsetup+tscu+scu.cu_stat_word in SCU data  001451 aa 023576 4522 01 718 scpr origcom+faultreg,01 clear the fault register  719  001452 0a 010225 6222 00 720 eax2 origsetup+tcont to toehold  001453 0a 010261 7102 00 721 tra origsetup+swap simulating a tsx2  722  001454 723 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  724  725 "  001454 726 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  727  001454 728 iappend:  001454 0a 011503 7422 00 729 stx2 origsetup+initret1 here to init setup 730  001455 aa 000000 1006 00 731 mlr (),(),fill(0) copy the descriptor segment  001456 0a 017700 000100 732 desc9a origsetup+dseg,8*2*4  001457 aa 007740 000200 733 desc9a origds,lnds*4  734  001460 0a 017660 1732 00 735 lpri origsetup+bos_pr load pointer regs  001461 0a 017700 2322 00 736 ldbr origsetup+bos_dbr 001462 aa 3 01463 7103 00 737 tra pgm|*+1 enter appending mode  738  001463 0a 005673 7022 00 739 tsx2 initint ints 001464 0a 001132 0002 00 740 arg execint  001465 0a 006065 4502 00 741 stz intrpts1 start collecting interrupts  742  001466 aa 001001 2352 00 743 lda mbbasesav restore mailbox base  001467 aa 6 02011 7553 00 744 sta com|iom_mbbase 001470 aa 001000 2362 00 745 ldq cowsav set up COW in IOM mailbox  001471 aa 7 00001 7563 01 746 stq mem|iom_cow,au restore COW 001472 aa 001002 2352 00 747 lda mxbasesav restore interrupt base  001473 aa 6 02010 7553 00 748 sta com|iom_mxbase 749  001474 0a 005145 7022 00 750 tsx2 init_io initialize iom  751  001475 aa 000577 2352 00 752 lda ttychan set tty channel # 001476 aa 6 02017 7553 00 753 sta com|ttychanno  001477 0a 004247 7022 00 754 tsx2 ttyinit  001500 0a 001136 0002 00 755 arg bready 756  001501 aa 000576 2352 00 757 lda devid  001502 aa 6 02012 7553 00 758 sta com|bos_dvt  759  001503 0a 001503 6222 00 760 initret1: eax2 * restore X2  001504 aa 770000 7102 12 761 tra -origsetup,2 call was made in absolute mode  762  001505 aa 001337 2352 03 763 setone: lda lnpgm/16-1,du restore bound field for segment 1 001506 aa 000003 7352 00 764 als 3 shift to bound position 001507 aa 0 00003 6753 00 765 era ds|tmp*2+1 001510 aa 377770 3752 03 766 ana sdw.bound,du  001511 aa 0 00003 6553 00 767 ersa ds|tmp*2+1  001512 aa 000000 5322 00 768 cams 0 001513 aa 000000 7102 12 769 tra 0,2  770  771 " 772  773 " This routine operates in absolute mode and saves  774 " the Multics machine state for debugging or later  775 " restoration.  776  001514 777 savemc: 778  001514 779 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  001514 aa 023500 2542 00 780 spri origcom+prs save pointer registers  001515 aa 023600 4476 00 781 spl origcom+ptrlen save pointers and lengths  782  001516 0a 011623 7422 00 783 stx2 origsetup+mcsavret save for return  784  001517 aa 000000 1006 00 785 mlr (),(),fill(0) clear out am store area  001520 aa 000000 000000 786 desc9a 0,0 001521 aa 022000 002400 787 desc9a origcom+amptwregs,320*4 788  001522 0a 017641 7022 00 789 tsx2 origsetup+check_cpu_type  001523 aa 000000 6242 05 790 eax4 0,al  001524 aa 000004 6272 00 791 sam1: eax7 4  001525 aa 000003 6262 00 792 eax6 3 set up for a dps8  001526 aa 000001 1042 03 793 cmpx4 1,du were we right? 001527 0a 011531 6002 00 794 tze origsetup+sam2 yes ,now thats a first! 001530 aa 000000 6262 00 795 eax6 0 so we were wrong its a l68 001531 0a 011625 2352 17 796 sam2: lda origsetup+sam5-1,7 load raw instruction word  001532 aa 000000 6252 16 797 eax5 0,6 set up counter  001533 aa 000000 6362 15 798 sam3: eaq 0,5 but counter in q 001534 aa 000004 7362 00 799 qls 4 multiply times 4  001535 aa 000002 1072 03 800 cmpx7 2,du is this the sdw regs ? 001536 0a 011540 6012 00 801 tnz origsetup+sam4 001537 aa 000001 7362 00 802 qls 1 it was so make it times 32  001540 0a 011625 7552 00 803 sam4: sta origsetup+inst store raw instruction to be XECed  001541 0a 011625 0562 00 804 asq origsetup+inst add in quadrant offset  001542 0a 011625 7162 00 805 xec origsetup+inst lets execute it 001543 aa 777777 6252 15 806 eax5 -1,5 decrement counter  001544 0a 011533 6052 00 807 tpl origsetup+sam3 lets do it again  001545 aa 777777 6272 17 808 eax7 -1,7 get another instruction 001546 0a 011531 6012 00 809 tnz origsetup+sam2 do it again 810 " clear the history reg store area and  811 " save the history registers  001547 aa 000000 1006 00 812 mlr (),(),fill(0) clear out du storage 001550 aa 000000 000000 813 desc9a 0,0 001551 aa 022500 004000 814 desc9a origcom+ouhist,128*4*4  815  001552 aa 000002 2362 03 816 ldq 2,du address field step  001553 aa 000003 6262 00 817 eax6 nscpr-1 # of instructions  001554 aa 000020 6272 00 818 scpr2: eax7 16 16 instructions to store a history register 819  001555 aa 000001 1042 03 820 cmpx4 1,du check cpu type 001556 0a 011560 6012 00 821 tnz origsetup+l68 skip next inst. if l68  001557 aa 000100 6272 00 822 eax7 64 set up for dps8  001560 0a 011632 2352 16 823 l68: lda origsetup+scpr,6 pick up inst  001561 0a 011625 7552 00 824 sta origsetup+inst 001562 0a 011625 7162 00 825 scpr1: xec origsetup+inst execute it  001563 0a 011625 0562 00 826 asq origsetup+inst incrment address field  001564 aa 777777 6272 17 827 eax7 -1,7 decrement loop  001565 0a 011562 6012 00 828 tnz origsetup+scpr1 not done  001566 aa 000001 1042 03 829 cmpx4 1,du check cpu type 001567 0a 011573 6012 00 830 tnz origsetup+skipl68 continue with l68 code  001570 aa 000003 1062 03 831 cmpx6 3,du is this a du hist coming up  001571 0a 011573 6012 00 832 tnz origsetup+skipl68  001572 aa 777777 6262 16 833 eax6 -1,6  001573 aa 777777 6262 16 834 skipl68: eax6 -1,6  001574 0a 011554 6052 00 835 tpl origsetup+scpr2 get next inst  836  001575 aa 000000 1006 00 837 mlr (),() save registers  001576 0a 010360 000040 838 desc9a origsetup+treg,8*4  001577 aa 023520 000040 839 desc9a origcom+regs,8*4  840  001600 aa 000000 1006 00 841 mlr (),() save SCU  001601 0a 010370 000040 842 desc9a origsetup+tscu,8*4  001602 aa 023540 000040 843 desc9a origcom+scu,8*4 844  001603 aa 023570 1542 00 845 sdbr origcom+dbr save dsbr 001604 aa 023573 5502 00 846 sbar origcom+bar and bar  847  001605 0a 010316 2372 00 848 ldaq origsetup+tmode save mode register  001606 aa 023574 7572 00 849 staq origcom+modereg  850  001607 aa 023576 4522 01 851 scpr origcom+faultreg,01 store fault register  852  001610 0a 010320 2372 00 853 ldaq origsetup+tclock save clock reading  001611 aa 023532 7572 00 854 staq origcom+mctime .. 855  001612 0a 010314 2372 00 856 ldaq origsetup+savint get interrupts  001613 aa 000024 7712 00 857 arl 36-16 in one word 001614 aa 000024 7372 00 858 lls 36-16 ..  001615 aa 023572 7552 00 859 sta origcom+intrpts save  860  001616 aa 000000 1006 00 861 mlr (),() save controller masks  001617 0a 010326 000100 862 desc9a origsetup+tmcm,16*4 001620 aa 023550 000100 863 desc9a origcom+mcm,16*4  864  001621 0a 010400 2372 00 865 ldaq origsetup+saved_cfg save CFG register from bootload SCU  001622 aa 023620 7572 00 866 staq origcom+lowport_cfg  867  001623 0a 001623 6222 00 868 mcsavret: eax2 * restore return  001624 aa 000000 7102 12 869 tra 0,2  870  001625 871 inst: bss ,1  872  001626 aa 022400 5572 00 873 sam5: ssdp origcom+amsdwptr 001627 aa 022200 2546 00 874 ssdr origcom+amsdwregs 001630 aa 022100 5576 00 875 sptp origcom+amptwptr  001631 aa 022000 1546 00 876 sptr origcom+amptwregs 877  001632 878 scpr:  001632 aa 022500 4522 40 879 scpr origcom+ouhist,40 001633 aa 022700 4522 20 880 scpr origcom+cuhist,20 001634 aa 023100 4522 10 881 scpr origcom+eishist,10  001635 aa 023300 4522 00 882 scpr origcom+aphist,00 883  000004 884 equ nscpr,*-scpr  885  001636 886 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  887  888 " 889  890 " This routine operates in absolute mode and  891 " restores the Multics machine state .  892  001636 893 restormc:  001636 894 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  001636 aa 000000 5322 00 895 cams 0 clear assoc. memories  001637 aa 000000 5326 00 896 camp 0 001640 aa 000000 6742 03 897 lcpr 0,03 clear history registers 001641 aa 023500 1732 00 898 lpri origcom+prs  899  001642 aa 023570 2322 00 900 ldbr origcom+dbr  001643 aa 023573 2302 00 901 lbar origcom+bar  902  001644 aa 023574 2372 00 903 ldaq origcom+modereg  001645 aa 000003 2762 07 904 orq =o3,dl give maximum time for lockup fault 001646 0a 010316 7572 00 905 staq origsetup+tmode  906  001647 aa 023572 2352 00 907 lda origcom+intrpts get pending interrupts 001650 aa 000024 7732 00 908 lrl 36-16 in word-pair  001651 aa 000024 7352 00 909 als 36-16 ..  001652 0a 010314 7572 00 910 staq origsetup+savint place for loading later  911  001653 aa 000000 1006 00 912 mlr (),() restore controller masks  001654 aa 023550 000100 913 desc9a origcom+mcm,16*4  001655 0a 010326 000100 914 desc9a origsetup+tmcm,16*4 915  001656 aa 023620 2372 00 916 ldaq origcom+lowport_cfg restore CFG register from bootload SCU  001657 0a 010400 7572 00 917 staq origsetup+saved_cfg  918  001660 aa 000000 1006 00 919 mlr (),() restore registers  001661 aa 023520 000040 920 desc9a origcom+regs,8*4  001662 0a 010360 000040 921 desc9a origsetup+treg,8*4  922  001663 aa 000000 1006 00 923 mlr (),() restore SCU 001664 aa 023540 000040 924 desc9a origcom+scu,8*4 001665 0a 010370 000040 925 desc9a origsetup+tscu,8*4  926  001666 aa 023600 4676 00 927 lpl origcom+ptrlen load pointers and lengths  928  001667 aa 000000 7102 12 929 tra 0,2  930  001670 931 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  932  933 "  934 even  001670 aa 777774 000000 935 opnmsk: oct 777774000000 turn on all int  001671 aa 777774 000000 936 oct 777774000000  937  001672 938 runcom_run: 001672 aa 516 445 234 644 939 bci "runcom run "  001673 aa 205 164 452 000 940  941 even  001674 aa 000000 000000 942 temp: oct 0,0  001675 aa 000000 000000 943  944 even  001676 945 segdef bos_version 946  001676 947 bos_version:  001676 948 bss ,2 949  001700 950 year_temp:bss ,1  001701 aa 000000 000001 951 fltloc: vfd 24/0,12/1  001702 aa 000000 000000 952 bound: dec 0  953  001703 954 bss line,14 temp where command is read  955  001721 956 bss arg,arglen buffer for scanned arguments  001740 aa 777777 777777 957 dec -1 001741 958 bss darg,arglen buffer for decimal converted args  001760 aa 777777 777777 959 dec -1 001761 960 bss earg,arglen buffer for EIS args  002000 aa 777777 777777 961 dec -1 962  002001 aa 000000 0110 03 963 eight  002002 aa 000000 0110 03 002003 aa 000000 0110 03 002004 aa 000000 0110 03 002005 aa 000000 0110 03 002006 aa 000000 0110 03 002007 aa 000000 0110 03 964  965  002010 966 scuinfo:  002010 967 bss ,8 set by intflt after fault  968  969  970 " 971  972 include bos_sdw  4-1 "  4-2 " BEGIN INCLUDE FILE sdw.incl.alm 02/12/74  4-3 "  000014 4-4 equ sdw.add_shift,12  007000 4-5 bool sdw.r1,007000 Ringbrack 1 (DL)  000700 4-6 bool sdw.r2,000700 Ringbrack 2 (DL)  000070 4-7 bool sdw.r3,000070 Ringbrack 3 (DL)  4-8  000004 4-9 bool sdw.df,000004 Directed fault bit (0 -> fault)  000003 4-10 bool sdw.fault_code,000003 Number of directed fault  4-11  377770 4-12 bool sdw.bound,377770 Bound field (DU)  000004 4-13 bool sdw.read,000004 Read permission bit (DU) 000002 4-14 bool sdw.execute,000002 Execute permission bit (DU)  000001 4-15 bool sdw.write,000001 Write permission bit (DU)  4-16  400000 4-17 bool sdw.privileged,400000 Privileged bit (DL) 200000 4-18 bool sdw.unpaged,200000 Unpaged bit (DL)  100000 4-19 bool sdw.entry_bound_sw,100000 Entry bound switch (DL) 040000 4-20 bool sdw.cache,040000 Cache enabled bit (DL)  037777 4-21 bool sdw.entry_bound,037777 Entry bound (DL)  4-22  4-23 "  4-24 " END INCLUDE FILE sdw.incl.alm  4-25 "  973 include mc 5-1 "  5-2 " BEGIN INCLUDE FILE mc.incl.alm 6/72 SHW 5-3 " Modified 8/80 by J. A. Bush for dps8/70M CPU  5-4 "  5-5  5-6 " General layout of data items. 5-7  000000 5-8 equ mc.prs,0 pointer registers  000020 5-9 equ mc.regs,16 registers  000030 5-10 equ mc.scu,24 SCU data  000050 5-11 equ mc.eis_info,40 pointers and lengths for EIS  5-12  5-13 " Temporary storage for software  5-14  000040 5-15 equ mc.mask,32 system controller mask at time of fault 000042 5-16 equ mc.ips_temp,34 temporary storage for IPS info  000043 5-17 equ mc.errcode,35 error code  000044 5-18 equ mc.fim_temp,36 temporary to hold fault index and unique index  000045 5-19 equ mc.fault_reg,37 fault register 000046 5-20 equ mc.fault_time,38 time of fault 000046 5-21 equ mc.cpu_type_word,38 CPU type from rsw (2). overlays part of time word 300000 5-22 bool mc.cpu_type_mask,300000 DU  000046 5-23 equ mc.ext_fault_reg,38 ext fault reg for dps8. overlays part of time word 077774 5-24 bool mc.ext_fault_reg_mask,77774 DU  000003 5-25 equ mc.cpu_type_shift,3 positions to shift right or left  5-26  5-27  5-28  5-29 " SCU DATA 5-30  5-31 " WORD (0) PROCEDURE POINTER REGISTER 5-32  000030 5-33 equ mc.scu.ppr.prr_word,24 Procedure Ring Register 000000 5-34 equ scu.ppr.prr_word,0 700000 5-35 bool scu.ppr.prr_mask,700000 DU  000041 5-36 equ scu.ppr.prr_shift,33  5-37  000030 5-38 equ mc.scu.ppr.psr_word,24 Procedure Segment Register  000000 5-39 equ scu.ppr.psr_word,0 077777 5-40 bool scu.ppr.psr_mask,077777 DU  000022 5-41 equ scu.ppr.psr_shift,18  5-42  000030 5-43 equ mc.scu.ppr.p_word,24 Procedure Privileged Bit  000000 5-44 equ scu.ppr.p_word,0  400000 5-45 bool scu.ppr.p,400000 DL  5-46  5-47 " APPENDING UNIT STATUS  000030 5-48 equ mc.scu.apu_stat_word,24 APPENDING UNIT STATUS  000000 5-49 equ scu.apu_stat_word,0  5-50  200000 5-51 bool scu.apu.xsf,200000 DL - Ext Seg Flag - IT mod.  100000 5-52 bool scu.apu.sdwm,100000 DL - Match in SDW Ass. Mem.  040000 5-53 bool scu.apu.sd_on,040000 DL - SDW Ass. Mem. ON  020000 5-54 bool scu.apu.ptwm,020000 DL - Match in PTW Ass. Mem.  010000 5-55 bool scu.apu.pt_on,010000 DL - PTW Ass. Mem. ON  004000 5-56 bool scu.apu.pi_ap,004000 DL - Instr fetch or Append cycle 002000 5-57 bool scu.apu.dsptw,002000 DL - Fetch of DSPTW  001000 5-58 bool scu.apu.sdwnp,001000 DL - Fetch of SDW non-paged  000400 5-59 bool scu.apu.sdwp,000400 DL - Fetch of SDW paged  000200 5-60 bool scu.apu.ptw,000200 DL - Fetch of PTW 000100 5-61 bool scu.apu.ptw2,000100 DL - Fetch of pre-paged PTW 000040 5-62 bool scu.apu.fap,000040 DL - Fetch of final address paged 000020 5-63 bool scu.apu.fanp,000020 DL - Fetch final address non-paged  000010 5-64 bool scu.apu.fabs,000010 DL - Fetch of final address absolute 5-65  000030 5-66 equ mc.scu.fault_cntr_word,24 Num of retrys of EIS instructions.  000000 5-67 equ scu.fault_cntr_word,0 5-68  000007 5-69 bool scu.fault_cntr_mask,000007  5-70  5-71  5-72 " WORD (1) FAULT DATA 5-73  000031 5-74 equ mc.scu.fault_data_word,25 FAULT DATA  000001 5-75 equ scu.fault_data_word,1  5-76  400000 5-77 bool scu.fd.iro,400000 DU - Illegal Ring Order  200000 5-78 bool scu.fd.oeb,200000 DU - Not In Execute Bracket  100000 5-79 bool scu.fd.e_off,100000 DU - No Execute 040000 5-80 bool scu.fd.orb,040000 DU - Not In Read Bracket  020000 5-81 bool scu.fd.r_off,020000 DU - No Read  010000 5-82 bool scu.fd.owb,010000 DU - Not In Write Bracket  004000 5-83 bool scu.fd.w_off,004000 DU - No Write  002000 5-84 bool scu.fd.no_ga,002000 DU - Not A Gate  001000 5-85 bool scu.fd.ocb,001000 DU - Not in Call Bracket  000400 5-86 bool scu.fd.ocall,000400 DU - Outward Call  000200 5-87 bool scu.fd.boc,000200 DU - Bad Outward Call  000100 5-88 bool scu.fd.inret,000100 DU - Inward Return  000040 5-89 bool scu.fd.crt,000040 DU - Cross Ring Transfer  000020 5-90 bool scu.fd.ralr,000020 DU - Ring Alarm 000010 5-91 bool scu.fd.am_er,000010 DU - Assoc. Mem. Fault  000004 5-92 bool scu.fd.oosb,000004 DU - Out Of Bounds  000002 5-93 bool scu.fd.paru,000002 DU - Parity Upper 000001 5-94 bool scu.fd.parl,000001 DU - Parity Lower 5-95  400000 5-96 bool scu.fd.onc_1,400000 DL - Op Not Complete 200000 5-97 bool scu.fd.onc_2,200000 DL - Op Not Complete 5-98  5-99 " GROUP II FAULT DATA  400000 5-100 bool scu.fd.isn,400000 DU - Illegal Segment Number  200000 5-101 bool scu.fd.ioc,200000 DU - Illegal Op Code  100000 5-102 bool scu.fd.ia_im,100000 DU - Illegal Addr - Modifier 040000 5-103 bool scu.fd.isp,040000 DU - Illegal Slave Procedure  020000 5-104 bool scu.fd.ipr,020000 DU - Illegal Procedure 010000 5-105 bool scu.fd.nea,010000 DU - Non Existent Address  004000 5-106 bool scu.fd.oobb,004000 DU - Out Of Bounds  5-107  000031 5-108 equ mc.scu.port_stat_word,25 PORT STATUS  000001 5-109 equ scu.port_stat_word,1  5-110  170000 5-111 bool scu.ial_mask,170000 DL - Illegal Action Lines  000014 5-112 equ scu.ial_shift,12  5-113  007000 5-114 bool scu.iac_mask,007000 DL - Illegal Action Channel  000011 5-115 equ scu.iac_shift,9  5-116  000700 5-117 bool scu.con_chan_mask,000700 DL - Connect Channel 000006 5-118 equ scu.con_chan_shift,6  5-119  000076 5-120 bool scu.fi_num_mask,000076 DL - Fault / Interrupt Number 000001 5-121 equ scu.fi_num_shift,1 5-122  000001 5-123 bool scu.fi_flag_mask,000001 DL - Fault / Interrupt Flag  5-124  5-125  5-126 " WORD (2) TEMPORARY POINTER REGISTER 5-127  000032 5-128 equ mc.scu.tpr.trr_word,26 Temporary Ring Register 000002 5-129 equ scu.tpr.trr_word,2 700000 5-130 bool scu.tpr.trr_mask,700000 DU  000041 5-131 equ scu.tpr.trr_shift,33  5-132  000032 5-133 equ mc.scu.tpr.tsr_word,26 Temporary Segment Register  000002 5-134 equ scu.tpr.tsr_word,2 077777 5-135 bool scu.tpr.tsr_mask,077777 DU  000022 5-136 equ scu.tpr.tsr_shift,18  5-137  000032 5-138 equ mc.scu.cpu_no_word,26 CPU Number  000002 5-139 equ scu.cpu_no_word,2  5-140  000700 5-141 bool scu.cpu_no_mask,000700 DL 000006 5-142 equ scu.cpu_shift,6  5-143  000032 5-144 equ mc.scu.delta_word,26 Tally Modification DELTA  000002 5-145 equ scu.delta_word,2  5-146  000077 5-147 bool scu.delta_mask,000077 DL  5-148  5-149  5-150 " WORD (3) TSR STATUS 5-151  000033 5-152 equ mc.scu.tsr_stat_word,27 TSR STATUS for 1,2, and 3  000003 5-153 equ scu.tsr_stat_word,3 Word Instructions 5-154  777700 5-155 bool scu.tsr_stat_mask,777700 DL - All of Status  000006 5-156 equ scu.tsr_stat_shift,6  5-157  740000 5-158 bool scu.tsna_mask,740000 DL - Word 1 Status  700000 5-159 bool scu.tsna.prn_mask,700000 DL - Word 1 PR num  000017 5-160 equ scu.tsna.prn_shift,15  040000 5-161 bool scu.tsna.prv,040000 DL - Word 1 PR valid bit 5-162  036000 5-163 bool scu.tsnb_mask,036000 DL - Word 2 Status  034000 5-164 bool scu.tsnb.prn_mask,034000 DL - Word 2 PR num  000013 5-165 equ scu.tsnb.prn_shift,11  002000 5-166 bool scu.tsnb.prv,002000 DL - Word 2 PR valid bit 5-167  000013 5-168 bool scu.tsnc_mask,0013 DL - Word 3 Status  001600 5-169 bool scu.tsnc.prn_mask,001600 DL - Word 3 PR num  000007 5-170 equ scu.tsnc.prn_shift,7  000100 5-171 bool scu.tsnc.prv,000100 DL - Word 3 PR valid bit 5-172  5-173  000033 5-174 equ mc.scu.tpr.tbr_word,27 TPR.TBR Field  000003 5-175 equ scu.tpr.tbr_word,3 5-176  000077 5-177 bool scu.tpr.tbr_mask,000077 DL  5-178  5-179  5-180 " WORD (4) INSTRUCTION COUNTER  5-181  000034 5-182 equ mc.scu.ilc_word,28 INSTRUCTION COUNTER  000004 5-183 equ scu.ilc_word,4 000022 5-184 equ scu.ilc_shift,18  5-185  000034 5-186 equ mc.scu.indicators_word,28 INDICATOR REGISTERS 000004 5-187 equ scu.indicators_word,4  5-188  400000 5-189 bool scu.ir.zero,400000 DL - Zero Indicator  200000 5-190 bool scu.ir.neg,200000 DL - Negative Indicator  100000 5-191 bool scu.ir.carry,100000 DL - Carry Indicator 040000 5-192 bool scu.ir.ovfl,040000 DL - Overflow Indicator  020000 5-193 bool scu.ir.eovf,020000 DL - Exponent Overflow Ind  010000 5-194 bool scu.ir.eufl,010000 DL - Exponent Underflow Ind  004000 5-195 bool scu.ir.oflm,004000 DL - Overflow Mask Indicator  002000 5-196 bool scu.ir.tro,002000 DL - Tally Runout Indicator  001000 5-197 bool scu.ir.par,001000 DL - Parity Indicator 000400 5-198 bool scu.ir.parm,000400 DL - Parity Mask Indicator  000200 5-199 bool scu.ir.bm,000200 DL - Bar Mode Indicator  000100 5-200 bool scu.ir.tru,000100 DL - Truncation Indicator  000040 5-201 bool scu.ir.mif,000040 DL - Multiword Indicator  000020 5-202 bool scu.ir.abs,000020 DL - Absolute Indicator  000010 5-203 bool scu.ir.hex,000010 DL - Hexadecimal Indicator 5-204  5-205 " WORD (5) COMPUTED ADDRESS  5-206  000035 5-207 equ mc.scu.ca_word,29 COMPUTED ADDRESS  000005 5-208 equ scu.ca_word,5  000022 5-209 equ scu.ca_shift,18  5-210  000035 5-211 equ mc.scu.cu_stat_word,29 CONTROL UNIT STATUS 000005 5-212 equ scu.cu_stat_word,5 5-213  400000 5-214 bool scu.cu.rf,400000 DL - Repeat First  5-215 " On First Cycle of Repeat Inst.  200000 5-216 bool scu.cu.rpt,200000 DL - Repeat Instruction  100000 5-217 bool scu.cu.rd,100000 DL - Repeat Double Instr.  040000 5-218 bool scu.cu.rl,040000 DL - Repeat Link Instr.  5-219  020000 5-220 bool scu.cu.pot,020000 DL - IT Modification  010000 5-221 bool scu.cu.pon,010000 DL - Return Type Instruction  5-222  004000 5-223 bool scu.cu.xde,004000 DL - XDE from Even Location  002000 5-224 bool scu.cu.xdo,002000 DL - XDE from Odd Location  5-225  001000 5-226 bool scu.cu.poa,001000 DL - Operand Preparation  000400 5-227 bool scu.cu.rfi,000400 DL - Tells CPU to refetch instruction  5-228 " This Bit Not Used (000200)  000100 5-229 bool scu.cu.if,000100 DL - Fault occurred during instruction fetch  5-230  000035 5-231 equ mc.scu.cpu_tag_word,29 Computed Tag Field  000005 5-232 equ scu.cpu_tag_word,5 5-233  000007 5-234 bool scu.cpu_tag_mask,000007 DL  5-235  5-236  5-237 " WORDS (6,7) INSTRUCTIONS 5-238  000036 5-239 equ scu.even_inst_word,30 Even Instruction 5-240  000037 5-241 equ scu.odd_inst_word,31 Odd Instruction  5-242  5-243  5-244 " END INCLUDE FILE incl.alm 974 include getportinfo  6-1 "  6-2 " Begin include file .... getportinfo.incl.alm  6-3 "  6-4 " This routine initializes the coreblocks array in bos_common.  6-5 " This array contains information about the memory attached to  6-6 " each of the eight system ports.  6-7 "  6-8 " Each coreblock array word contains the following data:  6-9 " Bits 0 - 17 Number of the first 64-word block on this port. 6-10 " 18 - 35 Number of 64-word blocks on this port. 6-11 "  6-12 " NOTE: If there is no memory on this port then the corresponding word in  6-13 " the coreblocks array will contain a ( -1 ). 6-14 " Modified by RE Mullen to rscr for benefit of setup.  6-15 " Modified 9/12/74 by Noel I. Morris to correct rsw instruction.  6-16 " Modified 3/11/76 by Noel I. Morris to run with 4MW SCU.  6-17 " Modified 5/12/77 by Noel I. Morris  6-18 " Modified 9/18/80 by Sherman D. Sprague to run with DPSE cpu.  6-19 " Modified 3/29/82 by Sherman D. Sprague to teach the L68 about 4meg ports and  6-20 " to make him forget 96k... Remember, use a Group 10 patch plug for 4meg.  6-21 " Modified 9/28/82 by J. Bongiovanni to save low order port in toehold  6-22  002020 6-23 getportinfo:  002020 0a 002114 7420 00 6-24 stx2 gpir store x2 for return  002021 aa 777100 1004 00 6-25 mlr (),(pr),fill(777) clear coreblock array to zero  002022 aa 000000 000000 6-26 desc9a 0,0 002023 aa 601610 000040 6-27 desc9a com|coreblocks,8*4  6-28  002024 0a 007641 7020 00 6-29 tsx2 check_cpu_type get cpu type  002025 0a 002120 7560 00 6-30 stq sw_store_2 save for later use  002026 0a 002135 6260 00 6-31 eax6 size_code_table_dps8 set up DPS8 store size multiplier  002027 aa 000000 6240 05 6-32 eax4 0,al save cpu type bits  002030 aa 000001 1040 03 6-33 cmpx4 1,du check for DPS8 002031 0a 002037 6000 00 6-34 tze read_sw_1 skip rsw 4 DPS8 can't do it  6-35  002032 0a 002125 6260 00 6-36 eax6 size_code_table set up L68 store size mltiplier  002033 aa 000004 2310 00 6-37 rsw 4 get half/full info  002034 0a 002122 7550 00 6-38 sta sw_store_4 might want the look at later ?? 002035 aa 000017 7750 00 6-39 alr 13+2 position for examining half/full bits  002036 0a 002123 7550 00 6-40 sta switches_4 and save for later  6-41  002037 6-42 read_sw_1: 002037 0a 002124 7460 00 6-43 stx6 get_table store size table to use  002040 aa 000000 6270 00 6-44 eax7 0 X7 used as port number index.  002041 aa 000001 2310 00 6-45 rsw 1 Read config switches of 1st 4 ports. (A,B,C,D)  002042 0a 002117 7550 00 6-46 sta sw_store_1 might want to look at later ??  002043 6-47 set_word:  002043 aa 000011 7770 00 6-48 llr 9 Shift switches for this port into low Q.  002044 0a 002116 7550 00 6-49 sta save_switches Save switches for use later. 6-50  002045 aa 000040 3160 07 6-51 canq =o040,dl Test Port Enable switch.  002046 0a 002073 6000 00 6-52 tze get_next_port Bit off => port not enabled. 6-53  6-54 " There is memory on this port. Test if this port has the low order memory.  6-55  002047 aa 000700 3160 07 6-56 canq =o700,dl Test Address Assignment switches.  002050 0a 002054 6010 00 6-57 tnz not_low_port Not = 0 => not low order memory. 6-58  6-59 " This port is used for the low order memory. It will be called the  6-60 " ( low_order_port ). Note, it isn't necessarily port 0.  6-61  002051 aa 000000 6350 17 6-62 eaa 0,7 Port number in AU.  002052 aa 000017 7350 00 6-63 als 18-3 Port address in AU.  002053 aa 6 01530 7551 00 6-64 sta com|low_order_port Use this port as the low order port.  6-65  002054 6-66 not_low_port:  002054 aa 000000 6250 06 6-67 eax5 0,ql Get switches for this port in X5.  002055 aa 000007 3650 03 6-68 anx5 =o007,du We want memory size code.  002056 aa 000700 3760 07 6-69 anq =o700,dl Just leave port assignment bits in Q.  002057 aa 000014 7360 00 6-70 qls 18-6 Right justify port assignment bits in QU.  002060 aa 000001 2760 07 6-71 orq =1,dl Put a 1 in QL. Used to compute memory size. 002061 0a 002124 4020 75 6-72 mpy get_table,*5 Compute both base address and memory size.  6-73  002062 aa 000001 1040 03 6-74 cmpx4 1,du Check for DPS8 002063 0a 002072 6000 00 6-75 tze full_mem must be DPS8 002064 0a 002123 2350 00 6-76 lda switches_4 half/full info in A 002065 aa 000001 3150 07 6-77 cana 1,dl are we using half of mem?  002066 0a 002072 6000 00 6-78 tze full_mem if not, skip following code  002067 aa 000022 7370 00 6-79 lls 18 place base addr in AL  002070 aa 000001 7720 00 6-80 qrl 1 divide size by 2  002071 aa 000022 7730 00 6-81 lrl 18 and restore base addr to Q 002072 6-82 full_mem:  002072 aa 6 01610 7561 17 6-83 stq com|coreblocks,7 QU = base address - QL = memory size.  6-84  002073 6-85 get_next_port:  002073 aa 000001 6270 17 6-86 eax7 1,7 make index 7 ref next port  002074 aa 000001 1040 03 6-87 cmpx4 1,du Is this a DPS8 002075 0a 002102 6010 00 6-88 tnz L68  002076 0a 002116 2350 00 6-89 lda save_switches restore switches for next port  002077 aa 000004 1070 03 6-90 cmpx7 4,du Is this the last DPS8  002100 0a 002043 6040 00 6-91 tmi set_word  002101 0a 002114 7100 00 6-92 tra gpi_return  6-93  002102 0a 002123 2350 00 6-94 L68: lda switches_4 rotate half/full info  002103 aa 000002 7750 00 6-95 alr 2 for testing next port  002104 0a 002123 7550 00 6-96 sta switches_4 ..  6-97  002105 0a 002116 2350 00 6-98 lda save_switches Restore switches for next ports. 002106 aa 000004 1070 03 6-99 cmpx7 4,du Must we read switches again?  002107 0a 002112 6010 00 6-100 tnz more_ports If so,  002110 aa 000003 2310 00 6-101 rsw 3 Read switches from ports E,F,G,H.  002111 0a 002121 7550 00 6-102 sta sw_store_3 save rsw3 data untouched  002112 6-103 more_ports:  002112 aa 000010 1070 03 6-104 cmpx7 8,du Have we processed all 8 ports? 002113 0a 002043 6010 00 6-105 tnz set_word If not, loop.  6-106  002114 6-107 gpi_return: 002114 0a 002114 6220 00 6-108 gpir: eax2 * set up for return 002115 aa 000000 7100 12 6-109 tra 0,2 return  6-110  6-111  6-112 " A temporary save area.  6-113  002116 6-114 save_switches:  002116 aa 000000 000000 6-115 oct 0 Save A after read switches and shift. 002117 6-116 sw_store_1:  002117 aa 000000 000000 6-117 oct 0 Here to store read switch info untouched  002120 6-118 sw_store_2:  002120 aa 000000 000000 6-119 oct 0 Here to store read switch info untouched  002121 6-120 sw_store_3:  002121 aa 000000 000000 6-121 oct 0 Here to store read switch info untouched  002122 6-122 sw_store_4:  002122 aa 000000 000000 6-123 oct 0 Here to store read switch info untouched  002123 6-124 switches_4: 002123 aa 000000 000000 6-125 oct 0 Save half/full switches here  002124 6-126 get_table:  002124 aa 000000 000000 6-127 zero 0,0  6-128 " The following table is used to map memory size codes into memory size  6-129 " for L68 and DPS cpu's 6-130  002125 6-131 size_code_table:  002125 aa 000000 001000 6-132 vfd 36/(32*1024/64)  002126 aa 000000 002000 6-133 vfd 36/(64*1024/64)  002127 aa 000000 200000 6-134 vfd 36/(4096*1024/64)  002130 aa 000000 004000 6-135 vfd 36/(128*1024/64)  002131 aa 000000 020000 6-136 vfd 36/(512*1024/64)  002132 aa 000000 040000 6-137 vfd 36/(1024*1024/64)  002133 aa 000000 100000 6-138 vfd 36/(2048*1024/64)  002134 aa 000000 010000 6-139 vfd 36/(256*1024/64)  6-140  6-141 " The following table is used to map memory size codes into memory size  6-142 " for DPSE cpu's  6-143  002135 6-144 size_code_table_dps8:  6-145  002135 aa 000000 001000 6-146 vfd 36/(32*1024/64)  002136 aa 000000 002000 6-147 vfd 36/(64*1024/64)  002137 aa 000000 004000 6-148 vfd 36/(128*1024/64)  002140 aa 000000 010000 6-149 vfd 36/(256*1024/64)  002141 aa 000000 020000 6-150 vfd 36/(512*1024/64)  002142 aa 000000 040000 6-151 vfd 36/(1024*1024/64)  002143 aa 000000 100000 6-152 vfd 36/(2048*1024/64)  002144 aa 000000 200000 6-153 vfd 36/(4096*1024/64)  6-154  6-155  6-156  6-157 " End of include file .... getportinfo.incl.alm 6-158  975 include rdclock  7-1 " 7-2 " Begin include file ...... rdclock.incl.alm  7-3 " last modified 7/20/76 by Noel I. Morris  7-4 " last modified 7/10/78 by Bernard S. Greenberg for externally gettable vars  7-5 " and calculating every parameter imaginable.  7-6 " last modified 5/05/80 by Mike Grady to calculate a few more imaginable  7-7 " variables, and to fix a bug in leap years.  7-8 "  7-9 " tsx2 rd_clock 7-10 " staq MM/DD HH:MM  7-11  7-12 " ldaq clocktime  7-13 " tsx2 cv_clock 7-14 " staq MM/DD HH:MM  7-15  002145 aa 000040 4130 00 7-16 rd_clock: rscr 4*8 read the clock 7-17  002146 0a 002300 7570 00 7-18 cv_clock: staq rdctime save clock reading 002147 0a 002250 7420 00 7-19 stx2 datx2 save XR's 002150 0a 002251 7400 00 7-20 stx0 datx2+1 ..  7-21  002151 aa 000034 2350 07 7-22 lda 28,dl Initialize montab  002152 0a 002303 7550 00 7-23 sta montab+1 to prime Feb  7-24  002153 0a 007734 2350 00 7-25 lda =aclok find clock config card  002154 0a 005123 7020 00 7-26 tsx2 getconf  002155 0a 002162 7100 00 7-27 tra no_clok_card Use default  002156 aa 6 00001 2361 17 7-28 ldq com|1,7  002157 0a 002273 7560 00 7-29 stq rdclock.zone_temp Delta hours 002160 aa 6 00002 2361 17 7-30 ldq com|2,7  002161 0a 002274 7560 00 7-31 stq rdclock.zone_name Name of zone  7-32  002162 7-33 no_clok_card:  002162 0a 002300 2370 00 7-34 ldaq rdctime Get clock reading  002163 aa 000001 7370 00 7-35 lls 1 Set for dvf  002164 0a 007735 5070 00 7-36 dvf =1000000 Get seconds since 1900. 002165 aa 000044 7770 00 7-37 llr 36 Into Q.  002166 aa 000074 5060 07 7-38 div 60,dl Seconds since min to A, mins to Q. 002167 0a 002263 7550 00 7-39 sta rdclock.sec Save for inspection.  002170 aa 000074 5060 07 7-40 div 60,dl Min since hr to A, hrs to Q.  002171 0a 002262 7550 00 7-41 sta rdclock.min  7-42 "  7-43 " Set up X7 for field filling.  7-44 "  002172 aa 000006 6270 00 7-45 eax7 6 002173 0a 002253 7020 00 7-46 tsx2 datecv Convert the minutes. 002174 0a 002273 1760 00 7-47 sbq rdclock.zone_temp Adjust for GMT. 002175 aa 000030 5060 07 7-48 div 24,dl Days since 1900 in q.  002176 0a 002272 7560 00 7-49 stq rdclock.day_of_century save for later.  002177 0a 002261 7550 00 7-50 sta rdclock.hr Hours since daybreak.  002200 0a 002253 7020 00 7-51 tsx2 datecv Convert the hours  7-52  002201 aa 002665 5060 07 7-53 div 365*4+1,dl get leap year cycle  002202 aa 002110 1150 07 7-54 cmpa 365*3+1,dl if in last year of cycle (the leap year)  002203 0a 002205 6040 00 7-55 tmi *+2 no  002204 0a 002303 0540 00 7-56 aos montab+1 allow for feb 29  7-57  002205 aa 000002 7360 00 7-58 qls 2 4*# leap year cycles  002206 aa 003555 0360 07 7-59 adlq 1901,dl  002207 0a 002271 7560 00 7-60 stq rdclock.year Save 7-61  002210 aa 000044 7770 00 7-62 llr 36 002211 aa 000555 5060 07 7-63 div 365,dl Years complete since l.y.c. =>Q  7-64 " Days since that year end => A 7-65  002212 aa 000004 1160 07 7-66 cmpq 4,dl Dec 31st of leap year? 002213 0a 002216 6010 00 7-67 tnz *+3 No.  002214 aa 000001 1760 07 7-68 sbq 1,dl Adjust year and 002215 aa 000555 2350 07 7-69 lda 365,dl day numbers.  7-70  002216 0a 002271 0560 00 7-71 asq rdclock.year Add in years complete.  002217 aa 000000 6260 00 7-72 eax6 0 search for correct month  002220 aa 030220 5202 01 7-73 rpt 12,1,tmi ..  002221 0a 002302 1750 16 7-74 sba montab,6 subtract off days for each month  002222 aa 777777 0750 16 7-75 ada -1,6 put back last entry 002223 aa 000001 0750 07 7-76 ada 1,dl plus one more  002224 0a 002266 7550 00 7-77 sta rdclock.day_of_month Day of month  002225 0a 002253 7020 00 7-78 tsx2 datecv convert day  7-79  002226 aa 000000 6350 16 7-80 eaa 0,6  002227 0a 002302 1350 03 7-81 sbla montab,du get index into month table  002230 aa 000022 7710 00 7-82 arl 18 ..  002231 0a 002264 7550 00 7-83 sta rdclock.month Save month number  002232 0a 002327 2360 05 7-84 ldq rdc.months-1,al Get name of month.  002233 0a 002265 7560 00 7-85 stq rdclock.month_name 002234 0a 002253 7020 00 7-86 tsx2 datecv convert month  7-87  002235 aa 000000 0244 00 7-88 mvne (),(),() edit the date and time 002236 0a 002276 070010 7-89 desc4ns date,8 002237 0a 002316 000014 7-90 desc9a datedit,12  002240 0a 002300 020014 7-91 desc6a rdctime,12  7-92  002241 0a 002272 2360 00 7-93 ldq rdclock.day_of_century 002242 aa 000002 0760 07 7-94 adq 2,dl Bump Tuesday into place.  002243 aa 000007 5060 07 7-95 div 7,dl  002244 0a 002267 7550 00 7-96 sta rdclock.day_of_week  002245 0a 002321 2360 05 7-97 ldq rdc.days,al Get name of day.  002246 0a 002270 7560 00 7-98 stq rdclock.day_name  7-99  002247 0a 002300 2370 00 7-100 ldaq rdctime get conversion in AQ  002250 0a 002250 6220 00 7-101 datx2: eax2 * restore XR's  002251 0a 002251 6200 00 7-102 eax0 * ..  002252 aa 000000 7100 12 7-103 tra 0,2 return to caller 7-104  7-105  002253 0a 002275 7550 00 7-106 datecv: sta datenum save number  7-107  002254 aa 000017 3014 00 7-108 btd (),(x7) convert into proper place  002255 0a 002275 000004 7-109 desc9a datenum,4  002256 0a 002276 070002 7-110 desc4ns date,2 7-111  002257 aa 777776 6270 17 7-112 eax7 -2,7 move offset index  002260 aa 000000 7100 12 7-113 tra 0,2 and return  7-114  7-115 "  7-116 " Usefull outside visible variables rdclock.xxxxx  7-117  002261 7-118 rdclock.hr: 002261 7-119 bss ,1 002262 7-120 rdclock.min:  002262 7-121 bss ,1 002263 7-122 rdclock.sec:  002263 7-123 bss ,1 002264 7-124 rdclock.month:  002264 7-125 bss ,1 002265 7-126 rdclock.month_name: 002265 7-127 bss ,1 002266 7-128 rdclock.day_of_month:  002266 7-129 bss ,1 002267 7-130 rdclock.day_of_week:  002267 7-131 bss ,1 002270 7-132 rdclock.day_name:  002270 7-133 bss ,1 002271 7-134 rdclock.year:  002271 7-135 bss ,1 002272 7-136 rdclock.day_of_century: 002272 7-137 bss ,1 002273 7-138 rdclock.zone_temp:  002273 aa 000000 000005 7-139 dec 5  002274 7-140 rdclock.zone_name:  002274 aa 145 163 164 040 7-141 aci 'est ' 7-142  002275 7-143 datenum: bss ,1 002276 7-144 date: bss ,1  7-145  002277 aa 000000 0110 03 7-146 even  002300 7-147 rdctime: bss ,2 7-148  002302 aa 000000 000037 7-149 montab: dec 31,28,31,30,31,30,31,31,30,31,30,31 002303 aa 000000 000034 002304 aa 000000 000037 002305 aa 000000 000036 002306 aa 000000 000037 002307 aa 000000 000036 002310 aa 000000 000037 002311 aa 000000 000037 002312 aa 000000 000036 002313 aa 000000 000037 002314 aa 000000 000036 002315 aa 000000 000037 7-150  002316 aa 401020 102260 7-151 datedit: vfd 9/lte+1,o9/20,9/mvzb+2,9/insp,o9/61,9/mvc+2,9/insm+1,9/mvc+2  002317 aa 061322 021322 002320 aa 260015 322021 7-152 vfd 9/insp,o9/15,9/mvc+2,9/insm+1  7-153  002321 aa 163 165 156 040 7-154 rdc.days: aci 'sun mon tue wed thurfri sat '  002322 aa 155 157 156 040 002323 aa 164 165 145 040 002324 aa 167 145 144 040 002325 aa 164 150 165 162 002326 aa 146 162 151 040 002327 aa 163 141 164 040 7-155  002330 7-156 rdc.months:  002330 aa 152 141 156 040 7-157 aci 'jan feb mar apr may jun jul aug septoct nov dec ' 002331 aa 146 145 142 040 002332 aa 155 141 162 040 002333 aa 141 160 162 040 002334 aa 155 141 171 040 002335 aa 152 165 156 040 002336 aa 152 165 154 040 002337 aa 141 165 147 040 002340 aa 163 145 160 164 002341 aa 157 143 164 040 002342 aa 156 157 166 040 002343 aa 144 145 143 040 7-158  7-159 " End of include file ...... rdclock.incl.alm  7-160  976 include scan  8-1 " 8-2 " Begin include file ...... scan.incl.alm  8-3 " tsx2 scan does command scan on 14 wds at line.  8-4 " Arguments are placed in arg (i). Numbers are converted as octal  8-5 " unless followed by decimal point. Decimal conversion of number  8-6 " can always be found in darg (i). Number of args is stored in arg_count.  8-7 " 6-bit Alpha descriptor for alpha args is in earg (i). 8-8 "  8-9 " Modified 8/7/74 by N. I. Morris  8-10 " EIS args added 7/11/75 by B. Greenberg  8-11  002344 0a 002536 7444 00 8-12 scan: sar4 scar4 Save AR4. 002345 0a 002473 7400 00 8-13 stx0 scx0 Save X0.  8-14  002346 aa 077000 1004 00 8-15 mlr (),(),fill(77) clear args  002347 0a 002347 020000 8-16 desc6a *,0 002350 0a 001721 020132 8-17 desc6a arg,arglen*6  8-18  002351 aa 077000 1004 00 8-19 mlr (),(),fill(77) clear decimal conversion, too  002352 0a 002352 020000 8-20 desc6a *,0 002353 0a 001741 020132 8-21 desc6a darg,arglen*6  8-22  002354 0a 002537 2350 00 8-23 lda scdesc6 clear out earg  002355 aa 000000 6270 00 8-24 eax7 0 002356 aa 036200 5202 01 8-25 rpt arglen,1  002357 0a 001761 7550 17 8-26 sta earg,7 8-27  002360 aa 000000 6270 00 8-28 eax7 0 X7 is arg pointer  002361 aa 777777 6260 00 8-29 eax6 -1 X6 is line offset 002362 aa 000000 6250 00 8-30 eax5 0 set state to 0 8-31  002363 aa 000001 6260 16 8-32 scl1: eax6 1,6 step to next input character  002364 aa 000124 1060 03 8-33 scl2: cmpx6 84,du are we finished? 002365 0a 002370 6040 00 8-34 tmi scget if not, go get next 002366 aa 000003 2360 07 8-35 ldq 3,dl make believe it's an asterisk  002367 0a 002400 7100 00 8-36 tra scgo ..  8-37  002370 aa 000000 1014 16 8-38 scget: mrl (x6),(),fill(0) get one character  002371 0a 001703 020001 8-39 desc6a line,1  002372 0a 002533 020006 8-40 desc6a scchar,6  8-41  002373 0a 002533 2350 00 8-42 lda scchar character in AL  002374 aa 000000 1014 05 8-43 mrl (al),(),fill(0) get the character type 002375 0a 002502 040001 8-44 desc4a sctypes,1  002376 0a 002534 020006 8-45 desc6a sctype,6  8-46  002377 0a 002534 2360 00 8-47 ldq sctype character type in QL  002400 aa 000006 4020 07 8-48 scgo: mpy 6,dl multiply by 6  002401 0a 002512 2350 15 8-49 lda scstate,5 get table entry for this state  002402 aa 000006 7750 06 8-50 alr 6,ql grab correct entry for this type 002403 aa 000077 3750 07 8-51 ana =o77,dl and mask  002404 0a 002516 7100 25 8-52 tra scdisp,al* dispatch on action code 8-53  8-54  8-55 " 002405 0a 001721 4500 17 8-56 scnum1: stz arg,7 start numeric field  002406 0a 002475 7050 00 8-57 tsx5 scstartf prepare to start field  8-58  002407 0a 001721 2360 17 8-59 scnum2: ldq arg,7 octal conversion 002410 aa 000003 7360 00 8-60 qls 3 ..  002411 0a 002533 2760 00 8-61 orq scchar insert new character  002412 0a 001721 7560 17 8-62 stq arg,7 ..  8-63  002413 0a 001741 2360 17 8-64 ldq darg,7 decimal conversion 002414 aa 000002 7360 00 8-65 qls 2 ..  002415 0a 001741 0360 17 8-66 adlq darg,7 ..  002416 aa 000001 7360 00 8-67 qls 1 ..  002417 0a 002533 0360 00 8-68 adlq scchar add in new digit  002420 0a 001741 7560 17 8-69 stq darg,7 .. 8-70  002421 aa 000001 6250 00 8-71 eax5 1 new state is 1 002422 0a 002363 7100 00 8-72 tra scl1 loop 8-73  8-74  002423 0a 007736 2350 00 8-75 scalph1: lda =h " start character field  002424 0a 001721 7550 17 8-76 sta arg,7 start with blanks  002425 0a 002475 7050 00 8-77 tsx5 scstartf prepare to start field  8-78  002426 0a 001721 2350 17 8-79 scalph2: lda arg,7 process character  002427 aa 000006 7350 00 8-80 als 6 make room for new one  002430 0a 002533 2750 00 8-81 ora scchar insert it  002431 0a 001721 7550 17 8-82 sta arg,7 ..  8-83  002432 aa 000002 6250 00 8-84 eax5 2 new state is 2 002433 0a 002363 7100 00 8-85 tra scl1 loop 8-86  8-87  002434 0a 001741 2350 17 8-88 scdec: lda darg,7 make number decimal  002435 0a 001721 7550 17 8-89 sta arg,7 ..  002436 aa 000001 6260 16 8-90 eax6 1,6 force character index to advance 8-91  002437 0a 002532 2340 00 8-92 scnum3: szn scsign finish numeric field  002440 0a 002444 6000 00 8-93 tze scalph3 make negative, if required  002441 aa 000000 2360 07 8-94 ldq 0,dl clear Q  002442 0a 001741 1560 17 8-95 ssq darg,7 make negative  002443 0a 001721 1560 17 8-96 ssq arg,7 ..  8-97  002444 aa 000000 6350 16 8-98 scalph3: eaa 0,6 get charx of n+1st char  002445 0a 002535 1350 00 8-99 sbla scatemp get length of field  002446 aa 000022 7710 00 8-100 arl 18 to lower,  002447 aa 007777 3750 07 8-101 ana =o7777,dl just to make sure.. 002450 0a 001761 2550 17 8-102 orsa earg,7 move in length  8-103  002451 0a 002532 4500 00 8-104 stz scsign clear negative indicator  002452 aa 000001 6270 17 8-105 eax7 1,7 step to next arg 002453 aa 000017 1070 03 8-106 cmpx7 arglen,du all full? 002454 0a 002470 6050 00 8-107 tpl scret if so, all finished 8-108  002455 aa 000000 6250 00 8-109 eax5 0 new state is 0 002456 0a 002364 7100 00 8-110 tra scl2 loop without advancing character index  8-111  8-112 " 8-113  002457 0a 002532 7500 00 8-114 scminus1: stc2 scsign set minus sign indicator 002460 0a 001721 4500 17 8-115 stz arg,7 clear conversion  002461 0a 002475 7050 00 8-116 tsx5 scstartf prepare to start new field  8-117  002462 aa 000003 6250 00 8-118 eax5 3 new state is 3 002463 0a 002363 7100 00 8-119 tra scl1 loop 8-120  002464 0a 007737 2350 00 8-121 scminus2: lda =h - character minus 002465 0a 001721 7550 17 8-122 sta arg,7 set it  8-123  002466 aa 000002 6250 00 8-124 eax5 2 new state is 2 002467 0a 002364 7100 00 8-125 tra scl2 loop without advancing character index  8-126  8-127  002470 aa 000001 1670 03 8-128 scret: sbx7 1,du  002471 0a 002531 7470 00 8-129 stx7 arg_count Make number of args available. 002472 0a 002536 7644 00 8-130 lar4 scar4 Restore AR4.  002473 0a 002473 6200 00 8-131 scx0: eax0 * Restore X0.  002474 aa 000000 7100 12 8-132 tra 0,2  8-133  8-134  8-135  002475 0a 001741 4500 17 8-136 scstartf: stz darg,7 clear decimal conversion  8-137  002476 aa 401703 5014 16 8-138 a6bdx 4|line,6 get pointer to start of string 002477 0a 001761 5444 17 8-139 ara4 earg,7 set descriptor to start  002500 0a 002535 7460 00 8-140 stx6 scatemp save for length computation  002501 aa 000000 7100 15 8-141 tra 0,5 return to caller  8-142  8-143 " 8-144  8-145 " Tables and storage.  8-146 "  8-147 " Types are:  8-148 " 0 blank 3 asterisk  8-149 " 1 minus 4 number  8-150 " 2 decimal point 5 other  8-151 "  8-152  002502 8-153 sctypes: " Character type table.  002502 aa 104104 104104 8-154 vfd 5/4,4/4,5/4,4/4,5/4,4/4,5/4,4/4 (00-07)  002503 aa 104125 125125 8-155 vfd 5/4,4/4,5/5,4/5,5/5,4/5,5/5,4/5 (10-17)  002504 aa 005125 125125 8-156 vfd 5/0,4/5,5/5,4/5,5/5,4/5,5/5,4/5 (20-27)  002505 aa 125122 125125 8-157 vfd 5/5,4/5,5/5,4/2,5/5,4/5,5/5,4/5 (30-37)  002506 aa 125125 125125 8-158 vfd 5/5,4/5,5/5,4/5,5/5,4/5,5/5,4/5 (40-47)  002507 aa 125025 065125 8-159 vfd 5/5,4/5,5/1,4/5,5/3,4/5,5/5,4/5 (50-57)  002510 aa 125125 125125 8-160 vfd 5/5,4/5,5/5,4/5,5/5,4/5,5/5,4/5 (60-67)  002511 aa 125125 125125 8-161 vfd 5/5,4/5,5/5,4/5,5/5,4/5,5/5,4/5 (70-77)  8-162  002512 8-163 scstate: " State table.  002512 aa 000302 120102 8-164 vfd 6/0,6/3,6/2,6/10,6/1,6/2 0 - searching for next field  002513 aa 060610 060406 8-165 vfd 6/6,6/6,6/8,6/6,6/4,6/6 1 - processing numeric field  002514 aa 070505 070505 8-166 vfd 6/7,6/5,6/5,6/7,6/5,6/5 2 - processing character field 002515 aa 111111 110411 8-167 vfd 6/9,6/9,6/9,6/9,6/4,6/9 3 - processing minus sign  8-168  002516 8-169 scdisp: " Action table. 002516 0a 002363 7100 00 8-170 tra scl1 0 - ignore character 002517 0a 002405 7100 00 8-171 tra scnum1 1 - start numeric field  002520 0a 002423 7100 00 8-172 tra scalph1 2 - start character field 002521 0a 002457 7100 00 8-173 tra scminus1 3 - process minus sign  002522 0a 002407 7100 00 8-174 tra scnum2 4 - process numeric character  002523 0a 002426 7100 00 8-175 tra scalph2 5 - process non-numeric character 002524 0a 002437 7100 00 8-176 tra scnum3 6 - complete numeric field *  002525 0a 002444 7100 00 8-177 tra scalph3 7 - complete character field *  002526 0a 002434 7100 00 8-178 tra scdec 8 - force number decimal  002527 0a 002464 7100 00 8-179 tra scminus2 9 - store minus character *  002530 0a 002470 7100 00 8-180 tra scret 10 - stop  8-181 " * These actions cause current character to be reexamined. 8-182  8-183  002531 8-184 arg_count:bss ,1  002532 aa 000000 000000 8-185 scsign: oct 0  002533 8-186 scchar: bss ,1  002534 8-187 sctype: bss ,1  002535 aa 000000 000000 8-188 scatemp: oct 0 charx of first char of field  002536 8-189 scar4: bss ,1 save for ar4 002537 0a 001703 020000 8-190 scdesc6: desc6a line,0 prototype descriptor for arg  8-191  8-192 " End of include file ...... scan.incl.alm  8-193  977 include nextline  9-1 "  9-2 " Begin include file ...... nextline.incl.alm  9-3 " Modified 6/9/76 by Noel I. Morris 9-4 " Last modified by Sherman D. Sprague 02/11/81 for DPS8 support.  9-5 "  9-6 " tsx2 nextline to fill line with next input line  9-7 " from tty, cards, or macro file 9-8  002540 0a 003046 7400 00 9-9 nextline: stx0 nlx save xrs  002541 0a 003047 7410 00 9-10 stx1 nlx+1 002542 0a 003050 7420 00 9-11 stx2 nlx+2 9-12  002543 aa 6 02021 2351 00 9-13 nlagain: lda com|inputsw read from tty, cards, or macro file  002544 aa 000014 7710 00 9-14 arl 18-6  002545 0a 002546 7100 01 9-15 tra *+1,au 002546 0a 002551 7100 00 9-16 tra nltty  002547 0a 002554 7100 00 9-17 tra nlcd  002550 0a 002563 7100 00 9-18 tra nlma  9-19  9-20  002551 0a 004525 7020 00 9-21 nltty: tsx2 readtty read from tty  002552 0a 003053 7100 00 9-22 tra nlsw null line  002553 0a 002775 7100 00 9-23 tra nlscan good line, scan it 9-24  9-25  002554 0a 004341 7020 00 9-26 nlcd: tsx2 readcd read a card  002555 0a 003053 7100 00 9-27 tra nlsw end of deck  002556 0a 002771 7100 00 9-28 tra nlpt good read, print it  9-29  9-30  002557 0a 003046 7400 00 9-31 nxtlinea: stx0 nlx here to scan line already read in  002560 0a 003047 7410 00 9-32 stx1 nlx+1 002561 0a 003050 7420 00 9-33 stx2 nlx+2 002562 0a 002775 7100 00 9-34 tra nlscan check for 'tty', etc.  9-35  9-36 " 9-37  002563 aa 6 02022 2341 00 9-38 nlma: szn com|macroloc are we still 002564 0a 003053 6000 00 9-39 tze nlsw  002565 aa 6 02022 7201 00 9-40 lxl0 com|macroloc reading from macro file  002566 aa 007777 3600 03 9-41 anx0 =o7777,du mask offset  002567 aa 000000 6210 00 9-42 eax1 0 word count in line 9-43  002570 aa 020000 1004 00 9-44 mlr (),(),fill(20) clear line image  002571 0a 002571 020000 9-45 desc6a *,0 002572 0a 001703 020124 9-46 desc6a line,84 9-47  002573 0a 002734 7020 00 9-48 tsx2 nlget get next word from file  002574 0a 007731 1150 00 9-49 cmpa =-1 if fence, runcom is finished 002575 0a 003051 6000 00 9-50 tze nlswma .. 002576 aa 777777 3750 03 9-51 ana =o777777,du mask length of this line  002577 0a 003062 7550 00 9-52 sta nllen ..  9-53  002600 0a 003062 1010 00 9-54 nlloop: cmpx1 nllen test for completion of copy  002601 0a 002606 6050 00 9-55 tpl nlmae ..  002602 0a 002734 7020 00 9-56 tsx2 nlget get next word from file  002603 0a 001703 7550 11 9-57 sta line,1 place in line  002604 aa 000001 6210 11 9-58 eax1 1,1 step to next 002605 0a 002600 7100 00 9-59 tra nlloop and loop  9-60  002606 aa 000000 6350 10 9-61 nlmae: eaa 0,0 buffer index in AU  002607 aa 000022 7710 00 9-62 arl 18 move to AL 002610 aa 6 02022 7511 03 9-63 stca com|macroloc,03 save buffer index 9-64  002611 0a 003061 2340 00 9-65 szn nlraw expand args?  002612 0a 002771 6010 00 9-66 tnz nlpt if not, just print expanded line 9-67  002613 aa 020000 1004 00 9-68 mlr (),(),fill(20) blank out expanded line 002614 0a 002614 020000 9-69 desc6a *,0 002615 0a 003064 020124 9-70 nlbufdesc:desc6a nlbuf,84  9-71  002616 aa 000124 2360 07 9-72 ldq 84,dl Q contains remaining output length  002617 aa 000000 6200 00 9-73 eax0 0 X0 is output offset  002620 aa 000124 6250 00 9-74 eax5 84 X5 contains remaining input length  002621 aa 000000 6260 00 9-75 eax6 0 X6 is input offset 9-76  002622 aa 000003 1244 56 9-77 nlxloop: scm (x6,rl),(du) search for "&"  002623 0a 001703 020015 9-78 desc6a line,x5 002624 aa 320 000 000 000 9-79 bci "&"  002625 0a 003062 0000 00 9-80 arg nllen  9-81  002626 0a 002754 7020 00 9-82 tsx2 nlxpand copy everything up to "&"  002627 aa 000050 1004 76 9-83 mlr (x6,rl,id),(x0,rl) 002630 0a 001703 020017 9-84 desc6a line,x7 9-85  002631 0a 002660 6064 00 9-86 ttn nlmpt if no "&", we're finished  9-87  002632 0a 003063 0660 00 9-88 adx6 nlno bump input offset  002633 aa 000001 6260 16 9-89 eax6 1,6 plus one for "&" 002634 0a 003063 1650 00 9-90 sbx5 nlno decrement remaining characters  002635 aa 777777 6250 15 9-91 eax5 -1,5 ..  002636 0a 002660 6044 00 9-92 tmoz nlmpt if empty, we're finished  9-93  002637 aa 000000 1014 16 9-94 mrl (x6),(),fill(0) extract next character 002640 0a 001703 020001 9-95 desc6a line,1  002641 0a 003063 020006 9-96 desc6a nlno,6  9-97  002642 0a 003063 7210 00 9-98 lxl1 nlno should be single digit  002643 aa 000012 1010 03 9-99 cmpx1 10,du test for digit  002644 0a 002646 6040 00 9-100 tmi *+2 if not,  002645 aa 000000 6210 00 9-101 eax1 0 make it zero  9-102  002646 aa 6 02716 2351 11 9-103 lda com|macroargs,1 get appropriate arg descriptor 002647 0a 002654 7550 00 9-104 sta nlxdesc save it  002650 aa 007777 3750 07 9-105 ana =o7777,dl mask the length 002651 0a 003062 7550 00 9-106 sta nllen and save  9-107  002652 0a 002754 7020 00 9-108 tsx2 nlxpand copy arg into line  002653 aa 0 00050 1005 20 9-109 mlr (pr,id),(x0,rl)  002654 9-110 nlxdesc: bss ,1 9-111  002655 aa 000001 6260 16 9-112 eax6 1,6 step over digit  002656 aa 777777 6250 15 9-113 eax5 -1,5 ..  002657 0a 002622 6054 00 9-114 tpnz nlxloop if characters left, loop 9-115  002660 aa 6 02025 2341 00 9-116 nlmpt: szn com|skipsw skipping lines?  002661 0a 002701 6000 00 9-117 tze nlmpr if not, just print line and execute 002662 0a 003630 7020 00 9-118 tsx2 erpt print out expanded line 002663 aa 005 136 147 040 9-119 acc "^g ^G"  002664 aa 136 107 000 000 002665 0a 007740 0000 00 9-120 arg =h!!?!!?  002666 0a 002615 0000 00 9-121 arg nlbufdesc  9-122  002667 0a 004525 7020 00 9-123 tsx2 readtty read a line from console 002670 0a 002543 7100 00 9-124 tra nlagain if null, ignore this line 002671 0a 002344 7020 00 9-125 tsx2 scan parse input 002672 0a 001721 2350 00 9-126 lda arg get first parameter  002673 0a 007741 1150 00 9-127 cmpa =h x x?  002674 0a 002711 6000 00 9-128 tze nlmx execute this line but remain in skip mode  002675 0a 007742 1150 00 9-129 cmpa =h c c?  002676 0a 002660 6010 00 9-130 tnz nlmpt turn off skip mode and proceed  9-131  002677 aa 6 02025 4501 00 9-132 stz com|skipsw turn off skip mode  002700 0a 002705 7100 00 9-133 tra nlmpx copy and expand line  9-134  002701 aa 6 02020 2341 00 9-135 nlmpr: szn com|quietsw quiet mode?  002702 0a 002705 6010 00 9-136 tnz nlmpx if so, skip printing  002703 0a 004153 7020 00 9-137 tsx2 type write out line to be executed  002704 0a 003064 000016 9-138 zero nlbuf,14  9-139  002705 aa 020000 1004 00 9-140 nlmpx: mlr (),(),fill(20) copy expanded line  002706 0a 003064 020124 9-141 desc6a nlbuf,84  002707 0a 001703 020124 9-142 desc6a line,84 002710 0a 002775 7100 00 9-143 tra nlscan parse input  9-144  9-145 " 9-146  002711 0a 001722 2360 00 9-147 nlmx: ldq arg+1 look at next arg  002712 0a 007731 1160 00 9-148 cmpq =-1 fence?  002713 0a 002705 6000 00 9-149 tze nlmpx execute line, but stay in skip mode 9-150  002714 0a 001762 2360 00 9-151 ldq earg+1 get descriptor to rest of line 002715 aa 000017 7720 00 9-152 qrl 15 character offset in QL 002716 aa 000007 3760 07 9-153 anq =o7,dl .. 002717 0a 003063 7560 00 9-154 stq nlno save it  002720 0a 001762 2360 00 9-155 ldq earg+1 descriptor in Q again  002721 0a 001703 1360 03 9-156 sblq line,du get offset from beginning  002722 aa 000022 7720 00 9-157 qrl 18 in QL  002723 aa 000006 4020 07 9-158 mpy 6,dl in characters  002724 0a 003063 0760 00 9-159 adq nlno plus character offset  002725 0a 003063 7560 00 9-160 stq nlno save offset  002726 aa 000124 2350 07 9-161 lda 84,dl line length in A  002727 0a 003063 1750 00 9-162 sba nlno minus offset 9-163  002730 aa 020000 1004 46 9-164 mlr (rl,ql),(),fill(20) copy rest of line  002731 0a 001703 020005 9-165 desc6a line,al 002732 0a 001703 020124 9-166 desc6a line,84 002733 0a 002775 7100 00 9-167 tra nlscan now scan new command line  9-168  9-169 " 9-170  002734 0a 002752 7420 00 9-171 nlget: stx2 nlgx2 subr to get one word from runcom file  9-172  002735 aa 000100 1000 03 9-173 cmpx0 64,du does buffer need reloaded 002736 0a 002750 6040 00 9-174 tmi nlnoload  9-175  002737 aa 6 02022 2351 00 9-176 lda com|macroloc reload buffer 002740 aa 010000 0750 07 9-177 ada =o10000,dl 002741 aa 6 02022 7551 00 9-178 sta com|macroloc bump addr 002742 0a 007720 3750 00 9-179 ana =o777777770000 002743 aa 000001 2750 07 9-180 ora =1,dl  002744 0a 003317 7020 00 9-181 tsx2 rdsec 002745 aa 6 02600 0111 00 9-182 nop com|macrobuf  002746 0a 002746 6160 00 9-183 dis *  002747 aa 000000 6200 00 9-184 eax0 0 9-185  002750 aa 6 02600 2351 10 9-186 nlnoload: lda com|macrobuf,0 copy word  002751 aa 000001 6200 10 9-187 eax0 1,0  9-188  002752 0a 002752 6220 00 9-189 nlgx2: eax2 * restore X2  002753 aa 000000 7100 12 9-190 tra 0,2 and return with word in A 9-191  9-192  002754 0a 003062 1160 00 9-193 nlxpand: cmpq nllen enough room left in line?  002755 0a 002757 6050 00 9-194 tpl *+2 if not,  002756 0a 003062 7560 00 9-195 stq nllen use as much space as remains  002757 0a 003062 7270 00 9-196 lxl7 nllen length in X7  002760 aa 000002 6000 12 9-197 tze 2,2 return if zero lenth  9-198  002761 aa 000000 7160 12 9-199 xec 0,2 mlr  002762 aa 000001 0000 12 9-200 arg 1,2  002763 0a 003064 020017 9-201 desc6a nlbuf,x7  9-202  002764 0a 003063 7470 00 9-203 stx7 nlno store length in upper  002765 0a 003063 0600 00 9-204 adx0 nlno bump offset 002766 0a 003062 1760 00 9-205 sbq nllen decrement length  002767 0a 002660 6044 00 9-206 tmoz nlmpt if full, all finished  9-207  002770 aa 000002 7100 12 9-208 tra 2,2 return to caller  9-209  9-210 " 9-211  002771 aa 6 02020 2341 00 9-212 nlpt: szn com|quietsw if quiet  002772 0a 002775 6010 00 9-213 tnz nlscan then don't print  002773 0a 004153 7020 00 9-214 tsx2 type  002774 0a 001703 000016 9-215 zero line,14  9-216  002775 0a 002344 7020 00 9-217 nlscan: tsx2 scan scan line into args  002776 0a 003061 2340 00 9-218 szn nlraw if quiet and tty commands are to be skipped 002777 0a 003046 6010 00 9-219 tnz nlnocard used by do  9-220  003000 0a 001721 2350 00 9-221 lda arg  003001 0a 007731 1150 00 9-222 cmpa =-1 if no args (blank line)  003002 0a 002543 6000 00 9-223 tze nlagain  9-224  003003 0a 007743 1150 00 9-225 cmpa =h quiet  003004 0a 003011 6010 00 9-226 tnz nlnr  003005 0a 001722 2350 00 9-227 lda arg+1 if quiet command check on/off  003006 0a 007733 6750 00 9-228 era =h off  003007 aa 6 02020 7551 00 9-229 sta com|quietsw  003010 0a 002543 7100 00 9-230 tra nlagain  9-231  003011 0a 007744 1150 00 9-232 nlnr: cmpa =h ready 003012 0a 003017 6010 00 9-233 tnz nlnp  003013 0a 001722 2350 00 9-234 lda arg+1 if ready command check on/off  003014 0a 007732 6750 00 9-235 era =h on  003015 aa 6 02030 7551 00 9-236 sta com|readysw  003016 0a 002543 7100 00 9-237 tra nlagain  9-238  003017 0a 007745 1150 00 9-239 nlnp: cmpa =hprompt 003020 0a 003025 6010 00 9-240 tnz nlnq  003021 0a 001722 2350 00 9-241 lda arg+1 if prompt command check on/off  003022 0a 007732 6750 00 9-242 era =h on  003023 aa 6 02026 7551 00 9-243 sta com|ttypmtsw  003024 0a 002543 7100 00 9-244 tra nlagain  9-245  003025 0a 007746 1150 00 9-246 nlnq: cmpa =h tty 003026 0a 003033 6010 00 9-247 tnz nlnotty  003027 aa 6 02021 2351 00 9-248 lda com|inputsw stack inputsw  003030 aa 000006 7710 00 9-249 arl 6  003031 aa 6 02021 7551 00 9-250 sta com|inputsw read now from tty  003032 0a 002543 7100 00 9-251 tra nlagain  9-252  003033 0a 007747 1150 00 9-253 nlnotty: cmpa =h cards  003034 0a 003046 6010 00 9-254 tnz nlnocard  003035 aa 6 02021 2351 00 9-255 lda com|inputsw start reading from cards  003036 aa 000006 7710 00 9-256 arl 6  003037 aa 010000 2750 03 9-257 ora =o010000,du  003040 aa 6 02021 7551 00 9-258 sta com|inputsw  003041 0a 001722 2350 00 9-259 lda arg+1 see if channel # supplied  003042 0a 002543 6040 00 9-260 tmi nlagain  003043 aa 000022 7350 00 9-261 als 18 003044 aa 6 02016 7551 00 9-262 sta com|rdrchanno  003045 0a 002543 7100 00 9-263 tra nlagain  9-264  003046 9-265 nlnocard:  003046 0a 003046 6200 00 9-266 nlx: eax0 * 003047 0a 003047 6210 00 9-267 eax1 * 003050 0a 003050 7100 00 9-268 tra *  9-269  003051 aa 6 02022 4501 00 9-270 nlswma: stz com|macroloc we are no longer using macro file  003052 aa 6 02025 4501 00 9-271 stz com|skipsw 9-272  003053 aa 6 02021 2351 00 9-273 nlsw: lda com|inputsw unstack inputsw  003054 aa 000006 7350 00 9-274 als 6  003055 aa 6 02021 7551 00 9-275 sta com|inputsw  003056 0a 003061 2340 00 9-276 szn nlraw  003057 0a 003046 6010 00 9-277 tnz nlx  003060 0a 002543 7100 00 9-278 tra nlagain  9-279  9-280 " 9-281  003061 aa 000000 000000 9-282 nlraw: oct 0  9-283  003062 9-284 nllen: bss ,1  003063 9-285 nlno: bss ,1  9-286  003064 9-287 nlbuf: bss ,14  9-288  9-289 " End of include file ...... nextline.incl.alm  9-290  978 include search 10-1 " 10-2 " Begin include file ...... search.incl.alm 10-3 " Created 7/17/74 by Noel I. Morris 10-4 " Last modified 10/30/75 by Noel I. Morris  10-5  10-6 " To find BOS command in directory --  10-7 " lda name  10-8 " tsx2 search  10-9 " tra error 10-10 " sta =v24/sector,12/length 10-11 "  10-12 " On successful return, com|0,7 -> directory entry  10-13 "  10-14  003102 10-15 search: 003102 0a 003113 7400 00 10-16 stx0 shx0 save X0 10-17  003103 aa 002032 6270 00 10-18 eax7 cmdlst X7 -> BOS command directory  003104 aa 546300 5202 02 10-19 rpt (dir+dirlen-cmdlst)/2,2,tze search the directory  003105 aa 6 00000 1151 17 10-20 cmpa com|0,7 ..  003106 0a 003111 6070 00 10-21 ttf shfnd ..  10-22  003107 0a 003113 2200 00 10-23 ldx0 shx0 restore X0  003110 aa 000000 7100 12 10-24 tra 0,2 take error return 10-25  003111 aa 777776 6270 17 10-26 shfnd: eax7 -2,7 adjust index 003112 aa 6 00001 2351 17 10-27 lda com|1,7 return with disk address in A 003113 0a 003113 6200 00 10-28 shx0: eax0 * restore X0  003114 aa 000001 7100 12 10-29 tra 1,2 and return  10-30  10-31  10-32 " End of include file ...... search.incl.alm  10-33  979 include rwdev  11-1 " 11-2 " Begin include file ...... rwdev.incl.alm NSS by BSG, 9/4/75 11-3  003115 aa 000000 7270 32 11-4 rdev: lxl7 0,2* get dev type  003116 aa 000017 3670 03 11-5 anx7 =o17,du mask device type code  003117 aa 000007 1070 03 11-6 cmpx7 fs_dev.max_dev_type,du  003120 0a 003120 6054 00 11-7 tpnz * 003121 0a 003146 0620 17 11-8 adx2 rwdtab-1,7 shorten arg list  003122 0a 003122 7100 17 11-9 tra *,7  003123 0a 003337 7100 00 11-10 tra rdbulk Bulk  003124 0a 003340 7100 00 11-11 tra rd500 MSS500  003125 0a 003340 7100 00 11-12 tra rd450 MSS450  003126 0a 003340 7100 00 11-13 tra rd400 MSS400 (d191)  003127 0a 003340 7100 00 11-14 tra rd190 DSU190  003130 0a 003340 7100 00 11-15 tra rd181 DSU181  003131 0a 003340 7100 00 11-16 tra rd501 MSS501  11-17  003132 aa 000000 7270 32 11-18 wdev: lxl7 0,2* same as read  003133 aa 000017 3670 03 11-19 anx7 =o17,du mask device type code  003134 aa 000007 1070 03 11-20 cmpx7 fs_dev.max_dev_type,du  003135 0a 003135 6054 00 11-21 tpnz * 003136 0a 003146 0620 17 11-22 adx2 rwdtab-1,7  003137 0a 003137 7100 17 11-23 tra *,7  003140 0a 003337 7100 00 11-24 tra wtbulk Bulk  003141 0a 003342 7100 00 11-25 tra wd500 MSS500  003142 0a 003342 7100 00 11-26 tra wd450 MSS450  003143 0a 003342 7100 00 11-27 tra wd400 MSS400 (d191)  003144 0a 003342 7100 00 11-28 tra wd190 DSU190  003145 0a 003342 7100 00 11-29 tra wd181 DSU181  003146 0a 003342 7100 00 11-30 tra wd501 MSS501  11-31  003147 aa 000001 000000 11-32 rwdtab: zero 1 one fewer arg for bulk store  003150 aa 000000 000000 11-33 zero 0 MSS500 003151 aa 000000 000000 11-34 zero 0 MSS450 003152 aa 000000 000000 11-35 zero 0 MSS400 (d191)  003153 aa 000000 000000 11-36 zero 0 DSU190 003154 aa 000000 000000 11-37 zero 0 DSU181 003155 aa 000000 000000 11-38 zero 0 MSS501 11-39  11-40 " End of include file ...... rwdev.incl.alm 11-41  980 include config_cards  12-1 " 12-2 " Begin include file ...... config_cards.incl.alm  12-3 " 3/75 THVV nss 12-4 " Last modified 3/12/76 by Noel I. Morris  12-5  000001 12-6 equ ROOT_cd.sub,1  000002 12-7 equ ROOT_cd.drive,2  12-8  000001 12-9 equ PART_cd.name,1 000002 12-10 equ PART_cd.sub,2  000003 12-11 equ PART_cd.drive,3  12-12  000001 12-13 equ PRPH_cd.sub,1  000002 12-14 equ PRPH_cd.iom,2  000003 12-15 equ PRPH_cd.chn,3  000004 12-16 equ PRPH_cd.model,4  12-17  000001 12-18 equ DISK_cd.sub,1  000002 12-19 equ DISK_cd.iom,2  000003 12-20 equ DISK_cd.chn,3  000004 12-21 equ DISK_cd.nchan,4  000005 12-22 equ DISK_cd.model,5  000006 12-23 equ DISK_cd.ndrives,6  12-24  000001 12-25 equ CHNL_cd.sub,1  000002 12-26 equ CHNL_cd.iom,2  000003 12-27 equ CHNL_cd.chn,3  000004 12-28 equ CHNL_cd.nchan,4  12-29  000001 12-30 equ BULK_cd.frec,1 000002 12-31 equ BULK_cd.nrec,2 12-32  12-33 " End of include file ...... config_cards.incl.alm  12-34  981 include fs_dev_types  13-1 " 13-2 " Begin include file ...... fs_dev_types.incl.alm  13-3 " Updated for NSS 4/75 by TVV  13-4 " Last modified 3/12/76 by Noel I. Morris  13-5 " Last modified 01/06/79 by Michael R. Jordan for MSS0500 support  13-6 " Last modified 4/79 by R.J.C. Kissel for MSU0501 support.  13-7  000001 13-8 equ bulkdevt,1 000002 13-9 equ msu0500devt,2  000003 13-10 equ msu0451devt,3  000003 13-11 equ msu0450devt,3  000004 13-12 equ msu0400devt,4  000004 13-13 equ dsu191devt,4  000005 13-14 equ dsu190devt,5  000006 13-15 equ dsu181devt,6  000007 13-16 equ msu0501devt,7  13-17  003156 13-18 fs_dev.models:  003156 aa 142 165 154 153 13-19 aci "bulk" Bulk  003157 aa 000000 000764 13-20 dec 500 MSU0500  003160 aa 000000 000703 13-21 dec 451 MSU0451  003161 aa 000000 000702 13-22 dec 450 MSU0450  003162 aa 000000 000620 13-23 dec 400 MSU0400  003163 aa 000000 000622 13-24 dec 402 MSU0402  003164 aa 000000 000277 13-25 dec 191 DSU191  003165 aa 000000 000276 13-26 dec 190 DSU190  003166 aa 000000 000265 13-27 dec 181 DSU181  003167 aa 000000 000765 13-28 dec 501 MSU0501  000012 13-29 equ fs_dev.n_models,*-fs_dev.models  13-30  003170 13-31 fs_dev.modelx:  003170 aa 000000 000001 13-32 bulk_dvt: dec 1 Bulk  003171 aa 000000 000002 13-33 dec 2 MSU0500 003172 aa 000000 000003 13-34 dec 3 MSU0451 003173 aa 000000 000003 13-35 dec 3 MSU0450 003174 aa 000000 000004 13-36 dec 4 MSU0400 003175 aa 000000 000004 13-37 dec 4 MSU0402 003176 aa 000000 000004 13-38 dec 4 DSU191  003177 aa 000000 000005 13-39 dec 5 DSU190  003200 aa 000000 000006 13-40 dec 6 DSU181  003201 aa 000000 000007 13-41 dec 7 MSU0501 13-42  000007 13-43 equ fs_dev.max_dev_type,7  13-44  003202 13-45 fs_dev.dev_type_names:  003202 aa 142 165 154 153 13-46 aci "bulk" 003203 aa 144 065 060 060 13-47 aci "d500" 003204 aa 144 064 065 061 13-48 aci "d451" 003205 aa 144 064 060 060 13-49 aci "d400" 003206 aa 144 061 071 060 13-50 aci "d190" 003207 aa 144 061 070 061 13-51 aci "d181" 003210 aa 144 065 060 061 13-52 aci "d501" 13-53  003211 13-54 fs_dev.media_removable: 003211 aa 000000 000000 13-55 oct 0 Bulk  003212 aa 000000 000000 13-56 oct 0 MSU0500 003213 aa 400000 000000 13-57 oct 400000000000 MSU0451  003214 aa 400000 000000 13-58 oct 400000000000 MSU0400  003215 aa 400000 000000 13-59 oct 400000000000 DSU190  003216 aa 400000 000000 13-60 oct 400000000000 DSU181  003217 aa 000000 000000 13-61 oct 0 MSU0501 13-62  13-63 " Following data items are hardware constants  13-64  003220 13-65 fs_dev.sect_per_dev:  003220 aa 000017 204400 13-66 vfd 36/4000000 Bulk  003221 aa 000002 270220 13-67 vfd 36/814*40*19 MSU0500  003222 aa 000002 270220 13-68 vfd 36/814*40*19 MSU0450  003223 aa 000001 140460 13-69 vfd 36/410*40*19 MSU0400  003224 aa 000000 727522 13-70 vfd 36/410*31*19 DSU190  003225 aa 000000 216020 13-71 vfd 36/202*18*20 DSU181  003226 aa 000004 064000 13-72 vfd 36/840*64*20 MSU0501  13-73  003227 13-74 fs_dev.track_per_cyl:  003227 aa 000000 000001 13-75 vfd 36/1 Bulk 003230 aa 000000 000023 13-76 vfd 36/19 MSU0500 003231 aa 000000 000023 13-77 vfd 36/19 MSU0450 003232 aa 000000 000023 13-78 vfd 36/19 MSU0400 003233 aa 000000 000023 13-79 vfd 36/19 DSU190  003234 aa 000000 000024 13-80 vfd 36/20 DSU181  003235 aa 000000 000024 13-81 vfd 36/20 MSU0501 13-82  003236 13-83 fs_dev.cyl_per_dev: 003236 aa 000000 000000 13-84 vfd 36/0 Bulk 003237 aa 000000 001456 13-85 vfd 36/814 MSU0500  003240 aa 000000 001456 13-86 vfd 36/814 MSU0450  003241 aa 000000 000632 13-87 vfd 36/410 MSU0400  003242 aa 000000 000632 13-88 vfd 36/410 DSU190 003243 aa 000000 000312 13-89 vfd 36/202 DSU181 003244 aa 000000 001510 13-90 vfd 36/840 MSU0501  13-91  003245 13-92 fs_dev.sect_per_cyl:  003245 aa 000017 204400 13-93 vfd 36/4000000 Bulk  003246 aa 000000 001370 13-94 vfd 36/40*19 MSU0500  003247 aa 000000 001370 13-95 vfd 36/40*19 MSU0450  003250 aa 000000 001370 13-96 vfd 36/40*19 MSU0400  003251 aa 000000 001115 13-97 vfd 36/31*19 DSU190  003252 aa 000000 000550 13-98 vfd 36/18*20 DSU181  003253 aa 000000 002400 13-99 vfd 36/64*20 MSU0501  13-100  003254 13-101 fs_dev.sect_per_track:  003254 aa 000000 000001 13-102 vfd 36/1 Bulk 003255 aa 000000 000050 13-103 vfd 36/40 MSU0500 003256 aa 000000 000050 13-104 vfd 36/40 MSU0450 003257 aa 000000 000050 13-105 vfd 36/40 MSU0400 003260 aa 000000 000037 13-106 vfd 36/31 DSU190  003261 aa 000000 000022 13-107 vfd 36/18 DSU181  003262 aa 000000 000100 13-108 vfd 36/64 MSU0501 13-109  13-110 " The following figures depend on the Multics conventional definition of "record"  13-111 " A record consists of sectors with consecutive addresses ON THE SAME CYLINDER. 13-112 " This means that there can be a "gap" at the end of each cylinder (i.e., sectors in no record).  13-113  003263 13-114 fs_dev.mult_sect_per_cyl:  003263 aa 000000 100000 13-115 vfd 36/2048*16 Bulk  003264 aa 000000 001360 13-116 vfd 36/40*19/16*16 MSU0500 003265 aa 000000 001360 13-117 vfd 36/40*19/16*16 MSU0450 003266 aa 000000 001360 13-118 vfd 36/40*19/16*16 MSU0400 003267 aa 000000 001100 13-119 vfd 36/31*19/16*16 DSU190  003270 aa 000000 000540 13-120 vfd 36/18*20/16*16 DSU181  003271 aa 000000 002400 13-121 vfd 36/64*20/16*16 MSU0501 13-122  003272 13-123 fs_dev.rem_per_cyl: " Size of gap  003272 aa 000000 000000 13-124 vfd 36/0 Bulk  003273 aa 000000 000010 13-125 vfd 36/(40*19)-(40*19/16*16) MSU0500  003274 aa 000000 000010 13-126 vfd 36/(40*19)-(40*19/16*16) MSU0450  003275 aa 000000 000010 13-127 vfd 36/(40*19)-(40*19/16*16) MSU0400  003276 aa 000000 000015 13-128 vfd 36/(31*19)-(31*19/16*16) DSU190  003277 aa 000000 000010 13-129 vfd 36/(18*20)-(18*20/16*16) DSU181  003300 aa 000000 000000 13-130 vfd 36/(64*20)-(64*20/16*16) MSU0501  13-131  003301 13-132 fs_dev.rec_per_dev: 003301 aa 000000 004000 13-133 vfd 36/2048 Bulk 2048.  003302 aa 000000 112562 13-134 vfd 36/(19*40/16)*814 MSU0500 38258.  003303 aa 000000 112562 13-135 vfd 36/(19*40/16)*814 MSU0450 38258.  003304 aa 000000 045506 13-136 vfd 36/(19*40/16)*410 MSU0400 19270.  003305 aa 000000 034650 13-137 vfd 36/(19*31/16)*410 DSU190 14760.  003306 aa 000000 010534 13-138 vfd 36/(18*20/16)*202 DSU181 4444.  003307 aa 000000 203200 13-139 vfd 36/(20*64/16)*840 MSU0501 67200.  13-140  003310 13-141 fs_dev.amaxio:  003310 aa 000000 004000 13-142 vfd 36/2048 For bulk store.  003311 aa 000000 000057 13-143 vfd 36/40*19/16 MSU0500  003312 aa 000000 000057 13-144 vfd 36/40*19/16 MSU0450  003313 aa 000000 000057 13-145 vfd 36/40*19/16 MSU0400  003314 aa 000000 000044 13-146 vfd 36/31*19/16 DSU190 003315 aa 000000 000026 13-147 vfd 36/18*20/16 DSU181 003316 aa 000000 000120 13-148 vfd 36/64*20/16 MSU0501  13-149  13-150 " End of include file ...... fs_dev_types.incl.alm  13-151  982 include rwsec  14-1 "  14-2 " Begin include file ...... rwsec.incl.alm  14-3 " Modified on 9/20/72 for the new 181 and 190 disks by Craig Jensen.  14-4 " modifed nss THVV 4/75 14-5 " This subroutine is used to read and write BOS secondary storage.  14-6 "  14-7 " Calling sequence: 14-8 "  14-9 " lda =v24/sector_number,12/sector_count  14-10 " tsx2 (r|w)sec Transfer to one of the entry points of this routine.  14-11 " arg seg|offset Indicate core address  14-12 " tra error Error return  14-13 "  14-14  14-15  003317 14-16 rdsec: "Entry point to read bos secondary storage.  003317 aa 000001 6270 00 14-17 eax7 1 Indicate that rdev is to be called.  003320 0a 003322 7100 00 14-18 tra rws_common 14-19  003321 14-20 wtsec: "Entry point to write bos secondary storage.  003321 aa 000000 6270 00 14-21 eax7 0 Indciate that wdev is to be called.  14-22  003322 14-23 rws_common: 003322 aa 000000 2360 12 14-24 ldq 0,2 Set up the core addr. 003323 0a 003331 7560 00 14-25 stq rwsarg 14-26  003324 aa 000001 2360 12 14-27 ldq 1,2 Set up the addr. for error returns.  003325 0a 003332 7560 00 14-28 stq rwsarg+1  14-29  003326 0a 003333 7420 00 14-30 stx2 rwsx2 Save the return addr. for this routine.  14-31  003327 0a 003335 7020 37 14-32 tsx2 rwskl,7* Call disk dim.  003330 0a 007750 0000 20 14-33 arg =itp(com,bos_dvt),* Pointer to device id.  003331 aa 000000 0110 00 14-34 rwsarg: nop 0 Pointer to the core addr.  003332 aa 000000 0110 00 14-35 nop 0 Pointer to the error processing code.  14-36  003333 0a 003333 6220 00 14-37 rwsx2: eax2 * Restore the return addr. of this routine.  003334 aa 000002 7100 12 14-38 tra 2,2 Return to caller. 14-39  14-40  003335 14-41 rwskl: "Transfer table for calling rdev or wdev. 003335 0a 003132 0000 00 14-42 arg wdev  003336 0a 003115 0000 00 14-43 arg rdev  14-44  14-45 " End of include file ...... rwsec.incl.alm 14-46  983 "  003337 984 rdbulk: " Dummy routine, since rwdev should never access 003337 985 wtbulk: " these entry points while setup is running. 003337 0a 003337 6160 00 986 dis *  987  988 include rwdisk 15-1 "  15-2 " Begin include file rwdisk.incl.alm  15-3 " modified 11/2/74 by Noel I. Morris  15-4 " Modified 5/75 THVV for nss  15-5  15-6  15-7 " This is the BOS DIM for movable-arm disks. It has  15-8 " two entries for each disk, which are used to read and write that disk.  15-9 " Each of the entry points is called in the following manner:  15-10 "  15-11 " lda =v24/sector,12/nsectors  15-12 " tsx2 entry_name Specify the entry point to be called. 15-13 " arg =v(3/iom,6/chn,9/unit,18/device_type) 15-14 " nop seg|offset core area to be used for the i/o.  15-15 " tra error Error return  15-16 "  15-17  15-18  003340 15-19 rd500:  003340 15-20 rd450:  003340 15-21 rd400:  003340 15-22 rd190:  003340 15-23 rd181:  003340 15-24 rd501:  003340 aa 250000 2360 03 15-25 ldq disk_read*4096,du read command in Q  003341 0a 003344 7100 00 15-26 tra rwi_common join common code  15-27  15-28  003342 15-29 wd500:  003342 15-30 wd450:  003342 15-31 wd400:  003342 15-32 wd190:  003342 15-33 wd181:  003342 15-34 wd501:  003342 aa 310000 2360 03 15-35 ldq disk_write*4096,du write command in Q  003343 0a 003344 7100 00 15-36 tra rwi_common join common code  15-37  15-38  15-39 " 15-40  003344 15-41 rwi_common: 003344 0a 003441 7420 00 15-42 stx2 rwix2 Save x regs.  15-43  15-44 " Set read/write command and device I.D.  15-45  003345 0a 003615 7520 40 15-46 stcq rwilist+2,40 Set device command in IDCW.  003346 aa 000036 7720 00 15-47 qrl 30 Save it for printing error messages.  003347 0a 003566 7560 00 15-48 stq rwicmd 15-49  003350 0a 007752 2360 00 15-50 ldq =a**** default subsystem name 003351 aa 000000 7270 32 15-51 lxl7 0,2* get device type and config ptr  003352 aa 777760 3670 03 15-52 anx7 =o777760,du leave only config ptr 003353 0a 003355 6000 00 15-53 tze *+2 if none, use default  003354 aa 6 00001 2361 17 15-54 ldq com|DISK_cd.sub,7 get subsystem name from config card  003355 0a 003627 7560 00 15-55 stq rwi_sub_name save it  15-56  003356 aa 000000 7270 32 15-57 lxl7 0,2* get device type into x7 003357 aa 000017 3670 03 15-58 anx7 =o17,du mask device type code  003360 0a 003201 2360 17 15-59 ldq fs_dev.dev_type_names-1,7 Save name of disk device for err msg.  003361 0a 003626 7560 00 15-60 stq rwi_disk_name  15-61  15-62 " Set device code and sector address.  15-63  003362 aa 000030 7750 00 15-64 alr 36-12 Store sector addr. for i/o in seek data word.  003363 0a 003565 2750 00 15-65 ora rwiti OR in the track indicators 003364 0a 003605 7550 00 15-66 sta rwiseekaddr  15-67  003365 aa 000000 2360 32 15-68 ldq 0,2* Get the device info.. channel, etc  003366 0a 003611 5520 40 15-69 stbq rwipcw+1,40 Put channel no in the PCW 003367 aa 000011 7720 00 15-70 qrl 9 Get to DU  003370 0a 003601 7520 70 15-71 stcq rwichanno,70 Save for check_status call.  15-72  003371 aa 000011 7720 00 15-73 qrl 9 Isolate device number  003372 0a 003567 5520 04 15-74 stbq rwidevno,04 Save it for printing error messages.  003373 aa 000014 7360 00 15-75 qls 12 Shift to device address position.  003374 0a 003601 7520 04 15-76 stcq rwichanno,04 Needed for xio_wait call.  003375 aa 000014 7360 00 15-77 qls 12 Place the device # in all IDCW's used by this routine. 003376 0a 003613 7520 20 15-78 stcq rwilist,20 Seek IDCW  003377 0a 003615 7520 20 15-79 stcq rwilist+2,20 Read/Write IDCW  003400 0a 003610 7520 20 15-80 stcq rwipcw,20 Set device # in PCW, too, for CP channel.  003401 0a 003612 7520 20 15-81 stcq rwirestore,20 Restore IDCW  15-82  15-83 " 15-84  15-85 " Set core addresses in DCW's.  15-86  003402 aa 000001 2360 12 15-87 ldq 1,2 Get the addr. in seg|offset form. 15-88 " Convert it to absolute form.  003403 0a 003404 5520 64 15-89 stbq *+1,64 (Store address and bit 29.)  003404 aa 0 00000 2121 00 15-90 absa 0|0 **** THIS INSTRUCTION GETS MODIFIED **** 003405 aa 000030 7750 00 15-91 alr 36-12 Position address extension. 003406 0a 003615 7510 10 15-92 stca rwilist+2,10 Set extension in IDCW.  15-93  003407 aa 000022 7350 00 15-94 als 18 Low-order part of address in AU.  003410 0a 003605 2270 00 15-95 ldx7 rwiseekaddr Get sector count in X7.  003411 aa 777700 3670 03 15-96 anx7 =o777700,du Mask to get word count.  003412 aa 000000 6260 00 15-97 eax6 0 X6 is DCW list index.  003413 aa 010000 2750 07 15-98 ora =o10000,dl Insert IOTP bit.  15-99  003414 0a 003616 7550 16 15-100 rwibll: sta rwilist+3,6 Store IOTP DCW. 003415 aa 010000 1070 03 15-101 cmpx7 4096,du Tally > 4096 ?  003416 0a 003423 6044 00 15-102 tmoz rwiblx If not, tra.  003417 aa 010000 0350 03 15-103 adla 4096,du Bump DCW address.  003420 aa 000001 6260 16 15-104 eax6 1,6 Bump DCW list index. 003421 aa 770000 6270 17 15-105 eax7 -4096,7 Decrement remaining tally.  003422 0a 003414 7100 00 15-106 tra rwibll Go back and set another DCW.  15-107  003423 aa 007777 3670 03 15-108 rwiblx: anx7 =o7777,du Mask tally. (Needed if tally = 4096.)  003424 0a 003616 4470 16 15-109 sxl7 rwilist+3,6 Store final tally and clear IOTP bit. 15-110  003425 0a 003605 2120 00 15-111 absa rwiseekaddr Place the absolute addr. of the seek data word in a  003426 aa 000006 7350 00 15-112 als 6 data DCW.  003427 0a 003614 7510 70 15-113 stca rwilist+1,70  15-114  15-115  15-116 " 15-117  15-118 " Perform the I/O.  15-119  003430 0a 003600 4500 00 15-120 stz rwitrys Zero the error retry count.  003431 0a 005260 7020 00 15-121 tsx2 connect_iom Start i/o.  003432 00 003610 003613 15-122 zero rwipcw,rwilist Indicate where the PCW's and DCW's for this i/o are.  15-123  003433 15-124 rwi_retry: "If i/o errors occur, the i/o error handler loops  15-125 " to here after restarting the i/o. 003433 0a 005315 7020 00 15-126 tsx2 check_status Is the i/o done? 003434 0a 003601 0000 00 15-127 arg rwichanno (Indicate which channel we are concerned about.)  003435 aa 000000 000000 15-128 zero 0 No, wait for status to arrive.  003436 0a 003443 7100 00 15-129 tra rwierr Process all i/o errors. This instr. is 15-130 " skipped if there were none.  15-131  003437 aa 707777 3160 07 15-132 canq =o707777,dl Is the tally residue ok?  003440 0a 003443 6010 00 15-133 tnz rwierr No, then gripe about the bad tally residue.  15-134  003441 15-135 rwiend: "Normal exit code for this routine.  003441 0a 003441 6220 00 15-136 rwix2: eax2 * Restore the x regs. 003442 aa 000003 7100 12 15-137 tra 3,2  15-138  15-139  15-140 " 15-141  003443 0a 003574 7570 00 15-142 rwierr: staq rwistat store status for printout 003444 0a 003606 2340 00 15-143 szn disk_brief Should message be suppressed?  003445 0a 003552 6010 00 15-144 tnz rwiskiper If so, bypass erpt call.  15-145  003446 0a 003601 2350 00 15-146 lda rwichanno get channel and IOM number  003447 aa 000022 7710 00 15-147 arl 18 in AL  003450 0a 003570 7510 01 15-148 stca rwichan,01 save channel for printing  003451 aa 000006 7710 00 15-149 arl 6 right-justify IOM number  003452 0a 007753 0350 00 15-150 adla =h a make into letter  003453 0a 003571 7550 00 15-151 sta rwiiom and save  15-152  003454 0a 003630 7020 00 15-153 tsx2 erpt print disk ID  003455 aa 032 145 162 162 15-154 acc 'error on ^a ^g ^o ^d (^a):'  003456 aa 157 162 040 157 003457 aa 156 040 136 141 003460 aa 040 136 147 040 003461 aa 136 157 040 136 003462 aa 144 040 050 136 003463 aa 141 051 072 000 003464 0a 003626 0000 00 15-155 arg rwi_disk_name  003465 0a 003571 0000 00 15-156 arg rwiiom 003466 0a 003570 0000 00 15-157 arg rwichan  003467 0a 003567 0000 00 15-158 arg rwidevno  003470 0a 003627 0000 00 15-159 arg rwi_sub_name  15-160  003471 0a 003616 2350 00 15-161 lda rwilist+3 get core addr  003472 aa 000022 7710 00 15-162 arl 18 003473 0a 003573 7550 00 15-163 sta rwiaddr  15-164  003474 0a 003605 2350 00 15-165 lda rwiseekaddr get storage unit and sector  003475 0a 007754 3750 00 15-166 ana =o7777777  003476 0a 003572 7550 00 15-167 sta rwisect  15-168  003477 0a 003630 7020 00 15-169 tsx2 erpt Print error message.  003500 aa 046 040 040 040 15-170 acc ' cmd=^o, s=^o, addr=^o, stat=^w ^w'  003501 aa 040 040 143 155 003502 aa 144 075 136 157 003503 aa 054 040 163 075 003504 aa 136 157 054 040 003505 aa 141 144 144 162 003506 aa 075 136 157 054 003507 aa 040 163 164 141 003510 aa 164 075 136 167 003511 aa 040 136 167 000 003512 0a 003566 0000 00 15-171 arg rwicmd 003513 0a 003572 0000 00 15-172 arg rwisect  003514 0a 003573 0000 00 15-173 arg rwiaddr  003515 0a 003574 0000 00 15-174 arg rwistat  003516 0a 003575 0000 00 15-175 arg rwistat+1  15-176  003517 0a 005550 7020 00 15-177 tsx2 xio_wait read detailed status  003520 0a 003576 000200 15-178 vfd 18/rwidetail,12/2  003521 0a 003601 000022 15-179 zero rwichanno,disk_status 003522 0a 003552 7100 00 15-180 tra rwiskiper  15-181  003523 0a 003576 2350 00 15-182 lda rwidetail convert to hex  003524 0a 004715 7020 00 15-183 tsx2 hexwd 003525 0a 003602 7550 00 15-184 sta rwihex 003526 0a 003576 2370 00 15-185 ldaq rwidetail 003527 aa 000030 7370 00 15-186 lls 24 003530 0a 004715 7020 00 15-187 tsx2 hexwd 003531 0a 003603 7550 00 15-188 sta rwihex+1  003532 0a 003577 2360 00 15-189 ldq rwidetail+1  003533 aa 000060 7370 00 15-190 lls 48 003534 0a 004715 7020 00 15-191 tsx2 hexwd 003535 0a 007755 2750 00 15-192 ora =h0000 "  003536 0a 003604 7550 00 15-193 sta rwihex+2  15-194  003537 0a 003630 7020 00 15-195 tsx2 erpt announce detailed status  003540 aa 030 144 145 164 15-196 acc 'detailed status: ^g^g^g.' 003541 aa 141 151 154 145 003542 aa 144 040 163 164 003543 aa 141 164 165 163 003544 aa 072 040 136 147 003545 aa 136 147 136 147 003546 aa 056 000 000 000 003547 0a 003602 0000 00 15-197 arg rwihex 003550 0a 003603 0000 00 15-198 arg rwihex+1  003551 0a 003604 0000 00 15-199 arg rwihex+2  15-200  003552 15-201 rwiskiper:  003552 0a 003600 0540 00 15-202 aos rwitrys Count the no. of times the i/o was retried.  003553 0a 003600 2350 00 15-203 lda rwitrys Has the maximum no. of retries been done? 003554 aa 000004 1150 07 15-204 cmpa =4,dl  003555 0a 003561 6050 00 15-205 tpl rwifatal Yes, go to process fatal error condition.  15-206  003556 0a 005260 7020 00 15-207 tsx2 connect_iom Restart the i/o, which will cause a restore  15-208 " (recalibration of the seek arm) to be done.  003557 00 003610 003612 15-209 zero rwipcw,rwi_reseek 003560 0a 003433 7100 00 15-210 tra rwi_retry Go to rest of retry loop.  15-211  15-212 " Process fatal errors.  003561 0a 003441 2220 00 15-213 rwifatal: ldx2 rwix2  003562 0a 003574 2350 00 15-214 lda rwistat so dump will print something  003563 aa 000002 7160 12 15-215 xec 2,2  003564 0a 003441 7100 00 15-216 tra rwiend 15-217  15-218  15-219 " 15-220  003565 aa 000000 000000 15-221 rwiti: oct 0 track indicators  003566 aa 000000 000000 15-222 rwicmd: oct 0  003567 aa 000000 000000 15-223 rwidevno: oct 0 003570 aa 000000 000000 15-224 rwichan: oct 0  003571 aa 000000 000000 15-225 rwiiom: oct 0  003572 aa 000000 000000 15-226 rwisect: oct 0  003573 aa 000000 000000 15-227 rwiaddr: oct 0  15-228 even  003574 aa 000000 000000 15-229 rwistat: oct 0,0  003575 aa 000000 000000 003576 15-230 rwidetail:bss ,2  003600 aa 000000 000000 15-231 rwitrys: oct 0  003601 15-232 rwichanno:  003601 aa 000000 000000 15-233 oct 0  003602 15-234 rwihex: bss ,3  003605 15-235 rwiseekaddr:  003605 aa 000000 000000 15-236 oct 0  15-237  003606 15-238 disk_brief: 003606 aa 000000 000000 15-239 oct 0 Non-zero to suppress error messages.  15-240  15-241  000025 15-242 bool disk_read,25 Table of DCW op-codes.  000031 15-243 bool disk_write,31 000034 15-244 bool disk_seek,34  000042 15-245 bool disk_restore,42  000022 15-246 bool disk_status,22  15-247  003607 aa 000000 0110 03 15-248 even  15-249 " The following PCW will perform a Reset Status for a Common Peripheral Channel.  15-250 " It will then proceed with the DCW list.  15-251 " This PCW will be ignored by a Peripheral Subsystem Interface Adapter (PSIA).  15-252  003610 aa 400000 720201 15-253 rwipcw: vfd o6/40,6/0,6/0,3/7,3/2,o6/2,6/1  003611 aa 000000 000000 15-254 vfd 9/0  15-255  15-256  003612 15-257 rwi_reseek: " The disk is reconnected here after an error occurs.  003612 15-258 rwirestore: 003612 aa 420000 720200 15-259 vfd o6/disk_restore,6/0,6/0,3/7,3/2,6/2,6/0 Restore IDCW.  003613 15-260 rwilist: " The disk is normally connected here. 003613 aa 340000 720000 15-261 vfd 6/disk_seek,6/0,6/0,3/7,3/2,6/0,6/0 Seek IDCW  003614 0a 003605 000001 15-262 vfd 18/rwiseekaddr,6/0,12/1 IOTD to transmit the seek address. 003615 aa 000000 740000 15-263 vfd 6/0,6/0,6/0,3/7,3/4,6/0,6/0 Read or write IDCW.  003616 15-264 bss ,8 DCW list to transmit the data. 15-265  003626 aa 052 052 052 052 15-266 rwi_disk_name: aci '****' Name of the device currently being used. 003627 aa 052 052 052 052 15-267 rwi_sub_name: aci '****' Name of subsystem currently being used.  15-268  15-269 " End of include file ...... rwdisk.incl.alm  15-270  989 include error  16-1 " Begin include file ...... error.incl.alm  16-2 " Last modified 5/3/77 by Noel I. Morris  16-3 " Modified November 1981 by C. Hornig to not use IOM rel mode.  16-4  16-5 " tsx2 erpt to print error messages 16-6 " acc 'message' 16-7 " nop a,t " parameters  16-8 " ^w full word octal  16-9 " ^o zero suppressed octal 16-10 " ^n octal with no spaces inserted 16-11 " ^d decimal  16-12 " ^a ASCII (4 char)  16-13 " ^g GE code (6 char)  16-14  003630 0a 004101 4500 00 16-15 erpt: stz ersw clear convert only switch  16-16  003631 0a 004035 7430 00 16-17 erjn: stx3 errx3 save X3  16-18  003632 0a 004130 7420 00 16-19 stx2 errin set address of message descriptor  003633 aa 000000 2350 12 16-20 lda 0,2 get character count from string  003634 aa 000033 7710 00 16-21 arl 27 .. 003635 aa 000000 6270 05 16-22 eax7 0,al length of string in X7  003636 0a 004131 7470 00 16-23 stx7 erlen save length  003637 aa 000001 6260 00 16-24 eax6 1 X6 is offset into input string 16-25  003640 aa 000002 7710 00 16-26 arl 2 divide character count by 4 003641 aa 000001 6230 05 16-27 eax3 1,al round  003642 0a 004130 0230 00 16-28 adlx3 errin X3 -> first parameter 16-29  003643 aa 000124 6240 00 16-30 eax4 84 remaining length of output in X4  003644 aa 000000 6250 00 16-31 eax5 0 X5 is offset into output string  16-32  16-33  16-34 " 16-35  003645 aa 000000 1040 03 16-36 erloop: cmpx4 0,du is output string exhausted? 003646 0a 004007 6044 00 16-37 tmoz erprnt if so, print message now  16-38  003647 0a 004131 1060 00 16-39 cmpx6 erlen is input string exhausted?  003650 0a 004007 6054 00 16-40 tpnz erprnt if so, print completed message  16-41  003651 aa 000000 1004 36 16-42 mlr (id,x6),(),fill(0) grab one character  003652 0a 004130 0000 00 16-43 arg errin  003653 0a 004127 000004 16-44 desc9a errarg,4  16-45  003654 aa 000001 6260 16 16-46 eax6 1,6 step offset over character  16-47  003655 0a 004127 2350 00 16-48 lda errarg pick up character  003656 aa 136000 1150 03 16-49 cmpa =1a^,du is it "^"?  003657 0a 003667 6000 00 16-50 tze ernot if so, go process it  16-51  003660 aa 000015 1604 00 16-52 mvt (),(x5) insert translated character in output 003661 0a 004127 000001 16-53 desc9a errarg,1  003662 0a 004045 020001 16-54 desc6a erbuf,1 003663 0a 004301 0000 00 16-55 arg asgetab  16-56  003664 aa 000001 6250 15 16-57 eax5 1,5 step output offset and length  003665 aa 777777 6240 14 16-58 eax4 -1,4 ..  003666 0a 003645 7100 00 16-59 tra erloop and loop  16-60  003667 aa 000076 1244 00 16-61 ernot: scm (),(rl,id,x6) search table of keys  003670 0a 004132 000010 16-62 desc9a erkey,8 003671 0a 004130 0000 00 16-63 arg errin  003672 0a 004126 0000 00 16-64 arg ertally  003673 0a 003645 6064 00 16-65 ttn erloop tra if not legal key  16-66  003674 aa 000001 6260 16 16-67 eax6 1,6 step over key  16-68  003675 aa 000000 2350 13 16-69 lda 0,3 pick up argument pointer  003676 0a 003677 5510 64 16-70 stba *+1,64 set following lda instruction 003677 aa 0 00000 2351 00 16-71 lda 0|0 ****** THIS INSTRUCTION GETS MODIFIED ******  003700 0a 004127 7550 00 16-72 sta errarg and save for conversion  003701 aa 000001 6230 13 16-73 eax3 1,3 step to next parameter  16-74  003702 0a 004126 2360 00 16-75 ldq ertally get character key index  003703 0a 004134 7100 26 16-76 tra ertable,ql* dispatch on key  16-77  16-78 " 16-79  003704 0a 003777 7020 00 16-80 err_A: tsx2 setar set AR bit if necessary  003705 aa 040000 1604 20 16-81 mvt (id),(),fill(040) copy ASCII and translate to BCD  003706 0a 004127 0000 00 16-82 arg errarg 003707 0a 004106 020100 16-83 desc6a errtemp,64  003710 0a 004301 0000 00 16-84 arg asgetab  16-85  003711 0a 005050 7020 00 16-86 errstrip: tsx2 stripg strip trailing blanks  003712 0a 004106 020100 16-87 desc6a errtemp,64  003713 0a 003754 7100 00 16-88 tra errtrim and trim leading blanks  16-89  16-90  003714 0a 003777 7020 00 16-91 err_G: tsx2 setar set AR bit if necessary  003715 aa 020000 1004 20 16-92 mlr (id),(),fill(20) copy BCD string  003716 0a 004127 0000 00 16-93 arg errarg 003717 0a 004106 020100 16-94 desc6a errtemp,64  003720 0a 003711 7100 00 16-95 tra errstrip join common code 16-96  16-97  003721 0a 004267 7020 00 16-98 err_a: tsx2 asge convert ASCII to GE BCD  16-99  16-100  003722 0a 005014 7020 00 16-101 err_g: tsx2 rjust right-justify GE BCD 003723 0a 004106 7550 00 16-102 sta errtemp save GE BCD  16-103  003724 aa 000006 2350 07 16-104 lda 6,dl length of output is 6 characters 003725 0a 003754 7100 00 16-105 tra errtrim trim leading blanks from output  16-106  16-107  003726 aa 000000 3014 00 16-108 err_d: btd (),() convert decimal number  003727 0a 004127 000004 16-109 desc9a errarg,4  003730 0a 004104 050014 16-110 desc4ls errnum,12  16-111  003731 aa 000000 0244 00 16-112 mvne (),(),() edit the output 003732 0a 004104 050014 16-113 desc4ls errnum,12  003733 0a 004144 000011 16-114 desc9a eredit_d,9  003734 0a 004106 020014 16-115 desc6a errtemp,12  16-116  003735 aa 000014 2350 07 16-117 lda 12,dl length of output is 12 characters  003736 0a 003754 7100 00 16-118 tra errtrim trim leading blanks from output  16-119  16-120  003737 aa 000010 6270 00 16-121 err_n: eax7 (eredit_n-eredit_o)*4 set offset for conversion with no blank  003740 0a 003744 7100 00 16-122 tra err_ow join common code  16-123  16-124  003741 aa 000001 6270 00 16-125 err_o: eax7 1 set offset of 1 to skip ses micro-op 003742 0a 003744 7100 00 16-126 tra err_ow common code for "^o" and "^w"  16-127  16-128  003743 aa 000000 6270 00 16-129 err_w: eax7 0 offset of 0 to turn off zero suppression 16-130  003744 0a 004676 7020 00 16-131 err_ow: tsx2 octwd convert octal  003745 0a 004104 7570 00 16-132 staq errnum save word 16-133  003746 aa 000017 0204 00 16-134 mve (),(x7),() insert a blank in the middle  003747 0a 004104 020014 16-135 desc6a errnum,12  003750 0a 004147 000007 16-136 desc9a eredit_o,7  003751 0a 004106 020015 16-137 desc6a errtemp,13  16-138  003752 aa 000015 2350 07 16-139 lda 13,dl length is 13  003753 0a 003754 7100 00 16-140 tra errtrim copy into output  16-141  16-142 " 16-143  003754 aa 000000 1644 40 16-144 errtrim: tct (rl) search for last non-blank  003755 0a 004106 020005 16-145 desc6a errtemp,al  003756 0a 005053 0000 00 16-146 arg gbtable  003757 0a 004126 0000 00 16-147 arg ertally  16-148  003760 0a 004126 2360 00 16-149 ldq ertally offset of first non-blank in Q  003761 0a 004126 1750 00 16-150 sba ertally compute # of non-blank characters 16-151  003762 aa 000022 7350 00 16-152 errmov: als 18 place in AU 003763 0a 004126 7550 00 16-153 sta ertally and save  003764 0a 004126 1040 00 16-154 cmpx4 ertally is there enough room?  003765 0a 003767 6050 00 16-155 tpl *+2 ..  003766 0a 004126 7440 00 16-156 stx4 ertally if not, use only remaining space 003767 0a 004126 2350 00 16-157 lda ertally ..  003770 0a 003774 6000 00 16-158 tze ernomov skip zero length move 16-159  003771 aa 000055 1004 46 16-160 mlr (rl,ql),(rl,x5) copy the string  003772 0a 004106 020001 16-161 desc6a errtemp,au  003773 0a 004045 020001 16-162 desc6a erbuf,au  16-163  003774 0a 004126 0650 00 16-164 ernomov: adx5 ertally step output index and length 003775 0a 004126 1640 00 16-165 sbx4 ertally ..  003776 0a 003645 7100 00 16-166 tra erloop loop  16-167  16-168  003777 aa 000100 2360 07 16-169 setar: ldq =o100,dl get AR bit for MF1 004000 aa 700000 3150 03 16-170 cana =o700000,du high-order bits ON  004001 0a 004004 6000 00 16-171 tze resetar if not, reset AR bit  004002 aa 000000 2560 12 16-172 orsq 0,2 if so, set AR bit  004003 aa 000000 7100 12 16-173 tra 0,2 and return  16-174  004004 0a 007731 6760 00 16-175 resetar: erq =-1 complement Q  004005 aa 000000 3560 12 16-176 ansq 0,2 reset AR bit 004006 aa 000000 7100 12 16-177 tra 0,2 and return  16-178  16-179 " 16-180  004007 aa 000000 1040 03 16-181 erprnt: cmpx4 0,du is output line full?  004010 0a 004015 6044 00 16-182 tmoz erprnt_full if so, don't pad it  16-183  004011 0a 004101 7270 00 16-184 lxl7 ersw convert only switch in X7  004012 0a 004102 7160 17 16-185 xec erpad,7 pad output with blanks or nulls  004013 0a 004013 020000 16-186 desc6a *,0 004014 0a 004045 020014 16-187 desc6a erbuf,x4  16-188  004015 16-189 erprnt_full:  004015 0a 004101 2340 00 16-190 szn ersw convert only?  004016 0a 004034 6010 00 16-191 tnz erpend if so, return now  004017 aa 000005 6360 15 16-192 eaq 5,5 round up character count  004020 aa 000022 7720 00 16-193 qrl 18 shift to QL  004021 aa 000006 5060 07 16-194 div 6,dl compute # of words to type  004022 0a 004033 7520 07 16-195 stcq erct,07 and set call to type 16-196  004023 aa 000000 1064 00 16-197 cmpc (),() is message the same as last?  004024 0a 004045 020124 16-198 desc6a erbuf,84  004025 0a 004063 020124 16-199 desc6a erbuf_last,84  004026 0a 004037 6000 00 16-200 tze erreq if so, print "="  16-201  004027 aa 000000 1004 00 16-202 mlr (),()  004030 0a 004045 020124 16-203 desc6a erbuf,84  004031 0a 004063 020124 16-204 desc6a erbuf_last,84  16-205  004032 0a 004153 7020 00 16-206 tsx2 type print output  004033 00 004045 004033 16-207 erct: zero erbuf,*  16-208  004034 aa 000000 6220 13 16-209 erpend: eax2 0,3 set correct X2 return value  004035 0a 004035 6230 00 16-210 errx3: eax3 * restore X3  004036 aa 000000 7100 12 16-211 tra 0,2 and return  16-212  004037 0a 004153 7020 00 16-213 erreq: tsx2 type print "=" 004040 0a 007756 000001 16-214 zero =h=?????,1  004041 0a 004034 7100 00 16-215 tra erpend 16-216  16-217  16-218  004042 aa 000001 2350 07 16-219 ercv: lda 1,dl this entry only converts  004043 0a 004101 7550 00 16-220 sta ersw set convert only switch  004044 0a 003631 7100 00 16-221 tra erjn and join common code 16-222  16-223 " 16-224  16-225  004045 16-226 erbuf: bss ,14  004063 16-227 erbuf_last: 004063 16-228 bss ,14  16-229  004101 16-230 ersw: bss ,1  004102 aa 017055 1004 00 16-231 erpad: mlr (),(rl,x5),fill(17)  004103 aa 020055 1004 00 16-232 mlr (),(rl,x5),fill(20)  16-233  16-234 even  004104 16-235 errnum: bss ,2  004106 16-236 errtemp: bss ,16  004126 16-237 ertally: bss ,1 004127 16-238 errarg: bss ,1  004130 0a 004130 000001 16-239 errin: desc9a *,1  004131 16-240 erlen: bss ,1  16-241  004132 aa 101 107 167 157 16-242 erkey: aci "AGwondag"  004133 aa 156 144 141 147 004134 0a 003704 7100 00 16-243 ertable: tra err_A  004135 0a 003714 7100 00 16-244 tra err_G  004136 0a 003743 7100 00 16-245 tra err_w  004137 0a 003741 7100 00 16-246 tra err_o  004140 0a 003737 7100 00 16-247 tra err_n  004141 0a 003726 7100 00 16-248 tra err_d  004142 0a 003721 7100 00 16-249 tra err_a  004143 0a 003722 7100 00 16-250 tra err_g  16-251  004144 aa 401020 403020 16-252 eredit_d: vfd 9/lte+1,o9/20,9/lte+3,o9/20,9/lte+4,o9/52,9/mfls+10,9/enf 004145 aa 404052 152040 004146 aa 321000 000000 16-253 vfd 9/mvc+1  004147 aa 070401 020106 16-254 eredit_o: vfd 9/ses+if0,9/lte+1,o9/20,9/mvzb+6,9/insm+1,9/mvzb+5,9/mvc+1,9/ses+if0/ 004150 aa 021105 321070 004151 aa 401020 021113 16-255 eredit_n: vfd 9/lte+1,o9/20,9/insm+1,9/mvzb+11,9/mvc+1,9/ses+if0,9/ses+if0  004152 aa 321070 070000 16-256  16-257 "  16-258 " tsx2 type to type line on oprs console  16-259 " zero buf,n  16-260  004153 0a 004212 7420 00 16-261 type: stx2 typex2 here to write tty  16-262  004154 0a 004215 2120 00 16-263 absa cr get address of NL 004155 aa 000006 7350 00 16-264 als 6 in AU  004156 0a 004222 7510 70 16-265 stca tydcw,70 and in DCW's  004157 0a 004224 7510 70 16-266 stca tydcw+2,70  16-267  004160 aa 000000 2360 12 16-268 ldq 0,2 get address and length  004161 0a 004171 7520 70 16-269 stcq tydesc,70 place address in descriptor  004162 aa 000000 2120 02 16-270 absa 0,qu " get real address  004163 aa 000006 7350 00 16-271 als 6 into au 004164 0a 004223 7510 70 16-272 stca tydcw+1,70 and into DCW  004165 aa 777777 3760 07 16-273 anq =o777777,dl mask the length  004166 aa 000006 4020 07 16-274 mpy 6,dl compute character count  004167 0a 004171 7520 03 16-275 stcq tydesc,03 and place in descriptor  16-276  004170 0a 005050 7020 00 16-277 tsx2 stripg strip blanks from end of string  004171 0a 004171 020000 16-278 tydesc: desc6a *,0  16-279  004172 aa 000044 7730 00 16-280 lrl 36 character length in QL 004173 aa 000005 0760 07 16-281 adq 5,dl round to nearest word  004174 aa 000006 5060 07 16-282 div 6,dl compute word count  004175 0a 004177 6010 00 16-283 tnz *+2 always print at least one word  004176 aa 000001 2360 07 16-284 ldq 1,dl ..  004177 0a 004223 7520 03 16-285 stcq tydcw+1,03 and place in DCW  16-286  004200 0a 004223 6270 00 16-287 eax7 tydcw+1 start with line to be output 004201 0a 004203 4470 00 16-288 sxl7 tyag+1 without initial carriage return  16-289  004202 0a 005260 7020 00 16-290 tyag: tsx2 connect_iom run DCW list 004203 00 004216 004203 16-291 zero typcw,*  16-292  004204 0a 004222 6270 00 16-293 eax7 tydcw extra carriage return for error reocvery  004205 0a 004203 4470 00 16-294 sxl7 tyag+1 ..  16-295  004206 0a 005315 7020 00 16-296 tsx2 check_status test for error  004207 0a 004214 0000 00 16-297 arg ttyno  004210 aa 000000 000000 16-298 zero  004211 0a 004202 7100 00 16-299 tra tyag  16-300  004212 0a 004212 6220 00 16-301 typex2: eax2 *  004213 aa 000001 7100 12 16-302 tra 1,2  16-303  16-304  004214 aa 000020 000000 16-305 ttyno: zero 16 channel no of tty  004215 aa 770 017 171 717 16-306 cr: bci '!0????'  16-307  16-308 even  16-309  004216 aa 130000 700000 16-310 typcw: vfd o6/13,6/0,6/0,o3/7,3/0,6/0,6/0 PCW to write on console  004217 aa 020000 000000 16-311 vfd o9/20  16-312  004220 aa 510000 700000 16-313 tyapcw: vfd o6/51,6/0,6/0,o3/7,3/0,6/0,6/0 PCW to sound alarm  004221 aa 020000 000000 16-314 vfd o9/20  16-315  004222 0a 004215 010001 16-316 tydcw: vfd 18/cr,6/1,12/1 write carriage return 004223 0a 004223 010000 16-317 vfd 18/*,6/1,12/ write message 004224 0a 004215 000001 16-318 vfd 18/cr,6/,12/1 write final carriage return  16-319  16-320  16-321 " 16-322 " tsx2 ttyalert to sound audible alarm 16-323  004225 0a 004234 7420 00 16-324 ttyalert: stx2 tyax2 save X2  16-325  004226 0a 005260 7020 00 16-326 tyalcon: tsx2 connect_iom connect to the IOM  004227 0a 004220 000000 16-327 zero tyapcw,0  16-328  004230 0a 005315 7020 00 16-329 tsx2 check_status wait for status  004231 0a 004214 000000 16-330 zero ttyno 004232 aa 000000 000000 16-331 zero  004233 0a 004226 7100 00 16-332 tra tyalcon  16-333  004234 0a 004234 6220 00 16-334 tyax2: eax2 * restore X2  004235 aa 000000 7100 12 16-335 tra 0,2 and return to caller  16-336  16-337  004236 0a 004246 7420 00 16-338 tyrq: stx2 tyrqx here on special interrupt 16-339  004237 aa 6 02021 2351 00 16-340 lda com|inputsw read next line from tty  004240 aa 000006 7710 00 16-341 arl 6  004241 aa 6 02021 7551 00 16-342 sta com|inputsw  004242 0a 003630 7020 00 16-343 tsx2 erpt  004243 aa 001 052 000 000 16-344 acc '*'  004244 0a 005653 4500 00 16-345 stz status_lock reset status-call lock.  004245 0a 004245 7020 00 16-346 ttyrqst: tsx2 * 004246 0a 004246 7100 00 16-347 tyrqx: tra *  16-348  16-349  004247 0a 004265 7420 00 16-350 ttyinit: stx2 ttyir called to init tty package 004250 aa 6 02017 2351 00 16-351 lda com|ttychanno get the correct channel number  004251 0a 004214 7550 00 16-352 sta ttyno ..  004252 aa 000011 7350 00 16-353 als 9 place in PCW, too  004253 0a 004217 7550 00 16-354 sta typcw+1 ..  004254 0a 004221 7550 00 16-355 sta tyapcw+1 ..  16-356  004255 aa 000000 6220 32 16-357 eax2 0,2* special interrupt handler  004256 0a 004245 7420 00 16-358 stx2 ttyrqst  004257 0a 005537 7020 00 16-359 tsx2 get_special_interrupt 004260 00 004214 004236 16-360 zero ttyno,tyrq  16-361  004261 0a 005550 7020 00 16-362 tsx2 xio_wait activate tty channel  004262 aa 000000 000000 16-363 zero  004263 0a 004214 000000 16-364 zero ttyno 004264 0a 004265 7100 00 16-365 tra *+1 ignore errors 16-366  004265 0a 004265 6220 00 16-367 ttyir: eax2 *  004266 aa 000001 7100 12 16-368 tra 1,2  16-369  16-370 "  16-371 " lda ascii code  16-372 " tsx2 asge to convert to GE code  16-373 " sta GE code  16-374  004267 0a 007757 3750 00 16-375 asge: ana =o177177177177 make it legit ASCII  004270 0a 004300 7550 00 16-376 sta wd9 setup to loop through word  16-377  004271 aa 040000 1604 00 16-378 mvt (),(),fill(040) move and translate 004272 0a 004300 000004 16-379 desc9a wd9,4  004273 0a 004277 020006 16-380 desc6a wd6,6  004274 0a 004301 0000 00 16-381 arg asgetab  16-382  004275 0a 004277 2350 00 16-383 lda wd6 get ge word  004276 aa 000000 7100 12 16-384 tra 0,2  16-385  16-386  004277 aa 000000 000000 16-387 wd6: oct 0  004300 aa 000000 000000 16-388 wd9: oct 0  16-389  16-390  004301 aa 020020 020020 16-391 asgetab: oct 020020020020,020020020020 00  004302 aa 020020 020020 004303 aa 020020 020020 16-392 oct 020020020020,020020020020 10  004304 aa 020020 020020 004305 aa 020020 020020 16-393 oct 020020020020,020020020020 20  004306 aa 020020 020020 004307 aa 020020 020020 16-394 oct 020020020020,020020020020 30  004310 aa 020020 020020 004311 aa 020057 076013 16-395 oct 020057076013,053074032057 40  004312 aa 053074 032057 004313 aa 035055 054060 16-396 oct 035055054060,073052033061 50  004314 aa 073052 033061 004315 aa 000001 002003 16-397 oct 000001002003,004005006007 60  004316 aa 004005 006007 004317 aa 010011 015056 16-398 oct 010011015056,036075016020 70  004320 aa 036075 016020 004321 aa 014021 022023 16-399 oct 014021022023,024025026027 100  004322 aa 024025 026027 004323 aa 030031 041042 16-400 oct 030031041042,043044045046 110  004324 aa 043044 045046 004325 aa 047050 051062 16-401 oct 047050051062,063064065066 120  004326 aa 063064 065066 004327 aa 067070 071012 16-402 oct 067070071012,020034020072 130  004330 aa 020034 020072 004331 aa 037021 022023 16-403 oct 037021022023,024025026027 140  004332 aa 024025 026027 004333 aa 030031 041042 16-404 oct 030031041042,043044045046 150  004334 aa 043044 045046 004335 aa 047050 051062 16-405 oct 047050051062,063064065066 160  004336 aa 063064 065066 004337 aa 067070 071020 16-406 oct 067070071020,040020020020 170  004340 aa 040020 020020 16-407  16-408 " End of include file ...... error.incl.alm 16-409  990 include readc  17-1 " 17-2 " Begin include file ...... readc.incl.alm  17-3 " Modified 3/19/76 by N. I. Morris  17-4  17-5 " To read a card into line ...  17-6 " tsx2 readcd  17-7 " tra eof  17-8 " ... "normal return  17-9 "  17-10  004341 0a 004420 7420 00 17-11 readcd: stx2 rdrtn save return 17-12  004342 aa 6 02016 2351 00 17-13 lda com|rdrchanno set card reader channel number  004343 0a 004461 7510 70 17-14 stca readno,70 .. 17-15  004344 0a 005550 7020 00 17-16 rcb: tsx2 xio_wait perform the I/O 004345 0a 004463 003000 17-17 vfd 18/cdbuff,12/24 into our own buffer  004346 0a 004461 000001 17-18 zero readno,1 read card in binary mode  004347 0a 004422 7100 00 17-19 tra rdcerr .. 17-20  004350 0a 004463 2350 00 17-21 rdccnv: lda cdbuff look at first word of card  004351 aa 002400 1150 03 17-22 cmpa =o002400,du is it EOF card (5-7 punch)?  004352 0a 004456 6000 00 17-23 tze rdceof if so, take EOF return 17-24  004353 0a 004513 4500 00 17-25 stz rdcfirst reset first call switch  004354 aa 020000 1004 00 17-26 mlr (),(),fill(20) blank out the end of line  004355 0a 004355 020000 17-27 desc6a *,0 004356 0a 001717 020014 17-28 desc6a line+12,12  17-29  004357 aa 000000 6260 00 17-30 eax6 0 initialize index for storing characters  004360 aa 000000 6250 00 17-31 eax5 0 initialize index for picking up columns  17-32  004361 aa 000000 1014 15 17-33 rdccol: mrl (x5),(),fill(0) grab one column 004362 0a 004463 020002 17-34 desc6a cdbuff,2  004363 0a 004462 020006 17-35 desc6a rdcval,6 pad with zeroes  004364 0a 004462 2350 00 17-36 lda rdcval column bits in A  004365 0a 004462 4500 00 17-37 stz rdcval clear the result  17-38  004366 aa 000011 6270 00 17-39 eax7 9 process 9 numeric bits 004367 aa 000001 3150 07 17-40 rdcnum: cana 1,dl test bit 004370 0a 004372 6000 00 17-41 tze *+2 if on,  004371 0a 004462 0470 00 17-42 asx7 rdcval add in its value  004372 aa 000001 7710 00 17-43 arl 1 shift in the next bit  004373 aa 777777 6270 17 17-44 eax7 -1,7 step index  004374 0a 004367 6010 00 17-45 tnz rdcnum and continue processing numeric bits  17-46  004375 0a 004462 2340 00 17-47 szn rdcval were there any numeric bits?  004376 0a 004407 6000 00 17-48 tze rdczonly if not, special-case the zone bits  17-49  004377 aa 000060 6270 00 17-50 eax7 48 process the 3 zone bits  004400 aa 000001 3150 07 17-51 rdczone: cana 1,dl test bit  004401 0a 004403 6000 00 17-52 tze *+2 if on,  004402 0a 004462 0470 00 17-53 asx7 rdcval add in value of zone bit  004403 aa 000001 7710 00 17-54 arl 1 shift in the next bit  004404 aa 777760 6270 17 17-55 eax7 -16,7 step index 004405 0a 004400 6010 00 17-56 tnz rdczone continue processing zone bits 004406 0a 004411 7100 00 17-57 tra rdcend go to store completed character  17-58  004407 0a 004515 2350 05 17-59 rdczonly: lda rdczonetab,al get correct character value 004410 0a 004462 7550 00 17-60 sta rdcval .. 17-61  004411 aa 000016 1004 00 17-62 rdcend: mlr (),(x6) insert completed character in line 004412 0a 004462 220001 17-63 desc6a rdcval(2),1 004413 0a 001703 020001 17-64 desc6a line,1  17-65  004414 aa 000002 6250 15 17-66 eax5 2,5 step to next column  004415 aa 000001 6260 16 17-67 eax6 1,6 step to next output character  004416 aa 000110 1060 03 17-68 cmpx6 72,du are we finished?  004417 0a 004361 6040 00 17-69 tmi rdccol if not, process next column  17-70  004420 0a 004420 6220 00 17-71 rdrtn: eax2 * restore X2  004421 aa 000001 7100 12 17-72 tra 1,2 take normal return  17-73  004422 0a 004514 7550 00 17-74 rdcerr: sta rdcstat save the status bits  004423 aa 200000 3150 03 17-75 cana =o200000,du power off?  004424 0a 004433 6010 00 17-76 tnz rdcchk if so, ignore if first time  004425 aa 000036 7730 00 17-77 lrl 30 major status in AL 004426 aa 000042 1150 07 17-78 cmpa =o42,dl device attention?  004427 0a 004435 6010 00 17-79 tnz rdcstop if not, wait for special  004430 aa 000036 7370 00 17-80 lls 30 get substatus back again  004431 aa 000002 3150 03 17-81 cana =o2,du is initiate bit on?  004432 0a 004350 6000 00 17-82 tze rdccnv if not, card was read successfully 17-83  004433 0a 004513 2340 00 17-84 rdcchk: szn rdcfirst is the first time?  004434 0a 004456 6010 00 17-85 tnz rdceof if so, take EOF return 17-86  004435 0a 003630 7020 00 17-87 rdcstop: tsx2 erpt print error message 004436 aa 030 143 141 162 17-88 acc "card reader status = ^w." 004437 aa 144 040 162 145 004440 aa 141 144 145 162 004441 aa 040 163 164 141 004442 aa 164 165 163 040 004443 aa 075 040 136 167 004444 aa 056 000 000 000 004445 0a 004514 0000 00 17-89 arg rdcstat  17-90  004446 0a 005521 7020 00 17-91 rdcwait: tsx2 check_special_status wait for special interrupt  004447 0a 004461 0000 00 17-92 arg readno 004450 0a 004452 7100 00 17-93 tra *+2  004451 0a 004344 7100 00 17-94 tra rcb try reading again 17-95  004452 0a 005315 7020 00 17-96 tsx2 check_status check for special on console 004453 0a 007760 0000 00 17-97 arg =0 004454 0a 004446 7100 00 17-98 tra rdcwait  004455 0a 004446 7100 00 17-99 tra rdcwait  17-100  004456 0a 004513 7500 00 17-101 rdceof: stc2 rdcfirst set first time flag again  004457 0a 004420 2220 00 17-102 ldx2 rdrtn restore X2 004460 aa 000000 7100 12 17-103 tra 0,2 take EOF return  17-104  17-105  17-106 " 17-107  004461 aa 000000 010000 17-108 readno: vfd 18/,6/1 reader channel number  004462 17-109 rdcval: bss ,1 character value 004463 17-110 cdbuff: bss ,24 card image buffer  004513 0a 004513 000000 17-111 rdcfirst: zero * first call switch 004514 17-112 rdcstat: bss ,1 reader status  17-113  004515 17-114 rdczonetab: 004515 aa 000020 000000 17-115 vfd o18/20 blank blank  004516 aa 000000 000000 17-116 vfd o18/00 0 (0)  004517 aa 000052 000000 17-117 vfd o18/52 - (11) 004520 aa 000040 000000 17-118 vfd o18/40 | (11-0)  004521 aa 000032 000000 17-119 vfd o18/32 & (12) 004522 aa 000060 000000 17-120 vfd o18/60 + (12-0)  004523 aa 000077 000000 17-121 vfd o18/77 illegal (12-11)  004524 aa 000077 000000 17-122 vfd o18/77 illegal (12-11-0)  17-123  17-124  17-125 " End of include file ...... readc.incl.alm 17-126  991 include readt  18-1 " Begin include file ...... readt.incl.alm  18-2 " Modified on 3/4/74 by N. I. Morris for SCC operation. 18-3 " Modified on 5/12/77 by Noel I. Morris 18-4 " Last modified by Sherman D. Sprague 02/11/81 for prompting  18-5 " Modified November 1981 by C. Hornig to not use IOM rel mode.  18-6  18-7 " tsx2 readtty reads from online console  18-8 " tra eof if blank line 18-9  004525 0a 004645 7420 00 18-10 readtty: stx2 rttyx2  18-11  004526 0a 004663 2120 00 18-12 absa rtypmt relocate the DCW's  004527 aa 000006 7350 00 18-13 als 6  004530 0a 004670 7510 70 18-14 stca rtypmtdcw,70  004531 0a 001703 2120 00 18-15 absa line  004532 aa 000006 7350 00 18-16 als 6  004533 0a 004674 7510 70 18-17 stca rtydcw,70 18-18  004534 0a 004217 2350 00 18-19 lda typcw+1 set channel # in PCW  004535 0a 004673 7550 00 18-20 sta rtypcw+1 ..  004536 0a 004667 7550 00 18-21 sta rtypmtpcw+1 ..  18-22  004537 aa 6 02027 2351 00 18-23 rttyag: lda com|curtcmd get arg for prompt  004540 0a 007761 2360 00 18-24 ldq =o7777777777  004541 aa 200000 2110 03 18-25 rttyplp: cmk =o200000,du  004542 0a 004546 6010 00 18-26 tnz rttynplp  004543 aa 000006 7350 00 18-27 als 6  004544 aa 000017 2750 07 18-28 ora =o17,dl  004545 0a 004541 7100 00 18-29 tra rttyplp  004546 18-30 rttynplp:  004546 0a 004663 7550 00 18-31 sta rtypmt 004547 aa 6 02026 2341 00 18-32 szn com|ttypmtsw  004550 0a 004557 6010 00 18-33 tnz rttynp 18-34  004551 0a 005260 7020 00 18-35 tsx2 connect_iom connect for prompt  004552 00 004666 004670 18-36 zero rtypmtpcw,rtypmtdcw  18-37  004553 0a 005315 7020 00 18-38 tsx2 check_status wait for status  004554 0a 004214 0000 00 18-39 arg ttyno  004555 aa 000000 000000 18-40 zero 0 004556 0a 004537 7100 00 18-41 tra rttyag 18-42  004557 0a 005260 7020 00 18-43 rttynp: tsx2 connect_iom connect IOM  004560 00 004672 004674 18-44 zero rtypcw,rtydcw 18-45  004561 0a 005315 7020 00 18-46 tsx2 check_status wait for status  004562 0a 004214 0000 00 18-47 arg ttyno  004563 aa 000000 000000 18-48 zero  004564 0a 004647 7100 00 18-49 tra rttyerr  004565 0a 004675 7560 00 18-50 stq rtylen save DCW tally residues  18-51  004566 0a 004153 7020 00 18-52 tsx2 type skip to new line  004567 0a 007725 000001 18-53 zero =h??????,1  18-54  18-55 " Compute number of characters read from DCW tally residues.  18-56  004570 0a 004675 2350 00 18-57 lda rtylen Tally residue in A.  004571 0a 004675 2360 00 18-58 ldq rtylen And in Q.  004572 aa 007777 3760 07 18-59 anq =o7777,dl mask word residue  004573 aa 700000 3750 07 18-60 ana =o700000,dl and character position residle 004574 aa 000017 7710 00 18-61 arl 15 shift char. pos.  004575 0a 004675 7550 00 18-62 sta rtylen and save  18-63  004576 0a 004601 6010 00 18-64 tnz *+3 if char. pos. was zero,  004577 aa 000001 1760 07 18-65 sbq 1,dl adjust the word residue  004600 0a 004652 6040 00 18-66 tmi rttyer1 negative if full line typed  18-67  004601 aa 000015 1760 07 18-68 sbq 13,dl compute -# of words 004602 0a 007762 4020 00 18-69 mpy =-6 # of characters in Q  004603 0a 004675 0760 00 18-70 adq rtylen add to character position  18-71  004604 0a 004607 6010 00 18-72 tnz *+3 if null line (no characters), 004605 0a 004645 2220 00 18-73 ldx2 rttyx2 restore X2  004606 aa 000000 7100 12 18-74 tra 0,2 and take EOF return  18-75  18-76 " Perform kill editing and pad line with blanks.  18-77  004607 aa 000003 1254 40 18-78 scmr (rl),(du) search backwards for "@"  004610 0a 001703 020006 18-79 desc6a line,ql 004611 aa 140 000 000 000 18-80 bci "@"  004612 0a 004675 0000 00 18-81 arg rtylen 18-82  004613 0a 004675 2350 00 18-83 lda rtylen remaining length of line in A  004614 0a 004675 1760 00 18-84 sbq rtylen offset of rest of line in Q  004615 aa 020000 1004 46 18-85 mlr (ql,rl),(),fill(20) copy remainder of line and pad 004616 0a 001703 020005 18-86 desc6a line,al 004617 0a 001703 020124 18-87 desc6a line,84 18-88  18-89 " Perform erase editing.  18-90  004620 aa 000124 2350 07 18-91 lda 84,dl initial length of 84 in A  004621 aa 000000 2360 03 18-92 ldq 0,du initial offset of 0 in Q 18-93  004622 aa 000003 1244 46 18-94 rdtl: scm (ql,rl),(du) search for "#"  004623 0a 001703 020005 18-95 desc6a line,al 004624 aa 130 000 000 000 18-96 bci "#"  004625 0a 004675 0000 00 18-97 arg rtylen 004626 0a 004644 6064 00 18-98 ttn rdte if no "#", all done with edit  18-99  004627 0a 004675 1750 00 18-100 sba rtylen decrement remaining length 004630 aa 000001 1750 07 18-101 sba 1,dl include the "#" character  004631 aa 000002 6260 05 18-102 eax6 2,al X6 contains length for padding  004632 0a 004675 0760 00 18-103 adq rtylen increment offset  004633 aa 000001 6270 06 18-104 eax7 1,ql X7 contains offset of character after "#"  004634 aa 000001 1760 07 18-105 sbq 1,dl Q contains offset of character to be erased  004635 0a 004640 6050 00 18-106 tpl *+3 if at beginning of line ...  004636 aa 000001 1660 03 18-107 sbx6 1,du pad one fewer  004637 aa 000001 0760 07 18-108 adq 1,dl and place offset at beginning of line  18-109  004640 aa 020046 1004 57 18-110 mlr (x7,rl),(ql,rl),fill(20) copy over "#" and erased character  004641 0a 001703 020005 18-111 desc6a line,al 004642 0a 001703 020005 18-112 desc6a line,al 004643 0a 004622 7100 00 18-113 tra rdtl and loop 18-114  004644 0a 004063 5540 00 18-115 rdte: stc1 erbuf_last break "=" print out  18-116  004645 0a 004645 6220 00 18-117 rttyx2: eax2 * get ready to return 004646 aa 000001 7100 12 18-118 tra 1,2  18-119  18-120 " Error handler.  18-121  004647 aa 377700 3750 03 18-122 rttyerr: ana =o377700,du IOM major and substatus.  004650 aa 031000 1150 03 18-123 cmpa =o031000,du Data alert - operator distracted (timer).  004651 0a 004655 6000 00 18-124 tze timer_off Tra if timer went off. 18-125  004652 0a 004153 7020 00 18-126 rttyer1: tsx2 type Write error symbol and read again.  004653 0a 007763 000001 18-127 zero =h@?????,1  004654 0a 004537 7100 00 18-128 tra rttyag 18-129  004655 18-130 timer_off:  004655 0a 004153 7020 00 18-131 tsx2 type skip to fresh line  004656 0a 007725 000001 18-132 zero =h??????,1  18-133  004657 0a 005521 7020 00 18-134 tsx2 check_special_status Wait for special interrupt. 004660 0a 004214 0000 00 18-135 arg ttyno  004661 aa 000000 000000 18-136 zero  004662 0a 004537 7100 00 18-137 tra rttyag Read again.  004663 aa 224 662 521 620 18-138 rtypmt: bci 'BOS-> '  004664 aa 521 620 171 717 18-139 bci '-> ???'  004665 aa 000000 0110 03 18-140 even  004666 18-141 rtypmtpcw:  004666 aa 130000 700000 18-142 vfd o6/13,6/0,6/0,o3/7,3/0,6/0,6/0 write to console  004667 aa 020000 000000 18-143 vfd o9/20  18-144  004670 18-145 rtypmtdcw:  004670 0a 004663 000002 18-146 vfd 18/rtypmt,6/0,12/2 18-147  004671 aa 000000 0110 03 18-148 even  004672 aa 030000 700000 18-149 rtypcw: vfd o6/03,6/0,6/0,o3/7,3/0,6/0,6/0 read from console  004673 aa 020000 000000 18-150 vfd o9/20  18-151  004674 0a 001703 000016 18-152 rtydcw: vfd 18/line,6/,12/14 read input line  18-153  004675 18-154 rtylen: bss ,1  18-155  18-156 " End of include file ...... readt.incl.alm 18-157  992 include octwd  19-1 "  19-2 " Begin include file ...... octwd.incl.alm  19-3  19-4 " lda bin  19-5 " tsx2 octwd  19-6 " staq octal_bcd  19-7  004676 0a 004713 7420 00 19-8 octwd: stx2 octx2  19-9  004677 aa 000006 6220 00 19-10 eax2 6 004700 aa 000003 7360 00 19-11 qls 3  004701 aa 000003 7770 00 19-12 llr 3  004702 aa 777777 6220 12 19-13 eax2 -1,2  004703 0a 004700 6054 00 19-14 tpnz *-3  004704 0a 004735 7560 00 19-15 stq octtemp  19-16  004705 aa 000006 6220 00 19-17 eax2 6 004706 aa 000003 7360 00 19-18 qls 3  004707 aa 000003 7770 00 19-19 llr 3  004710 aa 777777 6220 12 19-20 eax2 -1,2  004711 0a 004706 6054 00 19-21 tpnz *-3  19-22  004712 0a 004735 2350 00 19-23 lda octtemp  004713 0a 004713 6220 00 19-24 octx2: eax2 *  004714 aa 000000 7100 12 19-25 tra 0,2  19-26  19-27  19-28 " lda =v24/bin 24 bits of binary data  19-29 " tsx2 hexwd  19-30 " sta hex_bcd converted to hex 19-31  004715 0a 004733 7420 00 19-32 hexwd: stx2 hexx2  19-33  004716 aa 000044 7730 00 19-34 lrl 36 shift to Q 004717 aa 000006 6220 00 19-35 eax2 6 process 6 characters  004720 aa 000000 2350 07 19-36 hexloop: lda 0,dl clear A  004721 aa 000004 7370 00 19-37 lls 4 shift in 4 bits 004722 aa 000011 1150 07 19-38 cmpa 9,dl greater than 9? 004723 0a 004725 6044 00 19-39 tmoz *+2  004724 aa 000007 0350 07 19-40 adla 7,dl if so, change to letter 004725 aa 000006 7730 00 19-41 lrl 6  004726 0a 004735 2350 00 19-42 lda octtemp get temporary 004727 aa 000006 7370 00 19-43 lls 6 insert new character  004730 0a 004735 7550 00 19-44 sta octtemp and store 004731 aa 777777 6220 12 19-45 eax2 -1,2 decrement index 004732 0a 004720 6054 00 19-46 tpnz hexloop  19-47  004733 0a 004733 6220 00 19-48 hexx2: eax2 *  004734 aa 000000 7100 12 19-49 tra 0,2 return to caller  19-50  004735 aa 000000 000000 19-51 octtemp: oct 0  19-52  19-53 " End of include file ...... octwd.incl.alm 19-54  993 include conv  20-1 "  20-2 " Begin include file ...... conv.incl.alm  20-3  20-4  20-5 include eis_micro_ops  000020 21-1 bool insm,020  000040 21-2 bool enf,040  000060 21-3 bool ses,060  000100 21-4 bool mvzb,100  000120 21-5 bool mvza,120  000140 21-6 bool mfls,140  000160 21-7 bool mflc,160  000200 21-8 bool insb,200  000220 21-9 bool insa,220  000240 21-10 bool insn,240  000260 21-11 bool insp,260  000300 21-12 bool ign,300  000320 21-13 bool mvc,320  000340 21-14 bool mses,340  000360 21-15 bool mors,360  000400 21-16 bool lte,400  000420 21-17 bool cht,420  21-18 "  000010 21-19 bool if0,10  000004 21-20 bool if1,4 000002 21-21 bool if2,2 000001 21-22 bool if3,1 21-6  21-7 " 21-8  21-9 " lda GE code  21-10 " tsx2 geas to convert to ASCII 21-11 " sta ASCII code  21-12  004736 0a 004277 7550 00 21-13 geas: sta wd6 setup char tally words  21-14  004737 aa 000000 1604 00 21-15 mvt (),()  004740 0a 004277 020004 21-16 desc6a wd6,4  004741 0a 004300 000004 21-17 desc9a wd9,4  004742 0a 004745 0000 00 21-18 arg geastab  21-19  004743 0a 004300 2350 00 21-20 lda wd9 get comverted word  004744 aa 000000 7100 12 21-21 tra 0,2  21-22  004745 aa 060 061 062 063 21-23 geastab: aci X0123456789[#@:>?X 004746 aa 064 065 066 067 004747 aa 070 071 133 043 004750 aa 100 072 076 077 004751 aa 040 141 142 143 21-24 aci X abcdefghi&.](<\X 004752 aa 144 145 146 147 004753 aa 150 151 046 056 004754 aa 135 050 074 134 004755 aa 174 152 153 154 21-25 aci X|jklmnopqr-$*);'X 004756 aa 155 156 157 160 004757 aa 161 162 055 044 004760 aa 052 051 073 047 004761 aa 053 057 163 164 21-26 aci X+/stuvwxyz_,%=" X 004762 aa 165 166 167 170 004763 aa 171 172 137 054 004764 aa 045 075 042 040 21-27  004765 aa 060 061 062 063 21-28 geastabu: aci o0123456789[#@:>?o  004766 aa 064 065 066 067 004767 aa 070 071 133 043 004770 aa 100 072 076 077 004771 aa 040 101 102 103 21-29 aci o ABCDEFGHI&.](<\o 004772 aa 104 105 106 107 004773 aa 110 111 046 056 004774 aa 135 050 074 134 004775 aa 136 112 113 114 21-30 aci o^JKLMNOPQR-$*);'o 004776 aa 115 116 117 120 004777 aa 121 122 055 044 005000 aa 052 051 073 047 005001 aa 053 057 123 124 21-31 aci o+/STUVWXYZ_,%="!o 005002 aa 125 126 127 130 005003 aa 131 132 137 054 005004 aa 045 075 042 041 21-32  21-33 "  005005 0a 007736 1150 00 21-34 ljust: cmpa =h " check for blank  005006 aa 000000 6000 12 21-35 tze 0,2  21-36  005007 0a 007761 2360 00 21-37 ldq =o007777777777 to left adjust ge word  005010 aa 200000 2110 03 21-38 cmk =o200000,du  005011 aa 000000 6010 12 21-39 tnz 0,2  005012 aa 000006 7750 00 21-40 alr 6  005013 0a 005010 7100 00 21-41 tra *-3  21-42  005014 0a 007736 1150 00 21-43 rjust: cmpa =h " check for blank  005015 aa 000000 6000 12 21-44 tze 0,2  21-45  005016 aa 000100 3360 07 21-46 lcq =o100,dl to right adjust ge word  005017 aa 000020 2110 07 21-47 cmk =o20,dl  005020 aa 000000 6010 12 21-48 tnz 0,2  005021 aa 000036 7750 00 21-49 alr 30 005022 0a 005017 7100 00 21-50 tra *-3  21-51  005023 0a 005032 7550 00 21-52 bzel: sta bzin replace leading zeros with blanks  005024 aa 000000 0204 00 21-53 mve (),(),()  005025 0a 005032 020006 21-54 desc6a bzin,6  005026 0a 005034 000004 21-55 desc9a bzedit,4  005027 0a 005033 020006 21-56 desc6a bzout,6 005030 0a 005033 2350 00 21-57 lda bzout  005031 aa 000000 7100 12 21-58 tra 0,2  21-59  005032 21-60 bzin: bss ,1  005033 21-61 bzout: bss ,1  005034 aa 401020 105321 21-62 bzedit: vfd 9/lte+1,o9/20,9/mvzb+5,9/mvc+1  21-63  21-64 " End of include file ...... conv.incl.alm  21-65  994 include strip  22-1 " 22-2 " Begin include file ...... strip.incl.alm  22-3 " Created 5/8/75 by Noel I. Morris  22-4  22-5 " tsx2 stripa to strip blanks from ASCII characters  22-6 " desc9a string,length  22-7 " sta length length with blanks stripped  22-8  005035 0a 005063 6270 00 22-9 stripa: eax7 abtable X7 -> table for stripping ASCII blanks  22-10  005036 aa 000000 1654 20 22-11 stripj: tctr (id) scan characters in reverse  005037 aa 000000 0000 12 22-12 arg 0,2  005040 aa 000000 0000 17 22-13 arg 0,7  005041 0a 005052 0000 00 22-14 arg tctally  22-15  005042 0a 007764 2350 00 22-16 lda =o77777777 mask out extraneous info in tally  005043 0a 005052 3550 00 22-17 ansa tctally ..  22-18  005044 aa 000000 2350 12 22-19 lda 0,2 descriptor in A  005045 aa 007777 3750 07 22-20 ana =o7777,dl extract string length  005046 0a 005052 1350 00 22-21 sbla tctally subtract blanks skipped over 22-22  005047 aa 000001 7100 12 22-23 tra 1,2 return with new length in A  22-24  22-25  22-26 " tsx2 stripg to strip blanks from GEBCD characters  22-27 " desc6a string,length  22-28 " sta length length with blanks stripped  22-29  005050 0a 005053 6270 00 22-30 stripg: eax7 gbtable X7 -> table for stripping GEBCD blanks  005051 0a 005036 7100 00 22-31 tra stripj join common code  22-32  22-33  005052 22-34 tctally: bss ,1 22-35  005053 22-36 gbtable:  005053 aa 001001 001001 22-37 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005054 aa 001001 001001 005055 aa 001001 001001 22-38 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005056 aa 001001 001001 005057 aa 000001 001001 22-39 vfd 9/0,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005060 aa 001001 001001 005061 aa 001001 001001 22-40 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005062 aa 001001 001001 005063 22-41 abtable:  005063 aa 001001 001001 22-42 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005064 aa 001001 001001 005065 aa 001001 001001 22-43 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005066 aa 001001 001001 005067 aa 001001 001001 22-44 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005070 aa 001001 001001 005071 aa 001001 001001 22-45 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005072 aa 001001 001001 22-46  005073 aa 000001 001001 22-47 vfd 9/0,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005074 aa 001001 001001 005075 aa 001001 001001 22-48 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005076 aa 001001 001001 005077 aa 001001 001001 22-49 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005100 aa 001001 001001 005101 aa 001001 001001 22-50 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005102 aa 001001 001001 22-51  005103 aa 001001 001001 22-52 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005104 aa 001001 001001 005105 aa 001001 001001 22-53 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005106 aa 001001 001001 005107 aa 001001 001001 22-54 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005110 aa 001001 001001 005111 aa 001001 001001 22-55 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005112 aa 001001 001001 22-56  005113 aa 001001 001001 22-57 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005114 aa 001001 001001 005115 aa 001001 001001 22-58 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005116 aa 001001 001001 005117 aa 001001 001001 22-59 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005120 aa 001001 001001 005121 aa 001001 001001 22-60 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1  005122 aa 001001 001001 22-61  22-62 " End of include file ...... strip.incl.alm 22-63  22-64  995 include getcon 23-1 "  23-2 " Begin include file ...... getcon.incl.alm 23-3 " Modified 3/74 by N. I. Morris 23-4  23-5 " to get configuration from table  23-6 " lda ascii_key_word  23-7 " tsx2 getconf  23-8 " tra not_found 23-9 " com|0,7 is key word in table  23-10 "  23-11 " to continue search of table  23-12 " lda ascii_key_word  23-13 " tsx2 getmore  23-14 " tra not_found 23-15  005123 aa 003000 6270 00 23-16 getconf: eax7 conf search table  005124 aa 6 00000 1151 17 23-17 getcon1: cmpa com|0,7  005125 aa 000001 6000 12 23-18 tze 1,2 if found return  005126 aa 000020 6270 17 23-19 getmore: eax7 confl,7  005127 aa 007000 1070 03 23-20 cmpx7 econf,du 005130 0a 005124 6040 00 23-21 tmi getcon1  005131 aa 000000 7100 12 23-22 tra 0,2  23-23  23-24  23-25 " to search for key word on PRPH card  23-26 " lda ascii_key_word  23-27 " tsx2 getperiph  23-28 " tra not_found 23-29  005132 23-30 getperiph:  005132 0a 005141 7420 00 23-31 stx2 phx2 save X2 005133 aa 000044 7730 00 23-32 lrl 36 key word in Q  23-33  005134 0a 007765 2350 00 23-34 lda =aprph search for PRPH card  005135 0a 005123 7020 00 23-35 tsx2 getconf ..  005136 0a 005143 7100 00 23-36 tra noperiph ..  23-37  005137 aa 6 00001 1161 17 23-38 cmpq com|1,7 is it correct?  005140 0a 005126 6010 00 23-39 tnz getmore if not, continue searching config deck  23-40  005141 0a 005141 6220 00 23-41 phx2: eax2 * restore X2  005142 aa 000001 7100 12 23-42 tra 1,2 and return  23-43  005143 0a 005141 2220 00 23-44 noperiph: ldx2 phx2 restore X2 005144 aa 000000 7100 12 23-45 tra 0,2 take error return 23-46  23-47 " End of include file ...... getcon.incl.alm  23-48  996 include bos_iom_manager  24-1 " Begin include file ...... bos_iom_manager.incl.alm  24-2 " This is the IOM manager for BOS.  24-3 " Written in August 1971 by R F Mabee.  24-4 " Modified 9/12/75 by N. I. Morris for 2 IOM operation. 24-5 " Modified 8/25/76 by Noel I. Morris  24-6 " Last modified by Sherman D. Sprague 02/11/81 24-7 " Modified November 1981 by C. Hornig to remove iom_connect_rel.  24-8 " Modified September 1983 by Sherman D. Sprague to fix overhead channel bug.  24-9  24-10 " This routine must be called first to initialize things.  24-11 " Calling sequence: tsx2 init_io  24-12  005145 0a 005244 7420 00 24-13 init_io: stx2 iiox2 save X2  24-14  005146 aa 000010 4130 00 24-15 rscr 1*8 read CFG 005147 aa 000012 7710 00 24-16 arl 16-6 get processor port number  005150 aa 000700 3750 07 24-17 ana =o700,dl mask 005151 0a 005652 7550 00 24-18 sta bootload_cpu_port and save for later  24-19  005152 aa 000000 2120 00 24-20 absa 0 absolute address of segment base  005153 aa 000006 7350 00 24-21 als 6 adjust for 18 bit address  005154 0a 005651 7550 00 24-22 sta abs_base_addr save for future use  005155 0a 005633 5510 40 24-23 stba LPWX,40 set base for relative I/O  24-24  005156 aa 0 00007 2361 00 24-25 ldq ds|pgm*2+1 get SDW for this segment  005157 aa 000010 7720 00 24-26 qrl 3+5 shift and divide by 32  005160 aa 000001 0760 03 24-27 adq 1,du round to nearest 512 005161 0a 005633 5520 20 24-28 stbq LPWX,20 set bound for relative I/O  24-29  005162 aa 000044 7730 00 24-30 lrl 36 place address in QU  005163 0a 005631 0760 00 24-31 adq stop_lpw relocate stopper LPW 24-32  005164 aa 7 00600 2121 00 24-33 absa mem|iom_status+ioms*chans*2 get abs addr of status area  005165 aa 000006 7350 00 24-34 als 6 get low order address bits  24-35  005166 aa 6 02011 2271 00 24-36 ldx7 com|iom_mbbase mailbox addr in X7 005167 aa 000774 6270 17 24-37 eax7 ioms*chans*4-4,7 prepare to set up channel mailboxes  005170 aa 000002 1750 03 24-38 initmbx: sba 2,du decrement address of SCW 005171 aa 7 00002 7551 17 24-39 sta mem|iombx.scw,7 set SCW  005172 aa 7 00000 7561 17 24-40 stq mem|iombx.lpw,7 and LPW  005173 aa 7 00001 4501 17 24-41 stz mem|iombx.lpwx,7 clear LPWX  005174 aa 7 00003 4501 17 24-42 stz mem|iombx.dcw,7 and DCW  005175 aa 000004 1670 03 24-43 sbx7 4,du step to next channel  005176 aa 6 02011 1071 00 24-44 cmpx7 com|iom_mbbase are we finished?  005177 0a 005170 6054 00 24-45 tpnz initmbx ..  24-46  005200 aa 000100 1004 00 24-47 mlr (),(pr),fill(0) clear the status area  005201 0a 005201 000000 24-48 desc9a *,0 005202 aa 700200 002000 24-49 desc9a mem|iom_status,ioms*chans*2*4  24-50  005203 aa 6 02010 2351 00 24-51 lda com|iom_mxbase get address of IMW area 005204 aa 000020 7710 00 24-52 arl 18-2 as character offset  005205 aa 000105 1004 00 24-53 mlr (),(pr,al),fill(0) clear IMW area  005206 0a 005206 000000 24-54 desc9a *,0 005207 aa 700000 001000 24-55 desc9a mem|0,128*4 24-56  005210 0a 005656 2350 00 24-57 lda fault_lpw set up system fault channel 005211 aa 000004 6260 00 24-58 eax6 fault_channel*4 ..  005212 0a 005246 7070 00 24-59 tsx7 set_overhead_channel ..  24-60  005213 0a 005657 2350 00 24-61 lda fault_lpw+1 set up for second IOM  005214 aa 000404 6260 00 24-62 eax6 fault_channel*4+chans*4 ..  005215 0a 005246 7070 00 24-63 tsx7 set_overhead_channel ..  24-64  005216 0a 005662 2350 00 24-65 lda special_lpw set up special status channel  005217 aa 000030 6260 00 24-66 eax6 special_channel*4 ..  005220 0a 005246 7070 00 24-67 tsx7 set_overhead_channel ..  24-68  005221 0a 005663 2350 00 24-69 lda special_lpw+1 set up for second IOM  005222 aa 000430 6260 00 24-70 eax6 special_channel*4+chans*4 .. 005223 0a 005246 7070 00 24-71 tsx7 set_overhead_channel ..  24-72  005224 0a 005655 5540 00 24-73 stc1 dcw_reloc_flag remember relocation was done.  005225 0a 005667 4500 00 24-74 stz special_handler reset special handler  005226 0a 005666 4500 00 24-75 stz status_handler reset status handler  24-76  005227 0a 007766 2350 00 24-77 lda =aiom " look for IOM config cards 005230 0a 005123 7020 00 24-78 tsx2 getconf ..  005231 0a 005244 7100 00 24-79 tra iiox2 exit if no card 24-80  005232 aa 6 00002 7261 17 24-81 lxl6 com|2,7 get port number  005233 aa 6 00001 2361 17 24-82 ldq com|1,7 get IOM tag  005234 aa 000002 1160 07 24-83 cmpq ioms,dl see if too big  005235 0a 005126 6054 00 24-84 tpnz getmore if too big, ignore  005236 aa 000001 1760 07 24-85 sbq 1,dl minus 1  005237 0a 005126 6000 00 24-86 tze getmore in case Martinson has wrong IOM card  005240 aa 000032 7360 00 24-87 qls 18+6+2 multiply by size of mailbox  005241 aa 6 02011 0361 00 24-88 adlq com|iom_mbbase relocate to mailbox base  005242 aa 7 00001 4461 02 24-89 sxl6 mem|iom_cow,qu set COW in correct mailbox 24-90  005243 0a 005126 7100 00 24-91 tra getmore look for additional IOMs  24-92  005244 0a 005244 6220 00 24-93 iiox2: eax2 * restore X2  005245 aa 000000 7100 12 24-94 tra 0,2  24-95  24-96  24-97  005246 24-98 set_overhead_channel:  005246 aa 6 02011 6261 76 24-99 eax6 com|iom_mbbase,*6 get address of channel mailbox  005247 aa 000000 2360 01 24-100 ldq 0,au Get DCW for overhead channel.  005250 0a 005655 2340 00 24-101 szn dcw_reloc_flag only relocate once. 005251 0a 005254 6010 00 24-102 tnz set_overhead_dcw if already relocated. 005252 aa 6 02010 0361 00 24-103 adlq com|iom_mxbase Relocate to IMW area.  005253 aa 000000 7560 01 24-104 stq 0,au Replace DCW. 24-105  005254 24-106 set_overhead_dcw:  005254 aa 7 00003 7561 16 24-107 stq mem|iombx.dcw,6 Set DCW in mailbox.  24-108  005255 0a 005651 0350 00 24-109 adla abs_base_addr Relocate LPW address.  005256 aa 7 00000 7551 16 24-110 sta mem|iombx.lpw,6 Set overhead channel LPW.  24-111  005257 aa 000000 7100 17 24-112 tra 0,7 Return to caller.  24-113 " This routine issues a connect to the IOM using the caller's PCW and DCW list. 24-114 " Calling sequence: tsx2 connect_iom  24-115 " zero PCW_address,DCW_list_address  24-116  005260 24-117 connect_iom:  005260 0a 005632 4500 00 24-118 stz LPW clear all bits in LPW.  005261 24-119 connect_join:  005261 aa 000000 2350 12 24-120 lda 0,2 get argument pointers 005262 aa 000001 2360 01 24-121 ldq 1,au get channel # from PCW word B  005263 aa 000007 7720 00 24-122 qrl 9-2 shift and multiply by 4  005264 aa 6 02011 6271 62 24-123 eax7 com|iom_mbbase,*qu channel mailbox address in X7  005265 aa 000000 2120 05 24-124 absa 0,al get DCW list address  005266 aa 000006 7350 00 24-125 als 6 in AU  005267 0a 005632 2750 00 24-126 ora LPW insert LPW bits  005270 aa 7 00000 7551 17 24-127 sta mem|iombx.lpw,7 and store completed LPW  24-128  005271 0a 005633 2350 00 24-129 lda LPWX set LPWX in case of relative connect 005272 aa 7 00001 7551 17 24-130 sta mem|iombx.lpwx,7 for LPW extension 24-131  005273 aa 000001 7720 00 24-132 qrl 1 2 * channel # in QU 005274 aa 7 00200 4501 02 24-133 stz mem|iom_status,qu clear the status for this channel  005275 aa 7 00201 4501 02 24-134 stz mem|iom_status+1,qu ..  24-135  005276 aa 000000 2350 12 24-136 lda 0,2 get argument pointers 005277 aa 000000 2120 01 24-137 absa 0,au get absolute address of PCW 005300 aa 000006 7350 00 24-138 als 6 in AU  005301 aa 020001 2750 07 24-139 ora =o020001,dl insert LPW bits  005302 aa 777400 3670 03 24-140 anx7 -chans*4,du get address of correct mailbox  005303 aa 7 00010 7551 17 24-141 sta mem|iombx.lpw+connect_channel*4,7 set connect channel LPW 24-142  005304 24-143 reconnect:  005304 aa 141520 6260 00 24-144 eax6 50000 wait a while for connect to take  005305 aa 7 00001 0151 17 24-145 cioc mem|iom_cow,7 ZAP 005306 aa 7 00010 1151 17 24-146 cmpa mem|iombx.lpw+connect_channel*4,7 has connect channel LPW changed?  005307 aa 000001 6010 12 24-147 tnz 1,2 if so, the connect has taken. Return.  005310 aa 000001 1660 03 24-148 sbx6 1,du wait for a while  005311 0a 005306 6050 00 24-149 tpl *-3 ..  005312 0a 005304 7100 00 24-150 tra reconnect then try connect again  24-151  24-152  24-153 " This entry point issues a connect to a DCW list which has not been relocated. 24-154 " It sets the REL bit in the LPW and sets the offset and bound of the LPW ext.  24-155 " to reference segment "pgm".  24-156  24-157 " connect_iom_rel:  24-158 " lda =o010000,dl get REL bit  24-159 " sta LPW store into LPW template  24-160 " tra connect_join now join common code 24-161  24-162 " 24-163 " This routine picks up the status word for a particular channel  24-164 " and checks for abnormal status.  24-165 " Calling sequence: tsx2 check_status  24-166 " arg channel_info_address 24-167 " zero 0 " No status stored yet.  24-168 " tra error " Abnormal status.  24-169 " - - - " Normal return. 24-170  005313 24-171 check_status_no_stat: "Special feature for DIA 005313 0a 005670 5540 00 24-172 stc1 checkstat_nostat_sw  005314 0a 005316 7100 00 24-173 tra check_status_1 24-174  005315 24-175 check_status:  005315 0a 005670 4500 00 24-176 stz checkstat_nostat_sw  005316 24-177 check_status_1: 005316 aa 000014 6250 00 24-178 eax5 3*4 Get interrupt cell number.  005317 0a 005640 6260 00 24-179 eax6 TIMW Get address for IMW's.  005320 0a 005440 7070 00 24-180 tsx7 get_imws Pick up IMW's.  24-181  005321 24-182 test_status:  005321 aa 000000 2350 32 24-183 lda 0,2* Channel number in AU.  005322 0a 005460 7070 00 24-184 tsx7 test_imw Has terminate occurred on this channel? 005323 0a 005640 000001 24-185 descb TIMW,1  005324 0a 005340 7100 00 24-186 tra none_waiting If not, skip following code.  24-187  005325 aa 000001 7350 00 24-188 als 1 Channel * 2 in AU.  005326 aa 000000 6270 01 24-189 eax7 0,au  005327 aa 7 00200 2371 17 24-190 ldaq mem|iom_status,7 Current status word for the channel. 005330 0a 005333 6010 00 24-191 tnz checkstat_status_waits 005331 0a 005670 2340 00 24-192 szn checkstat_nostat_sw Magic return? 005332 0a 005340 6000 00 24-193 tze none_waiting No, there's no status 005333 24-194 checkstat_status_waits: 005333 aa 7 00200 4501 17 24-195 stz mem|iom_status,7 Clear word.  005334 aa 7 00201 4501 17 24-196 stz mem|iom_status+1,7 005335 0a 005654 3150 00 24-197 cana status_mask Check for abnormal status.  005336 aa 000003 6000 12 24-198 tze 3,2 Normal return.  005337 aa 000002 7100 12 24-199 tra 2,2 Error return.  24-200  005340 24-201 none_waiting: " Do some other work while waiting for channel. 005340 0a 005653 2340 00 24-202 szn status_lock Check before using static storage.  005341 0a 005423 6010 00 24-203 tnz nostatus No status - callout lock set. Take no status action.  005342 0a 005653 5540 00 24-204 stc1 status_lock Lock it to me before using stat_x0.  24-205  005343 0a 005420 7400 00 24-206 stx0 stat_x0  005344 0a 005421 7420 00 24-207 stx2 stat_x2  005345 0a 005666 2340 00 24-208 szn status_handler If no status handler,  005346 0a 005355 6000 00 24-209 tze no_stat_call Do not check for call.  005347 0a 005321 7020 00 24-210 tsx2 test_status Test for status.  005350 0a 005666 0000 00 24-211 arg status_handler 005351 0a 005355 7100 00 24-212 tra no_stat_call If none, skip call.  005352 0a 005353 7100 00 24-213 tra *+1  24-214  005353 0a 005666 7270 00 24-215 lxl7 status_handler Handler address in X7. 005354 aa 000000 7020 17 24-216 tsx2 0,7 Perform call.  24-217  005355 24-218 no_stat_call:  005355 aa 000034 6250 00 24-219 eax5 7*4 Interrupt level in X5.  005356 0a 005644 6260 00 24-220 eax6 SIMW Place to store special IMW's.  005357 0a 005470 7020 00 24-221 tsx2 overhead_queue_search Check for special status.  005360 aa 000006 000000 24-222 zero special_channel  005361 0a 005371 0000 00 24-223 arg process_special_status 24-224  005362 0a 005667 2350 00 24-225 lda special_handler If no special handler, 005363 0a 005400 6000 00 24-226 tze no_spec_int Do not check for call. 005364 0a 005460 7070 00 24-227 tsx7 test_imw Test for special status.  005365 0a 005644 000001 24-228 descb SIMW,1 ..  005366 0a 005400 7100 00 24-229 tra no_spec_int If none, skip call.  24-230  005367 aa 000000 7020 05 24-231 tsx2 0,al Perform call.  005370 0a 005400 7100 00 24-232 tra no_spec_int And continue.  24-233  24-234  005371 24-235 process_special_status: 005371 aa 000011 7710 00 24-236 arl 9 Shift the channel #.  005372 aa 000077 3750 03 24-237 ana =o77,du Mask it.  005373 0a 005650 2750 00 24-238 ora iomno Insert IOM #.  005374 aa 017001 0604 00 24-239 csl (),(au),bool(17) Set IMW bit for channel.  005375 0a 005375 000000 24-240 descb *,0  005376 0a 005644 000001 24-241 descb SIMW,1  005377 aa 000000 7100 17 24-242 tra 0,7 Return to caller. 24-243  24-244  005400 24-245 no_spec_int:  005400 aa 000004 6250 00 24-246 eax5 1*4 Interrupt level in X5.  005401 0a 005634 6260 00 24-247 eax6 FIMW Place to store system fault IMW's.  005402 0a 005470 7020 00 24-248 tsx2 overhead_queue_search Check for system fault status. 005403 aa 000001 000000 24-249 zero fault_channel 005404 0a 005406 0000 00 24-250 arg process_system_fault  24-251  005405 0a 005420 7100 00 24-252 tra stat_x0 All finished with status checking.  24-253  24-254  005406 24-255 process_system_fault:  005406 aa 000000 6360 01 24-256 eaq 0,au Channel # in QU. 005407 0a 005650 2760 00 24-257 orq iomno Insert IOM #.  005410 aa 000001 7360 00 24-258 qls 1 Multiply by 2.  005411 aa 777777 3750 07 24-259 ana =o777777,dl Mask info in AL.  005412 aa 770074 2750 03 24-260 ora =o770074,du Manufacture status with "abort" bit set.  005413 aa 7 00200 7551 02 24-261 sta mem|iom_status,qu Set status in status area.  24-262  005414 aa 017022 0604 00 24-263 csl (),(id,qu),bool(17) Set terminate IMW bit for channel. 005415 0a 005415 000000 24-264 descb *,0  005416 0a 005640 000001 24-265 descb TIMW,1  005417 aa 000000 7100 17 24-266 tra 0,7 Return to caller.  24-267  005420 0a 005420 6200 00 24-268 stat_x0: eax0 * 005421 0a 005421 6220 00 24-269 stat_x2: eax2 * 005422 0a 005653 4500 00 24-270 stz status_lock  24-271  005423 24-272 nostatus:  005423 0a 005425 7070 00 24-273 tsx7 iowait Wait for I/O to complete. 005424 0a 005316 7100 00 24-274 tra check_status_1 Then, check for status again.  24-275  24-276  24-277  24-278  005425 aa 000001 2340 12 24-279 iowait: szn 1,2 Action to take on no status?  005426 aa 000001 6010 12 24-280 tnz 1,2 If so, take it.  24-281  005427 0a 005652 7260 00 24-282 lxl6 bootload_cpu_port Get CPU port * 64.  005430 aa 777776 2350 03 24-283 lda =o777776,du Open mask for all interrupts.  005431 aa 777776 2360 03 24-284 ldq =o777776,du .. 005432 24-285 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  005432 aa 000020 0572 16 24-286 sscr 2*8,6 .. 24-287  005433 aa 000000 2352 32 24-288 lda 0,2* Display channel number.  005434 24-289 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  005434 aa 000000 6160 00 24-290 dis 0 Wait for interrupt. 005435 24-291 inhibit on <+><+><+><+><+><+><+><+><+><+><+><+>  24-292  005435 aa 000000 4312 07 24-293 fld 0,dl Close mask again.  005436 aa 000020 0572 16 24-294 sscr 2*8,6 .. 005437 24-295 inhibit off <-><-><-><-><-><-><-><-><-><-><-><->  24-296  005437 aa 000000 7100 17 24-297 tra 0,7 Return to caller.  24-298  005440 24-299 get_imws:  005440 aa 6 02010 0251 00 24-300 adlx5 com|iom_mxbase Relocate IMW address. 005441 aa 7 00000 0321 15 24-301 ldqc mem|0,5 Get first IMW.  005442 aa 000040 7370 00 24-302 lls 36-4 Take first 32 bits.  005443 aa 7 77774 0321 15 24-303 ldqc mem|-4,5 Get second IMW. 005444 aa 000004 7370 00 24-304 lls 4 Insert 4 more bits. 005445 aa 000000 2550 16 24-305 orsa 0,6 Store first word.  24-306  005446 aa 000034 7370 00 24-307 lls 36-8 Get 28 more bits.  005447 aa 7 00001 0321 15 24-308 ldqc mem|1,5 Get third IMW.  005450 aa 000010 7370 00 24-309 lls 8 Insert 8 bits.  005451 aa 000001 2550 16 24-310 orsa 1,6 Store second word.  24-311  005452 aa 000030 7370 00 24-312 lls 36-12 Get 24 more bits.  005453 aa 7 77775 0321 15 24-313 ldqc mem|-4+1,5 Get last IMW.  005454 aa 000014 7370 00 24-314 lls 12 Insert 12 bits.  005455 aa 000002 2550 16 24-315 orsa 2,6 Store third word.  005456 aa 000003 2560 16 24-316 orsq 3,6 And fourth word. 24-317  005457 aa 000000 7100 17 24-318 tra 0,7 Return to caller. 24-319  24-320  24-321  005460 24-322 test_imw:  005460 aa 005021 0644 00 24-323 sztl (),(id,au),bool(05) Has interrupt occurred on this channel?  005461 0a 005461 000000 24-324 descb *,0  005462 aa 000000 0000 17 24-325 arg 0,7  005463 aa 000001 6000 17 24-326 tze 1,7 If not, take failure return.  24-327  005464 aa 000021 0604 00 24-328 csl (),(id,au),bool(00) Turn off IMW bit.  005465 0a 005465 000000 24-329 descb *,0  005466 aa 000000 0000 17 24-330 arg 0,7  24-331  005467 aa 000002 7100 17 24-332 tra 2,7 Take success return.  24-333  005470 24-334 overhead_queue_search:  005470 0a 005476 7460 00 24-335 stx6 oqsdesc Set descriptor to IMW.  005471 0a 005440 7070 00 24-336 tsx7 get_imws Pick up IMW's.  24-337  005472 0a 005650 4500 00 24-338 stz iomno Zero IOM # to start.  005473 aa 000000 2350 07 24-339 lda 0,dl Clear the A. 005474 24-340 overhead_loop:  005474 aa 000000 0750 12 24-341 ada 0,2 Add in the channel #. 005475 0a 005460 7070 00 24-342 tsx7 test_imw See if interrupt present.  005476 0a 005476 000001 24-343 oqsdesc: descb *,1  005477 0a 005513 7100 00 24-344 tra noovh If not, skip following. 24-345  005500 aa 000002 7350 00 24-346 als 2 Multiply channel # by 4.  005501 aa 6 02011 6351 61 24-347 eaa com|iom_mbbase,*au Get address of appropriate mailbox. 005502 aa 7 00000 2251 01 24-348 ldx5 mem|iombx.lpw,au Get address of DCW from LPW. 005503 aa 7 00000 2251 15 24-349 ldx5 mem|0,5 Get address of queue from DCW.  005504 0a 005505 2200 00 24-350 ldx0 *+1 Set up X0 for RPT.  005505 aa 010040 5202 01 24-351 oqsrpt: rptx overhead_qlth,1,tnz Search through queue.  005506 aa 7 00000 0341 15 24-352 ldac mem|0,5 ..  005507 0a 005513 6064 00 24-353 ttn noovh If empty, try other IOM.  24-354  005510 aa 000001 7070 32 24-355 tsx7 1,2* Process queue entry.  24-356  005511 aa 776000 3000 03 24-357 canx0 =o776000,du Did RPT tally run out?  005512 0a 005505 6010 00 24-358 tnz oqsrpt If not, continue the search.  24-359  005513 aa 000100 2350 03 24-360 noovh: lda chans,du Bump IOM #.  005514 0a 005650 0750 00 24-361 ada iomno ..  005515 0a 005650 7550 00 24-362 sta iomno ..  005516 aa 000200 1150 03 24-363 cmpa ioms*chans,du All finished?  005517 0a 005474 6040 00 24-364 tmi overhead_loop If not, loop.  005520 aa 000002 7100 12 24-365 tra 2,2 Return to caller.  24-366 " This routine checks for a special interrupt on a particular channel.  24-367 " Calling sequence: tsx2 check_special_status  24-368 " arg channel_info_address 24-369 " tra no_special  24-370 " - - - " Normal return.  24-371  005521 24-372 check_special_status:  005521 0a 005527 7420 00 24-373 stx2 cksp_x2 Save X2. 24-374  005522 aa 000034 6250 00 24-375 eax5 7*4 Pick up IMW's for level 7.  005523 0a 005644 6260 00 24-376 eax6 SIMW And place in SIMW.  005524 0a 005470 7020 00 24-377 tsx2 overhead_queue_search 005525 aa 000006 000000 24-378 zero special_channel  005526 0a 005371 0000 00 24-379 arg process_special_status 24-380  005527 0a 005527 6220 00 24-381 cksp_x2: eax2 * Restore X2.  24-382  005530 24-383 test_special:  005530 aa 000000 2350 32 24-384 lda 0,2* Channel # in AU. 005531 0a 005460 7070 00 24-385 tsx7 test_imw Test IMW bit for this channel.  005532 0a 005644 000001 24-386 descb SIMW,1  005533 0a 005535 7100 00 24-387 tra *+2 If off, return no special.  005534 aa 000002 7100 12 24-388 tra 2,2 Normal return.  005535 0a 005425 7070 00 24-389 tsx7 iowait Wait for interrupt.  005536 0a 005521 7100 00 24-390 tra check_special_status 24-391  24-392 " This routine establishes a handler for special interrupts for a particular channel.  24-393 " Calling sequence: tsx2 get_special_interrupt  24-394 " zero channel_info_address,handler_address  24-395  005537 24-396 get_special_interrupt:  005537 0a 005667 6270 00 24-397 eax7 special_handler Set special handler address.  005540 0a 005542 7100 00 24-398 tra get_interrupt_common Join common code.  24-399  24-400  24-401 " This routine sets up a handler for all status from a particular channel.  24-402 " Calling sequence: tsx2 get_status_interrupt  24-403 " zero channel_info,handler_address  24-404  005541 24-405 get_status_interrupt:  005541 0a 005666 6270 00 24-406 eax7 status_handler Set status handler address.  24-407  005542 24-408 get_interrupt_common:  005542 aa 000000 2350 12 24-409 lda 0,2 Channel info addr, handler addr in A. 005543 aa 000000 2360 01 24-410 ldq 0,au Channel # in QU. 005544 aa 000022 7370 00 24-411 lls 18 Handler address, channel # in A.  005545 aa 000022 7750 00 24-412 alr 18 Swap them. 005546 aa 000000 7550 17 24-413 sta 0,7 Set handler entry.  005547 aa 000001 7100 12 24-414 tra 1,2 24-415 " This routine makes the PCW and DCW list for a single record or non-data operation.  24-416 " Control does not return to the user until the operation has terminated.  24-417 " Calling sequence: tsx2 xio_wait  24-418 " vfd 18/buffer,12/tally,6/character_position  24-419 " zero channel_info_address,device_opcode  24-420 " tra error " Error return.  24-421 " - - - " Normal return. 24-422 "  24-423 " Modified for Compatibility between Common Peripheral Channel  24-424 " Peripheral Subsystem Interface Adapter - 10/29/72 by N. I. Morris 24-425  005550 0a 005620 7420 00 24-426 xio_wait: stx2 io_x2 save X2  005551 aa 000000 2350 12 24-427 lda 0,2 pick up buffer address  005552 0a 005574 6000 00 24-428 tze non_data_transfer if zero, non-data transfer  24-429  005553 aa 000000 6360 05 24-430 eaq 0,al tally in QU. 005554 aa 700000 3150 03 24-431 cana =o700000,du look at pointer reg. bits 005555 0a 005557 6010 00 24-432 tnz *+2 if non-zero, already set  005556 aa 300000 2750 03 24-433 ora pgm*32768,du otherwise, set to this program  005557 0a 005560 7510 70 24-434 stca *+1,70 store into absa instruction  005560 aa 0 00000 2121 00 24-435 absa 0|0 ****** THIS INSTRUCTION GETS MODIFIED ****** 005561 aa 000006 7750 00 24-436 alr 6 shift address  005562 0a 005627 7510 70 24-437 stca DCW,70 place address in DCW  005563 aa 000022 7350 00 24-438 als 18 shift the address extension  005564 0a 005626 7510 10 24-439 stca IDCW,10 and place in IDCW  24-440  005565 aa 000014 7760 00 24-441 qlr 12 shift the tally to correct place  005566 0a 005627 7520 03 24-442 stcq DCW,03 and store the tally in DCW  24-443  005567 aa 000006 7760 00 24-444 qlr 6 get the character position  005570 aa 000017 7360 00 24-445 qls 15 shift the character position  005571 0a 005627 7520 04 24-446 stcq DCW,04 and store char. pos. in DCW  24-447  005572 aa 000000 2350 07 24-448 lda 0,dl pick up low-order IDCW bits  005573 0a 005577 7100 00 24-449 tra set_idcw  24-450  005574 24-451 non_data_transfer:  005574 0a 005630 2350 00 24-452 lda stop_dcw pick up DCW to stop channel  005575 0a 005627 7550 00 24-453 sta DCW in case things get out of hand  005576 aa 000201 2350 07 24-454 lda =o0201,dl pick up low-order IDCW bits for NDT 005577 24-455 set_idcw:  005577 0a 005626 7510 03 24-456 stca IDCW,03 set IDCW control bits  24-457  005600 aa 000001 2350 12 24-458 lda 1,2 pick up second argument  005601 0a 005615 7510 70 24-459 stca channel_ptr,70 save it  005602 aa 000000 2360 01 24-460 ldq 0,au pick up channel info.  005603 aa 000011 7360 00 24-461 qls 9 shift channel # to PCW position 005604 0a 005625 5520 40 24-462 stbq PCW+1,40 and place channel # in PCW  005605 aa 000003 7360 00 24-463 qls 3 now shift the device code  005606 0a 005624 7520 20 24-464 stcq PCW,20 and store in PCW  005607 0a 005626 7520 20 24-465 stcq IDCW,20 place in IDCW also, for PSIA operation  005610 aa 000036 7350 00 24-466 als 30 shift the op-code  005611 0a 005626 7510 40 24-467 stca IDCW,40 and place op-code in IDCW  24-468  005612 0a 005260 7020 00 24-469 tsx2 connect_iom start up the channel  005613 00 005624 005626 24-470 zero PCW,IDCW  24-471  005614 0a 005315 7020 00 24-472 tsx2 check_status wait for status to come back 005615 24-473 channel_ptr:  005615 aa 000000 000000 24-474 zero  005616 aa 000000 000000 24-475 zero  005617 0a 005622 7100 00 24-476 tra abnormal_return  24-477  005620 0a 005620 6220 00 24-478 io_x2: eax2 *  005621 aa 000003 7100 12 24-479 tra 3,2  24-480  005622 24-481 abnormal_return:  005622 0a 005620 2220 00 24-482 ldx2 io_x2 005623 aa 000002 7100 12 24-483 tra 2,2 24-484  000002 24-485 equ ioms,2 000100 24-486 equ chans,64  24-487  24-488 " Addresses relative to mailbox.  24-489  000001 24-490 bool iom_cow,1 Address of COW.  24-491  24-492 " Addresses relative to IMW area.  24-493  000100 24-494 bool system_fault_queue,100 Address of system fault status queue.  000110 24-495 bool special_status_queue,110 Address of special status queue. 24-496  24-497 " Absolute addresses.  24-498  000200 24-499 bool iom_status,200 Address of place to store status. 24-500  24-501 " IOM Mailbox Equivalences. 24-502  000000 24-503 equ iombx.lpw,0  000001 24-504 equ iombx.lpwx,1  000002 24-505 equ iombx.scw,2  000003 24-506 equ iombx.dcw,3  24-507  24-508 " Overhead Channel Equivalences.  24-509  000001 24-510 equ fault_channel,1  000002 24-511 equ connect_channel,2  000006 24-512 equ special_channel,6  24-513  000004 24-514 equ overhead_qlth,4  24-515  24-516  24-517 even  005624 aa 400000 720201 24-518 PCW: vfd o6/40,6/0,6/0,3/7,3/2,6/2,6/1,9/0,27/0 005625 aa 000000 000000 24-519  005626 aa 000000 700000 24-520 IDCW: vfd 6/0,6/0,6/0,3/7,3/0,6/0,6/0  005627 aa 000000 000000 24-521 DCW: oct 0  005630 aa 000000 700201 24-522 stop_dcw: vfd 18/0,3/7,3/0,6/2,6/1 Terminate IDCW. 005631 0a 005630 040000 24-523 stop_lpw: vfd 18/stop_dcw,o6/04,12/0 LPW with tally update suppressed. 24-524  005632 24-525 LPW: bss ,1 005633 24-526 LPWX: bss ,1  24-527  005634 24-528 FIMW: bss ,4 System fault IMW. 005640 24-529 TIMW: bss ,4 Terminate IMW.  005644 24-530 SIMW: bss ,4 Special interrupt IMW.  24-531  005650 24-532 iomno: bss ,1 IOM #  24-533  005651 24-534 abs_base_addr:  005651 aa 000000 000000 24-535 oct 0  005652 24-536 bootload_cpu_port:  005652 aa 000000 000000 24-537 oct 0  005653 24-538 status_lock:  005653 aa 000000 000000 24-539 oct 0  005654 24-540 status_mask:  005654 aa 370000 770000 24-541 oct 370000770000 Ignore normally on bits.  005655 24-542 dcw_reloc_flag: 005655 aa 000000 000000 24-543 oct 0 non-zero if overhead dcw's relocated.  005656 24-544 fault_lpw:  005656 0a 005660 040000 24-545 vfd 18/fault_dcw,o6/04,12/0 NC LPW - no tally update. 005657 0a 005661 040000 24-546 vfd 18/fault_dcw+1,o6/04,12/0 NC LPW - no tally update.  24-547  005660 24-548 fault_dcw:  005660 aa 000100 010004 24-549 vfd 18/system_fault_queue,3/0,3/1,12/overhead_qlth IOTP DCW.  005661 aa 000104 010004 24-550 vfd 18/system_fault_queue+overhead_qlth,3/0,3/1,12/overhead_qlth IOTP DCW.  24-551  005662 24-552 special_lpw:  005662 0a 005664 040000 24-553 vfd 18/special_dcw,o6/4,12/0  005663 0a 005665 040000 24-554 vfd 18/special_dcw+1,o6/4,12/0 24-555  005664 24-556 special_dcw:  005664 aa 000110 010002 24-557 vfd 18/special_status_queue,3/0,3/1,12/overhead_qlth-2 005665 aa 000114 010002 24-558 vfd 18/special_status_queue+overhead_qlth,3/0,3/1,12/overhead_qlth-2  24-559  005666 24-560 status_handler: 005666 24-561 bss ,1 24-562  005667 24-563 special_handler:  005667 24-564 bss ,1 24-565  005670 24-566 checkstat_nostat_sw:  005670 24-567 bss ,1 24-568  24-569 " End of include file ...... bos_iom_manager.incl.alm  24-570  997 include intflt 25-1 "  25-2 " Begin include file ...... intflt.incl.alm 25-3 " This routine initializes the fault and interrupt vector and sets up the execute interrupt 25-4 " Modified 3/15/76 by Noel I. Morris  25-5 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 25-6 " Modified by Sherman D. Sprague 10/5/81 for change in AM store procedure.  25-7 " Modified by J. Bongiovanni 1/7/82 to spl on faults and interrupts 25-8  000100 25-9 bool fvloc,100 absolute loc'n of fault vector 000000 25-10 bool ivloc,0 absolute loc'n of interrupt vector  25-11  000006 25-12 equ drl,6 derail fault #  000004 25-13 equ timer,4 timer runout fault #  000007 25-14 equ lockup,7 lockup fault #  000017 25-15 equ exec,15 execute fault #  25-16  005671 aa 000000 0110 03 25-17 even  005672 aa 000000 000061 25-18 hist_on: oct 61 25-19  25-20  005673 25-21 inhibit on 25-22  005673 25-23 initint:  005673 aa 000000 6272 32 25-24 eax7 0,2* address for xec fault  005674 0a 005745 7472 00 25-25 stx7 exloc+1  25-26  005675 aa 000000 1006 00 25-27 mlr (),(),fill(0) set up to clear hist store area  005676 0a 005676 000000 25-28 desc9a *,0 005677 0a 006620 004000 25-29 desc9a intflt_ouhist,128*4*4  25-30  005700 aa 000000 1006 00 25-31 mlr (),(),fill(0) set up to clear am stor area 005701 0a 005701 000000 25-32 desc9a *,0 005702 0a 006200 002400 25-33 desc9a intflt_amptwptr,320*4  25-34  25-35 " Relocate to absolute all instructions with bit 29 ON. 25-36  005703 aa 000112 6272 00 25-37 eax7 labsarea-1 do this many words 005704 aa 777677 2362 07 25-38 ldq =o777677,dl mask in Q for clearing addr and bit 29 005705 0a 005750 2352 17 25-39 relop: lda absarea,7 instruction in A  005706 aa 000100 3152 07 25-40 cana =o100,dl bit 29 ON?  005707 0a 005715 6002 00 25-41 tze notrel if not, don't relocate 005710 0a 005711 5512 60 25-42 stba *+1,60 set address and segment tag  005711 aa 0 00000 2123 00 25-43 absa 0|0 ****** THIS INSTRUCTION GETS MODIFIED ****** 005712 aa 000006 7352 00 25-44 als 6 absolute addr in AU 005713 0a 005750 3562 17 25-45 ansq absarea,7 clear old addr and segment tag 005714 0a 005750 2552 17 25-46 orsa absarea,7 insert absolute address  005715 aa 777777 6272 17 25-47 notrel: eax7 -1,7  005716 0a 005705 6052 00 25-48 tpl relop  25-49  005717 aa 000076 6272 00 25-50 eax7 64-2 set all fault pairs 005720 0a 006032 2372 00 25-51 ldaq unexpair to unexpected  005721 aa 000016 1072 03 25-52 fltloop: cmpx7 lockup*2,du except lockup  005722 0a 005726 6002 00 25-53 tze skipflt  005723 aa 000010 1072 03 25-54 cmpx7 timer*2,du and timer runout  005724 0a 005726 6002 00 25-55 tze skipflt  005725 aa 7 00100 7573 17 25-56 staq mem|fvloc,7  005726 aa 777776 6272 17 25-57 skipflt: eax7 -2,7  005727 0a 005721 6052 00 25-58 tpl fltloop  25-59  005730 0a 006026 2372 00 25-60 ldaq lockfltpair now set lockup fault  005731 aa 7 00116 7573 00 25-61 staq mem|fvloc+lockup*2 ignore them  005732 aa 7 00110 7573 00 25-62 staq mem|fvloc+timer*2 also ignore timer runouts  25-63  005733 0a 006030 2372 00 25-64 ldaq exintpair take exec faults  005734 aa 7 00136 7573 00 25-65 staq mem|fvloc+exec*2 store into vector  25-66  005735 aa 000076 6272 00 25-67 eax7 64-2 fill intrpt vectors 005736 0a 006034 2372 00 25-68 ldaq intpair get pair 005737 aa 7 00000 7573 17 25-69 initintl: staq mem|ivloc,7 store in first block 005740 aa 777776 6272 17 25-70 eax7 -2,7  005741 0a 005737 6052 00 25-71 tpl initintl  25-72  005742 aa 3 05672 6743 04 25-73 lcpr pgm|hist_on,04 turn on hist regs  005743 aa 000001 7102 12 25-74 tra 1,2 return  25-75  25-76 even  005744 aa 000003 000043 25-77 exloc: its pgm,0 go to appending mode  005745 aa 000000 000000 25-78  005746 aa 000003 000043 25-79 gotflt: its pgm,0 go to appending mode 005747 aa 000000 000000 005747 25-80 equ wantflt,gotflt+1 set if user wants control on fault  25-81  005750 25-82 absarea: "beginning here all addrs are changed to abs  25-83  005750 25-84 interentry: 005750 aa 3 07620 7533 00 25-85 sreg pgm|intflt_regs here after execute fault  005751 aa 3 05672 6743 04 25-86 lcpr pgm|hist_on,04 turn on history registers  005752 aa 3 07630 4477 00 25-87 spl pgm|intflt_ptrlen and revive EIS box  005753 aa 3 05744 7103 20 25-88 tra pgm|exloc,*  25-89  25-90  005754 aa 3 07630 4477 00 25-91 unexpflt: spl pgm|intflt_ptrlen clear EIS box in case of mif  005755 aa 3 05747 2343 00 25-92 szn pgm|wantflt if anybody wants unexpected fault  005756 aa 3 05761 6003 00 25-93 tze pgm|*+3 go to it  005757 aa 3 05672 6743 04 25-94 lcpr pgm|hist_on,04 but first, turn on history registers  005760 aa 3 05746 7103 20 25-95 tra pgm|gotflt,* then go to appending mode 25-96  005761 aa 3 07620 7533 00 25-97 sreg pgm|intflt_regs  005762 aa 3 07641 7023 00 25-98 tsx2 pgm|check_cpu_type  005763 aa 000000 6242 05 25-99 eax4 0,al save cpu type  005764 aa 000004 6272 00 25-100 int_sam1: eax7 4  005765 aa 000003 6262 00 25-101 eax6 3 set up for a dps8  005766 aa 000001 1042 03 25-102 cmpx4 1,du were we right? 005767 aa 3 05771 6003 00 25-103 tze pgm|int_sam2 yes ,now thats a first!  005770 aa 000000 6262 00 25-104 eax6 0 so we were wrong its a l68 005771 aa 3 06052 2353 17 25-105 int_sam2: lda pgm|int_sam5-1,7 load instruction word to be executed 005772 aa 000000 6252 16 25-106 eax5 0,6 set up counter  005773 aa 000000 6362 15 25-107 int_sam3: eaq 0,5 but counter in q 005774 aa 000004 7362 00 25-108 qls 4 multiply times 4  005775 aa 000002 1072 03 25-109 cmpx7 2,du is this the sdw regs ? 005776 aa 3 06000 6013 00 25-110 tnz pgm|int_sam4  005777 aa 000001 7362 00 25-111 qls 1 it was so make it times 32  006000 aa 3 06063 7553 00 25-112 int_sam4: sta pgm|int_inst store instruction word to be XECed  006001 aa 3 06063 0563 00 25-113 asq pgm|int_inst add in quadrant offset  006002 aa 3 06063 7163 00 25-114 xec pgm|int_inst lets execute it  006003 aa 777777 6252 15 25-115 eax5 -1,5 decrement counter  006004 aa 3 05773 6053 00 25-116 tpl pgm|int_sam3 lets do it again  006005 aa 777777 6272 17 25-117 eax7 -1,7 get another instruction 006006 aa 3 05771 6013 00 25-118 tnz pgm|int_sam2 do it again  25-119  25-120 " save the history registers 006007 aa 000002 2362 03 25-121 ldq 2,du address field step  006010 aa 000003 6262 00 25-122 eax6 nint_scpr-1 # of instructions 25-123  006011 aa 000020 6272 00 25-124 intscpr2: eax7 16 16 instructions to store a history register  006012 aa 000001 1042 03 25-125 cmpx4 1,du check cpu type 006013 aa 3 06015 6013 00 25-126 tnz pgm|intl68 skip next instruction if l68  006014 aa 000100 6272 00 25-127 eax7 64 set up for dps8  006015 aa 3 06057 2353 16 25-128 intl68: lda pgm|int_scpr,6 pick up inst 006016 aa 3 06063 7553 00 25-129 sta pgm|int_inst  006017 aa 3 06063 7163 00 25-130 intscpr1: xec pgm|int_inst execute it  006020 aa 3 06063 0563 00 25-131 asq pgm|int_inst incrment address field  006021 aa 777777 6272 17 25-132 eax7 -1,7 decrement loop  006022 aa 3 06017 6013 00 25-133 tnz pgm|intscpr1 not done  006023 aa 777777 6262 16 25-134 eax6 -1,6 next ?  006024 aa 3 06011 6053 00 25-135 tpl pgm|intscpr2 get next inst 006025 aa 3 06025 7103 00 25-136 tra pgm|* now wait  25-137  25-138 even  006026 25-139 lockfltpair:  006026 aa 3 06610 6573 00 25-140 scu pgm|intflt_scuignore ignore lockup faults  006027 aa 3 06036 7103 00 25-141 tra pgm|rstart_hist  25-142  006030 25-143 exintpair:  006030 aa 3 06610 6573 00 25-144 scu pgm|intflt_scuignore  006031 aa 3 05750 7103 00 25-145 tra pgm|interentry 25-146  006032 aa 3 02010 6573 00 25-147 unexpair: scu pgm|scuinfo unexpected fault  006033 aa 3 05754 7103 00 25-148 tra pgm|unexpflt  25-149  006034 aa 3 06610 6573 00 25-150 intpair: scu pgm|intflt_scuignore int pair for int vector  006035 aa 3 06040 7103 00 25-151 tra pgm|intset 25-152  006036 25-153 rstart_hist:  25-154 "here to restart hist regs after ignored fault  006036 aa 3 05672 6743 04 25-155 lcpr pgm|hist_on,04  006037 aa 3 06610 6133 00 25-156 rcu pgm|intflt_scuignore  25-157  006040 aa 3 07620 7533 00 25-158 intset: sreg pgm|intflt_regs here from intrpt  006041 aa 3 07630 4477 00 25-159 spl pgm|intflt_ptrlen clear EIS box  006042 aa 3 06611 2353 00 25-160 lda pgm|intflt_scuignore+scu.fltint_num  006043 aa 000076 3752 07 25-161 ana scu.fltint_num_mask,dl 006044 aa 000021 7352 00 25-162 als 18-scu.fltint_num_shift right justify in upper  006045 aa 3 06064 7553 00 25-163 sta pgm|intno  006046 aa 400000 2362 03 25-164 ldq =o400000,du  006047 aa 000000 7722 01 25-165 qrl 0,au position bit 006050 aa 3 06065 2563 00 25-166 orsq pgm|intrpts1  006051 aa 3 07620 0733 00 25-167 lreg pgm|intflt_regs restore  006052 aa 3 06610 6133 00 25-168 rcu pgm|intflt_scuignore and return  25-169  006053 aa 3 06500 5573 00 25-170 int_sam5: ssdp pgm|intflt_amsdwptr  006054 aa 3 06300 2547 00 25-171 ssdr pgm|intflt_amsdwregs  006055 aa 3 06200 5577 00 25-172 sptp pgm|intflt_amptwptr  006056 aa 3 06100 1547 00 25-173 sptr pgm|intflt_amptwregs  006057 25-174 int_scpr:  006057 aa 3 06620 4523 40 25-175 scpr pgm|intflt_ouhist,40  006060 aa 3 07020 4523 20 25-176 scpr pgm|intflt_cuhist,20  006061 aa 3 07220 4523 10 25-177 scpr pgm|intflt_eishist,10 006062 aa 3 07420 4523 00 25-178 scpr pgm|intflt_aphist,00  25-179  000004 25-180 equ nint_scpr,*-int_scpr  25-181  25-182  000113 25-183 equ labsarea,*-absarea end of abs area 25-184  25-185  006063 25-186 inhibit off  25-187  006063 25-188 int_inst:  006063 25-189 bss ,1 25-190  000001 25-191 equ scu.fltint_num,1  000076 25-192 bool scu.fltint_num_mask,76  000001 25-193 equ scu.fltint_num_shift,1 25-194  006064 25-195 intno:  006064 aa 000000 000000 25-196 oct 0  006065 25-197 intrpts1:  006065 aa 000000 000000 25-198 oct 0  006066 aa 000000 0110 03 25-199 mod 16 006067 aa 000000 0110 03 006070 aa 000000 0110 03 006071 aa 000000 0110 03 006072 aa 000000 0110 03 006073 aa 000000 0110 03 006074 aa 000000 0110 03 006075 aa 000000 0110 03 006076 aa 000000 0110 03 006077 aa 000000 0110 03 006100 25-200 intflt_amptwregs:  006100 25-201 bss ,64  25-202 mod 16 006200 25-203 intflt_amptwptr:  006200 25-204 bss ,64  25-205 mod 16 006300 25-206 intflt_amsdwregs:  006300 25-207 bss ,128  25-208 mod 16 006500 25-209 intflt_amsdwptr:  006500 25-210 bss ,64  25-211  25-212 eight  006600 25-213 intflt_scu: bss ,8  006610 25-214 intflt_scuignore:  006610 25-215 bss ,8 25-216  25-217 eight  006620 25-218 intflt_ouhist:  006620 25-219 bss ,128  007020 25-220 intflt_cuhist:  007020 25-221 bss ,128  007220 25-222 intflt_eishist: 007220 25-223 bss ,128  007420 25-224 intflt_aphist:  007420 25-225 bss ,128  25-226  25-227 eight  007620 25-228 intflt_regs:  007620 25-229 bss ,8 007630 25-230 intflt_ptrlen:  007630 25-231 bss ,8 007640 25-232 intflt_mode:  007640 25-233 bss ,1 25-234  25-235  25-236 " End of include file ...... intflt.incl.alm  25-237  998 include check_cpu_type 26-1 " Begin include file .... check_cpu_type.incl.alm  26-2 " Created 09/29/80 by Sherman D. Sprague  26-3 "  26-4 " To find the type cpu in use at this time  26-5 " tsx2 check_cpu_type  26-6 " sta 0/L68 - 1/DPS8  26-7 " stq rsw2 raw info 26-8 "  007641 26-9 inhibit on <+><+><+><+><+><+><+><+><+><+> 007641 26-10 check_cpu_type: 007641 aa 000002 2312 00 26-11 rsw 2 check cpu type  007642 aa 000005 7552 04 26-12 sta cctrsw2-*,ic store raw data  007643 aa 000036 7712 00 26-13 arl 30 position type code 007644 aa 000003 3752 07 26-14 ana 3,dl wipe out unwanted bits  007645 aa 000002 2362 04 26-15 ldq cctrsw2-*,ic load raw rsw2 data for return 007646 aa 000000 7102 12 26-16 tra 0,2 and return  007647 aa 000000 000000 26-17 cctrsw2: oct 0  007650 26-18 inhibit off <-><-><-><-><-><-><-><-><-><->  26-19 " End of include file .... check_cpu_type.incl.alm  26-20  999 include bos_common 27-1 "  27-2 " Begin include file ...... bos_common.incl.alm 27-3 " Modified on 8/31/76 by N. I. Morris  27-4 " Modified on 9/01/80 by Sherman D. Sprague for DPS8 operation  27-5 " Modified on 5/26/82 by Sherman D. Sprague to lengthen config size 27-6 " Modified on 3/01/83 by Sherman D. Sprague to lengthen dirlen  27-7 " MACHINE CONDITIONS AREA  27-8 " Its length is "storlen". 27-9  000000 27-10 equ amptwregs,0 Ass. Mem PTW registers  000100 27-11 equ amptwptr,64 Ass. Mem PTW pointers 000200 27-12 equ amsdwregs,128 Ass. Mem SDW registers  000400 27-13 equ amsdwptr,256 Ass. Mem SDW pointers  000500 27-14 equ ouhist,320 operations hist regs  000700 27-15 equ cuhist,448 control unit hist regs  001100 27-16 equ eishist,576 eis hist regs  001300 27-17 equ aphist,704 appending unit hist regs  001500 27-18 equ prs,832 pointer regs  001520 27-19 equ regs,848 sreg 001530 27-20 equ low_order_port,856 port to read clock from 001532 27-21 equ mctime,858 bootload memory clock  001540 27-22 equ scu,864  001550 27-23 equ mcm,872 memory masks 8 ports 001570 27-24 equ dbr,888  001572 27-25 equ intrpts,890 waiting interrupts 001573 27-26 equ bar,891 bar  001574 27-27 equ modereg,892 processor & cache mode registers  001576 27-28 equ faultreg,894 processor fault register  001600 27-29 equ ptrlen,896 pointer-lengths EIS 0 mod 8 001610 27-30 equ coreblocks,904 array of port information  27-31 " Bits 0-17 => num 1st 64-word block  27-32 " Bits 18-35 => num of 64-word blocks  27-33 " (-1) => no mem on this port  001620 27-34 equ lowport_cfg,912 Saved CFG from bootload SCU  27-35  002000 27-36 equ storlen,1024  27-37  27-38  27-39  27-40 " BOS COMMAND DIRECTORY 27-41 " Its length is "dirlen".  27-42  002000 27-43 equ dir,1024 ( 0-23) => sector # of first sector on BOS disk  27-44 " (24-35) => # of sectors in BOS common  002001 27-45 equ used,dir+1 ( 0-23) => # of next available sector on BOS disk  002002 27-46 equ useable,dir+2 ( 0-23) => first unavailable sector on BOS disk  002003 27-47 equ corearea,dir+3 ( 0-23) => starting sector of Multics core image  27-48 " (24-35) => # of sectors in Multics core image  002004 27-49 equ setuparea,dir+4 Sector and length of setup 002005 27-50 equ utilarea,dir+5 where utility package is kept  002010 27-51 equ iom_mxbase,dir+8 IOM IMW area address  002011 27-52 equ iom_mbbase,dir+9 IOM mailbox base  002012 27-53 equ bos_dvt,dir+10 BOS disk loc: (o3/iom,o6/chn,o9/drive,o18/devtype)  002013 27-54 equ unitgroup,dir+11 disk unitgroup (device no. or area no.)  002014 27-55 equ diskchanno,dir+12 channel to be used for disk  002015 27-56 equ tapechanno,dir+13 channel # for tapes  002016 27-57 equ rdrchanno,dir+14 channel number for card reader  002017 27-58 equ ttychanno,dir+15 channel # for operator's tty  002020 27-59 equ quietsw,dir+16 if on, don't print card and macro commands  002021 27-60 equ inputsw,dir+17 read from tty, cards, macros  002022 27-61 equ macroloc,dir+18 disk addr, buffer index of macro file  002023 27-62 equ fdump_state,dir+19 completion flag for last FDUMP  002024 27-63 equ d355_state,dir+20 = 1 if DataNet 355 loaded successfully  002025 27-64 equ skipsw,dir+21 if on, skip runcom lines 002026 27-65 equ ttypmtsw,dir+22 if on, prompt  002027 27-66 equ curtcmd,dir+23 current bos command 002030 27-67 equ readysw,dir+24 if on, print ready message  002032 27-68 equ cmdlst,dir+26 list of commands 27-69  000600 27-70 equ dirlen,384 27-71  27-72  27-73  27-74 " MACRO BUFFER AREA 27-75  002600 27-76 equ macrobuf,dir+dirlen io buffer for macro files 002700 27-77 equ macroline,macrobuf+64 runcom command line 002716 27-78 equ macroargs,macroline+14 argument descriptors for runcom  27-79  27-80  27-81  27-82 " CONFIGURATION CARD AREA  27-83 " Its length is 2048 words.  27-84  003000 27-85 equ conf,macrobuf+128 start of configuration info  007000 27-86 equ econf,conf+2048 end of configuration info  000020 27-87 equ confl,16 length of each line  27-88  27-89  007000 27-90 equ seg6length,econf length of bos_common area segment 27-91  27-92 " End of include file ...... bos_common.incl.alm  27-93  1000 include scr  28-1  28-2  28-3 "BEGIN INCLUDE FILE scr.incl.alm  28-4  28-5  28-6 "Created 09/28/82 1727.1 edt Tue by convert_include_file, 28-7 " Version of 07/15/82 2204.3 edt Thu.  28-8  28-9 "Made from >ldd>include>scr.incl.pl1,  28-10 " modified 06/03/82 1518.6 edt Thu  28-11  28-12  000000 28-13 equ SC_MR,0 " MANIFEST  000001 28-14 equ SC_CFG,1 " MANIFEST  000002 28-15 equ SC_MSK,2 " MANIFEST  000003 28-16 equ SC_IC,3 " MANIFEST  000004 28-17 equ SC_ETC,4 " MANIFEST  000006 28-18 equ SC_SU,6 " MANIFEST  28-19  28-20 "  28-21 " Structure scr_cfg1  28-22 "  000002 28-23 equ scr_cfg1_size,2  28-24  000000 28-25 equ scr_cfg1.mode_a_word,0 000041 28-26 equ scr_cfg1.mode_a_shift,33  000007 28-27 bool scr_cfg1.mode_a_mask,000007  000000 28-28 equ scr_cfg1.bdry_a_word,0 000036 28-29 equ scr_cfg1.bdry_a_shift,30  000007 28-30 bool scr_cfg1.bdry_a_mask,000007  000000 28-31 equ scr_cfg1.mode_b_word,0 000033 28-32 equ scr_cfg1.mode_b_shift,27  000007 28-33 bool scr_cfg1.mode_b_mask,000007  000000 28-34 equ scr_cfg1.bdry_b_word,0 000030 28-35 equ scr_cfg1.bdry_b_shift,24  000007 28-36 bool scr_cfg1.bdry_b_mask,000007  000000 28-37 equ scr_cfg1.int_word,0  000040 28-38 bool scr_cfg1.int,000040 " DU 000000 28-39 equ scr_cfg1.lwr_word,0  000020 28-40 bool scr_cfg1.lwr,000020 " DU 000000 28-41 equ scr_cfg1.addr_offset_word,0  000024 28-42 equ scr_cfg1.addr_offset_shift,20  000003 28-43 bool scr_cfg1.addr_offset_mask,000003  000000 28-44 equ scr_cfg1.port_no_word,0  000020 28-45 equ scr_cfg1.port_no_shift,16  000017 28-46 bool scr_cfg1.port_no_mask,000017  000000 28-47 equ scr_cfg1.port_enable_word,0  000016 28-48 equ scr_cfg1.port_enable_shift,14  000003 28-49 bool scr_cfg1.port_enable_mask,000003  28-50  000001 28-51 equ scr_cfg1.pima_word,1  000033 28-52 equ scr_cfg1.pima_shift,27 000777 28-53 bool scr_cfg1.pima_mask,000777 28-54  28-55 "  28-56 " Structure scr_cfg2  28-57 "  000002 28-58 equ scr_cfg2_size,2  28-59  000000 28-60 equ scr_cfg2.mask_a_assign_word,0  000033 28-61 equ scr_cfg2.mask_a_assign_shift,27  000777 28-62 bool scr_cfg2.mask_a_assign_mask,000777  000000 28-63 equ scr_cfg2.size_word,0  000030 28-64 equ scr_cfg2.size_shift,24 000007 28-65 bool scr_cfg2.size_mask,000007 000000 28-66 equ scr_cfg2.a_online_word,0  000040 28-67 bool scr_cfg2.a_online,000040 " DU 000000 28-68 equ scr_cfg2.a1_online_word,0  000020 28-69 bool scr_cfg2.a1_online,000020 " DU  000000 28-70 equ scr_cfg2.b_online_word,0  000010 28-71 bool scr_cfg2.b_online,000010 " DU 000000 28-72 equ scr_cfg2.b1_online_word,0  000004 28-73 bool scr_cfg2.b1_online,000004 " DU  000000 28-74 equ scr_cfg2.port_no_word,0  000020 28-75 equ scr_cfg2.port_no_shift,16  000017 28-76 bool scr_cfg2.port_no_mask,000017  000000 28-77 equ scr_cfg2.mode_word,0  040000 28-78 bool scr_cfg2.mode,040000 " DL 000000 28-79 equ scr_cfg2.nea_enabled_word,0  020000 28-80 bool scr_cfg2.nea_enabled,020000 " DL  000000 28-81 equ scr_cfg2.nea_word,0  000006 28-82 equ scr_cfg2.nea_shift,6  000177 28-83 bool scr_cfg2.nea_mask,000177  000000 28-84 equ scr_cfg2.int_word,0  000040 28-85 bool scr_cfg2.int,000040 " DL 000000 28-86 equ scr_cfg2.lwr_word,0  000020 28-87 bool scr_cfg2.lwr,000020 " DL 000000 28-88 equ scr_cfg2.port_mask_0_3_word,0  000000 28-89 equ scr_cfg2.port_mask_0_3_shift,0 000017 28-90 bool scr_cfg2.port_mask_0_3_mask,000017  28-91  000001 28-92 equ scr_cfg2.mask_b_assign_word,1  000033 28-93 equ scr_cfg2.mask_b_assign_shift,27  000777 28-94 bool scr_cfg2.mask_b_assign_mask,000777  000001 28-95 equ scr_cfg2.cyclic_prior_word,1  000010 28-96 equ scr_cfg2.cyclic_prior_shift,8  000177 28-97 bool scr_cfg2.cyclic_prior_mask,000177 000001 28-98 equ scr_cfg2.port_mask_4_7_word,1  000000 28-99 equ scr_cfg2.port_mask_4_7_shift,0 000017 28-100 bool scr_cfg2.port_mask_4_7_mask,000017  28-101  28-102 "  28-103 " Structure scr_mr  28-104 "  000002 28-105 equ scr_mr_size,2  28-106  28-107  000001 28-108 equ scr_mr.identification_word,1  000022 28-109 equ scr_mr.identification_shift,18 000017 28-110 bool scr_mr.identification_mask,000017 000001 28-111 equ scr_mr.TS_strobe_margin_word,1 000020 28-112 equ scr_mr.TS_strobe_margin_shift,16  000003 28-113 bool scr_mr.TS_strobe_margin_mask,000003  000001 28-114 equ scr_mr.G0_strobe_margin_word,1 000016 28-115 equ scr_mr.G0_strobe_margin_shift,14  000003 28-116 bool scr_mr.G0_strobe_margin_mask,000003  28-117 " equ scr_mr.ANSWER_strobe_margin_word,1  28-118 " equ scr_mr.ANSWER_strobe_margin_shift,12  28-119 " bool scr_mr.ANSWER_strobe_margin_mask,000003  000001 28-120 equ scr_mr.DA_strobe_margin_word,1 000012 28-121 equ scr_mr.DA_strobe_margin_shift,10  000003 28-122 bool scr_mr.DA_strobe_margin_mask,000003  000001 28-123 equ scr_mr.EOC_strobe_margin_word,1  000010 28-124 equ scr_mr.EOC_strobe_margin_shift,8  000003 28-125 bool scr_mr.EOC_strobe_margin_mask,000003  000001 28-126 equ scr_mr.PLUS_5_VOLT_margin_word,1  000006 28-127 equ scr_mr.PLUS_5_VOLT_margin_shift,6  000003 28-128 bool scr_mr.PLUS_5_VOLT_margin_mask,000003 000001 28-129 equ scr_mr.parity_override_word,1  000040 28-130 bool scr_mr.parity_override,000040 " DL  000001 28-131 equ scr_mr.parity_disable_word,1  000020 28-132 bool scr_mr.parity_disable,000020 " DL 000001 28-133 equ scr_mr.store_IA_disable_word,1 000010 28-134 bool scr_mr.store_IA_disable,000010 " DL  000001 28-135 equ scr_mr.ZAC_parity_error_word,1 000004 28-136 bool scr_mr.ZAC_parity_error,000004 " DL  000001 28-137 equ scr_mr.SGR_accepted_word,1 000002 28-138 bool scr_mr.SGR_accepted,000002 " DL  28-139  28-140 "  28-141 " Structure scr_msk 28-142 "  000002 28-143 equ scr_msk_size,2 28-144  000000 28-145 equ scr_msk.interrupt_mask_1_word,0  000024 28-146 equ scr_msk.interrupt_mask_1_shift,20  177777 28-147 bool scr_msk.interrupt_mask_1_mask,177777  000000 28-148 equ scr_msk.port_mask_1_word,0 000000 28-149 equ scr_msk.port_mask_1_shift,0  000017 28-150 bool scr_msk.port_mask_1_mask,000017  28-151  000001 28-152 equ scr_msk.interrupt_mask_2_word,1  000024 28-153 equ scr_msk.interrupt_mask_2_shift,20  177777 28-154 bool scr_msk.interrupt_mask_2_mask,177777  000001 28-155 equ scr_msk.port_mask_2_word,1 000000 28-156 equ scr_msk.port_mask_2_shift,0  000017 28-157 bool scr_msk.port_mask_2_mask,000017  28-158  28-159 "  28-160 " Structure scr_su  28-161 "  000002 28-162 equ scr_su_size,2  28-163  28-164  000001 28-165 equ scr_su.ZAC_line_word,1 000036 28-166 equ scr_su.ZAC_line_shift,30  000077 28-167 bool scr_su.ZAC_line_mask,000077  000001 28-168 equ scr_su.syndrome_word,1 000026 28-169 equ scr_su.syndrome_shift,22  000377 28-170 bool scr_su.syndrome_mask,000377  000001 28-171 equ scr_su.identification_word,1  000022 28-172 equ scr_su.identification_shift,18 000017 28-173 bool scr_su.identification_mask,000017 000001 28-174 equ scr_su.EDAC_disabled_word,1  400000 28-175 bool scr_su.EDAC_disabled,400000 " DL  000001 28-176 equ scr_su.MINUS_5_VOLT_margin_word,1  28-177 " equ scr_su.MINUS_5_VOLT_margin_shift,11  000003 28-178 bool scr_su.MINUS_5_VOLT_margin_mask,000003  000001 28-179 equ scr_su.PLUS_5_VOLT_margin_word,1  000011 28-180 equ scr_su.PLUS_5_VOLT_margin_shift,9  000003 28-181 bool scr_su.PLUS_5_VOLT_margin_mask,000003 000001 28-182 equ scr_su.spare_margin_word,1 000007 28-183 equ scr_su.spare_margin_shift,7  000003 28-184 bool scr_su.spare_margin_mask,000003  000001 28-185 equ scr_su.PLUS_19_VOLT_margin_word,1  28-186 " equ scr_su.PLUS_19_VOLT_margin_shift,5  000003 28-187 bool scr_su.PLUS_19_VOLT_margin_mask,000003  000001 28-188 equ scr_su.SENSE_strobe_margin_word,1  28-189 " equ scr_su.SENSE_strobe_margin_shift,2  000003 28-190 bool scr_su.SENSE_strobe_margin_mask,000003  28-191 " equ scr_su.maint_functions_enabled_word,1 000001 28-192 bool scr_su.maint_functions_enabled,000001 " DL  28-193  28-194 "END INCLUDE FILE scr.incl.alm 1001  1002 end  LITERALS 007720 aa 777777 770000 007721 aa 000000 200000 007722 aa 000001 000010 007723 aa 000003 100000 007724 aa 000000 010000 007725 aa 171717 171717 007726 aa 777717 202020 007727 aa 202020 224662 007730 aa 777777 770777 007731 aa 777777 777777 007732 aa 202020 204645 007733 aa 202020 462626 007734 aa 143154 157153 007735 aa 000003 641100 007736 aa 202020 202020 007737 aa 202020 202052 007740 aa 777717 777717 007741 aa 202020 202067 007742 aa 202020 202023 007743 aa 205064 312563 007744 aa 205125 212470 007745 aa 475146 444763 007746 aa 202020 636370 007747 aa 202321 512462 007750 aa 600000 000041 007751 aa 002012 000000 007752 aa 052052 052052 007753 aa 202020 202021 007754 aa 000007 777777 007755 aa 000000 002020 007756 aa 751717 171717 007757 aa 177177 177177 007760 aa 000000 000000 007761 aa 007777 777777 007762 aa 777777 777772 007763 aa 141717 171717 007764 aa 000077 777777 007765 aa 160162 160150 007766 aa 151157 155040 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 007767 5a 000003 000000 007770 5a 000025 600000 007771 aa 000000 000000 007772 55 000010 000002 007773 5a 000002 400003 007774 55 000006 000010 007775 aa 005 163 145 164 007776 aa 165 160 000 000 007777 55 000016 000003 010000 0a 001676 400000 010001 55 000013 000003 010002 aa 013 142 157 163 bos_version 010003 aa 137 166 145 162 010004 aa 163 151 157 156 010005 55 000002 000010 010006 6a 000000 400002 010007 55 000021 000003 010010 aa 014 163 171 155 symbol_table  010011 aa 142 157 154 137 010012 aa 164 141 142 154 010013 aa 145 000 000 000 DEFINITIONS HASH TABLE  010014 aa 000000 000015 010015 aa 000000 000000 010016 aa 000000 000000 010017 aa 000000 000000 010020 aa 000000 000000 010021 aa 000000 000000 010022 aa 000000 000000 010023 5a 000016 000000 010024 aa 000000 000000 010025 aa 000000 000000 010026 aa 000000 000000 010027 5a 000010 000000 010030 aa 000000 000000 010031 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  010032 aa 000001 000000 010033 aa 000000 000000 INTERNAL EXPRESSION WORDS LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 007767 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 113542 000007 aa 634633 734064 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000100 000002 000016 aa 000064 000000 000017 aa 000000 001437 000020 aa 000000 000635 000021 aa 000000 001403 000022 aa 001406 000635 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 115141 162164 000035 aa 151156 163157 000036 aa 156056 123171 000037 aa 163115 141151 000040 aa 156164 056141 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 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 000035 000066 aa 000252 000033 000067 aa 135426 203543 000070 aa 000000 113542 000071 aa 634634 600000 000072 aa 000261 000040 000073 aa 113400 415301 000074 aa 000000 111341 000075 aa 220414 400000 000076 aa 000271 000043 000077 aa 122721 301436 000100 aa 000000 112272 000101 aa 246253 000000 000102 aa 000302 000032 000103 aa 133556 614745 000104 aa 000000 113356 000105 aa 417635 200000 000106 aa 000311 000041 000107 aa 105543 476637 000110 aa 000000 110555 000111 aa 260135 200000 000112 aa 000322 000030 000113 aa 123154 505731 000114 aa 000000 112316 000115 aa 133412 600000 000116 aa 000330 000045 000117 aa 113400 415346 000120 aa 000000 111341 000121 aa 220451 000000 000122 aa 000342 000041 000123 aa 102324 451016 000124 aa 000000 110235 000125 aa 732232 200000 000126 aa 000353 000036 000127 aa 043243 126014 000130 aa 000000 103256 000131 aa 423767 600000 000132 aa 000363 000042 000133 aa 102324 451015 000134 aa 000000 110235 000135 aa 732226 600000 000136 aa 000374 000040 000137 aa 043243 126015 000140 aa 000000 103256 000141 aa 423767 600000 000142 aa 000404 000037 000143 aa 066146 212640 000144 aa 000000 106615 000145 aa 362665 600000 000146 aa 000414 000046 000147 aa 043243 125746 000150 aa 000000 103534 000151 aa 053307 400000 000152 aa 000426 000042 000153 aa 077023 320156 000154 aa 000000 107705 000155 aa 376652 600000 000156 aa 000437 000037 000157 aa 043243 126011 000160 aa 000000 103437 000161 aa 417732 000000 000162 aa 000447 000040 000163 aa 066146 212633 000164 aa 000000 106615 000165 aa 362664 600000 000166 aa 000457 000037 000167 aa 105543 476650 000170 aa 000000 110555 000171 aa 260173 000000 000172 aa 000467 000037 000173 aa 043243 126002 000174 aa 000000 103544 000175 aa 666020 200000 000176 aa 000477 000037 000177 aa 105543 476672 000200 aa 000000 110555 000201 aa 260245 400000 000202 aa 000507 000037 000203 aa 043243 125773 000204 aa 000000 103256 000205 aa 423770 400000 000206 aa 000517 000036 000207 aa 043243 125750 000210 aa 000000 102112 000211 aa 020622 000000 000212 aa 000527 000043 000213 aa 043243 127523 000214 aa 000000 101621 000215 aa 351624 000000 000216 aa 000540 000037 000217 aa 043243 126020 000220 aa 000000 102611 000221 aa 327743 600000 000222 aa 000550 000040 000223 aa 043243 125760 000224 aa 000000 101745 000225 aa 405242 200000 000226 aa 000560 000051 000227 aa 121622 277504 000230 aa 000000 112162 000231 aa 321572 600000 000232 aa 000573 000040 000233 aa 106702 126332 000234 aa 000000 110673 000235 aa 145242 400000 000236 aa 000603 000050 000237 aa 077322 074057 000240 aa 000000 107733 000241 aa 111401 000000 000242 aa 000615 000044 000243 aa 121622 277475 000244 aa 000000 112162 000245 aa 321563 400000 000246 aa 000626 000031 000247 aa 113021 605124 000250 aa 000000 111303 000251 aa 067552 200000 000252 aa 076163 160145 >spec>hard>MR11.0>setup.alm 000253 aa 143076 150141 000254 aa 162144 076115 000255 aa 122061 061056 000256 aa 060076 163145 000257 aa 164165 160056 000260 aa 141154 155040 000261 aa 076154 144144 >ldd>bos>include>bosequ.incl.alm  000262 aa 076142 157163 000263 aa 076151 156143 000264 aa 154165 144145 000265 aa 076142 157163 000266 aa 145161 165056 000267 aa 151156 143154 000270 aa 056141 154155 000271 aa 076154 144144 >ldd>bos>include>bos_toequ.incl.alm 000272 aa 076142 157163 000273 aa 076151 156143 000274 aa 154165 144145 000275 aa 076142 157163 000276 aa 137164 157145 000277 aa 161165 056151 000300 aa 156143 154056 000301 aa 141154 155040 000302 aa 076154 144144 >ldd>include>fgbx.incl.alm  000303 aa 076151 156143 000304 aa 154165 144145 000305 aa 076146 147142 000306 aa 170056 151156 000307 aa 143154 056141 000310 aa 154155 040040 000311 aa 076154 144144 >ldd>bos>include>bos_sdw.incl.alm  000312 aa 076142 157163 000313 aa 076151 156143 000314 aa 154165 144145 000315 aa 076142 157163 000316 aa 137163 144167 000317 aa 056151 156143 000320 aa 154056 141154 000321 aa 155040 040040 000322 aa 076154 144144 >ldd>include>mc.incl.alm  000323 aa 076151 156143 000324 aa 154165 144145 000325 aa 076155 143056 000326 aa 151156 143154 000327 aa 056141 154155 000330 aa 076154 144144 >ldd>bos>include>getportinfo.incl.alm  000331 aa 076142 157163 000332 aa 076151 156143 000333 aa 154165 144145 000334 aa 076147 145164 000335 aa 160157 162164 000336 aa 151156 146157 000337 aa 056151 156143 000340 aa 154056 141154 000341 aa 155040 040040 000342 aa 076154 144144 >ldd>bos>include>rdclock.incl.alm  000343 aa 076142 157163 000344 aa 076151 156143 000345 aa 154165 144145 000346 aa 076162 144143 000347 aa 154157 143153 000350 aa 056151 156143 000351 aa 154056 141154 000352 aa 155040 040040 000353 aa 076154 144144 >ldd>bos>include>scan.incl.alm  000354 aa 076142 157163 000355 aa 076151 156143 000356 aa 154165 144145 000357 aa 076163 143141 000360 aa 156056 151156 000361 aa 143154 056141 000362 aa 154155 040040 000363 aa 076154 144144 >ldd>bos>include>nextline.incl.alm  000364 aa 076142 157163 000365 aa 076151 156143 000366 aa 154165 144145 000367 aa 076156 145170 000370 aa 164154 151156 000371 aa 145056 151156 000372 aa 143154 056141 000373 aa 154155 040040 000374 aa 076154 144144 >ldd>bos>include>search.incl.alm  000375 aa 076142 157163 000376 aa 076151 156143 000377 aa 154165 144145 000400 aa 076163 145141 000401 aa 162143 150056 000402 aa 151156 143154 000403 aa 056141 154155 000404 aa 076154 144144 >ldd>bos>include>rwdev.incl.alm 000405 aa 076142 157163 000406 aa 076151 156143 000407 aa 154165 144145 000410 aa 076162 167144 000411 aa 145166 056151 000412 aa 156143 154056 000413 aa 141154 155040 000414 aa 076154 144144 >ldd>bos>include>config_cards.incl.alm  000415 aa 076142 157163 000416 aa 076151 156143 000417 aa 154165 144145 000420 aa 076143 157156 000421 aa 146151 147137 000422 aa 143141 162144 000423 aa 163056 151156 000424 aa 143154 056141 000425 aa 154155 040040 000426 aa 076154 144144 >ldd>include>fs_dev_types.incl.alm  000427 aa 076151 156143 000430 aa 154165 144145 000431 aa 076146 163137 000432 aa 144145 166137 000433 aa 164171 160145 000434 aa 163056 151156 000435 aa 143154 056141 000436 aa 154155 040040 000437 aa 076154 144144 >ldd>bos>include>rwsec.incl.alm 000440 aa 076142 157163 000441 aa 076151 156143 000442 aa 154165 144145 000443 aa 076162 167163 000444 aa 145143 056151 000445 aa 156143 154056 000446 aa 141154 155040 000447 aa 076154 144144 >ldd>bos>include>rwdisk.incl.alm  000450 aa 076142 157163 000451 aa 076151 156143 000452 aa 154165 144145 000453 aa 076162 167144 000454 aa 151163 153056 000455 aa 151156 143154 000456 aa 056141 154155 000457 aa 076154 144144 >ldd>bos>include>error.incl.alm 000460 aa 076142 157163 000461 aa 076151 156143 000462 aa 154165 144145 000463 aa 076145 162162 000464 aa 157162 056151 000465 aa 156143 154056 000466 aa 141154 155040 000467 aa 076154 144144 >ldd>bos>include>readc.incl.alm 000470 aa 076142 157163 000471 aa 076151 156143 000472 aa 154165 144145 000473 aa 076162 145141 000474 aa 144143 056151 000475 aa 156143 154056 000476 aa 141154 155040 000477 aa 076154 144144 >ldd>bos>include>readt.incl.alm 000500 aa 076142 157163 000501 aa 076151 156143 000502 aa 154165 144145 000503 aa 076162 145141 000504 aa 144164 056151 000505 aa 156143 154056 000506 aa 141154 155040 000507 aa 076154 144144 >ldd>bos>include>octwd.incl.alm 000510 aa 076142 157163 000511 aa 076151 156143 000512 aa 154165 144145 000513 aa 076157 143164 000514 aa 167144 056151 000515 aa 156143 154056 000516 aa 141154 155040 000517 aa 076154 144144 >ldd>bos>include>conv.incl.alm  000520 aa 076142 157163 000521 aa 076151 156143 000522 aa 154165 144145 000523 aa 076143 157156 000524 aa 166056 151156 000525 aa 143154 056141 000526 aa 154155 040040 000527 aa 076154 144144 >ldd>include>eis_micro_ops.incl.alm 000530 aa 076151 156143 000531 aa 154165 144145 000532 aa 076145 151163 000533 aa 137155 151143 000534 aa 162157 137157 000535 aa 160163 056151 000536 aa 156143 154056 000537 aa 141154 155040 000540 aa 076154 144144 >ldd>bos>include>strip.incl.alm 000541 aa 076142 157163 000542 aa 076151 156143 000543 aa 154165 144145 000544 aa 076163 164162 000545 aa 151160 056151 000546 aa 156143 154056 000547 aa 141154 155040 000550 aa 076154 144144 >ldd>bos>include>getcon.incl.alm  000551 aa 076142 157163 000552 aa 076151 156143 000553 aa 154165 144145 000554 aa 076147 145164 000555 aa 143157 156056 000556 aa 151156 143154 000557 aa 056141 154155 000560 aa 076154 144144 >ldd>bos>include>bos_iom_manager.incl.alm  000561 aa 076142 157163 000562 aa 076151 156143 000563 aa 154165 144145 000564 aa 076142 157163 000565 aa 137151 157155 000566 aa 137155 141156 000567 aa 141147 145162 000570 aa 056151 156143 000571 aa 154056 141154 000572 aa 155040 040040 000573 aa 076154 144144 >ldd>bos>include>intflt.incl.alm  000574 aa 076142 157163 000575 aa 076151 156143 000576 aa 154165 144145 000577 aa 076151 156164 000600 aa 146154 164056 000601 aa 151156 143154 000602 aa 056141 154155 000603 aa 076154 144144 >ldd>bos>include>check_cpu_type.incl.alm  000604 aa 076142 157163 000605 aa 076151 156143 000606 aa 154165 144145 000607 aa 076143 150145 000610 aa 143153 137143 000611 aa 160165 137164 000612 aa 171160 145056 000613 aa 151156 143154 000614 aa 056141 154155 000615 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000616 aa 076142 157163 000617 aa 076151 156143 000620 aa 154165 144145 000621 aa 076142 157163 000622 aa 137143 157155 000623 aa 155157 156056 000624 aa 151156 143154 000625 aa 056141 154155 000626 aa 076154 144144 >ldd>include>scr.incl.alm  000627 aa 076151 156143 000630 aa 154165 144145 000631 aa 076163 143162 000632 aa 056151 156143 000633 aa 154056 141154 000634 aa 155040 040040 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  5622 abnormal_return bos_iom_manager: 476, 481. 5750 absarea intflt: 39, 45, 46, 82, 183. 20 absi bos_toequ: 75. 1445 abstra setup: 711, 714.  5651 abs_base_addr bos_iom_manager: 22, 109, 534.  5063 abtable strip: 9, 41.  100 amptwptr setup: 875, bos_common: 11. 0 amptwregs setup: 787, 876,  bos_common: 10. 400 amsdwptr setup: 873, bos_common: 13. 200 amsdwregs setup: 874, bos_common: 12. 1300 aphist setup: 882, bos_common: 17. 1721 arg setup: 512, 527, 570, 571, 585, 638, 643, 647, 652, 664, 956, scan: 17, 56, 59, 62, 76, 79, 82, 89, 96, 115, 122, nextline: 126, 147, 221, 227, 234, 241, 259. 17 arglen setup: 504, 956, 958, 960,  bosequ: 17, scan: 17, 21, 25, 106.  2531 arg_count scan: 129, 184.  4267 asge error: 98, 375.  4301 asgetab error: 55, 84, 381, 391.  1573 bar setup: 846, 901,  bos_common: 26. 1315 bcl setup: 515, 604, 616. 2 bf bosequ: 9. 5652 bootload_cpu_port bos_iom_manager: 18, 282, 536.  10 bosentry setup: 73, 83.  7700 bos_dbr setup: 736, bos_toequ: 95. 2012 bos_dvt setup: 758, rwsec: 33, bos_common: 53. 7660 bos_pr setup: 735, bos_toequ: 82. 1676 bos_version setup: 484, 485, 945, 947.  1702 bound setup: 525, 537, 539, 952.  1136 bready setup: 476, 589, 755. 1 bulkdevt fs_dev_types: 8.  1 BULK_cd.frec config_cards: 30.  2 BULK_cd.nrec config_cards: 31.  3170 bulk_dvt fs_dev_types: 32.  5034 bzedit conv: 55, 62.  5023 bzel conv: 52. 5032 bzin conv: 52, 54, 60. 5033 bzout conv: 56, 57, 61. 13 cache_off setup: 92, 109.  7647 cctrsw2 check_cpu_type: 12, 15, 17.  4463 cdbuff readc: 17, 21, 34, 110.  404 cfg_mask_mask setup: 154, 312.  5615 channel_ptr bos_iom_manager: 459, 473. 100 chans bos_iom_manager: 33, 37, 49, 62, 70, 140, 360, 363, 486.  5670 checkstat_nostat_sw bos_iom_manager: 172, 176, 192, 566. 5333 checkstat_status_waits bos_iom_manager: 191, 194. 7641 check_cpu_type setup: 789, getportinfo: 29, intflt: 98, check_cpu_type: 10.  5521 check_special_status readc: 91, readt: 134, bos_iom_manager: 372, 390. 5315 check_status rwdisk: 126, error: 296, 329,  readc: 96, readt: 38, 46,  bos_iom_manager: 175, 472. 5316 check_status_1 bos_iom_manager: 173, 177, 274.  5313 check_status_no_stat bos_iom_manager: 171.  3 CHNL_cd.chn config_cards: 27.  2 CHNL_cd.iom config_cards: 26.  4 CHNL_cd.nchan config_cards: 28.  1 CHNL_cd.sub config_cards: 25.  420 cht eis_micro_ops: 17.  5527 cksp_x2 bos_iom_manager: 373, 381. 2032 cmdlst setup: 622, 625, 633, search: 18, 19,  bos_common: 68. 6 com setup: 364, 371, 376, 378, 385, 395, 399, 453, 456, 460, 462, 463,  464, 469, 476, 501, 528, 535, 548, 553, 577, 582, 622, 625,  648, 655, 656, 680, 684, 700, 744, 748, 753, 758,  bosequ: 14, getportinfo: 27, 64, 83, rdclock: 28, 30,  nextline: 13, 38, 40, 63, 103, 116, 132, 135, 176, 178, 182, 186,  212, 229, 236, 243, 248, 250, 255, 258, 262, 270, 271, 273,  275, search: 20, 27,  rwsec: 33, rwdisk: 54, error: 340, 342, 351, readc: 13, readt: 23, 32,  getcon: 17, 38,  bos_iom_manager: 36, 44, 51, 81, 82, 88, 99, 103, 123, 300, 347.  1171 comerr setup: 496, 519, 641, 645, 654. 3000 conf getcon: 16, bos_common: 85, 86.  20 confl getcon: 19, bos_common: 87. 2 connect_channel bos_iom_manager: 141, 146, 511.  5260 connect_iom rwdisk: 121, 207,  error: 290, 326,  readt: 35, 43,  bos_iom_manager: 117, 469. 5261 connect_join bos_iom_manager: 119.  1407 contin setup: 605, 607, 677. 2003 corearea setup: 378, 385, 399, 684, 700, bos_common: 47. 1610 coreblocks getportinfo: 27, 83,  bos_common: 30. 60000 coresaved bos_toequ: 43, 65.  1 cow setup: 257, bos_toequ: 127. 1000 cowsav setup: 337, 745,  bos_toequ: 142. 4215 cr error: 263, 306, 316, 318.  1140 cready setup: 423, 427, 439, 478.  700 cuhist setup: 880, bos_common: 15. 2027 curtcmd setup: 501, 528,  readt: 23, bos_common: 66. 2146 cv_clock rdclock: 18. 1174 cycle setup: 477, 494, 500, 635, 649, 657, 668, 671, 674. 2024 d355_state bos_common: 63. 1741 darg setup: 661, 958,  scan: 21, 64, 66, 69, 88, 95, 136. 2276 date rdclock: 89, 110, 144. 2253 datecv rdclock: 46, 51, 78, 86, 106. 2316 datedit rdclock: 90, 151.  2275 datenum rdclock: 106, 109, 143. 2250 datx2 rdclock: 19, 20, 101. 1570 dbr setup: 845, 900,  bos_common: 24. 5627 DCW bos_iom_manager: 437, 442, 446, 453, 521.  5655 dcw_reloc_flag bos_iom_manager: 73, 101, 542.  1364 delete setup: 613, 652.  576 devid setup: 248, 322, 757, bos_toequ: 140. 2000 dir setup: 362, 368, 369, 371, 633, search: 19, 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 setup: 346, 360, 367, 451, 580, 678,  bos_toequ: 145. 600 dirlen setup: 633, search: 19, bos_common: 70, 76.  2014 diskchanno bos_common: 55. 3606 disk_brief rwdisk: 143, 238.  3 DISK_cd.chn config_cards: 20.  2 DISK_cd.iom config_cards: 19.  5 DISK_cd.model config_cards: 22.  4 DISK_cd.nchan config_cards: 21.  6 DISK_cd.ndrives config_cards: 23.  1 DISK_cd.sub config_cards: 18,  rwdisk: 54. 25 disk_read rwdisk: 25, 242.  42 disk_restore rwdisk: 245, 259.  34 disk_seek rwdisk: 244, 261.  22 disk_status rwdisk: 179, 246.  31 disk_write rwdisk: 35, 243.  600 dprog setup: 238, 240, 329. 6 drl setup: 712, intflt: 12. 0 ds setup: 543, 545, 560, 561, 562, 563, 564, 565, 765, 767,  bosequ: 7, bos_iom_manager: 25.  7700 dseg setup: 732, bos_toequ: 96. 6 dsu181devt fs_dev_types: 15.  5 dsu190devt fs_dev_types: 14.  4 dsu191devt fs_dev_types: 13.  1761 earg setup: 506, 507, 960, scan: 26, 102, 139, nextline: 151, 155.  7000 econf getcon: 20, bos_common: 86, 90.  1100 eishist setup: 881, bos_common: 16. 40 enf error: 252, eis_micro_ops: 2.  4045 erbuf error: 54, 162, 187, 198, 203, 207, 226. 4063 erbuf_last error: 199, 204, 227, readt: 115. 4033 erct error: 195, 207.  4042 ercv error: 219. 4144 eredit_d error: 114, 252.  4151 eredit_n error: 121, 255.  4147 eredit_o error: 121, 136, 254. 3631 erjn error: 17, 221.  4132 erkey error: 62, 242.  4131 erlen error: 23, 39, 240. 3645 erloop error: 36, 59, 65, 166.  3774 ernomov error: 158, 164.  3667 ernot error: 50, 61.  4102 erpad error: 185, 231.  4034 erpend error: 191, 209, 215. 4007 erprnt error: 37, 40, 181. 4015 erprnt_full error: 182, 189.  3630 erpt setup: 421, 435, 482, 496, 628, nextline: 118, rwdisk: 153, 169, 195, error: 15, 343,  readc: 87. 4127 errarg error: 44, 48, 53, 72, 82, 93, 109, 238.  4037 erreq error: 200, 213.  4130 errin error: 19, 28, 43, 63, 239. 3762 errmov error: 152. 4104 errnum error: 110, 113, 132, 135, 235. 3711 errstrip error: 86, 95.  4106 errtemp error: 83, 87, 94, 102, 115, 137, 145, 161, 236. 3754 errtrim error: 88, 105, 118, 140, 144. 4035 errx3 error: 17, 210.  3704 err_A error: 80, 243.  3721 err_a error: 98, 249.  3726 err_d error: 108, 248.  3714 err_G error: 91, 244.  3722 err_g error: 101, 250.  3737 err_n error: 121, 247.  3741 err_o error: 125, 246.  3744 err_ow error: 122, 126, 131. 3743 err_w error: 129, 245.  4101 ersw error: 15, 184, 190, 220, 230. 4134 ertable error: 76, 243.  4126 ertally error: 64, 75, 147, 149, 150, 153, 154, 156, 157, 164, 165, 237.  17 exec intflt: 15, 65.  1132 execint setup: 459, 466, 740. 6030 exintpair intflt: 64, 143.  5744 exloc intflt: 25, 77, 88. 1576 faultreg setup: 718, 851,  bos_common: 28. 1 fault_channel bos_iom_manager: 58, 62, 249, 510. 5660 fault_dcw bos_iom_manager: 545, 546, 548.  5656 fault_lpw bos_iom_manager: 57, 61, 544.  2023 fdump_state setup: 376, bos_common: 62. 5 fgb bosequ: 13. 20000 fgbx.alert setup: 431, fgbx: 37. 77 fgbx.bos_entry_mask setup: 417, fgbx: 39. 0 fgbx.bos_entry_shift fgbx: 38. 200000 fgbx.call_bos fgbx: 34. 2 fgbx.cpus fgbx: 24. 400000 fgbx.flags fgbx: 20. 0 fgbx.flags_word setup: 670, 673,  fgbx: 19. 40 fgbx.fnp_blast fgbx: 45. 16 fgbx.hc_dbr fgbx: 43. 40000 fgbx.mess setup: 426, 428,  fgbx: 36. 20 fgbx.message setup: 441, fgbx: 44. 571 fgbx.ports_mask fgbx: 27. 34 fgbx.ports_shift fgbx: 26. 3 fgbx.rtb setup: 113, 114, 117, 416, 425, 429,  fgbx: 31. 4 fgbx.sentinel fgbx: 41. 100000 fgbx.shut fgbx: 35. 1 fgbx.slt_segno fgbx: 22. 400000 fgbx.ssenb fgbx: 33. 14 fgbx.sst_sdw fgbx: 42. 7 fgbx.tags_mask fgbx: 29. 25 fgbx.tags_shift fgbx: 28. 100 fgbx_size fgbx: 17. 1113 fgmsdesc setup: 437, 441.  5634 FIMW bos_iom_manager: 247, 528. 2000 firmware_bit bosequ: 20. 1372 flag setup: 615, 660.  20 flagbox setup: 103, 416, 425, 429, 441, 670, 673. 1405 flagon setup: 666, 673.  1701 fltloc setup: 400, 401, 408, 685, 686, 695, 951. 5721 fltloop intflt: 52, 58.  1177 fndc setup: 504, 588, 601. 3310 fs_dev.amaxio fs_dev_types: 141.  3236 fs_dev.cyl_per_dev fs_dev_types: 83.  3202 fs_dev.dev_type_names fs_dev_types: 45,  rwdisk: 59. 7 fs_dev.max_dev_type rwdev: 6, 20,  fs_dev_types: 43.  3211 fs_dev.media_removable fs_dev_types: 54.  3156 fs_dev.models fs_dev_types: 18, 29. 3170 fs_dev.modelx fs_dev_types: 31.  3263 fs_dev.mult_sect_per_cyl fs_dev_types: 114. 12 fs_dev.n_models fs_dev_types: 29.  3301 fs_dev.rec_per_dev fs_dev_types: 132.  3272 fs_dev.rem_per_cyl fs_dev_types: 123.  3245 fs_dev.sect_per_cyl fs_dev_types: 92.  3220 fs_dev.sect_per_dev fs_dev_types: 65.  3254 fs_dev.sect_per_track fs_dev_types: 101.  3227 fs_dev.track_per_cyl fs_dev_types: 74.  2072 full_mem getportinfo: 75, 78, 82. 100 fvloc setup: 164, 167, 217, 224, 398, 683, 709, 712,  intflt: 9, 56, 61, 62, 65. 5053 gbtable error: 146, strip: 30, 36.  4736 geas conv: 13. 4745 geastab conv: 18, 23.  4765 geastabu conv: 28. 5124 getcon1 getcon: 17, 21.  5123 getconf rdclock: 26, getcon: 16, 35,  bos_iom_manager: 78.  5126 getmore getcon: 19, 39,  bos_iom_manager: 84, 86, 91.  5132 getperiph getcon: 30. 2020 getportinfo setup: 394, 468, 576, getportinfo: 23. 5440 get_imws bos_iom_manager: 180, 299, 336.  5542 get_interrupt_common bos_iom_manager: 398, 408. 2073 get_next_port getportinfo: 52, 85.  5537 get_special_interrupt error: 359, bos_iom_manager: 396.  5541 get_status_interrupt bos_iom_manager: 405.  2124 get_table getportinfo: 43, 72, 126. 5746 gotflt intflt: 79, 80, 95. 2114 gpir getportinfo: 24, 108.  2114 gpi_return getportinfo: 92, 107.  4720 hexloop octwd: 36, 46.  4715 hexwd rwdisk: 183, 187, 191, octwd: 32. 4733 hexx2 octwd: 32, 48.  5672 hist_on intflt: 18, 73, 86, 94, 155. 1454 iappend setup: 357, 447, 573, 728.  5626 IDCW bos_iom_manager: 439, 456, 465, 467, 470, 520. 10 if0 error: 254, 255,  eis_micro_ops: 19.  4 if1 eis_micro_ops: 20.  2 if2 eis_micro_ops: 21.  1 if3 eis_micro_ops: 22.  300 ign eis_micro_ops: 12.  5244 iiox2 bos_iom_manager: 13, 79, 93.  1400 imbx setup: 251, 252, 253, 254, 256, 257, 259, bos_toequ: 67. 5673 initint setup: 739, intflt: 23. 5737 initintl intflt: 69, 71.  5170 initmbx bos_iom_manager: 38, 45. 1503 initret1 setup: 729, 760.  5145 init_io setup: 750, bos_iom_manager: 13.  2021 inputsw setup: 456, 460, 462, nextline: 13, 248, 250, 255, 258, 273, 275, error: 340, 342,  bos_common: 60. 220 insa eis_micro_ops: 9.  200 insb eis_micro_ops: 8.  20 insm rdclock: 151, 152,  error: 254, 255,  eis_micro_ops: 1.  240 insn eis_micro_ops: 10.  260 insp rdclock: 151, 152,  eis_micro_ops: 11.  1625 inst setup: 803, 804, 805, 824, 825, 826, 871. 5750 interentry intflt: 84, 145.  6200 intflt_amptwptr intflt: 33, 172, 203. 6100 intflt_amptwregs intflt: 173, 200.  6500 intflt_amsdwptr intflt: 170, 209.  6300 intflt_amsdwregs intflt: 171, 206.  7420 intflt_aphist intflt: 178, 224.  7020 intflt_cuhist intflt: 176, 220.  7220 intflt_eishist intflt: 177, 222.  7640 intflt_mode intflt: 232. 6620 intflt_ouhist intflt: 29, 175, 218. 7630 intflt_ptrlen intflt: 87, 91, 159, 230.  7620 intflt_regs intflt: 85, 97, 158, 167, 228. 6600 intflt_scu intflt: 213. 6610 intflt_scuignore intflt: 140, 144, 150, 156, 160, 168, 214. 6015 intl68 intflt: 126, 128.  6064 intno intflt: 163, 195.  6034 intpair intflt: 68, 150.  1572 intrpts setup: 859, 907,  bos_common: 25. 6065 intrpts1 setup: 741, intflt: 166, 197.  6017 intscpr1 intflt: 130, 133.  6011 intscpr2 intflt: 124, 135.  6040 intset intflt: 151, 158.  6063 int_inst intflt: 112, 113, 114, 129, 130, 131, 188. 5764 int_sam1 intflt: 100. 5771 int_sam2 intflt: 103, 105, 118. 5773 int_sam3 intflt: 107, 116.  6000 int_sam4 intflt: 110, 112.  6053 int_sam5 intflt: 105, 170.  6057 int_scpr intflt: 128, 174, 180. 3 iombx.dcw bos_iom_manager: 42, 107, 506.  0 iombx.lpw bos_iom_manager: 40, 110, 127, 141, 146, 348, 503.  1 iombx.lpwx bos_iom_manager: 41, 130, 504.  2 iombx.scw bos_iom_manager: 39, 505. 5650 iomno bos_iom_manager: 238, 257, 338, 361, 362, 532. 2 ioms bos_iom_manager: 33, 37, 49, 83, 363, 485. 1 iom_cow setup: 746, bos_iom_manager: 89, 145, 490.  2011 iom_mbbase setup: 744, bos_iom_manager: 36, 44, 88, 99, 123, 347, bos_common: 52. 2010 iom_mxbase setup: 748, bos_iom_manager: 51, 103, 300,  bos_common: 51. 200 iom_status bos_iom_manager: 33, 49, 133, 134, 190, 195, 196, 261, 499.  271 ioprog setup: 180, 183, 197, 247, 270. 5425 iowait bos_iom_manager: 273, 279, 389.  5620 io_x2 bos_iom_manager: 426, 478, 482.  1305 isrun setup: 523, 591.  0 ivloc intflt: 10, 69.  2102 L68 getportinfo: 88, 94.  1560 l68 setup: 821, 823.  113 labsarea intflt: 37, 183.  1703 line setup: 570, 592, 593, 597, 621, 624, 627, 630, 631, 954,  scan: 39, 138, 190, nextline: 46, 57, 78, 84, 95, 142, 156, 165, 166, 215,  readc: 28, 64,  readt: 15, 79, 86, 87, 95, 111, 112, 152.  1331 list setup: 609, 620.  1333 listl setup: 622, 634.  1346 listx setup: 623, 632.  5005 ljust conv: 34. 251 lkp_done setup: 97, 221.  350 lkp_scu setup: 287, 288, 298. 16 lkp_tra setup: 97, 216.  2000 lnbf bos_toequ: 57, 61, 104. 7000 lncom bos_toequ: 60, 63, 116, 136.  40 lnds setup: 733, bos_toequ: 54, 55, 98. 100 lnflagbox setup: 103, bos_toequ: 52, 113.  777777 lnmem bos_toequ: 45, 119.  27000 lnpgm setup: 530, 763,  bos_toequ: 65, 101.  10000 lnsetup bos_toequ: 48, 58, 107. 6026 lockfltpair intflt: 60, 139.  7 lockup setup: 164, 167, 217, 224, 407, 691, 694, 709,  intflt: 14, 52, 61. 324 locsav setup: 165, 223, 291, 406, 692. 1620 lowport_cfg setup: 866, 916,  bos_common: 34. 1530 low_order_port setup: 395, 469, 577, getportinfo: 64, bos_common: 20. 406 low_port_x0 setup: 148, 152, 162, 206, 315, 396, 470, 578.  5632 LPW bos_iom_manager: 118, 126, 525.  11 lpwr setup: 253, bos_toequ: 128. 5633 LPWX bos_iom_manager: 23, 28, 129, 526. 1114 lstart setup: 78, 190, 446. 400 lte rdclock: 151, error: 252, 254, 255, conv: 62, eis_micro_ops: 16.  2716 macroargs nextline: 103, bos_common: 78. 2600 macrobuf nextline: 182, 186,  bos_common: 76, 77, 85. 2700 macroline bos_common: 77, 78.  2022 macroloc setup: 463, nextline: 38, 40, 63, 176, 178, 270,  bos_common: 61. 0 mainc setup: 42, 43.  10000 maxw bos_toequ: 72. 1001 mbbasesav setup: 340, 743,  bos_toequ: 143. 575 mbxloc setup: 237, 239, 319, bos_toequ: 139. 300000 mc.cpu_type_mask mc: 22. 3 mc.cpu_type_shift mc: 25. 46 mc.cpu_type_word mc: 21. 50 mc.eis_info mc: 11. 43 mc.errcode mc: 17. 46 mc.ext_fault_reg mc: 23. 77774 mc.ext_fault_reg_mask mc: 24. 45 mc.fault_reg mc: 19. 46 mc.fault_time mc: 20. 44 mc.fim_temp mc: 18. 42 mc.ips_temp mc: 16. 40 mc.mask mc: 15. 0 mc.prs mc: 8. 20 mc.regs mc: 9. 30 mc.scu mc: 10. 30 mc.scu.apu_stat_word mc: 48. 35 mc.scu.ca_word mc: 207. 32 mc.scu.cpu_no_word mc: 138. 35 mc.scu.cpu_tag_word mc: 231. 35 mc.scu.cu_stat_word mc: 211. 32 mc.scu.delta_word mc: 144. 30 mc.scu.fault_cntr_word mc: 66. 31 mc.scu.fault_data_word mc: 74. 34 mc.scu.ilc_word mc: 182. 34 mc.scu.indicators_word mc: 186. 31 mc.scu.port_stat_word mc: 108. 30 mc.scu.ppr.prr_word mc: 33. 30 mc.scu.ppr.psr_word mc: 38. 30 mc.scu.ppr.p_word mc: 43. 33 mc.scu.tpr.tbr_word mc: 174. 32 mc.scu.tpr.trr_word mc: 128. 32 mc.scu.tpr.tsr_word mc: 133. 33 mc.scu.tsr_stat_word mc: 152. 1550 mcm setup: 863, 913,  bos_common: 23. 1623 mcsavret setup: 783, 868.  1532 mctime setup: 854, bos_common: 21. 7 mem setup: 382, 391, 396, 470, 505, 559, 578, 704, 709, 712, 746, bosequ: 15, bos_iom_manager: 33, 39, 40, 41, 42, 49, 55, 89, 107, 110, 127,  130, 133, 134, 141, 145, 146, 190, 195, 196, 261, 301,  303, 308, 313, 348, 349, 352, intflt: 56, 61, 62, 65, 69. 160 mflc eis_micro_ops: 7.  140 mfls error: 252, eis_micro_ops: 6.  1574 modereg setup: 849, 903,  bos_common: 27. 2302 montab rdclock: 23, 56, 74, 81, 149. 2112 more_ports getportinfo: 100, 103.  360 mors eis_micro_ops: 15.  340 mses eis_micro_ops: 14.  4 msu0400devt fs_dev_types: 12.  3 msu0450devt fs_dev_types: 11.  3 msu0451devt fs_dev_types: 10.  2 msu0500devt fs_dev_types: 9.  7 msu0501devt fs_dev_types: 16.  11 mulentry setup: 76, 86.  320 mvc rdclock: 151, 152,  error: 253, 254, 255, conv: 62, eis_micro_ops: 13.  120 mvza eis_micro_ops: 5.  100 mvzb rdclock: 151, error: 254, 255,  conv: 62, eis_micro_ops: 4.  1002 mxbasesav setup: 343, 747,  bos_toequ: 144. 14 nbc setup: 514, 616.  402 new_cfg setup: 155, 161, 309. 2540 nextline setup: 502, nextline: 9. 4 nint_scpr intflt: 122, 180.  2543 nlagain nextline: 13, 124, 223, 230, 237, 244, 251, 260, 263, 278.  3064 nlbuf nextline: 70, 138, 141, 201, 287. 2615 nlbufdesc nextline: 70, 121.  2554 nlcd nextline: 17, 26.  2734 nlget nextline: 48, 56, 171. 2752 nlgx2 nextline: 171, 189.  3062 nllen nextline: 52, 54, 80, 106, 193, 195, 196, 205, 284. 2600 nlloop nextline: 54, 59.  2563 nlma nextline: 18, 38.  2606 nlmae nextline: 55, 61.  2701 nlmpr nextline: 117, 135.  2660 nlmpt nextline: 86, 92, 116, 130, 206. 2705 nlmpx nextline: 133, 136, 140, 149.  2711 nlmx nextline: 128, 147.  3063 nlno nextline: 88, 90, 96, 98, 154, 159, 160, 162, 203, 204, 285. 3046 nlnocard nextline: 219, 254, 265. 2750 nlnoload nextline: 174, 186.  3033 nlnotty nextline: 247, 253.  3017 nlnp nextline: 233, 239.  3025 nlnq nextline: 240, 246.  3011 nlnr nextline: 226, 232.  2771 nlpt nextline: 28, 66, 212. 3061 nlraw nextline: 65, 218, 276, 282.  2775 nlscan nextline: 23, 34, 143, 167, 213, 217.  3053 nlsw nextline: 22, 27, 39, 273.  3051 nlswma nextline: 50, 270.  2551 nltty nextline: 16, 21.  3046 nlx nextline: 9, 10, 11, 31, 32, 33, 266, 277.  2654 nlxdesc nextline: 104, 110.  2622 nlxloop nextline: 77, 114.  2754 nlxpand nextline: 82, 108, 193. 5340 none_waiting bos_iom_manager: 186, 193, 201.  5574 non_data_transfer bos_iom_manager: 428, 451. 5513 noovh bos_iom_manager: 344, 353, 360.  5143 noperiph getcon: 36, 44.  216 nosav setup: 177, 182.  5423 nostatus bos_iom_manager: 203, 272. 204 noswap1 setup: 129, 166.  211 noswap2 setup: 172, 174.  5715 notrel intflt: 41, 47.  2054 not_low_port getportinfo: 57, 66.  2162 no_clok_card rdclock: 27, 33.  5400 no_spec_int bos_iom_manager: 226, 229, 232, 245. 5355 no_stat_call bos_iom_manager: 209, 212, 218.  4 nscpr setup: 817, 884.  2557 nxtlinea setup: 600, nextline: 31. 4735 octtemp octwd: 15, 23, 42, 44, 51. 4676 octwd error: 131, octwd: 8. 4713 octx2 octwd: 8, 24.  1670 opnmsk setup: 935. 5476 oqsdesc bos_iom_manager: 335, 343. 5505 oqsrpt bos_iom_manager: 351, 358. 20000 origbf bos_toequ: 58, 61, 103. 22000 origcom setup: 718, 780, 781, 787, 814, 839, 843, 845, 846, 849, 851, 854,  859, 863, 866, 873, 874, 875, 876, 879, 880, 881, 882, 898,  900, 901, 903, 907, 913, 916, 920, 924, 927, bos_toequ: 61, 63, 115, 136.  7740 origds setup: 733, bos_toequ: 55, 97.  10020 origflagbox setup: 101, 113, 114, 117,  bos_toequ: 51, 112.  0 origmem bos_toequ: 46, 118.  31000 origpgm bos_toequ: 63, 64, 65, 100.  10000 origsetup setup: 69, 70, 72, 73, 75, 76, 78, 81, 84, 87, 97, 101,  107, 108, 109, 110, 111, 120, 125, 126, 128, 129, 131, 133,  138, 143, 146, 148, 150, 152, 153, 154, 155, 161, 162, 165,  166, 171, 172, 173, 174, 176, 177, 180, 183, 185, 186, 188,  189, 190, 197, 199, 201, 203, 204, 206, 210, 214, 216, 223,  226, 229, 230, 231, 232, 237, 238, 239, 240, 242, 248, 269,  270, 287, 288, 353, 355, 357, 380, 382, 396, 447, 470, 505,  559, 570, 571, 573, 578, 714, 715, 717, 720, 721, 729, 732,  735, 736, 761, 783, 789, 794, 796, 801, 803, 804, 805, 807,  809, 821, 823, 824, 825, 826, 828, 830, 832, 835, 838, 842,  848, 853, 856, 862, 865, 905, 910, 914, 917, 921, 925, bos_toequ: 49, 51, 55, 58, 106. 500 ouhist setup: 814, 879,  bos_common: 14. 5474 overhead_loop bos_iom_manager: 340, 364. 4 overhead_qlth bos_iom_manager: 351, 514, 549, 550, 557, 558. 5470 overhead_queue_search bos_iom_manager: 221, 248, 334, 377. 4000 ovflm bos_toequ: 76. 3 PART_cd.drive config_cards: 11.  1 PART_cd.name config_cards: 9.  2 PART_cd.sub config_cards: 10.  5624 PCW bos_iom_manager: 462, 464, 470, 518. 0 pcw bos_toequ: 126. 3 pgm setup: 561, 564, 565, 568, 737, bosequ: 10, bos_iom_manager: 25, 433, intflt: 73, 77, 79, 85, 86, 87, 88, 91, 92, 93, 94, 95,  97, 98, 103, 105, 110, 112, 113, 114, 116, 118, 126, 128,  129, 130, 131, 133, 135, 136, 140, 141, 144, 145, 147, 148,  150, 151, 155, 156, 158, 159, 160, 163, 166, 167, 168, 170,  171, 172, 173, 175, 176, 177, 178. 31000 pgmorg bos_toequ: 64. 5141 phx2 getcon: 31, 41, 44. 5371 process_special_status bos_iom_manager: 223, 235, 379.  5406 process_system_fault bos_iom_manager: 250, 255. 3 PRPH_cd.chn config_cards: 15.  2 PRPH_cd.iom config_cards: 14.  4 PRPH_cd.model config_cards: 16.  1 PRPH_cd.sub config_cards: 13.  1500 prs setup: 780, 898,  bos_common: 18. 1600 ptrlen setup: 781, 927,  bos_common: 29. 2020 quietsw nextline: 135, 212, 229, bos_common: 59. 4344 rcb readc: 16, 94.  3340 rd181 rwdev: 15, rwdisk: 23. 3340 rd190 rwdev: 14, rwdisk: 22. 3340 rd400 rwdev: 13, rwdisk: 21. 3340 rd450 rwdev: 12, rwdisk: 20. 3340 rd500 rwdev: 11, rwdisk: 19. 3340 rd501 rwdev: 16, rwdisk: 24. 3337 rdbulk setup: 984, rwdev: 10. 2321 rdc.days rdclock: 97, 154.  2330 rdc.months rdclock: 84, 156.  4433 rdcchk readc: 76, 84.  4350 rdccnv readc: 21, 82.  4361 rdccol readc: 33, 69.  4411 rdcend readc: 57, 62.  4456 rdceof readc: 23, 85, 101. 4422 rdcerr readc: 19, 74.  4513 rdcfirst readc: 25, 84, 101, 111.  2270 rdclock.day_name setup: 490, rdclock: 98, 132.  2272 rdclock.day_of_century rdclock: 49, 93, 136. 2266 rdclock.day_of_month setup: 492, rdclock: 77, 128.  2267 rdclock.day_of_week rdclock: 96, 130.  2261 rdclock.hr setup: 486, rdclock: 50, 118.  2262 rdclock.min setup: 487, rdclock: 41, 120.  2264 rdclock.month setup: 491, rdclock: 83, 124.  2265 rdclock.month_name rdclock: 85, 126.  2263 rdclock.sec setup: 488, rdclock: 39, 122.  2271 rdclock.year setup: 479, rdclock: 60, 71, 134. 2274 rdclock.zone_name setup: 489, rdclock: 31, 140.  2273 rdclock.zone_temp rdclock: 29, 47, 138. 4367 rdcnum readc: 40, 45.  4514 rdcstat readc: 74, 89, 112. 4435 rdcstop readc: 79, 87.  2300 rdctime rdclock: 18, 34, 91, 100, 147. 4462 rdcval readc: 35, 36, 37, 42, 47, 53, 60, 63, 109. 4446 rdcwait readc: 91, 98, 99. 4400 rdczone readc: 51, 56.  4515 rdczonetab readc: 59, 114.  4407 rdczonly readc: 48, 59.  3115 rdev rwdev: 4, rwsec: 43. 2016 rdrchanno nextline: 262, readc: 13, bos_common: 57. 4420 rdrtn readc: 11, 71, 102. 3317 rdsec setup: 370, 402, 452, 549, 555, 687, 703, nextline: 181, rwsec: 16. 4644 rdte readt: 98, 115.  4622 rdtl readt: 94, 113.  2145 rd_clock setup: 478, rdclock: 16. 4341 readcd nextline: 26, readc: 11. 4461 readno readc: 14, 18, 92, 108.  4525 readtty nextline: 21, 123,  readt: 10. 2030 readysw setup: 476, nextline: 236, bos_common: 67. 2037 read_sw_1 getportinfo: 34, 42.  5304 reconnect bos_iom_manager: 143, 150. 1520 regs setup: 839, 920,  bos_common: 19. 1200 reldesc setup: 505, 510.  5705 relop intflt: 39, 48.  1352 rename setup: 611, 638.  4004 resetar error: 171, 175.  1636 restormc setup: 715, 893.  37 rewpu bos_toequ: 69, 98, 101, 104, 107, 113, 116, 119.  5014 rjust error: 101, conv: 43. 2 ROOT_cd.drive config_cards: 7.  1 ROOT_cd.sub config_cards: 6.  237 rsmcm setup: 210, 214.  6036 rstart_hist intflt: 141, 153.  4537 rttyag readt: 23, 41, 128, 137.  4652 rttyer1 readt: 66, 126.  4647 rttyerr readt: 49, 122.  4557 rttynp readt: 33, 43.  4546 rttynplp readt: 26, 30.  4541 rttyplp readt: 25, 29.  4645 rttyx2 readt: 10, 73, 117. 4674 rtydcw readt: 17, 44, 152. 4675 rtylen readt: 50, 57, 58, 62, 70, 81, 83, 84, 97, 100, 103, 154.  4672 rtypcw readt: 20, 44, 149. 4663 rtypmt readt: 12, 31, 138, 146.  4670 rtypmtdcw readt: 14, 36, 145. 4666 rtypmtpcw readt: 21, 36, 141. 4000 runcom_bit bosequ: 19. 1672 runcom_run setup: 596, 938.  3147 rwdtab rwdev: 8, 22, 32. 3573 rwiaddr rwdisk: 163, 173, 227. 3414 rwibll rwdisk: 100, 106.  3423 rwiblx rwdisk: 102, 108.  3570 rwichan rwdisk: 148, 157, 224. 3601 rwichanno rwdisk: 71, 76, 127, 146, 179, 232.  3566 rwicmd rwdisk: 48, 171, 222. 3576 rwidetail rwdisk: 178, 182, 185, 189, 230. 3567 rwidevno rwdisk: 74, 158, 223. 3441 rwiend rwdisk: 135, 216.  3443 rwierr rwdisk: 129, 133, 142. 3561 rwifatal rwdisk: 205, 213.  3602 rwihex rwdisk: 184, 188, 193, 197, 198, 199, 234. 3571 rwiiom rwdisk: 151, 156, 225. 3613 rwilist rwdisk: 46, 78, 79, 92, 100, 109, 113, 122, 161, 260.  3610 rwipcw rwdisk: 69, 80, 122, 209, 253. 3612 rwirestore rwdisk: 81, 258.  3572 rwisect rwdisk: 167, 172, 226. 3605 rwiseekaddr rwdisk: 66, 95, 111, 165, 235, 262.  3552 rwiskiper rwdisk: 144, 180, 201. 3574 rwistat rwdisk: 142, 174, 175, 214, 229. 3565 rwiti rwdisk: 65, 221.  3600 rwitrys rwdisk: 120, 202, 203, 231.  3441 rwix2 rwdisk: 42, 136, 213. 3344 rwi_common rwdisk: 26, 36, 41. 3626 rwi_disk_name rwdisk: 60, 155, 266. 3612 rwi_reseek rwdisk: 209, 257.  3433 rwi_retry rwdisk: 124, 210.  3627 rwi_sub_name rwdisk: 55, 159, 267. 3331 rwsarg rwsec: 25, 28, 34. 3335 rwskl rwsec: 32, 41.  3333 rwsx2 rwsec: 30, 37.  3322 rws_common rwsec: 18, 23.  1524 sam1 setup: 791. 1531 sam2 setup: 794, 796, 809. 1533 sam3 setup: 798, 807.  1540 sam4 setup: 801, 803.  1626 sam5 setup: 796, 873.  400 saved_cfg setup: 146, 153, 203, 307, 865, 917.  1514 savemc setup: 353, 777.  2116 save_switches getportinfo: 49, 89, 98, 114.  314 savint setup: 133, 226, 278, 856, 910. 120 savmach setup: 81, 84, 87, 107.  15 savsw setup: 95, 120, 176, 188, 201, 355.  2423 scalph1 scan: 75, 172.  2426 scalph2 scan: 79, 175.  2444 scalph3 scan: 93, 98, 177. 2344 scan scan: 12, nextline: 125, 217.  1313 scanc setup: 586, 600.  2536 scar4 scan: 12, 130, 189. 2535 scatemp scan: 99, 140, 188. 2533 scchar scan: 40, 42, 61, 68, 81, 186.  2434 scdec scan: 88, 178.  2537 scdesc6 scan: 23, 190.  2516 scdisp scan: 52, 169.  2370 scget scan: 34, 38.  2400 scgo scan: 36, 48.  2363 scl1 scan: 32, 72, 85, 119, 170. 2364 scl2 scan: 33, 110, 125. 2457 scminus1 scan: 114, 173.  2464 scminus2 scan: 121, 179.  2405 scnum1 scan: 56, 171.  2407 scnum2 scan: 59, 174.  2437 scnum3 scan: 92, 176.  1632 scpr setup: 823, 878, 884. 1562 scpr1 setup: 825, 828.  1554 scpr2 setup: 818, 835.  2470 scret scan: 107, 128, 180. 3 scr_cfg1.addr_offset_mask scr: 43.  24 scr_cfg1.addr_offset_shift scr: 42.  0 scr_cfg1.addr_offset_word scr: 41.  7 scr_cfg1.bdry_a_mask scr: 30. 36 scr_cfg1.bdry_a_shift scr: 29. 0 scr_cfg1.bdry_a_word scr: 28. 7 scr_cfg1.bdry_b_mask scr: 36. 30 scr_cfg1.bdry_b_shift scr: 35. 0 scr_cfg1.bdry_b_word scr: 34. 40 scr_cfg1.int scr: 38. 0 scr_cfg1.int_word scr: 37. 20 scr_cfg1.lwr scr: 40. 0 scr_cfg1.lwr_word scr: 39. 7 scr_cfg1.mode_a_mask scr: 27. 41 scr_cfg1.mode_a_shift scr: 26. 0 scr_cfg1.mode_a_word scr: 25. 7 scr_cfg1.mode_b_mask scr: 33. 33 scr_cfg1.mode_b_shift scr: 32. 0 scr_cfg1.mode_b_word scr: 31. 777 scr_cfg1.pima_mask scr: 53. 33 scr_cfg1.pima_shift scr: 52. 1 scr_cfg1.pima_word scr: 51. 3 scr_cfg1.port_enable_mask scr: 49.  16 scr_cfg1.port_enable_shift scr: 48.  0 scr_cfg1.port_enable_word scr: 47.  17 scr_cfg1.port_no_mask scr: 46. 20 scr_cfg1.port_no_shift scr: 45. 0 scr_cfg1.port_no_word scr: 44. 2 scr_cfg1_size scr: 23. 20 scr_cfg2.a1_online scr: 69. 0 scr_cfg2.a1_online_word scr: 68. 40 scr_cfg2.a_online scr: 67. 0 scr_cfg2.a_online_word scr: 66. 4 scr_cfg2.b1_online scr: 73. 0 scr_cfg2.b1_online_word scr: 72. 10 scr_cfg2.b_online scr: 71. 0 scr_cfg2.b_online_word scr: 70. 177 scr_cfg2.cyclic_prior_mask scr: 97.  10 scr_cfg2.cyclic_prior_shift scr: 96.  1 scr_cfg2.cyclic_prior_word scr: 95.  40 scr_cfg2.int scr: 85. 0 scr_cfg2.int_word scr: 84. 20 scr_cfg2.lwr scr: 87. 0 scr_cfg2.lwr_word scr: 86. 777 scr_cfg2.mask_a_assign_mask scr: 62.  33 scr_cfg2.mask_a_assign_shift scr: 61.  0 scr_cfg2.mask_a_assign_word scr: 60.  777 scr_cfg2.mask_b_assign_mask scr: 94.  33 scr_cfg2.mask_b_assign_shift scr: 93.  1 scr_cfg2.mask_b_assign_word scr: 92.  40000 scr_cfg2.mode scr: 78. 0 scr_cfg2.mode_word scr: 77. 20000 scr_cfg2.nea_enabled scr: 80. 0 scr_cfg2.nea_enabled_word scr: 79.  177 scr_cfg2.nea_mask scr: 83. 6 scr_cfg2.nea_shift scr: 82. 0 scr_cfg2.nea_word scr: 81. 17 scr_cfg2.port_mask_0_3_mask scr: 90.  0 scr_cfg2.port_mask_0_3_shift scr: 89.  0 scr_cfg2.port_mask_0_3_word scr: 88.  17 scr_cfg2.port_mask_4_7_mask scr: 100.  0 scr_cfg2.port_mask_4_7_shift scr: 99.  1 scr_cfg2.port_mask_4_7_word scr: 98.  17 scr_cfg2.port_no_mask setup: 157, scr: 76. 20 scr_cfg2.port_no_shift setup: 156, scr: 75. 0 scr_cfg2.port_no_word scr: 74. 7 scr_cfg2.size_mask scr: 65. 30 scr_cfg2.size_shift scr: 64. 0 scr_cfg2.size_word scr: 63. 2 scr_cfg2_size scr: 58. 3 scr_mr.DA_strobe_margin_mask scr: 122.  12 scr_mr.DA_strobe_margin_shift scr: 121.  1 scr_mr.DA_strobe_margin_word scr: 120.  3 scr_mr.EOC_strobe_margin_mask scr: 125.  10 scr_mr.EOC_strobe_margin_shift scr: 124. 1 scr_mr.EOC_strobe_margin_word scr: 123.  3 scr_mr.G0_strobe_margin_mask scr: 116.  16 scr_mr.G0_strobe_margin_shift scr: 115.  1 scr_mr.G0_strobe_margin_word scr: 114.  2 scr_mr.id.4mw setup: 35, 149.  17 scr_mr.identification_mask scr: 110.  22 scr_mr.identification_shift scr: 109.  1 scr_mr.identification_word scr: 108.  20 scr_mr.parity_disable scr: 132. 1 scr_mr.parity_disable_word scr: 131.  40 scr_mr.parity_override scr: 130. 1 scr_mr.parity_override_word scr: 129.  3 scr_mr.PLUS_5_VOLT_margin_mask scr: 128. 6 scr_mr.PLUS_5_VOLT_margin_shift scr: 127. 1 scr_mr.PLUS_5_VOLT_margin_word scr: 126. 2 scr_mr.SGR_accepted scr: 138. 1 scr_mr.SGR_accepted_word scr: 137.  10 scr_mr.store_IA_disable scr: 134. 1 scr_mr.store_IA_disable_word scr: 133.  3 scr_mr.TS_strobe_margin_mask scr: 113.  20 scr_mr.TS_strobe_margin_shift scr: 112.  1 scr_mr.TS_strobe_margin_word scr: 111.  4 scr_mr.ZAC_parity_error scr: 136. 1 scr_mr.ZAC_parity_error_word scr: 135.  2 scr_mr_size scr: 105. 177777 scr_msk.interrupt_mask_1_mask scr: 147.  24 scr_msk.interrupt_mask_1_shift scr: 146. 0 scr_msk.interrupt_mask_1_word scr: 145.  177777 scr_msk.interrupt_mask_2_mask scr: 154.  24 scr_msk.interrupt_mask_2_shift scr: 153. 1 scr_msk.interrupt_mask_2_word scr: 152.  17 scr_msk.port_mask_1_mask scr: 150.  0 scr_msk.port_mask_1_shift scr: 149.  0 scr_msk.port_mask_1_word scr: 148.  17 scr_msk.port_mask_2_mask scr: 157.  0 scr_msk.port_mask_2_shift scr: 156.  1 scr_msk.port_mask_2_word scr: 155.  2 scr_msk_size scr: 143. 400000 scr_su.EDAC_disabled scr: 175. 1 scr_su.EDAC_disabled_word scr: 174.  17 scr_su.identification_mask scr: 173.  22 scr_su.identification_shift scr: 172.  1 scr_su.identification_word scr: 171.  1 scr_su.maint_functions_enabled scr: 192. 3 scr_su.MINUS_5_VOLT_margin_mask scr: 178. 1 scr_su.MINUS_5_VOLT_margin_word scr: 176. 3 scr_su.PLUS_19_VOLT_margin_mask scr: 187. 1 scr_su.PLUS_19_VOLT_margin_word scr: 185. 3 scr_su.PLUS_5_VOLT_margin_mask scr: 181. 11 scr_su.PLUS_5_VOLT_margin_shift scr: 180. 1 scr_su.PLUS_5_VOLT_margin_word scr: 179. 3 scr_su.SENSE_strobe_margin_mask scr: 190. 1 scr_su.SENSE_strobe_margin_word scr: 188. 3 scr_su.spare_margin_mask scr: 184.  7 scr_su.spare_margin_shift scr: 183.  1 scr_su.spare_margin_word scr: 182.  377 scr_su.syndrome_mask scr: 170. 26 scr_su.syndrome_shift scr: 169. 1 scr_su.syndrome_word scr: 168. 77 scr_su.ZAC_line_mask scr: 167. 36 scr_su.ZAC_line_shift scr: 166. 1 scr_su.ZAC_line_word scr: 165. 2 scr_su_size scr: 162. 2532 scsign scan: 92, 104, 114, 185.  2475 scstartf scan: 57, 77, 116, 136.  2512 scstate scan: 49, 163.  2534 sctype scan: 45, 47, 187. 2502 sctypes scan: 44, 153.  1540 scu setup: 843, 924,  bos_common: 22. 2000 scu.apu.dsptw mc: 57. 10 scu.apu.fabs mc: 64. 20 scu.apu.fanp mc: 63. 40 scu.apu.fap mc: 62. 4000 scu.apu.pi_ap mc: 56. 200 scu.apu.ptw mc: 60. 100 scu.apu.ptw2 mc: 61. 20000 scu.apu.ptwm mc: 54. 10000 scu.apu.pt_on mc: 55. 100000 scu.apu.sdwm mc: 52. 1000 scu.apu.sdwnp mc: 58. 400 scu.apu.sdwp mc: 59. 40000 scu.apu.sd_on mc: 53. 200000 scu.apu.xsf mc: 51. 0 scu.apu_stat_word mc: 49. 22 scu.ca_shift mc: 209. 5 scu.ca_word mc: 208. 700 scu.con_chan_mask mc: 117. 6 scu.con_chan_shift mc: 118. 700 scu.cpu_no_mask mc: 141. 2 scu.cpu_no_word mc: 139. 6 scu.cpu_shift mc: 142. 7 scu.cpu_tag_mask mc: 234. 5 scu.cpu_tag_word mc: 232. 100 scu.cu.if mc: 229. 1000 scu.cu.poa mc: 226. 10000 scu.cu.pon mc: 221. 20000 scu.cu.pot mc: 220. 100000 scu.cu.rd mc: 217. 400000 scu.cu.rf mc: 214. 400 scu.cu.rfi setup: 716, mc: 227. 40000 scu.cu.rl mc: 218. 200000 scu.cu.rpt mc: 216. 4000 scu.cu.xde mc: 223. 2000 scu.cu.xdo mc: 224. 5 scu.cu_stat_word setup: 717, mc: 212. 77 scu.delta_mask mc: 147. 2 scu.delta_word mc: 145. 36 scu.even_inst_word mc: 239. 7 scu.fault_cntr_mask mc: 69. 0 scu.fault_cntr_word mc: 67. 1 scu.fault_data_word mc: 75. 10 scu.fd.am_er mc: 91. 200 scu.fd.boc mc: 87. 40 scu.fd.crt mc: 89. 100000 scu.fd.e_off mc: 79. 100000 scu.fd.ia_im mc: 102. 100 scu.fd.inret mc: 88. 200000 scu.fd.ioc mc: 101. 20000 scu.fd.ipr mc: 104. 400000 scu.fd.iro mc: 77. 400000 scu.fd.isn mc: 100. 40000 scu.fd.isp mc: 103. 10000 scu.fd.nea mc: 105. 2000 scu.fd.no_ga mc: 84. 400 scu.fd.ocall mc: 86. 1000 scu.fd.ocb mc: 85. 200000 scu.fd.oeb mc: 78. 400000 scu.fd.onc_1 mc: 96. 200000 scu.fd.onc_2 mc: 97. 4000 scu.fd.oobb mc: 106. 4 scu.fd.oosb mc: 92. 40000 scu.fd.orb mc: 80. 10000 scu.fd.owb mc: 82. 1 scu.fd.parl mc: 94. 2 scu.fd.paru mc: 93. 20 scu.fd.ralr mc: 90. 20000 scu.fd.r_off mc: 81. 4000 scu.fd.w_off mc: 83. 1 scu.fi_flag_mask mc: 123. 76 scu.fi_num_mask mc: 120. 1 scu.fi_num_shift mc: 121. 1 scu.fltint_num intflt: 160, 191.  76 scu.fltint_num_mask intflt: 161, 192.  1 scu.fltint_num_shift intflt: 162, 193.  7000 scu.iac_mask mc: 114. 11 scu.iac_shift mc: 115. 170000 scu.ial_mask mc: 111. 14 scu.ial_shift mc: 112. 22 scu.ilc_shift mc: 184. 4 scu.ilc_word setup: 125, 126,  mc: 183. 4 scu.indicators_word mc: 187. 20 scu.ir.abs setup: 81, 84, 87, mc: 202. 200 scu.ir.bm setup: 81, 84, 87, mc: 199. 100000 scu.ir.carry mc: 191. 20000 scu.ir.eovf mc: 193. 10000 scu.ir.eufl mc: 194. 10 scu.ir.hex mc: 203. 40 scu.ir.mif mc: 201. 200000 scu.ir.neg mc: 190. 4000 scu.ir.oflm mc: 195. 40000 scu.ir.ovfl mc: 192. 1000 scu.ir.par mc: 197. 400 scu.ir.parm mc: 198. 2000 scu.ir.tro mc: 196. 100 scu.ir.tru mc: 200. 400000 scu.ir.zero mc: 189. 37 scu.odd_inst_word mc: 241. 1 scu.port_stat_word mc: 109. 400000 scu.ppr.p mc: 45. 700000 scu.ppr.prr_mask mc: 35. 41 scu.ppr.prr_shift mc: 36. 0 scu.ppr.prr_word mc: 34. 77777 scu.ppr.psr_mask mc: 40. 22 scu.ppr.psr_shift mc: 41. 0 scu.ppr.psr_word mc: 39. 0 scu.ppr.p_word mc: 44. 77 scu.tpr.tbr_mask mc: 177. 3 scu.tpr.tbr_word mc: 175. 700000 scu.tpr.trr_mask mc: 130. 41 scu.tpr.trr_shift mc: 131. 2 scu.tpr.trr_word mc: 129. 77777 scu.tpr.tsr_mask mc: 135. 22 scu.tpr.tsr_shift mc: 136. 2 scu.tpr.tsr_word mc: 134. 700000 scu.tsna.prn_mask mc: 159. 17 scu.tsna.prn_shift mc: 160. 40000 scu.tsna.prv mc: 161. 740000 scu.tsna_mask mc: 158. 34000 scu.tsnb.prn_mask mc: 164. 13 scu.tsnb.prn_shift mc: 165. 2000 scu.tsnb.prv mc: 166. 36000 scu.tsnb_mask mc: 163. 1600 scu.tsnc.prn_mask mc: 169. 7 scu.tsnc.prn_shift mc: 170. 100 scu.tsnc.prv mc: 171. 13 scu.tsnc_mask mc: 168. 777700 scu.tsr_stat_mask mc: 155. 6 scu.tsr_stat_shift mc: 156. 3 scu.tsr_stat_word mc: 153. 2010 scuinfo setup: 966, intflt: 147. 322 scurcu setup: 166, 287, 693, 708.  14 scwr setup: 251, bos_toequ: 124. 2473 scx0 scan: 13, 131.  1 SC_CFG setup: 151, 205,  scr: 14. 4 SC_ETC scr: 17. 3 SC_IC scr: 16. 0 SC_MR setup: 147, scr: 13. 2 SC_MSK scr: 15. 6 SC_SU scr: 18. 14 sdw.add_shift bos_sdw: 4. 377770 sdw.bound setup: 544, 766,  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. 3102 search setup: 518, 639, 644, 653,  search: 15. 7700 seg0 bos_toequ: 97. 7702 seg1 bos_toequ: 100. 7704 seg2 bos_toequ: 103. 7706 seg3 bos_toequ: 106. 7710 seg4 bos_toequ: 109. 7712 seg5 bos_toequ: 112. 7714 seg6 bos_toequ: 115. 7000 seg6length setup: 347, bos_common: 90. 7716 seg7 bos_toequ: 118. 60 ses error: 254, 255,  eis_micro_ops: 3.  3777 setar error: 80, 91, 169. 1505 setone setup: 374, 466, 575, 763.  1004 setup setup: 189, 352.  2004 setuparea bos_common: 49. 5577 set_idcw bos_iom_manager: 449, 455. 5246 set_overhead_channel bos_iom_manager: 59, 63, 67, 71, 98.  5254 set_overhead_dcw bos_iom_manager: 102, 106. 2043 set_word getportinfo: 47, 91, 105. 3111 shfnd search: 21, 26.  3113 shx0 search: 16, 23, 28. 5644 SIMW bos_iom_manager: 220, 228, 241, 376, 386, 530. 2125 size_code_table getportinfo: 36, 131.  2135 size_code_table_dps8 getportinfo: 31, 144.  5726 skipflt intflt: 53, 55, 57. 1573 skipl68 setup: 830, 832, 834. 2025 skipsw setup: 464, nextline: 116, 132, 271, bos_common: 64. 235 skip_mask_restore setup: 204, 207.  202 skip_mask_set setup: 150, 163.  6 special_channel bos_iom_manager: 66, 70, 222, 378, 512.  5664 special_dcw bos_iom_manager: 553, 554, 556.  5667 special_handler bos_iom_manager: 74, 225, 397, 563. 5662 special_lpw bos_iom_manager: 65, 69, 552.  110 special_status_queue bos_iom_manager: 495, 557, 558.  313 statmsk setup: 269, 273.  2 statq setup: 256, 259,  bos_toequ: 125. 5666 status_handler bos_iom_manager: 75, 208, 211, 215, 406, 560. 5653 status_lock error: 345, bos_iom_manager: 202, 204, 270, 538. 5654 status_mask bos_iom_manager: 197, 540. 5420 stat_x0 bos_iom_manager: 206, 252, 268.  5421 stat_x2 bos_iom_manager: 207, 269. 5630 stop_dcw bos_iom_manager: 452, 522, 523.  5631 stop_lpw bos_iom_manager: 31, 523. 2000 storlen bos_common: 36. 5035 stripa strip: 9. 5050 stripg error: 86, 277,  strip: 30. 5036 stripj strip: 11, 31.  151 svmcm setup: 137, 143.  261 swap setup: 173, 185, 199, 236, 721. 262 swapl setup: 237, 242.  200 swaplen setup: 236, 329,  bos_toequ: 137, 139, 140, 141.  14 swapsw setup: 94, 128, 171, 174, 186. 7 switchentry setup: 70, 80.  2123 switches_4 getportinfo: 40, 76, 94, 96, 124. 2117 sw_store_1 getportinfo: 46, 116.  2120 sw_store_2 getportinfo: 30, 118.  2121 sw_store_3 getportinfo: 102, 120.  2122 sw_store_4 getportinfo: 38, 122.  100 system_fault_queue bos_iom_manager: 494, 549, 550.  2015 tapechanno bos_common: 56. 320 tclock setup: 131, 284, 853. 225 tcont setup: 195, 720.  5052 tctally strip: 14, 17, 21, 34.  1674 temp setup: 942. 5460 test_imw bos_iom_manager: 184, 227, 322, 342, 385.  5530 test_special bos_iom_manager: 383.  5321 test_status bos_iom_manager: 182, 210. 12 thist_off setup: 91, 108.  4 timer intflt: 13, 54, 62. 4655 timer_off readt: 124, 130.  5640 TIMW bos_iom_manager: 179, 185, 265, 529. 326 tmcm setup: 138, 210, 295, 862, 914. 316 tmode setup: 107, 230, 231, 281, 848, 905.  1 tmp setup: 403, 407, 410, 533, 543, 545, 550, 556, 560, 562, 563, 688,  691, 694, 697, 765, 767, bosequ: 8. 7660 toec setup: 37, 43.  1000 toelen setup: 380, bos_toequ: 135, 139, 140, 141, 142, 143, 144, 145.  31000 toesaved setup: 386, 388, 391, 701, 702, 704,  bos_toequ: 136. 360 treg setup: 110, 111, 229, 301, 838, 921.  370 tscu setup: 69, 72, 75, 125, 126, 232, 304, 717, 842, 925.  1077 tstmsg setup: 419, 425.  4225 ttyalert setup: 433, error: 324. 577 ttychan setup: 326, 752,  bos_toequ: 141. 2017 ttychanno setup: 753, error: 351, bos_common: 58. 4247 ttyinit setup: 754, error: 350. 4265 ttyir error: 350, 367.  4214 ttyno error: 297, 305, 330, 352, 360, 364,  readt: 39, 47, 135. 2026 ttypmtsw nextline: 243, readt: 32, bos_common: 65. 4245 ttyrqst error: 346, 358.  4202 tyag error: 288, 290, 294, 299.  4226 tyalcon error: 326, 332.  4220 tyapcw error: 313, 327, 355. 4234 tyax2 error: 324, 334.  4222 tydcw error: 265, 266, 272, 285, 287, 293, 316. 4171 tydesc error: 269, 275, 278. 4216 typcw error: 291, 310, 354, readt: 19. 4153 type setup: 413, nextline: 137, 214,  error: 206, 213, 261, readt: 52, 126, 131. 4212 typex2 error: 261, 301.  4236 tyrq error: 338, 360.  4246 tyrqx error: 338, 347.  6032 unexpair intflt: 51, 147.  5754 unexpflt intflt: 91, 148.  2013 unitgroup bos_common: 54. 2002 useable bos_common: 46. 2001 used bos_common: 45. 2005 utilarea setup: 535, 548,  bos_common: 50. 12000 utilorg bosequ: 22. 5747 wantflt intflt: 80, 92.  3342 wd181 rwdev: 29, rwdisk: 33. 3342 wd190 rwdev: 28, rwdisk: 32. 3342 wd400 rwdev: 27, rwdisk: 31. 3342 wd450 rwdev: 26, rwdisk: 30. 3342 wd500 rwdev: 25, rwdisk: 29. 3342 wd501 rwdev: 30, rwdisk: 34. 4277 wd6 error: 380, 383, 387, conv: 13, 16.  4300 wd9 error: 376, 379, 388, conv: 17, 20.  3132 wdev rwdev: 18, rwsec: 42. 3337 wtbulk setup: 985, rwdev: 24. 3321 wtsec setup: 363, 381, 390, 409, 581, 679, 696, rwsec: 20. 5550 xio_wait rwdisk: 177, error: 362, readc: 16, bos_iom_manager: 426.  4 xs1 bosequ: 11. 5 xs2 bosequ: 12. 1700 year_temp setup: 481, 493, 950. 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