assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 1 copyright 1970 by honeywell information systems inc. 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 lbl gicb,gicb assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 2 copyright 1970 by honeywell information systems inc. 13 ************************************************************ 14 * 15 * note: cs means "central system" 16 * 17 ************************************************************ 18 * change list 19 * 20 * modified to run on dia by rbs june 24, 1972 21 * modified for multics boot of fnp by mjg may 25, 1976 22 * 23 ************************************************************ 24 pcc on print assembler control cards 25 pmc on print macro expansions 26 editp on print special edit control characters 27 abs assemble in absolute format 28 29 cksum macro checksum calculation macro 30 ldx3 2 get return address 31 tra cksum-* calculate checksum 32 ind * location of 'here' and 'now' 33 endm cksum 34 35 parity macro c,m dia parity calculation macro 36 ldx3 2 get location of dcw 37 tsy parity-* call parity calculation routine 38 ind #1 location of dia dcw 39 endm parity 40 00000 41 systm define system description symbols assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 3 datanet configuration description ttls datanet configuration description 000000 intv set 0 iom interrupt vector base address 000400 intc set 256 program interrupt cell base address 000420 fltst set 272 iom fault status base address 000440 fltv set 288 processor fault vector base address 000450 iomm set 296 iom mailbox base address *************************** * iom channel assignments * *************************** 000000 tych set 0 typewriter channel 000002 lpch set 2 line printer channel 000006 h1ch set 6 high speed line adapter number one 000007 h2ch set 7 high speed line adapter number two 000010 h3ch set 8 high speed line adapter number three 000011 l1ch set 9 low speed line adapter number one 000012 l2ch set 10 low speed line adapter number two 000013 l3ch set 11 low speed line adapter number three 000014 l4ch set 12 low speed line adapter number four 000015 l5ch set 13 low speed line adapter number five 000016 l6ch set 14 low speed line adapter number six 000077 tmch set 63 interval timer channel 000077 swch set 63 data switch channel assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 4 datanet configuration description eject ************************* * iom interrupt vectors * ************************* 000000 tyft set 0 typewriter fault 000001 tyrq set 1 typewriter request 000002 tytm set 2 typewriter terminate 000040 lpft set 32 line printer fault 000041 lpat set 33 line printer attention 000042 lptm set 34 line printer terminate 000003 dis0 set 3 dia special - 0 000023 dis1 set 19 dia special - 1 000043 dis2 set 35 dia special - 2 000063 dis3 set 51 dia special - 3 000103 dis4 set 67 dia special - 4 000123 dis5 set 83 dia special - 5 000143 dis6 set 99 dia special - 6 000163 dis7 set 115 dia special - 7 000203 dis8 set 131 dia special - 8 000223 dis9 set 147 dia special - 9 000243 dis10 set 163 dia special - 10 000263 dis11 set 179 dia special - 11 000303 dis12 set 195 dia special - 12 000323 dis13 set 211 dia special - 13 000343 dis14 set 227 dia special - 14 000363 dis15 set 243 dia special - 15 000140 h1ft set 96 hsla 1 fault assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 5 datanet configuration description 000004 h1a0 set 4 hsla 1 subch 0 active terminate vector 000005 h1a16 set 5 hsla 1 subch 16 active terminate vector 000006 h1c0 set 6 hsla 1 subch 0 config terminate vector 000007 h1c16 set 7 hsla 1 subch 16 config terminate vector 000024 h1a1 set 20 hsla 1 subch 1 active terminate vector 000025 h1a17 set 21 hsla 1 subch 17 active terminate vector 000026 h1c1 set 22 hsla 1 subch 1 config terminate vector 000027 h1c17 set 23 hsla 1 subch 17 config terminate vector 000044 h1a2 set 36 hsla 1 subch 2 active terminate vector 000045 h1a18 set 37 hsla 1 subch 18 active terminate vector 000046 h1c2 set 38 hsla 1 subch 2 config terminate vector 000047 h1c18 set 39 hsla 1 subch 18 config terminate vector 000064 h1a3 set 52 hsla 1 subch 3 active terminate vector 000065 h1a19 set 53 hsla 1 subch 19 active terminate vector 000066 h1c3 set 54 hsla 1 subch 3 config terminate vector 000067 h1c19 set 55 hsla 1 subch 19 config terminate vector 000104 h1a4 set 68 hsla 1 subch 4 active terminate vector 000105 h1a20 set 69 hsla 1 subch 20 active terminate vector 000106 h1c4 set 70 hsla 1 subch 4 config terminate vector 000107 h1c20 set 71 hsla 1 subch 20 config terminate vector 000124 h1a5 set 84 hsla 1 subch 5 active terminate vector 000125 h1a21 set 85 hsla 1 subch 21 active terminate vector 000126 h1c5 set 86 hsla 1 subch 5 config terminate vector 000127 h1c21 set 87 hsla 1 subch 21 config terminate vector 000144 h1a6 set 100 hsla 1 subch 6 active terminate vector 000145 h1a22 set 101 hsla 1 subch 22 active terminate vector assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 6 datanet configuration description 000146 h1c6 set 102 hsla 1 subch 6 config terminate vector 000147 h1c22 set 103 hsla 1 subch 22 config terminate vector 000164 h1a7 set 116 hsla 1 subch 7 active terminate vector 000165 h1a23 set 117 hsla 1 subch 23 active terminate vector 000166 h1c7 set 118 hsla 1 subch 7 config terminate vector 000167 h1c23 set 119 hsla 1 subch 23 config terminate vector 000204 h1a8 set 132 hsla 1 subch 8 active terminate vector 000205 h1a24 set 133 hsla 1 subch 24 active terminate vector 000206 h1c8 set 134 hsla 1 subch 8 config terminate vector 000207 h1c24 set 135 hsla 1 subch 24 config terminate vector 000224 h1a9 set 148 hsla 1 subch 9 active terminate vector 000225 h1a25 set 149 hsla 1 subch 25 active terminate vector 000226 h1c9 set 150 hsla 1 subch 9 config terminate vector 000227 h1c25 set 151 hsla 1 subch 25 config terminate vector 000244 h1a10 set 164 hsla 1 subch 10 active terminate vector 000245 h1a26 set 165 hsla 1 subch 26 active terminate vector 000246 h1c10 set 166 hsla 1 subch 10 config terminate vector 000247 h1c26 set 167 hsla 1 subch 26 config terminate vector 000264 h1a11 set 180 hsla 1 subch 11 active terminate vector 000265 h1a27 set 181 hsla 1 subch 27 active terminate vector 000266 h1c11 set 182 hsla 1 subch 11 config terminate vector 000267 h1c27 set 183 hsla 1 subch 27 config terminate vector 000304 h1a12 set 196 hsla 1 subch 12 active terminate vector 000305 h1a28 set 197 hsla 1 subch 28 active terminate vector 000306 h1c12 set 198 hsla 1 subch 12 config terminate vector assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 7 datanet configuration description 000307 h1c28 set 199 hsla 1 subch 28 config terminate vector 000324 h1a13 set 212 hsla 1 subch 13 active terminate vector 000325 h1a29 set 213 hsla 1 subch 29 active terminate vector 000326 h1c13 set 214 hsla 1 subch 13 config terminate vector 000327 h1c29 set 215 hsla 1 subch 29 config terminate vector 000344 h1a14 set 228 hsla 1 subch 14 active terminate vector 000345 h1a30 set 229 hsla 1 subch 30 active terminate vector 000346 h1c14 set 230 hsla 1 subch 14 config terminate vector 000347 h1c30 set 231 hsla 1 subch 30 config terminate vector 000364 h1a15 set 244 hsla 1 subch 15 active terminate vector 000365 h1a31 set 245 hsla 1 subch 31 active terminate vector 000366 h1c15 set 246 hsla 1 subch 15 config terminate vector 000367 h1c31 set 247 hsla 1 subch 31 config terminate vector 000220 l1ft set 144 lsla 1 fault 000221 l1a set 145 lsla 1 active terminate vector 000222 l1c set 146 lsla 1 configuration terminate vector 000240 l2ft set 160 lsla 2 fault 000241 l2a set 161 lsla 2 active terminate vector 000242 l2c set 162 lsla 2 configuration terminate vector 000260 l3ft set 176 lsla 3 fault 000261 l3a set 177 lsla 3 active terminate vector 000262 l3c set 178 lsla 3 configuration terminate vector 000300 l4ft set 192 lsla 4 fault 000301 l4a set 193 lsla 4 active terminate vector 000302 l4c set 194 lsla 4 configuration terminate vector 000320 l5ft set 208 lsla 5 fault assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 8 datanet configuration description 000321 l5a set 209 lsla 5 active terminate vector 000322 l5c set 210 lsla 5 configuration terminate vector 000340 l6ft set 224 lsla 6 fault 000341 l6a set 225 lsla 6 active terminate vector 000342 l6c set 226 lsla 6 configuration terminate vector 000360 tmft set 240 timer channel fault 000361 tmro set 241 interval timer runout 000362 etr set 242 elapsed timer roll-over assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 9 datanet configuration description eject 1 *************************** * program interrupt cells * *************************** 000400 ilev0 set 256 level 0 (common peripheral fault) 000401 ilev1 set 257 level 1 (common peripheral req/attn) 000402 ilev2 set 258 level 2 (common peripheral terminate) 000403 ilev3 set 259 level 3 (dia special) 000404 ilev4 set 260 level 4 (hsla 1 subch 0-15 active) 000405 ilev5 set 261 level 5 (hsla 1 subch 16-31 active) 000406 ilev6 set 262 level 6 (hsla 1 subch 0-15 config) 000407 ilev7 set 263 level 7 (hsla 1 subch 16-31 config) 000410 ilev8 set 264 level 8 (hsla 2 subch 0-15 active) 000411 ilev9 set 265 level 9 (hsla 2 subch 16-31 active) 000412 ilev10 set 266 level 10 (hsla 2 subch 0-15 config) 000413 ilev11 set 267 level 11 (hsla 2 subch 16-31 config) 000414 ilev12 set 268 level 12 (hsla 3 subch 0-15 active) 000415 ilev13 set 269 level 13 (hsla 3 subch 16-31 active) 000416 ilev14 set 270 level 14 (hsla 3 subch 0-15 config) 000417 ilev15 set 271 level 15 (hsla 3 subch 16-31 config) ******************** * iom fault status * ******************** 000420 tyfts set 272 typewriter fault status word 000422 lpfts set 274 line printer fault status word 000424 difts set 276 dia fault status word 000426 h1fts set 278 hsla 1 fault status word 000427 h2fts set 279 hsla 2 fault status word assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 10 datanet configuration description 000430 h3fts set 280 hsla 3 fault status word 000431 l1fts set 281 lsla 1 fault status word 000432 l2fts set 282 lsla 2 fault status word 000433 l3fts set 283 lsla 3 fault status word 000434 l4fts set 284 lsla 4 fault status word 000435 l5fts set 285 lsla 5 fault status word 000436 l6fts set 286 lsla 6 fault status word 000437 tmfts set 287 timer fault status word *************************** * processor fault vectors * *************************** 000440 suflt set 288 startup fault 000441 sdflt set 289 shutdown fault 000442 parflt set 290 memory parity fault 000443 iopflt set 291 illegal operation fault 000444 ovflt set 292 overflow fault 000445 memflt set 293 illegal memory operation fault 000446 dvflt set 294 divide check fault 000447 ipiflt set 295 illegal program interrupt fault assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 11 datanet configuration description eject ************************************ * iom mailbox communication region * ************************************ 000450 itmb set 296 interval timer mailbox 000451 etmb set 297 elapsed timer mailbox 000454 dimb set 300 dia pcw mailbox 000456 dist set 302 dia status icw mailbox 000460 tyst set 304 typewriter status icw mailbox 000462 tyicw set 306 typewriter data icw mailbox 000470 lpst set 312 line printer status icw mailbox 000472 lpicw set 314 line printer data icw mailbox 000475 cptp set 317 cpu page table pointer 000476 yelcnt set 318 memory yellow counter (edac corected erro 000500 l1mb set 320 lsla 1 mailbox base address 000520 l2mb set 336 lsla 2 mailbox base address 000540 l3mb set 352 lsla 3 mailbox base address 000560 l4mb set 368 lsla 4 mailbox base address 000600 l5mb set 384 lsla 5 mailbox base address 000620 l6mb set 400 lsla 6 mailbox base address 001000 h1mb set 512 hsla 1 mailbox base address 002000 h2mb set 1024 hsla 2 mailbox base address 003000 h3mb set 1536 hsla 3 mailbox base address 002000 .end. set 1024 end of iom mailbox communication region 00000 42 comreg assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 12 system communications region ttls system communications region ********************************** * system communication region * ********************************** 000640 .crldt set 416 date and time of binding 000644 .crbdt set 420 date and time of bootloading 000650 .crbuf set 424 starting address of buffer area 000651 .crmem set 425 last location of memory 000652 .crnbf set 426 number of buffers available 000653 .criom set 427 start of iom table 000654 .crnhs set 428 number of hsla's configured 000655 .crnls set 429 number of lsla's configured 000656 .crcon set 430 console enabled flag 000657 .crmod set 431 starting address of module chain 000660 .crnxa set 432 ptr to next avaliable buffer 000661 .crtra set 433 trace entry enable mask 000662 .crtrb set 434 base address of trace table 000663 .crtrc set 435 next available location in trace table 000664 .crreg set 436 disaster fault register storage location 000665 .crttb set 437 location of tib table 000666 .crtte set 438 location of end of tib table 000667 .crdly set 439 head of delay table chain 000670 .crver set 440 mcs version number, 4 chars 000672 .crbrk set 442 addr of breakpoint control table 000673 .crtsw set 443 if non-zero, tracing will cease 000674 .crnxs set 444 next free small block 000675 .crnbs set 445 number of buffers devoted to small space assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 13 system communications region 000676 .crcct set 446 address of first cct descriptor 000677 .crskd set 447 address of scheduler data block 000700 .cretb set 448 list of echo-negotiation bit tables 000701 .crcpt set 449 address of cpu page table 000702 .crpte set 450 address of variable cpu page table entry 000703 .crtsz set 451 size of trace data buffer 000704 .crmet set 452 non-zero if metering enabled 000705 .crtdt set 453 address of tib for t&d executive channel 000706 .crbtm set 454 address of time meters for getbuf/frebuf 000707 .crnxe set 455 next available space in extended memory 000710 .crbpe set 456 buffer paging window table entry 000760 .crcpr set 496 copyright notice assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 14 intercomputer symbol definitions 43 ttls intercomputer symbol definitions 44 45 dia icw symbol definitions 46 000000 47 csadd equ 0 cs store address 000001 48 intopc equ 1 interrupt cell and op-code 000002 49 fnpadd equ 2 fnp address (36 bit data transfer) 000003 50 tally equ 3 tally (36 bit words) 51 52 dia operation code symbol definitions 53 000065 54 diatrg bool 65 transfer gate from cs to fnp 000070 55 diadis bool 70 disconnect 000071 56 diainf bool 71 interrupt fnp 000072 57 diajmp bool 72 jump 000073 58 diainc bool 73 interrupt cs 000074 59 diardc bool 74 read configuration switches 000075 60 diaftc bool 75 data transfer from fnp to cs 000076 61 diactf bool 76 data transfer from cs to fnp 000077 62 diawrp bool 77 wraparound assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 15 datanet fnp hardware communication region 63 ttls datanet fnp hardware communication region 64 65 i n t e r r u p t v e c t o r s 66 67 68 channel 00 interrupt vectors 69 00000 100002 70 vfd 3/w.2,15/*+2 bootload list icw 00001 060002 71 vfd 3/0,1/1,1/1,13/2 00002 0 00000 72 zero 00003 000070 73 vfd 18/diadis disconnect dcw 00004 1 00000 74 zero 0,w.2 with 36 bit xfer mode 00005 0 00000 75 zero 00006 76 dup 1,10 00006 0 00736 77 ind .rtrn. spring loaded interrupt vector 00007 0 00736 ind .rtrn. spring loaded interrupt vector 00010 0 00736 ind .rtrn. spring loaded interrupt vector 00011 0 00736 ind .rtrn. spring loaded interrupt vector 00012 0 00736 ind .rtrn. spring loaded interrupt vector 00013 0 00736 ind .rtrn. spring loaded interrupt vector 00014 0 00736 ind .rtrn. spring loaded interrupt vector 00015 0 00736 ind .rtrn. spring loaded interrupt vector 00016 0 00736 ind .rtrn. spring loaded interrupt vector 00017 0 00736 ind .rtrn. spring loaded interrupt vector 78 79 channel 01 interrupt vectors 80 00020 0 00722 81 ind .icft. iom fault vector 00021 82 dup 1,15 00021 0 00736 83 ind .rtrn. spring loaded interrupt vector 00022 0 00736 ind .rtrn. spring loaded interrupt vector 00023 0 00736 ind .rtrn. spring loaded interrupt vector 00024 0 00736 ind .rtrn. spring loaded interrupt vector 00025 0 00736 ind .rtrn. spring loaded interrupt vector 00026 0 00736 ind .rtrn. spring loaded interrupt vector 00027 0 00736 ind .rtrn. spring loaded interrupt vector 00030 0 00736 ind .rtrn. spring loaded interrupt vector 00031 0 00736 ind .rtrn. spring loaded interrupt vector 00032 0 00736 ind .rtrn. spring loaded interrupt vector 00033 0 00736 ind .rtrn. spring loaded interrupt vector 00034 0 00736 ind .rtrn. spring loaded interrupt vector 00035 0 00736 ind .rtrn. spring loaded interrupt vector 00036 0 00736 ind .rtrn. spring loaded interrupt vector 00037 0 00736 ind .rtrn. spring loaded interrupt vector 84 85 channel 02 interrupt vectors 86 00040 0 00722 87 ind .icft. iom fault vector 00041 88 dup 1,15 00041 0 00736 89 ind .rtrn. spring loaded interrupt vector 00042 0 00736 ind .rtrn. spring loaded interrupt vector assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 16 datanet fnp hardware communication region 00043 0 00736 ind .rtrn. spring loaded interrupt vector 00044 0 00736 ind .rtrn. spring loaded interrupt vector 00045 0 00736 ind .rtrn. spring loaded interrupt vector 00046 0 00736 ind .rtrn. spring loaded interrupt vector 00047 0 00736 ind .rtrn. spring loaded interrupt vector 00050 0 00736 ind .rtrn. spring loaded interrupt vector 00051 0 00736 ind .rtrn. spring loaded interrupt vector 00052 0 00736 ind .rtrn. spring loaded interrupt vector 00053 0 00736 ind .rtrn. spring loaded interrupt vector end of binary card gicb0001 00054 0 00736 ind .rtrn. spring loaded interrupt vector 00055 0 00736 ind .rtrn. spring loaded interrupt vector 00056 0 00736 ind .rtrn. spring loaded interrupt vector 00057 0 00736 ind .rtrn. spring loaded interrupt vector 90 91 channel 03 interrupt vectors 92 00060 0 00722 93 ind .icft. iom fault vector 00061 0 00736 94 ind .rtrn. spring loaded interrupt vector 00062 0 01000 95 ind .dia3. entry for dia on channel 3 00063 96 dup 1,13 00063 0 00736 97 ind .rtrn. spring loaded interrupt vector 00064 0 00736 ind .rtrn. spring loaded interrupt vector 00065 0 00736 ind .rtrn. spring loaded interrupt vector 00066 0 00736 ind .rtrn. spring loaded interrupt vector 00067 0 00736 ind .rtrn. spring loaded interrupt vector 00070 0 00736 ind .rtrn. spring loaded interrupt vector 00071 0 00736 ind .rtrn. spring loaded interrupt vector 00072 0 00736 ind .rtrn. spring loaded interrupt vector 00073 0 00736 ind .rtrn. spring loaded interrupt vector 00074 0 00736 ind .rtrn. spring loaded interrupt vector 00075 0 00736 ind .rtrn. spring loaded interrupt vector 00076 0 00736 ind .rtrn. spring loaded interrupt vector 00077 0 00736 ind .rtrn. spring loaded interrupt vector 98 99 channel 04 interrupt vectors 100 00100 0 00722 101 ind .icft. iom fault vector 00101 0 00736 102 ind .rtrn. spring loaded interrupt vector 00102 0 01005 103 ind .dia4. entry for dia on channel 4 00103 104 dup 1,13 00103 0 00736 105 ind .rtrn. spring loaded interrupt vector 00104 0 00736 ind .rtrn. spring loaded interrupt vector 00105 0 00736 ind .rtrn. spring loaded interrupt vector 00106 0 00736 ind .rtrn. spring loaded interrupt vector 00107 0 00736 ind .rtrn. spring loaded interrupt vector 00110 0 00736 ind .rtrn. spring loaded interrupt vector 00111 0 00736 ind .rtrn. spring loaded interrupt vector 00112 0 00736 ind .rtrn. spring loaded interrupt vector 00113 0 00736 ind .rtrn. spring loaded interrupt vector 00114 0 00736 ind .rtrn. spring loaded interrupt vector assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 17 datanet fnp hardware communication region 00115 0 00736 ind .rtrn. spring loaded interrupt vector 00116 0 00736 ind .rtrn. spring loaded interrupt vector 00117 0 00736 ind .rtrn. spring loaded interrupt vector 106 107 channel 05 interrupt vectors 108 00120 0 00722 109 ind .icft. iom fault vector 00121 0 00736 110 ind .rtrn. spring loaded interrupt vector 00122 0 01012 111 ind .dia5. entry for dia on channel 5 00123 112 dup 1,13 00123 0 00736 113 ind .rtrn. spring loaded interrupt vector 00124 0 00736 ind .rtrn. spring loaded interrupt vector 00125 0 00736 ind .rtrn. spring loaded interrupt vector 00126 0 00736 ind .rtrn. spring loaded interrupt vector 00127 0 00736 ind .rtrn. spring loaded interrupt vector end of binary card gicb0002 00130 0 00736 ind .rtrn. spring loaded interrupt vector 00131 0 00736 ind .rtrn. spring loaded interrupt vector 00132 0 00736 ind .rtrn. spring loaded interrupt vector 00133 0 00736 ind .rtrn. spring loaded interrupt vector 00134 0 00736 ind .rtrn. spring loaded interrupt vector 00135 0 00736 ind .rtrn. spring loaded interrupt vector 00136 0 00736 ind .rtrn. spring loaded interrupt vector 00137 0 00736 ind .rtrn. spring loaded interrupt vector 114 115 channel 06 interrupt vectors 116 00140 0 00722 117 ind .icft. iom fault vector 00141 118 dup 1,15 00141 0 00736 119 ind .rtrn. spring loaded interrupt vector 00142 0 00736 ind .rtrn. spring loaded interrupt vector 00143 0 00736 ind .rtrn. spring loaded interrupt vector 00144 0 00736 ind .rtrn. spring loaded interrupt vector 00145 0 00736 ind .rtrn. spring loaded interrupt vector 00146 0 00736 ind .rtrn. spring loaded interrupt vector 00147 0 00736 ind .rtrn. spring loaded interrupt vector 00150 0 00736 ind .rtrn. spring loaded interrupt vector 00151 0 00736 ind .rtrn. spring loaded interrupt vector 00152 0 00736 ind .rtrn. spring loaded interrupt vector 00153 0 00736 ind .rtrn. spring loaded interrupt vector 00154 0 00736 ind .rtrn. spring loaded interrupt vector 00155 0 00736 ind .rtrn. spring loaded interrupt vector 00156 0 00736 ind .rtrn. spring loaded interrupt vector 00157 0 00736 ind .rtrn. spring loaded interrupt vector 120 121 channel 07 interrupt vectors 122 00160 0 00722 123 ind .icft. iom fault vector 00161 124 dup 1,15 00161 0 00736 125 ind .rtrn. spring loaded interrupt vector 00162 0 00736 ind .rtrn. spring loaded interrupt vector assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 18 datanet fnp hardware communication region 00163 0 00736 ind .rtrn. spring loaded interrupt vector 00164 0 00736 ind .rtrn. spring loaded interrupt vector 00165 0 00736 ind .rtrn. spring loaded interrupt vector 00166 0 00736 ind .rtrn. spring loaded interrupt vector 00167 0 00736 ind .rtrn. spring loaded interrupt vector 00170 0 00736 ind .rtrn. spring loaded interrupt vector 00171 0 00736 ind .rtrn. spring loaded interrupt vector 00172 0 00736 ind .rtrn. spring loaded interrupt vector 00173 0 00736 ind .rtrn. spring loaded interrupt vector 00174 0 00736 ind .rtrn. spring loaded interrupt vector 00175 0 00736 ind .rtrn. spring loaded interrupt vector 00176 0 00736 ind .rtrn. spring loaded interrupt vector 00177 0 00736 ind .rtrn. spring loaded interrupt vector 126 127 channel 08 interrupt vectors 128 00200 0 00722 129 ind .icft. iom fault vector 00201 130 dup 1,15 00201 0 00736 131 ind .rtrn. spring loaded interrupt vector 00202 0 00736 ind .rtrn. spring loaded interrupt vector 00203 0 00736 ind .rtrn. spring loaded interrupt vector end of binary card gicb0003 00204 0 00736 ind .rtrn. spring loaded interrupt vector 00205 0 00736 ind .rtrn. spring loaded interrupt vector 00206 0 00736 ind .rtrn. spring loaded interrupt vector 00207 0 00736 ind .rtrn. spring loaded interrupt vector 00210 0 00736 ind .rtrn. spring loaded interrupt vector 00211 0 00736 ind .rtrn. spring loaded interrupt vector 00212 0 00736 ind .rtrn. spring loaded interrupt vector 00213 0 00736 ind .rtrn. spring loaded interrupt vector 00214 0 00736 ind .rtrn. spring loaded interrupt vector 00215 0 00736 ind .rtrn. spring loaded interrupt vector 00216 0 00736 ind .rtrn. spring loaded interrupt vector 00217 0 00736 ind .rtrn. spring loaded interrupt vector 132 133 channel 09 interrupt vectors 134 00220 0 00722 135 ind .icft. iom fault vector 00221 136 dup 1,15 00221 0 00736 137 ind .rtrn. spring loaded interrupt vector 00222 0 00736 ind .rtrn. spring loaded interrupt vector 00223 0 00736 ind .rtrn. spring loaded interrupt vector 00224 0 00736 ind .rtrn. spring loaded interrupt vector 00225 0 00736 ind .rtrn. spring loaded interrupt vector 00226 0 00736 ind .rtrn. spring loaded interrupt vector 00227 0 00736 ind .rtrn. spring loaded interrupt vector 00230 0 00736 ind .rtrn. spring loaded interrupt vector 00231 0 00736 ind .rtrn. spring loaded interrupt vector 00232 0 00736 ind .rtrn. spring loaded interrupt vector 00233 0 00736 ind .rtrn. spring loaded interrupt vector 00234 0 00736 ind .rtrn. spring loaded interrupt vector assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 19 datanet fnp hardware communication region 00235 0 00736 ind .rtrn. spring loaded interrupt vector 00236 0 00736 ind .rtrn. spring loaded interrupt vector 00237 0 00736 ind .rtrn. spring loaded interrupt vector 138 139 channel 10 interrupt vectors 140 00240 0 00722 141 ind .icft. iom fault vector 00241 142 dup 1,15 00241 0 00736 143 ind .rtrn. spring loaded interrupt vector 00242 0 00736 ind .rtrn. spring loaded interrupt vector 00243 0 00736 ind .rtrn. spring loaded interrupt vector 00244 0 00736 ind .rtrn. spring loaded interrupt vector 00245 0 00736 ind .rtrn. spring loaded interrupt vector 00246 0 00736 ind .rtrn. spring loaded interrupt vector 00247 0 00736 ind .rtrn. spring loaded interrupt vector 00250 0 00736 ind .rtrn. spring loaded interrupt vector 00251 0 00736 ind .rtrn. spring loaded interrupt vector 00252 0 00736 ind .rtrn. spring loaded interrupt vector 00253 0 00736 ind .rtrn. spring loaded interrupt vector 00254 0 00736 ind .rtrn. spring loaded interrupt vector 00255 0 00736 ind .rtrn. spring loaded interrupt vector 00256 0 00736 ind .rtrn. spring loaded interrupt vector 00257 0 00736 ind .rtrn. spring loaded interrupt vector 144 145 channel 11 interrupt vectors 146 end of binary card gicb0004 00260 0 00722 147 ind .icft. iom fault vector 00261 148 dup 1,15 00261 0 00736 149 ind .rtrn. spring loaded interrupt vector 00262 0 00736 ind .rtrn. spring loaded interrupt vector 00263 0 00736 ind .rtrn. spring loaded interrupt vector 00264 0 00736 ind .rtrn. spring loaded interrupt vector 00265 0 00736 ind .rtrn. spring loaded interrupt vector 00266 0 00736 ind .rtrn. spring loaded interrupt vector 00267 0 00736 ind .rtrn. spring loaded interrupt vector 00270 0 00736 ind .rtrn. spring loaded interrupt vector 00271 0 00736 ind .rtrn. spring loaded interrupt vector 00272 0 00736 ind .rtrn. spring loaded interrupt vector 00273 0 00736 ind .rtrn. spring loaded interrupt vector 00274 0 00736 ind .rtrn. spring loaded interrupt vector 00275 0 00736 ind .rtrn. spring loaded interrupt vector 00276 0 00736 ind .rtrn. spring loaded interrupt vector 00277 0 00736 ind .rtrn. spring loaded interrupt vector 150 151 channel 12 interrupt vectors 152 00300 0 00722 153 ind .icft. iom fault vector 00301 0 00736 154 ind .rtrn. spring loaded interrupt vector 00302 0 01017 155 ind .dia14 entry for dia on channel 14(8) 00303 156 dup 1,13 assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 20 datanet fnp hardware communication region 00303 0 00736 157 ind .rtrn. spring loaded interrupt vector 00304 0 00736 ind .rtrn. spring loaded interrupt vector 00305 0 00736 ind .rtrn. spring loaded interrupt vector 00306 0 00736 ind .rtrn. spring loaded interrupt vector 00307 0 00736 ind .rtrn. spring loaded interrupt vector 00310 0 00736 ind .rtrn. spring loaded interrupt vector 00311 0 00736 ind .rtrn. spring loaded interrupt vector 00312 0 00736 ind .rtrn. spring loaded interrupt vector 00313 0 00736 ind .rtrn. spring loaded interrupt vector 00314 0 00736 ind .rtrn. spring loaded interrupt vector 00315 0 00736 ind .rtrn. spring loaded interrupt vector 00316 0 00736 ind .rtrn. spring loaded interrupt vector 00317 0 00736 ind .rtrn. spring loaded interrupt vector 158 159 channel 13 interrupt vectors 160 00320 0 00722 161 ind .icft. iom fault vector 00321 162 dup 1,15 00321 0 00736 163 ind .rtrn. spring loaded interrupt vector 00322 0 00736 ind .rtrn. spring loaded interrupt vector 00323 0 00736 ind .rtrn. spring loaded interrupt vector 00324 0 00736 ind .rtrn. spring loaded interrupt vector 00325 0 00736 ind .rtrn. spring loaded interrupt vector 00326 0 00736 ind .rtrn. spring loaded interrupt vector 00327 0 00736 ind .rtrn. spring loaded interrupt vector 00330 0 00736 ind .rtrn. spring loaded interrupt vector 00331 0 00736 ind .rtrn. spring loaded interrupt vector 00332 0 00736 ind .rtrn. spring loaded interrupt vector 00333 0 00736 ind .rtrn. spring loaded interrupt vector end of binary card gicb0005 00334 0 00736 ind .rtrn. spring loaded interrupt vector 00335 0 00736 ind .rtrn. spring loaded interrupt vector 00336 0 00736 ind .rtrn. spring loaded interrupt vector 00337 0 00736 ind .rtrn. spring loaded interrupt vector 164 165 channel 14 interrupt vectors 166 00340 0 00722 167 ind .icft. iom fault vector 00341 168 dup 1,15 00341 0 00736 169 ind .rtrn. spring loaded interrupt vector 00342 0 00736 ind .rtrn. spring loaded interrupt vector 00343 0 00736 ind .rtrn. spring loaded interrupt vector 00344 0 00736 ind .rtrn. spring loaded interrupt vector 00345 0 00736 ind .rtrn. spring loaded interrupt vector 00346 0 00736 ind .rtrn. spring loaded interrupt vector 00347 0 00736 ind .rtrn. spring loaded interrupt vector 00350 0 00736 ind .rtrn. spring loaded interrupt vector 00351 0 00736 ind .rtrn. spring loaded interrupt vector 00352 0 00736 ind .rtrn. spring loaded interrupt vector 00353 0 00736 ind .rtrn. spring loaded interrupt vector 00354 0 00736 ind .rtrn. spring loaded interrupt vector assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 21 datanet fnp hardware communication region 00355 0 00736 ind .rtrn. spring loaded interrupt vector 00356 0 00736 ind .rtrn. spring loaded interrupt vector 00357 0 00736 ind .rtrn. spring loaded interrupt vector 170 171 channel 15 interrupt vectors 172 00360 0 00722 173 ind .icft. iom fault vector 00361 174 dup 1,15 00361 0 00736 175 ind .rtrn. spring loaded interrupt vector 00362 0 00736 ind .rtrn. spring loaded interrupt vector 00363 0 00736 ind .rtrn. spring loaded interrupt vector 00364 0 00736 ind .rtrn. spring loaded interrupt vector 00365 0 00736 ind .rtrn. spring loaded interrupt vector 00366 0 00736 ind .rtrn. spring loaded interrupt vector 00367 0 00736 ind .rtrn. spring loaded interrupt vector 00370 0 00736 ind .rtrn. spring loaded interrupt vector 00371 0 00736 ind .rtrn. spring loaded interrupt vector 00372 0 00736 ind .rtrn. spring loaded interrupt vector 00373 0 00736 ind .rtrn. spring loaded interrupt vector 00374 0 00736 ind .rtrn. spring loaded interrupt vector 00375 0 00736 ind .rtrn. spring loaded interrupt vector 00376 0 00736 ind .rtrn. spring loaded interrupt vector 00377 0 00736 ind .rtrn. spring loaded interrupt vector assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 22 datanet fnp hardware communication region 176 eject 177 178 i n t e r r u p t c e l l s 179 00400 000000 180 dec 0 level 0 00401 000000 181 dec 0 level 1 00402 000000 182 dec 0 level 2 00403 000000 183 dec 0 level 3 00404 000000 184 dec 0 level 4 00405 000000 185 dec 0 level 5 00406 000000 186 dec 0 level 6 00407 000000 187 dec 0 level 7 end of binary card gicb0006 00410 000000 188 dec 0 level 8 00411 000000 189 dec 0 level 9 00412 000000 190 dec 0 level 10 00413 000000 191 dec 0 level 11 00414 000000 192 dec 0 level 12 00415 000000 193 dec 0 level 13 00416 000000 194 dec 0 level 14 00417 000000 195 dec 0 level 15 196 197 i o m f a u l t s t a t u s 198 00420 000000 199 dec 0 channel 0 00421 000000 200 dec 0 channel 1 00422 000000 201 dec 0 channel 2 00423 000000 202 dec 0 channel 3 00424 000000 203 dec 0 channel 4 00425 000000 204 dec 0 channel 5 00426 000000 205 dec 0 channel 6 00427 000000 206 dec 0 channel 7 00430 000000 207 dec 0 channel 8 00431 000000 208 dec 0 channel 9 00432 000000 209 dec 0 channel 10 00433 000000 210 dec 0 channel 11 00434 000000 211 dec 0 channel 12 00435 000000 212 dec 0 channel 13 00436 000000 213 dec 0 channel 14 00437 000000 214 dec 0 channel 15 assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 23 datanet fnp hardware communication region 215 eject 216 217 p r o c e s s o r f a u l t v e c t o r s 218 00440 0 00725 219 ind .falt. startup fault 00441 0 00725 220 ind .falt. shutdown fault 00442 0 00725 221 ind .falt. memory parity fault 00443 0 00725 222 ind .falt. illegal operation code fault 00444 0 00725 223 ind .falt. overflow fault 00445 0 00725 224 ind .falt. illegal memory operation fault 00446 0 00725 225 ind .falt. divide check fault 00447 0 00725 226 ind .falt. illegal program interrupt fault 227 228 i o m m a i l b o x c o m m r e g i o n 229 00450 000000 230 dec 0 interval timer mailbox 00451 000000 231 dec 0 elapsed timer mailbox 00452 000000 232 diaind dec 0 indicator storage area for checksum 00453 000000 233 dec 0 00454 234 even 00454 000000 235 diasts dec 0,0 bootload dia status storage area 00455 000000 00456 100454 236 vfd 3/w.2,15/diasts dia status icw 00457 030002 237 vfd 3/0,1/0,1/1,1/1,12/2 assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 24 load mcs/fnp system 238 ttls load mcs/fnp system 239 00460 240 icbt10 null 00460 0 04 260 740 241 ldaq iclist-* get list icw for mcs load 00461 0 43 202 663 242 ldx1 l.trm2-* set where to go after loading mcs/fnp 00462 0 71 112 574 243 tra diaioc-* initiate mcs/fnp loading 00463 0 00000 244 .trm2 ind ** 245 246 check dia status from mcs/fnp read 247 end of binary card gicb0007 00464 0 47 771 455 248 ldq diasts+1-* check second status word 00465 0 64 046 533 249 tnz icgtsr-* bad status - e r r o r 250 251 compute checksum 252 00466 0 07 305 773 253 lda iclmts+1-* calculate length of mcs 00467 0 26 303 772 254 sba iclmts-* * 00470 4332 00 255 cax1 move to index one 00471 0 44 161 652 256 ldi icindc-* reset indicator storage 00472 0 54 760 452 257 sti diaind-* * 00473 0 71 005 500 258 tra 5 branch around zeroes 259 00474 000000 260 dec 0 two words of zeroes that must be at loc 00475 000000 261 dec 0 474 & 475 so that pager won't be activated 00476 000000 262 dec 0 476-477 is dn6670 'yellow' counter and is 00477 000000 263 dec 0 incremented by one for each edac error 264 00500 0 03 166 666 265 ldx2 lmcs2-* get starting location plus two 00501 0 04 277 1000 266 ldaq .mcs.-* get first two words 00502 173 776 267 iacx1 -2 reduce length 00503 268 cksum calculate checksum for mcs/fnp 00503 0 41 002 505 ldx3 2 00504 0 71 057 563 tra cksum-* 00505 0 00505 ind * 00506 0 24 266 774 269 sbaq icksma-* compare cksum to that made by cs system 00507 0 64 026 535 270 tnz icgtcr-* ***checksum error*** assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 25 load mcs/fnp system 271 eject 272 273 move mcs/fnp system into position 274 00510 0 07 263 773 275 lda iclmts+1-* calculate end of mcs code 00511 0 06 154 665 276 ada lmcs-* * 00512 0332 00 277 cax2 move to index two 00513 0 17 167 702 278 sta .mov1a-* store start of .mov1 code 00514 0 43 170 704 279 ldx1 s.mov-* get beginning of move code 280 00515 1 07 000 281 icbt40 lda 0,1 move 00516 2 17 000 282 sta 0,2 the 00517 173 001 283 iacx1 1 move 00520 273 001 284 iacx2 1 code 00521 0 76 164 705 285 aos l.mov-* reduce counter 00522 0 64 773 515 286 tnz icbt40-* not done, continue 287 00523 0 07 244 767 288 lda icintn-* get execute interrupt cell number 00524 2337 03 289 arl 3 shift off emergency int cell no. 00525 0336 14 290 als 12 position number 00526 0 37 240 766 291 ora dimbx-* add in mailbox base address 00527 4333 00 292 cax3 move to index three 00530 0 03 242 772 293 ldx2 iclmts-* get the start of mcs 00531 0 43 134 665 294 ldx1 lmcs-* get where it is right now 00532 4 71 150 702 295 tra .mov1a-*,* enter move one routine assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 26 load mcs/fnp system 296 eject 297 298 send unsuccessful bootload status to cs system 299 00533 300 icgtsr null dia status error when reading mcs 00533 0 07 126 661 301 lda .ssts2-* set to store status error status 00534 0 71 006 542 302 tra icbt50-* 00535 303 icgtcr null checksum error on mcs data 00535 0 07 123 660 304 lda .ssts1-* set to store checksum error status 00536 473 000 305 ilq 0 clear the q 00537 0 71 003 542 306 tra icbt50-* 00540 307 dianfr null dia configuration error end of binary card gicb0008 00540 0 37 122 662 308 ora .ssts3-* set to store configuration error status 00541 0 56 106 647 309 stz icepc-* no exception processing for this one 00542 310 icbt50 null 00542 0 76 105 647 311 aos icepc-* reduce exception processing counter 00543 0 75 715 460 312 tmi icbt10-* dont give up yet, reissue command 00544 0 14 112 656 313 staq .sstat-* store status to be sent to cs 00545 0 07 221 766 314 lda dimbx-* calculate location of bootload status 00546 773 006 315 iaa 6 add offset of bootload status area 00547 0 17 063 632 316 sta stdcw1-* store in data transfer dcw 00550 0 07 217 767 317 lda icintn-* get execute interrupt cell to set 00551 2337 03 318 arl 3 shift off emergency int cell no. 00552 0336 06 319 als 6 position cell number 00553 0 72 064 637 320 orsa stdcw2+1-* store in interrupt dcw 00554 0 43 072 646 321 ldx1 lstsls-* get length of status dcw block 00555 322 parity stslst calculate parity for status dcw's 00555 0 41 002 557 ldx3 2 get location of dcw 00556 0 10 033 611 tsy parity-* call parity calculation routine 00557 0 00630 ind stslst location of dia dcw 00560 0 04 050 630 323 ldaq stslst-* get list icw for status store 00561 0 43 103 664 324 ldx1 l.trm3-* set where to go after storing status 00562 0 71 012 574 325 tra diaioc-* store bad status of the bootload assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 27 load mcs/fnp system 326 eject 327 328 checksum calculation routine 329 00563 330 cksum null 00563 0 44 667 452 331 ldi diaind-* get the indicators 00564 0 45 002 566 332 tnc 2 test for carry 00565 0 15 063 650 333 adaq diary-* carry. simulate awc instruction 00566 2 15 000 334 adaq 0,2 add in next word 00567 0 54 663 452 335 sti diaind-* save indicators 00570 273 002 336 iacx2 2 bump data pointer 00571 173 776 337 iacx1 -2 reduce counter 00572 0 64 771 563 338 tnz cksum-* continue to end of block 00573 3 71 001 339 tra 1,3 return 340 341 initiate i/o on dia channel 342 00574 0 14 656 452 343 diaioc staq list-* set list icw mailbox 00575 0 07 072 667 344 lda dialst-* get pointer to list icw 00576 473 070 345 ilq 56 get command of 70 for pcw 00577 0 14 655 454 346 staq dimb-* store in pcw mailbox 00600 4 53 053 653 347 stx1 lditm-*,* set terminate vector 00601 673 002 348 ila 2 set word count for parity check 00602 4332 00 349 cax1 * 00603 350 parity dimb calculate dia parity for pcw mailbox 00603 0 41 002 605 ldx3 2 get location of dcw 00604 0 10 005 611 tsy parity-* call parity calculation routine 00605 0 00454 ind dimb location of dia dcw 00606 0 60 646 454 351 cioc dimb-* initiate i/o in dia channel 00607 4331 00 352 dis wait for interrupt 00610 0 71 777 607 353 tra -1 * 354 355 calculate dia parity 356 00611 0 00000 357 parity ind ** return address 00612 3 47 000 358 ldq 0,3 get first word of dcw 00613 3 07 001 359 lda 1,3 get second word of dcw end of binary card gicb0009 00614 7336 22 360 qlp 18 calculate parity for 1st word 00615 0 64 002 617 361 tnz 2 odd parity... 00616 0 37 036 654 362 ora parwd1-* even - set parity bit 00617 3336 22 363 alp 18 calculate parity for 2nd word 00620 0 64 002 622 364 tnz 2 odd parity... 00621 0 37 034 655 365 ora parwd2-* even - set parity bit 00622 3 17 001 366 sta 1,3 restore second word with parity bits 00623 373 002 367 iacx3 2 bump pointer to next pair of words 00624 173 776 368 iacx1 -2 decrement word count 00625 0 64 765 612 369 tnz parity+1-* more to do 00626 0 76 763 611 370 aos parity-* increment return pointer 00627 4 71 762 611 371 tra parity-*,* and return assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 28 constants and buffers 372 ttls constants and buffers 373 000452 374 list equ 298 list icw storage 375 00630 1 00632 376 stslst dcw stdcw1,6 send bootload status list icw 00631 000006 00632 000000 377 stdcw1 vfd 18/,18/diaftc data transfer fnp to cs dcw 00633 000075 00634 1 00656 378 dcw .sstat,1 00635 000001 00636 000000 379 stdcw2 vfd 18/,18/diainc interrupt cs dcw 00637 000073 00640 1 00000 380 zero 0,w.2 00641 0 00000 381 zero 00642 000000 382 vfd 18/,18/diadis disconnect dcw 00643 000070 00644 1 00000 383 zero 0,w.2 00645 0 00000 384 zero 00646 0 00016 385 lstsls ind *-stslst length of status dcw block 386 00647 777775 387 icepc dec -3 exception processing counter 388 00650 389 even 00650 000000 390 diary dec 0,1 cksum carry constant 00651 000001 00652 024000 391 icindc oct 024000 indicator register constant 00653 0 00000 392 lditm ind ** location of dia terminate vector 393 (filled in depending on which one gets used) 394 00654 040000 395 parwd1 oct 040000 parity bit for 1st word of dia dcw 00655 020000 396 parwd2 oct 020000 parity bit for 2nd word of dia dcw 397 00656 398 even 00656 400000 399 .sstat oct 400000,000000 status for successful bootload 00657 000000 00660 410000 400 .ssts1 oct 410000 status for checksum error on bootload 00661 420000 401 .ssts2 oct 420000 status for bad status on bootload 00662 430000 402 .ssts3 oct 430000 status for configuration error 403 00663 0 00463 404 l.trm2 ind .trm2 terminate vector when reading mcs/fnp 00664 0 00733 405 l.trm3 ind icbtsp-1 terminate vector for storing status 406 001000 407 .mcs. equ 512 loading base for mcs/fnp system 00665 0 01000 408 lmcs ind .mcs. base of mcs/fnp system 00666 0 01002 409 lmcs2 ind .mcs.+2 location of mcs/fnp loading base + two 00667 1 00452 410 dialst ind list,w.2 location of list icw with 36 bit xfer 411 assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 29 constants and buffers 412 eject 413 414 move program 415 000664 416 mvllmt equ *-4 low limits of mcs 000665 417 mvhlmt equ *-3 high limit of mcs 000666 418 mvwdct equ *-2 word count for mcs 000667 419 mventy equ *-1 entry point for mcs 420 end of binary card gicb0010 00670 1 47 000 421 .mov1 ldq 0,1 move mcs/fnp system 00671 2 57 000 422 stq 0,2 * 00672 173 001 423 iacx1 1 bump load pointer 00673 273 001 424 iacx2 1 bump store pointer 00674 0 63 006 702 425 cmpx1 .mov1a-* everything moved? 00675 0 64 773 670 426 tnz .mov1-* no. continue moving 00676 0 07 005 703 427 lda movchn-* yes. pass dia channel to init routine 00677 0 03 766 665 428 ldx2 mvhlmt-* also upper limit of mcs for clearing memory 00700 0 43 767 667 429 ldx1 mventy-* get entry point of mcs 00701 1 71 777 430 tra -1,1 enter mcs 00702 0 00000 431 .mov1a ind ** location of .mov1 at end of mcs program 432 00703 000000 433 movchn oct 0 dia channel will be stored here 00704 0 00670 434 s.mov ind .mov1 location of the beginning of move code 00705 777764 435 l.mov vfd 18/-movchn+.mov1-1 length of move code (negated) assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 30 constants and buffers 436 eject 437 438 439 * * * * * * * * * * * * * * * * * * * * * * * * * * * * 440 * n.b. the following org means one must be very careful 441 * when adding code above loc 722 (8) 442 * * * * * * * * * * * * * * * * * * * * * * * * * * * * 443 00722 444 org 466 445 00722 0 00000 446 .icft. ind ** dia channel fault 00723 4331 01 447 dis 1 stop on iom fault 00724 0 71 777 723 448 tra -1 449 00725 0 00000 450 .falt. ind ** processor fault 00726 4331 02 451 dis 2 stop on fault 00727 0 71 777 726 452 tra -1 453 00730 4331 03 454 icser dis 3 bad dia status on bootload 00731 0 71 777 730 455 tra -1 stop on bad status 456 00732 4331 04 457 diaksr dis 4 checksum error on bootload data 00733 0 71 777 732 458 tra -1 stop on checksum error 459 00734 4331 05 460 icbtsp dis 5 unsuccessful bootload attempt 00735 0 71 777 734 461 tra -1 stop on unsuccessful bootload 462 00736 0 00000 463 .rtrn. ind ** spring loaded vector for 00737 4 71 777 736 464 tra -1,* extraneous interrupts assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 31 future site of bootload communication block 465 ttls future site of bootload communication block 466 00740 467 org 480 468 00740 469 dup 1,32 reserve communication area 00740 000000 470 btcomm dec 0 00741 000000 dec 0 00742 000000 dec 0 00743 000000 dec 0 00744 000000 dec 0 00745 000000 dec 0 00746 000000 dec 0 00747 000000 dec 0 00750 000000 dec 0 00751 000000 dec 0 00752 000000 dec 0 00753 000000 dec 0 end of binary card gicb0011 00754 000000 dec 0 00755 000000 dec 0 00756 000000 dec 0 00757 000000 dec 0 00760 000000 dec 0 00761 000000 dec 0 00762 000000 dec 0 00763 000000 dec 0 00764 000000 dec 0 00765 000000 dec 0 00766 000000 dec 0 00767 000000 dec 0 00770 000000 dec 0 00771 000000 dec 0 00772 000000 dec 0 00773 000000 dec 0 00774 000000 dec 0 00775 000000 dec 0 00776 000000 dec 0 00777 000000 dec 0 assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 32 cs bootload validation 471 ttls cs bootload validation 472 01000 473 org 512 474 01000 0 00000 475 .dia3. ind ** entry when dia is on channel 3 01001 673 003 476 ila 3 01002 0 17 232 1234 477 sta diachn-* 01003 0 56 775 1000 478 stz .dia3.-* so as not to gum up checksum 01004 0 71 020 1024 479 tra .icbt.-* 480 01005 0 00000 481 .dia4. ind ** entry when dia is on channel 4 01006 673 004 482 ila 4 01007 0 17 225 1234 483 sta diachn-* 01010 0 56 775 1005 484 stz .dia4.-* so as not to gum up checksum 01011 0 71 013 1024 485 tra .icbt.-* 486 01012 0 00000 487 .dia5. ind ** entry when dia is on channel 5 01013 673 005 488 ila 5 01014 0 17 220 1234 489 sta diachn-* 01015 0 56 775 1012 490 stz .dia5.-* so as not to gum up checksum 01016 0 71 006 1024 491 tra .icbt.-* 492 01017 0 00000 493 .dia14 ind ** entry when dia is on channel 14 (8) 01020 673 014 494 ila 12 01021 0 17 213 1234 495 sta diachn-* 01022 0 56 775 1017 496 stz .dia14-* so as not to gum up checksum 01023 0 71 001 1024 497 tra .icbt.-* 498 01024 499 .icbt. null start of bootload program 500 501 check dia status from bootload 502 01024 0 47 431 455 503 ldq diasts+1-* check second status word 01025 0 64 703 730 504 tnz icser-* bad status means bad bootload 505 506 compute checksum 507 508 end of binary card gicb0012 01026 0 44 624 652 509 ldi icindc-* reset indicator storage word 01027 0 54 423 452 510 sti diaind-* * 01030 0 56 706 736 511 stz .rtrn.-* reset interrupt spring vector 01031 0 03 113 1144 512 ldx2 sintv2-* get the start of the interrupt vectors 01032 0 04 136 1170 513 ldaq intvc-* get the first words which were there 01033 0 43 115 1150 514 ldx1 diant1-* get the first cksum counter 01034 515 cksum calculate cksum 1/4 01034 0 41 002 1036 ldx3 2 01035 0 71 526 563 tra cksum-* 01036 0 01036 ind * 01037 0 43 112 1151 516 ldx1 diant2-* get second cksum counter 01040 0 03 105 1145 517 ldx2 sfltst-* start of fault status words assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 33 cs bootload validation 01041 518 cksum calculate cksum 2/4 01041 0 41 002 1043 ldx3 2 01042 0 71 521 563 tra cksum-* 01043 0 01043 ind * 01044 0 43 106 1152 519 ldx1 diant3-* get third cksum counter 01045 0 03 101 1146 520 ldx2 sdiast-* location of dia status icw 01046 521 cksum calculate cksum 3/4 01046 0 41 002 1050 ldx3 2 01047 0 71 514 563 tra cksum-* 01050 0 01050 ind * 01051 0 43 102 1153 522 ldx1 diant4-* get fourth cksum counter 01052 0 03 075 1147 523 ldx2 sdimb4-* location of dia dcw mailbox plus four 01053 524 cksum calculate cksum 4/4 01053 0 41 002 1055 ldx3 2 01054 0 71 507 563 tra cksum-* 01055 0 01055 ind * 01056 0 14 054 1132 525 staq temp-* save checksum assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 34 cs bootload validation 526 eject 527 528 move bootload communication region 529 01057 0 43 051 1130 530 ldx1 ltbtcm-* get pointer to temporary comm region 01060 0 03 051 1131 531 ldx2 lbtcom-* get pointer to permenant comm region 01061 473 740 532 ilq -32 set counter 01062 1 07 000 533 btcmov lda 0,1 move bootload 01063 2 17 000 534 sta 0,2 communication block 01064 173 001 535 iacx1 1 increment 01065 273 001 536 iacx2 1 block pointers 01066 573 001 537 iaq 1 reduce counter 01067 0 64 773 1062 538 tnz btcmov-* continue 539 540 store dia channel in saved indicators and set 541 dia interrupt vector 542 01070 0 07 144 1234 543 lda diachn-* get channel number 01071 0 17 612 703 544 sta movchn-* put it where it can be found by move routine 01072 0 72 560 652 545 orsa icindc-* put it in select register portion of indicators 01073 0 44 557 652 546 ldi icindc-* set the indicators 01074 0336 04 547 als 4 convert to interrupt vector address 01075 773 002 548 iaa 2 01076 0 17 555 653 549 sta lditm-* save it 550 551 check bootload checksum 552 01077 0 04 033 1132 553 ldaq temp-* get checksum 01100 0 24 676 776 554 sbaq icksmb-* compare cksum to that made by cs 01101 0 64 631 732 555 tnz diaksr-* ...checksum error... end of binary card gicb0013 01102 0 03 042 1144 556 ldx2 sintv2-* get pointer to start of interrupt vector 01103 2 04 016 557 ldaq 14,2 reset vectors used during bootload 01104 2 14 776 558 staq -2,2 * 01105 2 04 014 559 ldaq 12,2 * 01106 2 14 000 560 staq 0,2 * 01107 2 14 002 561 staq 2,2 * assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 35 cs bootload validation 562 eject 563 564 read dia configuration 565 01110 0 43 056 1166 566 ldx1 lcnfls-* get length of configuration dcw block 01111 567 parity cnflst calculate parity for configuration dcw's 01111 0 41 002 1113 ldx3 2 get location of dcw 01112 0 10 477 611 tsy parity-* call parity calculation routine 01113 0 01154 ind cnflst location of dia dcw 01114 0 43 053 1167 568 ldx1 l.trm1-* set return address for terminate from 01115 0 04 037 1154 569 ldaq cnflst-* get configuration list icw 01116 0 71 456 574 570 tra diaioc-* the configuration read & go initiate i/o 571 01117 0 00000 572 .trm1 ind ** 01120 0 47 016 1136 573 ldq csmbx-* get the mailbox address from the switches 01121 0 07 016 1137 574 lda csics-* get the interrupt cell number 01122 0 67 644 766 575 cmpq dimbx-* is it the same as the cs said? 01123 0 64 415 540 576 tnz dianfr-* no. configuration error 577 01124 0 27 643 767 578 cmpa icintn-* compare interrupt cell switches 01125 0 64 413 540 579 tnz dianfr-* no good, report error 580 01126 4 71 001 1127 581 tra lbt10-*,* all ok so far, load mcs 582 01127 0 00460 583 lbt10 ind icbt10 location of the mcs load routine 584 01130 0 01174 585 ltbtcm ind tbtcom location of temporary boot comm region 01131 0 00740 586 lbtcom ind btcomm location of permanent boot comm region 01132 587 even 01132 000000 588 temp dec 0,0 temporary storage 01133 000000 589 590 dia configuration data area 591 01134 592 even 01134 593 config null 01134 000000 594 cspab oct port a and port b 01135 000000 595 cspcd oct port c and port d 01136 000000 596 csmbx oct cs mailbox address 01137 000000 597 csics oct cs interrupt cell switch 01140 000000 598 cslwa oct lower address bounds switches 01141 000000 599 csupc oct upper address bounds switches 01142 600 bss 2 assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 36 cs bootload validation 601 eject 01144 0 00002 602 sintv2 ind intv+2 location of interrupt vectors plus two 01145 0 00420 603 sfltst ind fltst location of iom fault status words 01146 0 00456 604 sdiast ind dist location of dia status icw 01147 0 00460 605 sdimb4 ind dimb+4 location of dia pcw mailbox plus four 01150 000376 606 diant1 dec 254 cksum counter for interrupt vector area 01151 000030 607 diant2 dec 24 cksum counter for flt vctrs & flt status 01152 000002 608 diant3 dec 2 cksum counter for dia status icw 01153 0 00552 609 diant4 ind end-icbt10-2 cksum counter for bootload program 610 01154 1 01156 611 cnflst dcw *+2,4 configuration list icw 01155 000004 end of binary card gicb0014 01156 000000 612 vfd 18/,18/diardc read configuration dcw 01157 000074 01160 1 01134 613 dcw config,4 01161 000004 01162 000000 614 vfd 18/,18/diadis disconnect dcw 01163 000070 01164 1 00000 615 zero 0,w.2 01165 0 00000 616 zero 01166 0 00012 617 lcnfls ind *-cnflst length of configuration dcw block 618 619 01167 0 01117 620 l.trm1 ind .trm1 terminate vector for configuration read 01170 621 even 01170 100002 622 intvc vfd 3/w.2,15/2 first words of interrupt vector area 01171 060002 623 vfd 3/0,1/1,1/1,13/2 624 625 01172 010101 626 date 01173 061002 assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 37 bootload communication block 627 ttls bootload communication block 628 01174 629 tbtcom even 001234 630 end equ *+32 last location to be included in checksum 631 of bootload program 00740 632 loc 480 633 634 mcs/fnp list icw control block 635 00740 1 00742 636 iclist dcw icdcw1,** list icw 00741 000000 00742 000000 637 icdcw1 vfd 18/,18/diactf dcw number one 00743 000076 00744 101000 638 vfd 3/w.2,15/.mcs. load 0 - 8k 00745 000000 639 vfd 6/0,12/0 00746 000000 640 icdcw2 vfd 18/,18/diactf dcw number two 00747 000076 00750 121000 641 vfd 3/w.2,15/.mcs.+8192 load 8 - 16k 00751 000000 642 vfd 6/0,12/0 00752 000000 643 icdcw3 vfd 18/,18/diactf dcw number three 00753 000076 00754 141000 644 vfd 3/w.2,15/.mcs.+16384 load 16 - 24k 00755 000000 645 vfd 6/0,12/0 00756 000000 646 icdcw4 vfd 18/,18/diactf dcw number four 00757 000076 00760 161000 647 vfd 3/w.2,15/.mcs.+24576 load 24 - 32k 00761 000000 648 vfd 6/0,12/0 00762 000000 649 icdcw5 vfd 18/,18/diadis dcw number five - disconnect 00763 000070 00764 000000 650 vfd 18/0,18/0 00765 000000 00766 000000 651 dimbx dec 0 cs mailbox address 00767 000000 652 icintn dec 0 cs interrupt cells 00770 000000 653 dec 0,0 unused 00771 000000 00772 000000 654 iclmts dec 0,0 mcs load limits 00773 000000 end of binary card gicb0015 00774 000000 655 icksma dec 0,0 mcs checksum 00775 000000 00776 000000 656 icksmb dec 0,0 bootload checksum 00777 000000 657 01234 658 org end 01234 000000 659 diachn oct 0 dia channel number is deliberately stored 660 outside checksum area end of binary card gicb0016 00000 661 end end of binary card gicb0017 1236 is the next available location. 355map version/assembly dates gmpa 770711/071177 gmpb 770711/071177 gmpc 770711/071177 assm 01 11-16-82 16.740 mcs/fnp intercomputer bootload routine page 38 bootload communication block there were no warning flags in the above assembly assm 01 11-16-82 16.742 mcs/fnp intercomputer bootload routine page 39 octal symbol references by sequence no. 1062 btcmov 533 533 538 740 btcomm 470 470 586 563 cksum 330 268 330 338 515 518 521 524 1154 cnflst 611 567 569 611 617 1134 config 593 593 613 1137 csics 597 574 597 1136 csmbx 596 573 596 1234 diachn 659 477 483 489 495 543 659 76 diactf 61 61 637 640 643 646 70 diadis 55 55 73 382 614 649 75 diaftc 60 60 377 73 diainc 58 58 379 452 diaind 232 232 257 331 335 510 574 diaioc 343 243 325 343 570 732 diaksr 457 457 555 667 dialst 410 344 410 540 dianfr 307 307 576 579 1150 diant1 606 514 606 1151 diant2 607 516 607 1152 diant3 608 519 608 1153 diant4 609 522 609 74 diardc 59 59 612 650 diary 390 333 390 454 diasts 235 235 236 248 503 454 dimb 41 41 346 350 351 605 766 dimbx 651 291 314 575 651 456 dist 41 41 604 1234 end 630 609 630 658 420 fltst 41 41 603 460 icbt10 240 240 312 583 609 515 icbt40 281 281 286 542 icbt50 310 302 306 310 734 icbtsp 460 405 460 742 icdcw1 637 636 637 647 icepc 387 309 311 387 535 icgtcr 303 270 303 533 icgtsr 300 249 300 652 icindc 391 256 391 509 545 546 767 icintn 652 288 317 578 652 774 icksma 655 269 655 776 icksmb 656 554 656 740 iclist 636 241 636 772 iclmts 654 253 254 275 293 654 730 icser 454 454 504 0 intv 41 41 602 1170 intvc 622 513 622 1017 .dia14 493 155 493 496 1000 .dia3. 475 95 475 478 1005 .dia4. 481 103 481 484 1012 .dia5. 487 111 487 490 725 .falt. 450 219 220 221 222 223 224 225 226 450 assm 01 11-16-82 16.742 mcs/fnp intercomputer bootload routine page 40 octal symbol references by sequence no. 1024 .icbt. 499 479 485 491 497 499 722 .icft. 446 81 87 93 101 109 117 123 129 135 141 147 153 161 167 173 446 1000 .mcs. 407 266 407 408 409 638 641 644 647 670 .mov1 421 421 426 434 435 702 .mov1a 431 278 295 425 431 736 .rtrn. 463 77 83 89 94 97 102 105 110 113 119 125 131 137 143 149 154 157 163 169 175 463 511 656 .sstat 399 313 378 399 660 .ssts1 400 304 400 661 .ssts2 401 301 401 662 .ssts3 402 308 402 1117 .trm1 572 572 620 463 .trm2 244 244 404 1127 lbt10 583 581 583 1131 lbtcom 586 531 586 1166 lcnfls 617 566 617 653 lditm 392 347 392 549 452 list 374 343 374 410 705 l.mov 435 285 435 1167 l.trm1 620 568 620 663 l.trm2 404 242 404 664 l.trm3 405 324 405 666 lmcs2 409 265 409 665 lmcs 408 276 294 408 646 lstsls 385 321 385 1130 ltbtcm 585 530 585 703 movchn 433 427 433 435 544 667 mventy 419 419 429 665 mvhlmt 417 417 428 611 parity 357 322 350 357 369 370 371 567 654 parwd1 395 362 395 655 parwd2 396 365 396 1146 sdiast 604 520 604 1147 sdimb4 605 523 605 1145 sfltst 603 517 603 1144 sintv2 602 512 556 602 704 s.mov 434 279 434 632 stdcw1 377 316 376 377 636 stdcw2 379 320 379 630 stslst 376 322 323 376 385 1174 tbtcom 629 585 629 1132 temp 588 525 553 588 1 w.2 70 74 236 380 383 410 615 622 638 641 644 647 ** 46663 words of memory were used by 355map for this assembly. ----------------------------------------------------------- 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