ASSEMBLY LISTING OF SEGMENT >spec>h>3.17>bostap.alm ASSEMBLED ON: 11/29/83 1519.6 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 " BOSTAP - Command to Generate BOS System Tape from BOS Directory.  7 " Bernard Greenberg, 11/01/75  8 " Modified by Noel I. Morris, 3/19/76  9 " Modified 9/79 by R.J.C. Kissel to handle 6250 bpi tapes.  10 " Modified 7/81 by J. A. Bush to merge writape.incl.alm into bostap 11 " and copy the boslab file from the command directory, for new BOS 12 " tape labels.  13  14 " ******************************************************  15 " * *  16 " * *  17 " * Copyright (c) 1972 by Massachusetts Institute of *  18 " * Technology and Honeywell Information Systems, Inc. *  19 " * *  20 " * *  21 " ******************************************************  22  23  000000 24 name bostap  25  26  27 include bosequ 1-1 " Begin include file ...... bosequ.incl.alm 1-2 " Modified 8/25/76 by N. I. Morris  1-3 " Modified 8/79 by R.J.C. Kissel to expand BOS. 1-4 " Modified November 1981 by C. Hornig to add pgmorg.  1-5 " Modified October 1982 by J. Bongiovanni to take it out  1-6  000000 1-7 bool ds,0 descriptor segment  000001 1-8 bool tmp,1 temp seg  000002 1-9 bool bf,2 buffer segment for save/restor  000003 1-10 bool pgm,3 program in control 000004 1-11 bool xs1,4 spare segment  000005 1-12 bool xs2,5 spare segment  000005 1-13 bool fgb,5 flagbox segment  000006 1-14 bool com,6 common 000007 1-15 bool mem,7 all memory 1-16  000017 1-17 equ arglen,15 max number of args from scan  1-18  004000 1-19 bool runcom_bit,4000 runcom bit in dir entry  002000 1-20 bool firmware_bit,2000 firmware bit in dir entry  1-21  012000 1-22 bool utilorg,12000 origin of utility package  1-23  1-24 " End of include file ...... bosequ.incl.alm  28  29 " 30 include slte  2-1  2-2  2-3 "BEGIN INCLUDE FILE slte.incl.alm  2-4  2-5  2-6 "Created 08/13/82 0906.3 edt Fri by convert_include_file, 2-7 " Version of 12/01/81 1640.3 edt Tue.  2-8  2-9 "Made from >bootload>include>slte.incl.pl1,  2-10 " modified 08/12/82 1335.9 edt Thu  2-11  2-12 "  2-13 " Structure slte_uns  2-14 "  000004 2-15 equ slte_uns_size,4  2-16  000000 2-17 equ slte_uns.names_ptr,0 " UPPER  000000 2-18 equ slte_uns.path_ptr,0 " LOWER  2-19  000001 2-20 equ slte_uns.access_word,1 000040 2-21 equ slte_uns.access_shift,32  000017 2-22 bool slte_uns.access_mask,000017  000001 2-23 equ slte_uns.cache_word,1  020000 2-24 bool slte_uns.cache,020000 " DU  000001 2-25 equ slte_uns.abs_seg_word,1  010000 2-26 bool slte_uns.abs_seg,010000 " DU  000001 2-27 equ slte_uns.firmware_seg_word,1  004000 2-28 bool slte_uns.firmware_seg,004000 " DU 000001 2-29 equ slte_uns.layout_seg_word,1 002000 2-30 bool slte_uns.layout_seg,002000 " DU  000001 2-31 equ slte_uns.wired_word,1  000040 2-32 bool slte_uns.wired,000040 " DU  000001 2-33 equ slte_uns.paged_word,1  000020 2-34 bool slte_uns.paged,000020 " DU  000001 2-35 equ slte_uns.per_process_word,1  000010 2-36 bool slte_uns.per_process,000010 " DU  000001 2-37 equ slte_uns.acl_provided_word,1  000001 2-38 bool slte_uns.acl_provided,000001 " DU 000001 2-39 equ slte_uns.branch_required_word,1  040000 2-40 bool slte_uns.branch_required,040000 " DL  000001 2-41 equ slte_uns.init_seg_word,1  020000 2-42 bool slte_uns.init_seg,020000 " DL 000001 2-43 equ slte_uns.temp_seg_word,1  010000 2-44 bool slte_uns.temp_seg,010000 " DL 000001 2-45 equ slte_uns.link_provided_word,1  004000 2-46 bool slte_uns.link_provided,004000 " DL  000001 2-47 equ slte_uns.link_sect_word,1  002000 2-48 bool slte_uns.link_sect,002000 " DL  000001 2-49 equ slte_uns.link_sect_wired_word,1  001000 2-50 bool slte_uns.link_sect_wired,001000 " DL  000001 2-51 equ slte_uns.combine_link_word,1  000400 2-52 bool slte_uns.combine_link,000400 " DL 000001 2-53 equ slte_uns.pre_linked_word,1 000200 2-54 bool slte_uns.pre_linked,000200 " DL  000001 2-55 equ slte_uns.defs_word,1  000100 2-56 bool slte_uns.defs,000100 " DL 2-57  000002 2-58 equ slte_uns.cur_length_word,2 000033 2-59 equ slte_uns.cur_length_shift,27  000777 2-60 bool slte_uns.cur_length_mask,000777  000002 2-61 equ slte_uns.ringbrack_word,2  000030 2-62 equ slte_uns.ringbrack_shift,24  000007 2-63 bool slte_uns.ringbrack_mask,000007  000002 2-64 equ slte_uns.segno,2 " LOWER  2-65  000003 2-66 equ slte_uns.max_length_word,3 000030 2-67 equ slte_uns.max_length_shift,24  000777 2-68 bool slte_uns.max_length_mask,000777  000003 2-69 equ slte_uns.bit_count_word,3  000000 2-70 equ slte_uns.bit_count_shift,0 2-71  2-72 "  2-73 " Structure slte  2-74 "  000004 2-75 equ slte_size,4  2-76  000000 2-77 equ slte.names_ptr,0 " UPPER  000000 2-78 equ slte.path_ptr,0 " LOWER  2-79  000001 2-80 equ slte.access_word,1 000040 2-81 equ slte.access_shift,32  000017 2-82 bool slte.access_mask,000017  000001 2-83 equ slte.cache_word,1  020000 2-84 bool slte.cache,020000 " DU  000001 2-85 equ slte.abs_seg_word,1  010000 2-86 bool slte.abs_seg,010000 " DU 000001 2-87 equ slte.firmware_seg_word,1  004000 2-88 bool slte.firmware_seg,004000 " DU 000001 2-89 equ slte.layout_seg_word,1 002000 2-90 bool slte.layout_seg,002000 " DU  000001 2-91 equ slte.wired_word,1  000040 2-92 bool slte.wired,000040 " DU  000001 2-93 equ slte.paged_word,1  000020 2-94 bool slte.paged,000020 " DU  000001 2-95 equ slte.per_process_word,1  000010 2-96 bool slte.per_process,000010 " DU  000001 2-97 equ slte.acl_provided_word,1  000001 2-98 bool slte.acl_provided,000001 " DU 000001 2-99 equ slte.branch_required_word,1  040000 2-100 bool slte.branch_required,040000 " DL  000001 2-101 equ slte.init_seg_word,1  020000 2-102 bool slte.init_seg,020000 " DL 000001 2-103 equ slte.temp_seg_word,1  010000 2-104 bool slte.temp_seg,010000 " DL 000001 2-105 equ slte.link_provided_word,1  004000 2-106 bool slte.link_provided,004000 " DL  000001 2-107 equ slte.link_sect_word,1  002000 2-108 bool slte.link_sect,002000 " DL  000001 2-109 equ slte.link_sect_wired_word,1  001000 2-110 bool slte.link_sect_wired,001000 " DL  000001 2-111 equ slte.combine_link_word,1  000400 2-112 bool slte.combine_link,000400 " DL 000001 2-113 equ slte.pre_linked_word,1 000200 2-114 bool slte.pre_linked,000200 " DL  000001 2-115 equ slte.defs_word,1  000100 2-116 bool slte.defs,000100 " DL  2-117  000002 2-118 equ slte.cur_length_word,2 000033 2-119 equ slte.cur_length_shift,27  000777 2-120 bool slte.cur_length_mask,000777  000002 2-121 equ slte.ringbrack_word,2  000030 2-122 equ slte.ringbrack_shift,24  000007 2-123 bool slte.ringbrack_mask,000007  000002 2-124 equ slte.segno,2 " LOWER  2-125  000003 2-126 equ slte.max_length_word,3 000030 2-127 equ slte.max_length_shift,24  000777 2-128 bool slte.max_length_mask,000777  000003 2-129 equ slte.bit_count_word,3  000000 2-130 equ slte.bit_count_shift,0 2-131  2-132 "END INCLUDE FILE slte.incl.alm  31  32 "  000000 0a 000166 7420 00 33 stx2 x2 do the honors 34  000001 aa 012271 7020 00 35 tsx2 init_io  000002 aa 012245 7020 00 36 tsx2 ttyinit  000003 0a 000166 0000 00 37 arg x2  38  000004 0a 000166 2220 00 39 ldx2 x2  000005 aa 7 00000 2271 12 40 ldx7 mem|0,2 get arg word 000006 aa 7 00001 2351 17 41 lda mem|1,7 get arg 1 000007 aa 777777 3150 03 42 cana -1,du alph or fence? 000010 0a 000013 6010 00 43 tnz *+3 tra if tape is not given  000011 aa 000001 6270 17 44 eax7 1,7 skip arg 000012 0a 000014 7100 00 45 tra *+2 tape no is in a  000013 aa 000001 2350 07 46 lda 1,dl if none, we give one 000014 aa 000014 7350 00 47 als 35-23 tape #'s go in strange places  000015 0a 001123 7550 00 48 sta tapeno 49  000016 aa 7 00001 2351 17 50 arglp: lda mem|1,7 get an arg  000017 0a 005416 1150 00 51 cmpa =-1 end of args? 000020 0a 000075 6000 00 52 tze argend 53  000021 0a 005417 1150 00 54 cmpa =h brief don't report?  000022 0a 000025 6010 00 55 tnz *+3  000023 0a 000171 5540 00 56 stc1 bfsw  000024 0a 000073 7100 00 57 tra nxtarg 58  000025 0a 005420 1150 00 59 cmpa =hruncom write runcoms only? 000026 0a 000031 6010 00 60 tnz *+3  000027 0a 000172 5540 00 61 stc1 runcomsw  000030 0a 000073 7100 00 62 tra nxtarg 63  000031 0a 000475 6210 00 64 eax1 dentb process any density argument  000032 aa 006300 5202 02 65 rpt (dentbend-dentb)/2,2,tze search for arg  000033 aa 000000 1150 11 66 cmpa 0,1  000034 0a 000042 6064 00 67 ttn badreq 000035 0a 001124 2350 00 68 lda tapeden got one, make sure no others  000036 0a 000056 6010 00 69 tnz denerr it was already set  000037 aa 777777 2350 11 70 lda -1,1 get the right command 000040 0a 001124 7550 00 71 sta tapeden  000041 0a 000073 7100 00 72 tra nxtarg 73  000042 74 badreq: 000042 0a 000231 7550 00 75 sta lose_temp  000043 aa 012241 7020 00 76 tsx2 erpt  000044 aa 034 142 157 163 77 acc "bostap: unknown request: ^g."  000045 aa 164 141 160 072 000046 aa 040 165 156 153 000047 aa 156 157 167 156 000050 aa 040 162 145 161 000051 aa 165 145 163 164 000052 aa 072 040 136 147 000053 aa 056 000 000 000 000054 0a 000231 0000 00 78 arg lose_temp 000055 0a 000166 7100 00 79 tra x2 80  000056 81 denerr: 000056 aa 012241 7020 00 82 tsx2 erpt  000057 aa 052 142 157 163 83 acc "bostap: only one density may be specified."  000060 aa 164 141 160 072 000061 aa 040 157 156 154 000062 aa 171 040 157 156 000063 aa 145 040 144 145 000064 aa 156 163 151 164 000065 aa 171 040 155 141 000066 aa 171 040 142 145 000067 aa 040 163 160 145 000070 aa 143 151 146 151 000071 aa 145 144 056 000 000072 0a 000166 7100 00 84 tra x2 85  000073 aa 000001 6270 17 86 nxtarg: eax7 1,7  000074 0a 000016 7100 00 87 tra arglp  88  89 "  000075 90 argend: "All args gotten 000075 aa 012254 2350 00 91 lda geastab get the translate set up  000076 0a 000316 7550 00 92 sta geas1  000077 0a 000410 7550 00 93 sta geas2  000100 0a 000454 7550 00 94 sta geas3  95  000101 aa 100000 6350 00 96 eaa 32768 length of segment in AU 000102 aa 012221 7020 00 97 tsx2 makesdw make buffer segment following program  000103 0a 000166 7100 00 98 tra x2 Gave up on wiping out core.  000104 aa 0 00002 7571 00 99 staq ds|tmp*2 store completed SDW 000105 aa 000000 5320 00 100 cams 0 for good luck  101  000106 0a 001124 2350 00 102 lda tapeden set the default density if not already set  000107 0a 000112 6010 00 103 tnz *+3  000110 aa 000060 2350 07 104 lda =o60,dl 800 bpi default  000111 0a 001124 7550 00 105 sta tapeden  106  000112 0a 000174 7020 00 107 tsx2 scan_dir find the bos label in the cmd dir  000113 0a 000216 0000 00 108 arg must_be It must be there, if not complain  000114 0a 005421 0000 00 109 arg =hboslab  000115 aa 000000 7100 12 110 tra 0,2  111  000116 0a 000536 7020 00 112 tsx2 writape_init the "boslab" file is in tmp|0  000117 0a 000511 000020 113 desc9a bos_tape_label,16  000120 0a 000125 7100 00 114 tra no_init Error initializing tape  115  000121 0a 000173 5540 00 116 stc1 lblsw we have written label  000122 0a 000172 2340 00 117 szn runcomsw runcoms only?  000123 0a 000145 6000 00 118 tze do_all if not, write everything  000124 0a 000140 7100 00 119 tra do_runcoms 120  000125 121 no_init:  000125 aa 012241 7020 00 122 tsx2 erpt  000126 aa 042 142 157 163 123 acc "bostap: Could not initialize tape."  000127 aa 164 141 160 072 000130 aa 040 103 157 165 000131 aa 154 144 040 156 000132 aa 157 164 040 151 000133 aa 156 151 164 151 000134 aa 141 154 151 172 000135 aa 145 040 164 141 000136 aa 160 145 056 000 000137 0a 000166 7100 00 124 tra x2 125 "  126 "  127 " Write out runcom files only.  128 "  129  000140 130 do_runcoms: 000140 0a 000174 7020 00 131 tsx2 scan_dir search dir  000141 0a 000237 0000 00 132 arg is_it_bcd for BCD files  000142 aa 000000 0000 00 133 arg 0 000143 0a 000144 7100 00 134 tra *+1  135  000144 0a 000165 7100 00 136 tra finish_up then finish up tape 137  138  139 "  140 " Write out all files.  141 "  142  000145 143 do_all: 000145 0a 000174 7020 00 144 tsx2 scan_dir write out fwload  000146 0a 000216 0000 00 145 arg must_be this particular judge  000147 0a 005422 0000 00 146 arg =hfwload  000150 aa 000000 7100 12 147 tra 0,2  148  000151 0a 000174 7020 00 149 tsx2 scan_dir  000152 0a 000216 0000 00 150 arg must_be  000153 0a 005423 0000 00 151 arg =h util  000154 aa 000000 7100 12 152 tra 0,2 not got, not so hot. 153  154  000155 0a 000174 7020 00 155 tsx2 scan_dir write out all firmware  000156 0a 000232 0000 00 156 arg is_it_firmware  000157 aa 000000 0000 00 157 arg 0 no meaning here  000160 0a 000161 7100 00 158 tra *+1 end of dir is ok 159  000161 0a 000174 7020 00 160 tsx2 scan_dir do all else 000162 0a 000244 0000 00 161 arg do_all_else  000163 aa 000000 0000 00 162 arg 0 000164 0a 000165 7100 00 163 tra *+1  164  000165 165 finish_up:  166  000165 0a 000700 7020 00 167 tsx2 writape_end alles ist getan, so gehe. 168  000166 aa 000000 6220 00 169 x2: eax2 *-*  000167 aa 000001 3350 07 170 lca 1,dl good fences etc. 000170 aa 7 00001 7101 12 171 tra mem|1,2  172  000171 aa 000000 000000 173 bfsw: oct 0 n/z if not to write mess  000172 aa 000000 000000 174 runcomsw: oct 0 n/z if to write only runcoms  000173 aa 000000 000000 175 lblsw: oct 0 n/z when not writing tape label  176  177 "  178 "  179 " tsx2 scan_dir 180 " arg judge, who passes on what is at com|0,7  181 " arg something he might want to see, passed in a  182 " tra end_of_dir default return to judge is 0,2  183  000174 184 scan_dir:  000174 0a 000214 7420 00 185 stx2 scan_dir.x2  000175 aa 002032 6270 00 186 eax7 cmdlst start at the top  000176 187 scan_dir.lp:  000176 aa 6 00000 2341 17 188 szn com|0,7 something here?  000177 0a 000206 6000 00 189 tze scan_dir.next  000200 0a 000205 7470 00 190 stx7 scan_dir.x7 save this interesting thing  191  192 "  193 " Invoke specific judge 194 "  000201 0a 000214 2220 00 195 ldx2 scan_dir.x2  000202 aa 000001 2350 32 196 lda 1,2* get param  000203 aa 000000 7020 32 197 tsx2 0,2* call the guy  000204 0a 000214 7100 00 198 tra scan_dir.fine guy liked it, wants to give up  000205 199 scan_dir.x7:  000205 aa 000000 6270 00 200 eax7 *-*  000206 201 scan_dir.next:  000206 aa 000002 6270 17 202 eax7 2,7  000207 aa 002600 1070 03 203 cmpx7 dir+dirlen,du are we thru?  000210 0a 000176 6040 00 204 tmi scan_dir.lp  205  206 "There must have been at least 1 thing in dir, hence x2 at 2d return  207  000211 0a 000214 2270 00 208 ldx7 scan_dir.x2 get caller parms  000212 aa 000001 2350 37 209 lda 1,7* get parm for error mess  000213 aa 000002 7100 17 210 tra 2,7 go back into judge or finish  211  000214 212 scan_dir.x2:  000214 213 scan_dir.fine: "the judge liked 1 thing.  000214 aa 000000 6220 00 214 eax2 *-*  000215 aa 000003 7100 12 215 tra 3,2  216 "  217 "  218 " Judges I, II, III, & IV.  219 "  220  221 "  222 " Judge who only likes thing in A  223 "  224  000216 225 must_be:  000216 aa 6 00000 1151 17 226 cmpa com|0,7  000217 0a 000261 6000 00 227 tze write_file return at 0,2 to scan_dir  000220 aa 000001 7020 12 228 tsx2 1,2 try another, friend  000221 0a 000231 7550 00 229 sta lose_temp  230  000222 aa 012241 7020 00 231 tsx2 erpt  000223 aa 017 143 141 156 232 acc "cannot find ^g."  000224 aa 156 157 164 040 000225 aa 146 151 156 144 000226 aa 040 136 147 056 000227 0a 000231 0000 00 233 arg lose_temp  234  000230 0a 000166 7100 00 235 tra x2 236  000231 aa 000000 000000 237 lose_temp:oct 0 238  239  240 "  241 " Judge who likes firmware  242 "  000232 243 is_it_firmware: 000232 aa 6 00001 2361 17 244 ldq com|1,7  000233 aa 002000 3160 07 245 canq firmware_bit,dl It is better to light a candle  000234 aa 000001 6000 12 246 tze 1,2 than to curse the dark.  000235 aa 000001 6220 12 247 eax2 1,2 set good return  000236 0a 000261 7100 00 248 tra write_file 249  250  251 "  252 " Judge who likes only runcoms and CONFIG decks 253 "  254  000237 255 is_it_bcd:  000237 aa 6 00001 2361 17 256 ldq com|1,7 get info word 000240 aa 004000 3160 07 257 canq runcom_bit,dl is it BCD?  000241 aa 000001 6000 12 258 tze 1,2 no, not interested  000242 aa 000001 6220 12 259 eax2 1,2 set good return if so  000243 0a 000261 7100 00 260 tra write_file get it out  261  262  263 "  264 " Judge who likes anything we haven't done yet  265 "  000244 266 do_all_else:  000244 aa 775746 6350 17 267 eaa -cmdlst,7 get comdlist offset 000245 aa 000023 7710 00 268 arl 18+1 get bit index  000246 aa 005005 0644 00 269 sztl (),(al),bool(05)  000247 0a 000247 000000 270 descb *,0  000250 0a 000254 000001 271 descb bitlist,1 comparing against 1  000251 aa 000001 6010 12 272 tnz 1,2 not interested  000252 aa 000001 6220 12 273 eax2 1,2 set good return  000253 0a 000261 7100 00 274 tra write_file 275  000254 276 bitlist: bss ,5 bit map of commands done  277  278 "  279  280 "  281 " Come here via tsx2 with X7 -> dirloc to write out a file  282 "  000261 283 write_file: 000261 0a 000354 7420 00 284 stx2 wf.x2 000262 aa 6 00000 2371 17 285 ldaq com|0,7 get dir goods  000263 0a 000504 7570 00 286 staq dir_goods 287  000264 aa 775746 6350 17 288 eaa -cmdlst,7 get dir offset  000265 aa 000023 7710 00 289 arl 18+1 get bit index  000266 aa 017005 0604 00 290 csl (),(al),bool(17) turn on bit for this command  000267 0a 000267 000000 291 descb *,0  000270 0a 000254 000001 292 descb bitlist,1  293  000271 0a 000505 2350 00 294 lda dir_goods+1 get address of file  000272 aa 004000 3150 07 295 cana runcom_bit,dl runcom? 000273 0a 000356 6010 00 296 tnz runcom_to_ascii convert into ASCII file  297  000274 0a 005424 3750 00 298 ana =o777777770777 mask out extraneous bits  000275 aa 012234 7020 00 299 tsx2 rdsec 000276 aa 1 00000 0001 00 300 arg tmp|0 000277 0a 000457 7100 00 301 tra fatal_read_error  302  000300 0a 000173 2340 00 303 szn lblsw are we writing tape label?  000301 0a 000354 6000 00 304 tze wf.x2 return if yes  000302 0a 000505 2360 00 305 ldq dir_goods+1  000303 aa 000777 3760 07 306 anq =o777,dl  000304 aa 004400 4020 07 307 mpy 36*64,dl  000305 0a 000522 7560 00 308 stq slte+slte.bit_count_word easy case, BOS pgm  309 "  310 " We have all the stuff in tmp, the bc is in bit_count. 311 "  000306 312 wf.cv_name: 000306 0a 000504 2350 00 313 lda dir_goods  000307 aa 012257 7020 00 314 tsx2 ljust 000310 0a 000503 7550 00 315 sta wf.temp  000311 aa 012263 7020 00 316 tsx2 stripg  000312 0a 000503 020006 317 desc6a wf.temp,6 get real length  318  000313 aa 020000 1604 40 319 mvt (rl),(),fill(20)  000314 0a 000503 020005 320 desc6a wf.temp,al  000315 0a 000525 000040 321 desc9a name,32 000316 aa 000000 0000 00 322 geas1: arg *-*  323  000317 0a 000505 2360 00 324 ldq dir_goods+1 is this firmware file? 000320 aa 002000 3160 07 325 canq firmware_bit,dl ..  000321 0a 000426 6010 00 326 tnz adjust_firmware if so, get real length and name  000322 aa 004000 3160 07 327 canq runcom_bit,dl is this runcom? 000323 0a 000330 6000 00 328 tze set_namelen if not, just set length of name  329  000324 aa 000005 1004 00 330 mlr (),(al)  000325 0a 000506 000006 331 desc9a .ascii,6  000326 0a 000525 000006 332 desc9a name,6  000327 aa 000006 0750 07 333 ada 6,dl  334  000330 335 set_namelen:  000330 0a 000524 7550 00 336 sta namelen put in header record  000331 0a 000522 2360 00 337 ldq slte+slte.bit_count_word  000332 aa 000043 0360 07 338 adlq 35,dl 000333 aa 000044 5060 07 339 div 36,dl  000334 0a 000503 7560 00 340 stq wf.temp save object len  341  000335 aa 000001 2760 03 342 orq 1,du upper cw bit 000336 0a 000535 7560 00 343 stq sgcw  000337 0a 000171 2340 00 344 szn bfsw should we report?  000340 0a 000346 6010 00 345 tnz no_report  000341 aa 012241 7020 00 346 tsx2 erpt say what we are doing  000342 aa 005 136 147 040 347 acc "^g ^o"  000343 aa 136 157 000 000 000344 0a 000504 0000 00 348 arg dir_goods 000345 0a 000503 0000 00 349 arg wf.temp  000346 350 no_report:  351  000346 0a 000644 7020 00 352 tsx2 writape_data  000347 0a 005425 0000 00 353 arg =v36/slthdrlen  000350 0a 000516 0000 00 354 arg slthdrbegin  355  356  000351 0a 000644 7020 00 357 tsx2 writape_data  000352 0a 000503 0000 00 358 arg wf.temp length  000353 0a 005426 0000 20 359 arg =its(tmp,0,n),*  000354 aa 000000 6220 00 360 wf.x2: eax2 *-* 000355 aa 000000 7100 12 361 tra 0,2 done  362  363 " 364  000356 365 runcom_to_ascii:  000356 aa 004000 6750 07 366 era runcom_bit,dl turn off runcom bit  000357 aa 012234 7020 00 367 tsx2 rdsec read in the runcom file  000360 aa 2 00000 0001 00 368 arg bf|0 into 1024-word buffer  000361 0a 000457 7100 00 369 tra fatal_read_error  370  000362 aa 000000 6210 00 371 eax1 0 X1 is input character offset  000363 aa 000000 6200 00 372 eax0 0 X0 is input word offset  000364 aa 000000 6230 00 373 eax3 0 X3 is output character offset  000365 374 runcom_loop:  000365 aa 2 00000 2361 10 375 ldq bf|0,0 get control word  000366 0a 005416 1160 00 376 cmpq =-1 end of runcom?  000367 0a 000421 6000 00 377 tze runcom_end if so, tra  000370 aa 000022 7720 00 378 qrl 18 isolate word count 000371 aa 000006 4020 07 379 mpy 6,dl compute character count  380  000372 aa 0 20000 1005 51 381 mlr (pr,rl,x1),(),fill(20) copy the runcom line  000373 aa 200001 020006 382 desc6a bf|1,ql 000374 aa 012001 020120 383 desc6a line,80 384  000375 aa 000022 7360 00 385 qls 18 character count in QU  000376 0a 000503 7560 00 386 stq wf.temp store it  000377 0a 000503 0610 00 387 adx1 wf.temp bump input character offset  000400 aa 000006 0610 03 388 adx1 6,du be sure to include control word 000401 aa 2 00000 0601 10 389 adx0 bf|0,0 bump input word offset  000402 aa 000001 0600 03 390 adx0 1,du include control word itself 391  000403 aa 012263 7020 00 392 tsx2 stripg strip trailing blanks from line  000404 aa 012001 020120 393 desc6a line,80 394  000405 aa 000153 1604 40 395 mvt (rl),(pr,rl,x3) copy into output as ASCII  000406 aa 012001 020005 396 desc6a line,al 000407 aa 100000 000005 397 desc9a tmp|0,al  000410 aa 000000 0000 00 398 geas2: arg *-*  399  000411 aa 000022 7350 00 400 als 18 character count in AU  000412 0a 000503 7550 00 401 sta wf.temp store 000413 0a 000503 0630 00 402 adx3 wf.temp bump output character offset 403  000414 aa 012113 1004 00 404 mlr (),(pr,x3),fill(012) finish off line with NL char 000415 0a 000415 000000 405 desc9a *,0 000416 aa 100000 000001 406 desc9a tmp|0,1 407  000417 aa 000001 0630 03 408 adx3 1,du bump output character offset  000420 0a 000365 7100 00 409 tra runcom_loop and loop  410  000421 411 runcom_end: 000421 aa 000000 6360 13 412 eaq 0,3 output character count in QU  000422 aa 000022 7720 00 413 qrl 18 shift to QL  000423 aa 000011 4020 07 414 mpy 9,dl compute bit count  000424 0a 000522 7560 00 415 stq slte+slte.bit_count_word save the bit count  416  000425 0a 000306 7100 00 417 tra wf.cv_name now, take care of segment name  418  419 " 420  000426 421 adjust_firmware:  000426 0a 000522 2360 00 422 ldq slte+slte.bit_count_word get bit count of file  000427 aa 000044 5060 07 423 div 36,dl compute word count  000430 aa 777700 6270 06 424 eax7 -64,ql go back at least 64 words 000431 0a 005430 2350 00 425 lda =hmpcbot and look for MPCBOT  000432 aa 000001 6270 17 426 eax7 1,7 step until found 000433 aa 1 00000 1151 17 427 cmpa tmp|0,7 ..  000434 0a 000432 6010 00 428 tnz *-2 ..  429  000435 aa 000001 6360 17 430 eaq 1,7 word count in QU  000436 aa 000022 7720 00 431 qrl 18 shift to QL  000437 aa 000044 4020 07 432 mpy 36,dl compute real bit count  000440 0a 000522 7560 00 433 stq slte+slte.bit_count_word and save 434  000441 aa 1 77767 2351 17 435 lda tmp|-9,7 get name of device  000442 0a 000503 7550 00 436 sta wf.temp save temporarily  437  000443 aa 040000 1014 00 438 mrl (),(),fill(040) move the name down 10 places  000444 0a 000525 000004 439 desc9a name,4  000445 0a 000525 000016 440 desc9a name,14 441  000446 aa 000000 1004 00 442 mlr (),() insert prefix of "fw."  000447 0a 000510 000003 443 desc9a fw.,3  000450 0a 000525 000003 444 desc9a name,3  445  000451 aa 033000 1604 00 446 mvt (),(),fill(33) copy device name plus "."  000452 0a 000503 020006 447 desc6a wf.temp,6  000453 0a 000525 600007 448 desc9a name(3),7  000454 aa 000000 0000 00 449 geas3: arg *-*  450  000455 aa 000016 2350 07 451 lda 14,dl set new length of name  000456 0a 000330 7100 00 452 tra set_namelen .. 453  454 " 455  000457 456 fatal_read_error:  000457 aa 012241 7020 00 457 tsx2 erpt  000460 aa 044 106 141 164 458 acc "Fatal disk error reading command ^g." 000461 aa 141 154 040 144 000462 aa 151 163 153 040 000463 aa 145 162 162 157 000464 aa 162 040 162 145 000465 aa 141 144 151 156 000466 aa 147 040 143 157 000467 aa 155 155 141 156 000470 aa 144 040 136 147 000471 aa 056 000 000 000 000472 0a 000504 0000 00 459 arg dir_goods 460  000473 0a 001053 7020 00 461 tsx2 tprew 462  000474 0a 000166 7100 00 463 tra x2 464  000475 465 dentb: "Density argument table  000475 aa 202 475 050 506 466 bci " d=556"  000476 aa 000000 000061 467 oct 61 000477 aa 202 475 100 000 468 bci " d=800"  000500 aa 000000 000060 469 oct 60 000501 aa 247 501 060 000 470 bci "d=1600"  000502 aa 000000 000065 471 oct 65 000503 472 dentbend:  473  000503 aa 000000 000000 474 wf.temp: oct 0  475  476 even  000504 477 dir_goods:bss ,2 stuff from directory  478  000506 aa 056 141 163 143 479 .ascii: aci ".ascii"  000507 aa 151 151 000 000 000510 aa 146 167 056 000 480 fw.: aci "fw."  000511 481 bos_tape_label: 000511 aa 102 117 123 124 482 aci "BOSTAP_Tape",16  000512 aa 101 120 137 124 000513 aa 141 160 145 040 000514 aa 040 040 040 040 483  484 "  485 " SLT template, with MST header word  486 "  000515 aa 000000 000000 487 oct 0 TEMP DEBUG  000516 488 slthdrbegin:  000516 aa 000000 000016 489 hcw: zero 0,slthdrlen-2 2 for 2 c.w.'s  000517 490 slte: bss ,4  491  000523 aa 000000 000001 492 oct 1 # of names  000524 aa 000000 000000 493 namelen: oct 0 size of name  000525 aa 040 040 040 040 494 name: aci " ",32 the name itself  000526 aa 040 040 040 040 000527 aa 040 040 040 040 000530 aa 040 040 040 040 000531 aa 040 040 040 040 000532 aa 040 040 040 040 000533 aa 040 040 040 040 000534 aa 040 040 040 040 000535 aa 000000 000000 495 sgcw: oct 0 cw for seg 000020 496 equ slthdrlen,*-slthdrbegin  497 "  498 " End of template  499  500 " writape.incl.alm merged into bostap.alm by J. A. Bush 7/28/81 for 501 " new MST label format. 502 " Borrowed from ntape.incl.alm by Bernard Greenberg, 11/01/75  503 " Modified 5/79 by R.J.C. Kissel to use a user specified set density command for writing.  504  505  002000 506 equ tpn,1024 length of tape record  000000 507 bool lhdr,0 Location of v1 label record header  000010 508 bool v2hdr,10 Location of v2 label record header  002010 509 bool ltlr,2010 Location of label record trailer  000020 510 bool reel_id,20 Location of reel_id field within label record  511  512 " 513  514 " tsx2 writape_init to open tape  515 " desc9a label,n  516  000536 517 writape_init:  000536 0a 000621 7420 00 518 stx2 optw.x2  000537 0a 000622 7430 00 519 stx3 optw.x2+1 000540 0a 001127 4500 00 520 stz tperrors no errors  521  000541 aa 012240 7020 00 522 tsx2 itapew set up for writing  000542 0a 001123 0000 00 523 arg tapeno  000543 0a 001124 0000 00 524 arg tapeden  000544 0a 000624 7100 00 525 tra bad_den error return  526  000545 aa 010100 2350 07 527 lda phyrecl*4,dl set length to move  000546 aa 0 00040 1005 40 528 mlr (pr,rl),(rl) copy tape label into label buffer 000547 aa 100000 000005 529 desc9a tmp|0,al  000550 0a 003150 000005 530 desc9a labbuf,al  531  000551 0a 003150 6260 00 532 eax6 labbuf  000552 aa 000000 6230 00 533 eax3 0 assume v1 label  000553 0a 003150 2270 00 534 ldx7 labbuf load first word of label  000554 aa 000004 1070 03 535 cmpx7 4,du is it a v2 label?  000555 0a 000560 6010 00 536 tnz v1lbl no, version 1 label 000556 aa 000010 6260 16 537 eax6 v2hdr,6  000557 aa 000010 6230 00 538 eax3 v2hdr set v2 hdr offset  000560 0a 000601 7460 00 539 v1lbl: stx6 lcksum+1 set label address in cksum call  000561 aa 000040 4130 00 540 rscr 4*8 read the clock  000562 0a 003151 7550 13 541 sta labbuf+lhdr+1,3 USE for unique ID  000563 0a 003152 7560 13 542 stq labbuf+lhdr+2,3 .. 000564 0a 005161 7550 00 543 sta labbuf+ltlr+1 ..  000565 0a 005162 7560 00 544 stq labbuf+ltlr+2 ..  000566 0a 001131 7550 00 545 sta hdr+1 use for unique ID in normal hdrs & tlrs too 000567 0a 001132 7560 00 546 stq hdr+2 ..  000570 0a 003141 7550 00 547 sta tlr+1 ..  000571 0a 003142 7560 00 548 stq tlr+2 ..  549  000572 0a 003170 6260 13 550 eax6 labbuf+reel_id,3 develop addr of reel #  000573 0a 000577 7460 00 551 stx6 set_lab+2 and store  000574 0a 000621 2220 00 552 ldx2 optw.x2 restore X2  000575 aa 040000 1004 20 553 set_lab: mlr (id),(),fill(040)  000576 aa 000000 0000 12 554 arg 0,2  000577 aa 000000 000040 555 desc9a 0,32  556  000600 0a 001077 7020 00 557 lcksum: tsx2 tpcks_new compute checksum  000601 a0 000000 005160 558 zero 0,labbuf+ltlr 000602 0a 003156 7550 13 559 sta labbuf+lhdr+6,3  000603 0a 000604 6230 00 560 eax3 tlw_retry set retry address  000604 561 tlw_retry:  000604 0a 001053 7020 00 562 tsx2 tprew make sure we are on BOT  000605 aa 012277 7020 00 563 wlab: tsx2 xio_wait write the label record 000606 0a 003150 202000 564 vfd 18/labbuf,12/phyrecl  000607 0a 001123 000015 565 zero tapeno,13 write tape binary  000610 0a 001015 7100 00 566 tra check_tape_status  567  000611 0a 001125 4500 00 568 stz tpfirsterr reset first error switch  000612 0a 003146 0540 00 569 aos tlr+6 good write bump record nos  000613 aa 000001 2350 03 570 lda =1,du  000614 0a 001133 0550 00 571 asa hdr+3  000615 0a 001122 4500 00 572 stz tbufoff start next buffer at 0  000616 aa 002000 2350 07 573 lda tpn,dl 000617 0a 001121 7550 00 574 sta tbufleft  575  000620 0a 001042 7020 00 576 tsx2 tpweof write label EOF  577  000621 aa 000000 6220 00 578 optw.x2: eax2 *-*  000622 aa 000000 6230 00 579 eax3 *-*  000623 aa 000002 7100 12 580 tra 2,2 Normal return 581  000624 aa 012241 7020 00 582 bad_den: tsx2 erpt  000625 aa 055 167 162 151 583 acc "writape_init: Could not set density using ^w."  000626 aa 164 141 160 145 000627 aa 137 151 156 151 000630 aa 164 072 040 103 000631 aa 157 165 154 144 000632 aa 040 156 157 164 000633 aa 040 163 145 164 000634 aa 040 144 145 156 000635 aa 163 151 164 171 000636 aa 040 165 163 151 000637 aa 156 147 040 136 000640 aa 167 056 000 000 000641 0a 001124 0000 00 584 arg tapeden  000642 0a 000621 2220 00 585 ldx2 optw.x2 Get stroed x2  000643 aa 000001 7100 12 586 tra 1,2 Error return  587 "  588 "  589 " Subroutine to move data to tape buffer  590 "  591 " tsx2 writape_data 592 " arg length_word  593 " arg address  594 "  595  000644 596 writape_data:  000644 0a 000675 7420 00 597 stx2 ws.x2 save exit  598  000645 aa 000000 2350 32 599 lda 0,2* get length of request  000646 0a 000677 7550 00 600 sta ws.rql 000647 aa 000001 3700 32 601 epp xs1,1,2* get address of request  602  000650 0a 001121 1150 00 603 ws.loop: cmpa tbufleft will it fit in current record?  000651 0a 000653 6044 00 604 tmoz *+2 if not,  000652 0a 001121 2350 00 605 lda tbufleft take as much as will fit 000653 0a 001122 2360 00 606 ldq tbufoff get buffer offset 000654 aa 000002 7370 00 607 lls 2 make chars  608  000655 aa 0 00046 1005 40 609 mlr (pr,rl),(rl,ql)  000656 aa 400000 000005 610 desc9a xs1|0,al move from xs1 000657 0a 001140 000005 611 desc9a tpbuf,al to buffer 612  000660 aa 4 00000 5005 05 613 a9bd xs1|0,al increment data  000661 aa 000002 7710 00 614 arl 2 get word count in AL  000662 0a 001122 0550 00 615 asa tbufoff bump buffer offset  000663 aa 000000 5310 00 616 neg 0 complement  000664 0a 000677 0550 00 617 asa ws.rql decrement request length  000665 0a 001121 0550 00 618 asa tbufleft and remaining buffer length  000666 0a 000675 6054 00 619 tpnz ws.x2 if room left, just return  620  000667 aa 110000 6270 00 621 eax7 tpn*36 set up record 000670 0a 001134 7470 00 622 stx7 hdr+4 000671 0a 001135 4500 00 623 stz hdr+5 no error, label, or end 624  000672 0a 000753 7020 00 625 tsx2 tpwrit write it out  626  000673 0a 000677 2350 00 627 lda ws.rql get remaining left of request  000674 0a 000650 6054 00 628 tpnz ws.loop continue writing 629  000675 aa 000000 6220 00 630 ws.x2: eax2 *-* 000676 aa 000002 7100 12 631 tra 2,2 return  632  000677 aa 000000 000000 633 ws.rql: oct 0  634  635 "  636  637 " End of logical tape.  638 "  639 " tsx2 writape_end to close out tape  640  000700 641 writape_end:  000700 0a 000750 7420 00 642 stx2 tpeot.x2 here to end a tape  000701 0a 000751 7400 00 643 stx0 tpeot.x2+1  644  000702 0a 001122 2360 00 645 ldq tbufoff  000703 0a 001121 2350 00 646 lda tbufleft  000704 aa 000002 7370 00 647 lls 2 get char length and offset  000705 aa 000000 7350 00 648 als 0 set indicators from A  000706 0a 000712 6000 00 649 tze tpeot.1 no mlr if nothing to move 000707 aa 777046 1004 00 650 mlr (),(rl,ql),fill(777) pad rest of record with 1's  000710 0a 000710 000000 651 desc9a *,0 000711 0a 001140 000005 652 desc9a tpbuf,al  653  000712 654 tpeot.1:  000712 aa 000022 7370 00 655 lls 18 move to uppers 000713 aa 000011 4020 07 656 mpy 36/4,dl compute bits in last record  000714 0a 001134 7520 70 657 stcq hdr+4,70 and place in tape header  658  000715 0a 001135 4500 00 659 stz hdr+5  000716 0a 000753 7020 00 660 tsx2 tpwrit write record  661  000717 0a 001042 7020 00 662 tsx2 tpweof write eof 663  000720 aa 000000 6270 00 664 eax7 0 then write end of tape label  000721 0a 001134 7470 00 665 stx7 hdr+4 reset bit count  000722 aa 500000 2350 03 666 lda =o500000,du set end of tape  000723 0a 001135 7550 00 667 sta hdr+5  668  000724 aa 010000 6350 00 669 eaa tpn*4 character length of tape buffer in AU  000725 aa 777040 1004 00 670 mlr (),(rl),fill(777) fill the buffer with 1's 000726 0a 000726 000000 671 desc9a *,0 000727 0a 001140 000001 672 desc9a tpbuf,au  673  000730 0a 000753 7020 00 674 tsx2 tpwrit write EOR record  675  000731 aa 000003 6200 00 676 eax0 3 write 3 eofs  000732 0a 001042 7020 00 677 tsx2 tpweof  000733 aa 777777 6200 10 678 eax0 -1,0  000734 0a 000732 6050 00 679 tpl *-2  680  000735 0a 001064 7020 00 681 tsx2 dotape set file protect  000736 aa 000000 000062 682 oct 62 000737 0a 000740 7100 00 683 tra *+1  684  000740 0a 001053 7020 00 685 tsx2 tprew Rewind, dont unload  686  000741 aa 012241 7020 00 687 tsx2 erpt print total errors on tape  000742 aa 021 164 141 160 688 acc "tape errors = ^d."  000743 aa 145 040 145 162 000744 aa 162 157 162 163 000745 aa 040 075 040 136 000746 aa 144 056 000 000 000747 0a 001127 0000 00 689 arg tperrors  690  000750 aa 000000 6220 00 691 tpeot.x2: eax2 *-*  000751 aa 000000 6200 00 692 eax0 *-*  000752 aa 000000 7100 12 693 tra 0,2  694  695 " 000753 0a 001012 7420 00 696 tpwrit: stx2 tpwx2 here to write a record  000754 0a 001013 7430 00 697 stx3 tpwx2+1  000755 0a 001134 2350 00 698 lda hdr+4 set total number of bits  000756 aa 000022 7710 00 699 arl 18 000757 0a 003143 0550 00 700 asa tlr+3  701  000760 0a 001131 2350 00 702 tprewt: lda hdr+1 bump the unique ID  000761 0a 001132 2360 00 703 ldq hdr+2 ..  000762 aa 000001 0330 07 704 adl 1,dl by 1 000763 0a 001131 7550 00 705 sta hdr+1 replace in header  000764 0a 001132 7560 00 706 stq hdr+2 ..  000765 0a 003141 7550 00 707 sta tlr+1 and in trailer  000766 0a 003142 7560 00 708 stq tlr+2 ..  709  000767 0a 001077 7020 00 710 tsx2 tpcks_new compute checksum  000770 00 001130 003140 711 zero hdr,tlr  000771 0a 001136 7550 00 712 sta hdr+6  000772 0a 000760 6230 00 713 eax3 tprewt set error retry address  000773 aa 012277 7020 00 714 tsx2 xio_wait  000774 0a 001130 202000 715 vfd 18/phyrec,12/phyrecl  000775 0a 001123 000015 716 zero tapeno,13 write tape binary  000776 0a 001015 7100 00 717 tra check_tape_status  718  000777 0a 001125 4500 00 719 stz tpfirsterr reset first error switch  001000 0a 003146 0540 00 720 aos tlr+6 good write bump record nos  001001 aa 000001 2350 03 721 lda =1,du  001002 0a 001133 0550 00 722 asa hdr+3  723  001003 0a 001133 2270 00 724 ldx7 hdr+3 is it time to write eof  001004 aa 000200 1070 03 725 cmpx7 =o200,du 001005 0a 001007 6010 00 726 tnz *+2  001006 0a 001042 7020 00 727 tsx2 tpweof  728  729  001007 0a 001122 4500 00 730 stz tbufoff start next buffer at 0  001010 aa 002000 2350 07 731 lda tpn,dl 001011 0a 001121 7550 00 732 sta tbufleft  733  001012 aa 000000 6220 00 734 tpwx2: eax2 *-* 001013 aa 000000 6230 00 735 eax3 *-*  001014 aa 000000 7100 12 736 tra 0,2  737  738 " 739  740 "  741 " Error routine for tpwrit  742 "  743  001015 744 check_tape_status:  001015 0a 001126 7570 00 745 staq tpstatus  001016 0a 001125 2340 00 746 szn tpfirsterr First error this try.  001017 0a 001031 6010 00 747 tnz tpquiet If not, skip error message.  748  001020 aa 012241 7020 00 749 tsx2 erpt  001021 aa 032 167 162 151 750 acc "writape: tape status = ^w."  001022 aa 164 141 160 145 001023 aa 072 040 164 141 001024 aa 160 145 040 163 001025 aa 164 141 164 165 001026 aa 163 040 075 040 001027 aa 136 167 056 000 001030 0a 001126 0000 00 751 arg tpstatus  752  001031 0a 001126 2350 00 753 tpquiet: lda tpstatus Status in A. 001032 0a 005431 2360 00 754 ldq =o647777007777 See if device attention.  001033 aa 020000 2110 03 755 cmk =o020000,du .. 001034 aa 000000 6000 13 756 tze 0,3 Retry until attention condition goes away.  757  001035 0a 001127 0540 00 758 aos tperrors  759  001036 aa 000014 2350 03 760 tpwbad: lda =o14,du set retry flag 001037 0a 001135 2550 00 761 orsa hdr+5 001040 0a 001135 0540 00 762 aos hdr+5 and count  001041 aa 000000 7100 13 763 tra 0,3  764  765 " 766  001042 0a 001052 7420 00 767 tpweof: stx2 tpwex2 here to write eof  001043 0a 001064 7020 00 768 tsx2 dotape  001044 aa 000000 000055 769 oct 55 wef  001045 0a 001043 7100 00 770 tra *-2 try again if error  001046 0a 003145 0540 00 771 aos tlr+5 bump file count 001047 0a 001133 0540 00 772 aos hdr+3  001050 aa 000000 6270 00 773 eax7 0 001051 0a 001133 7470 00 774 stx7 hdr+3 zero record count  001052 0a 001052 7100 00 775 tpwex2: tra *  776  777  001053 0a 001063 7420 00 778 tprew: stx2 rewx here to rew log tape  001054 0a 001133 4500 00 779 stz hdr+3 reset record and file counts  001055 0a 003143 4500 00 780 stz tlr+3  001056 0a 003145 4500 00 781 stz tlr+5  001057 0a 003146 4500 00 782 stz tlr+6  001060 0a 001064 7020 00 783 tsx2 dotape  001061 aa 000000 000070 784 oct 70 rewind tape  001062 0a 001060 7100 00 785 tra *-2  001063 0a 001063 7100 00 786 rewx: tra *  787  788  789 " tsx2 dotape to perform non-data transfer operation  790 " oct command  791 " tra error 792  001064 0a 001073 7420 00 793 dotape: stx2 dx 001065 aa 000000 2350 12 794 lda 0,2  001066 0a 001071 7510 01 795 stca do_command,01 001067 aa 012277 7020 00 796 tsx2 xio_wait  001070 aa 000000 000000 797 zero 0,0  001071 798 do_command: 001071 0a 001123 000000 799 zero tapeno,*-*  001072 0a 001075 7100 00 800 tra dobad  801  802  001073 0a 001073 6220 00 803 dx: eax2 *  001074 aa 000002 7100 12 804 tra 2,2  001075 0a 001073 2220 00 805 dobad: ldx2 dx  001076 aa 000001 7100 12 806 tra 1,2  807  808 "  809  810 " tsx2 tpcks_new to compute tape checksum  811  001077 812 tpcks_new: "See MPM Ref. Data 5.3 001077 0a 001117 7400 00 813 stx0 tpckx0 X0 gets clobbered by RPD  001100 aa 000000 2270 12 814 ldx7 0,2 routine to compute multics checksum  001101 aa 000000 7260 12 815 lxl6 0,2 X6 is trailer pointer  001102 aa 000001 6250 00 816 eax5 1 X5 is shift index  001103 aa 004000 6340 07 817 ldi =o4000,dl 001104 aa 000000 2350 07 818 lda =0,dl  819 odd; rpda 6,1 do the header  001105 aa 015200 5602 01 001106 aa 000000 0710 17 820 awca 0,7  001107 aa 000000 7750 15 821 alr 0,5  001110 aa 000001 0710 17 822 awca 1,7 get the last word  001111 aa 000000 7750 15 823 alr 0,5  001112 aa 000000 0110 03 824 odd; rpda 8,1 do the trailer  001113 aa 021200 5602 01 001114 aa 000000 0710 16 825 awca 0,6  001115 aa 000000 7750 15 826 alr 0,5  001116 aa 000000 0710 07 827 awca =0,dl get any remaining carry  828  001117 0a 001117 6200 00 829 tpckx0: eax0 * restore X0  001120 aa 000001 7100 12 830 tra 1,2  831  832  833 " 834 " Storage and Constants.  835  836  001121 aa 000000 000000 837 tbufleft: oct 0 number of words left in phys record  001122 aa 000000 000000 838 tbufoff: oct 0 next available word in buffer  001123 839 tapeno: bss ,1 current tape handler #  001124 aa 000000 000000 840 tapeden: oct 0 contains the density setting device command 001125 841 tpfirsterr: 001125 842 bss ,1 nonzero after first error on a record  001126 843 tpstatus: bss ,1  001127 844 tperrors: bss ,1 count of errors on tape  845  846 "  847 " Tape Buffer  848 "  849  850 eight  001130 851 phyrec: 001130 aa 670314 355245 852 hdr: oct 670314355245 phy rec header  001131 aa 000000 000000 853 vfd 72/0  001132 aa 000000 000000 001133 aa 000000 000000 854 vfd 18/0,18/0 phyrec,phyfil  001134 aa 000000 110000 855 vfd 18/0,18/36*tpn ndata bits  001135 aa 000000 000000 856 vfd 36/0 flags  001136 aa 000000 000000 857 vfd 36/0 checksum 001137 aa 512556 146073 858 oct 512556146073  859  001140 860 bss tpbuf,tpn  861  003140 aa 107463 422532 862 tlr: oct 107463422532  003141 aa 000000 000000 863 vfd 72/0 mul id  003142 aa 000000 000000 003143 aa 000000 000000 864 vfd 36/0 ndata bits of log tape  003144 aa 000000 000000 865 vfd 36/0 padding bits 003145 aa 000000 000000 866 vfd 18/0,18/0 reel number,phy file in log tape  003146 aa 000000 000000 867 vfd 36/0 record in log tape  003147 aa 265221 631704 868 oct 265221631704  002020 869 equ phyrecl,*-phyrec  870  003150 871 labbuf: bss ,phyrecl buffer for label record  872  873  874  875 " 876  877 include bos_sdw  3-1 "  3-2 " BEGIN INCLUDE FILE sdw.incl.alm 02/12/74  3-3 "  000014 3-4 equ sdw.add_shift,12  007000 3-5 bool sdw.r1,007000 Ringbrack 1 (DL)  000700 3-6 bool sdw.r2,000700 Ringbrack 2 (DL)  000070 3-7 bool sdw.r3,000070 Ringbrack 3 (DL)  3-8  000004 3-9 bool sdw.df,000004 Directed fault bit (0 -> fault)  000003 3-10 bool sdw.fault_code,000003 Number of directed fault  3-11  377770 3-12 bool sdw.bound,377770 Bound field (DU)  000004 3-13 bool sdw.read,000004 Read permission bit (DU) 000002 3-14 bool sdw.execute,000002 Execute permission bit (DU)  000001 3-15 bool sdw.write,000001 Write permission bit (DU)  3-16  400000 3-17 bool sdw.privileged,400000 Privileged bit (DL) 200000 3-18 bool sdw.unpaged,200000 Unpaged bit (DL)  100000 3-19 bool sdw.entry_bound_sw,100000 Entry bound switch (DL) 040000 3-20 bool sdw.cache,040000 Cache enabled bit (DL)  037777 3-21 bool sdw.entry_bound,037777 Entry bound (DL)  3-22  3-23 "  3-24 " END INCLUDE FILE sdw.incl.alm  3-25 "  878  879 include bos_tv 4-1 " 4-2 " Begin include file ...... bos_tv.incl.alm 4-3 " Created in November 1971 by N. I. Morris. 4-4 " Modified 9/9/76 by Noel I. Morris 4-5 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 4-6 " Modified November 1981 by C. Hornig to remove iom_connect_rel.  4-7 " Modified January 1982 by J. Bongiovanni to add getport_info  4-8 " Modified May 1982 by Sherman D. Sprague to add getmpc.  4-9  4-10 " BOS Utility Package Transfer Vector.  4-11  012000 4-12 equ pagectl,utilorg  012001 4-13 equ line,pagectl+1 012040 4-14 equ arg,line+31  012060 4-15 equ darg,arg+arglen+1  012100 4-16 equ earg,darg+arglen+1 012120 4-17 equ fltscu,earg+arglen+1  4-18  012200 4-19 equ tv_org,utilorg+128 4-20  012200 4-21 equ scan,tv_org+0  012201 4-22 equ arg_count,tv_org+1 012202 4-23 equ nextline,tv_org+2  012203 4-24 equ nlraw,tv_org+3 012204 4-25 equ search,tv_org+4  012205 4-26 equ makefil,tv_org+5  012206 4-27 equ ldcom,tv_org+6 012207 4-28 equ getsec,tv_org+7  012210 4-29 equ cvinit,tv_org+8  012211 4-30 equ rdev,tv_org+9  012212 4-31 equ wdev,tv_org+10 012213 4-32 equ phybos,tv_org+11  012214 4-33 equ bosphy,tv_org+12  012215 4-34 equ phyadd,tv_org+13  012216 4-35 equ mulbos,tv_org+14  012217 4-36 equ bosmul,tv_org+15  012220 4-37 equ lookup_devmodel,tv_org+16  012221 4-38 equ makesdw,tv_org+17  012222 4-39 equ argbos,tv_org+18  012223 4-40 equ argmul,tv_org+19  012224 4-41 equ amdvt,tv_org+20  012225 4-42 equ amfirst,tv_org+21  012226 4-43 equ amlast,tv_org+22  012227 4-44 equ cvnamla,tv_org+23  012230 4-45 equ sect_per_cyl_list,tv_org+24  012231 4-46 equ sect_per_dev_list,tv_org+25  012232 4-47 equ rec_per_dev_list,tv_org+26 012233 4-48 equ amaxio,tv_org+27  012234 4-49 equ rdsec,tv_org+28  012235 4-50 equ wtsec,tv_org+29  012236 4-51 equ disk_brief,tv_org+30  012237 4-52 equ itaper,tv_org+31  012240 4-53 equ itapew,tv_org+32  012241 4-54 equ erpt,tv_org+33 012242 4-55 equ ercv,tv_org+34 012243 4-56 equ erbuf,tv_org+35  012244 4-57 equ type,tv_org+36 012245 4-58 equ ttyinit,tv_org+37  012246 4-59 equ readcd,tv_org+38  012247 4-60 equ readtty,tv_org+39  012250 4-61 equ getprt,tv_org+40  012251 4-62 equ punch,tv_org+41  012252 4-63 equ octwd,tv_org+42  012253 4-64 equ geas,tv_org+43 012254 4-65 equ geastab,tv_org+44  012255 4-66 equ asge,tv_org+45 012256 4-67 equ asgetab,tv_org+46  012257 4-68 equ ljust,tv_org+47  012260 4-69 equ rjust,tv_org+48  012261 4-70 equ bzel,tv_org+49 012262 4-71 equ stripa,tv_org+50  012263 4-72 equ stripg,tv_org+51  012264 4-73 equ getconf,tv_org+52  012265 4-74 equ getmore,tv_org+53  012266 4-75 equ getperiph,tv_org+54  012267 4-76 equ rdclock,tv_org+55  012270 4-77 equ cvclock,tv_org+56  012271 4-78 equ init_io,tv_org+57  012272 4-79 equ connect_iom,tv_org+58  012273 4-80 equ getmpc,tv_org+59  012274 4-81 equ check_status,tv_org+60 012275 4-82 equ get_special_interrupt,tv_org+61  012276 4-83 equ get_status_interrupt,tv_org+62 012277 4-84 equ xio_wait,tv_org+63 012300 4-85 equ initint,tv_org+64  012301 4-86 equ wantflt,tv_org+65  012302 4-87 equ intno,tv_org+66  012303 4-88 equ intrpts1,tv_org+67 012304 4-89 equ hexwd,tv_org+68  012305 4-90 equ find_disk,tv_org+69  012306 4-91 equ find_root,tv_org+70  012307 4-92 equ find_part,tv_org+71  012310 4-93 equ check_status_no_stat,tv_org+72 012311 4-94 equ check_special_status,tv_org+73 012312 4-95 equ check_cpu_type,tv_org+74  012313 4-96 equ getportinfo,tv_org+75  4-97  4-98 " End of include file ...... bos_tv.incl.alm  4-99  880  881 include bos_common 5-1 "  5-2 " Begin include file ...... bos_common.incl.alm 5-3 " Modified on 8/31/76 by N. I. Morris  5-4 " Modified on 9/01/80 by Sherman D. Sprague for DPS8 operation  5-5 " Modified on 5/26/82 by Sherman D. Sprague to lengthen config size 5-6 " Modified on 3/01/83 by Sherman D. Sprague to lengthen dirlen  5-7 " MACHINE CONDITIONS AREA  5-8 " Its length is "storlen". 5-9  000000 5-10 equ amptwregs,0 Ass. Mem PTW registers  000100 5-11 equ amptwptr,64 Ass. Mem PTW pointers 000200 5-12 equ amsdwregs,128 Ass. Mem SDW registers  000400 5-13 equ amsdwptr,256 Ass. Mem SDW pointers  000500 5-14 equ ouhist,320 operations hist regs  000700 5-15 equ cuhist,448 control unit hist regs  001100 5-16 equ eishist,576 eis hist regs  001300 5-17 equ aphist,704 appending unit hist regs  001500 5-18 equ prs,832 pointer regs  001520 5-19 equ regs,848 sreg 001530 5-20 equ low_order_port,856 port to read clock from 001532 5-21 equ mctime,858 bootload memory clock  001540 5-22 equ scu,864  001550 5-23 equ mcm,872 memory masks 8 ports 001570 5-24 equ dbr,888  001572 5-25 equ intrpts,890 waiting interrupts 001573 5-26 equ bar,891 bar  001574 5-27 equ modereg,892 processor & cache mode registers  001576 5-28 equ faultreg,894 processor fault register  001600 5-29 equ ptrlen,896 pointer-lengths EIS 0 mod 8 001610 5-30 equ coreblocks,904 array of port information  5-31 " Bits 0-17 => num 1st 64-word block  5-32 " Bits 18-35 => num of 64-word blocks  5-33 " (-1) => no mem on this port  001620 5-34 equ lowport_cfg,912 Saved CFG from bootload SCU  5-35  002000 5-36 equ storlen,1024  5-37  5-38  5-39  5-40 " BOS COMMAND DIRECTORY 5-41 " Its length is "dirlen".  5-42  002000 5-43 equ dir,1024 ( 0-23) => sector # of first sector on BOS disk  5-44 " (24-35) => # of sectors in BOS common  002001 5-45 equ used,dir+1 ( 0-23) => # of next available sector on BOS disk  002002 5-46 equ useable,dir+2 ( 0-23) => first unavailable sector on BOS disk  002003 5-47 equ corearea,dir+3 ( 0-23) => starting sector of Multics core image  5-48 " (24-35) => # of sectors in Multics core image  002004 5-49 equ setuparea,dir+4 Sector and length of setup 002005 5-50 equ utilarea,dir+5 where utility package is kept  002010 5-51 equ iom_mxbase,dir+8 IOM IMW area address  002011 5-52 equ iom_mbbase,dir+9 IOM mailbox base  002012 5-53 equ bos_dvt,dir+10 BOS disk loc: (o3/iom,o6/chn,o9/drive,o18/devtype)  002013 5-54 equ unitgroup,dir+11 disk unitgroup (device no. or area no.)  002014 5-55 equ diskchanno,dir+12 channel to be used for disk  002015 5-56 equ tapechanno,dir+13 channel # for tapes  002016 5-57 equ rdrchanno,dir+14 channel number for card reader  002017 5-58 equ ttychanno,dir+15 channel # for operator's tty  002020 5-59 equ quietsw,dir+16 if on, don't print card and macro commands  002021 5-60 equ inputsw,dir+17 read from tty, cards, macros  002022 5-61 equ macroloc,dir+18 disk addr, buffer index of macro file  002023 5-62 equ fdump_state,dir+19 completion flag for last FDUMP  002024 5-63 equ d355_state,dir+20 = 1 if DataNet 355 loaded successfully  002025 5-64 equ skipsw,dir+21 if on, skip runcom lines 002026 5-65 equ ttypmtsw,dir+22 if on, prompt  002027 5-66 equ curtcmd,dir+23 current bos command 002030 5-67 equ readysw,dir+24 if on, print ready message  002032 5-68 equ cmdlst,dir+26 list of commands 5-69  000600 5-70 equ dirlen,384 5-71  5-72  5-73  5-74 " MACRO BUFFER AREA 5-75  002600 5-76 equ macrobuf,dir+dirlen io buffer for macro files 002700 5-77 equ macroline,macrobuf+64 runcom command line 002716 5-78 equ macroargs,macroline+14 argument descriptors for runcom  5-79  5-80  5-81  5-82 " CONFIGURATION CARD AREA  5-83 " Its length is 2048 words.  5-84  003000 5-85 equ conf,macrobuf+128 start of configuration info  007000 5-86 equ econf,conf+2048 end of configuration info  000020 5-87 equ confl,16 length of each line  5-88  5-89  007000 5-90 equ seg6length,econf length of bos_common area segment 5-91  5-92 " End of include file ...... bos_common.incl.alm  5-93  005170 882 bss patch,150 this things gonna work! 883 end  LITERALS 005416 aa 777777 777777 005417 aa 202251 312526 005420 aa 516445 234644 005421 aa 224662 432122 005422 aa 266643 462124 005423 aa 202064 633143 005424 aa 777777 770777 005425 aa 000000 000020 005426 aa 000001 000043 005427 aa 000000 000000 005430 aa 444723 224663 005431 aa 647777 007777 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 005432 5a 000003 000000 005433 5a 000017 600000 005434 aa 000000 000000 005435 55 000010 000002 005436 5a 000002 400003 005437 55 000006 000010 005440 aa 006 142 157 163 005441 aa 164 141 160 000 005442 55 000002 000003 005443 6a 000000 400002 005444 55 000013 000003 005445 aa 014 163 171 155 symbol_table  005446 aa 142 157 154 137 005447 aa 164 141 142 154 005450 aa 145 000 000 000 DEFINITIONS HASH TABLE  005451 aa 000000 000015 005452 aa 000000 000000 005453 aa 000000 000000 005454 aa 000000 000000 005455 aa 000000 000000 005456 aa 000000 000000 005457 aa 000000 000000 005460 5a 000010 000000 005461 aa 000000 000000 005462 aa 000000 000000 005463 aa 000000 000000 005464 aa 000000 000000 005465 aa 000000 000000 005466 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  005467 aa 000001 000000 005470 aa 000000 000000 INTERNAL EXPRESSION WORDS 005471 aa 000000 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 005432 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 223526 213607 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000010 000002 000016 aa 000064 000000 000017 aa 000000 000510 000020 aa 000000 000175 000021 aa 000000 000474 000022 aa 000477 000175 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 000006 000066 aa 000116 000027 000067 aa 122721 273002 000070 aa 000000 112272 000071 aa 215430 400000 000072 aa 000124 000040 000073 aa 113400 415301 000074 aa 000000 111341 000075 aa 220414 400000 000076 aa 000134 000032 000077 aa 112741 326631 000100 aa 000000 111274 000101 aa 624414 000000 000102 aa 000143 000041 000103 aa 105543 476637 000104 aa 000000 110555 000105 aa 260135 200000 000106 aa 000154 000040 000107 aa 110235 072677 000110 aa 000000 111024 000111 aa 524460 600000 000112 aa 000164 000044 000113 aa 121622 277475 000114 aa 000000 112162 000115 aa 321563 400000 000116 aa 076163 160145 >spec>h>3.17>bostap.alm 000117 aa 143076 150076 000120 aa 063056 061067 000121 aa 076142 157163 000122 aa 164141 160056 000123 aa 141154 155040 000124 aa 076154 144144 >ldd>bos>include>bosequ.incl.alm  000125 aa 076142 157163 000126 aa 076151 156143 000127 aa 154165 144145 000130 aa 076142 157163 000131 aa 145161 165056 000132 aa 151156 143154 000133 aa 056141 154155 000134 aa 076154 144144 >ldd>include>slte.incl.alm  000135 aa 076151 156143 000136 aa 154165 144145 000137 aa 076163 154164 000140 aa 145056 151156 000141 aa 143154 056141 000142 aa 154155 040040 000143 aa 076154 144144 >ldd>bos>include>bos_sdw.incl.alm  000144 aa 076142 157163 000145 aa 076151 156143 000146 aa 154165 144145 000147 aa 076142 157163 000150 aa 137163 144167 000151 aa 056151 156143 000152 aa 154056 141154 000153 aa 155040 040040 000154 aa 076154 144144 >ldd>bos>include>bos_tv.incl.alm  000155 aa 076142 157163 000156 aa 076151 156143 000157 aa 154165 144145 000160 aa 076142 157163 000161 aa 137164 166056 000162 aa 151156 143154 000163 aa 056141 154155 000164 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000165 aa 076142 157163 000166 aa 076151 156143 000167 aa 154165 144145 000170 aa 076142 157163 000171 aa 137143 157155 000172 aa 155157 156056 000173 aa 151156 143154 000174 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  506 .ascii bostap: 331, 479.  426 adjust_firmware bostap: 326, 421.  12233 amaxio bos_tv: 48. 12224 amdvt bos_tv: 41. 12225 amfirst bos_tv: 42. 12226 amlast bos_tv: 43. 100 amptwptr bos_common: 11. 0 amptwregs bos_common: 10. 400 amsdwptr bos_common: 13. 200 amsdwregs bos_common: 12. 1300 aphist bos_common: 17. 12040 arg bos_tv: 14, 15.  12222 argbos bos_tv: 39. 75 argend bostap: 52, 90.  17 arglen bosequ: 17, bos_tv: 15, 16, 17. 16 arglp bostap: 50, 87.  12223 argmul bos_tv: 40. 12201 arg_count bos_tv: 22. 12255 asge bos_tv: 66. 12256 asgetab bos_tv: 67. 42 badreq bostap: 67, 74.  624 bad_den bostap: 525, 582.  1573 bar bos_common: 26. 2 bf bostap: 368, 375, 382, 389,  bosequ: 9. 171 bfsw bostap: 56, 173, 344. 254 bitlist bostap: 271, 276, 292. 12217 bosmul bos_tv: 36. 12214 bosphy bos_tv: 33. 2012 bos_dvt bos_common: 53. 511 bos_tape_label bostap: 113, 481.  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. 1015 check_tape_status bostap: 566, 717, 744. 2032 cmdlst bostap: 186, 267, 288, bos_common: 68. 6 com bostap: 188, 226, 244, 256, 285, bosequ: 14. 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. 56 denerr bostap: 69, 81.  475 dentb bostap: 64, 65, 465. 503 dentbend bostap: 65, 472.  2000 dir bostap: 203, 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 bostap: 203, bos_common: 70, 76.  504 dir_goods bostap: 286, 294, 305, 313, 324, 348, 459, 477.  2014 diskchanno bos_common: 55. 12236 disk_brief bos_tv: 51. 1075 dobad bostap: 800, 805.  1064 dotape bostap: 681, 768, 783, 793.  145 do_all bostap: 118, 143.  244 do_all_else bostap: 161, 266.  1071 do_command bostap: 795, 798.  140 do_runcoms bostap: 119, 130.  0 ds bostap: 99, bosequ: 7. 1073 dx bostap: 793, 803, 805. 12100 earg bos_tv: 16, 17.  7000 econf bos_common: 86, 90.  1100 eishist bos_common: 16. 12243 erbuf bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt bostap: 76, 82, 122, 231, 346, 457, 582, 687, 749, bos_tv: 54. 457 fatal_read_error bostap: 301, 369, 456. 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. 165 finish_up bostap: 136, 165.  2000 firmware_bit bostap: 245, 325,  bosequ: 20. 12120 fltscu bos_tv: 17. 510 fw. bostap: 443, 480.  12253 geas bos_tv: 64. 316 geas1 bostap: 92, 322.  410 geas2 bostap: 93, 398.  454 geas3 bostap: 94, 449.  12254 geastab bostap: 91, bos_tv: 65. 12264 getconf bos_tv: 73. 12265 getmore bos_tv: 74. 12273 getmpc bos_tv: 80. 12266 getperiph bos_tv: 75. 12313 getportinfo bos_tv: 96. 12250 getprt bos_tv: 61. 12207 getsec bos_tv: 28. 12275 get_special_interrupt bos_tv: 82. 12276 get_status_interrupt bos_tv: 83. 516 hcw bostap: 489. 1130 hdr bostap: 545, 546, 571, 622, 623, 657, 659, 665, 667, 698, 702, 703,  705, 706, 711, 712, 722, 724, 761, 762, 772, 774, 779, 852.  12304 hexwd bos_tv: 89. 12300 initint bos_tv: 85. 12271 init_io bostap: 35, bos_tv: 78. 2021 inputsw 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. 237 is_it_bcd bostap: 132, 255.  232 is_it_firmware bostap: 156, 243.  12237 itaper bos_tv: 52. 12240 itapew bostap: 522, bos_tv: 53. 3150 labbuf bostap: 530, 532, 534, 541, 542, 543, 544, 550, 558, 559, 564, 871.  173 lblsw bostap: 116, 175, 303. 600 lcksum bostap: 539, 557.  12206 ldcom bos_tv: 27. 0 lhdr bostap: 507, 541, 542, 559.  12001 line bostap: 383, 393, 396, bos_tv: 13, 14.  12257 ljust bostap: 314, bos_tv: 68. 12220 lookup_devmodel bos_tv: 37. 231 lose_temp bostap: 75, 78, 229, 233, 237. 1620 lowport_cfg bos_common: 34. 1530 low_order_port bos_common: 20. 2010 ltlr bostap: 509, 543, 544, 558.  2716 macroargs bos_common: 78. 2600 macrobuf bos_common: 76, 77, 85. 2700 macroline bos_common: 77, 78.  2022 macroloc bos_common: 61. 12205 makefil bos_tv: 26. 12221 makesdw bostap: 97, bos_tv: 38. 1550 mcm bos_common: 23. 1532 mctime bos_common: 21. 7 mem bostap: 40, 41, 50, 171,  bosequ: 15. 1574 modereg bos_common: 27. 12216 mulbos bos_tv: 35. 216 must_be bostap: 108, 145, 150, 225.  525 name bostap: 321, 332, 439, 440, 444, 448, 494. 524 namelen bostap: 336, 493.  12202 nextline bos_tv: 23. 12203 nlraw bos_tv: 24. 125 no_init bostap: 114, 121.  346 no_report bostap: 345, 350.  73 nxtarg bostap: 57, 62, 72, 86.  12252 octwd bos_tv: 63. 621 optw.x2 bostap: 518, 519, 552, 578, 585. 500 ouhist bos_common: 14. 12000 pagectl bos_tv: 12, 13.  5170 patch bostap: 882. 3 pgm bosequ: 10. 12215 phyadd bos_tv: 34. 12213 phybos bos_tv: 32. 1130 phyrec bostap: 715, 851, 869. 2020 phyrecl bostap: 527, 564, 715, 869, 871. 1500 prs bos_common: 18. 1600 ptrlen bos_common: 29. 12251 punch bos_tv: 62. 2020 quietsw bos_common: 59. 12267 rdclock bos_tv: 76. 12211 rdev bos_tv: 30. 2016 rdrchanno bos_common: 57. 12234 rdsec bostap: 299, 367,  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. 20 reel_id bostap: 510, 550.  1520 regs bos_common: 19. 1063 rewx bostap: 778, 786.  12260 rjust bos_tv: 69. 172 runcomsw bostap: 61, 117, 174. 4000 runcom_bit bostap: 257, 295, 327, 366,  bosequ: 19. 421 runcom_end bostap: 377, 411.  365 runcom_loop bostap: 374, 409.  356 runcom_to_ascii bostap: 296, 365.  12200 scan bos_tv: 21. 174 scan_dir bostap: 107, 131, 144, 149, 155, 160, 184. 214 scan_dir.fine bostap: 198, 213.  176 scan_dir.lp bostap: 187, 204.  206 scan_dir.next bostap: 189, 201.  214 scan_dir.x2 bostap: 185, 195, 208, 212.  205 scan_dir.x7 bostap: 190, 199.  1540 scu bos_common: 22. 14 sdw.add_shift bos_sdw: 4. 377770 sdw.bound bos_sdw: 12. 40000 sdw.cache bos_sdw: 20. 4 sdw.df bos_sdw: 9. 37777 sdw.entry_bound bos_sdw: 21. 100000 sdw.entry_bound_sw bos_sdw: 19. 2 sdw.execute bos_sdw: 14. 3 sdw.fault_code bos_sdw: 10. 400000 sdw.privileged bos_sdw: 17. 7000 sdw.r1 bos_sdw: 5. 700 sdw.r2 bos_sdw: 6. 70 sdw.r3 bos_sdw: 7. 4 sdw.read bos_sdw: 13. 200000 sdw.unpaged bos_sdw: 18. 1 sdw.write bos_sdw: 15. 12204 search bos_tv: 25. 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. 575 set_lab bostap: 551, 553.  330 set_namelen bostap: 328, 335, 452. 535 sgcw bostap: 343, 495.  2025 skipsw bos_common: 64. 517 slte bostap: 308, 337, 415, 422, 433, 490.  10000 slte.abs_seg slte: 86. 1 slte.abs_seg_word slte: 85. 17 slte.access_mask slte: 82. 40 slte.access_shift slte: 81. 1 slte.access_word slte: 80. 1 slte.acl_provided slte: 98. 1 slte.acl_provided_word slte: 97. 0 slte.bit_count_shift slte: 130. 3 slte.bit_count_word bostap: 308, 337, 415, 422, 433, slte: 129. 40000 slte.branch_required slte: 100. 1 slte.branch_required_word slte: 99.  20000 slte.cache slte: 84. 1 slte.cache_word slte: 83. 400 slte.combine_link slte: 112. 1 slte.combine_link_word slte: 111. 777 slte.cur_length_mask slte: 120. 33 slte.cur_length_shift slte: 119. 2 slte.cur_length_word slte: 118. 100 slte.defs slte: 116. 1 slte.defs_word slte: 115. 4000 slte.firmware_seg slte: 88. 1 slte.firmware_seg_word slte: 87. 20000 slte.init_seg slte: 102. 1 slte.init_seg_word slte: 101. 2000 slte.layout_seg slte: 90. 1 slte.layout_seg_word slte: 89. 4000 slte.link_provided slte: 106. 1 slte.link_provided_word slte: 105. 2000 slte.link_sect slte: 108. 1000 slte.link_sect_wired slte: 110. 1 slte.link_sect_wired_word slte: 109.  1 slte.link_sect_word slte: 107. 777 slte.max_length_mask slte: 128. 30 slte.max_length_shift slte: 127. 3 slte.max_length_word slte: 126. 0 slte.names_ptr slte: 77. 20 slte.paged slte: 94. 1 slte.paged_word slte: 93. 0 slte.path_ptr slte: 78. 10 slte.per_process slte: 96. 1 slte.per_process_word slte: 95. 200 slte.pre_linked slte: 114. 1 slte.pre_linked_word slte: 113. 7 slte.ringbrack_mask slte: 123. 30 slte.ringbrack_shift slte: 122. 2 slte.ringbrack_word slte: 121. 2 slte.segno slte: 124. 10000 slte.temp_seg slte: 104. 1 slte.temp_seg_word slte: 103. 40 slte.wired slte: 92. 1 slte.wired_word slte: 91. 4 slte_size slte: 75. 10000 slte_uns.abs_seg slte: 26. 1 slte_uns.abs_seg_word slte: 25. 17 slte_uns.access_mask slte: 22. 40 slte_uns.access_shift slte: 21. 1 slte_uns.access_word slte: 20. 1 slte_uns.acl_provided slte: 38. 1 slte_uns.acl_provided_word slte: 37.  0 slte_uns.bit_count_shift slte: 70.  3 slte_uns.bit_count_word slte: 69. 40000 slte_uns.branch_required slte: 40.  1 slte_uns.branch_required_word slte: 39.  20000 slte_uns.cache slte: 24. 1 slte_uns.cache_word slte: 23. 400 slte_uns.combine_link slte: 52. 1 slte_uns.combine_link_word slte: 51.  777 slte_uns.cur_length_mask slte: 60.  33 slte_uns.cur_length_shift slte: 59.  2 slte_uns.cur_length_word slte: 58.  100 slte_uns.defs slte: 56. 1 slte_uns.defs_word slte: 55. 4000 slte_uns.firmware_seg slte: 28. 1 slte_uns.firmware_seg_word slte: 27.  20000 slte_uns.init_seg slte: 42. 1 slte_uns.init_seg_word slte: 41. 2000 slte_uns.layout_seg slte: 30. 1 slte_uns.layout_seg_word slte: 29.  4000 slte_uns.link_provided slte: 46. 1 slte_uns.link_provided_word slte: 45.  2000 slte_uns.link_sect slte: 48. 1000 slte_uns.link_sect_wired slte: 50.  1 slte_uns.link_sect_wired_word slte: 49.  1 slte_uns.link_sect_word slte: 47. 777 slte_uns.max_length_mask slte: 68.  30 slte_uns.max_length_shift slte: 67.  3 slte_uns.max_length_word slte: 66.  0 slte_uns.names_ptr slte: 17. 20 slte_uns.paged slte: 34. 1 slte_uns.paged_word slte: 33. 0 slte_uns.path_ptr slte: 18. 10 slte_uns.per_process slte: 36. 1 slte_uns.per_process_word slte: 35.  200 slte_uns.pre_linked slte: 54. 1 slte_uns.pre_linked_word slte: 53.  7 slte_uns.ringbrack_mask slte: 63. 30 slte_uns.ringbrack_shift slte: 62.  2 slte_uns.ringbrack_word slte: 61. 2 slte_uns.segno slte: 64. 10000 slte_uns.temp_seg slte: 44. 1 slte_uns.temp_seg_word slte: 43. 40 slte_uns.wired slte: 32. 1 slte_uns.wired_word slte: 31. 4 slte_uns_size slte: 15. 516 slthdrbegin bostap: 354, 488, 496. 20 slthdrlen bostap: 353, 489, 496. 2000 storlen bos_common: 36. 12262 stripa bos_tv: 71. 12263 stripg bostap: 316, 392,  bos_tv: 72. 2015 tapechanno bos_common: 56. 1124 tapeden bostap: 68, 71, 102, 105, 524, 584, 840. 1123 tapeno bostap: 48, 523, 565, 716, 799, 839.  1121 tbufleft bostap: 574, 603, 605, 618, 646, 732, 837. 1122 tbufoff bostap: 572, 606, 615, 645, 730, 838.  3140 tlr bostap: 547, 548, 569, 700, 707, 708, 711, 720, 771, 780, 781, 782, 862. 604 tlw_retry bostap: 560, 561.  1 tmp bostap: 99, 300, 359, 397, 406, 427, 435, 529,  bosequ: 8. 1140 tpbuf bostap: 611, 652, 672, 860.  1077 tpcks_new bostap: 557, 710, 812. 1117 tpckx0 bostap: 813, 829.  712 tpeot.1 bostap: 649, 654.  750 tpeot.x2 bostap: 642, 643, 691. 1127 tperrors bostap: 520, 689, 758, 844.  1125 tpfirsterr bostap: 568, 719, 746, 841.  2000 tpn bostap: 506, 573, 621, 669, 731, 855, 860. 1031 tpquiet bostap: 747, 753.  1053 tprew bostap: 461, 562, 685, 778.  760 tprewt bostap: 702, 713.  1126 tpstatus bostap: 745, 751, 753, 843.  1036 tpwbad bostap: 760. 1042 tpweof bostap: 576, 662, 677, 727, 767. 1052 tpwex2 bostap: 767, 775.  753 tpwrit bostap: 625, 660, 674, 696.  1012 tpwx2 bostap: 696, 697, 734. 2017 ttychanno bos_common: 58. 12245 ttyinit bostap: 36, bos_tv: 58. 2026 ttypmtsw bos_common: 65. 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.  560 v1lbl bostap: 536, 539.  10 v2hdr bostap: 508, 537, 538. 12301 wantflt bos_tv: 86. 12212 wdev bos_tv: 31. 306 wf.cv_name bostap: 312, 417.  503 wf.temp bostap: 315, 317, 320, 340, 349, 358, 386, 387, 401, 402, 436, 447, 474. 354 wf.x2 bostap: 284, 304, 360. 605 wlab bostap: 563. 644 writape_data bostap: 352, 357, 596. 700 writape_end bostap: 167, 641.  536 writape_init bostap: 112, 517.  261 write_file bostap: 227, 248, 260, 274, 283. 650 ws.loop bostap: 603, 628.  677 ws.rql bostap: 600, 617, 627, 633.  675 ws.x2 bostap: 597, 619, 630. 12235 wtsec bos_tv: 50. 166 x2 bostap: 33, 37, 39, 79, 84, 98, 124, 169, 235, 463.  12277 xio_wait bostap: 563, 714, 796, bos_tv: 84. 4 xs1 bostap: 601, 610, 613, 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