ASSEMBLY LISTING OF SEGMENT >spec>h>3.17>blast.alm ASSEMBLED ON: 11/29/83 1519.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 " * Copyright (c) 1972 by Massachusetts Institute of *  6 " * Technology and Honeywell Information Systems, Inc. *  7 " * *  8 " ***********************************************************  9  10 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 11 "  12 " BLAST - this bos program is used to force messages out to all 13 " tty's that are currently dialed up. The  14 " command takes the following arguments:  15 "  16 " fnp_tag - A, B, C, or D  17 "  18 " HANGUP - hangup all tty's by dropping dtr on all datasets  19 "  20 " CRASH - send standard message of the form  21 " "MULTICS NOT IN OPERATION AT time"  22 "  23 " absence of either HANGUP or CRASH will cause blast to  24 " type the message "type message" to the operator and then 25 " will send the message typed by the operator to all tty's 26 "  27 "  28 " Originally written by Stan Dunten for GIOC on some unknown date  29 " Rewritten by R. Snyder for DataNet-355 on April 6, 1973  30 " Modified by Robert Coren for MCS/355 on April 8, 1975 31 " Largely rewritten by Robert Coren to send single mailbox on June 1, 1976  32 " Modified April, 1981, by Charlie Hornig to move the 355 mailbox  33 "  34 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 35  000000 36 name blast 37 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  38  39  40 " mailbox opcodes and commands  41  000003 42 bool wcd,3 000004 43 bool wtx,4 000011 44 bool blast_op,011  000002 45 bool disconnect_all,002  46  000000 0a 000376 7420 00 47 stx2 x2 save our return location  000001 aa 012300 7020 00 48 tsx2 initint initialize for interrupts  000002 0a 000376 0000 00 49 arg execint here if we get execute interrupt  000003 aa 012271 7020 00 50 tsx2 init_io init io package  000004 aa 012245 7020 00 51 tsx2 ttyinit set up to take interrupt from  000005 0a 000376 0000 00 52 arg ttyrequest operators console here  53  000006 aa 012243 6270 51 54 eax7 erbuf,i get pointer to erpt buffer  000007 0a 000131 7470 00 55 stx7 erbp and save it 56  000010 0a 000376 2220 00 57 ldx2 x2  000011 aa 7 00000 2201 12 58 ldx0 mem|0,2 get arg list 000012 0a 000474 0540 00 59 aos all_sw default is all 355s  000013 60 arglp:  000013 aa 000001 6200 10 61 eax0 1,0 get next arg 000014 aa 7 00000 2351 10 62 lda mem|0,0  000015 0a 001146 1150 00 63 cmpa =-1 is there one?  000016 0a 000061 6000 00 64 tze argend no 65  000017 0a 001147 1150 00 66 cmpa =h crash yes, is it crash?  000020 0a 000023 6010 00 67 tnz narg1 no, look for something else 000021 0a 000475 0540 00 68 aos crash_sw yes, mark it 000022 0a 000013 7100 00 69 tra arglp get next  70  000023 0a 001150 1150 00 71 narg1: cmpa =hhangup not crash, is it hangup?  000024 0a 000027 6010 00 72 tnz narg2 no, should be 355 tag  000025 0a 000476 0540 00 73 aos hangup_sw yes, mark it  000026 0a 000013 7100 00 74 tra arglp get next  75  000027 aa 000000 2360 07 76 narg2: ldq 0,dl should be tag  000030 aa 000006 7730 00 77 lrl 6 get last character in q(0-5)  000031 0a 001151 1150 00 78 cmpa =o002020202020 is the rest blank? 000032 0a 000047 6010 00 79 tnz argerr no, it's faulty  000033 0a 000036 7560 00 80 stq *+3 put character in descriptor  000034 aa 000003 1244 00 81 scm (),(du),mask(0) check for 355 tag  000035 0a 000477 020004 82 desc6a which_list,max_no_355s  000036 aa 000000 0000 00 83 arg 0 argument goes here  000037 0a 000500 0000 00 84 arg temp_355n result goes here  000040 0a 000047 6064 00 85 ttn argerr search failed  86  000041 0a 000500 2350 00 87 lda temp_355n now we have number  000042 aa 000001 0750 07 88 ada 1,dl increment so as to be 1 to 4 000043 0a 000501 7550 00 89 sta which_355 save it 000044 0a 000474 4500 00 90 stz all_sw not doing all now  000045 0a 001142 0540 00 91 aos conf355err so we'll want to see error message  000046 0a 000013 7100 00 92 tra arglp next arg  93  000047 aa 7 00000 2351 10 94 argerr: lda mem|0,0 get arg again  000050 0a 000502 7550 00 95 sta badarg store it for printing  000051 aa 012241 7020 00 96 tsx2 erpt complain  000052 aa 021 136 147 040 97 acc '^g not recognized'  000053 aa 156 157 164 040 000054 aa 162 145 143 157 000055 aa 147 156 151 172 000056 aa 145 144 000 000 000057 0a 000502 0000 00 98 arg badarg 99  000060 0a 000376 7100 00 100 tra x2 return 101  000061 0a 000476 2340 00 102 argend: szn hangup_sw did we say hangup?  000062 0a 000101 6000 00 103 tze check_crash no  000063 0a 000475 2340 00 104 szn crash_sw yes, did we say crash also?  000064 0a 000206 6000 00 105 tze join no, okay 106  000065 aa 012241 7020 00 107 tsx2 erpt mustn't try to do both  000066 aa 044 143 141 156 108 acc 'cannot specify both crash and hangup' 000067 aa 156 157 164 040 000070 aa 163 160 145 143 000071 aa 151 146 171 040 000072 aa 142 157 164 150 000073 aa 040 143 162 141 000074 aa 163 150 040 141 000075 aa 156 144 040 150 000076 aa 141 156 147 165 000077 aa 160 000 000 000 109  000100 0a 000376 7100 00 110 tra x2 forget it  111  000101 112 check_crash:  000101 0a 000475 2340 00 113 szn crash_sw crash specified? 000102 0a 000112 6010 00 114 tnz nio go set up message 115  000103 aa 012241 7020 00 116 tsx2 erpt operator wants to send a message  000104 aa 014 164 171 160 117 acc 'type message' 000105 aa 145 040 155 145 000106 aa 163 163 141 147 000107 aa 145 000 000 000 118  000110 aa 012202 7020 00 119 tsx2 nextline go get it  120  000111 0a 000150 7100 00 121 tra get_tally  122 "  123 " 'blast crash' -- format message  124 "  000112 aa 012267 7020 00 125 nio: tsx2 rdclock get the time 000113 0a 000504 7560 00 126 stq hrmin append it to message  000114 aa 012241 7020 00 127 tsx2 erpt print message to get it formated  000115 128 crash_msg:  000115 aa 036 155 165 154 129 acc 'multics not in operation at ^g'  000116 aa 164 151 143 163 000117 aa 040 156 157 164 000120 aa 040 151 156 040 000121 aa 157 160 145 162 000122 aa 141 164 151 157 000123 aa 156 040 141 164 000124 aa 040 136 147 000 000125 0a 000504 0000 00 130 arg hrmin  131 "  000126 aa 012243 2350 00 132 lda erbuf get descriptor for call to stripg  000127 0a 000131 7550 00 133 sta erbp  000130 aa 012263 7020 00 134 tsx2 stripg get real length  000131 aa 000000 020000 135 erbp: desc6a 0,0  000132 aa 000044 7730 00 136 lrl 36 get tally into q  000133 aa 000000 3714 00 137 epp xs2,0 get buffer address in xs2  000134 0a 000131 5654 00 138 aar xs2,erbp ..  000135 0a 000154 7100 00 139 tra on 140  141  000136 142 clock_error:  000136 aa 012241 7020 00 143 tsx2 erpt  000137 aa 034 145 162 162 144 acc 'error reading calendar clock' 000140 aa 157 162 040 162 000141 aa 145 141 144 151 000142 aa 156 147 040 143 000143 aa 141 154 145 156 000144 aa 144 141 162 040 000145 aa 143 154 157 143 000146 aa 153 000 000 000 000147 0a 000376 7100 00 145 tra x2 leave the command  146 "  147 " strip trailing blanks off input message  148 "  000150 149 get_tally:  000150 aa 012263 7020 00 150 tsx2 stripg look for last non-blank  000151 aa 012001 020120 151 desc6a line,80 000152 aa 000044 7730 00 152 lrl 36 line length in Q  000153 aa 012001 3714 00 153 epp xs2,line xs2 -> input line  154  000154 155 on: 000154 aa 0 00040 1605 40 156 mvt (pr,rl),(rl) translate to ascii  000155 aa 500000 020006 157 desc6a xs2|0,ql  000156 0a 000561 400006 158 desc9a ascii_message(2),ql 000157 0a 000717 0000 00 159 arg bcd_to_ascii  160  000160 aa 000006 1004 00 161 mlr (),(ql) put in cr,lf at end  000161 0a 000716 000002 162 desc9a cr_lf,2 000162 0a 000561 400002 163 desc9a ascii_message(2),2  164  000163 aa 000040 1604 40 165 mvt (rl),(rl) translate to ebcdic  000164 0a 000561 400006 166 desc9a ascii_message(2),ql 000165 0a 000506 000006 167 desc9a ebcdic_temp,ql  000166 0a 000737 0000 00 168 arg ascii_to_ebcdic  169  000167 aa 000040 1604 40 170 mvt (rl),(rl) and to correspondence  000170 0a 000561 400006 171 desc9a ascii_message(2),ql 000171 0a 000532 000006 172 desc9a corresp_temp,ql 000172 0a 000777 0000 00 173 arg ascii_to_corresp  174  000173 0a 000463 7560 00 175 stq message_len  000174 aa 000014 0760 07 176 adq 12,dl cr, lf, 8 pads, cr, lf  000175 0a 000556 7560 00 177 stq ascii_tally  178  000176 0a 000506 3700 00 179 epp xs1,ebcdic_temp store shift chars in ebcdic message  000177 0a 000623 3714 00 180 epp xs2,ebcdic_message 000200 0a 000401 7020 00 181 tsx2 shifts  000201 0a 000616 7560 00 182 stq ebcdic_tally  183  000202 0a 000532 3700 00 184 epp xs1,corresp_temp and in correspondence message 000203 0a 000663 3714 00 185 epp xs2,corresp_message  000204 0a 000401 7020 00 186 tsx2 shifts  000205 0a 000656 7560 00 187 stq corresp_tally  188  000206 0a 000501 2350 00 189 join: lda which_355 select the correct 355 000207 0a 001037 7020 00 190 tsx2 conf355 search for fnp config card  000210 0a 000370 7100 00 191 tra next_355 error - go to next  192 "  193 " Initialize 355 mailboxes to zero  194 "  000211 0a 001143 2360 00 195 ldq mbx_offset get offset for this 355's mailbox  000212 aa 000000 6210 06 196 eax1 0,ql copy it to x1  000213 aa 000002 7360 00 197 qls 2 convert to characters  000214 aa 000000 6200 06 198 eax0 0,ql get char offset in x0  199  000215 aa 000110 1004 00 200 mlr (),(pr,x0),fill(0) 000216 aa 000000 000000 201 desc9a 0,0 000217 aa 703410 001000 202 desc9a mem|dn355_mbx.line_number,16*8*4 (16 8-word mailboxes worth of chars)  000220 aa 7 03402 4501 11 203 stz mem|dn355_mbx.timw,1  000221 aa 7 03400 4501 11 204 stz mem|dn355_mbx.pcw,1 make sure pcw is zero  000222 aa 7 03405 4501 11 205 stz mem|dn355_mbx.used,1 likewise all 'used' flags 206  000223 0a 001136 2360 00 207 ldq iom_chan get channel number  000224 aa 000014 2350 07 208 lda 4*3,dl get interrupt cell number  000225 aa 000040 1160 07 209 cmpq 32,dl check channel number  000226 0a 000230 6040 00 210 tmi *+2 ok, continue  000227 aa 000004 1750 07 211 sba 4,dl fix interrupt cell no  000230 0a 001137 0750 00 212 ada iom_no add in iom number  000231 0a 000472 7550 00 213 sta norm_int_cell get it into  000232 0a 000472 7270 00 214 lxl7 norm_int_cell index register 7  000233 aa 6 02010 0271 00 215 adlx7 com|iom_mxbase  000234 aa 7 00000 4501 17 216 stz mem|0,7 clear normal interrupt bits  000235 aa 7 00020 4501 17 217 stz mem|16,7 clear the emergency interrupt bits  218  000236 aa 000037 3760 07 219 anq 31,dl get channel no mod 32  000237 aa 400000 2350 03 220 lda =o400000,du get a bit  000240 aa 000000 7710 06 221 arl 0,ql put into its place  000241 0a 000473 7550 00 222 sta int_bit  223 "  224 " We will now set up a submailbox for the FNP  225 "  000242 0a 001143 7200 00 226 lxl0 mbx_offset  000243 0a 001143 2350 00 227 lda mbx_offset 000244 aa 000010 0750 07 228 ada 8,dl point to mailbox 1 (mailbox 0 is used for checksum)  000245 aa 000000 6210 05 229 eax1 0,al  000246 0a 000476 2340 00 230 szn hangup_sw hangup or output message?  000247 0a 000255 6010 00 231 tnz send_hangup  232  000250 0a 000556 2120 00 233 absa ascii_buffer message, get absolute address of buffer area 000251 aa 000006 7350 00 234 als 6 in high-order 18 bits  000252 aa 7 03415 7551 11 235 sta mem|dn355_mbx.address,1 store it in submailbox 000253 aa 000011 2350 07 236 lda blast_op,dl  000254 0a 000256 7100 00 237 tra set_op_code  238 " hangup, set op code accordingly  000255 239 send_hangup:  000255 aa 000002 2350 07 240 lda disconnect_all,dl  000256 241 set_op_code:  000256 aa 000011 7350 00 242 als 9  000257 aa 000003 2750 07 243 ora wcd,dl 000260 aa 7 03411 7551 11 244 sta mem|dn355_mbx.opcode,1 245 "  246 " now compute checksum  247 "  000261 aa 003410 6350 11 248 eaa dn355_mbx.line_number,1 get address of mbx in a reg  000262 aa 003640 2750 07 249 ora =o3640,dl get tally and 9-bit char indicator  000263 aa 7 03410 7551 00 250 sta mem|dn355_mbx.tally_temp store in mailbox 0 of 355 a  000264 0a 000464 4500 00 251 stz checksum clear checksum  000265 252 cksm_loop:  000265 aa 7 03410 2351 52 253 lda mem|dn355_mbx.tally_temp,sc get a 9 bit character 000266 0a 000464 0550 00 254 asa checksum add 9 bits at a time 000267 0a 000265 6070 00 255 ttf cksm_loop keep going  000270 0a 000464 7230 00 256 lxl3 checksum put checksum in mbx 000271 aa 7 03417 4431 11 257 sxl3 mem|dn355_mbx.cksm,1  000272 aa 000001 2350 07 258 lda 1,dl get number of mbx we just filled 000273 aa 000006 7350 00 259 als 6 position it in pcw  000274 aa 000071 2750 07 260 ora =o71,dl or in interrupt 355 op code  261 odd no lockups please  000275 aa 7 03400 2341 10 262 szn mem|dn355_mbx.pcw,0 make sure previous connect done  000276 0a 000275 6010 00 263 tnz *-1  000277 aa 7 03400 7551 10 264 sta mem|dn355_mbx.pcw,0 store pcw in mbx  000300 aa 000000 7740 00 265 gtb 0 calculate parity on pcw 000301 aa 000001 3750 07 266 ana 1,dl test for odd or even 000302 aa 000003 6010 04 267 tnz 3,ic odd  000303 aa 020000 2350 07 268 lda =o020000,dl even - set parity bit  000304 aa 7 03400 2551 10 269 orsa mem|dn355_mbx.pcw,0  000305 0a 000473 2350 00 270 lda int_bit get interrupt bit 000306 0a 000472 7270 00 271 lxl7 norm_int_cell get cell number 000307 aa 6 02010 0271 00 272 adlx7 com|iom_mxbase  000310 aa 7 00020 3151 17 273 cana mem|16,7 look at emergency int bit  000311 0a 000351 6010 00 274 tnz emergency_interrupt it died...so we have to too  000312 aa 012272 7020 00 275 tsx2 connect_iom  000313 0a 001132 000000 276 zero diapcw,0 poke the 355  277 "  000314 0a 000476 2340 00 278 szn hangup_sw did we send hangup? 000315 0a 000370 6010 00 279 tnz next_355 yes, skip this, 355 won't answer 000316 aa 000040 4130 00 280 rscr 4*8 get time 000317 0a 000466 7570 00 281 staq begin_wait save it  000320 0a 000472 7270 00 282 lxl7 norm_int_cell get addr of cells  000321 aa 6 02010 0271 00 283 adlx7 com|iom_mxbase add in base of iom mbx  284  000322 285 wait_for_int:  000322 0a 000473 2350 00 286 lda int_bit pick up bit  000323 aa 7 00000 3151 17 287 cana mem|0,7 was it regular interrupt?  000324 0a 000370 6010 00 288 tnz next_355 yes, go on to next  289  000325 aa 7 00020 3151 17 290 cana mem|16,7 was it emergency interrupt? 000326 0a 000351 6010 00 291 tnz emergency_interrupt yes, print message 292  000327 aa 000040 4130 00 293 rscr 4*8 read the clock  000330 0a 000466 1770 00 294 sbaq begin_wait see if we have waited over 1 second yet  000331 0a 000470 1170 00 295 cmpaq default_waittime ..  000332 0a 000322 6040 00 296 tmi wait_for_int no - loop around some more  297 "  298 " waited too long, 355 must be down 299 "  000333 0a 000501 2350 00 300 lda which_355 get 355 number  000334 aa 000140 0750 07 301 ada =o140,dl convert to letter  000335 aa 000033 7350 00 302 als 27 put 3 blanks after it  000336 0a 001152 2750 00 303 ora =o040040040  000337 0a 000502 7550 00 304 sta badarg store it for erpt  000340 aa 012241 7020 00 305 tsx2 erpt must have crashed  000341 aa 027 156 157 040 306 acc 'no response from FNP ^a'  000342 aa 162 145 163 160 000343 aa 157 156 163 145 000344 aa 040 146 162 157 000345 aa 155 040 106 116 000346 aa 120 040 136 141 000347 0a 000502 0000 00 307 arg badarg 000350 0a 000370 7100 00 308 tra next_355  309 "  310 " Come here if we receive an emergency interrupt from 355  311 "  000351 312 emergency_interrupt:  000351 0a 000501 2350 00 313 lda which_355 get 355 number  000352 aa 000140 0750 07 314 ada =o140,dl convert to letter  000353 aa 000033 7350 00 315 als 27 put 3 blanks after it  000354 0a 001152 2750 00 316 ora =o040040040  000355 0a 000502 7550 00 317 sta badarg store it for erpt  000356 aa 012241 7020 00 318 tsx2 erpt  000357 aa 037 145 155 145 319 acc 'emergency interrupt from FNP ^a'  000360 aa 162 147 145 156 000361 aa 143 171 040 151 000362 aa 156 164 145 162 000363 aa 162 165 160 164 000364 aa 040 146 162 157 000365 aa 155 040 106 116 000366 aa 120 040 136 141 000367 0a 000502 0000 00 320 arg badarg 321  000370 322 next_355:  000370 0a 000474 2340 00 323 szn all_sw are we doing all of them?  000371 0a 000376 6000 00 324 tze x2 no, we're done 000372 0a 000501 2350 00 325 lda which_355 find out which one we just did  000373 0a 000501 0540 00 326 aos which_355 increment stored value  000374 aa 000004 1150 07 327 cmpa max_no_355s,dl did we just do the last one?  000375 0a 000206 6040 00 328 tmi join no, go around again  329  330  000376 331 ttyrequest: 000376 332 execint:  000376 0a 000376 6220 00 333 x2: eax2 * restore x2  000377 aa 000001 3350 07 334 lca =1,dl no next command to call 000400 aa 7 00001 7101 12 335 tra mem|1,2 return to setup  336 "  337 "  338 " Subroutine to insert shift characters in messages for IBM terminals  339 " Inputs:  340 " xs1 points to source string  341 " xs2 points to first word of target string  342 " Output:  343 " q contains total message tally  344 "  345 " Translation has left 200 bit on in lowercase characters  346 " and 400 bit on in uppercase characters. Characters with neither bit  347 " on can be either case.  348 "  349 "  000401 350 shifts: 000401 aa 000000 6260 00 351 eax6 0 initial source offset  000402 aa 000002 6270 00 352 eax7 2 initial target offset (starts in midword)  000403 0a 000463 2360 00 353 ldq message_len initial tally  000404 0a 000460 7560 00 354 stq running_tally  355  000405 aa 4 00000 2341 00 356 szn xs1|0 first character upper or lower? 000406 0a 000411 6040 00 357 tmi shift_up upper, put in up-shift  000407 358 shift_down: 000407 aa 000000 6200 00 359 eax0 0 get down-shift offset  000410 0a 000412 7100 00 360 tra insert_shift  000411 361 shift_up:  000411 aa 000001 6200 00 362 eax0 1 get up-shift offset 000412 363 insert_shift:  000412 aa 000117 1004 10 364 mlr (x0),(pr,x7)  000413 0a 000461 000001 365 desc9a shift_chars,1  000414 aa 500000 000001 366 desc9a xs2|0,1 000415 0a 000460 0540 00 367 aos running_tally count shift character  000416 aa 000001 0670 03 368 adx7 1,du  369  000417 0a 000420 7100 10 370 tra shift_test,0 go to correct scan instruction  000420 371 shift_test: 000420 0a 000422 7100 00 372 tra look_for_upper 000421 0a 000427 7100 00 373 tra look_for_lower 374  000422 375 look_for_upper: 000422 aa 3 77003 1245 56 376 scm (pr,x6,rl),(du),mask(377)  000423 aa 400000 000006 377 desc9a xs1|0,ql  000424 aa 400000 000000 378 vfd o18/400000,18/0  000425 0a 000457 0000 00 379 arg shift_count  000426 0a 000433 7100 00 380 tra move_chars 381  000427 382 look_for_lower: 000427 aa 5 77003 1245 56 383 scm (pr,x6,rl),(du),mask(577)  000430 aa 400000 000006 384 desc9a xs1|0,ql  000431 aa 200000 000000 385 vfd o18/200000,18/0  000432 0a 000457 0000 00 386 arg shift_count  387  000433 388 move_chars: "move characters in most recent case  000433 0a 000457 2350 00 389 lda shift_count  000434 aa 0 00157 1005 56 390 mlr (pr,x6,rl),(pr,x7,rl)  000435 aa 400000 000005 391 desc9a xs1|0,al  000436 aa 500000 000005 392 desc9a xs2|0,al  393  000437 aa 000022 7350 00 394 als 18 put length in upper half of a word 000440 0a 000462 7550 00 395 sta add_to_x  000441 0a 000462 0660 00 396 adx6 add_to_x update offsets  000442 0a 000462 0670 00 397 adx7 add_to_x  398  000443 0a 000457 1760 00 399 sbq shift_count reduce tally  000444 0a 000450 6044 00 400 tmoz shift_finished if nothing left, wrap it up  000445 aa 000000 1000 03 401 cmpx0 0,du what was last one? 000446 0a 000411 6000 00 402 tze shift_up it was lower, put in up-shift  000447 0a 000407 7100 00 403 tra shift_down or vice versa  404  000450 405 shift_finished: 000450 aa 055117 1004 00 406 mlr (),(pr,x7),fill(ibmnl) put newline at end  000451 aa 000000 000000 407 desc9a 0,0 000452 aa 500000 000001 408 desc9a xs2|0,1 000453 0a 000460 0540 00 409 aos running_tally  410  000454 0a 000460 2360 00 411 ldq running_tally  000455 aa 000022 0760 07 412 adq 18,dl nl and 17 pads  000456 aa 000000 7100 12 413 tra 0,2 return 414 "  415 "  416 "  417 " storage, etc. for shifts subroutine  418 "  419 "  000457 420 shift_count:  000457 421 bss ,1 000460 422 running_tally:  000460 423 bss ,1 000461 424 shift_chars:  000461 aa 037034 000000 425 vfd o9/down_shift,o9/up_shift  000462 426 add_to_x:  000462 427 bss ,1 000463 428 message_len:  000463 429 bss ,1 430  431  000015 432 bool cr,015  000012 433 bool lf,012  000055 434 bool ibmnl,055 000075 435 bool ibmpad,075  000034 436 bool up_shift,034  000037 437 bool down_shift,037  438  439  440 "  441 " The following bools describe the 355 mailbox  442 "  003400 443 bool dn355_mbx,3400  003400 444 bool dn355_mbx.pcw,dn355_mbx+0 first loc of mbx  003402 445 bool dn355_mbx.timw,dn355_mbx+2 term int mpx word  003405 446 bool dn355_mbx.used,dn355_mbx+5 used flags word in mbx header  003410 447 bool dn355_mbx.tally_temp,dn355_mbx+10 first mailbox used as workspace for checksum  003410 448 bool dn355_mbx.line_number,dn355_mbx+10  003411 449 bool dn355_mbx.opcode,dn355_mbx+11 003415 450 bool dn355_mbx.address,dn355_mbx+15  003417 451 bool dn355_mbx.cksm,dn355_mbx+17  000464 aa 000000 000000 452 checksum: oct 0 000465 aa 000000 0110 03 453 even  000466 454 begin_wait: 000466 455 bss ,2 000470 456 default_waittime:  000470 aa 000000 000000 457 dec 0,1000000 1 second in microseconds  000471 aa 000003 641100 000472 458 norm_int_cell:  000472 aa 000000 000000 459 oct 0  000473 aa 000000 000000 460 int_bit: oct 0  000474 aa 000000 000000 461 all_sw: oct 0 indicates whether to do all 355s 000475 462 crash_sw:  000475 aa 000000 000000 463 oct 0 print crash message 000476 464 hangup_sw:  000476 aa 000000 000000 465 oct 0 hang up lines  466  000477 467 which_list: 000477 aa 212 223 240 000 468 bci 'abcd' used for finding 355 tag  000004 469 equ max_no_355s,4  470  000500 471 temp_355n:  000500 472 bss ,1 000501 473 which_355:  000501 aa 000000 000001 474 oct 1 initially doing first one  475  000502 476 badarg: bss ,1 argument stored for error messages  477  000503 aa 000000 000000 478 temp: oct 0 000504 aa 000000 000000 479 hrmin: oct 0  000505 aa 000000 000000 480 case: oct 0 481  482 "  483 "  000506 484 ebcdic_temp:  000506 485 bss ,20 room for 80 characters  000532 486 corresp_temp:  000532 487 bss ,20 likewise  488 "  489 "  490 " the following is the buffer area. It consists of three double-size (32-word)  491 " buffers, one for ascii, one for ebcdic, one for correspondence.  492 " The actual text of each message starts at the third character 493 " of the word at the label LANG_message.  494 "  495 "  000556 496 ascii_buffer:  000556 497 ascii_tally:  000556 498 bss ,1 tally  000557 aa 015012 000000 499 vfd o9/cr,o9/lf,18/0  000560 aa 000000 000000 500 oct 0 four more pads  000561 501 ascii_message:  000561 502 bss ,29 two more pads, and message  503  000616 504 ebcdic_tally:  000616 505 bss ,1 tally  000617 aa 055075 075075 506 vfd o9/ibmnl,o9/ibmpad,o9/ibmpad,o9/ibmpad 000620 aa 075075 075075 507 vfd o9/ibmpad,o9/ibmpad,o9/ibmpad,o9/ibmpad  000621 aa 075075 075075 508 vfd o9/ibmpad,o9/ibmpad,o9/ibmpad,o9/ibmpad  000622 aa 075075 075075 509 vfd o9/ibmpad,o9/ibmpad,o9/ibmpad,o9/ibmpad  000623 510 ebcdic_message: 000623 aa 075075 000000 511 vfd o9/ibmpad,o9/ibmpad,o18/0  000624 512 bss ,26  513  000656 514 corresp_tally:  000656 515 bss ,1 tally  000657 aa 055075 075075 516 vfd o9/ibmnl,o9/ibmpad,o9/ibmpad,o9/ibmpad 000660 aa 075075 075075 517 vfd o9/ibmpad,o9/ibmpad,o9/ibmpad,o9/ibmpad  000661 aa 075075 075075 518 vfd o9/ibmpad,o9/ibmpad,o9/ibmpad,o9/ibmpad  000662 aa 075075 075075 519 vfd o9/ibmpad,o9/ibmpad,o9/ibmpad,o9/ibmpad  000663 520 corresp_message:  000663 aa 075075 000000 521 vfd o9/ibmpad,o9/ibmpad,18/0  000664 522 bss ,26  523  000716 aa 015012 000000 524 cr_lf: vfd o9/cr,o9/lf,18/0 525 "  526 " translation tables  527 "  528 " translation table, bcd to ascii  529 "  000717 530 bcd_to_ascii:  000717 aa 060 061 062 063 531 aci '0123456789[#@:> ' 000720 aa 064 065 066 067 000721 aa 070 071 133 043 000722 aa 100 072 076 040 000723 aa 040 101 102 103 532 aci ' ABCDEFGHI&.](<\' 000724 aa 104 105 106 107 000725 aa 110 111 046 056 000726 aa 135 050 074 134 000727 aa 174 112 113 114 533 aci "|JKLMNOPQR-$*);'" 000730 aa 115 116 117 120 000731 aa 121 122 055 044 000732 aa 052 051 073 047 000733 aa 053 057 123 124 534 aci '+/STUVWXYZ_,%="!' 000734 aa 125 126 127 130 000735 aa 131 132 137 054 000736 aa 045 075 042 041 535 "  536 "  537 " translation table, ascii to ebcdic  538 "  000737 539 ascii_to_ebcdic:  000737 aa 075075 075075 540 vfd o9/075,o9/075,o9/075,o9/075,o9/075,o9/075,o9/075,o9/075  000740 aa 075075 075075 000741 aa 035057 055075 541 vfd o9/035,o9/057,o9/055,o9/075,o9/075,o9/075,o9/075,o9/075  000742 aa 075075 075075 000743 aa 075075 075075 542 vfd o9/075,o9/075,o9/075,o9/075,o9/075,o9/075,o9/075,o9/075  000744 aa 075075 075075 000745 aa 075075 075076 543 vfd o9/075,o9/075,o9/075,o9/076,o9/075,o9/075,o9/075,o9/075  000746 aa 075075 075075 000747 aa 000465 464264 544 vfd o9/000,o9/465,o9/464,o9/264,o9/265,o9/450,o9/203,o9/430  000750 aa 265450 203430 000751 aa 444424 404403 545 vfd o9/444,o9/424,o9/404,o9/403,o9/266,o9/201,o9/267,o9/242  000752 aa 266201 267242 000753 aa 224240 220260 546 vfd o9/224,o9/240,o9/220,o9/260,o9/210,o9/250,o9/230,o9/270  000754 aa 210250 230270 000755 aa 204244 410460 547 vfd o9/204,o9/244,o9/410,o9/460,o9/420,o9/440,o9/470,o9/442  000756 aa 420440 470442 000757 aa 202443 423463 548 vfd o9/202,o9/443,o9/423,o9/463,o9/413,o9/453,o9/433,o9/473  000760 aa 413453 433473 000761 aa 407447 441421 549 vfd o9/407,o9/447,o9/441,o9/421,o9/461,o9/411,o9/451,o9/431  000762 aa 461411 451431 000763 aa 471405 445422 550 vfd o9/471,o9/405,o9/445,o9/422,o9/462,o9/412,o9/452,o9/432  000764 aa 462412 452432 000765 aa 472406 446075 551 vfd o9/472,o9/406,o9/446,o9/075,o9/402,o9/075,o9/467,o9/401  000766 aa 402075 467401 000767 aa 075243 223263 552 vfd o9/075,o9/243,o9/223,o9/263,o9/213,o9/253,o9/233,o9/273  000770 aa 213253 233273 000771 aa 207247 241221 553 vfd o9/207,o9/247,o9/241,o9/221,o9/261,o9/211,o9/251,o9/231  000772 aa 261211 251231 000773 aa 271205 245222 554 vfd o9/271,o9/205,o9/245,o9/222,o9/262,o9/212,o9/252,o9/232  000774 aa 262212 252232 000775 aa 272206 246075 555 vfd o9/272,o9/206,o9/246,o9/075,o9/466,o9/075,o9/075,o9/075  000776 aa 466075 075075 556 "  557 "  558 " translation table, ascii to correspondence  559 "  000777 560 ascii_to_corresp:  000777 aa 075075 075075 561 vfd o9/075,o9/075,o9/075,o9/075,o9/075,o9/075,o9/075,o9/075  001000 aa 075075 075075 001001 aa 035057 055075 562 vfd o9/035,o9/057,o9/055,o9/075,o9/075,o9/075,o9/075,o9/075  001002 aa 075075 075075 001003 aa 075075 075075 563 vfd o9/075,o9/075,o9/075,o9/075,o9/075,o9/075,o9/075,o9/075  001004 aa 075075 075075 001005 aa 075075 075076 564 vfd o9/075,o9/075,o9/075,o9/076,o9/075,o9/075,o9/075,o9/075  001006 aa 075075 075075 001007 aa 000075 411460 565 vfd o9/000,o9/075,o9/411,o9/460,o9/404,o9/410,o9/450,o9/211  001010 aa 404410 450211 001011 aa 464444 470423 566 vfd o9/464,o9/444,o9/470,o9/423,o9/073,o9/267,o9/021,o9/207  001012 aa 073267 021207 001013 aa 244240 220260 567 vfd o9/244,o9/240,o9/220,o9/260,o9/204,o9/210,o9/230,o9/250  001014 aa 204210 230250 001015 aa 270264 453253 568 vfd o9/270,o9/264,o9/453,o9/253,o9/075,o9/223,o9/075,o9/407  001016 aa 075223 075407 001017 aa 420471 466472 569 vfd o9/420,o9/471,o9/466,o9/472,o9/452,o9/412,o9/463,o9/443  001020 aa 452412 463443 001021 aa 446431 403432 570 vfd o9/446,o9/431,o9/403,o9/432,o9/406,o9/441,o9/422,o9/405  001022 aa 406441 422405 001023 aa 413433 451445 571 vfd o9/413,o9/433,o9/451,o9/445,o9/402,o9/462,o9/461,o9/465  001024 aa 402462 461465 001025 aa 442447 424075 572 vfd o9/442,o9/447,o9/424,o9/075,o9/430,o9/075,o9/440,o9/467  001026 aa 430075 440467 001027 aa 075271 266272 573 vfd o9/075,o9/271,o9/266,o9/272,o9/252,o9/212,o9/263,o9/243  001030 aa 252212 263243 001031 aa 246231 203232 574 vfd o9/246,o9/231,o9/203,o9/232,o9/206,o9/241,o9/222,o9/205  001032 aa 206241 222205 001033 aa 213233 251245 575 vfd o9/213,o9/233,o9/251,o9/245,o9/202,o9/262,o9/261,o9/265  001034 aa 202262 261265 001035 aa 242247 224075 576 vfd o9/242,o9/247,o9/224,o9/075,o9/075,o9/075,o9/075,o9/075  001036 aa 075075 075075 577 "  578 "  579 include conf355  2-1 "  2-2 " Begin include file ... conf355.incl.alm  2-3 "  2-4 "  2-5 " This subroutine will look for a datanet 355 configuration card and  2-6 " will extract the necessary information from it. There are three  2-7 " required fields on the d355 card. These are 355 tag(A-D), channel 2-8 " number(1-64), and iom tag(A-B). The iom tag is converted to an  2-9 " iom number. The calling sequence of this routine is:  2-10 "  2-11 " lda which_355  2-12 " tsx2 conf355 2-13 " tra error routine  2-14 " next instruction 2-15 "  2-16 "  2-17 "  001037 2-18 conf355: null  001037 0a 001141 7550 00 2-19 sta conf355n save which 355 we want config for  001040 0a 001140 7420 00 2-20 stx2 confx2 save return address  001041 aa 000044 7730 00 2-21 lrl 36 355 tag in Q  001042 0a 001144 2350 00 2-22 lda srcharg get search arg "d355" 001043 aa 012264 7020 00 2-23 tsx2 getconf search config data  001044 0a 001070 7100 00 2-24 tra conferr tra if not found  001045 aa 6 00001 1161 17 2-25 cmpq com|1,7 test 355 number  001046 aa 012265 6010 00 2-26 tnz getmore if not the one, try again 2-27  001047 aa 6 00002 2351 17 2-28 lda com|2,7 get iom tag field 001050 0a 001110 6040 00 2-29 tmi badiom none, error  001051 aa 000001 1750 07 2-30 sba 1,dl convert to iom number  001052 0a 001137 7550 00 2-31 sta iom_no save it  001053 aa 000006 7350 00 2-32 als 6 make room for channel number  001054 aa 6 00003 0751 17 2-33 ada com|3,7 get channel no  001055 0a 001106 6040 00 2-34 tmi badchan error check  001056 0a 001136 7510 01 2-35 stca iom_chan,01 store for connect 001057 aa 000033 7350 00 2-36 als 36-9 create a pcw 001060 0a 001133 7550 00 2-37 sta diapcw+1 ..  001061 0a 001135 7550 00 2-38 sta maskpcw+1 set up a mask pcw too  2-39  001062 0a 001141 2360 00 2-40 ldq conf355n get number  001063 aa 000001 1760 07 2-41 sbq 1,dl relative to zero 001064 aa 000300 4020 07 2-42 mpy 192,dl get mbx_offset 001065 0a 001143 7560 00 2-43 stq mbx_offset for later  2-44  001066 0a 001140 2220 00 2-45 ldx2 confx2 retrieve return address  001067 aa 000001 7100 12 2-46 tra 1,2 return  2-47  2-48  001070 0a 001142 2340 00 2-49 conferr: szn conf355err error switch on?  001071 0a 001104 6000 00 2-50 tze confexit no, skip error  001072 aa 012241 7020 00 2-51 tsx2 erpt print error message 001073 aa 040 146 156 160 2-52 acc 'fnp configuration card not found' 001074 aa 040 143 157 156 001075 aa 146 151 147 165 001076 aa 162 141 164 151 001077 aa 157 156 040 143 001100 aa 141 162 144 040 001101 aa 156 157 164 040 001102 aa 146 157 165 156 001103 aa 144 000 000 000 001104 2-53 confexit: null  001104 0a 001140 2220 00 2-54 ldx2 confx2 retrieve return address  001105 aa 000000 7100 12 2-55 tra 0,2 take error exit  2-56  001106 2-57 badchan: null  001106 0a 001130 6350 00 2-58 eaa chanmsg get addr of chan message  001107 0a 001111 7100 00 2-59 tra *+2  001110 2-60 badiom: null  001110 0a 001127 6350 00 2-61 eaa iommsg 001111 0a 001125 7550 00 2-62 sta errarg 001112 aa 012241 7020 00 2-63 tsx2 erpt  001113 aa 047 142 141 144 2-64 acc 'bad ^a number on fnp configuration card'  001114 aa 040 136 141 040 001115 aa 156 165 155 142 001116 aa 145 162 040 157 001117 aa 156 040 146 156 001120 aa 160 040 143 157 001121 aa 156 146 151 147 001122 aa 165 162 141 164 001123 aa 151 157 156 040 001124 aa 143 141 162 144 001125 0a 001125 0000 00 2-65 errarg: arg *  001126 0a 001104 7100 00 2-66 tra confexit take error exit  2-67  2-68  001127 aa 151 157 155 000 2-69 iommsg: aci 'iom'  001130 aa 143 150 141 156 2-70 chanmsg: aci 'chan' 001131 aa 000000 0110 03 2-71 even  001132 aa 000000 700000 2-72 diapcw: oct 000000700000,0 pcw to send to iom  001133 aa 000000 000000 001134 aa 000000 740000 2-73 maskpcw: oct 000000740000,0 mask pcw to send to iom 001135 aa 000000 000000 001136 aa 000000 000000 2-74 iom_chan: oct 0 channel number on iom  001137 aa 000000 000000 2-75 iom_no: oct 0 iom tag 001140 aa 000000 000000 2-76 confx2: oct 0  001141 2-77 conf355n:  001141 aa 000000 000000 2-78 oct 0  001142 2-79 conf355err: 001142 aa 000000 000000 2-80 oct 0  001143 2-81 mbx_offset: 001143 aa 000000 000000 2-82 oct 0  001144 aa 146 156 160 040 2-83 srcharg: aci 'fnp ' 2-84  2-85  2-86 " End include file ... conf355.incl.alm 580  581 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  582 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  583  584 end  LITERALS 001146 aa 777777 777777 001147 aa 202351 216230 001150 aa 302145 276447 001151 aa 002020 202020 001152 aa 000040 040040 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 001153 5a 000003 000000 001154 5a 000017 600000 001155 aa 000000 000000 001156 55 000010 000002 001157 5a 000002 400003 001160 55 000006 000010 001161 aa 005 142 154 141 001162 aa 163 164 000 000 001163 55 000002 000003 001164 6a 000000 400002 001165 55 000013 000003 001166 aa 014 163 171 155 symbol_table  001167 aa 142 157 154 137 001170 aa 164 141 142 154 001171 aa 145 000 000 000 DEFINITIONS HASH TABLE  001172 aa 000000 000015 001173 aa 000000 000000 001174 aa 000000 000000 001175 aa 000000 000000 001176 aa 000000 000000 001177 aa 000000 000000 001200 aa 000000 000000 001201 5a 000010 000000 001202 aa 000000 000000 001203 aa 000000 000000 001204 aa 000000 000000 001205 aa 000000 000000 001206 aa 000000 000000 001207 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  001210 aa 000001 000000 001211 aa 000000 000000 INTERNAL EXPRESSION WORDS LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 001153 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 223441 114573 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 000264 000020 aa 000000 000162 000021 aa 000000 000250 000022 aa 000253 000162 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 000026 000067 aa 122721 273001 000070 aa 000000 112272 000071 aa 215423 400000 000072 aa 000120 000040 000073 aa 113400 415301 000074 aa 000000 111341 000075 aa 220414 400000 000076 aa 000130 000041 000077 aa 043243 125745 000100 aa 000000 103730 000101 aa 106336 600000 000102 aa 000141 000040 000103 aa 110235 072677 000104 aa 000000 111024 000105 aa 524460 600000 000106 aa 000151 000044 000107 aa 121622 277475 000110 aa 000000 112162 000111 aa 321563 400000 000112 aa 076163 160145 >spec>h>3.17>blast.alm  000113 aa 143076 150076 000114 aa 063056 061067 000115 aa 076142 154141 000116 aa 163164 056141 000117 aa 154155 040040 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>conf355.incl.alm  000131 aa 076142 157163 000132 aa 076151 156143 000133 aa 154165 144145 000134 aa 076143 157156 000135 aa 146063 065065 000136 aa 056151 156143 000137 aa 154056 141154 000140 aa 155040 040040 000141 aa 076154 144144 >ldd>bos>include>bos_tv.incl.alm  000142 aa 076142 157163 000143 aa 076151 156143 000144 aa 154165 144145 000145 aa 076142 157163 000146 aa 137164 166056 000147 aa 151156 143154 000150 aa 056141 154155 000151 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000152 aa 076142 157163 000153 aa 076151 156143 000154 aa 154165 144145 000155 aa 076142 157163 000156 aa 137143 157155 000157 aa 155157 156056 000160 aa 151156 143154 000161 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  462 add_to_x blast: 395, 396, 397, 426.  474 all_sw blast: 59, 90, 323, 461.  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. 61 argend blast: 64, 102.  47 argerr blast: 79, 85, 94. 17 arglen bosequ: 17, bos_tv: 15, 16, 17. 13 arglp blast: 60, 69, 74, 92.  12223 argmul bos_tv: 40. 12201 arg_count bos_tv: 22. 556 ascii_buffer blast: 233, 496.  561 ascii_message blast: 158, 163, 166, 171, 501. 556 ascii_tally blast: 177, 497.  777 ascii_to_corresp blast: 173, 560.  737 ascii_to_ebcdic blast: 168, 539.  12255 asge bos_tv: 66. 12256 asgetab bos_tv: 67. 502 badarg blast: 95, 98, 304, 307, 317, 320, 476. 1106 badchan conf355: 34, 57.  1110 badiom conf355: 29, 60.  1573 bar bos_common: 26. 717 bcd_to_ascii blast: 159, 530.  466 begin_wait blast: 281, 294, 454. 2 bf bosequ: 9. 11 blast_op blast: 44, 236.  12217 bosmul bos_tv: 36. 12214 bosphy bos_tv: 33. 2012 bos_dvt bos_common: 53. 12261 bzel bos_tv: 70. 505 case blast: 480. 1130 chanmsg conf355: 58, 70.  464 checksum blast: 251, 254, 256, 452.  12312 check_cpu_type bos_tv: 95. 101 check_crash blast: 103, 112.  12311 check_special_status bos_tv: 94. 12274 check_status bos_tv: 81. 12310 check_status_no_stat bos_tv: 93. 265 cksm_loop blast: 252, 255.  136 clock_error blast: 142. 2032 cmdlst bos_common: 68. 6 com blast: 215, 272, 283, bosequ: 14, conf355: 25, 28, 33. 3000 conf bos_common: 85, 86.  1037 conf355 blast: 190, conf355: 18. 1142 conf355err blast: 91, conf355: 49, 79.  1141 conf355n conf355: 19, 40, 77. 1070 conferr conf355: 24, 49.  1104 confexit conf355: 50, 53, 66. 20 confl bos_common: 87. 1140 confx2 conf355: 20, 45, 54, 76.  12272 connect_iom blast: 275, bos_tv: 79. 2003 corearea bos_common: 47. 1610 coreblocks bos_common: 30. 663 corresp_message blast: 185, 520.  656 corresp_tally blast: 187, 514.  532 corresp_temp blast: 172, 184, 486. 15 cr blast: 432, 499, 524. 115 crash_msg blast: 128. 475 crash_sw blast: 68, 104, 113, 462.  716 cr_lf blast: 162, 524.  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. 470 default_waittime blast: 295, 456.  1132 diapcw blast: 276, conf355: 37, 72.  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.  2 disconnect_all blast: 45, 240.  2014 diskchanno bos_common: 55. 12236 disk_brief bos_tv: 51. 3400 dn355_mbx blast: 443, 444, 445, 446, 447, 448, 449, 450, 451. 3415 dn355_mbx.address blast: 235, 450.  3417 dn355_mbx.cksm blast: 257, 451.  3410 dn355_mbx.line_number blast: 202, 248, 448. 3411 dn355_mbx.opcode blast: 244, 449.  3400 dn355_mbx.pcw blast: 204, 262, 264, 269, 444. 3410 dn355_mbx.tally_temp blast: 250, 253, 447. 3402 dn355_mbx.timw blast: 203, 445.  3405 dn355_mbx.used blast: 205, 446.  37 down_shift blast: 425, 437.  0 ds bosequ: 7. 12100 earg bos_tv: 16, 17.  623 ebcdic_message blast: 180, 510.  616 ebcdic_tally blast: 182, 504.  506 ebcdic_temp blast: 167, 179, 484. 7000 econf bos_common: 86, 90.  1100 eishist bos_common: 16. 351 emergency_interrupt blast: 274, 291, 312. 131 erbp blast: 55, 133, 135, 138.  12243 erbuf blast: 54, 132,  bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt blast: 96, 107, 116, 127, 143, 305, 318, conf355: 51, 63,  bos_tv: 54. 1125 errarg conf355: 62, 65.  376 execint blast: 49, 332.  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 conf355: 23, bos_tv: 73. 12265 getmore conf355: 26, 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. 150 get_tally blast: 121, 149.  476 hangup_sw blast: 73, 102, 230, 278, 464. 12304 hexwd bos_tv: 89. 504 hrmin blast: 126, 130, 479. 55 ibmnl blast: 406, 434, 506, 516.  75 ibmpad blast: 435, 506, 507, 508, 509, 511, 516, 517, 518, 519, 521. 12300 initint blast: 48, bos_tv: 85. 12271 init_io blast: 50, bos_tv: 78. 2021 inputsw bos_common: 60. 412 insert_shift blast: 360, 363.  12302 intno bos_tv: 87. 1572 intrpts bos_common: 25. 12303 intrpts1 bos_tv: 88. 473 int_bit blast: 222, 270, 286, 460.  1127 iommsg conf355: 61, 69.  1136 iom_chan blast: 207, conf355: 35, 74.  2011 iom_mbbase bos_common: 52. 2010 iom_mxbase blast: 215, 272, 283, bos_common: 51. 1137 iom_no blast: 212, conf355: 31, 75.  12237 itaper bos_tv: 52. 12240 itapew bos_tv: 53. 206 join blast: 105, 189, 328. 12206 ldcom bos_tv: 27. 12 lf blast: 433, 499, 524. 12001 line blast: 151, 153,  bos_tv: 13, 14.  12257 ljust bos_tv: 68. 12220 lookup_devmodel bos_tv: 37. 427 look_for_lower blast: 373, 382.  422 look_for_upper blast: 372, 375.  1620 lowport_cfg bos_common: 34. 1530 low_order_port bos_common: 20. 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 bos_tv: 38. 1134 maskpcw conf355: 38, 73.  4 max_no_355s blast: 82, 327, 469. 1143 mbx_offset blast: 195, 226, 227, conf355: 43, 81.  1550 mcm bos_common: 23. 1532 mctime bos_common: 21. 7 mem blast: 58, 62, 94, 202, 203, 204, 205, 216, 217, 235, 244, 250,  253, 257, 262, 264, 269, 273, 287, 290, 335, bosequ: 15. 463 message_len blast: 175, 353, 428. 1574 modereg bos_common: 27. 433 move_chars blast: 380, 388.  12216 mulbos bos_tv: 35. 23 narg1 blast: 67, 71.  27 narg2 blast: 72, 76.  12202 nextline blast: 119, bos_tv: 23. 370 next_355 blast: 191, 279, 288, 308, 322. 112 nio blast: 114, 125.  12203 nlraw bos_tv: 24. 472 norm_int_cell blast: 213, 214, 271, 282, 458. 12252 octwd bos_tv: 63. 154 on blast: 139, 155.  500 ouhist bos_common: 14. 12000 pagectl bos_tv: 12, 13.  3 pgm bosequ: 10. 12215 phyadd bos_tv: 34. 12213 phybos bos_tv: 32. 1500 prs bos_common: 18. 1600 ptrlen bos_common: 29. 12251 punch bos_tv: 62. 2020 quietsw bos_common: 59. 12267 rdclock blast: 125, bos_tv: 76. 12211 rdev bos_tv: 30. 2016 rdrchanno bos_common: 57. 12234 rdsec 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. 4000 runcom_bit bosequ: 19. 460 running_tally blast: 354, 367, 409, 411, 422. 12200 scan bos_tv: 21. 1540 scu bos_common: 22. 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. 255 send_hangup blast: 231, 239.  2004 setuparea bos_common: 49. 256 set_op_code blast: 237, 241.  401 shifts blast: 181, 186, 350. 461 shift_chars blast: 365, 424.  457 shift_count blast: 379, 386, 389, 399, 420. 407 shift_down blast: 358, 403.  450 shift_finished blast: 400, 405.  420 shift_test blast: 370, 371.  411 shift_up blast: 357, 361, 402. 2025 skipsw bos_common: 64. 1144 srcharg conf355: 22, 83.  2000 storlen bos_common: 36. 12262 stripa bos_tv: 71. 12263 stripg blast: 134, 150,  bos_tv: 72. 2015 tapechanno bos_common: 56. 503 temp blast: 478. 500 temp_355n blast: 84, 87, 471. 1 tmp bosequ: 8. 2017 ttychanno bos_common: 58. 12245 ttyinit blast: 51, bos_tv: 58. 2026 ttypmtsw bos_common: 65. 376 ttyrequest blast: 52, 331.  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. 34 up_shift blast: 425, 436.  2002 useable bos_common: 46. 2001 used bos_common: 45. 2005 utilarea bos_common: 50. 12000 utilorg bosequ: 22, bos_tv: 12, 19.  322 wait_for_int blast: 285, 296.  12301 wantflt bos_tv: 86. 3 wcd blast: 42, 243.  12212 wdev bos_tv: 31. 501 which_355 blast: 89, 189, 300, 313, 325, 326, 473. 477 which_list blast: 82, 467.  12235 wtsec bos_tv: 50. 4 wtx blast: 43. 376 x2 blast: 47, 57, 100, 110, 145, 324, 333. 12277 xio_wait bos_tv: 84. 4 xs1 blast: 179, 184, 356, 377, 384, 391,  bosequ: 11. 5 xs2 blast: 137, 138, 153, 157, 180, 185, 366, 392, 408, 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