ASSEMBLY LISTING OF SEGMENT >spec>h>3.17>runcom.alm ASSEMBLED ON: 11/29/83 1532.3 mst Tue OPTIONS USED: list ASSEMBLED BY: ALM Version 6.6 November 1982 ASSEMBLER CREATED: 09/21/83 1227.3 mst Wed  1 " ***********************************************************  2 " * *  3 " * Copyright, (C) Honeywell Information Systems Inc., 1982 *  4 " * *  5 " ***********************************************************  6 "runcom print name to print file  7 "runcom run name to start executing name  8 "runcom skip name to skip through macro file, execution starts when go is typed  9  10 " Modified 9/17/75 by Noel I. Morris  11  12  13 " ******************************************************  14 " * *  15 " * *  16 " * Copyright (c) 1972 by Massachusetts Institute of *  17 " * Technology and Honeywell Information Systems, Inc. *  18 " * *  19 " * *  20 " ******************************************************  21  22  23  24  25 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  26  27  28 " 29  000000 0a 000055 7420 00 30 stx2 x2  000001 aa 000000 6200 12 31 eax0 0,2  000002 aa 012271 7020 00 32 tsx2 init_io  000003 aa 012245 7020 00 33 tsx2 ttyinit  000004 0a 000054 0000 00 34 arg ttyrequest 35  000005 aa 012203 5540 20 36 stc1 nlraw,* quiet and tty commands aren't recognized 000006 aa 6 02020 2351 00 37 lda com|quietsw save quiet switch setting  000007 0a 000063 7550 00 38 sta qtemp  39  000010 aa 000001 3360 07 40 lcq 1,dl make a line mark 000011 aa 012000 7560 00 41 stq pagectl ..  42  000012 aa 7 00000 7271 10 43 lxl7 mem|0,0 get address of command line  000013 0a 000176 7470 00 44 stx7 lineloc and save 000014 0a 000177 2470 00 45 orsx7 linedesc set descriptor to command line 46  000015 aa 7 00000 2201 10 47 ldx0 mem|0,0 get loc of args  000016 0a 000200 7400 00 48 stx0 argloc save it  000017 aa 7 00001 2351 10 49 lda mem|1,0 first arg 000020 aa 7 00002 2361 10 50 ldq mem|2,0 probably name 000021 0a 000174 7560 00 51 stq name  52  000022 aa 000000 6270 00 53 eax7 0 search command list  000023 aa 012300 5202 02 54 rpt ncom/2,2,tze  000024 0a 000064 1150 17 55 cmpa coml,7  000025 aa 777777 6070 37 56 ttf -1,7*  57  000026 0a 000174 7550 00 58 sta name command not found, use as name  000027 0a 000200 2200 00 59 ldx0 argloc but adjust argument pointer first 000030 aa 777777 6200 10 60 eax0 -1,0 ..  000031 0a 000200 7400 00 61 stx0 argloc ..  62  000032 0a 000174 2350 00 63 run: lda name get name again  000033 0a 000201 7020 00 64 tsx2 runcom_setup init common to read from macro file  000034 0a 000055 7100 00 65 tra x2 66  000035 aa 0 00100 1005 20 67 mlr (pr,id),(pr) copy the command line  000036 0a 000177 0000 00 68 arg linedesc  000037 aa 602700 020124 69 desc6a com|macroline,84  70  000040 0a 000200 2200 00 71 ldx0 argloc get location of args  000041 aa 000000 6270 00 72 eax7 0 start counter  000042 aa 7 00042 2351 10 73 argloop: lda mem|2*(arglen+1)+2,0 get argument descriptor  000043 0a 000330 3750 00 74 ana =o077777777777 remove segment tag  000044 0a 000176 1350 00 75 sbla lineloc subtract location of line  000045 aa 602700 0350 03 76 adla com*32768+macroline,du relocate to copied line  000046 aa 6 02716 7551 17 77 sta com|macroargs,7 and save  78  000047 aa 000001 6200 10 79 eax0 1,0 step to next arg 000050 aa 000001 6270 17 80 eax7 1,7 count args  000051 aa 000012 1070 03 81 cmpx7 10,du for 10 args  000052 0a 000042 6040 00 82 tmi argloop ..  83  000053 0a 000055 7100 00 84 tra x2 and exit  85  000054 86 ttyrequest: 000054 aa 6 02022 4501 00 87 stz com|macroloc clear this, in case of exit by request button 000055 0a 000055 6220 00 88 x2: eax2 *  000056 aa 012203 4500 20 89 stz nlraw,*  000057 0a 000063 2350 00 90 lda qtemp  000060 aa 6 02020 7551 00 91 sta com|quietsw restore quiet switch  000061 aa 000001 3350 07 92 lca =1,dl  000062 aa 7 00001 7101 12 93 tra mem|1,2 return to bos 94  000063 aa 000000 000000 95 qtemp: oct 0  96  97 " 98  000064 99 coml:  000064 aa 202 043 462 124 100 bci " load"  000065 0a 000076 7100 00 101 tra load  000066 aa 204 751 314 563 102 bci " print"  000067 0a 000120 7100 00 103 tra print  000070 aa 204 764 452 330 104 bci " punch"  000071 0a 000131 7100 00 105 tra punchout  000072 aa 202 020 516 445 106 bci " run"  000073 0a 000032 7100 00 107 tra run  000074 aa 202 062 423 147 108 bci " skip"  000075 0a 000172 7100 00 109 tra skip  000012 110 equ ncom,*-coml  111 "  000076 112 load: "here to load a macro file 000076 aa 6 02020 5541 00 113 stc1 com|quietsw  114  000077 0a 000234 7020 00 115 tsx2 make_runcom_file build runcom file image  000100 0a 000106 7100 00 116 tra get_runcom_line subroutine to get each line  000101 0a 000055 7100 00 117 tra x2 118  000102 0a 000174 2350 00 119 lda name get name of file 000103 0a 000271 7020 00 120 tsx2 store_runcom_file store completed file  000104 0a 000055 7100 00 121 tra x2 122  000105 0a 000055 7100 00 123 tra x2 that's all 124  125  000106 126 get_runcom_line:  000106 0a 000110 7420 00 127 stx2 grlx2 save X2  128  000107 aa 012202 7020 00 129 tsx2 nextline get next line of input  130  000110 0a 000110 6220 00 131 grlx2: eax2 * restore X2  132  000111 aa 012040 2350 00 133 lda arg check for "runcom end" on card  000112 0a 000331 1150 00 134 cmpa =hruncom ..  000113 aa 000001 6010 12 135 tnz 1,2 ..  000114 aa 012041 2350 00 136 lda arg+1 ..  000115 0a 000332 1150 00 137 cmpa =h end ..  000116 aa 000001 6010 12 138 tnz 1,2 if not end, take normal return  000117 aa 000000 7100 12 139 tra 0,2 otherwise, EOF return 140  141 " 142  000120 0a 000174 2350 00 143 print: lda name name in A  000121 0a 000201 7020 00 144 tsx2 runcom_setup setup to read from macro file  000122 0a 000055 7100 00 145 tra x2 000123 aa 6 02020 4501 00 146 stz com|quietsw make sure they will be printed 147  000124 aa 012202 7020 00 148 tsx2 nextline pull each line  000125 aa 012001 2350 00 149 lda line until null line  000126 0a 000333 1150 00 150 cmpa =h " 000127 0a 000124 6010 00 151 tnz *-3  000130 0a 000055 7100 00 152 tra x2 153  154  155  156  000131 157 punchout:  000131 0a 000174 2350 00 158 lda name name in A  000132 0a 000201 7020 00 159 tsx2 runcom_setup setup to read macro  000133 0a 000055 7100 00 160 tra x2 000134 aa 6 02020 5541 00 161 stc1 com|quietsw turn off printing 162  000135 0a 000331 2350 00 163 lda =hruncom  000136 aa 012001 7550 00 164 sta line  000137 0a 000334 2350 00 165 lda =h load "  000140 aa 012002 7550 00 166 sta line+1 000141 0a 000174 2350 00 167 lda name name of runcom  000142 aa 012003 7550 00 168 sta line+2 000143 0a 000333 2350 00 169 lda =h " blank out rest of line  000144 aa 000012 6220 00 170 eax2 14-3-1  000145 aa 012004 7550 12 171 sta line+3,2  000146 aa 777777 6220 12 172 eax2 -1,2  000147 0a 000145 6050 00 173 tpl *-2  000150 aa 012251 7020 00 174 tsx2 punch punch out runcom load card 175  000151 176 next_punch: 000151 aa 012202 7020 00 177 tsx2 nextline grab next line  000152 aa 012001 2350 00 178 lda line check for null line  000153 0a 000333 1150 00 179 cmpa =h " 000154 0a 000157 6000 00 180 tze end_punch stop at end of runcom  000155 aa 012251 7020 00 181 tsx2 punch punch it out  000156 0a 000151 7100 00 182 tra next_punch keep punching  183  000157 184 end_punch:  000157 0a 000331 2350 00 185 lda =hruncom  000160 aa 012001 7550 00 186 sta line  000161 0a 000335 2350 00 187 lda =h end "  000162 aa 012002 7550 00 188 sta line+1 000163 aa 012251 7020 00 189 tsx2 punch punch out runcom end card  190  000164 0a 000333 2350 00 191 lda =h " blank out card  000165 aa 012001 7550 00 192 sta line  000166 aa 012002 7550 00 193 sta line+1 000167 aa 012251 7020 00 194 tsx2 punch eject blank card  000170 aa 012251 7020 00 195 tsx2 punch and another  000171 0a 000055 7100 00 196 tra x2 all finished  197  198  199 "  000172 aa 6 02025 7501 00 200 skip: stc2 com|skipsw set skip switch  201  000173 0a 000032 7100 00 202 tra run join common code  203  204 "  205  000174 aa 000000 000000 206 name: oct 0 macro file name  000175 aa 000000 000000 207 mloc: oct 0 first loc of macro file  208  000176 209 lineloc: bss ,1 location of command line  000177 aa 700000 020124 210 linedesc: desc6a mem|0,84 descriptor to copy command line  000200 211 argloc: bss ,1 location of first arg to runcom 212  213  214  215  216 include runcom_util  2-1 " 2-2 " Begin include file ...... runcom_util.incl.alm  2-3 " Created 9/17/75 by Noel I. Morris 2-4  2-5  002264 2-6 equ mbufl,1204 length of runcom buffer 2-7  2-8  2-9 " lda name  2-10 " tsx2 runcom_setup setup to read from runcom file  2-11 " tra error file not found 2-12  000201 2-13 runcom_setup:  000201 0a 000221 7420 00 2-14 stx2 sx2 setup to read from a macro file  000202 0a 000327 7550 00 2-15 sta rctemp save name in case of error 2-16  000203 aa 012204 7020 00 2-17 tsx2 search  000204 0a 000223 7100 00 2-18 tra rsnf macro file not found 2-19  000205 aa 004000 3150 07 2-20 cana =o4000,dl check for macro bit  000206 0a 000223 6000 00 2-21 tze rsnf if not macro 2-22  000207 0a 000336 3750 00 2-23 ana =o777777770000 000210 aa 6 02022 7551 00 2-24 sta com|macroloc  2-25  000211 aa 000001 2750 07 2-26 ora =1,dl prime buffer  000212 aa 012234 7020 00 2-27 tsx2 rdsec 000213 aa 6 02600 0111 00 2-28 nop com|macrobuf  000214 0a 000232 7100 00 2-29 tra rserr if error  2-30  000215 aa 6 02021 2351 00 2-31 lda com|inputsw stack inputsw  000216 aa 000006 7710 00 2-32 arl 6  000217 aa 020000 2750 03 2-33 ora =o020000,du and set to macro  000220 aa 6 02021 7551 00 2-34 sta com|inputsw  2-35  000221 0a 000221 6220 00 2-36 sx2: eax2 * restore X2 000222 aa 000001 7100 12 2-37 tra 1,2 take normal return  2-38  2-39  000223 aa 012241 7020 00 2-40 rsnf: tsx2 erpt macro file not found  000224 aa 021 146 151 154 2-41 acc "file ^g not found"  000225 aa 145 040 136 147 000226 aa 040 156 157 164 000227 aa 040 146 157 165 000230 aa 156 144 000 000 000231 0a 000327 0000 00 2-42 arg rctemp 2-43  000232 0a 000221 2220 00 2-44 rserr: ldx2 sx2 restore X2 000233 aa 000000 7100 12 2-45 tra 0,2 take error return 2-46  2-47 " 2-48  2-49 " tsx2 make_runcom_file to format input lines into file 2-50 " tra get_input_line subr to read into "line"  2-51 " tra error error if file too big  2-52 " stq length,dl length of file in words  2-53  000234 2-54 make_runcom_file:  000234 0a 000256 7420 00 2-55 stx2 mkrx2 save XR's  000235 0a 000257 7400 00 2-56 stx0 mkrx0 .. 2-57  000236 aa 000000 6200 00 2-58 eax0 0 X0 is buffer index 000237 0a 000256 7020 20 2-59 mkrloop: tsx2 mkrx2,* call input subroutine  000240 0a 000254 7100 00 2-60 tra mark tra if end of input  2-61  000241 0a 000313 7020 00 2-62 tsx2 runcom_line_len get length of line and set line mark  000242 0a 000327 7560 00 2-63 stq rctemp save length  2-64  000243 aa 000000 6270 10 2-65 eax7 0,0 current offset in X7 000244 0a 000327 0270 00 2-66 adlx7 rctemp add length of this line  000245 aa 011320 1070 03 2-67 cmpx7 mbufl*4,du check for buffer overflow 000246 0a 000261 6050 00 2-68 tpl runcom_too_big ..  2-69  000247 aa 000150 1004 40 2-70 mlr (rl),(pr,rl,x0) copy line into macro buffer  000250 aa 012000 000002 2-71 desc9a pagectl,qu  000251 aa 200000 000002 2-72 desc9a bf|0,qu 2-73  000252 aa 000000 6200 17 2-74 eax0 0,7 get offset of next line in X0  000253 0a 000237 7100 00 2-75 tra mkrloop and loop  2-76  2-77  000254 aa 000004 6360 10 2-78 mark: eaq 4,0 get offset plus 1 word in QU 000255 aa 000024 7720 00 2-79 qrl 18+2 shift to QL and compute word count  2-80  000256 0a 000256 6220 00 2-81 mkrx2: eax2 * restore XR's 000257 0a 000257 6200 00 2-82 mkrx0: eax0 * ..  000260 aa 000002 7100 12 2-83 tra 2,2 take normal return  2-84  2-85  000261 2-86 runcom_too_big: 000261 aa 012241 7020 00 2-87 tsx2 erpt complain if runcom too large  000262 aa 015 146 151 154 2-88 acc "file too big."  000263 aa 145 040 164 157 000264 aa 157 040 142 151 000265 aa 147 056 000 000 000266 0a 000256 2220 00 2-89 ldx2 mkrx2 restore XR's  000267 0a 000257 2200 00 2-90 ldx0 mkrx0 .. 000270 aa 000001 7100 12 2-91 tra 1,2 and take error return 2-92  2-93 " 2-94  2-95 " lda name name of runcom file 2-96 " ldq length,dl length of runcom file in words 2-97 " tsx2 store_runcom_file to store completed runcom  2-98 " tra error file system error  2-99  000271 2-100 store_runcom_file:  000271 0a 000307 7420 00 2-101 stx2 srfx2 save X2  000272 0a 000327 7550 00 2-102 sta rctemp save name  2-103  000273 aa 000001 3350 07 2-104 lca 1,dl make fence for end  000274 aa 2 77777 7551 06 2-105 sta bf|-1,ql and cap end of macro 2-106  000275 aa 000077 0760 07 2-107 adq 63,dl round to nearest disk sector  000276 aa 000006 7720 00 2-108 qrl 6 compute number of sectors  2-109  000277 0a 000327 2350 00 2-110 lda rctemp get name of runcom 000300 aa 012205 7020 00 2-111 tsx2 makefil create a file for runcom 000301 0a 000311 7100 00 2-112 tra srferr 2-113  000302 aa 004000 2360 07 2-114 ldq =o4000,dl get runcom ID bit  000303 aa 6 00001 2561 17 2-115 orsq com|1,7 insert in BOS dir entry  2-116  000304 aa 012235 7020 00 2-117 tsx2 wtsec write out the runcom  000305 aa 2 00000 0111 00 2-118 nop bf|0  000306 0a 000311 7100 00 2-119 tra srferr 2-120  000307 0a 000307 6220 00 2-121 srfx2: eax2 * restore X2  000310 aa 000001 7100 12 2-122 tra 1,2 that's all  2-123  2-124  000311 0a 000307 2220 00 2-125 srferr: ldx2 srfx2 restore X2  000312 aa 000000 7100 12 2-126 tra 0,2 take error return 2-127  2-128 "  2-129  2-130 " tsx2 runcom_line_len to get line length  2-131 " stq len,du length of line in words  2-132  000313 2-133 runcom_line_len:  000313 0a 000325 7420 00 2-134 stx2 rllx2 save X2  2-135  000314 aa 012263 7020 00 2-136 tsx2 stripg strip trailing blanks from line  000315 aa 012001 020124 2-137 desc6a line,84 .. 000316 aa 000044 7730 00 2-138 lrl 36 length in Q  000317 aa 000005 0760 07 2-139 adq 5,dl round up to nearest word 000320 aa 000006 5060 07 2-140 div 6,dl compute word count  000321 aa 000022 7360 00 2-141 qls 18 in QU  000322 aa 012000 7520 70 2-142 stcq pagectl,70 insert in line mark  2-143  000323 aa 000001 0760 03 2-144 adq 1,du include line mark in length  000324 aa 000002 7360 00 2-145 qls 2 get character count 2-146  000325 0a 000325 6220 00 2-147 rllx2: eax2 * restore X2  000326 aa 000000 7100 12 2-148 tra 0,2 return to caller  2-149  2-150  000327 2-151 rctemp: bss ,1  2-152  2-153  2-154 " End of include file ...... runcom_util.incl.alm  2-155  217 include bos_tv 3-1 " 3-2 " Begin include file ...... bos_tv.incl.alm 3-3 " Created in November 1971 by N. I. Morris. 3-4 " Modified 9/9/76 by Noel I. Morris 3-5 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 3-6 " Modified November 1981 by C. Hornig to remove iom_connect_rel.  3-7 " Modified January 1982 by J. Bongiovanni to add getport_info  3-8 " Modified May 1982 by Sherman D. Sprague to add getmpc.  3-9  3-10 " BOS Utility Package Transfer Vector.  3-11  012000 3-12 equ pagectl,utilorg  012001 3-13 equ line,pagectl+1 012040 3-14 equ arg,line+31  012060 3-15 equ darg,arg+arglen+1  012100 3-16 equ earg,darg+arglen+1 012120 3-17 equ fltscu,earg+arglen+1  3-18  012200 3-19 equ tv_org,utilorg+128 3-20  012200 3-21 equ scan,tv_org+0  012201 3-22 equ arg_count,tv_org+1 012202 3-23 equ nextline,tv_org+2  012203 3-24 equ nlraw,tv_org+3 012204 3-25 equ search,tv_org+4  012205 3-26 equ makefil,tv_org+5  012206 3-27 equ ldcom,tv_org+6 012207 3-28 equ getsec,tv_org+7  012210 3-29 equ cvinit,tv_org+8  012211 3-30 equ rdev,tv_org+9  012212 3-31 equ wdev,tv_org+10 012213 3-32 equ phybos,tv_org+11  012214 3-33 equ bosphy,tv_org+12  012215 3-34 equ phyadd,tv_org+13  012216 3-35 equ mulbos,tv_org+14  012217 3-36 equ bosmul,tv_org+15  012220 3-37 equ lookup_devmodel,tv_org+16  012221 3-38 equ makesdw,tv_org+17  012222 3-39 equ argbos,tv_org+18  012223 3-40 equ argmul,tv_org+19  012224 3-41 equ amdvt,tv_org+20  012225 3-42 equ amfirst,tv_org+21  012226 3-43 equ amlast,tv_org+22  012227 3-44 equ cvnamla,tv_org+23  012230 3-45 equ sect_per_cyl_list,tv_org+24  012231 3-46 equ sect_per_dev_list,tv_org+25  012232 3-47 equ rec_per_dev_list,tv_org+26 012233 3-48 equ amaxio,tv_org+27  012234 3-49 equ rdsec,tv_org+28  012235 3-50 equ wtsec,tv_org+29  012236 3-51 equ disk_brief,tv_org+30  012237 3-52 equ itaper,tv_org+31  012240 3-53 equ itapew,tv_org+32  012241 3-54 equ erpt,tv_org+33 012242 3-55 equ ercv,tv_org+34 012243 3-56 equ erbuf,tv_org+35  012244 3-57 equ type,tv_org+36 012245 3-58 equ ttyinit,tv_org+37  012246 3-59 equ readcd,tv_org+38  012247 3-60 equ readtty,tv_org+39  012250 3-61 equ getprt,tv_org+40  012251 3-62 equ punch,tv_org+41  012252 3-63 equ octwd,tv_org+42  012253 3-64 equ geas,tv_org+43 012254 3-65 equ geastab,tv_org+44  012255 3-66 equ asge,tv_org+45 012256 3-67 equ asgetab,tv_org+46  012257 3-68 equ ljust,tv_org+47  012260 3-69 equ rjust,tv_org+48  012261 3-70 equ bzel,tv_org+49 012262 3-71 equ stripa,tv_org+50  012263 3-72 equ stripg,tv_org+51  012264 3-73 equ getconf,tv_org+52  012265 3-74 equ getmore,tv_org+53  012266 3-75 equ getperiph,tv_org+54  012267 3-76 equ rdclock,tv_org+55  012270 3-77 equ cvclock,tv_org+56  012271 3-78 equ init_io,tv_org+57  012272 3-79 equ connect_iom,tv_org+58  012273 3-80 equ getmpc,tv_org+59  012274 3-81 equ check_status,tv_org+60 012275 3-82 equ get_special_interrupt,tv_org+61  012276 3-83 equ get_status_interrupt,tv_org+62 012277 3-84 equ xio_wait,tv_org+63 012300 3-85 equ initint,tv_org+64  012301 3-86 equ wantflt,tv_org+65  012302 3-87 equ intno,tv_org+66  012303 3-88 equ intrpts1,tv_org+67 012304 3-89 equ hexwd,tv_org+68  012305 3-90 equ find_disk,tv_org+69  012306 3-91 equ find_root,tv_org+70  012307 3-92 equ find_part,tv_org+71  012310 3-93 equ check_status_no_stat,tv_org+72 012311 3-94 equ check_special_status,tv_org+73 012312 3-95 equ check_cpu_type,tv_org+74  012313 3-96 equ getportinfo,tv_org+75  3-97  3-98 " End of include file ...... bos_tv.incl.alm  3-99  218 include bos_common 4-1 "  4-2 " Begin include file ...... bos_common.incl.alm 4-3 " Modified on 8/31/76 by N. I. Morris  4-4 " Modified on 9/01/80 by Sherman D. Sprague for DPS8 operation  4-5 " Modified on 5/26/82 by Sherman D. Sprague to lengthen config size 4-6 " Modified on 3/01/83 by Sherman D. Sprague to lengthen dirlen  4-7 " MACHINE CONDITIONS AREA  4-8 " Its length is "storlen". 4-9  000000 4-10 equ amptwregs,0 Ass. Mem PTW registers  000100 4-11 equ amptwptr,64 Ass. Mem PTW pointers 000200 4-12 equ amsdwregs,128 Ass. Mem SDW registers  000400 4-13 equ amsdwptr,256 Ass. Mem SDW pointers  000500 4-14 equ ouhist,320 operations hist regs  000700 4-15 equ cuhist,448 control unit hist regs  001100 4-16 equ eishist,576 eis hist regs  001300 4-17 equ aphist,704 appending unit hist regs  001500 4-18 equ prs,832 pointer regs  001520 4-19 equ regs,848 sreg 001530 4-20 equ low_order_port,856 port to read clock from 001532 4-21 equ mctime,858 bootload memory clock  001540 4-22 equ scu,864  001550 4-23 equ mcm,872 memory masks 8 ports 001570 4-24 equ dbr,888  001572 4-25 equ intrpts,890 waiting interrupts 001573 4-26 equ bar,891 bar  001574 4-27 equ modereg,892 processor & cache mode registers  001576 4-28 equ faultreg,894 processor fault register  001600 4-29 equ ptrlen,896 pointer-lengths EIS 0 mod 8 001610 4-30 equ coreblocks,904 array of port information  4-31 " Bits 0-17 => num 1st 64-word block  4-32 " Bits 18-35 => num of 64-word blocks  4-33 " (-1) => no mem on this port  001620 4-34 equ lowport_cfg,912 Saved CFG from bootload SCU  4-35  002000 4-36 equ storlen,1024  4-37  4-38  4-39  4-40 " BOS COMMAND DIRECTORY 4-41 " Its length is "dirlen".  4-42  002000 4-43 equ dir,1024 ( 0-23) => sector # of first sector on BOS disk  4-44 " (24-35) => # of sectors in BOS common  002001 4-45 equ used,dir+1 ( 0-23) => # of next available sector on BOS disk  002002 4-46 equ useable,dir+2 ( 0-23) => first unavailable sector on BOS disk  002003 4-47 equ corearea,dir+3 ( 0-23) => starting sector of Multics core image  4-48 " (24-35) => # of sectors in Multics core image  002004 4-49 equ setuparea,dir+4 Sector and length of setup 002005 4-50 equ utilarea,dir+5 where utility package is kept  002010 4-51 equ iom_mxbase,dir+8 IOM IMW area address  002011 4-52 equ iom_mbbase,dir+9 IOM mailbox base  002012 4-53 equ bos_dvt,dir+10 BOS disk loc: (o3/iom,o6/chn,o9/drive,o18/devtype)  002013 4-54 equ unitgroup,dir+11 disk unitgroup (device no. or area no.)  002014 4-55 equ diskchanno,dir+12 channel to be used for disk  002015 4-56 equ tapechanno,dir+13 channel # for tapes  002016 4-57 equ rdrchanno,dir+14 channel number for card reader  002017 4-58 equ ttychanno,dir+15 channel # for operator's tty  002020 4-59 equ quietsw,dir+16 if on, don't print card and macro commands  002021 4-60 equ inputsw,dir+17 read from tty, cards, macros  002022 4-61 equ macroloc,dir+18 disk addr, buffer index of macro file  002023 4-62 equ fdump_state,dir+19 completion flag for last FDUMP  002024 4-63 equ d355_state,dir+20 = 1 if DataNet 355 loaded successfully  002025 4-64 equ skipsw,dir+21 if on, skip runcom lines 002026 4-65 equ ttypmtsw,dir+22 if on, prompt  002027 4-66 equ curtcmd,dir+23 current bos command 002030 4-67 equ readysw,dir+24 if on, print ready message  002032 4-68 equ cmdlst,dir+26 list of commands 4-69  000600 4-70 equ dirlen,384 4-71  4-72  4-73  4-74 " MACRO BUFFER AREA 4-75  002600 4-76 equ macrobuf,dir+dirlen io buffer for macro files 002700 4-77 equ macroline,macrobuf+64 runcom command line 002716 4-78 equ macroargs,macroline+14 argument descriptors for runcom  4-79  4-80  4-81  4-82 " CONFIGURATION CARD AREA  4-83 " Its length is 2048 words.  4-84  003000 4-85 equ conf,macrobuf+128 start of configuration info  007000 4-86 equ econf,conf+2048 end of configuration info  000020 4-87 equ confl,16 length of each line  4-88  4-89  007000 4-90 equ seg6length,econf length of bos_common area segment 4-91  4-92 " End of include file ...... bos_common.incl.alm  4-93  219  220 end  LITERALS 000330 aa 077777 777777 000331 aa 516445 234644 000332 aa 202020 254524 000333 aa 202020 202020 000334 aa 204346 212420 000335 aa 202545 242020 000336 aa 777777 770000 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 000337 5a 000003 000000 000340 5a 000017 600000 000341 aa 000000 000000 000342 55 000010 000002 000343 5a 000002 400003 000344 55 000006 000010 000345 aa 006 162 165 156 000346 aa 143 157 155 000 000347 55 000002 000003 000350 6a 000000 400002 000351 55 000013 000003 000352 aa 014 163 171 155 symbol_table  000353 aa 142 157 154 137 000354 aa 164 141 142 154 000355 aa 145 000 000 000 DEFINITIONS HASH TABLE  000356 aa 000000 000015 000357 aa 000000 000000 000360 aa 000000 000000 000361 aa 000000 000000 000362 aa 000000 000000 000363 aa 000000 000000 000364 aa 000000 000000 000365 5a 000010 000000 000366 aa 000000 000000 000367 aa 000000 000000 000370 aa 000000 000000 000371 aa 000000 000000 000372 aa 000000 000000 000373 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  000374 aa 000001 000000 000375 aa 000000 000000 INTERNAL EXPRESSION WORDS LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 000337 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000010 000007 a2 000000 000000 SYMBOL INFORMATION SYMBOL TABLE HEADER  000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000004 000004 aa 000000 112143 000005 aa 305203 523135 000006 aa 000000 112272 000007 aa 231277 013620 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000002 000002 000016 aa 000064 000000 000017 aa 000000 000230 000020 aa 000000 000163 000021 aa 000000 000214 000022 aa 000217 000163 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 040066 056066 000030 aa 040040 116157 000031 aa 166145 155142 000032 aa 145162 040061 000033 aa 071070 062040 000034 aa 110157 154155 000035 aa 163164 145144 000036 aa 164056 123171 000037 aa 163115 141151 000040 aa 156164 056141 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 154151 163164 000045 aa 040040 040040 000046 aa 040040 040040 000047 aa 040040 040040 000050 aa 040040 040040 000051 aa 040040 040040 000052 aa 040040 040040 000053 aa 040040 040040 000054 aa 040040 040040 000055 aa 040040 040040 000056 aa 040040 040040 000057 aa 040040 040040 000060 aa 040040 040040 000061 aa 040040 040040 000062 aa 040040 040040 000063 aa 040040 040040 000064 aa 000000 000001 000065 aa 000000 000005 000066 aa 000112 000027 000067 aa 122721 273102 000070 aa 000000 112272 000071 aa 216176 600000 000072 aa 000120 000040 000073 aa 113400 415301 000074 aa 000000 111341 000075 aa 220414 400000 000076 aa 000130 000045 000077 aa 043243 126005 000100 aa 000000 103256 000101 aa 423770 000000 000102 aa 000142 000040 000103 aa 110235 072677 000104 aa 000000 111024 000105 aa 524460 600000 000106 aa 000152 000044 000107 aa 121622 277475 000110 aa 000000 112162 000111 aa 321563 400000 000112 aa 076163 160145 >spec>h>3.17>runcom.alm 000113 aa 143076 150076 000114 aa 063056 061067 000115 aa 076162 165156 000116 aa 143157 155056 000117 aa 141154 155040 000120 aa 076154 144144 >ldd>bos>include>bosequ.incl.alm  000121 aa 076142 157163 000122 aa 076151 156143 000123 aa 154165 144145 000124 aa 076142 157163 000125 aa 145161 165056 000126 aa 151156 143154 000127 aa 056141 154155 000130 aa 076154 144144 >ldd>bos>include>runcom_util.incl.alm  000131 aa 076142 157163 000132 aa 076151 156143 000133 aa 154165 144145 000134 aa 076162 165156 000135 aa 143157 155137 000136 aa 165164 151154 000137 aa 056151 156143 000140 aa 154056 141154 000141 aa 155040 040040 000142 aa 076154 144144 >ldd>bos>include>bos_tv.incl.alm  000143 aa 076142 157163 000144 aa 076151 156143 000145 aa 154165 144145 000146 aa 076142 157163 000147 aa 137164 166056 000150 aa 151156 143154 000151 aa 056141 154155 000152 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000153 aa 076142 157163 000154 aa 076151 156143 000155 aa 154165 144145 000156 aa 076142 157163 000157 aa 137143 157155 000160 aa 155157 156056 000161 aa 151156 143154 000162 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  12233 amaxio bos_tv: 48. 12224 amdvt bos_tv: 41. 12225 amfirst bos_tv: 42. 12226 amlast bos_tv: 43. 100 amptwptr bos_common: 11. 0 amptwregs bos_common: 10. 400 amsdwptr bos_common: 13. 200 amsdwregs bos_common: 12. 1300 aphist bos_common: 17. 12040 arg runcom: 133, 136,  bos_tv: 14, 15.  12222 argbos bos_tv: 39. 17 arglen runcom: 73, bosequ: 17, bos_tv: 15, 16, 17. 200 argloc runcom: 48, 59, 61, 71, 211. 42 argloop runcom: 73, 82.  12223 argmul bos_tv: 40. 12201 arg_count bos_tv: 22. 12255 asge bos_tv: 66. 12256 asgetab bos_tv: 67. 1573 bar bos_common: 26. 2 bf bosequ: 9, runcom_util: 72, 105, 118. 12217 bosmul bos_tv: 36. 12214 bosphy bos_tv: 33. 2012 bos_dvt bos_common: 53. 12261 bzel bos_tv: 70. 12312 check_cpu_type bos_tv: 95. 12311 check_special_status bos_tv: 94. 12274 check_status bos_tv: 81. 12310 check_status_no_stat bos_tv: 93. 2032 cmdlst bos_common: 68. 6 com runcom: 37, 69, 76, 77, 87, 91, 113, 146, 161, 200,  bosequ: 14, runcom_util: 24, 28, 31, 34, 115. 64 coml runcom: 55, 99, 110. 3000 conf bos_common: 85, 86.  20 confl bos_common: 87. 12272 connect_iom bos_tv: 79. 2003 corearea bos_common: 47. 1610 coreblocks bos_common: 30. 700 cuhist bos_common: 15. 2027 curtcmd bos_common: 66. 12270 cvclock bos_tv: 77. 12210 cvinit bos_tv: 29. 12227 cvnamla bos_tv: 44. 2024 d355_state bos_common: 63. 12060 darg bos_tv: 15, 16.  1570 dbr bos_common: 24. 2000 dir bos_common: 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56,  57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 76. 600 dirlen bos_common: 70, 76.  2014 diskchanno bos_common: 55. 12236 disk_brief bos_tv: 51. 0 ds bosequ: 7. 12100 earg bos_tv: 16, 17.  7000 econf bos_common: 86, 90.  1100 eishist bos_common: 16. 157 end_punch runcom: 180, 184.  12243 erbuf bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt runcom_util: 40, 87,  bos_tv: 54. 1576 faultreg bos_common: 28. 2023 fdump_state bos_common: 62. 5 fgb bosequ: 13. 12305 find_disk bos_tv: 90. 12307 find_part bos_tv: 92. 12306 find_root bos_tv: 91. 2000 firmware_bit bosequ: 20. 12120 fltscu bos_tv: 17. 12253 geas bos_tv: 64. 12254 geastab bos_tv: 65. 12264 getconf bos_tv: 73. 12265 getmore bos_tv: 74. 12273 getmpc bos_tv: 80. 12266 getperiph bos_tv: 75. 12313 getportinfo bos_tv: 96. 12250 getprt bos_tv: 61. 12207 getsec bos_tv: 28. 106 get_runcom_line runcom: 116, 126.  12275 get_special_interrupt bos_tv: 82. 12276 get_status_interrupt bos_tv: 83. 110 grlx2 runcom: 127, 131.  12304 hexwd bos_tv: 89. 12300 initint bos_tv: 85. 12271 init_io runcom: 32, bos_tv: 78. 2021 inputsw runcom_util: 31, 34,  bos_common: 60. 12302 intno bos_tv: 87. 1572 intrpts bos_common: 25. 12303 intrpts1 bos_tv: 88. 2011 iom_mbbase bos_common: 52. 2010 iom_mxbase bos_common: 51. 12237 itaper bos_tv: 52. 12240 itapew bos_tv: 53. 12206 ldcom bos_tv: 27. 12001 line runcom: 149, 164, 166, 168, 171, 178, 186, 188, 192, 193,  runcom_util: 137, bos_tv: 13, 14.  177 linedesc runcom: 45, 68, 210. 176 lineloc runcom: 44, 75, 209. 12257 ljust bos_tv: 68. 76 load runcom: 101, 112.  12220 lookup_devmodel bos_tv: 37. 1620 lowport_cfg bos_common: 34. 1530 low_order_port bos_common: 20. 2716 macroargs runcom: 77, bos_common: 78. 2600 macrobuf runcom_util: 28, bos_common: 76, 77, 85. 2700 macroline runcom: 69, 76,  bos_common: 77, 78.  2022 macroloc runcom: 87, runcom_util: 24, bos_common: 61. 12205 makefil runcom_util: 111, bos_tv: 26. 12221 makesdw bos_tv: 38. 234 make_runcom_file runcom: 115, runcom_util: 54. 254 mark runcom_util: 60, 78.  2264 mbufl runcom_util: 6, 67.  1550 mcm bos_common: 23. 1532 mctime bos_common: 21. 7 mem runcom: 43, 47, 49, 50, 73, 93, 210, bosequ: 15. 237 mkrloop runcom_util: 59, 75.  257 mkrx0 runcom_util: 56, 82, 90. 256 mkrx2 runcom_util: 55, 59, 81, 89.  175 mloc runcom: 207. 1574 modereg bos_common: 27. 12216 mulbos bos_tv: 35. 174 name runcom: 51, 58, 63, 119, 143, 158, 167, 206.  12 ncom runcom: 54, 110.  12202 nextline runcom: 129, 148, 177, bos_tv: 23. 151 next_punch runcom: 176, 182.  12203 nlraw runcom: 36, 89,  bos_tv: 24. 12252 octwd bos_tv: 63. 500 ouhist bos_common: 14. 12000 pagectl runcom: 41, runcom_util: 71, 142,  bos_tv: 12, 13.  3 pgm bosequ: 10. 12215 phyadd bos_tv: 34. 12213 phybos bos_tv: 32. 120 print runcom: 103, 143.  1500 prs bos_common: 18. 1600 ptrlen bos_common: 29. 12251 punch runcom: 174, 181, 189, 194, 195, bos_tv: 62. 131 punchout runcom: 105, 157.  63 qtemp runcom: 38, 90, 95. 2020 quietsw runcom: 37, 91, 113, 146, 161, bos_common: 59. 327 rctemp runcom_util: 15, 42, 63, 66, 102, 110, 151. 12267 rdclock bos_tv: 76. 12211 rdev bos_tv: 30. 2016 rdrchanno bos_common: 57. 12234 rdsec runcom_util: 27, bos_tv: 49. 12246 readcd bos_tv: 59. 12247 readtty bos_tv: 60. 2030 readysw bos_common: 67. 12232 rec_per_dev_list bos_tv: 47. 1520 regs bos_common: 19. 12260 rjust bos_tv: 69. 325 rllx2 runcom_util: 134, 147.  232 rserr runcom_util: 29, 44.  223 rsnf runcom_util: 18, 21, 40. 32 run runcom: 63, 107, 202. 4000 runcom_bit bosequ: 19. 313 runcom_line_len runcom_util: 62, 133.  201 runcom_setup runcom: 64, 144, 159, runcom_util: 13. 261 runcom_too_big runcom_util: 68, 86.  12200 scan bos_tv: 21. 1540 scu bos_common: 22. 12204 search runcom_util: 17, bos_tv: 25. 12230 sect_per_cyl_list bos_tv: 45. 12231 sect_per_dev_list bos_tv: 46. 7000 seg6length bos_common: 90. 2004 setuparea bos_common: 49. 172 skip runcom: 109, 200.  2025 skipsw runcom: 200, bos_common: 64. 311 srferr runcom_util: 112, 119, 125. 307 srfx2 runcom_util: 101, 121, 125. 271 store_runcom_file runcom: 120, runcom_util: 100. 2000 storlen bos_common: 36. 12262 stripa bos_tv: 71. 12263 stripg runcom_util: 136, bos_tv: 72. 221 sx2 runcom_util: 14, 36, 44. 2015 tapechanno bos_common: 56. 1 tmp bosequ: 8. 2017 ttychanno bos_common: 58. 12245 ttyinit runcom: 33, bos_tv: 58. 2026 ttypmtsw bos_common: 65. 54 ttyrequest runcom: 34, 86.  12200 tv_org bos_tv: 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,  44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,  56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,  68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,  80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,  92, 93, 94, 95, 96. 12244 type bos_tv: 57. 2013 unitgroup bos_common: 54. 2002 useable bos_common: 46. 2001 used bos_common: 45. 2005 utilarea bos_common: 50. 12000 utilorg bosequ: 22, bos_tv: 12, 19.  12301 wantflt bos_tv: 86. 12212 wdev bos_tv: 31. 12235 wtsec runcom_util: 117, bos_tv: 50. 55 x2 runcom: 30, 65, 84, 88, 117, 121, 123, 145, 152, 160, 196. 12277 xio_wait bos_tv: 84. 4 xs1 bosequ: 11. 5 xs2 bosequ: 12. NO FATAL ERRORS  ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved