assm 01 12-10-82 15.855 init - fnp initialization module for multics page 1 preface program break 7226 common length 0 v count bits 7 primary symdef entry init 0 istart 6310 secondary symdef entry .chain 0 block length symref 1 hfv 2 ctrl 3 lsf1 4 lsf2 5 lsf3 6 lsf4 7 lsf5 end of binary card 00000001 10 lsf6 11 wcon 12 diajt 13 dlist 14 etrip 15 exist 16 itest 17 msdsp 20 pspec 21 pterm end of binary card 00000002 22 trace 23 badint 24 bfcksw 25 brktab 26 conchn 27 conman 30 consjt 31 contip 32 diams1 33 dicell end of binary card 00000003 34 diconf 35 dindcw 36 dspqur 37 endtrc assm 01 12-10-82 15.855 init - fnp initialization module for multics page 2 40 etrint 41 etrmon 42 frebuf 43 fremem 44 fresml 45 getbfm end of binary card 00000004 46 getbuf 47 getmem 50 hslajt 51 hslms1 52 icmdat 53 idlcnt 54 idlint 55 idlmax 56 idlmin 57 idloop end of binary card 00000005 60 ignore 61 iomflt 62 lslajt 63 mvplmm 64 nxtrce 65 secdsp 66 setptw 67 skdata 70 skdms1 71 skdms2 end of binary card 00000006 72 skdms3 73 skdms4 74 skdms5 75 skdms6 76 skdms7 77 timrjt 100 trams1 101 trams2 102 utsave end of binary card 00000007 assm 01 12-10-82 15.855 init - fnp initialization module for multics page 3 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 ,init assm 01 12-10-82 15.855 init - fnp initialization module for multics page 4 12 13 *********************************************************************** 14 * 15 * note: cs means "central system" 16 * 17 *********************************************************************** 18 * 19 * init is the initialization module for mcs. it is entered from 20 * gicb just after bootload. init is always the last module 21 * loaded into the fnp and most of it is freed as buffer 22 * space after initialization is complete. 23 * 24 * this routine takes care of setting up each configured 25 * io channel and allocating tibs for each line. 26 * 27 * initially coded for gerts and stolen for mcs. 28 * modified by coren for mcs. 29 * modified by grady and coren to delete pre-init code 30 * from other modules. 31 * modified by grady to add stuff for printer init. 32 * modified by art beattie to support dn6670 extended memory. 33 * modified by robert coren to add allocation of metering area 34 * 35 *********************************************************************** 36 37 pcc on 38 pmc off 39 detail on 40 editp on 41 42 symdef init 43 symdef istart 44 45 symref ignore ignore interrupts routine 46 symref badint extraneous interrupt routine 47 symref exist summary of which iom channels exist 48 symref iomflt iom channel fault routine 49 symref hfv hardware fault vector entry base address 50 symref msdsp master dispatcher entry location 51 symref etrip elapsed timer rollover interrupt proc. 52 symref dicell dia configuration switch data location 53 symref dindcw dia_man interrupt dcw 54 symref wcon console routine entry point 55 symref contip console terminate interrupt proc address 56 symref conchn console channel number 57 symref getbuf buffer allocating subroutine 58 symref frebuf buffer freeing subroutine 59 symref getmem memory allocating subroutine 60 symref fremem memory freeing subroutine 61 symref fresml routine to clean up fres space 62 symref bfcksw switch that controls buffer checking 63 symref ctrl control tables 64 symref itest "test-state" entry to interpreter assm 01 12-10-82 15.855 init - fnp initialization module for multics page 5 65 symref lslajt lsla jump tables 66 symref lsf1 lsla software comm regions 67 symref lsf2 68 symref lsf3 69 symref lsf4 70 symref lsf5 71 symref lsf6 72 symref hslajt hsla jump tables 73 symref diajt dia jump tables 74 symref dlist dia icws, pcws, etc. 75 symref diconf dia configuration area 76 symref consjt console jump tables 77 symref timrjt timer jump tables 78 symref utsave place in utilities where regs get saved 79 symref pterm printer terminate interrupt handler 80 symref pspec printer special handler 81 symref brktab addr of table in breakpoint_man 82 symref skdata address of scheduler data block 83 symref icmdat address of ic-moniroting data block 84 symref etrmon address of icmdat in sskdata 85 symref etrint address of timer interval in skdata 86 symref idlint idle metering interval 87 symref idloop start of idle loop 88 symref idlcnt counter maintained by idle loop 89 symref idlmax maximum idle count value 90 symref idlmin mininum " " " 91 symref dspqur secondary queuer 92 symref secdsp secondary dispatcher 93 symref setptw set page table word 94 symref trace trace module 95 symref endtrc (in trace module) last word in trace buffer 96 symref nxtrce (in trace module) next entry in trace buffer 97 symref mvplmm move paged lower memory maximum address 98 symref diams1 dia_man memory size switch 99 symref hslms1 hsla_man memory size switch 100 symref skdms1 scheduler memory size switch one 101 symref skdms2 scheduler memory size switch two 102 symref skdms3 scheduler memory size switch three 103 symref skdms4 scheduler memory size switch four 104 symref skdms5 scheduler memory size switch five 105 symref skdms6 scheduler memory size switch six 106 symref skdms7 scheduler memory size switch seven 107 symref trams1 trace memory size switch 108 symref trams2 trace memory size switch 109 symref conman set to -1 by init if console_man is in image 110 symref getbfm interrupt time metering area for getbuf 111 112 pmc save,on 00000 113 systm assm 01 12-10-82 15.874 init - fnp initialization module for multics page 6 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 000004 dich set 4 direct interface adaptor 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 12-10-82 15.874 init - fnp initialization module for multics page 7 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 000100 dift set 64 dia fault 000102 ditm set 66 dia 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 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 8 datanet configuration description 000363 dis15 set 243 dia special - 15 000140 h1ft set 96 hsla 1 fault 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 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 9 datanet configuration description 000144 h1a6 set 100 hsla 1 subch 6 active terminate vector 000145 h1a22 set 101 hsla 1 subch 22 active terminate vector 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 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 10 datanet configuration description 000305 h1a28 set 197 hsla 1 subch 28 active terminate vector 000306 h1c12 set 198 hsla 1 subch 12 config terminate vector 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 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 11 datanet configuration description 000302 l4c set 194 lsla 4 configuration terminate vector 000320 l5ft set 208 lsla 5 fault 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 12-10-82 15.874 init - fnp initialization module for multics page 12 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 12-10-82 15.874 init - fnp initialization module for multics page 13 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 12-10-82 15.874 init - fnp initialization module for multics page 14 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 114 comreg assm 01 12-10-82 15.874 init - fnp initialization module for multics page 15 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 12-10-82 15.874 init - fnp initialization module for multics page 16 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 000760 .crcpr set 496 copyright notice 115 00000 116 hwcm assm 01 12-10-82 15.874 init - fnp initialization module for multics page 17 hardware comm. region (hwcm) ttls hardware comm. region (hwcm) 000000 h.ric0 equ 0 primary receive icw 000002 h.ric1 equ 2 alternate receive icw 000004 h.sic0 equ 4 primary send icw 000006 h.sic1 equ 6 alternate send icw 000010 h.baw equ 8 base address word 000011 h.sfcm equ 9 software comm. region address 000012 h.mask equ 10 mask register 000014 h.aicw equ 12 active status icw 000016 h.cnfg equ 14 configuration status 117 00000 118 tib assm 01 12-10-82 15.874 init - fnp initialization module for multics page 18 terminal information block (tib) ttls terminal information block (tib) 000000 t.stat equ 0 holds current line status 000001 t.flg equ t.stat+1 flag word 000002 t.flg2 equ t.flg+1 second word of flags 000003 t.cur equ t.flg2+1 current address in control table 000004 t.line equ t.cur+1 10 bit line number 000005 t.icp equ t.line+1 first buffer in input chain 000006 t.ilst equ t.icp+1 last buffer in input chain 000007 t.icpl equ t.ilst+1 count of buffers in icp chain 000010 t.icch equ t.icpl+1 address of next input character 000011 t.elnk equ t.icch+1 link to tib extension 000011 t.rcp equ t.elnk replay chain pointer (share t.elnk) 000012 t.ocp equ t.elnk+1 addr of output chain from cs 000013 t.ocur equ t.ocp+1 addr of current output buffer 000014 t.olst equ t.ocur+1 addr of last buffer in output chain 000015 t.occh equ t.olst+1 addr of next output character 000016 t.ocnt equ t.occh+1 count of buffers in t.ocur 000017 t.type equ t.ocnt+1 line type 000020 t.time equ t.type+1 time at which next timeout will occur 000022 t.reta equ t.time+2 return address from calsub 000023 t.dcwa equ t.reta+1 addr of dcw list to 'execute' 000024 t.dcwl equ t.dcwa+1 length of dcw list 000025 t.echo equ t.dcwl+1 echo buffer address 000026 t.dcp equ t.echo+1 addr of message chain for cs 000027 t.dlst equ t.dcp+1 last buffer in messge chain for cs 000030 t.ftse equ t.dlst+1 first time slot entry in lsla table assm 01 12-10-82 15.874 init - fnp initialization module for multics page 19 terminal information block (tib) 000030 t.sfcm equ t.ftse pointer to sfcm for hsla lines 000031 t.bcnt equ t.ftse+1 counting temporary 000032 t.brkp equ t.bcnt+1 pointer to current break list 000033 t.pos equ t.brkp+1 current carriage position 000034 t.char equ t.pos+1 pending line control char (lsla only) 000034 t.ecch equ t.char address of current echo char (hsla only) 000035 t.cntr equ t.char+1 counter for control tables 000036 t.flg3 equ t.cntr+1 third word of flags 000037 t.dtp equ t.flg3+1 pointer to delay table for this line 000040 t.frmc equ t.dtp+1 framing chars (2 chars) 000041 t.dcpl equ t.frmc+1 number of buffers in dcp chain 000042 t.scll equ t.dcpl+1 screenline length left, for echo neg. 000043 t.sncc equ t.scll+1 echo negotiation sync ctr. 000044 t.entp equ t.sncc+1 echo negotiation break table ptr 000045 t.ifch equ t.entp+1 input flow control characters 000046 t.ofch equ t.ifch+1 output flow control characters 000047 t.omct equ t.ofch+1 output message count (for flow control) 000050 t.itim equ t.omct+1 time of last call to inproc (2 words) 000052 t.metr equ t.itim+2 address of metering area 000053 t.leng equ t.metr+1 length of a tib ******************************** * t.stat bits ******************************** 000001 tsfcd bool 000001 carrier detect 000002 tsfcts bool 000002 clear to send 000004 tsfdsr bool 000004 data set ready assm 01 12-10-82 15.874 init - fnp initialization module for multics page 20 terminal information block (tib) 000010 tsfsrc bool 000010 supervisory receive 000020 tsfst bool 000020 store status 000040 tsfmrk bool 000040 send marker status 000100 tsftrm bool 000100 send terminate status 000200 tsfrcv bool 000200 receive mode 000400 tsfxmt bool 000400 transmit mode 001000 tsfbrk bool 001000 send line break 002000 tsfdtr bool 002000 data terminal ready 004000 tsfsxt bool 004000 supervisory transmit 004000 tsftre bool 004000 tally runout enable (hdlc) 010000 tsfrts bool 010000 request to send 020000 tsfcrq bool 020000 acu call request ******************************** * tib flags -- t.flg ******************************** 000001 tfwrit bool 000001 output chain present 000002 tfbel bool 000002 send bell as next echoed character 000004 tffdpx bool 000004 full duplex mode 000010 tfkybd bool 000010 keyboard addressed 000020 tfprtr bool 000020 printer addressed 000040 tfhang bool 000040 hangup this line 000100 tflisn bool 000100 answer the phone 000200 tfquit bool 000200 send nl on line break 000400 tfctrl bool 000400 do kybd/printer addressing 001000 tflfec bool 001000 do lf echo on cr assm 01 12-10-82 15.874 init - fnp initialization module for multics page 21 terminal information block (tib) 002000 tfcrec bool 002000 do cr echo on lf 004000 tftbec bool 004000 do space echo on tab 010000 tfwabt bool 010000 do write abort 020000 tfauto bool 020000 this is hsla autobaud line 040000 tfeotx bool 040000 eot expected from 2741 100000 tfisus bool 100000 input suspended 200000 tfecpx bool 200000 echoplex mode 400000 tfosus bool 400000 output suspended ******************************** * second word of tib flags ******************************** 000001 tfxhld bool 000001 hold transmit on 000002 tfdild bool 000002 terminal is dialed up 000004 tfercv bool 000004 enter receive mode 000010 tfrabt bool 000010 do read abort 000020 tfacu bool 000020 do dial out 000040 tfifc bool 000040 input flow control mode 000100 tfofc bool 000100 output flow control mode 000200 tfupsf bool 000200 terminal is upshifted now 000400 tfrply bool 000400 replay mode 001000 tfrpon bool 001000 replay is occurring now 002000 tfplit bool 002000 polite mode 004000 tfblak bool 004000 asynchronous block acknowledgement 010000 tfcrcv bool 010000 'control' receive mode 020000 tfmrcv bool 020000 'message' receive mode 040000 tffrmi bool 040000 frame mode assm 01 12-10-82 15.874 init - fnp initialization module for multics page 22 terminal information block (tib) 100000 tffip bool 100000 frame in progress 200000 tfsftr bool 200000 terminal is shifting device 400000 tfpfnl bool 400000 line is in prefixnl mode ********************************* * third word of tib flags ********************************* 000001 tfbkpt bool 000001 line is stopped at breakpoint 000002 tfitim bool 000002 timeout if input stops 000004 tfkpar bool 000004 keep parity bits 000010 tfecho bool 000010 echoing has priority over output (lsla) 000020 tfbral bool 000020 break on all characters 000040 tfsked bool 000040 input timeout routine scheduled 000100 tf8in bool 000100 don't strip input parity 000200 tf8out bool 000200 don't strip output parity 000400 tfoddp bool 000400 odd parity 002000 tfsoip bool 002000 suspension of output in progress 004000 tforp bool 004000 output resume pending (waiting until tro) ********************************* * redefined tib flags in t.flg ********************************* 000020 tfdlup equ tfprtr line is on dialup modem 119 00000 120 meters assm 01 12-10-82 15.874 init - fnp initialization module for multics page 23 system-wide meters ttls system-wide meters 000720 .mdilc set 464 cumulative no. of channels dialed 000722 .mdilu set 466 updates of .mdilc 000724 .mspav set 468 cumulative space available 000726 .mspau set 470 updates of .mspav 000730 .mimbx set 472 cumulative number of mbxes in use 000732 .mimbu set 474 updates of .mimbx 000734 .mndil set 476 current no. of channels dialed 000735 .malof set 477 number of space allocation failures 000736 .mdias set 478 abnormal dia status 000737 .mpool set 479 total size of buffer pool (in words) 000740 .mbufa set 480 number of buffer allocations 000742 .mbfpa set 482 number of buffers pre-allocated 000744 .mupab set 484 used a pre-allocated buffer 000746 .mpanf set 486 no pre-allocated buffer available 000030 .mleng equ .mpanf+2-.mdilc length of system-wide meters assm 01 12-10-82 15.874 init - fnp initialization module for multics page 24 per-channel meters ttls per-channel meters meters for all channels 000000 m.dql equ 0 cumulative length of dia request queue 000002 m.dqu equ m.dql+2 updates of m.dql 000004 m.nst equ m.dqu+2 cumulative no. of pending status 000006 m.nsu equ m.nst+2 updates of m.nst 000010 m.over equ m.nsu+2 output overlaps 000011 m.par equ m.over+1 parity errors 000012 m.ssqo equ m.par+1 software status queue overflows 000013 m.hsqo equ m.ssqo+1 hardware status queue overflows 000014 m.inaf equ m.hsqo+1 input allocation failures 000015 m.cql equ m.inaf+1 current length of dia request queue 000016 m.exh equ m.cql+1 exhaust status 000020 m.xte equ m.exh+2 software xte status 000022 m.leng equ m.xte+2 length of common meters (must be even) additional meters for asynchronous channels 000022 m.prex equ m.leng pre-exhaust status 000024 m.ebof equ m.prex+2 echo buffer overflows 000026 m.quit equ m.ebof+2 bell-quits 000030 m.asyl equ m.quit+2 total length of asynchronous meters (must be even) additional meters for synchronous channels 000022 m.nim equ m.leng number of input messages 000024 m.iml equ m.nim+2 cumulative length of input 000026 m.mini equ m.iml+2 minimum length of input message assm 01 12-10-82 15.874 init - fnp initialization module for multics page 25 per-channel meters 000027 m.maxi equ m.mini+1 maximum length of input message 000030 m.nom equ m.maxi+1 number of output messages 000032 m.oml equ m.nom+2 cumulative length of output 000034 m.mino equ m.oml+2 minimum length of output message 000035 m.maxo equ m.mino+1 maximum length of output message 000036 m.cnt1 equ m.maxo+1 first type of counter 000040 m.cnt2 equ m.cnt1+2 second type of counter 000042 m.cnt3 equ m.cnt2+2 third type of counter 000044 m.cnt4 equ m.cnt3+2 fourth type of counter 000046 m.cnt5 equ m.cnt4+2 fifth type of counter 000050 m.cnt6 equ m.cnt5+2 sixth type of counter 000052 m.cnt7 equ m.cnt6+2 seventh type of counter 000054 m.cnt8 equ m.cnt7+2 eighth type of counter 000056 m.synl equ m.cnt8+2 total length of synchronous meters 121 00000 122 sfcm hsla pcc save,off assm 01 12-10-82 15.874 init - fnp initialization module for multics page 26 sfcm for hsla 000000 sf.hcm equ 0 addr of hwcm 000001 sf.nxa equ sf.hcm+1 addr of next available queue entry 000002 sf.nxp equ sf.nxa+1 addr of next queue entry to process 000003 sf.tly equ sf.nxp+1 tally of status queue 000004 sf.tib equ sf.tly+1 addr of tib for this line 000005 sf.flg equ sf.tib+1 flag word 000006 sf.ib0 equ sf.flg+1 pointer to input buffer 1 000007 sf.ib1 equ sf.ib0+1 pointer to input buffer 2 000010 sf.ob0 equ sf.ib1+1 pointer to output buffer 1 000011 sf.ob1 equ sf.ob0+1 pointer to output buffer 2 000012 sf.pcw equ sf.ob1+1 current pcw 2nd word 000013 sf.cct equ sf.pcw+1 cct addr for this line, if non-zero 000014 sf.rct equ sf.cct+1 repeat count for status queue overflows 000015 sf.hsl equ sf.rct+1 address of hsla table entry for this line 000016 sf.bsz equ sf.hsl+1 max buffer size 000017 sf.fbs equ sf.bsz+1 buffer size to be used during frame input 000020 sf.mms equ sf.fbs+1 maximum synchronous message size 000020 sf.csz equ sf.mms current asynchronous buffer size 000021 sf.rms equ sf.mms+1 remaining unallocated message length 000021 sf.nic equ sf.rms char. address of next asynchronous input 000022 sf.noc equ sf.nic+1 char address of next asynchronous output 000023 sf.ssl equ sf.noc+1 number of entries in software status queu 000024 sf.cfg equ sf.ssl+1 2 words for config pcw 000026 sf.sta equ sf.cfg+2 hardware status q, sicw here 000005 sfhsiz equ 5 number of entries in hardware status buf room for 6 status words assm 01 12-10-82 15.874 init - fnp initialization module for multics page 27 sfcm for hsla 000042 sf.est equ sf.sta+sfhsiz*2+2 000042 sf.hln equ sf.est 000042 sf.waq equ sf.est wrap around queue, software status q 000012 sfssq equ 10 length of "short" software status queue 000024 sflsq equ 20 length of "long" software status queue (used for hdlc and bisync lines) 000054 sf.sln equ sf.hln+sfssq 000066 sf.lln equ sf.hln+sflsq sfcm flag definitions 000001 sffskd bool 000001 status processor is scheduled 000002 sffcii bool 000002 on if alternate input icw is active 000004 sffcoi bool 000004 on if alternate output icw is active 000010 sffisc bool 000010 inactive subchannel flag 000020 sffsct bool 000020 short cct flag 000040 sffebd bool 000040 ebcdic data code on this line 000100 sffech bool 000100 tab, cr, lf echo going on now 000200 sffdct bool 000200 dynamic (sharable) cct in use for channel 000400 sffstp bool 000400 stop channel, rxmit done 002000 sffbsc bool 002000 binary synchronous device 004000 sffsqo bool 004000 status queue overflow pending 010000 sffsyn bool 010000 any synchronous line type 020000 sffmsp bool 020000 marker status pending 040000 sffofr bool 040000 old setting of tffrmi (lines up on tffrmi 100000 sffnib bool 100000 need to allocate new input buffer(s) 200000 sffssb bool 200000 copied alternate buffer back to output ch 400000 sffhdl bool 400000 uses hdlc channel board assm 01 12-10-82 15.874 init - fnp initialization module for multics page 28 sfcm for hsla 000002 sfhmk equ 2 x-or mask to switch icw addrs 000001 sfbfmk equ 1 x-or mask to switch i-or-ob1/2 addrs pcc restore 123 00000 124 sfcm lsla pcc save,off sfcm fields defined for lsla only 000003 sf.ioc equ sf.nxp+1 i/o chain pointer 000004 sf.bfc equ sf.ioc+1 current input buffer pointer 000006 sf.bfa equ sf.flg+1 alternate input buffer ptr 000007 sf.bfl equ sf.bfa+1 output buffer length 000010 sf.icw equ sf.bfl+1 ptr to current input icw 000011 sf.ocw equ sf.icw+1 ptr to current output icw 000012 sf.ltb equ sf.ocw+1 ptr to lsla table 000013 sf.otb equ sf.ltb+1 ptr to output buffer 000014 sf.ity equ sf.otb+1 tally for input icw 000015 sf.oty equ sf.ity+1 tally for output icw 000016 sf.sic equ sf.oty+1 standard status icw 000020 sf.ssb equ sf.sic+2 status save buffer (10 words) 000032 sf.sbf equ sf.ssb+10 status buffer (8 words) bit definitions for sf.flg 000200 sffrlm bool 200 already sent error message about resync a 000100 sffopt bool 100 dsr and cts reported 000040 sffrsy bool 40 resync required 000020 sffptr bool 20 expecting input ptro 000010 sffrun bool 10 lsla running ok 000004 sffnsx bool 4 no stx on last input frame 000002 sffsnd bool 2 second output buffer current assm 01 12-10-82 15.874 init - fnp initialization module for multics page 29 sfcm for hsla 000001 sffslo bool 1 short frame lsla (22 time slots) pcc restore 125 00000 126 devtab assm 01 12-10-82 15.874 init - fnp initialization module for multics page 30 device table entry (devtab) ttls device table entry (devtab) two characters used alternately for 000000 dt.seq equ 0 sequencing 000001 dt.cct equ dt.seq+1 address of default cct (hsla only) address of array of keyboard addressing 000002 dt.key equ dt.cct+1 sequences address of array of printer addressing 000003 dt.prt equ dt.key+1 sequences 000004 dt.flg equ dt.prt+1 flags(one word) 000005 dt.cmt equ dt.flg+1 carriage movement table (6 chars) 000010 dt.brk equ dt.cmt+3 default break list (4 words) (lsla only) flags 000001 dtfctl bool 000001 default setting of tfctrl (in tib) 000002 dtfsct bool 000002 default setting of short cct flag 000004 dtfsft bool 000004 default setting of tfsftr 127 00000 128 buffer assm 01 12-10-82 15.874 init - fnp initialization module for multics page 31 buffer format ttls buffer format 000000 bf.nxt equ 0 address of next buffer in chain 000001 bf.siz equ bf.nxt+1 size of buffer (bits0-2) 000001 bf.flg equ bf.nxt+1 flags (bits3-8) 000001 bf.tly equ bf.nxt+1 tally of buffer (bits9-17) 000002 bf.dta equ bf.siz+1 start of data 000040 bufsiz equ 32 buffer size 000074 bufnch equ bufsiz*2-4 number of data characters in a buffer 000050 bufmax equ 40 maximum number of input buffers 000012 bufpre equ 10 number of buffers to trigger pre-exhaust 000005 bufshf equ 5 number of bits shifted to divide by bufsi 000024 bufres equ 20 number of reserved buffers 700000 bufsmk bool 700000 mask to isolate bf.siz 077000 buffmk bool 077000 mask to isolate bf.flg 000777 buftmk bool 000777 mask to isolate bf.tly 000002 bufthr equ 2 threshold at which to send send_output 000400 bfmsiz equ 256 maximum buffer size in words ******************************** * buffer flags ******************************** 040000 bfflst bool 040000 last buffer in message 020000 bffbrk bool 020000 buffer contains break character 010000 bfftra bool 010000 throw away this buffer when done inputtin 004000 bffrpy bool 004000 buffer is last in replay chain 002000 bffctl bool 002000 buffer consists of keybd/prtr control 001000 bffhld bool 001000 hold output buffer until dmpout assm 01 12-10-82 15.874 init - fnp initialization module for multics page 32 buffer format 129 eject 000200 130 pbit bool 200 131 132 character codes 133 000015 134 cr bool 15 000012 135 lf bool 12 000002 136 stx bool 2 000033 137 esc bool 33 000026 138 sync bool 26 000037 139 us bool 37 140 141 002000 142 ptro bool 2000 pre-tally runout status 000020 143 rts bool 20 set request-to-send 000040 144 dtr bool 40 data terminal ready 000400 145 rcv bool 400 receive mode 000200 146 snd bool 200 send mode 147 148 pcw opcodes 149 000010 150 initop bool 10 000003 151 reqcst bool 3 000005 152 rstmsk bool 5 000004 153 setmsk bool 4 000011 154 stomrg bool 11 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 33 configuration tree table definitions 155 ttls configuration tree table definitions 156 ************************************************************************ 157 * these symbolic names are used to access the various fields of the 158 * configuration tree table (fig tree). 159 * 160 * three symbols are defined for each field: 161 * 162 * fa can be used as a mask to isolate the field. 163 * fb can be used as a mask when the field is right justified. 164 * fc the position ofthe lsb of the field. 165 * 166 * when changes are made to this table, be sure to check all useage 167 * of symbols beginning with "fa". 168 ************************************************************************ 169 400000 170 fampx bool 400000 1 = multiplexed channel 000001 171 fbmpx bool 1 000000 172 fcmpx equ 0 173 200000 174 farel bool 200000 1 = device released 000001 175 fbrel bool 1 000001 176 fcrel equ 1 177 100000 178 faasyn bool 100000 1 = asynchronous device 000001 179 fbasyn bool 1 000002 180 fcasyn equ 2 181 070000 182 fadacn bool 070000 device number for hsla and lsla 000007 183 fbdacn bool 7 000005 184 fcdacn equ 5 185 004000 186 fatnd bool 004000 1 = t&d is in control 000001 187 fbtnd bool 1 000006 188 fctnd equ 6 189 003000 190 fachrl bool 003000 character length code 000003 191 fbchrl bool 3 000010 192 fcchrl equ 8 193 000760 194 fadevc bool 000760 device type code 000037 195 fbdevc bool 37 000015 196 fcdevc equ 13 197 000017 198 fasped bool 000017 device speed code 000017 199 fbsped bool 17 000021 200 fcsped equ 17 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 34 configuration tree table definitions 201 eject 202 ********************************************************* 203 * device type codes 204 ********************************************************* 205 000000 206 dnimp bool 00 not implemented 207 000001 208 dclock bool 01 fnp's clocks 209 000002 210 ddia bool 02 dia 211 000003 212 dhsla bool 03 hsla 213 000004 214 dlsla bool 04 lsla 215 000005 216 dcon bool 05 console 217 000006 218 dprint bool 06 printer 219 220 unused codes 07 - 14 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 35 symbol definition 221 ttls symbol definition rem 222 ***************************************************** 223 * negative lsla sfcm flags 224 ***************************************************** 225 777775 226 nsfsnd bool /sffsnd 777776 227 nsfslo bool /sffslo 228 229 *************************************************** 230 * lsla table symbol definitions 231 *************************************************** 232 000000 233 lt.flg equ 0 flag word 000001 234 lt.tib equ 1 tib address 000007 235 lt.sid bool 7 time slot id 236 000100 237 ltfibm bool 100 ibm-type (odd parity) terminal 238 000000 239 lt10 equ 0 10 cps 000001 240 lt30a equ 1 30 cps, slot 1 000002 241 lt30b equ 2 30 cps, slot 2 000003 242 lt30c equ 3 30 cps, slot 3 000005 243 lt15a equ 5 15 cps, slot 1 000006 244 lt15b equ 6 15 cps, slot 2 000007 245 undef equ 7 undefined slot id assm 01 12-10-82 15.874 init - fnp initialization module for multics page 36 symbol definition 246 eject 247 248 pmc on,save 00000 249 hslatb ******************************************** * hsla table symbol definitions ******************************************** 000000 ht.flg equ 0 hsla tables flag bits 000001 ht.tib equ 1 tib ptr in hsla table 400000 htfcc bool 400000 concentrator channel 200000 htfpl bool 200000 private line modem or hardwire 100000 htfasy bool 100000 async channel 040000 htfop1 bool 040000 option 1 020000 htfop2 bool 020000 option 2 017000 htfmdm bool 017000 modem type, 4 bits 000760 htflnt bool 000760 line type, 5 bits 000017 htfspd bool 000017 line speed, 4 bits 250 pmc restore 251 252 253 ******************************************** 254 * modem types 255 ******************************************** 256 000001 257 mt103a equ 1 000002 258 mt201c equ 2 000003 259 mt2025 equ 3 000004 260 mt2026 equ 4 000005 261 mt208a equ 5 000006 262 mt208b equ 6 000007 263 mt209a equ 7 264 10-17 unused 265 000003 266 tt2741 equ 3 terminal type "2741" 000007 267 ttbsc equ 7 line type for bisync 000021 268 ttx25 equ 17 line type for x.25 000022 269 tthdlc equ 18 line type for hdlc 000023 270 ttcolt equ 19 line type for colts channel 271 000074 272 diardc bool 74 dia opcode -- read configuration 000070 273 diadis bool 70 dia opcode -- disconnect 274 275 276 00000 277 init null 00000 278 start init,9 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 37 symbol definition 279 pmc restore 280 00012 281 even 00012 282 tibtab bss 816 2 words per tib (unused space will be freed) assm 01 12-10-82 15.874 init - fnp initialization module for multics page 38 init macros 283 ttls init macros 284 285 ******************************************************* 286 * 287 * dn6670 paged data address icw (odd word) 288 * allows iom to directly address all 64k memory 289 * 290 ******************************************************* 291 292 amicwo macro 293 vfd 2/2,3/#1,1/#3,12/#2 294 endm amicwo 295 296 297 * multiply macro 298 299 mpy macro 300 mpf #1 301 lrl 1 302 endm mpy assm 01 12-10-82 15.874 init - fnp initialization module for multics page 39 miscellaneous subroutines 303 ttls miscellaneous subroutines 304 ************************************************************************ 305 * setclk -- set interval timer 306 * rstclk -- reset interval timer 307 * 308 * entry -- setclk 309 * 310 * lda (number milliseconds) 311 * ldq (return address on runout) 312 * tsy setclk-* 313 * 314 * entry -- rstclk 315 * 316 * tsy rstclk-* 317 ************************************************************************ 318 01472 0 00000 0 319 setclk ind ** 01473 0 54 025 1520 320 sti scindc-* save io select register 01474 073 077 0 321 sel tmch select clock channel 01475 0 60 017 1514 322 cioc scoff-* turn clock off 01476 4 17 020 1516 323 sta scvalu-*,* store time value 01477 4 57 020 1517 324 stq sciv-*,* store user's iv 01500 0 60 012 1512 325 cioc scon-* turn clock on 01501 0 44 017 1520 326 ldi scindc-* restor io select reg 01502 4 71 770 1472 327 tra setclk-*,* return 328 329 330 01503 0 00000 0 331 rstclk ind ** 01504 0 54 014 1520 332 sti scindc-* save io select register 01505 073 077 0 333 sel tmch select clock channel 01506 0 60 006 1514 334 cioc scoff-* turn clock off 01507 0 44 011 1520 335 ldi scindc-* restore io select register 01510 4 71 773 1503 336 tra rstclk-*,* return 337 338 339 01511 233100 0 01512 340 even 01512 000000 0 341 scon oct 0,0 01513 000000 0 01514 000000 0 342 scoff oct 0,010000 01515 010000 0 01516 0 00450 0 343 scvalu ind itmb interval timer mailbox address 01517 0 00361 0 344 sciv ind tmro interval timer runout iv address 01520 345 scindc bss 1 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 40 main initialization loop 346 ttls main initialization loop 347 348 ****************************************************************************** 349 * 350 * the code from istart-1 to the begining of channel initialization is only 351 * executed once. therefore, this code is located at the end of the module 352 * so it can be released as buffer space and used for tib and sfcm allocation. 353 * if no lsla is configured, the initialization code for lsla's is also 354 * released as buffer space. this helps in making available as much memory as 355 * possible for channel initialization. 356 * 357 ****************************************************************************** 358 359 360 ********************************************************* 361 * scan fig tree and initialize devices 362 ********************************************************* 363 01521 1 00000 0 364 figtre ind **+0,1 points to current "fig" -- 1st word 01522 1 00001 0 365 ind **+1,1 points to current "fig" -- 2nd word 366 01523 367 itl010 null 01523 0 07 135 1660 368 lda iomch-* end of binary card 00000008 01524 0336 01 0 369 als 1 01525 4332 00 0 370 cax1 x1 = 2 * iom channel number 01526 4 07 773 1521 371 lda figtre-*,* pluck a fig from the tree of knowledge 01527 6333 00 0 372 caq 01530 4 03 772 1522 373 ldx2 figtre+1-*,* get wd 2 of entry 01531 2337 04 0 374 arl 18-fcdevc-1 r-just device code bits 375 376 * at this point, 377 * q = word 0 of config table 378 * x1 = 2 * (iom channel #) 379 * x2 = word 1 of config table 380 01532 022 037 0 381 iana fbdevc ? non-implemented channel ? 01533 0 74 104 1637 382 tze nodev-* yes 01534 422 002 0 383 icmpa ddia ? device = dia ? 01535 4 74 013 1550 384 tze a.a001-*,* (dia) yes 01536 422 003 0 385 icmpa dhsla ? device = hsla ? 01537 4 74 012 1551 386 tze a.a002-*,* (hsla) yes 01540 422 004 0 387 icmpa dlsla ? device = lsla ? 01541 4 74 011 1552 388 tze a.a003-*,* (lsla) yes 01542 422 006 0 389 icmpa dprint ? device = printer ? 01543 4 74 010 1553 390 tze a.a004-*,* (print) yes 01544 422 001 0 391 icmpa dclock ? device = clocks ? 01545 4 74 007 1554 392 tze a.a005-*,* (clocks) yes, also -- last iom channel 393 01546 394 itl020 null 01546 0 76 112 1660 395 aos iomch-* bump to next iom channel assm 01 12-10-82 15.874 init - fnp initialization module for multics page 41 main initialization loop 01547 0 71 754 1523 396 tra itl010-* 397 398 399 device initialization routines: 01550 0 01701 1 400 a.a001 ind dia direct interface adapter 01551 0 02077 1 401 a.a002 ind hsla high speed line adapter 01552 0 04413 1 402 a.a003 ind lsla low speed line adapter 01553 0 01664 1 403 a.a004 ind print line printer 01554 0 03753 1 404 a.a005 ind clocks clocks -- final start up procedures 01555 0 01557 1 405 a.a006 zero savein 406 01556 4336 00 0 407 l.a001 qls 0 01557 408 savein bss 3*16 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 42 nodev -- initialize for non-implemented channel 409 ttls nodev -- initialize for non-implemented channel 410 ************************************************************************ 411 * non-implemented channel: 412 * 413 * --set appropriate iv's to point to an "extraneous interrupt" 414 * reporting routine. 415 * 416 * --send a mask pcw (bit 23 =1) to insure channel is off. 417 ************************************************************************ 418 01637 419 nodev null 420 01637 0 07 021 1660 421 lda iomch-* compute base address of iv's for 01640 0336 01 0 422 als 1 this channel 01641 0 06 017 1660 423 ada iomch-* 01642 0 06 713 1555 424 ada a.a006-* (savein) 01643 4332 00 0 425 cax1 01644 0 07 012 1656 426 lda a.b001-* (badint) 01645 1 17 000 0 427 sta 0,1 01646 1 17 001 0 428 sta 1,1 01647 1 17 002 0 429 sta 2,1 01650 0 07 010 1660 430 lda iomch-* store channel # in "sel" end of binary card 00000009 01651 0 37 006 1657 431 ora l.b001-* (sel 0) instruction 01652 0 17 001 1653 432 sta ndv010-* 433 01653 073 000 0 434 ndv010 sel ** select the channel 01654 0 60 006 1662 435 cioc nmpcw-* send mask pcw 436 01655 0 71 671 1546 437 tra itl020-* 438 439 440 01656 0 04600 3 441 a.b001 ind badint 442 01657 073 000 0 443 l.b001 sel 0 444 01660 0 00000 0 445 iomch zero 0 current iom channel number 01661 233100 0 01662 446 even 01662 000000 0 447 nmpcw oct 0,010000 pcw0 -- mask channel 01663 010000 0 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 43 print - initialize for line printer 448 ttls print - initialize for line printer 449 ********************************************************************** 450 * setup to run the line printer. init the interrupt vectors 451 * into ptrac. 452 ********************************************************************** 453 01664 454 print null 455 01664 0 07 774 1660 456 lda iomch-* get the channel number 01665 0336 01 0 457 als 1 times 2 01666 0 06 772 1660 458 ada iomch-* now is times 3 01667 0 06 666 1555 459 ada a.a006-* (savein) plus base of save area 01670 4332 00 0 460 cax1 copy into x1 461 01671 0 07 005 1676 462 lda a.c001-* (pspec) get special handler addr 01672 1 17 001 0 463 sta 1,1 put into save area 01673 0 07 004 1677 464 lda a.c002-* (pterm) and terminate handler 01674 1 17 002 0 465 sta 2,1 save it too, to be restored later 466 01675 0 71 651 1546 467 tra itl020-* return for next channel 468 469 01676 0 04000 3 470 a.c001 ind pspec 01677 0 04200 3 471 a.c002 ind pterm 01700 0 04367 1 472 a.c003 ind simsw assm 01 12-10-82 15.874 init - fnp initialization module for multics page 44 dia -- initialize for inter-computer adapter 473 ttls dia -- initialize for inter-computer adapter 474 ************************************************************************ 475 * this routine initializes the dia by reading the setting of the 476 * configuration data switches. 477 ************************************************************************ 478 01701 479 dia null 480 01701 0 20 174 2075 481 szn icflag-* ? more than one dia called for ? 01702 0 74 003 1705 482 tze dia010-* no, this is 1st one encountered 01703 4 71 001 1704 483 tra 1,* 01704 0 03266 1 484 ind stop03 "more than one dia configured" eeeeeeeeee 485 01705 486 dia010 null 01705 0 76 170 2075 487 aos icflag-* 488 01706 0 07 752 1660 489 lda iomch-* 01707 0 72 015 1724 490 orsa dia030-* 01710 0 72 070 2000 491 orsa dia070-* 01711 0 72 010 1721 492 orsa dia020-* 01712 0336 01 0 493 als 1 set level 1 iv to extraneous int routine 01713 0 06 745 1660 494 ada iomch-* 01714 0 06 641 1555 495 ada a.a006-* (savein) 01715 4332 00 0 496 cax1 01716 0 07 740 1656 497 lda a.b001-* (badint) 01717 1 17 001 0 498 sta 1,1 499 end of binary card 00000010 01720 0 07 147 2067 500 lda l.d001-* (=o400000) 01721 2337 00 0 501 dia020 arl ** 01722 0 17 152 2074 502 sta cdiaic-* save operand for "sic" 503 01723 4 47 116 2041 504 ldq a.d002-*,* (exist) 01724 4336 00 0 505 dia030 qls ** ? does this channel exist ? 01725 0 75 003 1730 506 tmi dia040-* yes 01726 4 71 001 1727 507 tra 1,* 01727 0 03271 1 508 ind stop04 "dia does not exist" eeeeeeeeeeeeeeeeeeee 509 01730 0 07 120 2050 510 dia040 lda a.d010-* (diajt) 01731 1 17 002 0 511 sta 2,1 put address of dia terminate jump table 512 in saved iv 01732 0 43 117 2051 513 ldx1 a.d011-* (dis0) -- first dia "special" iv 01733 473 760 0 514 ilq -16 we will store 16 jump table addresses 01734 773 003 0 515 dia050 iaa 3 increment jump table address 01735 1 17 000 0 516 sta 0,1 put it in interrupt vector 01736 573 001 0 517 iaq 1 bump counter 01737 0 74 003 1742 518 tze dia060-* all done 01740 173 020 0 519 iacx1 16 no, bump interrupt vector address 01741 0 71 773 1734 520 tra dia050-* go round again 521 01742 0 03 110 2052 522 dia060 ldx2 a.d012-* (dlist) assm 01 12-10-82 15.874 init - fnp initialization module for multics page 45 dia -- initialize for inter-computer adapter 01743 2 07 001 0 523 lda 1,2 get 2nd word of status icw template 01744 0 37 125 2071 524 ora l.d003-* (=o010000) 'or' in exhaust bit 01745 6333 00 0 525 caq 01746 2 07 000 0 526 lda 0,2 get rest of status icw template 01747 4 14 104 2053 527 staq a.d013-*,* (dist) store it in status icw mbx 01750 3332 00 0 528 cx2a 01751 773 002 0 529 iaa 2 point to pcw template 01752 4333 00 0 530 cax3 in x3 01753 673 002 0 531 ila 2 get count 01754 4332 00 0 532 cax1 01755 4 10 077 2054 533 tsy a.d014-*,* (parity) 534 pcw has correct parity now 01756 2 04 002 0 535 ldaq 2,2 pick it up 01757 4 14 061 2040 536 staq a.d001-*,* (dimb) put it in pcw mailbox 537 01760 273 006 0 538 iacx2 6 point x2 at dcw area 01761 673 000 0 539 ila 0 we will set up dcw list to read configuration 01762 473 074 0 540 ilq diardc config opcode (74) 01763 2 14 000 0 541 staq 0,2 01764 0 07 071 2055 542 lda a.d015-* (diconf),w.2 01765 473 004 0 543 ilq 4 01766 2 14 002 0 544 staq 2,2 545 now disconnect dcw end of binary card 00000011 01767 673 070 0 546 ila diadis disconnect opcode (70) 01770 2 17 005 0 547 sta 5,2 01771 0 07 077 2070 548 lda l.d002-* (0,w.2) 01772 2 17 006 0 549 sta 6,2 01773 3332 00 0 550 cx2a 01774 4333 00 0 551 cax3 copy into x3 for parity subroutine 01775 673 010 0 552 ila 8 get count 01776 4332 00 0 553 cax1 01777 4 10 055 2054 554 tsy a.d014-*,* (parity) 555 02000 556 dia070 null 02000 073 000 0 557 sel ** 02001 4 07 044 2045 558 lda a.d007-*,* (ditm) pick up terminate vector location of 02002 0 17 074 2076 559 sta ictmtp-* dia and temp store it 02003 0 07 043 2046 560 lda a.d008-* (dia090) pick up location to use for this 02004 4 17 041 2045 561 sta a.d007-*,* (ditm) terminate and put in iv loc 02005 4 60 033 2040 562 cioc a.d001-*,* (dimb) pcw -- read dia configuration switches 563 02006 673 005 0 564 ila 5 set timeout (5 ms) for terminate interrupt 02007 0 47 006 2015 565 ldq dia080-1-* pick up addr of timeout handler 02010 4 10 033 2043 566 tsy a.d005-*,* (setclk) and go start up clock 567 02011 4 20 667 1700 568 szn a.c003-*,* (simsw) see if running in simulator 02012 0 74 010 2022 569 tze dia090+1-* yes, dont execute the dis 02013 4331 00 0 570 dis in fnp, wait for dia interrupt 02014 0 71 777 2013 571 tra -1 dont let just any interrupt do it 572 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 46 dia -- initialize for inter-computer adapter 02015 0 02016 1 573 ind dia080 02016 0 00000 0 574 dia080 ind ** 02017 4 71 001 2020 575 tra 1,* 02020 0 03273 1 576 ind stop05 "dia did not respond in time" eeeeeeeeeee 577 02021 0 00000 0 578 dia090 ind ** gets "tsy"d to on dia interrupt 02022 4 10 022 2044 579 tsy a.d006-*,* (rstclk) dia terminate interrupt occurred 580 02023 0 07 033 2056 581 lda a.d016-* (dia100) get new temporary iv 02024 4 17 021 2045 582 sta a.d007-*,* (ditm) 02025 0 04 045 2072 583 ldaq initst-* get "init entered" status 02026 4 10 040 2066 584 tsy a.d024-*,* (btsts) send it to dia 02027 0 71 002 2031 585 tra dia100+1-* if we come here, we are in sim 586 587 btsts waits for interrupt 588 02030 0 00000 0 589 dia100 ind ** tsy'd to after interrupt 02031 0 07 045 2076 590 lda ictmtp-* pick up saved loc of dia terminate 02032 4 17 013 2045 591 sta a.d007-*,* (ditm) handler, and put it back 592 593 put terminate interrupt cell into dia_man's dcw 02033 4 07 007 2042 594 lda a.d003-*,* (dicell) get it from configuration switches 02034 2337 03 0 595 arl 3 isolate terminate interrupt cell 02035 0336 06 0 596 als 6 end of binary card 00000012 02036 4 72 011 2047 597 orsa a.d009-*,* (dindcw) 598 dia is all set up now 02037 0 71 507 1546 599 tra itl020-* assm 01 12-10-82 15.874 init - fnp initialization module for multics page 47 dia -- initialize for inter-computer adapter 600 eject 601 02040 0 00454 0 602 a.d001 ind dimb dia mailbox address 02041 0 03200 3 603 a.d002 ind exist 02042 0 06600 3 604 a.d003 ind dicell 02043 0 01472 1 605 a.d005 ind setclk 02044 0 01503 1 606 a.d006 ind rstclk 02045 0 00102 0 607 a.d007 ind ditm 02046 0 02021 1 608 a.d008 ind dia090 02047 0 07200 3 609 a.d009 ind dindcw 02050 0 02400 3 610 a.d010 ind diajt 02051 0 00003 0 611 a.d011 ind dis0 02052 0 02600 3 612 a.d012 ind dlist 02053 0 00456 0 613 a.d013 ind dist 02054 0 04347 1 614 a.d014 ind parity 02055 1 07000 3 615 a.d015 zero diconf,w.2 02056 0 02030 1 616 a.d016 ind dia100 02057 0 02450 1 617 a.d017 ind hslano 02060 0 02551 1 618 a.d018 ind hlahcr 02061 0 03334 1 619 a.d019 ind getchn 02062 0 02620 1 620 a.d020 ind hmsg01+2 02063 0 04370 1 621 a.d021 ind iwcon 02064 0 12000 3 622 a.d022 ind hslajt 02065 0 00653 0 623 a.d023 zero .criom 02066 0 04264 1 624 a.d024 ind btsts bootload status reporting routine 625 02067 400000 0 626 l.d001 oct 400000 02070 1 00000 0 627 l.d002 zero 0,w.2 02071 010000 0 628 l.d003 oct 010000 exhaust bit 02072 629 even 02072 450000 0 630 initst oct 450000,000000 "init entered" status 02073 000000 0 631 02074 632 cdiaic bss 1 02075 000000 0 633 icflag oct 0 02076 000000 0 634 ictmtp oct 0 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 48 hsla -- initialize for high speed line adapter 635 ttls hsla -- initialize for high speed line adapter 636 637 ************************************************************************ 638 * 639 * this routine will initialize all that is necessary to operate 640 * from one to three high speed line adapters. subchannels which are 641 * found to not exist or configured improperly will be marked by 642 * setting the "exhaust" bit in the active status icw. no tib or software 643 * comm region will be created for such subchannels. 644 * 645 ************************************************************************ 646 647 648 * this procedure is entered with: 649 * q = word 0 of config table 650 * x1 = 2 * (iomchannel #) 651 * x2 = word 1 of config table 652 02077 653 hsla null 02077 7333 00 0 654 cqa lets figure out the hsla # 02100 2337 14 0 655 arl 18-fcdacn-1 from word 0 of config table 02101 022 007 0 656 iana fbdacn -- now we have got it 02102 773 777 0 657 iaa -1 internal count is from 0 02103 4 17 754 2057 658 sta a.d017-*,* (hslano) save it for later end of binary card 00000013 02104 773 001 0 659 iaa 1 02105 0336 11 0 660 als 9 multiply by 1000 (octal) and we 02106 4 17 752 2060 661 sta a.d018-*,* (hlahcr) have the hardware region address 662 02107 4333 00 0 663 cax3 x3 -> this hsla hardware comm region 664 02110 0 07 550 1660 665 lda iomch-* now, lets see if this iom channel 02111 0 37 445 1556 666 ora l.a001-* (qls 0) exists (from the "exist" variable) 02112 0 17 002 2114 667 sta +2 put this "qls iomch#" where we will execute it 02113 4 47 726 2041 668 ldq a.d002-*,* (exist) pick up the knowledgeable variable 02114 4336 00 0 669 qls ** and shift left until our bit is in the 670 sign position (this loc patched) 02115 0 75 007 2124 671 tmi hsl010-* this channel does exist 672 02116 4 10 743 2061 673 tsy a.d019-*,* (getchn) get the current iom chan # in ascii 02117 4 57 743 2062 674 stq a.d020-*,* (hmsg01+2) and save its ascii value 02120 4 10 743 2063 675 tsy a.d021-*,* (iwcon) use "disaster" mode console routine 02121 0 02504 1 676 ind hicw01 02122 2331 00 0 677 nop dont bomb if no console exists 02123 0 71 423 1546 678 tra itl020-* give up on this hsla 679 02124 680 hsl010 null hsla does exist, and was initialized 02124 673 141 0 681 ila 97 get size of each jump table (per hsla) 02125 682 mpy hslano-* times hsla no to get addr offset 683 02127 0 46 735 2064 684 adq a.d022-* (hslajt) add in base addr assm 01 12-10-82 15.874 init - fnp initialization module for multics page 49 hsla -- initialize for high speed line adapter 02130 0 57 316 2446 685 stq hjtloc-* save 02131 0 76 315 2446 686 aos hjtloc-* bump by one to skip ind word 687 02132 0 56 315 2447 688 stz hsbchn-* set to 0th subchannel 02133 2332 00 0 689 cx1a get iom channel no. 690 times 2 02134 4 06 731 2065 691 ada a.d023-*,* (.criom) 02135 0332 00 0 692 cax2 pointer to iom table entry 02136 2 03 001 0 693 ldx2 1,2 pointer to hsla table 694 695 ********************************************************* 696 * 697 * perform the following initialization procedures for 698 * each subchannel that was configured in the cdt. 699 * if a subchannel does not exist, or does not conform 700 * to the configuration desired, set the "exhaust" bit in 701 * its active status icw; otherwise, allocate a tib 702 * (terminal information block) and a software comm. 703 * region for the subchannel. 704 * 705 ********************************************************* 706 02137 707 hsl020 null 02137 0 07 521 1660 708 lda iomch-* get the iom channel number 02140 0 37 517 1657 709 ora l.b001-* (sel 0) and build a "sel" instruction 02141 0 17 001 2142 710 sta 1 and put it where we'll use it 02142 073 000 0 711 sel ** (patched) select this hsla 712 02143 3 04 016 0 713 ldaq h.cnfg,3 get config pcw, if any (stored 714 here by load_fnp_ routine) 02144 0 74 327 2473 715 tze hsl400-* this channel isnt configured 716 02145 0 14 363 2530 717 staq hcnfig-* save the configuration pcw 718 02146 3333 00 0 719 cx3a get addr of hwcm into the a 02147 2337 11 0 720 arl 9 divide by 1000(8) 02150 0336 02 0 721 als 2 multiply by 4(8) 02151 0 17 372 2543 722 sta hivloc-* save as iv location so far 02152 0 07 275 2447 723 lda hsbchn-* get subchannel number end of binary card 00000014 02153 422 020 0 724 icmpa 16 is it > 20(8)? 02154 0 75 003 2157 725 tmi hsl030-* no, continue 726 02155 0 76 366 2543 727 aos hivloc-* yes, bump ivloc by one 02156 773 760 0 728 iaa -16 and decrement sbchn by 16 02157 0336 04 0 729 hsl030 als 4 multiply subchn by 20(8) 02160 0 16 363 2543 730 asa hivloc-* add into ivloc 731 02161 0 07 265 2446 732 lda hjtloc-* get the jump table addr 02162 4 17 361 2543 733 sta hivloc-*,* deposit in iv 734 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 50 hsla -- initialize for high speed line adapter 02163 0 04 317 2502 735 ldaq hsticw-* set my active status icw 02164 3 14 014 0 736 staq h.aicw,3 and store it in hwcm 737 738 build an "unmask" pcw 02165 0 07 262 2447 739 lda hsbchn-* load subchannel number 02166 0336 06 0 740 als 6 move into subchannel field 02167 0 37 321 2510 741 ora hunmsk-* or in pcw 0, command 5 02170 0 47 321 2511 742 ldq hunmsk+1-* and pick up no broadside commands 02171 0 14 335 2526 743 staq hpcw-* and save this pcw for execution 744 02172 0 60 334 2526 745 cioc hpcw-* unmask the subchannel 746 02173 0 60 335 2530 747 cioc hcnfig-* configure this subchannel 748 02174 0 07 253 2447 749 lda hsbchn-* now lets build a "request config" pcw 02175 0336 06 0 750 als 6 move subchannel number in 02176 0 37 316 2514 751 ora hreqcn-* (=230000) pcw 1,command 3 02177 0 47 316 2515 752 ldq hreqcn+1-* get second word (request to send) 02200 0 14 326 2526 753 staq hpcw-* and save it for a bit later 754 02201 4 20 477 1700 755 szn a.c003-*,* (simsw) simulator does not remember 02202 0 74 034 2236 756 tze hsl050-* configuration, so no use checking 757 02203 3 56 016 0 758 stz h.cnfg,3 clear config status words to be able 02204 3 56 017 0 759 stz h.cnfg+1,3 to detect no response 760 02205 0 60 321 2526 761 cioc hpcw-* request configuration status 762 02206 673 012 0 763 ila 10 wait 10 ms for status store 02207 0 47 004 2213 764 ldq hsl040-1-* get location to tsy thru then 02210 4 10 344 2554 765 tsy a.f001-*,* (setclk) go start up the clock 02211 4331 00 0 766 dis 02212 0 71 777 2211 767 tra -1 ignore all interrupts til then 768 02213 0 02214 1 769 ind hsl040 02214 0 00000 0 770 hsl040 ind ** control gets here when done waiting 771 for config status store 772 ********************************************************* 773 * now test received configuration status against 774 * desired configuration and other criteria. 775 ********************************************************* 776 02215 0 04 313 2530 777 ldaq hcnfig-* test upper half for matching bits 02216 0 34 334 2552 778 ana hmask1-* (=o600076) (see hmask1 for expl) 02217 0 17 325 2544 779 sta htemp-* this is what it should be 780 02220 3 07 016 0 781 lda h.cnfg,3 now, lets see what it is 02221 0 34 331 2552 782 ana hmask1-* (=o600076) (see hmask1 for expl) end of binary card 00000015 02222 0 27 322 2544 783 cmpa htemp-* see if what is is what should be 02223 0 64 226 2451 784 tnz hsl390-* nope, go mask off channel assm 01 12-10-82 15.874 init - fnp initialization module for multics page 51 hsla -- initialize for high speed line adapter 785 02224 0 31 351 2575 786 cana l.f002-* (=o200000) is it synchronous? 02225 0 64 011 2236 787 tnz hsl050-* if so, don't bother with second word 788 02226 3 07 017 0 789 lda h.cnfg+1,3 pick up lower half of status to test char length 02227 0 34 347 2576 790 ana l.f003-* (=o170000) mask out all but character lengths 02230 0 27 347 2577 791 cmpa l.f004-* (=o040000) see if 8 bit byte size 02231 0 74 005 2236 792 tze hsl050-* yes, this is ok 02232 0 27 346 2600 793 cmpa l.f005-* (=o020000) see if 7 bit byte size 02233 0 74 003 2236 794 tze hsl050-* yes, this is ok 02234 0 27 345 2601 795 cmpa l.f006-* (=o010000) see if 6 bit byte size 796 yes, this is ok, fall through 02235 0 64 214 2451 797 tnz hsl390-* not ok, mask out this channel 798 799 02236 800 hsl050 null 02236 2 07 000 0 801 lda ht.flg,2 get the baud rate into 02237 022 017 0 802 iana htfspd hbaud for maktib 02240 0 17 302 2542 803 sta hbaud-* 804 02241 2 07 000 0 805 lda ht.flg,2 get flags again 02242 0 34 341 2603 806 ana l.f008-* (hftasy) is it sync or async? 02243 2337 07 0 807 arl 7 just put bit into hbaud 02244 0 72 276 2542 808 orsa hbaud-* in the right place 809 02245 0 13 300 2545 810 stx2 hsavx2-* save ptr to hsla table entry 811 set up software comm. region and tib 02246 0 50 300 2546 812 stx3 hsavx3-* save hardware comm. region address 02247 4 10 307 2556 813 tsy a.f003-*,* (hgsfcm) allocate an sfcm 814 02250 0 41 276 2546 815 ldx3 hsavx3-* get hwcm address and store 02251 3 17 011 0 816 sta h.sfcm,3 software comm. region address 817 818 set up active status icw in hwcm 02252 773 026 0 819 iaa sf.sta point to hardware status in sfcm 02253 0 71 003 2256 820 itlms1 tra hsl054-* set to nop by init if 64k is configured 02254 0 47 264 2540 821 ldq hsaicw-* get odd word of dn6670 status icw 02255 0 71 003 2260 822 tra hsl056-* 823 02256 824 hsl054 null 02256 0 37 326 2604 825 ora l.f009-* (0,w.2) use dn355 icw format 02257 473 005 0 826 ilq sfhsiz tally of 5 36-bit words 827 02260 828 hsl056 null 02260 3 14 014 0 829 staq h.aicw,3 note that the channel can store 6 though 830 tally is set to 5. hardware stores status 831 in sixth word after tally runout. 02261 0 07 324 2605 832 lda l.f010-* (=o10000) exhaust bit in icw 02262 3 17 005 0 833 sta h.sic0+1,3 init both of the xmit 02263 3 17 007 0 834 sta h.sic1+1,3 to exhaust condition 835 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 52 hsla -- initialize for high speed line adapter 836 now get line number 02264 0 47 164 2450 837 ldq hslano-* hsla number 02265 4336 06 0 838 qls 6 02266 0 46 161 2447 839 adq hsbchn-* subchannel no. 02267 0 46 305 2574 840 adq l.f001-* (=o1000) hsla indicator 841 now make the tib 02270 0 07 252 2542 842 lda hbaud-* restore baud code end of binary card 00000016 02271 4 10 272 2563 843 tsy a.f008-*,* (maktib) allocate a tib for it 844 02272 2 17 001 0 845 sta ht.tib,2 put real tib address in hsla table entry 846 02273 3 07 011 0 847 lda h.sfcm,3 get real sfcm address from hwcm 02274 4 10 274 2570 848 tsy a.f013-*,* (setptw) virtualize it 02275 1 17 030 0 849 sta t.sfcm,1 put virtual sfcm address in tib 02276 0332 00 0 850 cax2 get it into right register 851 852 fill in stuff in sfcm 853 02277 2 50 000 0 854 stx3 sf.hcm,2 put hwcm addr into sfcm 02300 3332 00 0 855 cx2a get sfcm addr in a 02301 773 042 0 856 iaa sf.waq put starting address of wraparound queue 02302 2 17 001 0 857 sta sf.nxa,2 in sfcm pointers 02303 2 17 002 0 858 sta sf.nxp,2 02304 4 07 267 2573 859 lda a.f016-*,* (hsfssl) initialize count of free slots in queue 02305 2 17 003 0 860 sta sf.tly,2 02306 2 17 023 0 861 sta sf.ssl,2 save as status queue length too 02307 0 07 236 2545 862 lda hsavx2-* address of hsla table 02310 2 17 015 0 863 sta sf.hsl,2 save addr in sfcm 864 02311 0 03 234 2545 865 ldx2 hsavx2-* reload ptr to hsla table 02312 2 07 000 0 866 lda ht.flg,2 get the flag bits 02313 2337 04 0 867 arl 4 shift line type into position 02314 022 037 0 868 iana 31 mask down 02315 0 74 002 2317 869 tze hsl060-* none specified, use default 870 02316 1 17 017 0 871 sta t.type,1 put into tib 872 02317 2 07 000 0 873 hsl060 lda ht.flg,2 reload flag bits 02320 0 17 230 2550 874 sta htflgt-* save in "stack" temporary 02321 1 03 030 0 875 ldx2 t.sfcm,1 reload sfcm ptr 02322 0 31 261 2603 876 cana l.f008-* (htfasy) asynchronous? 02323 0 64 004 2327 877 tnz hsl070-* yes 02324 0 07 270 2614 878 lda l.f017-* (sffsyn) no, mark the sfcm 02325 2 72 005 0 879 orsa sf.flg,2 02326 0 07 222 2550 880 lda htflgt-* get the hsla table flags back 881 02327 882 hsl070 null 02327 2337 11 0 883 arl 9 look at modem type this time 02330 022 017 0 884 iana 15 mask down 02331 0 74 023 2354 885 tze hsl180-* none specified assm 01 12-10-82 15.874 init - fnp initialization module for multics page 53 hsla -- initialize for high speed line adapter 886 02332 773 777 0 887 iaa -1 relative to zero 02333 0 06 233 2566 888 ada a.f011-* (hsl080) get jump list base 02334 0 17 213 2547 889 sta hsltra-* store so we can indirect 890 02335 4 71 212 2547 891 tra hsltra-*,* dispatch on modem type 892 02336 0 71 016 2354 893 hsl080 tra hsl130-* mt103a 02337 0 71 006 2345 894 tra hsl090-* mt201c end of binary card 00000017 02340 0 71 014 2354 895 tra hsl140-* mt202c5 02341 0 71 013 2354 896 tra hsl150-* mt202c6 02342 0 71 012 2354 897 tra hsl160-* mt208a 02343 0 71 010 2353 898 tra hsl120-* mt208b 02344 0 71 010 2354 899 tra hsl170-* mt209a 900 02345 0 07 203 2550 901 hsl090 lda htflgt-* get ht flags 02346 0 31 240 2606 902 cana l.f011-* (htfpl) private line dataset? 02347 0 64 005 2354 903 tnz hsl180-* yes, all done 904 02350 0 07 237 2607 905 hsl100 lda l.f012-* (tfdlup) set tib flag for dial operation 02351 1 72 001 0 906 orsa t.flg,1 in first tib flag word 02352 0 71 002 2354 907 tra hsl180-* done 908 02353 0 71 775 2350 909 hsl120 tra hsl100-* 208b are always dial 910 02354 911 hsl130 null nothing special for these datasets 02354 912 hsl140 null 02354 913 hsl150 null 02354 914 hsl160 null 02354 915 hsl170 null 02354 916 hsl180 null assm 01 12-10-82 15.874 init - fnp initialization module for multics page 54 hsla -- initialize for high speed line adapter 917 eject 918 process line type specification 919 02354 1 07 017 0 920 lda t.type,1 now process type setting 02355 773 777 0 921 iaa -1 can never be zero here 02356 0 06 211 2567 922 ada a.f012-* (hsl190) get table base 02357 0 17 170 2547 923 sta hsltra-* save to indirect through 924 02360 4 71 167 2547 925 tra hsltra-*,* dispatch on line type 926 02361 927 hsl190 null 02361 0 71 023 2404 928 tra hsl200-* ascii 02362 0 71 030 2412 929 tra hsl210-* 1050 02363 0 71 027 2412 930 tra hsl220-* 2741 02364 0 71 037 2423 931 tra hsl240-* ards 02365 0 71 036 2423 932 tra hsl250-* sync 02366 0 71 035 2423 933 tra hsl260-* g115 02367 0 71 026 2415 934 tra hsl230-* bsc 02370 0 71 033 2423 935 tra hsl270-* 202etx 02371 0 71 032 2423 936 tra hsl280-* vip 02372 0 71 031 2423 937 tra hsl290-* async1 02373 0 71 030 2423 938 tra hsl300-* async2 02374 0 71 027 2423 939 tra hsl310-* async3 02375 0 71 026 2423 940 tra hsl320-* sync1 02376 0 71 025 2423 941 tra hsl330-* sync2 02377 0 71 024 2423 942 tra hsl340-* sync3 02400 0 71 023 2423 943 tra hsl350-* polled vip 02401 0 71 017 2420 944 tra hsl234-* x.25 lap 02402 0 71 016 2420 945 tra hsl234-* hdlc 02403 0 71 020 2423 946 tra hsl359-* colts 947 02404 0 07 144 2550 948 hsl200 lda htflgt-* get hsla table flag bits 02405 0 31 204 2611 949 cana l.f014-* (hftop1) option 1 set? 02406 0 74 015 2423 950 tze hsl360-* no end of binary card 00000018 02407 0 07 204 2613 951 lda l.f016-* (tfauto) opt1 means autobaud 02410 1 72 001 0 952 orsa t.flg,1 02411 0 71 012 2423 953 tra hsl360-* 954 02412 955 hsl210 null 1050 or 02412 673 040 0 956 hsl220 ila sffebd 2741 02413 2 72 005 0 957 orsa sf.flg,2 set ebcdic flag in sfcm 02414 0 71 007 2423 958 tra hsl360-* done 959 02415 0 07 173 2610 960 hsl230 lda l.f013-* (sffbsc) bsc type 02416 2 72 005 0 961 orsa sf.flg,2 set sffbsc in sfcm 02417 0 71 004 2423 962 tra hsl360-* 963 02420 0 07 172 2612 964 hsl234 lda l.f015-* (=sffhdl) hdlc type 02421 2 72 005 0 965 orsa sf.flg,2 set in sfcm 02422 0 71 001 2423 966 tra hsl360-* assm 01 12-10-82 15.874 init - fnp initialization module for multics page 55 hsla -- initialize for high speed line adapter 967 02423 968 hsl240 null nothing to do for these types 02423 969 hsl250 null 02423 970 hsl260 null 02423 971 hsl270 null 02423 972 hsl280 null 02423 973 hsl290 null 02423 974 hsl300 null 02423 975 hsl310 null 02423 976 hsl320 null 02423 977 hsl330 null 02423 978 hsl340 null 02423 979 hsl350 null 02423 980 hsl359 null 02423 981 hsl360 null assm 01 12-10-82 15.874 init - fnp initialization module for multics page 56 hsla -- initialize for high speed line adapter 982 eject 983 02423 2 53 004 0 984 stx1 sf.tib,2 put tib addr in sfcm 985 02424 0 04 104 2530 986 ldaq hcnfig-* get configuration pcw for channel 02425 2 14 024 0 987 staq sf.cfg,2 store it in sfcm for later modifications 988 02426 0 03 117 2545 989 ldx2 hsavx2-* reload ptr to hsla table 02427 0 41 117 2546 990 ldx3 hsavx3-* and ptr to hwcm 991 992 02430 993 hsl380 null increment to next subchannel 02430 273 002 0 994 iacx2 2 next hsla table entry 02431 373 020 0 995 iacx3 16 hwcm is 16 words long 02432 0 76 015 2447 996 aos hsbchn-* bump subchannel number 02433 673 003 0 997 ila 3 bump jump table ptr 02434 0 16 012 2446 998 asa hjtloc-* by three 999 02435 673 040 0 1000 ila 32 valid numbers are 0 - 31 02436 0 27 011 2447 1001 cmpa hsbchn-* see if still more subchannels 02437 0 64 500 2137 1002 tnz hsl020-* yes, go process them 1003 no, now store the mask register 1004 02440 0 60 056 2516 1005 cioc hsmska-* store the mask register 02441 0 60 057 2520 1006 cioc hsmskb-* in case this is a dn6670, do it for each mlc 02442 0 60 060 2522 1007 cioc hsmskc-* 02443 0 60 061 2524 1008 cioc hsmskd-* 1009 02444 4 71 001 2445 1010 tra 1,* return to main routine 02445 0 01546 1 1011 ind itl020 1012 1013 02446 1014 hjtloc bss 1 hold current jump table addr 02447 1015 hsbchn bss 1 this loc always has cur subchannel number 02450 1016 hslano bss 1 current hsla number assm 01 12-10-82 15.874 init - fnp initialization module for multics page 57 hsla -- initialize for high speed line adapter 1017 eject 1018 02451 1019 hsl390 null come here for bad configuration 02451 4 10 104 2555 1020 tsy a.f002-*,* (hgetch) get iom channel number in ascii 02452 0 57 165 2637 1021 stq hmsg02+2-* and store in error message 02453 0 07 774 2447 1022 lda hsbchn-* pick up subchannel number 02454 0 06 104 2560 1023 ada a.f005-* (hsasbc) add offset of subchannel table 02455 0 17 067 2544 1024 sta htemp-* store it for a moment 02456 4 07 066 2544 1025 lda htemp-*,* and pick up ascii equiv of subch nums end of binary card 00000019 02457 0 17 164 2643 1026 sta hmsg02+6-* and store into error message 02460 4 10 077 2557 1027 tsy a.f004-*,* (iwcon) use disaster mode console routine 02461 0 02506 1 1028 ind hicw02 02462 2331 00 0 1029 nop ignore inability to write on console 1030 02463 673 777 0 1031 ila -1 set sfcm addr in hwcm to -1 02464 3 17 011 0 1032 sta h.sfcm,3 02465 0 07 762 2447 1033 lda hsbchn-* load subchannel number 02466 0336 06 0 1034 als 6 move into subchannel field 02467 0 37 023 2512 1035 ora hmskch-* or in pcw 0, command 4 02470 0 47 023 2513 1036 ldq hmskch+1-* and pick up no broadside commands 02471 0 14 035 2526 1037 staq hpcw-* and store for execution 1038 02472 0 60 034 2526 1039 cioc hpcw-* mask this subchannel 1040 1041 end up here for badly-configured or 1042 non-configured line 02473 1043 hsl400 null we will set up active status icw with 1044 exhaust bit on 02473 3333 00 0 1045 cx3a get hwcm address 02474 773 010 0 1046 iaa h.baw we will point status icw at base address word 1047 pointer to avoid getting status stored randomly 02475 0 47 004 2501 1048 ldq hbdicw+1-* get rest of icw with exhaust bit 02476 3 14 014 0 1049 staq h.aicw,3 02477 0 71 731 2430 1050 tra hsl380-* on to next subchannel 1051 1052 02500 1053 even 1054 02500 1 00000 0 1055 hbdicw icw **,w.2,1,1 status icw for inactive subchannel 02501 010001 0 1056 02502 1 02534 1 1057 hsticw icw hstat,w.2,1 icw to store status for configuration 02503 000001 0 02504 2 02615 1 1058 hicw01 icw hmsg01-1,b.0,32 icw to type on fnp console 02505 000040 0 02506 2 02634 1 1059 hicw02 icw hmsg02-1,b.0,44 icw to type on fnp console 02507 000054 0 1060 status 1061 1062 pcw to unmask a subchannel assm 01 12-10-82 15.874 init - fnp initialization module for multics page 58 hsla -- initialize for high speed line adapter 02510 050000 0 1063 hunmsk vfd 2/0,4/rstmsk,2/0,4/**,6/0,18/0 02511 000000 0 1064 1065 pcw to mask a subchannel 02512 040000 0 1066 hmskch vfd 2/0,4/setmsk,2/0,4/**,6/0,18/0 02513 000000 0 1067 pcw to request configuration status 02514 230000 0 1068 hreqcn vfd 2/1,4/reqcst,2/0,4/**,6/0,18/rts 02515 000020 0 1069 pcw to store the mask register 02516 110000 0 1070 hsmska vfd 2/0,4/stomrg,12/0,18/0 02517 000000 0 02520 111000 0 1071 hsmskb vfd 2/0,4/stomrg,6/8,6/0,18/0 02521 000000 0 02522 112000 0 1072 hsmskc vfd 2/0,4/stomrg,6/16,6/0,18/0 02523 000000 0 02524 113000 0 1073 hsmskd vfd 2/0,4/stomrg,6/24,6/0,18/0 02525 000000 0 02526 1074 hpcw bss 2 temporary for pcws to execute 02530 1075 hcnfig bss 2 temporary for configuration pcw 02532 1076 hastat bss 2 temporary storage for status icw 1077 02534 1078 hstat bss 4 destination of status words for configuration 1079 02540 1080 hsaicw amicwo w.2,sfhsiz,0 dn6670 icw prototype (odd word) for hardware end of binary card 00000020 1081 status 02541 1082 htibad bss 1 tib address 02542 1083 hbaud bss 1 baud rate code(temporary) 02543 1084 hivloc bss 1 holds location of iv for this subchannel 02544 1085 htemp bss 1 an alround temporary 02545 1086 hsavx2 bss 1 place to save hsla table addr 02546 1087 hsavx3 bss 1 place to save hwcm address 02547 1088 hsltra bss 1 jump indirect through this word 02550 1089 htflgt bss 1 temp for hsla table flags 02551 000000 0 1090 hlahcr vfd 3/0,15/** hsla's hcr base address 02552 600076 0 1091 hmask1 oct 600076 mask to leave only (mbo's, async/sync 1092 parity stuff, icw alternation, and ccc enabled 02553 004377 0 1093 hmask2 oct 004377 mask to leave only (2 stop bits and speed) 1094 02554 0 01472 1 1095 a.f001 ind setclk routine to delay for n ms 02555 0 03334 1 1096 a.f002 ind getchn routine to convert iom channel to ascii 02556 0 02747 1 1097 a.f003 ind hgsfcm 02557 0 04370 1 1098 a.f004 ind iwcon routine to write on console if there 02560 0 02662 1 1099 a.f005 ind hsasbc table of ascii equivs of subch nums 02561 0 00651 0 1100 a.f006 ind .crmem last legal address configured 02562 0 11600 3 1101 a.f007 ind getmem memory allocating subroutine 02563 0 03065 1 1102 a.f008 ind maktib subroutine for making a tib 02564 0 00662 0 1103 a.f009 ind .crtrb base address of trace buffer 02565 0 03214 1 1104 a.f010 ind tibadr real tib address 02566 0 02336 1 1105 a.f011 ind hsl080 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 59 hsla -- initialize for high speed line adapter 02567 0 02361 1 1106 a.f012 ind hsl190 02570 0 15400 3 1107 a.f013 ind setptw set up page table entry 02571 0 00704 0 1108 a.f014 ind .crmet flag indicating metering 02572 0 03215 1 1109 a.f015 ind metadr real metering area address 02573 0 03062 1 1110 a.f016 ind hsfssl number of entries in software status queue 1111 1112 02574 001000 0 1113 l.f001 oct 1000 hsla indicator 02575 200000 0 1114 l.f002 oct 200000 this bit is on if synchronous 02576 170000 0 1115 l.f003 oct 170000 mask to leave only char length field 02577 040000 0 1116 l.f004 oct 040000 char length field of 6 bits 02600 020000 0 1117 l.f005 oct 020000 char length field of 7 bits 02601 010000 0 1118 l.f006 oct 010000 char length field of 8 bits 02602 000400 0 1119 l.f007 oct 000400 bit for marking asynch baud code 02603 100000 0 1120 l.f008 vfd 18/htfasy "async" bit in hsla table entry 02604 1 00000 0 1121 l.f009 zero 0,w.2 36-bit addressing 02605 010000 0 1122 l.f010 oct 010000 exhaust bit in icw 02606 200000 0 1123 l.f011 vfd 18/htfpl private line flag 02607 000020 0 1124 l.f012 vfd 18/tfdlup dialup flag in tib 02610 002000 0 1125 l.f013 vfd 18/sffbsc bisync bit in sfcm 02611 040000 0 1126 l.f014 vfd 18/htfop1 hsla table option flag 1 02612 400000 0 1127 l.f015 vfd 18/sffhdl hdlc channel 02613 020000 0 1128 l.f016 vfd 18/tfauto autobaud flag in tib 02614 010000 0 1129 l.f017 vfd 18/sffsyn synchronous flag in sfcm 1130 1131 detail off dont print all the words for messages 1132 end of binary card 00000021 02615 015012 0 1133 vfd 9/cr,9/lf 02616 052103 0 1134 hmsg01 aci 14,*ch-xx, hsla does not exist 02634 015012 0 1135 vfd 9/cr,9/lf 02635 052103 0 1136 hmsg02 aci 20,*ch-xx, sch-xx, bad configuration status 02661 015012 0 1137 vfd 9/cr,9/lf 1138 02662 1139 hsasbc null table of ascii subchannel nums 02662 060060 0 1140 aci 1,00 02663 060061 0 1141 aci 1,01 end of binary card 00000022 02664 060062 0 1142 aci 1,02 02665 060063 0 1143 aci 1,03 02666 060064 0 1144 aci 1,04 02667 060065 0 1145 aci 1,05 02670 060066 0 1146 aci 1,06 02671 060067 0 1147 aci 1,07 02672 060070 0 1148 aci 1,08 02673 060071 0 1149 aci 1,09 02674 061060 0 1150 aci 1,10 02675 061061 0 1151 aci 1,11 02676 061062 0 1152 aci 1,12 02677 061063 0 1153 aci 1,13 02700 061064 0 1154 aci 1,14 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 60 hsla -- initialize for high speed line adapter 02701 061065 0 1155 aci 1,15 02702 061066 0 1156 aci 1,16 02703 061067 0 1157 aci 1,17 02704 061070 0 1158 aci 1,18 02705 061071 0 1159 aci 1,19 02706 062060 0 1160 aci 1,20 02707 062061 0 1161 aci 1,21 02710 062062 0 1162 aci 1,22 02711 062063 0 1163 aci 1,23 02712 062064 0 1164 aci 1,24 02713 062065 0 1165 aci 1,25 02714 062066 0 1166 aci 1,26 02715 062067 0 1167 aci 1,27 02716 062070 0 1168 aci 1,28 02717 062071 0 1169 aci 1,29 02720 063060 0 1170 aci 1,30 02721 063061 0 1171 aci 1,31 02722 063062 0 1172 aci 1,32 02723 063063 0 1173 aci 1,33 02724 063064 0 1174 aci 1,34 02725 063065 0 1175 aci 1,35 02726 063066 0 1176 aci 1,36 02727 063067 0 1177 aci 1,37 02730 063070 0 1178 aci 1,38 02731 063071 0 1179 aci 1,39 02732 064060 0 1180 aci 1,40 end of binary card 00000023 02733 064061 0 1181 aci 1,41 02734 064062 0 1182 aci 1,42 02735 064063 0 1183 aci 1,43 02736 064064 0 1184 aci 1,44 02737 064065 0 1185 aci 1,45 02740 064066 0 1186 aci 1,46 02741 064067 0 1187 aci 1,47 02742 064070 0 1188 aci 1,48 02743 064071 0 1189 aci 1,49 02744 065060 0 1190 aci 1,50 02745 065061 0 1191 aci 1,51 02746 065062 0 1192 aci 1,52 1193 1194 detail on assm 01 12-10-82 15.874 init - fnp initialization module for multics page 61 hsla subroutine to get a sfcm or sfcm/tib pair 1195 ttls hsla subroutine to get a sfcm or sfcm/tib pair 1196 02747 1197 hgsfcm subr hgs,(x1,x2) 1198 1199 figure out sfcm size 02760 2 07 000 0 1200 lda ht.flg,2 02761 2337 04 0 1201 arl 4 shift line type down 02762 022 037 0 1202 iana 31 isolate it 02763 422 021 0 1203 icmpa ttx25 x.25? 02764 0 74 007 2773 1204 tze hgs001-* yes 02765 422 022 0 1205 icmpa tthdlc hdlc? 02766 0 74 005 2773 1206 tze hgs001-* yes 02767 422 007 0 1207 icmpa ttbsc bisync? 02770 0 74 003 2773 1208 tze hgs001-* yes 02771 473 012 0 1209 ilq sfssq none of above, use short status queue 02772 0 71 002 2774 1210 tra hgs002-* 02773 473 024 0 1211 hgs001 ilq sflsq use long size 02774 0 57 066 3062 1212 hgs002 stq hsfssl-* save queue length 02775 4336 02 0 1213 qls 2 multiply by 4 (to get in words) 02776 573 042 0 1214 iaq sf.hln add basic sfcm length 02777 0 57 062 3061 1215 stq hsflen-* this is total size to allocate 1216 03000 0 71 051 3051 1217 itlms2 tra hgs050-* set to nop if 64k is configured 1218 1219 1220 ***************************************************************** 1221 * the following code allocates space for a sfcm and tib 1222 * starting at 32768. the sfcm and tib have to be allocated in 1223 * the same page for a given channel. 1224 * 1225 * since the tib has to be allocated now, it's real address is 1226 * stored in 'tibadr'. the 'maktib' subroutine is coded to 1227 * account for this. 1228 ***************************************************************** 1229 03001 0 56 063 3064 1230 stz hmetln-* initially end of binary card 00000024 03002 4 20 567 2571 1231 szn a.f014-*,* (.crmet) are we metering at all? 03003 0 74 010 3013 1232 tze hgs008-* no, skip this calculation 03004 2 07 000 0 1233 lda ht.flg,2 see if it's synchronous channel 03005 0 31 576 2603 1234 cana l.f008-* =htfasy 03006 0 64 003 3011 1235 tnz hgs003-* no 03007 473 056 0 1236 ilq m.synl yes, use synchronous length 03010 0 71 002 3012 1237 tra 2 03011 473 030 0 1238 hgs003 ilq m.asyl else asynchronous 03012 0 57 052 3064 1239 stq hmetln-* save this for later 03013 1240 hgs008 null 03013 0 07 045 3060 1241 lda hnxstp-* calculate last address of new sfcm/tib pair 03014 0 06 045 3061 1242 ada hsflen-* length of sfcm 03015 4 17 550 2565 1243 sta a.f010-*,* (tibadr) 03016 0 06 045 3063 1244 ada htibln-* length of tib assm 01 12-10-82 15.874 init - fnp initialization module for multics page 62 hsla subroutine to get a sfcm or sfcm/tib pair 03017 4 17 553 2572 1245 sta a.f015-*,* (metadr) 03020 0 06 044 3064 1246 ada hmetln-* 03021 6333 00 0 1247 caq may need this value later 03022 773 777 0 1248 iaa -1 now have the last address 03023 022 400 0 1249 iana -256 check if page boundary has been crossed 03024 0 27 033 3057 1250 cmpa hcurpg-* does the sfcm/tib pair fit into current page? 03025 0 74 011 3036 1251 tze hgs010-* yes 03026 0 17 031 3057 1252 sta hcurpg-* no. put the pair in the next page 03027 0 17 031 3060 1253 sta hnxstp-* 03030 0 06 031 3061 1254 ada hsflen-* recalculate the end of the pair 03031 4 17 534 2565 1255 sta a.f010-*,* (tibadr) 03032 0 06 031 3063 1256 ada htibln-* 03033 4 17 537 2572 1257 sta a.f015-*,* (metadr) 03034 0 06 030 3064 1258 ada hmetln-* 03035 6333 00 0 1259 caq get it into the right register 1260 03036 1261 hgs010 null 03036 4 20 526 2564 1262 szn a.f009-*,* (.crtrb) is trace configured? 03037 0 64 003 3042 1263 tnz hgs020-* yes 03040 4 67 521 2561 1264 cmpq a.f006-*,* (.crmem) no. will sfcm/tib pair fit in 03041 0 71 002 3043 1265 tra hgs030-* rest of memory? 1266 03042 1267 hgs020 null 03042 4 67 522 2564 1268 cmpq a.f009-*,* (.crtrb) will sfcm/tib pair fit below 1269 trace buffer? 03043 1270 hgs030 null 03043 0 75 003 3046 1271 tmi hgs040-* yes. we are cool 03044 0 74 002 3046 1272 tze hgs040-* whew. this better be the last one 03045 1273 die 1 no. out of memory 1274 03046 1275 hgs040 null 03046 0 07 012 3060 1276 lda hnxstp-* finish up this act 03047 0 57 011 3060 1277 stq hnxstp-* 03050 0 71 005 3055 1278 tra hgsret-* done 1279 1280 1281 ************************************************************ 1282 * this code is used when not running over 32k on any fnp. 1283 ************************************************************ 1284 03051 1285 hgs050 null end of binary card 00000025 03051 0 47 010 3061 1286 ldq hsflen-* length of sfcm 03052 4 10 510 2562 1287 tsy a.f007-*,* (getmem) allocate from small space pool 03053 1288 die 1 03054 3333 00 0 1289 cx3a return buffer address in a 1290 03055 1291 hgsret null 03055 1292 return hgsfcm 1293 1294 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 63 hsla subroutine to get a sfcm or sfcm/tib pair 03057 100000 0 1295 hcurpg dec 32768 base of current page 03060 100000 0 1296 hnxstp dec 32768 pointer to next sfcm/tib pair 03061 000000 0 1297 hsflen oct 0 next even number of words in sfcm 03062 000000 0 1298 hsfssl oct 0 size of software status queue 03063 000000 0 1299 htibln oct 0 next even number of words in tib 03064 000000 0 1300 hmetln oct 0 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 64 maktib -- subroutine to allocate a tib 1301 ttls maktib -- subroutine to allocate a tib 1302 1303 this subroutine allocates space for a tib (terminal 1304 information block) and fills in stuff common to hsla 1305 and lsla 1306 1307 input: 1308 a reg contains baud rate code 1309 (with bit 9 marking asynch line) 1310 q reg contains line number 1311 1312 output: 1313 x1: contains virtual tib address 1314 a: contains real tib address 1315 03065 1316 maktib subr mak,(x2,x3) 1317 03076 0 14 114 3212 1318 staq mtemp-* save baud rate code and line number 03077 0 71 020 3117 1319 itlms3 tra mak010-* set to nop if 64k is not configured 03100 473 053 0 1320 ilq t.leng get length of a tib 03101 4 10 076 3177 1321 tsy a.i002-*,* (getmem) 03102 1322 die 1 we couldn't fail to get a buffer, could we? 03103 0 50 111 3214 1323 stx3 tibadr-* save address 1324 03104 4 20 076 3202 1325 szn a.i005-*,* (.crmet) are we metering? 03105 0 74 012 3117 1326 tze mak010-* no, we're ready to start 03106 0 07 104 3212 1327 lda mtemp-* 03107 0 31 101 3210 1328 cana l.i006-* (=o400) synchronous line? 03110 0 74 003 3113 1329 tze mak005-* no 03111 473 056 0 1330 ilq m.synl yes, use synchronous length 03112 0 71 002 3114 1331 tra 2 else use async 03113 473 030 0 1332 mak005 ilq m.asyl 03114 4 10 063 3177 1333 tsy a.i002-*,* (getmem) 03115 1334 die 1 surely there's still space 03116 0 50 077 3215 1335 stx3 metadr-* save metering area address 1336 03117 1337 mak010 null 03117 0 07 075 3214 1338 lda tibadr-* get real tib address 1339 * 1340 * save tib address in table for later use 1341 end of binary card 00000026 03120 4 03 060 3200 1342 ldx2 a.i003-*,* (.crtte) get address of next available slot 03121 2 17 000 0 1343 sta 0,2 03122 273 002 0 1344 iacx2 2 bump pointer 03123 4 13 055 3200 1345 stx2 a.i003-*,* (.crtte) 1346 03124 0 41 052 3176 1347 ldx3 a.i001-* (ctrl) get control_tables address 03125 3 41 003 0 1348 ldx3 3,3 x3 points to device type table 1349 03126 1350 mak020 null search table for type corresponding to baud rate assm 01 12-10-82 15.874 init - fnp initialization module for multics page 65 maktib -- subroutine to allocate a tib 03126 3 07 000 0 1351 lda 0,3 get table entry 03127 422 777 0 1352 icmpa -1 hit end of table? 03130 0 64 002 3132 1353 tnz 2 03131 1354 die 6 if so, very bad news 03132 2335 11 0 1355 lrl 9 get baud rate code in a, device type in q 03133 0 27 057 3212 1356 cmpa mtemp-* matches argument? 03134 0 74 003 3137 1357 tze mak030-* 03135 373 001 0 1358 iacx3 1 no, keep looking 03136 0 71 770 3126 1359 tra mak020-* 1360 1361 now put associated device type into tib 03137 1362 mak030 null 03137 0 07 055 3214 1363 lda tibadr-* virtualize tib address 03140 4 10 041 3201 1364 tsy a.i004-*,* (setptw) 03141 4332 00 0 1365 cax1 get it into x1 03142 6337 11 0 1366 qrl 9 align device type in q 03143 1 57 017 0 1367 stq t.type,1 03144 0 47 047 3213 1368 ldq mtemp+1-* get line number again 03145 1 57 004 0 1369 stq t.line,1 put it in tib 03146 4 07 030 3176 1370 lda a.i001-*,* (ctrl) pointer to start of control tables 03147 1 17 003 0 1371 sta t.cur,1 this is where interpreter will start 1372 03150 0 41 026 3176 1373 ldx3 a.i001-* (ctrl) 03151 3 41 001 0 1374 ldx3 1,3 addr(array of device table addresses) 03152 1 40 017 0 1375 adcx3 t.type,1 index by device type 03153 3 41 777 0 1376 ldx3 -1,3 convert index to offset 1377 x3 now points to relevant device table entry 03154 3 07 004 0 1378 lda dt.flg,3 find out how tfctrl should be set 03155 0 31 026 3203 1379 cana l.i001-* (dtfctl) 03156 0 74 003 3161 1380 tze mak040-* it's off to start with 03157 0 07 025 3204 1381 lda l.i002-* (tfctrl) 03160 1 72 001 0 1382 orsa t.flg,1 if dtfctl was on, turn tfctrl on 03161 1383 mak040 null 03161 3 07 004 0 1384 lda dt.flg,3 now check setting of dtfsft 03162 0 31 024 3206 1385 cana l.i004-* (dtfsft) 03163 0 74 003 3166 1386 tze mak050-* 03164 0 07 023 3207 1387 lda l.i005-* (tfsftr) get tib bit to set 03165 1 72 002 0 1388 orsa t.flg2,1 03166 1389 mak050 null 03166 373 010 0 1390 iacx3 dt.brk get address of default break list end of binary card 00000027 03167 1 50 032 0 1391 stx3 t.brkp,1 into tib 1392 03170 0 07 025 3215 1393 lda metadr-* get address of metering area 03171 4 10 010 3201 1394 tsy a.i004-*,* (setptw) virtualize it 03172 1 17 052 0 1395 sta t.metr,1 03173 1396 makbak null that's all 03173 0 07 021 3214 1397 lda tibadr-* this is the real value where virtual value is 1398 is in the x1 register 03174 1399 return maktib 1400 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 66 maktib -- subroutine to allocate a tib 1401 03176 0 00400 3 1402 a.i001 ind ctrl control tables 03177 0 11600 3 1403 a.i002 ind getmem memory allocating subroutine 03200 0 00666 0 1404 a.i003 ind .crtte 03201 0 15400 3 1405 a.i004 ind setptw set up page table word 03202 0 00704 0 1406 a.i005 ind .crmet 1407 03203 000001 0 1408 l.i001 vfd 18/dtfctl 03204 000400 0 1409 l.i002 vfd 18/tfctrl 03205 001000 0 1410 l.i003 oct 1000 03206 000004 0 1411 l.i004 vfd 18/dtfsft 03207 200000 0 1412 l.i005 vfd 18/tfsftr 03210 000400 0 1413 l.i006 oct 400 1414 03211 233100 0 03212 1415 even 03212 1416 mtemp bss 2 place to put arguments 03214 1417 tibadr bss 1 real address of allocated tib 03215 1418 metadr bss 1 real address of allocated metering area assm 01 12-10-82 15.874 init - fnp initialization module for multics page 67 stopxx -- error notification routines 1419 ttls stopxx -- error notification routines 1420 1421 03216 0 00000 0 1422 stop ind ** 03217 0 72 033 3252 1423 orsa badsts-* put error code in status 03220 0 72 030 3250 1424 orsa stp030-* and in die macro 03221 4 47 124 3345 1425 ldq a.k001-*,* (iomch) get iom channel number 03222 0 57 031 3253 1426 stq badsts+1-* put it in bootload status 03223 773 776 0 1427 iaa -2 no. get 2*(message index) 03224 0336 01 0 1428 als 1 03225 0 06 103 3330 1429 ada a.j001-* (icws) 03226 0 17 012 3240 1430 sta stp020-* this is the icw to be passed to wcon 03227 0 20 100 3327 1431 szn inhchn-* does message need channel number? 03230 0 64 007 3237 1432 tnz stp010-* no 03231 4332 00 0 1433 cax1 copy icw address 03232 1 07 000 0 1434 lda 0,1 get message address 03233 0 34 100 3333 1435 ana l.j001-* (=o077777) get rid of char addressing 03234 4332 00 0 1436 cax1 03235 0 10 077 3334 1437 tsy getchn-* get channel number for error message 03236 1 57 003 0 1438 stq 3,1 store channel number in message 1439 03237 1440 stp010 null 03237 4 10 107 3346 1441 tsy a.k002-*,* (iwcon) write it on console end of binary card 00000028 03240 0 00000 0 1442 stp020 zero ** icw address goes here 03241 2331 00 0 1443 nop don't fret if no console 1444 03242 0 04 010 3252 1445 ldaq badsts-* notify cs of error 03243 4 10 067 3332 1446 tsy a.j003-*,* (btsts) 03244 4 20 065 3331 1447 szn a.j002-*,* (simsw) find out if in simulator 03245 0 74 003 3250 1448 tze stp030-* if so, simulate crash 03246 4331 00 0 1449 dis else just stop 03247 0 71 777 3246 1450 tra -1 1451 03250 1452 stp030 die ** 03251 233100 0 03252 1453 even 03252 440000 0 1454 badsts oct 440000,000000 03253 000000 0 1455 1456 03254 1457 stop02 null 03254 4 20 055 3331 1458 szn a.j002-*,* (simsw) running with simulator? 03255 0 64 006 3263 1459 tnz stp040-* no. report error to cs 03256 4 10 070 3346 1460 tsy a.k002-*,* (iwcon) yes. report error but return to init code 03257 0 03350 1 1461 zero icw02 03260 2331 00 0 1462 nop don't loop if no console 03261 4 71 001 3262 1463 tra 1,* return to init code 03262 0 06673 1 1464 ind itl230 03263 1465 stp040 null 03263 0 76 044 3327 1466 aos inhchn-* inhibit storing of channel no. in message assm 01 12-10-82 15.874 init - fnp initialization module for multics page 68 stopxx -- error notification routines 03264 673 002 0 1467 ila 2 03265 0 10 731 3216 1468 tsy stop-* 1469 03266 1470 stop03 null 03266 0 76 041 3327 1471 aos inhchn-* inhibit storing of channel no. in message 03267 673 003 0 1472 ila 3 03270 0 10 726 3216 1473 tsy stop-* 1474 03271 1475 stop04 null 03271 673 004 0 1476 ila 4 03272 0 10 724 3216 1477 tsy stop-* 1478 03273 1479 stop05 null 03273 673 005 0 1480 ila 5 03274 0 10 722 3216 1481 tsy stop-* 1482 03275 0 00000 0 1483 warn07 ind ** 03276 0 10 036 3334 1484 tsy getchn-* 03277 0 57 202 3501 1485 stq msg07+2-* 03300 4 10 046 3346 1486 tsy a.k002-*,* (iwcon) 03301 0 03362 1 1487 zero icw07 03302 2331 00 0 1488 nop dont let lack of console screw us 03303 4 71 772 3275 1489 tra warn07-*,* return to caller 1490 03304 1491 stop08 null 03304 673 010 0 1492 ila 8 03305 0 10 711 3216 1493 tsy stop-* 1494 03306 1495 stop09 null 03306 673 011 0 1496 ila 9 end of binary card 00000029 03307 0 10 707 3216 1497 tsy stop-* 1498 03310 1499 stop10 null 03310 673 012 0 1500 ila 10 03311 0 10 705 3216 1501 tsy stop-* 1502 03312 1503 stop11 null 03312 673 013 0 1504 ila 11 03313 0 10 703 3216 1505 tsy stop-* 1506 03314 1507 stop12 null 03314 0 76 013 3327 1508 aos inhchn-* inhibit storing of channel no. in message 03315 673 014 0 1509 ila 12 03316 0 10 700 3216 1510 tsy stop-* 1511 03317 1512 stop13 null 03317 673 015 0 1513 ila 13 03320 0 10 676 3216 1514 tsy stop-* 1515 03321 1516 stop14 null assm 01 12-10-82 15.874 init - fnp initialization module for multics page 69 stopxx -- error notification routines 03321 0 76 006 3327 1517 aos inhchn-* inhibit storing of channel no. in message 03322 673 016 0 1518 ila 14 03323 0 10 673 3216 1519 tsy stop-* 1520 03324 1521 stop15 null 03324 0 76 003 3327 1522 aos inhchn-* inhibit storing of channel no. in message 03325 673 017 0 1523 ila 15 03326 0 10 670 3216 1524 tsy stop-* 1525 03327 000000 0 1526 inhchn oct 0 1527 03330 0 03350 1 1528 a.j001 ind icws 03331 0 04367 1 1529 a.j002 ind simsw 03332 0 04264 1 1530 a.j003 ind btsts 1531 03333 077777 0 1532 l.j001 oct 077777 to eliminate character addressing assm 01 12-10-82 15.874 init - fnp initialization module for multics page 70 stopxx -- error notification routines 1533 eject 1534 ********************************************************* 1535 * getchn -- get current iom channel number, convert to 1536 * ascii code, and place in q-register 1537 ********************************************************* 1538 03334 0 00000 0 1539 getchn ind ** 03335 4 07 010 3345 1540 lda a.k001-*,* (iomch) get current iom channel number 03336 0336 14 0 1541 als 18-6 convert to ascii characters and leave 03337 473 006 0 1542 ilq 6 in q-register 03340 2334 03 0 1543 llr 3 03341 4336 06 0 1544 qls 6 03342 573 006 0 1545 iaq 6 03343 2334 03 0 1546 llr 3 03344 4 71 770 3334 1547 tra getchn-*,* 1548 03345 0 01660 1 1549 a.k001 ind iomch 03346 0 04370 1 1550 a.k002 ind iwcon assm 01 12-10-82 15.874 init - fnp initialization module for multics page 71 stopxx -- error notification routines 1551 eject 03347 233100 0 03350 1552 even 03350 1553 icws null 1554 03350 2 03404 1 1555 icw02 icw msg02-1,b.0,28 03351 000034 0 03352 2 03422 1 1556 icw03 icw msg03-1,b.0,32 03353 000040 0 03354 2 03442 1 1557 icw04 icw msg04-1,b.0,30 03355 000036 0 end of binary card 00000030 03356 2 03460 1 1558 icw05 icw msg05-1,b.0,30 03357 000036 0 03360 2 00000 0 1559 icw06 icw **,b.0,0 dummy 03361 000000 0 03362 2 03476 1 1560 icw07 icw msg07-1,b.0,32 03363 000040 0 03364 2 03515 1 1561 icw08 icw msg08-1,b.0,46 03365 000056 0 03366 2 03543 1 1562 icw09 icw msg09-1,b.0,40 03367 000050 0 03370 2 03566 1 1563 icw10 icw msg10-1,b.0,42 03371 000052 0 03372 2 03612 1 1564 icw11 icw msg11-1,b.0,40 03373 000050 0 03374 2 03635 1 1565 icw12 icw msg12-1,b.0,38 03375 000046 0 03376 2 03657 1 1566 icw13 icw msg13-1,b.0,52 03377 000064 0 03400 2 03710 1 1567 icw14 icw msg14-1,b.0,36 03401 000044 0 03402 2 03731 1 1568 icw15 icw msg15-1,b.0,36 03403 000044 0 1569 1570 detail off 1571 03404 015012 0 1572 vfd 9/cr,9/lf 03405 124111 0 1573 msg02 aci 13,timer channel not enabled 03422 015012 0 1574 vfd 9/cr,9/lf 03423 115117 0 1575 msg03 aci 15,more than one dia configured end of binary card 00000031 03442 015012 0 1576 vfd 9/cr,9/lf 03443 052103 0 1577 msg04 aci 13,*ch-xx, dia does not exist 03460 015012 0 1578 vfd 9/cr,9/lf 03461 052103 0 1579 msg05 aci 13,*ch-xx, dia did not respond in time end of binary card 00000032 03476 015012 0 1580 vfd 9/cr,9/lf 03477 052103 0 1581 msg07 aci 14,*ch-xx, lsla does not exist 03515 015012 0 1582 vfd 9/cr,9/lf 03516 052103 0 1583 msg08 aci 21,*ch-xx, device is not an sla and should be assm 01 12-10-82 15.874 init - fnp initialization module for multics page 72 stopxx -- error notification routines end of binary card 00000033 03543 015012 0 1584 vfd 9/cr,9/lf 03544 052103 0 1585 msg09 aci 18,*ch-xx, illegal lsla speed specified 03566 015012 0 1586 vfd 9/cr,9/lf 03567 052103 0 1587 msg10 aci 19,*ch-xx, lsla failed for the tenth time end of binary card 00000034 03612 015012 0 1588 vfd 9/cr,9/lf 03613 052103 0 1589 msg11 aci 18,*ch-xx, lsla actual <> desired speed 03635 015012 0 1590 vfd 9/cr,9/lf 03636 124111 0 1591 msg12 aci 17,timer switch set to 64 khz, s/b 1 03657 015012 0 1592 vfd 9/cr,9/lf 03660 052103 0 1593 msg13 aci 24,*ch-xx, actual config doesn't match config deck end of binary card 00000035 03710 015012 0 1594 vfd 9/cr,9/lf 03711 120101 0 1595 msg14 aci 16,pager is disabled or inoperative end of binary card 00000036 03731 015012 0 1596 vfd 9/cr,9/lf 03732 125116 0 1597 msg15 aci 16,unable to allocate trace buffer 03752 015012 0 1598 vfd 9/cr,9/lf 1599 1600 detail on assm 01 12-10-82 15.874 init - fnp initialization module for multics page 73 initialization main program -- wrap up 1601 ttls initialization main program -- wrap up 1602 *********************************************************************** 1603 * 1604 * all devices have now been initialized 1605 * all that remains is to open up the appropriate floodgates in an 1606 * orderly and meaningful sequence. 1607 * 1608 *********************************************************************** 1609 03753 1610 clocks null 1611 1612 1613 ********************************************************* 1614 * if t&d executive channel is configured, allocate a tib 1615 * for it. if in >32k, we will keep the sfcm area and fake 1616 * an hsla table entry therein to store the real tib 1617 * address, so the code in dia_man that finds the tib 1618 * table entry this way will work. 1619 ********************************************************* 1620 03753 4 20 247 4222 1621 szn a.m037-*,* .crtdt 03754 0 74 032 4006 1622 tze itl025-* line not configured 03755 4 10 247 4224 1623 tsy a.m039-*,* (hgsfcm) set up tib address 03756 0 27 254 4232 1624 cmpa l.m005-* =32k -- see if sfcm in low memory 03757 0 65 005 3764 1625 tpl itl022-* no, never mind 03760 4333 00 0 1626 cax3 else free the space (we don't need it) 03761 4 47 244 4225 1627 ldq a.m040-*,* hsflen 03762 4 10 213 4175 1628 tsy a.m016-*,* fremem 03763 673 000 0 1629 ila 0 call sfcm address 0 03764 0 17 256 4242 1630 itl022 sta csfcm-* save sfcm address 03765 0 07 244 4231 1631 lda l.m004-* (=o412) give it a baud rate of 9600 03766 0 47 242 4230 1632 ldq l.m003-* =o1777, line number for colts 03767 4 10 234 4223 1633 tsy a.m038-*,* maktib 03770 4 17 232 4222 1634 sta a.m037-*,* save tib address in .crtdt 03771 673 023 0 1635 ila ttcolt set line type 03772 1 17 017 0 1636 sta t.type,1 03773 0 07 247 4242 1637 lda csfcm-* is there a sfcm? 03774 0 74 012 4006 1638 tze itl025-* no, 32k, no sweat 03775 4 10 222 4217 1639 tsy a.m034-*,* (setptw) yes, get virtual addr 03776 1 17 030 0 1640 sta t.sfcm,1 keep it for future reference end of binary card 00000037 03777 0332 00 0 1641 cax2 we will pretend 2nd and 3rd words are 04000 773 001 0 1642 iaa 1 hsla table entry 04001 2 17 015 0 1643 sta sf.hsl,2 04002 4333 00 0 1644 cax3 in order to save real tib address there 04003 4 07 217 4222 1645 lda a.m037-*,* (.crtdt) 04004 3 17 001 0 1646 sta ht.tib,3 04005 2 53 004 0 1647 stx1 sf.tib,2 just for cleanliness 1648 1649 ********************************************************* 1650 * send bootload status to cs privileged slave assm 01 12-10-82 15.874 init - fnp initialization module for multics page 74 initialization main program -- wrap up 1651 * program if bootloaded thru dia 1652 ********************************************************* 1653 04006 0 04 230 4236 1654 itl025 ldaq gudsts-* get some good status 04007 0 10 255 4264 1655 tsy btsts-* send the bootload status 1656 04010 3331 00 0 1657 inh inhibit interrupts <-><-><-><-><-><-><-><-><->< 1658 1659 ********************************************************* 1660 * restore level 0, 1, and 2 interrupt vectors to their 1661 * operational settings 1662 ********************************************************* 1663 04011 0 41 202 4213 1664 ldx3 a.m030-* (intv+256) 04012 0 03 202 4214 1665 ldx2 a.m031-* (savein+48-3) 1666 04013 1667 itl030 null 04013 2 07 000 0 1668 lda 0,2 04014 2 47 001 0 1669 ldq 1,2 04015 3 14 760 0 1670 staq -16,3 04016 2 07 002 0 1671 lda 2,2 04017 3 17 762 0 1672 sta -14,3 04020 273 775 0 1673 iacx2 -3 04021 373 760 0 1674 iacx3 -16 04022 0 64 771 4013 1675 tnz itl030-* 1676 04023 0 07 165 4210 1677 lda a.m027-* (consjt) 04024 0 27 202 4226 1678 cmpa l.m001-* (=o776) is console_man in image? 04025 0 74 004 4031 1679 tze itl040-* no. skip console stuff 04026 4 17 163 4211 1680 sta a.m028-*,* (tytm) yes. set up interrupt vectors for console 04027 773 003 0 1681 iaa 3 now point to "special" jump table 04030 4 17 162 4212 1682 sta a.m029-*,* (tyrq) 1683 04031 1684 itl040 null assm 01 12-10-82 15.874 init - fnp initialization module for multics page 75 initialization main program -- wrap up 1685 eject 1686 ************************************************ 1687 * now free all of init for use as buffer 1688 * space. note we will run in here for 1689 * awhile, so we must be careful about allocating 1690 * buffers. 1691 ************************************************ 1692 04031 4 07 150 4201 1693 lda a.m020-*,* (.crtte) 04032 773 037 0 1694 iaa bufsiz-1 round up to bufsiz boundary 04033 022 740 0 1695 iana -bufsiz 04034 0 17 204 4240 1696 sta cbufr-* this will be beginning of buffer space 1697 04035 4 47 121 4156 1698 ldq a.m001-*,* (.crbuf) old buffer area start 04036 0 66 202 4240 1699 sbq cbufr-* q contains total size 04037 4333 00 0 1700 cax3 point at which to be freed 04040 4 50 116 4156 1701 stx3 a.m001-*,* (.crbuf) so frebuf doesn't get upset 04041 4 10 131 4172 1702 tsy a.m013-*,* (frebuf) 1703 04042 0 07 176 4240 1704 lda cbufr-* start of buffer space 04043 4 26 136 4201 1705 sba a.m020-*,* (.crtte) free space before first buffer 04044 422 002 0 1706 icmpa 2 if at least 2 words, we will use it 04045 0 75 005 4052 1707 tmi itl050-* end of binary card 00000038 04046 4 41 133 4201 1708 ldx3 a.m020-*,* (.crtte) addr of small space 04047 6333 00 0 1709 caq 04050 4 50 106 4156 1710 stx3 a.m001-*,* (.crbuf) 04051 4 10 124 4175 1711 tsy a.m016-*,* (fremem) 1712 04052 1713 itl050 null 04052 4 10 144 4216 1714 tsy a.m033-*,* (fresml) clean up small space 04053 2331 00 0 1715 nop dont care which return 04054 4 56 123 4177 1716 stz a.m018-*,* (.crnbs) number of buffers for small space 04055 4 56 121 4176 1717 stz a.m017-*,* (bfcksw) enable buffer checking 1718 04056 4 07 142 4220 1719 lda a.m035-*,* .crnbf 04057 0336 05 0 1720 als bufshf get buffer pool size in words 04060 4 17 141 4221 1721 sta a.m036-*,* (.mpool) store where metering will find it 1722 1723 ******************************************************** 1724 * start the control tables for each tib we created 1725 ******************************************************** 1726 04061 0 03 117 4200 1727 ldx2 a.m019-* (tibtab) get address of first entry in tib 1728 address table 04062 4 13 107 4171 1729 stx2 a.m012-*,* (.crttb) save it in system comreg 1730 04063 1731 itl060 null 04063 4 23 116 4201 1732 cmpx2 a.m020-*,* (.crtte) any more? 04064 0 74 007 4073 1733 tze itl070-* no 04065 2 07 000 0 1734 lda 0,2 yes. get real tib address assm 01 12-10-82 15.874 init - fnp initialization module for multics page 76 initialization main program -- wrap up 04066 4 10 131 4217 1735 tsy a.m034-*,* (setptw) virtualize it 04067 4332 00 0 1736 cax1 get virtual tib address into x1 04070 4 10 103 4173 1737 tsy a.m014-*,* (itest) call test-state entry of interpreter 04071 273 002 0 1738 iacx2 2 get address of next entry 04072 0 71 771 4063 1739 tra itl060-* get next entry 1740 04073 1741 itl070 null assm 01 12-10-82 15.874 init - fnp initialization module for multics page 77 initialization main program -- wrap up 1742 eject 1743 ********************************************************* 1744 * if any lsla's have been configured, they will 1745 * now be "turned on". the one or 1746 * more lsla's will be started at an equal spacing in time 1747 * over a total 100ms period. this will insure that the 1748 * interrupts from them will be evenly distributed over 1749 * their 100ms cycle time. 1750 ********************************************************* 1751 04073 4 20 064 4157 1752 szn a.m002-*,* (.crnls) ? any lsla's to start up, anyway ? 04074 0 74 030 4124 1753 tze itl090-* no, get out of this routine 1754 1755 * we will run in this code inhibited so as to prevent 1756 * a premature interrupt from the first lsla started 1757 * from kicking us out of this final initialization phase 1758 * too soon (causing 1 or more lslas not to be initialized 1759 * and the interrupt enable reg not to be set). 1760 04075 673 000 0 1761 ila 0 compute the starting time interval for 04076 473 310 0 1762 ilq 2*100 the number of lsla's configured 04077 4 21 060 4157 1763 dvf a.m002-*,* (.crnls) 04100 0 17 143 4243 1764 sta cdelta-* 04101 673 000 0 1765 ila 0 compute negative of number of lsla's 04102 4 26 055 4157 1766 sba a.m002-*,* (.crnls) 04103 0 17 141 4244 1767 sta ctemp-* 1768 04104 1769 itl080 null 04104 0 41 135 4241 1770 ldx3 clchnp-* get an lsla iom channel number from the 04105 0 76 134 4241 1771 aos clchnp-* list, store it in the "sel" instruction 04106 3 07 000 0 1772 lda 0,3 04107 0 37 120 4227 1773 ora l.m002-* (sel 0) 04110 0 17 001 4111 1774 sta 1 04111 073 000 0 1775 sel ** select this lsla 04112 0 60 146 4260 1776 cioc csrpcw-* set snd & rcv modes 04113 0 76 131 4244 1777 aos ctemp-* ? finished with all lsla's ? 04114 0 74 010 4124 1778 tze itl090-* yes, get going 1779 end of binary card 00000039 04115 073 077 0 1780 sel tmch select timer channel 04116 0 07 125 4243 1781 lda cdelta-* set interval timer for starting interval 04117 4 17 044 4163 1782 sta a.m006-*,* (itmb) setup timer 04120 0 60 142 4262 1783 cioc clkonx-* turn on the timer 04121 4 07 042 4163 1784 lda a.m006-*,* (itmb) get interval timer value 04122 0 64 777 4121 1785 tnz -1 it hasn't timed out yet 04123 0 71 761 4104 1786 tra itl080-* timeout "interrupt" 1787 04124 1788 itl090 null assm 01 12-10-82 15.874 init - fnp initialization module for multics page 78 initialization main program -- wrap up 1789 eject 1790 ********************************************************* 1791 * setup the interval and elapsed timers 1792 ********************************************************* 1793 04124 4 56 037 4163 1794 stz a.m006-*,* (itmb) interval timer value = 0 04125 0 07 037 4164 1795 lda a.m007-* (timrjt) interval timer jump table 04126 4 17 037 4165 1796 sta a.m008-*,* (tmro) timer interrupt vector 04127 4 07 053 4202 1797 lda a.m021-*,* (etrint) get elapsed timer default value 04130 4 17 036 4166 1798 sta a.m009-*,* (etmb) 04131 0 07 036 4167 1799 lda a.m010-* (etrip) elapsed timer interrupt handler 04132 4 17 036 4170 1800 sta a.m011-*,* (etr) timer interrupt vector 04133 4 10 041 4174 1801 tsy a.m015-*,* (rstclk) turn clock off 1802 04134 0 04 100 4234 1803 ldaq sdqdat-* schedule dummy rtn to kick off timer 04135 4 10 052 4207 1804 tsy a.m026-*,* (dspqur) since clock doesnt start til it is used 1805 1806 ********************************************************* 1807 * setup pointer to scheduler control blocks 1808 ********************************************************* 1809 04136 0 07 045 4203 1810 lda a.m022-* (skdata) addr of scheduler block 04137 4 17 045 4204 1811 sta a.m023-*,* (.crskd) store in .crskd 04140 0 07 045 4205 1812 lda a.m024-* (icmdat) addr of ic monitoring data 04141 0 27 065 4226 1813 cmpa l.m001-* (=o776) is it configured? 04142 0 74 002 4144 1814 tze 2 no 04143 4 17 043 4206 1815 sta a.m025-*,* (etrmon) store addr in sked block 1816 1817 ********************************************************* 1818 * set a level 2 interrupt for the dia so it can run 1819 ********************************************************* 1820 04144 4 07 016 4162 1821 lda a.m005-*,* (cdiaic) get mask word for interrupt cell 04145 452 002 0 1822 sic 2 1823 1824 ********************************************************* 1825 * set the interrupt enable mask register according to the 1826 * number of hsla's configured. 1827 ********************************************************* 1828 04146 4 43 012 4160 1829 ldx1 a.m003-*,* (.crnhs) 04147 0 42 046 4215 1830 adcx1 a.m032-* (cenimk) 04150 1 07 000 0 1831 lda 0,1 04151 052 000 0 1832 sier 1833 04152 4 56 007 4161 1834 stz a.m004-*,* (.crcon) make sure console io enabled assm 01 12-10-82 15.874 init - fnp initialization module for multics page 79 initialization main program -- wrap up 1835 eject 1836 ********************************************************* 1837 * well, here goes everything 1838 ********************************************************* 1839 04153 7331 00 0 1840 eni enable interrupts <+><+><+><+><+><+><+><+><+><+ 1841 04154 4 71 001 4155 1842 tra 1,* go to the main dispatcher "dis" 04155 0 03600 3 1843 ind msdsp assm 01 12-10-82 15.874 init - fnp initialization module for multics page 80 initialization main program -- wrap up 1844 eject 1845 04156 0 00650 0 1846 a.m001 ind .crbuf addr of very 1st buffer 04157 0 00655 0 1847 a.m002 ind .crnls number of lsla's configured 04160 0 00654 0 1848 a.m003 ind .crnhs number of hsla's configured 04161 0 00656 0 1849 a.m004 ind .crcon console io flag 04162 0 02074 1 1850 a.m005 ind cdiaic set interrupt cell word for dia 04163 0 00450 0 1851 a.m006 ind itmb interval timer mailbox addr end of binary card 00000040 04164 0 17600 3 1852 a.m007 ind timrjt interval timer jump table addr 04165 0 00361 0 1853 a.m008 ind tmro interval timer iv addr 04166 0 00451 0 1854 a.m009 ind etmb elapsed timer mailbox addr 04167 0 03000 3 1855 a.m010 ind etrip elapsed timer interrupt handler 04170 0 00362 0 1856 a.m011 ind etr elapsed timer iv addr 04171 0 00665 0 1857 a.m012 ind .crttb 04172 0 10400 3 1858 a.m013 ind frebuf 04173 0 03400 3 1859 a.m014 ind itest "test-state" entry of interpreter 04174 0 01503 1 1860 a.m015 ind rstclk stop clock routine 04175 0 10600 3 1861 a.m016 ind fremem 04176 0 05000 3 1862 a.m017 ind bfcksw 04177 0 00675 0 1863 a.m018 ind .crnbs 04200 0 00012 1 1864 a.m019 zero tibtab pointer to current entry of tib address table 04201 0 00666 0 1865 a.m020 zero .crtte pointer to end of tib address table 04202 0 10000 3 1866 a.m021 ind etrint address of default elapsed timer value 04203 0 15600 3 1867 a.m022 ind skdata address of scheduler control block 04204 0 00677 0 1868 a.m023 ind .crskd 04205 0 12400 3 1869 a.m024 ind icmdat address of data in ic-monitor routine 04206 0 10200 3 1870 a.m025 ind etrmon pointer to icmdat in skdata 04207 0 07400 3 1871 a.m026 ind dspqur 04210 0 06000 3 1872 a.m027 ind consjt console_man jump tables 04211 0 00002 0 1873 a.m028 ind tytm console terminate iv 04212 0 00001 0 1874 a.m029 ind tyrq console special iv 04213 0 00400 0 1875 a.m030 zero intv+256 04214 0 01634 1 1876 a.m031 zero savein+48-3 04215 0 04253 1 1877 a.m032 zero cenimk 04216 0 11000 3 1878 a.m033 ind fresml 04217 0 15400 3 1879 a.m034 ind setptw set up variable cpu page table word 04220 0 00652 0 1880 a.m035 ind .crnbf number of free "buffers" 04221 0 00737 0 1881 a.m036 ind .mpool buffer pool size for metering 04222 0 00705 0 1882 a.m037 ind .crtdt t&d channel indicator (later tib address) 04223 0 03065 1 1883 a.m038 ind maktib 04224 0 02747 1 1884 a.m039 ind hgsfcm 04225 0 03061 1 1885 a.m040 ind hsflen 1886 04226 000776 0 1887 l.m001 oct 776 address of missing module 04227 073 000 0 1888 l.m002 sel 0 04230 001777 0 1889 l.m003 oct 1777 line number for colts pseudo-channel 04231 000412 0 1890 l.m004 oct 412 baud rate code for async 9600 baud 04232 100000 0 1891 l.m005 oct 100000 first address above 32k end of binary card 00000041 04233 233100 0 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 81 initialization main program -- wrap up 04234 1892 even 04234 007401 0 1893 sdqdat vfd 12/60,6/1 04235 0 15200 3 1894 ind secdsp 1895 04236 1896 even 04236 400000 0 1897 gudsts oct 400000,000000 bootloaded successfully status 04237 000000 0 04240 0 00000 0 1898 cbufr zero 1899 04241 0 04245 1 1900 clchnp zero clchnr 1901 04242 1902 csfcm bss 1 "sfcm" for colts channel 04243 1903 cdelta bss 1 04244 1904 ctemp bss 1 04245 1905 clchnr bss 6 1906 04253 740000 0 1907 cenimk oct 740000,776000,777700,777774 04254 776000 0 04255 777700 0 04256 777774 0 04257 233100 0 04260 1908 even 04260 200000 0 1909 csrpcw vfd 2/1,16/0,18/snd+rcv+dtr+rts 04261 000660 0 04262 000000 0 1910 clkonx oct 0,0 04263 000000 0 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 82 btsts - send bootload status to cs 1911 ttls btsts - send bootload status to cs 1912 ************************************************************************ 1913 * this routine will send status to the central system if init was 1914 * entered from the gicb routine 1915 ************************************************************************ 04264 0 00000 0 1916 btsts ind ** 04265 0 14 031 4316 1917 staq .sstat-* save status to be sent 04266 0 07 101 4367 1918 lda simsw-* get gicb entry flag 04267 4 74 775 4264 1919 tze btsts-*,* did not boot from cs - dont send status 1920 04270 0 34 030 4320 1921 ana mbxmsk-* mask mailbox address 04271 773 006 0 1922 iaa 6 add in relative location of status word 04272 0 17 040 4332 1923 sta stdcw1-* store in data transfer dcw 1924 04273 0 07 074 4367 1925 lda simsw-* get execute interrupt cell to set 04274 2337 06 0 1926 arl 6 position it 04275 0 34 024 4321 1927 ana intmsk-* mask away extraneous bits 04276 0 72 041 4337 1928 orsa stdcw2+1-* store in interrupt dcw 1929 04277 0 43 047 4346 1930 ldx1 lstsls-* get length of status dcw block 04300 0 41 023 4323 1931 ldx3 lstsl-* get pointer to dcw block 04301 0 10 046 4347 1932 tsy parity-* go calculate parity 1933 04302 0 04 022 4324 1934 ldaq list-* get list icw pointer (dia pcw) 04303 4 14 017 4322 1935 staq ldimb-*,* store in pcw mailbox 1936 04304 673 002 0 1937 ila 2 set word count for parity calculation 04305 4332 00 0 1938 cax1 04306 0 41 014 4322 1939 ldx3 ldimb-* calculate dia parity for pcw mailbox 04307 0 10 040 4347 1940 tsy parity-* 1941 04310 0 04 016 4326 1942 ldaq limodl-* get the list icw model end of binary card 00000042 04311 0 14 017 4330 1943 staq stslst-* fill in for dia 1944 04312 073 004 0 1945 sel dich select the intercomputer channel 04313 4 60 007 4322 1946 cioc ldimb-*,* initiate i/o in dia channel 04314 4331 00 0 1947 dis wait for interrupt 04315 4 71 747 4264 1948 tra btsts-*,* return assm 01 12-10-82 15.874 init - fnp initialization module for multics page 83 btsts - send bootload status to cs 1949 eject 1950 04316 1951 even 04316 000000 0 1952 .sstat dec 0,0 bootload status to go 04317 000000 0 04320 007777 0 1953 mbxmsk oct 007777 mailbox address mask 04321 007700 0 1954 intmsk oct 007700 interrupt cell mask 04322 0 00454 0 1955 ldimb ind dimb dia mailbox location 04323 0 04330 1 1956 lstsl ind stslst location of status list 04324 1957 even 04324 1 04330 1 1958 list zero stslst,w.2 pcw model - ptr to list icw 04325 000072 0 1959 oct 72 opcode - list operation 1960 04326 1 04332 1 1961 limodl dcw stdcw1,6 bootload status list icw model 04327 000006 0 04330 000000 0 1962 stslst oct 0,0 place for list icw 04331 000000 0 04332 000000 0 1963 stdcw1 vfd 18/,12/,o6/75 data transfer fnp to cs dcw 04333 000075 0 04334 1 04316 1 1964 dcw .sstat,1 04335 000001 0 04336 000000 0 1965 stdcw2 vfd 18/,12/,o6/73 interrupt cs dcw 04337 000073 0 04340 1 00000 0 1966 zero 0,w.2 04341 000000 0 1967 oct 04342 000000 0 1968 stdcw3 vfd 18/,12/,o6/70 disconnect dcw 04343 000070 0 04344 1 00000 0 1969 zero 0,w.2 04345 000000 0 1970 oct 04346 0 00016 0 1971 lstsls ind *-stslst length of status dcw block assm 01 12-10-82 15.874 init - fnp initialization module for multics page 84 calculate parity routine 1972 ttls calculate parity routine 1973 04347 0 00000 0 1974 parity ind ** 04350 3 47 000 0 1975 ldq 0,3 get first word of dcw 04351 3 07 001 0 1976 lda 1,3 get second word of dcw 1977 04352 7336 22 0 1978 qlp 18 calculate parity for 1st word 04353 0 64 002 4355 1979 tnz 2 odd parity... 04354 0 37 011 4365 1980 ora parwd1-* even - set parity bit 1981 04355 3336 22 0 1982 alp 18 calculate parity for 2nd word 04356 0 64 002 4360 1983 tnz 2 odd parity... 04357 0 37 007 4366 1984 ora parwd2-* even - set parity bit 1985 end of binary card 00000043 04360 3 17 001 0 1986 sta 1,3 restore 2nd word with parity bits 1987 04361 373 002 0 1988 iacx3 2 bump words pointer 04362 173 776 0 1989 iacx1 -2 decrement word count 04363 0 64 765 4350 1990 tnz parity+1-* more to do 1991 04364 4 71 763 4347 1992 tra parity-*,* return 1993 04365 040000 0 1994 parwd1 oct 040000 parity bit for 1st word of dia dcw 04366 020000 0 1995 parwd2 oct 020000 parity bit for 2nd word of dia dcw 1996 beginning of free space while init is running 04367 000000 0 1997 simsw dec 0 0 if in simulator, non-0 if in fnp assm 01 12-10-82 15.874 init - fnp initialization module for multics page 85 iwcon - common interface to wcon 1998 ttls iwcon - common interface to wcon 1999 04370 2000 iwcon subr iwc,(x1) 04376 4 20 013 4411 2001 szn a.n001-*,* (conman) is console_man in image? 04377 0 74 007 4406 2002 tze iwc020-* no. take error return 04400 4 07 770 4370 2003 lda iwcon-*,* yes. get icw address 04401 0 17 003 4404 2004 sta iwc010-* store it after tsy to wcon 04402 0 76 766 4370 2005 aos iwcon-* set up for error return 04403 4 10 007 4412 2006 tsy a.n002-*,* (wcon) write on console 04404 0 00000 0 2007 iwc010 zero ** icw address 04405 0 71 002 4407 2008 tra iwcret-* error return 2009 04406 2010 iwc020 null 04406 0 76 762 4370 2011 aos iwcon-* bump return address 2012 04407 2013 iwcret null 04407 2014 return iwcon 2015 2016 04411 0 05600 3 2017 a.n001 ind conman 04412 0 02200 3 2018 a.n002 ind wcon assm 01 12-10-82 15.874 init - fnp initialization module for multics page 86 lsla -- initialize for low speed line adapter 2019 ttls lsla -- initialize for low speed line adapter 2020 ************************************************************************ 2021 * this routine will initialize all that is necessary to operate 2022 * from one to six low speed line adapters. 2023 ************************************************************************ 2024 04413 2025 lsla null 04413 0 57 345 4760 2026 stq lfig-* save wd 1 of fig 04414 0 13 345 4761 2027 stx2 lfig+1-* save wd 2 of fig 04415 4 07 367 5004 2028 lda a.q012-*,* (iomch) 04416 0332 00 0 2029 cax2 04417 0 37 347 4766 2030 ora lals-* (als 0) 04420 0 17 021 4441 2031 sta lsl010-* 04421 3332 00 0 2032 cx2a 04422 0 37 345 4767 2033 ora lsel-* (sel 0) 04423 0 17 024 4447 2034 sta lsl030-* 04424 0 41 344 4770 2035 ldx3 lchnrp-* insert this iom ch # into list of lsla's 04425 0 76 343 4770 2036 aos lchnrp-* to startup end of binary card 00000044 04426 3 13 000 0 2037 stx2 0,3 2038 compute address of hcr 04427 7333 00 0 2039 cqa 04430 2337 14 0 2040 arl 18-fcdacn-1 this field contains "lsla-number" 04431 022 007 0 2041 iana fbdacn 04432 773 777 0 2042 iaa -1 04433 4 17 350 5003 2043 sta a.q011-*,* (lslano) save lsla number 04434 0336 04 0 2044 als 4 04435 0 06 350 5005 2045 ada l.q001-* (l1mb) 04436 0 17 360 5016 2046 sta lslhcr-* store base address of hcr 04437 4333 00 0 2047 cax3 2048 2049 ********************************************************* 2050 * does the specified iom channel physically exist? 2051 ********************************************************* 2052 04440 4 07 331 4771 2053 lda a.q001-*,* (exist) 04441 0336 00 0 2054 lsl010 als ** ? does channel ** physically exist ? 04442 0 75 005 4447 2055 tmi lsl020-* yes 04443 4 10 002 4445 2056 tsy 2,* no, print out warning message 04444 4 71 002 4446 2057 tra 2,* 04445 0 03275 1 2058 ind warn07 "lsla does not exist" 04446 0 01546 1 2059 ind itl020 2060 2061 04447 2062 lsl020 null 04447 073 000 0 2063 lsl030 sel ** select the iom channel of the sla 04450 0 60 252 4722 2064 cioc ipcw-* initialize the sla assm 01 12-10-82 15.874 init - fnp initialization module for multics page 87 lsla -- initialize for low speed line adapter 2065 eject 2066 ********************************************************* 2067 * is the device on this channel an sla? 2068 ********************************************************* 2069 04451 0 60 253 4724 2070 cioc cpcw-* request configuration 2071 04452 673 012 0 2072 ila 10 04453 0 47 006 4461 2073 ldq lsl040-1-* 04454 4 10 316 4772 2074 tsy a.q002-*,* (setclk) set time-out for 10 ms 04455 4 20 316 4773 2075 szn a.q003-*,* (simsw) see if running in simulator 04456 0 74 005 4463 2076 tze lsl040+1-* yes. don't wait for interrupt 04457 4331 00 0 2077 dis no. in fnp, wait for interrupt 04460 0 71 777 4457 2078 tra -1 stay at dis until clock runs out 2079 04461 0 04462 1 2080 ind lsl040 04462 0 00000 0 2081 lsl040 ind ** time is up, status should be there now 04463 3 04 016 0 2082 ldaq h.cnfg,3 04464 0 27 322 5006 2083 cmpa l.q002-* (=o606004) good lsla status 04465 0 64 003 4470 2084 tnz lsl050-* 04466 0 67 321 5007 2085 cmpq l.q002+1-* (=o010026) 04467 0 74 003 4472 2086 tze lsl060-* 04470 2087 lsl050 null 04470 4 71 001 4471 2088 tra 1,* 04471 0 03304 1 2089 ind stop08 "device is not an sla and should be" eeee 2090 2091 ********************************************************* 2092 * determine what speed the user specified for this lsla 2093 ********************************************************* 2094 04472 2095 lsl060 null 04472 0 07 266 4760 2096 lda lfig-* 04473 2337 00 0 2097 arl 18-fcsped-1 04474 022 017 0 2098 iana fbsped end of binary card 00000045 04475 422 002 0 2099 icmpa 2 ? 2400 bpi ? 04476 0 74 005 4503 2100 tze lsl070-* yes 04477 422 004 0 2101 icmpa 4 ? 4800 bpi ? 04500 0 74 005 4505 2102 tze lsl080-* yes 04501 4 71 001 4502 2103 tra 1,* 04502 0 03306 1 2104 ind stop09 "illegal lsla speed specified" eeeeeeeeee 2105 04503 2106 lsl070 null 04503 673 026 0 2107 ila 22 04504 0 71 002 4506 2108 tra lsl090-* 04505 2109 lsl080 null 04505 673 064 0 2110 ila 52 04506 2111 lsl090 null 04506 0 17 255 4763 2112 sta lnbrts-* set # of data time slots 2113 04507 673 766 0 2114 ila -10 set count to try to initialize the lsla assm 01 12-10-82 15.874 init - fnp initialization module for multics page 88 lsla -- initialize for low speed line adapter 04510 0 17 252 4762 2115 sta ltryct-* a maximum of 10 attempts 04511 0 71 007 4520 2116 tra lsl110-* 2117 2118 ********************************************************* 2119 * determine actual speed of lsla 2120 ********************************************************* 2121 04512 0 00000 0 2122 lsl100 ind ** 04513 0 60 207 4722 2123 cioc ipcw-* initialize the sla for re-attempt 04514 0 76 246 4762 2124 aos ltryct-* ? made 10 attempts yet ? 04515 0 64 003 4520 2125 tnz lsl110-* no, try again 04516 4 71 001 4517 2126 tra 1,* 04517 0 03310 1 2127 ind stop10 "lsla failed for the 10th time" eeeeeeeee 2128 04520 2129 lsl110 null 04520 0 03 254 4774 2130 ldx2 a.q004-* (lrbuf1,b.0) load address of readback buffer 04521 4 20 252 4773 2131 szn a.q003-*,* (simsw) see if running in simulator 04522 0 74 312 5034 2132 tze lsl320-* yes, use simulated readback 2133 04523 0 03 252 4775 2134 ldx2 a.q005-* (lrbuf1) get a word address of readback buffer 04524 2 56 000 0 2135 stz 0,2 mess up the simulated readback 04525 2 56 001 0 2136 stz 1,2 so that we really make sure that 04526 2 56 002 0 2137 stz 2,2 the lsla is working 2138 04527 0 03 245 4774 2139 ldx2 a.q004-* (lrbuf1,b.0) get a byte address again 04530 0 04 204 4734 2140 ldaq licw1-* 04531 3 14 000 0 2141 staq h.ric0,3 04532 0 04 200 4732 2142 ldaq asicw-* 04533 3 14 014 0 2143 staq h.aicw,3 2144 04534 0 60 172 4726 2145 cioc rpcw-* set rcv mode 2146 04535 0 07 253 5010 2147 lda l.q003-* (=3000) 04536 0 47 003 4541 2148 ldq 3 04537 4 10 233 4772 2149 tsy a.q002-*,* (setclk) 04540 0 71 007 4547 2150 tra lsl120-* 04541 0 04542 1 2151 ind *+1 04542 0 00000 0 2152 ind ** 04543 4 10 233 4776 2153 tsy a.q006-*,* (iwcon) end of binary card 00000046 04544 0 06006 1 2154 zero lmicw1 "no response after set rcv" eeeeeeeeeeeee 04545 2331 00 0 2155 nop don't loop if no console 04546 0 10 744 4512 2156 tsy lsl100-* 2157 04547 2158 lsl120 null 04547 4331 00 0 2159 dis 04550 4 07 227 4777 2160 lda a.q007-*,* (lastat) ? rcv ? 04551 0 75 004 4555 2161 tmi lsl140-* yes 04552 2162 lsl130 null 04552 0 04 160 4732 2163 ldaq asicw-* 04553 3 14 014 0 2164 staq h.aicw,3 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 89 lsla -- initialize for low speed line adapter 04554 0 71 773 4547 2165 tra lsl120-* 04555 2166 lsl140 null 04555 0 31 234 5011 2167 cana l.q004-* (ptro) ? rcv & ptro ? 04556 0 64 002 4560 2168 tnz lsl150-* yes 04557 0 71 773 4552 2169 tra lsl130-* 2170 04560 2171 lsl150 null 04560 4 10 220 5000 2172 tsy a.q008-*,* (rstclk) 2173 04561 0 60 141 4722 2174 cioc ipcw-* initialize the sla 2175 04562 0 03 152 4734 2176 ldx2 licw1-* search for 1st stx in 1st 3 chars 04563 673 002 0 2177 ila stx 04564 2 27 200 0 2178 cmpa 0,2,b.0 04565 0 74 013 4600 2179 tze lsl160-* 04566 273 300 0 2180 iacx2 0,b.1 04567 2 27 200 0 2181 cmpa 0,2,b.0 04570 0 74 010 4600 2182 tze lsl160-* 04571 273 300 0 2183 iacx2 0,b.1 04572 2 27 200 0 2184 cmpa 0,2,b.0 04573 0 74 005 4600 2185 tze lsl160-* 04574 4 10 202 4776 2186 tsy a.q006-*,* (iwcon) 04575 0 06010 1 2187 zero lmicw2 "no stx in received data" eeeeeeeeeeeeeee 04576 2331 00 0 2188 nop don't loop if no console 04577 0 10 713 4512 2189 tsy lsl100-* 2190 04600 2191 lsl160 null 04600 0 56 164 4764 2192 stz ltemp-* count number of characters between 04601 2193 lsl170 null 04601 273 300 0 2194 iacx2 0,b.1 1st stx and 2nd stx 04602 2 27 200 0 2195 cmpa 0,2,b.0 04603 0 74 003 4606 2196 tze lsl180-* 04604 0 76 160 4764 2197 aos ltemp-* 04605 0 71 774 4601 2198 tra lsl170-* 2199 04606 2200 lsl180 null 04606 0 07 156 4764 2201 lda ltemp-* ? actual speed = desired speed ? 04607 773 772 0 2202 iaa -6 04610 0 27 153 4763 2203 cmpa lnbrts-* 04611 0 74 003 4614 2204 tze lsl190-* yes 04612 4 71 001 4613 2205 tra 1,* end of binary card 00000047 04613 0 03312 1 2206 ind stop11 "lsla actual <> desired speed" eeeeeeeeee 2207 2208 ********************************************************* 2209 * set up things now that speed is known 2210 ********************************************************* 2211 04614 2212 lsl190 null 04614 0 07 147 4763 2213 lda lnbrts-* 04615 422 064 0 2214 icmpa 52 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 90 lsla -- initialize for low speed line adapter 04616 0 74 014 4632 2215 tze lsl200-* 2216 2217 set up for 2400 bpi 2218 04617 0 07 175 5014 2219 lda lcmpa1-* 04620 0 17 331 5151 2220 sta lsl460-* 04621 0 04 123 4744 2221 ldaq licw5-* 04622 0 14 134 4756 2222 staq lcricw-* 04623 0 04 125 4750 2223 ldaq lcslow-* 04624 0 14 126 4752 2224 staq lcficw-* 04625 0 04 111 4736 2225 ldaq licw2-* 04626 3 14 004 0 2226 staq h.sic0,3 04627 0 07 163 5012 2227 lda l.q005-* (0,b.0) 04630 0 17 134 4764 2228 sta ltemp-* 04631 0 71 013 4644 2229 tra lsl210-* 2230 2231 set up for 4800 bpi 2232 04632 2233 lsl200 null 04632 0 07 163 5015 2234 lda lcmpa2-* 04633 0 17 316 5151 2235 sta lsl460-* 04634 0 04 112 4746 2236 ldaq licw6-* 04635 0 14 121 4756 2237 staq lcricw-* 04636 0 04 116 4754 2238 ldaq lcfast-* 04637 0 14 113 4752 2239 staq lcficw-* 04640 0 04 102 4742 2240 ldaq licw4-* 04641 3 14 004 0 2241 staq h.sic0,3 04642 0 07 151 5013 2242 lda l.q006-* (15,b.0) 04643 0 17 121 4764 2243 sta ltemp-* 2244 2245 ********************************************************* 2246 * determine setting of "long/short frame" switch 2247 ********************************************************* 2248 04644 2249 lsl210 null 04644 0 04 074 4740 2250 ldaq licw3-* 04645 3 14 000 0 2251 staq h.ric0,3 04646 0 04 064 4732 2252 ldaq asicw-* 04647 3 14 014 0 2253 staq h.aicw,3 2254 04650 0 60 060 4730 2255 cioc srpcw-* set rcv & snd modes 2256 04651 0 07 137 5010 2257 lda l.q003-* (=3000) 04652 0 47 003 4655 2258 ldq 3 04653 4 10 117 4772 2259 tsy a.q002-*,* (setclk) 04654 0 71 007 4663 2260 tra lsl220-* 04655 0 04656 1 2261 ind *+1 04656 0 00000 0 2262 ind ** 04657 4 10 117 4776 2263 tsy a.q006-*,* (iwcon) 04660 0 06012 1 2264 zero lmicw3 "no response after set rcv & snd" eeeeeee 04661 2331 00 0 2265 nop don't loop if no console assm 01 12-10-82 15.874 init - fnp initialization module for multics page 91 lsla -- initialize for low speed line adapter end of binary card 00000048 04662 0 10 630 4512 2266 tsy lsl100-* 2267 04663 2268 lsl220 null 04663 4331 00 0 2269 dis 04664 4 07 113 4777 2270 lda a.q007-*,* (lastat) ? rcv ? 04665 0 75 010 4675 2271 tmi lsl250-* yes 04666 0 31 123 5011 2272 cana l.q004-* (ptro) ? snd & ptro ? 04667 0 64 004 4673 2273 tnz lsl240-* yes 04670 2274 lsl230 null 04670 0 04 042 4732 2275 ldaq asicw-* 04671 3 14 014 0 2276 staq h.aicw,3 04672 0 71 771 4663 2277 tra lsl220-* 2278 04673 2279 lsl240 null 04673 0 60 033 4726 2280 cioc rpcw-* 04674 0 71 774 4670 2281 tra lsl230-* 2282 04675 2283 lsl250 null 04675 0 31 114 5011 2284 cana l.q004-* (ptro) ? rcv & ptro ? 04676 0 74 772 4670 2285 tze lsl230-* no 2286 04677 0 60 023 4722 2287 cioc ipcw-* initialize the sla 2288 04700 4 10 100 5000 2289 tsy a.q008-*,* (rstclk) 2290 2291 ********************************************************* 2292 * examine data just received to determine setting 2293 * of the "long/short frame" switch 2294 ********************************************************* 2295 04701 0 03 033 4734 2296 ldx2 licw1-* search for 1st stx 04702 2297 lsl260 null 04702 673 002 0 2298 ila stx 04703 2299 lsl270 null 04703 2 27 200 0 2300 cmpa 0,2,b.0 ? stx ? 04704 0 74 003 4707 2301 tze lsl280-* yes 04705 273 300 0 2302 iacx2 0,b.1 04706 0 71 775 4703 2303 tra lsl270-* 2304 04707 2305 lsl280 null 04707 4 23 072 5001 2306 cmpx2 a.q009-*,* (lstxz) did i get the dummy stx ? 04710 0 64 005 4715 2307 tnz lsl290-* no 04711 4 10 065 4776 2308 tsy a.q006-*,* (iwcon) 04712 0 06014 1 2309 zero lmicw4 "stx not found in input data" 04713 2331 00 0 2310 nop don't loop if no console 04714 0 10 576 4512 2311 tsy lsl100-* 2312 04715 2313 lsl290 null 04715 673 101 0 2314 ila 65 (101) ? start of test frame ? 04716 2 27 300 0 2315 cmpa 0,2,b.1 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 92 lsla -- initialize for low speed line adapter 04717 0 74 100 5017 2316 tze lsl300-* yes 04720 273 300 0 2317 iacx2 0,b.1 no, check next frame 04721 0 71 761 4702 2318 tra lsl260-* assm 01 12-10-82 15.874 init - fnp initialization module for multics page 93 lsla -- initialize for low speed line adapter 2319 eject 2320 even starting data 04722 2321 even 2322 04722 300000 0 2323 ipcw vfd 2/1,4/initop,12/0,18/0 04723 000000 0 04724 230000 0 2324 cpcw vfd 2/1,4/reqcst,12/0,18/0 04725 000000 0 04726 200000 0 2325 rpcw vfd 2/1,16/0,18/rcv+dtr 04727 000440 0 04730 200000 0 2326 srpcw vfd 2/1,16/0,18/snd+rcv+dtr+rts end of binary card 00000049 04731 000660 0 04732 1 05332 1 2327 asicw icw lastat,w.2,1 04733 000001 0 04734 2 05637 1 2328 licw1 icw lrbuf1,b.0,116 04735 000164 0 04736 2 05443 1 2329 licw2 icw lsmsg,b.0,40 04737 000050 0 04740 2 05637 1 2330 licw3 icw lrbuf1,b.0,190 04741 000276 0 04742 2 05443 1 2331 licw4 icw lsmsg,b.0,70 04743 000106 0 04744 2 05637 1 2332 licw5 icw lrbuf1,b.0,90 04745 000132 0 04746 2 05637 1 2333 licw6 icw lrbuf1,b.0,180 04747 000264 0 04750 2 05404 1 2334 lcslow icw lcnfrm,b.0,29 04751 000035 0 04752 2 00000 0 2335 lcficw icw **,b.0,** 04753 000000 0 04754 2 05404 1 2336 lcfast icw lcnfrm,b.0,59 04755 000073 0 04756 2 00000 0 2337 lcricw icw **,b.0,** 04757 000000 0 04760 2338 lfig bss 2 1st and 2nd words of "fig" 2339 04762 2340 ltryct bss 1 04763 2341 lnbrts bss 1 # time-slots (22 or 52) not incl t&d slot 04764 2342 ltemp bss 1 04765 000000 0 2343 lflg1 oct 0 04766 0336 00 0 2344 lals als 0 04767 073 000 0 2345 lsel sel 0 04770 0 04245 1 2346 lchnrp zero clchnr updated to point to next free entry 04771 0 03200 3 2347 a.q001 ind exist 04772 0 01472 1 2348 a.q002 ind setclk 04773 0 04367 1 2349 a.q003 ind simsw 04774 2 05637 1 2350 a.q004 zero lrbuf1,b.0 04775 0 05637 1 2351 a.q005 ind lrbuf1 04776 0 04370 1 2352 a.q006 ind iwcon 04777 0 05332 1 2353 a.q007 ind lastat assm 01 12-10-82 15.874 init - fnp initialization module for multics page 94 lsla -- initialize for low speed line adapter 05000 0 01503 1 2354 a.q008 ind rstclk 05001 0 06004 1 2355 a.q009 ind lstxz 05002 0 05406 1 2356 a.q010 ind lcnfrm+2 end of binary card 00000050 05003 0 05372 1 2357 a.q011 ind lslano 05004 0 01660 1 2358 a.q012 ind iomch 2359 2360 05005 0 00500 0 2361 l.q001 zero l1mb 05006 606004 0 2362 l.q002 oct 606004,010026 05007 010026 0 05010 005670 0 2363 l.q003 dec 3000 05011 002000 0 2364 l.q004 vfd 18/ptro 05012 2 00000 0 2365 l.q005 zero 0,b.0 05013 2 00017 0 2366 l.q006 zero 15,b.0 2367 2368 05014 2 27 316 0 2369 lcmpa1 cmpa 14,2,b.1 05015 2 27 335 0 2370 lcmpa2 cmpa 29,2,b.1 2371 05016 000000 0 2372 lslhcr vfd 3/0,15/** lsla hardware comm reg base addr assm 01 12-10-82 15.874 init - fnp initialization module for multics page 95 lsla -- initialize for low speed line adapter 2373 eject 2374 ********************************************************* 2375 * set up hwcm to send configuration request frames 2376 ********************************************************* 2377 05017 2378 lsl300 null 05017 673 773 0 2379 ila -5 set re-try count for 5 attempts 05020 0 17 315 5335 2380 sta lerct1-* 2381 05021 2382 lsl310 null 05021 273 316 0 2383 iacx2 14,b.1 05022 0 02 742 4764 2384 adcx2 ltemp-* 05023 2 07 300 0 2385 lda 0,2,b.1 get ch following 2nd stx 05024 422 102 0 2386 icmpa 66 (102) ? short frame ? 05025 0 74 007 5034 2387 tze lsl320-* yes 05026 422 104 0 2388 icmpa 68 (104) ? long frame ? 05027 0 74 007 5036 2389 tze lsl330-* yes 05030 4 10 746 4776 2390 tsy a.q006-*,* (iwcon) 05031 0 06016 1 2391 zero lmicw5 "can't determine long/short frame" eeeeee 05032 2331 00 0 2392 nop don't loop if no console 05033 0 10 457 4512 2393 tsy lsl100-* 2394 05034 2395 lsl320 null 05034 0 76 300 5334 2396 aos lshort-* short frame 05035 0 71 004 5041 2397 tra lsl340-* 2398 05036 2399 lsl330 null 05036 0 56 276 5334 2400 stz lshort-* long frame 05037 673 002 0 2401 ila 2 05040 0 16 713 4753 2402 asa lcficw+1-* add 2 to tally for long frame 05041 2403 lsl340 null 05041 0 04 711 4752 2404 ldaq lcficw-* 05042 3 14 004 0 2405 staq h.sic0,3 05043 3 14 006 0 2406 staq h.sic1,3 2407 05044 2408 lsl350 null 05044 0 04 712 4756 2409 ldaq lcricw-* 05045 3 14 000 0 2410 staq h.ric0,3 05046 0 04 664 4732 2411 ldaq asicw-* 05047 3 14 014 0 2412 staq h.aicw,3 05050 0 07 327 5377 2413 lda ltdch-* insert 1st t&d command 05051 4 17 731 5002 2414 sta a.q010-*,* (lcnfrm+2) end of binary card 00000051 05052 0 56 712 4764 2415 stz ltemp-* 2416 2417 ********************************************************* 2418 * send configuration request frames 2419 ********************************************************* 2420 05053 4 20 720 4773 2421 szn a.q003-*,* (simsw) see if running in simulator 05054 0 74 104 5160 2422 tze lsl470-* yes, skip reading lsla assm 01 12-10-82 15.874 init - fnp initialization module for multics page 96 lsla -- initialize for low speed line adapter 05055 0 60 253 5330 2423 cioc spcw-* set snd mode 2424 05056 0 07 301 5357 2425 lda l.r001-* (=5000) 05057 0 47 003 5062 2426 ldq lsl360-* 05060 4 10 712 4772 2427 tsy a.q002-*,* (setclk) 05061 0 71 007 5070 2428 tra lsl370-* 05062 0 05063 1 2429 lsl360 ind *+1 05063 0 00000 0 2430 ind ** 05064 4 10 712 4776 2431 tsy a.q006-*,* (iwcon) 05065 0 06020 1 2432 zero lmicw6 "no response when config req frames sent" 05066 2331 00 0 2433 nop 05067 4 10 247 5336 2434 tsy a.r001-*,* (lsl100) 2435 05070 2436 lsl370 null 05070 4331 00 0 2437 dis wait for interrupt 05071 0 07 241 5332 2438 lda lastat-* ? rcv ? 05072 0 75 035 5127 2439 tmi lsl420-* yes 05073 0 31 716 5011 2440 cana l.q004-* (ptro) ? snd & ptro ? 05074 0 74 030 5124 2441 tze lsl410-* no 2442 05075 0 76 667 4764 2443 aos ltemp-* bump interrupt counter 05076 0 07 666 4764 2444 lda ltemp-* 05077 422 001 0 2445 icmpa 1 ? 1st snd interrupt ? 05100 0 64 006 5106 2446 tnz lsl380-* no 05101 0 07 277 5400 2447 lda ltdch+1-* yes. insert 2nd t&d command 05102 4 17 700 5002 2448 sta a.q010-*,* (lcnfrm+2) 05103 0 04 647 4752 2449 ldaq lcficw-* 05104 3 14 004 0 2450 staq h.sic0,3 05105 0 71 017 5124 2451 tra lsl410-* 2452 05106 2453 lsl380 null 05106 422 002 0 2454 icmpa 2 ? 2nd snd interrupt ? 05107 0 64 006 5115 2455 tnz lsl390-* no 05110 0 07 271 5401 2456 lda ltdch+2-* yes. insert 3rd t&d command 05111 4 17 671 5002 2457 sta a.q010-*,* (lcnfrm+2) 05112 0 04 640 4752 2458 ldaq lcficw-* 05113 3 14 006 0 2459 staq h.sic1,3 05114 0 71 010 5124 2460 tra lsl410-* 2461 05115 2462 lsl390 null 05115 422 003 0 2463 icmpa 3 ? 3rd snd interrupt ? 05116 0 64 005 5123 2464 tnz lsl400-* no 05117 0 07 263 5402 2465 lda ltdch+3-* yes. insert 4th t&d command 05120 4 17 662 5002 2466 sta a.q010-*,* (lcnfrm+2) 2467 end of binary card 00000052 05121 0 60 607 4730 2468 cioc srpcw-* turn on rcv mode (snd is on) 2469 05122 0 71 002 5124 2470 tra lsl410-* 2471 05123 2472 lsl400 null assm 01 12-10-82 15.874 init - fnp initialization module for multics page 97 lsla -- initialize for low speed line adapter 05123 0 60 603 4726 2473 cioc rpcw-* turn off snd mode (rcv is on) 2474 05124 2475 lsl410 null 05124 0 04 606 4732 2476 ldaq asicw-* 05125 3 14 014 0 2477 staq h.aicw,3 05126 0 71 742 5070 2478 tra lsl370-* 2479 05127 2480 lsl420 null 05127 0 31 662 5011 2481 cana l.q004-* (ptro) ? rcv & ptro ? 05130 0 74 774 5124 2482 tze lsl410-* no 2483 05131 4 10 647 5000 2484 tsy a.q008-*,* (rstclk) 2485 05132 0 60 570 4722 2486 cioc ipcw-* terminate all data transfer 2487 2488 ********************************************************* 2489 * the configuration frame should be in. examine it and 2490 * verify its authenticity. 2491 ********************************************************* 2492 05133 0 03 601 4734 2493 ldx2 licw1-* search for 1st stx 2494 05134 2495 lsl430 null 05134 673 002 0 2496 ila stx 05135 2 27 200 0 2497 cmpa 0,2,b.0 ? stx ? 05136 0 74 003 5141 2498 tze +3 yes 05137 273 300 0 2499 iacx2 0,b.1 05140 0 71 775 5135 2500 tra -3 2501 05141 4 23 640 5001 2502 cmpx2 a.q009-*,* (lstxz) ? did i find the dummy stx ? 05142 0 64 007 5151 2503 tnz lsl450-* no 05143 2504 lsl440 null 05143 0 76 172 5335 2505 aos lerct1-* yes, ? tried 5 times yet ? 05144 0 64 655 5021 2506 tnz lsl310-* no, try again 05145 4 10 631 4776 2507 tsy a.q006-*,* (iwcon) 05146 0 06022 1 2508 zero lmicw7 "no config frames in 5 tries" eeeeeeeeeee 05147 2331 00 0 2509 nop don't loop if no console 05150 4 10 166 5336 2510 tsy a.r001-*,* (lsl100) 2511 05151 2512 lsl450 null 05151 0 27 000 5151 2513 lsl460 cmpa ** (14,2,b.1) or (29,2,b.1) ? 2nd stx ? 2514 should be 29 or 59 chars later 05152 0 64 771 5143 2515 tnz lsl440-* no 2516 05153 2 07 300 0 2517 lda 0,2,b.1 05154 422 023 0 2518 icmpa 19 (=o23) ? t&d channel good ? 05155 0 74 003 5160 2519 tze lsl470-* yes 05156 273 300 0 2520 iacx2 0,b.1 bump pointer to search for next frame 05157 0 71 755 5134 2521 tra lsl430-* 2522 2523 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 98 lsla -- initialize for low speed line adapter 2524 ********************************************************* 2525 * scan the configuration data frame. initialize and 2526 * build tables based on the actual configuration. 2527 ********************************************************* 2528 05160 2529 lsl470 null 05160 0 50 210 5370 2530 stx3 lsvx3-* save hwcm address 05161 0 41 600 4761 2531 ldx3 lfig+1-* x3 points to lsla table to be built 05162 373 002 0 2532 iacx3 2 skip t & d slot 05163 673 000 0 2533 ila 0 05164 0 26 577 4763 2534 sba lnbrts-* 05165 0 17 577 4764 2535 sta ltemp-* 05166 273 201 0 2536 iacx2 1,b.0 skip over t & d 05167 673 001 0 2537 ila 1 initialize slot number end of binary card 00000053 05170 0 17 203 5373 2538 sta slotno-* 2539 x3 points to lsla table entry 2540 x2 points to current time slot 05171 0 56 203 5374 2541 stz ltibad-* zero tib address initially 2542 05172 2543 lsl480 null 05172 3 07 000 0 2544 lda lt.flg,3 get config supplied from config deck 05173 0 17 202 5375 2545 sta lsteo-* save it for later comparison 2546 05174 3 56 000 0 2547 stz lt.flg,3 zero out flag word 05175 3 56 001 0 2548 stz lt.tib,3 zero tib address 05176 2 07 200 0 2549 lda 0,2,b.0 get contents of slot 05177 222 040 0 2550 icana ntimpb is this slot implemented? 05200 0 74 017 5217 2551 tze lsl490-* 2552 unimplemented slot 05201 673 007 0 2553 ila undef 7 (undefined slot id) 05202 3 72 000 0 2554 orsa lt.flg,3 05203 0 27 172 5375 2555 cmpa lsteo-* was this slot in config deck? 05204 0 74 110 5314 2556 tze lsl590-* no, everything's cool 2557 otherwise we should report the discrepancy 05205 4 10 140 5345 2558 tsy a.r009-*,* (getchn) 05206 4 57 142 5350 2559 stq a.r012-*,* (lmsg8+2) 05207 0 43 164 5373 2560 ldx1 slotno-* get slot number 05210 0 42 136 5346 2561 adcx1 a.r010-* (hsasbc) index into list of ascii numbers 05211 1 07 000 0 2562 lda 0,1 05212 4 17 137 5351 2563 sta a.r013-*,* (lmsg8+6) -- put slot number in message 05213 4 10 134 5347 2564 tsy a.r011-*,* (iwcon) 05214 0 06024 1 2565 zero lmicw8 05215 2331 00 0 2566 nop 05216 0 71 076 5314 2567 tra lsl590-* done with slot 2568 05217 2569 lsl490 null 05217 0 43 155 5374 2570 ldx1 ltibad-* get tib address from previous slot 05220 0 74 010 5230 2571 tze lsl500-* if zero, there is no previous slot 05221 2 27 377 0 2572 cmpa -1,2,b.1 if there was a previous one, is this one the same 05222 0 64 006 5230 2573 tnz lsl500-* assm 01 12-10-82 15.874 init - fnp initialization module for multics page 99 lsla -- initialize for low speed line adapter 2574 yes, get previous entry's slot id 05223 3 07 776 0 2575 lda -2,3 05224 773 001 0 2576 iaa 1 +1 for second (or third) slot 05225 3 17 000 0 2577 sta lt.flg,3 of same line 05226 3 43 777 0 2578 ldx1 -1,3 get previous entry's tib addr 05227 0 71 064 5313 2579 tra lsl580-* go wrap up slot 2580 05230 2581 lsl500 null 2582 new line, we must make tib for it 05230 222 002 0 2583 icana ascii ascii or ibm-type code? 05231 0 64 004 5235 2584 tnz lsl510-* if ascii, ok 05232 0 07 126 5360 2585 lda l.r002-* (ltfibm) 05233 3 72 000 0 2586 orsa lt.flg,3 else turn on ibm bit in lsla table entry 05234 2 07 200 0 2587 lda 0,2,b.0 get slot contents back 05235 2588 lsl510 null 05235 2 27 300 0 2589 cmpa 0,2,b.1 is following slot the same? 05236 0 74 005 5243 2590 tze lsl520-* end of binary card 00000054 05237 673 000 0 2591 ila lt10 no, this must be 10 cps line 05240 3 72 000 0 2592 orsa lt.flg,3 05241 673 002 0 2593 ila 2 get 110 baud type code 05242 0 71 017 5261 2594 tra lsl550-* go to common tib-making code 2595 05243 2596 lsl520 null two slots are the same 05243 2 27 201 0 2597 cmpa 1,2,b.0 is the third one the same also? 05244 0 74 012 5256 2598 tze lsl540-* yes, go set for 30 cps 2599 no, it must be 15 cps 05245 673 005 0 2600 ila lt15a 05246 3 72 000 0 2601 orsa lt.flg,3 05247 3 07 000 0 2602 lda lt.flg,3 ibm code? 05250 0 31 110 5360 2603 cana l.r002-* (ltfibm) 05251 0 74 003 5254 2604 tze lsl530-* 05252 673 003 0 2605 ila 3 yes, call it 133 baud 05253 0 71 006 5261 2606 tra lsl550-* 05254 2607 lsl530 null no, call it 150 baud 05254 673 004 0 2608 ila 4 05255 0 71 004 5261 2609 tra lsl550-* 2610 05256 2611 lsl540 null 30 cps 05256 673 001 0 2612 ila lt30a 05257 3 72 000 0 2613 orsa lt.flg,3 05260 673 005 0 2614 ila 5 and therefore 300 baud 2615 05261 2616 lsl550 null come here for all speeds 05261 0 17 115 5376 2617 sta lbaud-* save baud rate code 05262 0 07 113 5375 2618 lda lsteo-* pick up config deck slot entry 05263 3 27 000 0 2619 cmpa lt.flg,3 does it match actual configuration? 05264 0 74 017 5303 2620 tze lsl570-* ok, cool 05265 422 007 0 2621 icmpa undef was line left out of config deck altogether? 05266 0 74 003 5271 2622 tze lsl560-* yes, report it and continue 05267 4 71 001 5270 2623 tra 1,* else complain and die assm 01 12-10-82 15.874 init - fnp initialization module for multics page 100 lsla -- initialize for low speed line adapter 05270 0 03317 1 2624 ind stop13 2625 05271 2626 lsl560 null 05271 4 10 054 5345 2627 tsy a.r009-*,* (getchn) 05272 4 57 060 5352 2628 stq a.r014-*,* (lmsg9+2) - save channel number in message 05273 0 43 100 5373 2629 ldx1 slotno-* 05274 0 42 052 5346 2630 adcx1 a.r010-* (hsasbc) 05275 1 07 000 0 2631 lda 0,1 get ascii for slot number 05276 4 17 055 5353 2632 sta a.r015-*,* (lmsg9+6) -- put it in message 05277 4 10 050 5347 2633 tsy a.r011-*,* (iwcon) 05300 0 06026 1 2634 zero lmicw9 05301 2331 00 0 2635 nop 05302 0 71 012 5314 2636 tra lsl590-* don't make a tib for this one 2637 05303 2638 lsl570 null all right, we're ready to make the tib 05303 0 07 073 5376 2639 lda lbaud-* get baud rate code back 05304 0 37 055 5361 2640 ora l.r003-* (=o000400) set async bit in baud rate code 05305 0 47 065 5372 2641 ldq lslano-* get lsla number end of binary card 00000055 05306 4336 06 0 2642 qls 6 05307 0 46 064 5373 2643 adq slotno-* and slot number to form line number 05310 4 10 027 5337 2644 tsy a.r002-*,* (maktib) 2645 tib is now made, address is in x1 05311 1 50 030 0 2646 stx3 t.ftse,1 put lsla entry address in tib 05312 0 53 062 5374 2647 stx1 ltibad-* save tib address for future use 2648 05313 2649 lsl580 null come here whether or not it's the first slot 05313 3 53 001 0 2650 stx1 lt.tib,3 put tib address in lsla table entry 2651 2652 05314 2653 lsl590 null move on to next slot 05314 273 300 0 2654 iacx2 0,b.1 bump pointer to next slot 05315 373 002 0 2655 iacx3 2 next lsla table entry 05316 0 76 446 4764 2656 aos ltemp-* if there are any more 05317 0 65 003 5322 2657 tpl lsl600-* there aren't 05320 0 76 053 5373 2658 aos slotno-* there are, bump slot number 05321 0 71 651 5172 2659 tra lsl480-* 2660 2661 come here when we're all through 2662 filling in tibs and lsla table entries 05322 2663 lsl600 null 2664 05322 673 777 0 2665 ila -1 set last lsla table entry to 777777 05323 3 17 000 0 2666 sta 0,3 in both words 05324 3 17 001 0 2667 sta 1,3 05325 0 41 043 5370 2668 ldx3 lsvx3-* restore pointer to hwcm 2669 05326 4 60 026 5354 2670 cioc a.r016-*,* (ipcw) - initialize sla 2671 05327 0 71 166 5515 2672 tra lsl610-* jump over the following data area assm 01 12-10-82 15.874 init - fnp initialization module for multics page 101 lsla -- initialize for low speed line adapter 2673 eject 2674 even starting data 05330 2675 even 2676 05330 200000 0 2677 spcw vfd 2/1,16/0,18/snd+dtr+rts 05331 000260 0 05332 2678 lastat bss 2 2679 000040 2680 ntimpb bool 40 000002 2681 ascii bool 2 2682 05334 2683 lshort bss 1 =0 = long, <>0 = short 05335 2684 lerct1 bss 1 2685 05336 0 04512 1 2686 a.r001 ind lsl100 05337 0 03065 1 2687 a.r002 ind maktib 05340 0 11400 3 2688 a.r004 ind getbuf 05341 0 04763 1 2689 a.r005 ind lnbrts 05342 0 01660 1 2690 a.r006 ind iomch 05343 0 01557 1 2691 a.r007 zero savein 05344 0 14000 3 2692 a.r008 ind ignore 05345 0 03334 1 2693 a.r009 ind getchn 05346 0 02662 1 2694 a.r010 ind hsasbc used for converting slotno to ascii 05347 0 04370 1 2695 a.r011 ind iwcon 05350 0 06247 1 2696 a.r012 ind lmsg8+2 for channel no. in msg8 05351 0 06253 1 2697 a.r013 ind lmsg8+6 subch no. in same 05352 0 06267 1 2698 a.r014 ind lmsg9+2 likewise for msg9 05353 0 06273 1 2699 a.r015 ind lmsg9+6 05354 0 04722 1 2700 a.r016 ind ipcw initialize pcw 05355 0 00653 0 2701 a.r017 ind .criom 05356 1 05506 1 2702 a.r018 ind lsfcms,1 2703 end of binary card 00000056 05357 011610 0 2704 l.r001 dec 5000 05360 000100 0 2705 l.r002 vfd 18/ltfibm 05361 000400 0 2706 l.r003 oct 000400 05362 3 00001 0 2707 l.r004 zero 1,b.1 05363 777775 0 2708 l.r005 vfd 18/nsfsnd 05364 777776 0 2709 l.r006 vfd 18/nsfslo 05365 000001 0 2710 l.r007 vfd 18/sffslo 05366 077777 0 2711 l.r008 oct 77777 to eliminate character addressing 05367 3 00002 0 2712 l.r009 zero 2,b.1 2713 05370 2714 lsvx3 bss 1 05371 2715 ltemp1 bss 1 05372 2716 lslano bss 1 lsla number 05373 2717 slotno bss 1 current slot number 05374 2718 ltibad bss 1 tib address 05375 2719 lsteo bss 1 old lsla table entry derived from config deck 05376 2720 lbaud bss 1 temp for storing baud rate code 2721 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 102 lsla -- initialize for low speed line adapter 05377 002233 0 2722 ltdch vfd 9/stx,9/esc+pbit 05400 002054 0 2723 vfd 9/stx,o9/054 05401 002233 0 2724 vfd 9/stx,9/esc+pbit 05402 002051 0 2725 vfd 9/stx,o9/051 05403 070000 0 2726 ladacn vfd 18/fadacn 2727 2728 detail off 2729 05404 2730 lcnfrm null 05404 026026 0 2731 vfd 9/sync,9/sync,9/sync,9/sync,9/stx,9/** 05407 2732 dup 1,28 05407 037037 0 2733 vfd 9/us,9/us end of binary card 00000057 2734 05443 2735 lsmsg null 05443 026026 0 2736 vfd 9/sync,9/sync,9/sync,9/sync,9/stx,o9/101 05446 2737 dup 1,13 05446 037037 0 2738 vfd 9/us,9/us 05463 037002 0 2739 vfd 9/us,9/stx,o9/102,9/stx,o9/104,9/us 05466 2740 dup 1,12 05466 037037 0 2741 vfd 9/us,9/us end of binary card 00000058 05502 037002 0 2742 vfd 9/us,9/stx,o9/102,9/stx,o9/104,9/us 2743 2744 detail on 2745 05505 0 14400 3 2746 ljmptb ind lslajt address of first lsla jump table 05506 0 00600 3 2747 lsfcms ind lsf1 lsla software comm. regions 05507 0 01000 3 2748 ind lsf2 05510 0 01200 3 2749 ind lsf3 05511 0 01400 3 2750 ind lsf4 05512 0 01600 3 2751 ind lsf5 05513 0 02000 3 2752 ind lsf6 2753 05514 000000 0 2754 lzero oct 0 2755 000037 2756 fill bool 37 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 103 lsla -- initialize for low speed line adapter 2757 eject 2758 ********************************************************* 2759 * generate needed words in hardware and software comm 2760 * regions and set active status interrupt vector 2761 * note that initial (sync) input frame will be 2 chars 2762 * shorter than normal, so primary receive icw will 2763 * have its tally and address altered accordingly 2764 ********************************************************* 2765 05515 2766 lsl610 null 05515 0 43 655 5372 2767 ldx1 lslano-* current lsla no. 05516 4 03 640 5356 2768 ldx2 a.r018-*,* (lsfcms,1) address of its sfcm 05517 3 13 011 0 2769 stx2 h.sfcm,3 2770 05520 473 100 0 2771 ilq 2*bufsiz get 2 adjacent input buffers 05521 4 10 617 5340 2772 tsy a.r004-*,* (getbuf) 05522 2773 die 1 die if we couldn't (impossible at this stage) 05523 3 56 001 0 2774 stz 1,3 wipe out size cell 05524 2 50 004 0 2775 stx3 sf.bfc,2 put addr of first one in sfcm's current 2776 input pointer 05525 3333 00 0 2777 cx3a and hwcm's primary receive icw 05526 0 41 642 5370 2778 ldx3 lsvx3-* restore hwcm address 2779 05527 4 47 612 5341 2780 ldq a.r005-*,* (lnbrts) get number of time slots 05530 573 005 0 2781 iaq 5 + 7 for tally - 2 for initial sync frame 05531 0 06 636 5367 2782 ada l.r009-* (2,b.1) 05532 3 14 000 0 2783 staq h.ric0,3 store primary receive icw 05533 573 002 0 2784 iaq 2 secondary icw is normal 05534 773 037 0 2785 iaa bufsiz-1 and so points to word 1 of second buffer 05535 3 14 002 0 2786 staq h.ric1,3 05536 0 34 630 5366 2787 ana l.r008-* (=o077777) get rid of character addressing 05537 773 777 0 2788 iaa -1 and point back to beginning of buffer 05540 2 17 003 0 2789 sta sf.ioc,2 use this for i/o chain pointer 05541 2 57 014 0 2790 stq sf.ity,2 save tally in sfcm 2791 2792 2793 (lnbrts) generate and store output icw's 05542 0 20 572 5334 2794 szn lshort-* 05543 0 64 002 5545 2795 tnz 2 05544 573 002 0 2796 iaq 2 add two chars to output tally for long frames 05545 2 57 015 0 2797 stq sf.oty,2 05546 2 07 013 0 2798 lda sf.otb,2 05547 0 06 613 5362 2799 ada l.r004-* (1,b.1) 05550 3 14 004 0 2800 staq h.sic0,3 end of binary card 00000059 05551 773 040 0 2801 iaa bufsiz 05552 3 14 006 0 2802 staq h.sic1,3 2803 05553 2 04 016 0 2804 ldaq sf.sic,2 get and store active status icw in hwcm, 05554 3 14 014 0 2805 staq h.aicw,3 clear config status words 05555 3 56 016 0 2806 stz h.cnfg,3 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 104 lsla -- initialize for low speed line adapter 05556 3 56 017 0 2807 stz h.cnfg+1,3 2808 05557 4 07 563 5342 2809 lda a.r006-*,* (iomch) plug the config status iv with a pointer 05560 0336 01 0 2810 als 1 to "ignore" 05561 4 06 561 5342 2811 ada a.r006-*,* (iomch) 05562 0 06 561 5343 2812 ada a.r007-* (savein) 05563 4332 00 0 2813 cax1 05564 0 07 606 5372 2814 lda lslano-* get current lsla no. 05565 0336 01 0 2815 als 1 05566 0 06 604 5372 2816 ada lslano-* times 3 05567 0 06 716 5505 2817 ada ljmptb-* point to corresponding jump table 05570 1 17 001 0 2818 sta 1,1 put its address in terminate int vector 05571 0 07 553 5344 2819 lda a.r008-* (ignore) 05572 1 17 002 0 2820 sta 2,1 2821 05573 3333 00 0 2822 cx3a generate and store input and output 05574 2 17 010 0 2823 sta sf.icw,2 pointers in sfcm 05575 773 004 0 2824 iaa 4 05576 2 17 011 0 2825 sta sf.ocw,2 2826 set flags in sfcm 05577 0 07 564 5363 2827 lda l.r005-* (^sffsnd) 05600 2 32 005 0 2828 ansa sf.flg,2 turn off "second buffer" flag 05601 4 07 540 5341 2829 lda a.r005-*,* (lnbrts) 05602 422 026 0 2830 icmpa 22 fast or slow (based on frame size)? 05603 0 74 004 5607 2831 tze lsl620-* slow 05604 0 07 560 5364 2832 lda l.r006-* (^sffslo) 05605 2 32 005 0 2833 ansa sf.flg,2 fast, turn off "slow" flag 05606 0 71 003 5611 2834 tra lsl630-* 2835 for a slow frame, turn it on 05607 2836 lsl620 null 05607 0 07 556 5365 2837 lda l.r007-* (sffslo) 05610 2 72 005 0 2838 orsa sf.flg,2 05611 2839 lsl630 null 2840 2841 *************************************************** 2842 * get lsla table address from iom table and store it 2843 * in software comm. region 2844 *************************************************** 2845 05611 4 07 531 5342 2846 lda a.r006-*,* (iomch) 05612 0336 01 0 2847 als 1 times 2 05613 4 06 542 5355 2848 ada a.r017-*,* (.criom) 05614 4332 00 0 2849 cax1 05615 1 07 001 0 2850 lda 1,1 get lsla table address 05616 2 17 012 0 2851 sta sf.ltb,2 put in sfcm assm 01 12-10-82 15.874 init - fnp initialization module for multics page 105 lsla -- initialize for low speed line adapter 2852 eject 2853 2854 ********************************************************* 2855 * put null chars in two output frames so that we 2856 * leave datasets in their current state. 2857 ********************************************************* 2858 05617 3 43 004 0 2859 ldx1 h.sic0,3 x1 points to 1st output frame end of binary card 00000060 05620 173 203 0 2860 iacx1 3,b.0 (bump to 1st data time-slot) 05621 3 03 006 0 2861 ldx2 h.sic1,3 x2 points to 2nd output frame 05622 273 203 0 2862 iacx2 3,b.0 (bump to 1st data time-slot) 05623 673 000 0 2863 ila 0 ltemp is used to terminate the loop 05624 4 26 515 5341 2864 sba a.r005-*,* (lnbrts) 05625 0 17 544 5371 2865 sta ltemp1-* 2866 05626 2867 lsl640 null 05626 673 037 0 2868 ila fill get a fill character 05627 1 17 200 0 2869 sta 0,1,b.0 fill in both output frames 05630 2 17 200 0 2870 sta 0,2,b.0 .. 05631 173 300 0 2871 iacx1 0,b.1 bump pointers to next slot 05632 273 300 0 2872 iacx2 0,b.1 .. 05633 0 76 536 5371 2873 aos ltemp1-* end of frame ? 05634 0 75 772 5626 2874 tmi lsl640-* no 05635 4 71 001 5636 2875 tra 1,* yes, return to main program 05636 0 01546 1 2876 ind itl020 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 106 lsla -- initialize for low speed line adapter 2877 eject 2878 000233 2879 escodd bool esc+pbit 000302 2880 rtsodd bool 102+pbit 2881 05637 002023 0 2882 lrbuf1 oct 002023 lsla readback register 05640 006006 0 2883 oct 006006,007007,006006,007007,006006,007007 05641 007007 0 05642 006006 0 05643 007007 0 05644 006006 0 05645 007007 0 05646 006006 0 2884 oct 006006,007007,006006,007007,006006,007007 05647 007007 0 05650 006006 0 05651 007007 0 05652 006006 0 05653 007007 0 05654 006006 0 2885 oct 006006,007007,006006,007007,006006,007007 05655 007007 0 05656 006006 0 05657 007007 0 05660 006006 0 05661 007007 0 05662 006006 0 2886 oct 006006,007007,006006,007007,006006,007007 05663 007007 0 05664 006006 0 05665 007007 0 05666 006006 0 end of binary card 00000061 05667 007007 0 05670 006006 0 2887 oct 006006,007007 05671 007007 0 05672 003000 0 2888 oct 003000 05673 2889 bss 72 06003 002000 0 2890 vfd 9/stx dummy to be found if none in readback buffer 06004 2 06003 1 2891 lstxz zero *-1,b.0 2892 06005 233100 0 06006 2893 even 2894 06006 2 06030 1 2895 lmicw1 icw lmsg1-1,b.0,38 06007 000046 0 06010 2 06052 1 2896 lmicw2 icw lmsg2-1,b.0,36 06011 000044 0 06012 2 06073 1 2897 lmicw3 icw lmsg3-1,b.0,44 06013 000054 0 06014 2 06120 1 2898 lmicw4 icw lmsg4-1,b.0,40 06015 000050 0 06016 2 06143 1 2899 lmicw5 icw lmsg5-1,b.0,44 06017 000054 0 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 107 lsla -- initialize for low speed line adapter 06020 2 06170 1 2900 lmicw6 icw lmsg6-1,b.0,52 06021 000064 0 06022 2 06221 1 2901 lmicw7 icw lmsg7-1,b.0,40 06023 000050 0 06024 2 06244 1 2902 lmicw8 icw lmsg8-1,b.0,34 06025 000042 0 06026 2 06264 1 2903 lmicw9 icw lmsg9-1,b.0,38 06027 000046 0 2904 2905 detail off 2906 06030 015012 0 2907 vfd 9/cr,9/lf 06031 114123 0 2908 lmsg1 aci 17,lsla -- no response after set rcv end of binary card 00000062 06052 015012 0 2909 vfd 9/cr,9/lf 06053 114123 0 2910 lmsg2 aci 16,lsla -- no stx in received data 06073 015012 0 2911 vfd 9/cr,9/lf 06074 114123 0 2912 lmsg3 aci 20,lsla -- no response after set rcv & snd end of binary card 00000063 06120 015012 0 2913 vfd 9/cr,9/lf 06121 114123 0 2914 lmsg4 aci 18,lsla -- stx not found in input data 06143 015012 0 2915 vfd 9/cr,9/lf 06144 114123 0 2916 lmsg5 aci 20,lsla -- can't determine long/short frame end of binary card 00000064 06170 015012 0 2917 vfd 9/cr,9/lf 06171 114123 0 2918 lmsg6 aci 24,lsla -- no response when config req frames sent 06221 015012 0 2919 vfd 9/cr,9/lf 06222 114123 0 2920 lmsg7 aci 18,lsla -- no config frames in 5 tries end of binary card 00000065 06244 015012 0 2921 vfd 9/cr,9/lf 06245 052103 0 2922 lmsg8 aci 15,*ch-xx,slot xx not configured 06264 015012 0 2923 vfd 9/cr,9/lf 06265 052103 0 2924 lmsg9 aci 17,*ch-xx,slot xx not in config deck end of binary card 00000066 06306 015012 0 2925 vfd 9/cr,9/lf 2926 2927 detail on assm 01 12-10-82 15.874 init - fnp initialization module for multics page 108 initialization main program 2928 ttls initialization main program 2929 2930 2931 ********************************************* 2932 * because the simulator does not fully 2933 * simulate the devices attached to the fnp, 2934 * it is sometimes necessary to know whether 2935 * or not the program is running on the real 2936 * fnp, or on the simulator. in order 2937 * to be able to tell this, the real fnp 2938 * does a 2939 * tra =(istart-1),* 2940 * while the simulator does a 2941 * tra =(istart),* 2942 * the sum effect of this is that the variable 2943 * simsw is non-zero if running on the real 2944 * machine. 2945 ********************************************** 2946 06307 4 50 115 6424 2947 stx3 a.t017-*,* (simsw) set flag indicating gicb entry 06310 2948 istart null 06310 3331 00 0 2949 inh inhibit interrupts <-><-><-><-><-><-><-><-><->< 2950 2951 ************************************************************** 2952 * clear all unused configured memory including extended memory 2953 ************************************************************** 2954 06311 4 07 103 6414 2955 lda a.t008-*,* (.crmem) get memory size 06312 4 17 101 6413 2956 sta a.t007-*,* (mvplmm) set lower memory maximum address 06313 0 17 135 6450 2957 sta istpcl-* stops memory clear loop 06314 0 27 124 6440 2958 cmpa l.t002-* (=32768) is last address above 32k? 06315 0 45 030 6345 2959 tnc itl100-* no. we have last address less than 32k 06316 0 07 122 6440 2960 lda l.t002-* (=32768) yes. calculate last address in lower 32k 06317 773 777 0 2961 iaa -1 06320 0 17 130 6450 2962 sta istpcl-* stops memory clear loop 06321 773 400 0 2963 iaa -256 account for paging window 06322 4 17 071 6413 2964 sta a.t007-*,* (mvplmm) set lower memory maximum address 2965 * 2966 * check pager operation 2967 06323 0 43 117 6442 2968 ldx1 l.t004-* (window) base of window 06324 1 56 000 0 2969 stz 0,1 clear test cells 06325 1 56 400 0 2970 stz -256,1 06326 4 41 067 6415 2971 ldx3 a.t009-*,* (.crpte) 06327 0 07 115 6444 2972 lda l.t006-* (=o100040) init page table to window page 77000 06330 0 26 111 6441 2973 sba l.t003-* (=o400) 06331 0 26 110 6441 2974 sba l.t003-* (=o400) 06332 3 17 000 0 2975 sta 0,3 06333 4 07 057 6412 2976 lda a.t006-*,* (.crcpt) init cpu pager 06334 4 17 055 6411 2977 sta a.t004-*,* (cptp) 06335 673 777 0 2978 ila -1 lets see where this goes assm 01 12-10-82 15.874 init - fnp initialization module for multics page 109 initialization main program 06336 1 17 000 0 2979 sta 0,1 store test value 06337 3 56 000 0 2980 stz 0,3 disable pager 06340 1 07 000 0 2981 lda 0,1 this is the real 77400, has it changed? 06341 0 64 043 6404 2982 tnz itl120-* yes. bad news 06342 1 07 400 0 2983 lda -256,1 this is where store should go 06343 422 777 0 2984 icmpa -1 is it correct? 06344 0 64 040 6404 2985 tnz itl120-* no. bad news 2986 06345 2987 itl100 null clear lower memory loop 06345 2 56 000 0 2988 stz 0,2 clear one word 06346 273 001 0 2989 iacx2 1 udate pointer end of binary card 00000067 06347 0 23 101 6450 2990 cmpx2 istpcl-* is clearing finished? 06350 0 64 775 6345 2991 tnz itl100-* no. continue clear 06351 2 56 000 0 2992 stz 0,2 yes. clear the last location 2993 06352 4 07 042 6414 2994 lda a.t008-*,* (.crmem) get memory size 06353 0 27 065 6440 2995 cmpa l.t002-* (=32768) is memory size over 32k? 06354 0 45 110 6464 2996 tnc itl130-* no. memory clearing is done 06355 773 001 0 2997 iaa 1 yes. calculate stop for memory clear loop 06356 0 17 072 6450 2998 sta istpcl-* 06357 0 43 063 6442 2999 ldx1 l.t004-* (window) get pointer to paged address space 06360 4 03 035 6415 3000 ldx2 a.t009-*,* (.crpte) get address of variable page table entry 06361 0 07 063 6444 3001 lda l.t006-* (=o100040) set up page table entry for window 06362 2 17 000 0 3002 sta 0,2 06363 0 41 056 6441 3003 ldx3 l.t003-* (=o400) set up counter 06364 0 07 062 6446 3004 lda iabsad-* absolute address value 3005 06365 3006 itl110 null clear one page of extended memory loop 06365 1 56 000 0 3007 stz 0,1 clear one word 06366 773 001 0 3008 iaa 1 increment absolute address value 06367 0 27 061 6450 3009 cmpa istpcl-* has the whole upper memory been written? 06370 0 74 103 6473 3010 tze itl140-* yes. extended memory clearing is done 06371 173 001 0 3011 iacx1 1 no. increment page pointer 06372 373 777 0 3012 iacx3 -1 done with this page? 06373 0 64 772 6365 3013 tnz itl110-* no. continue clearing 3014 06374 0 17 052 6446 3015 sta iabsad-* yes. save absolute address value 06375 2 07 000 0 3016 lda 0,2 current page table entry 06376 0 06 043 6441 3017 ada l.t003-* (=o400) point to next page in upper memroy 06377 2 17 000 0 3018 sta 0,2 hope the pager sees this 06400 0 07 046 6446 3019 lda iabsad-* restore absolute address value to a register 06401 0 43 041 6442 3020 ldx1 l.t004-* (window) re-init page pointer 06402 0 41 037 6441 3021 ldx3 l.t003-* (=o400) re-init counter 06403 0 71 762 6365 3022 tra itl110-* do the next page 3023 06404 3024 itl120 null 06404 0 76 043 6447 3025 aos ipgerr-* remember paging error 06405 0 71 144 6551 3026 tra itl180-* init iv's for console write 3027 06406 0 15401 3 3028 a.t001 ind setptw+1 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 110 initialization main program 06407 0 16200 3 3029 a.t002 ind skdms2 scheduler memory switch two 06410 0 16400 3 3030 a.t003 ind skdms3 scheduler memory switch three 06411 0 00475 0 3031 a.t004 ind cptp 06412 0 00701 0 3032 a.t006 ind .crcpt 06413 0 14600 3 3033 a.t007 ind mvplmm lower memory maximum address (in utilities) 06414 0 00651 0 3034 a.t008 ind .crmem memory size 06415 0 00702 0 3035 a.t009 ind .crpte end of binary card 00000068 06416 0 16600 3 3036 a.t010 ind skdms4 scheduler memory size switch four 06417 0 17000 3 3037 a.t011 ind skdms5 scheduler memory size switch five 06420 0 17200 3 3038 a.t012 ind skdms6 scheduler memory size switch six 06421 0 17400 3 3039 a.t013 ind skdms7 scheduler memory size switch seven 06422 0 03321 1 3040 a.t014 ind stop14 06423 0 00653 0 3041 a.t016 ind .criom 06424 0 04367 1 3042 a.t017 ind simsw 06425 0 01521 1 3043 a.t019 ind figtre 06426 0 03061 1 3044 a.t020 ind hsflen 06427 0 03063 1 3045 a.t021 ind htibln 06430 0 20200 3 3046 a.t022 ind trams2 trace memory size switch two 06431 0 16000 3 3047 a.t023 ind skdms1 scheduler memory size switch one 06432 0 06400 3 3048 a.t024 ind diams1 dia_man memory size switch 06433 0 12200 3 3049 a.t025 ind hslms1 hsla_man memory size switch 06434 0 02253 1 3050 a.t026 ind itlms1 init memory size switch 06435 0 03000 1 3051 a.t027 ind itlms2 init memory size switch 06436 0 03077 1 3052 a.t028 ind itlms3 init memory size switch 06437 0 20000 3 3053 a.t029 ind trams1 trace memory size switch one 3054 06440 100000 0 3055 l.t002 dec 32768 06441 000400 0 3056 l.t003 oct 400 06442 077400 0 3057 l.t004 vfd 18/window 06443 4 71 777 6442 3058 l.t005 tra -1,* 06444 100040 0 3059 l.t006 vfd 10/128,3/1,5/0 06445 2331 00 0 3060 l.t007 nop 3061 06446 100000 0 3062 iabsad oct 100000 06447 000000 0 3063 ipgerr oct 0 06450 000000 0 3064 istpcl oct 0 06451 000000 0 3065 itcerr oct 0 06452 000000 0 3066 itrcdm oct 0 dummy area used in case trace module is not 3067 configured 3068 000100 3069 pte.s bool 100 page table entry security bit 077400 3070 window bool 77400 3071 06453 233100 0 06454 3072 even 06454 0 00200 3 3073 hfvi ind hfv fault vector images 06455 0 00202 3 3074 ind hfv+2 06456 0 00204 3 3075 ind hfv+4 06457 0 00206 3 3076 ind hfv+6 06460 0 00210 3 3077 ind hfv+8 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 111 initialization main program 06461 0 00212 3 3078 ind hfv+10 06462 0 00214 3 3079 ind hfv+12 06463 0 00216 3 3080 ind hfv+14 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 112 initialization main program 3081 eject 3082 06464 3083 itl130 null 06464 4 56 726 6412 3084 stz a.t006-*,* (.crcpt) since there is less than 32k, insure end of binary card 00000069 06465 4 56 730 6415 3085 stz a.t009-*,* (.crpte) that last 256 words are usable. 06466 0 07 755 6443 3086 lda l.t005-* (tra -1,*) make setptw subroutine a nop 06467 4 17 717 6406 3087 sta a.t001-*,* (setptw+1) 06470 0 07 755 6445 3088 lda l.t007-* (=nop) get nop insturction 06471 4 17 745 6436 3089 sta a.t028-*,* (itlms3) put nop in init memory size switch three 06472 0 71 033 6525 3090 tra itl170-* 3091 06473 3092 itl140 null 06473 673 100 0 3093 ila pte.s turn on 'security' bit in ptw so 06474 2 72 000 0 3094 orsa 0,2 any reference to window will cause a store fault 3095 3096 ***************************************************************** 3097 * 3098 * there are tra's which assume 64k is not configured and bypass 3099 * code unique to a dn6670 with more than 32k memory . 3100 * these tra's are nop'ed if 64k has been configured. 3101 * 3102 ***************************************************************** 3103 06475 0 47 750 6445 3104 ldq l.t007-* (=nop) get nop instruction 3105 3106 3107 * dia_man 3108 06476 4 57 734 6432 3109 stq a.t024-*,* (diams1) dia_man memory size switch 3110 3111 * hsla_man 3112 06477 0 07 734 6433 3113 lda a.t025-* (hslms1) address of hsla_man memory size switch 06500 0 27 345 7045 3114 cmpa l.u004-* (=o776) is hsla_man module configured? 06501 0 74 002 6503 3115 tze itl150-* no 06502 4 57 731 6433 3116 stq a.t025-*,* (hslms1) put nop in hsla_man memory size switch 3117 06503 3118 itl150 null 3119 3120 * init 3121 06503 4 57 731 6434 3122 stq a.t026-*,* (itlms1) put nop in init memory size switch one 06504 4 57 731 6435 3123 stq a.t027-*,* (itlms2) put nop in init memory size switch two 3124 3125 * scheduler 3126 06505 4 57 724 6431 3127 stq a.t023-*,* (skdms1) put nop in scheduler memory size switch 06506 4 57 701 6407 3128 stq a.t002-*,* (skdms2) put nop in scheduler memory size switch 06507 4 57 701 6410 3129 stq a.t003-*,* (skdms3) put nop in scheduler memory size switch 06510 4 57 706 6416 3130 stq a.t010-*,* (skdms4) put nop in scheduler memory size switch assm 01 12-10-82 15.874 init - fnp initialization module for multics page 113 initialization main program 06511 4 57 706 6417 3131 stq a.t011-*,* (skdms5) put nop in scheduler memory size switch 06512 4 57 706 6420 3132 stq a.t012-*,* (skdms6) put nop in scheduler memory size switch 06513 4 57 706 6421 3133 stq a.t013-*,* (skdms7) put nop in scheduler memory size switch 3134 3135 * trace 3136 06514 0 07 723 6437 3137 lda a.t029-* (trams1) address of trace memory size switch 06515 0 27 330 7045 3138 cmpa l.u004-* (=o776) is trace module configured? 06516 0 74 003 6521 3139 tze itl160-* no 06517 4 57 720 6437 3140 stq a.t029-*,* (trams1) put nop in trace memory size switch one 06520 4 57 710 6430 3141 stq a.t022-*,* (trams2) put nop in trace memory size switch two 3142 06521 3143 itl160 null 3144 3145 ********************************************************* 3146 * set up some values for hgsfcm subroutine in init module 3147 ********************************************************* 3148 06521 673 053 0 3149 ila t.leng get length of tib 06522 773 001 0 3150 iaa 1 make it an even number of words 06523 022 776 0 3151 iana -2 06524 4 17 703 6427 3152 sta a.t021-*,* (htibln) 3153 06525 3154 itl170 null 06525 0 43 270 7015 3155 ldx1 a.u007-* (fltv) move processor fault vector images to 06526 0 04 726 6454 3156 ldaq hfvi-* fault vector locations 06527 1 14 000 0 3157 staq 0,1 06530 0 04 726 6456 3158 ldaq hfvi+2-* 06531 1 14 002 0 3159 staq 2,1 06532 0 04 726 6460 3160 ldaq hfvi+4-* 06533 1 14 004 0 3161 staq 4,1 end of binary card 00000070 06534 0 04 726 6462 3162 ldaq hfvi+6-* 06535 1 14 006 0 3163 staq 6,1 3164 3165 ********************************************************* 3166 * get buffer routine metering area address 3167 ********************************************************* 3168 06536 0 07 301 7037 3169 lda a.u025-* addr (getbfm) 06537 4 17 301 7040 3170 sta a.u026-*,* .crbtm 3171 3172 ********************************************************* 3173 * if breakpoint_man in coreimage, setup .crbrk 3174 ********************************************************* 3175 06540 0 07 265 7025 3176 lda a.u015-* (brktab) address of break control table 06541 0 27 304 7045 3177 cmpa l.u004-* (=o776) valid (not equal to 776) 06542 0 64 002 6544 3178 tnz 2 yes, ok 06543 673 000 0 3179 ila 0 use 0, no break table 06544 4 17 262 7026 3180 sta a.u016-*,* (.crbrk) store in comm region assm 01 12-10-82 15.874 init - fnp initialization module for multics page 114 initialization main program 3181 eject 3182 ********************************************************* 3183 * set up fig tree table pointers 3184 ********************************************************* 3185 06545 0 43 660 6425 3186 ldx1 a.t019-* (figtre) 06546 4 07 655 6423 3187 lda a.t016-*,* (.criom) get address of fig tree table 06547 1 16 000 0 3188 asa 0,1 06550 1 16 001 0 3189 asa 1,1 3190 06551 3191 itl180 null 3192 3193 ********************************************************* 3194 * if console_man is in coreimage, turn on 'conman' switch 3195 ********************************************************* 3196 06551 0 07 250 7021 3197 lda a.u011-* (wcon) get address of entry point in console_man 06552 0 27 273 7045 3198 cmpa l.u004-* (=o776) is console_man in image? 06553 0 74 003 6556 3199 tze itl190-* no 06554 673 777 0 3200 ila -1 yes. turn on conman switch 06555 4 17 247 7024 3201 sta a.u014-*,* (conman) 3202 06556 3203 itl190 null 3204 3205 ********************************************************* 3206 * set up level 0, 1, and 2 iv's so that "iom channel 3207 * faults" are trapped and all other's ignored. save 3208 * previous contents of these iv's for later restoration. 3209 ********************************************************* 3210 06556 0 43 663 6441 3211 ldx1 l.t003-* (=o400) fill iom channel fault iv's 06557 0 07 237 7016 3212 lda a.u008-* (iomflt) with pointer's to "iomflt" 06560 1 17 760 0 3213 sta -16,1 06561 173 760 0 3214 iacx1 -16 06562 0 64 776 6560 3215 tnz -2 3216 06563 0 41 656 6441 3217 ldx3 l.t003-* (=o400) replace all zero iv's with a pointer 06564 0 07 255 7041 3218 lda a.u027-* (ignore) to an ignore interrupts routine 06565 3219 itl200 null 06565 3 47 777 0 3220 ldq -1,3 06566 0 64 002 6570 3221 tnz 2 06567 3 17 777 0 3222 sta -1,3 06570 373 777 0 3223 iacx3 -1 06571 0 64 774 6565 3224 tnz itl200-* 3225 06572 0 41 647 6441 3226 ldx3 l.t003-* (=o400) save present values of level 0, 1, 2 06573 0 03 243 7036 3227 ldx2 a.u024-* (savein+48-3) interrupt vectors for restoration 06574 3228 itl210 null 06574 3 04 760 0 3229 ldaq -16,3 later 06575 2 17 000 0 3230 sta 0,2 06576 2 57 001 0 3231 stq 1,2 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 115 initialization main program 06577 3 07 762 0 3232 lda -14,3 06600 2 17 002 0 3233 sta 2,2 06601 0 04 365 7166 3234 ldaq ignrad-* set iv's to "ignore" 06602 3 14 760 0 3235 staq -16,3 end of binary card 00000071 06603 3 17 762 0 3236 sta -14,3 06604 273 775 0 3237 iacx2 -3 06605 373 760 0 3238 iacx3 -16 06606 0 64 766 6574 3239 tnz itl210-* 3240 06607 0 07 237 7046 3241 lda l.u005-* (=o700000) enable level 0,1,2 interrupts 06610 052 000 0 3242 sier <-><+><-><+><-><+><-><+><-><+><-><+> 3243 06611 673 061 0 3244 ila 3*16+1 allow any interrupts waiting 3245 to cycle thru 06612 7331 00 0 3246 eni enable interrupts <+><+><+><+><+><+><+><+><+><+ 06613 2331 00 0 3247 nop 06614 773 777 0 3248 iaa -1 loop for a while to give them a chance 06615 0 64 776 6613 3249 tnz -2 to do their thing 3250 3251 now run the idle loop for one metering interval 3252 to establish a counter value for an idle interval 3253 06616 0 07 211 7027 3254 lda a.u017-* addr (itl215) 06617 4 17 211 7030 3255 sta a.u018-*,* (etr) direct timer interrupt to here 06620 673 000 0 3256 ila 0 get negative interval size to set timer 06621 4 26 210 7031 3257 sba a.u019-*,* idlint 06622 4 17 175 7017 3258 sta a.u009-*,* etmb 06623 4 71 207 7032 3259 tra a.u020-*,* (idloop) run the idle loop till timer goes off 3260 06624 0 00000 0 3261 itl215 ind ** elapsed timer runout comes here 06625 4 04 206 7033 3262 ldaq a.u021-*,* idlcnt 06626 4 14 206 7034 3263 staq a.u022-*,* (idlmax) this is maximum value 06627 4 14 206 7035 3264 staq a.u023-*,* (idlmin) and also minimum so far 06630 0 07 336 7166 3265 lda ignrad-* now ignore timer interrupts again 06631 4 17 177 7030 3266 sta a.u018-*,* etr 06632 673 000 0 3267 ila 0 and clear the counter 06633 473 000 0 3268 ilq 0 06634 4 14 177 7033 3269 staq a.u021-*,* idlcnt 3270 06635 0 43 604 6441 3271 ldx1 l.t003-* (=o400) fill iom channel fault iv's 06636 0 07 160 7016 3272 lda a.u008-* (iomflt) with pointer's to "iomflt" 06637 1 17 760 0 3273 sta -16,1 06640 173 760 0 3274 iacx1 -16 06641 0 64 776 6637 3275 tnz -2 3276 06642 4 07 156 7020 3277 lda a.u010-*,* (conchn) initialize console terminate iv 06643 0336 04 0 3278 als 4 06644 4332 00 0 3279 cax1 06645 0 07 155 7022 3280 lda a.u012-* (contip) 06646 0 27 177 7045 3281 cmpa l.u004-* (=o776) is console_man in image? assm 01 12-10-82 15.874 init - fnp initialization module for multics page 116 initialization main program 06647 0 74 012 6661 3282 tze itl220-* no. skip console stuff 06650 1 17 002 0 3283 sta 2,1 yes. set up console terminate interrupt vector 06651 4 07 152 7023 3284 lda a.u013-*,* (.crcon) save console switch end of binary card 00000072 06652 0 17 352 7224 3285 sta conswt-* 06653 4 56 150 7023 3286 stz a.u013-*,* (.crcon) zero switch so cr/lf goes through 06654 4 10 145 7021 3287 tsy a.u011-*,* (wcon) send cr/lf to console to unmask channel 06655 0 07170 1 3288 zero iwcrlf (9/cr,9/lf) 06656 2331 00 0 3289 nop don't loop if no console 06657 0 07 345 7224 3290 lda conswt-* restore .crcon 06660 4 17 143 7023 3291 sta a.u013-*,* (.crcon) 3292 06661 3293 itl220 null assm 01 12-10-82 15.874 init - fnp initialization module for multics page 117 initialization main program 3294 eject 3295 *********************************************************** 3296 * now that the console has been set up, 3297 * check for fatal errors. 3298 *********************************************************** 3299 06661 0 20 566 6447 3300 szn ipgerr-* was there a paging error? 06662 4 64 540 6422 3301 tnz a.t014-*,* (stop14) yes. cannot continue 3302 3303 3304 *********************************************************** 3305 * check if timer is enabled and running 3306 *********************************************************** 3307 06663 4 07 134 7017 3308 lda a.u009-*,* (etmb) get current value of elapsed timer 06664 0 47 333 7217 3309 ldq l.v002-* (=1000) get two millisecond counter 06665 573 777 0 3310 iaq -1 wait two milliseconds 06666 0 64 777 6665 3311 tnz -1 06667 4 27 130 7017 3312 cmpa a.u009-*,* (etmb) check and see if timer changed 06670 0 64 003 6673 3313 tnz itl230-* yes-ok 06671 4 71 001 6672 3314 tra 1,* no. error...timer not enabled 06672 0 03254 1 3315 ind stop02 3316 3317 3318 *********************************************************** 3319 * check to make sure interval timer switch is set 3320 * to click every msec and not every 64th of a msec 3321 *********************************************************** 3322 06673 3323 itl230 null 06673 4 20 531 6424 3324 szn a.t017-*,* (simsw) see if running in simulator 06674 0 74 016 6712 3325 tze itl260-* if so, skip over the timer check code 3326 06675 673 002 0 3327 ila 2 set timer to go off in 2 msec 06676 0 47 010 6706 3328 ldq itl250-* .. 06677 4 10 305 7204 3329 tsy a.v018-*,* (setclk) 06700 0 47 316 7216 3330 ldq l.v001-* (=250) get half millisecond counter 06701 573 777 0 3331 iaq -1 wait half millisecond 06702 0 64 777 6701 3332 tnz -1 .. 06703 0 56 003 6706 3333 stz itl250-* if we finished counting, timer is set to click 3334 every msec. set flag and wait for timer to go off 06704 4331 00 0 3335 dis 06705 0 03314 1 3336 itl240 ind stop12 06706 0 06707 1 3337 itl250 ind *+1 addr of place to go on timer interrupt 06707 0 00000 0 3338 ind ** 06710 0 20 776 6706 3339 szn itl250-* did we finish counting above? 06711 4 64 774 6705 3340 tnz itl240-*,* no - timer sw is wrong - inform cs assm 01 12-10-82 15.874 init - fnp initialization module for multics page 118 initialization main program 3341 eject 3342 *********************************************************** 3343 * determine which iom channels are physically present. 3344 * save the results in word "exist" such that a one in 3345 * bit position "x" indicates that channel "x" exists. 3346 *********************************************************** 3347 06712 3348 itl260 null 06712 473 000 0 3349 ilq 0 the q reg contains the status found so far 06713 673 000 0 3350 ila 0 want x1 to hold current subch num -- but 06714 4332 00 0 3351 cax1 it needs to be loaded first 3352 06715 0 41 227 7144 3353 ldx3 xstsav-* x3 will point to table of 16 readbacks 3354 06716 3355 itl270 null 06716 2332 00 0 3356 cx1a get the iom chan num into a reg 06717 0 37 301 7220 3357 ora l.v003-* (sel 0) 'or' in the sel instruction 06720 0 17 001 6721 3358 sta 1 put it where we will execute it end of binary card 00000073 06721 073 000 0 3359 sel ** (altrd) select the current iom chan 06722 0 70 301 7223 3360 stex itemp-* store this channel's static status 06723 0 07 300 7223 3361 lda itemp-* pick up the status status 06724 3 17 000 0 3362 sta 0,3 save it in readback vector 06725 422 000 0 3363 icmpa 0 by experiment, non-existant channels 3364 * return 0, most others dont (dia is exception) 06726 0 74 002 6730 3365 tze 2 it doesn't exist, dont turn on this bit 06727 573 001 0 3366 iaq 1 it does exist, turn on low order bit 06730 4336 01 0 3367 qls 1 move over to make room for next channel 06731 173 001 0 3368 iacx1 1 add one to subchannel number 06732 373 001 0 3369 iacx3 1 add one to readback vector loc 06733 2332 00 0 3370 cx1a get the subchannel number again 06734 422 020 0 3371 icmpa 16 was it the last one, 06735 0 64 761 6716 3372 tnz itl270-* no 3373 06736 4336 01 0 3374 qls 1 move word over one more to left justify 3375 06737 7333 00 0 3376 cqa now handle any funny channels ... 06740 0 37 202 7142 3377 ora diexst-* dia doesn't perform properly for experiment 3378 06741 4 17 202 7143 3379 sta mexist-*,* and finally save it for others to use assm 01 12-10-82 15.874 init - fnp initialization module for multics page 119 initialization main program 3380 eject 3381 ********************************************************* 3382 * send an initialize pcw to each hsla configured 3383 ********************************************************* 3384 06742 3385 itl280 null 06742 4 20 046 7010 3386 szn a.u002-*,* (.crnhs) first, are there any hsla's ?? 06743 4 74 047 7012 3387 tze a.u004-*,* (itl350) no, don't bother with this code 06744 0 71 002 6746 3388 tra itl300-* skip over channel incrementation 3389 06745 3390 itl290 null * come here to increment to next channel 06745 4 76 046 7013 3391 aos a.u005-*,* (iomch) 06746 3392 itl300 null 06746 4 07 045 7013 3393 lda a.u005-*,* (iomch) load iom channel 06747 0336 01 0 3394 als 1 multiply by two 06750 4332 00 0 3395 cax1 x1 <- 2 * (iom ch #) 06751 4 07 043 7014 3396 lda a.u006-*,* (figtre,*) pick up 1st word of config tree 06752 2337 04 0 3397 arl 18-fcdevc-1 right justify the device type 06753 022 037 0 3398 iana fbdevc mask out the rest of the word 06754 422 003 0 3399 icmpa dhsla is it any hsla ?? 06755 0 64 020 6775 3400 tnz itl310-* no, jump out of this section 3401 * yes, prepare to initialize it 06756 4 07 035 7013 3402 lda a.u005-*,* (iomch) pick up the iom channel # 06757 0 37 065 7044 3403 ora l.u003-* (sel 0) 'or' in a select instruction 06760 0 17 001 6761 3404 sta +1 store in where we will execute it 06761 073 000 0 3405 sel ** (this instruction patched above) 3406 * select this hsla for operation 3407 3408 * now, check to see if this channel exists 06762 022 017 0 3409 iana 15 mask out all but iom channel # (=o17) 06763 0 37 060 7043 3410 ora l.u002-* (qls 0) 'or' in 'qls' instruction 06764 0 17 002 6766 3411 sta +2 store where we will execute it 06765 4 47 024 7011 3412 ldq a.u003-*,* (exist) pick up word on which channels exist 06766 4336 00 0 3413 qls ** (patched from above) 3414 * move desired bit into sign bit 06767 0 65 010 6777 3415 tpl itl320-* doesn't exist, the hsla initialization 3416 * will print out a message later 3417 3418 * initialize this hsla 3419 * (we need to hit it 4 times in case it's a 6670 3420 * with 4 mlcs pretending to be 1 hsla) end of binary card 00000074 06770 0 60 060 7050 3421 cioc ipcwa-* pcw1, cmd 10, subchannel 0 06771 0 60 061 7052 3422 cioc ipcwb-* " " " 8 06772 0 60 062 7054 3423 cioc ipcwc-* " " " 16 06773 0 60 063 7056 3424 cioc ipcwd-* " " " 24 06774 0 71 003 6777 3425 tra itl320-* 3426 06775 3427 itl310 null 06775 422 001 0 3428 icmpa dclock is this the clock (the clock must be 3429 * the last iom channel assm 01 12-10-82 15.874 init - fnp initialization module for multics page 120 initialization main program 06776 0 74 002 7000 3430 tze itl330-* yes, go initialize the devices 3431 06777 3432 itl320 null * no, go look for other hsla's 06777 0 71 746 6745 3433 tra itl290-* 3434 07000 3435 itl330 null 07000 4 20 203 7203 3436 szn a.v017-*,* (simsw) see if running in simulator 07001 4 74 011 7012 3437 tze a.u004-*,* (itl350) yes. don't wait for hsla to finish 07002 0 07 040 7042 3438 lda l.u001-* (=5000) no. set clock for 5 sec to allow hsla's 07003 0 47 004 7007 3439 ldq a.u001-* (itl340) to finish 07004 4 10 200 7204 3440 tsy a.v018-*,* (setclk) wait here for clock to time out 07005 4331 00 0 3441 dis 07006 0 71 777 7005 3442 tra -1 3443 3444 3445 3446 07007 0 07060 1 3447 a.u001 ind itl340 jump over the following area of data 07010 0 00654 0 3448 a.u002 ind .crnhs number of hsla's configured 07011 0 03200 3 3449 a.u003 ind exist 07012 0 07061 1 3450 a.u004 ind itl350 07013 0 01660 1 3451 a.u005 ind iomch 07014 4 01521 1 3452 a.u006 ind figtre,* 07015 0 00440 0 3453 a.u007 zero fltv fault vector base address 07016 0 14200 3 3454 a.u008 ind iomflt iom channel fault routine 07017 0 00451 0 3455 a.u009 ind etmb elapsed timer mailbox 07020 0 05400 3 3456 a.u010 ind conchn 07021 0 02200 3 3457 a.u011 ind wcon 07022 0 06200 3 3458 a.u012 ind contip 07023 0 00656 0 3459 a.u013 ind .crcon 07024 0 05600 3 3460 a.u014 ind conman 07025 0 05200 3 3461 a.u015 ind brktab address of table in breakpoint_man 07026 0 00672 0 3462 a.u016 ind .crbrk 07027 0 06624 1 3463 a.u017 ind itl215 07030 0 00362 0 3464 a.u018 ind etr elapsed timer interrupt vector 07031 0 13000 3 3465 a.u019 ind idlint idle metering interval (in scheduler) 07032 0 13600 3 3466 a.u020 ind idloop start of idle loop (in scheduler) 07033 0 12600 3 3467 a.u021 ind idlcnt counter incremented by idle loop (in scheduler) 07034 0 13200 3 3468 a.u022 ind idlmax maximum value of idlcnt (in scheduler) 07035 0 13400 3 3469 a.u023 ind idlmin minimum " " " " " 07036 0 01634 1 3470 a.u024 zero savein+48-3 end of binary card 00000075 07037 0 11200 3 3471 a.u025 ind getbfm 07040 0 00706 0 3472 a.u026 ind .crbtm 07041 0 14000 3 3473 a.u027 ind ignore 3474 07042 011610 0 3475 l.u001 dec 5000 07043 4336 00 0 3476 l.u002 qls 0 07044 073 000 0 3477 l.u003 sel 0 07045 000776 0 3478 l.u004 oct 776 a missing address 07046 700000 0 3479 l.u005 oct 700000 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 121 initialization main program 3480 07047 233100 0 07050 3481 even 07050 300000 0 3482 ipcwa vfd 2/1,4/initop,12/0,18/0 initialize pcw 07051 000000 0 07052 301000 0 3483 ipcwb vfd 2/1,4/initop,6/8,6/0,18/0 same for second mlc 07053 000000 0 07054 302000 0 3484 ipcwc vfd 2/1,4/initop,6/16,6/0,18/0 third 07055 000000 0 07056 303000 0 3485 ipcwd vfd 2/1,4/initop,6/24,6/0,18/0 fourth 07057 000000 0 3486 3487 3488 07060 0 00000 0 3489 itl340 ind ** 07061 3490 itl350 null 07061 4 56 732 7013 3491 stz a.u005-*,* (iomch) assm 01 12-10-82 15.874 init - fnp initialization module for multics page 122 initialization main program 3492 eject 3493 *********************************************************** 3494 * set up initial buffer space parameters. 3495 * we will allocate buffers starting at istart of init 3496 * but we will free the rest of init for use as buffer space 3497 * later. the code from istart to the end of init is no 3498 * longer needed and will be used for tibs and sfcms. the 3499 * code to initialize an lsla is also released for buffer 3500 * space if none are configured. 3501 *********************************************************** 3502 07062 0 07 120 7202 3503 lda a.v016-* (lsla) try to release lsla initialization code 07063 4 47 120 7203 3504 ldq a.v017-*,* (.crnls) are there lsla's configured? 07064 0 74 002 7066 3505 tze 2 no. release lsla init code 07065 0 07 105 7172 3506 lda a.v007-* (istart-1) the begining of the end of init 07066 773 037 0 3507 iaa bufsiz-1 round to buffer boundary 07067 022 740 0 3508 iana -bufsiz 07070 4333 00 0 3509 cax3 address to free 07071 4 17 115 7206 3510 sta a.v020-*,* (.crbuf) starting addr of buffer area 07072 0 07 117 7211 3511 lda a.v023-* (endtrc) is trace module in image? 07073 0 27 752 7045 3512 cmpa l.u004-* (=o776) 07074 0 64 006 7102 3513 tnz itl360-* yes 07075 0 07 102 7177 3514 lda a.v012-* (itrcdm) no. fake out initialization of 07076 0 17 107 7205 3515 sta a.v019-* (nxtrce) trace module 07077 0 17 112 7211 3516 sta a.v023-* (endtrc) 07100 0 17 113 7213 3517 sta a.v025-* (.crtrb) 07101 0 17 113 7214 3518 sta a.v026-* (.crtrc) 3519 07102 3520 itl360 null 07102 4 07 076 7200 3521 lda a.v013-*,* (mvplmm) set up trace variables 07103 4 17 106 7211 3522 sta a.v023-*,* (endtrc) 07104 773 001 0 3523 iaa 1 07105 4 20 102 7207 3524 szn a.v021-*,* (.crpte) is 64k configured? end of binary card 00000076 07106 0 64 006 7114 3525 tnz itl370-* yes 07107 4 26 103 7212 3526 sba a.v024-*,* (.crtsz) no. put trace buffer in 07110 4 17 103 7213 3527 sta a.v025-*,* (.crtrb) lower memory. 07111 4 17 103 7214 3528 sta a.v026-*,* (.crtrc) 07112 4 17 073 7205 3529 sta a.v019-*,* (nxtrce) 07113 022 740 0 3530 iana -bufsiz truncate to buffer boundary 3531 07114 3532 itl370 null 07114 4 26 072 7206 3533 sba a.v020-*,* (.crbuf) base of current free buffer area 07115 4 74 100 7215 3534 tze a.v027-*,* (stop15) there's no room left 07116 4 75 077 7215 3535 tmi a.v027-*,* (stop15) bad news 07117 6333 00 0 3536 caq >0. ok. almost ready for frebuf 3537 * 3538 * finish up trace buffer allocation 3539 07120 4 20 067 7207 3540 szn a.v021-*,* (.crpte) is 64k configured? 07121 0 74 012 7133 3541 tze itl380-* no assm 01 12-10-82 15.874 init - fnp initialization module for multics page 123 initialization main program 07122 4 07 066 7210 3542 lda a.v022-*,* (.crmem) yes. put trace buffer at high 3543 end of configured memory 07123 4 17 066 7211 3544 sta a.v023-*,* (endtrc) 07124 4 26 066 7212 3545 sba a.v024-*,* (.crtsz) 07125 773 001 0 3546 iaa 1 07126 4 17 065 7213 3547 sta a.v025-*,* (.crtrb) 07127 4 17 065 7214 3548 sta a.v026-*,* (.crtrc) 07130 4 17 055 7205 3549 sta a.v019-*,* (nxtrce) 07131 0 27 071 7222 3550 cmpa l.v006-* (=32768) is base above 32k? 07132 4 75 063 7215 3551 tmi a.v027-*,* (stop15) no. cannot handle this 3552 07133 3553 itl380 null 07133 4 10 046 7201 3554 tsy a.v014-*,* (frebuf) free initial buffer space 07134 0 07 037 7173 3555 lda a.v008-* (utsave) 07135 4 17 037 7174 3556 sta a.v009-*,* (.crreg) save place where regs are saved 07136 0 07 037 7175 3557 lda a.v010-* (tibtab) init end of tib tab ptr 07137 4 17 037 7176 3558 sta a.v011-*,* (.crtte) so maktib can fill it in 3559 07140 4 71 001 7141 3560 tra 1,* 07141 0 01523 1 3561 ind itl010 all set to pick the figtre assm 01 12-10-82 15.874 init - fnp initialization module for multics page 124 initialization main program 3562 eject 3563 07142 020000 0 3564 diexst oct 020000 bit to be turned on to say dia exists 07143 0 03200 3 3565 mexist ind exist 3566 07144 0 07145 1 3567 xstsav ind *+1 ptr to table of stex reads from devices 07145 3568 bss 16 07165 233100 0 07166 3569 even 07166 0 14000 3 3570 ignrad ind ignore ignore interrupts routine 07167 0 14000 3 3571 ind ignore 3572 07170 2 07221 1 3573 iwcrlf icw l.v004,b.0,2 07171 000002 0 3574 07172 0 06307 1 3575 a.v007 ind istart-1 end of binary card 00000077 07173 0 20400 3 3576 a.v008 ind utsave 07174 0 00664 0 3577 a.v009 ind .crreg 07175 0 00012 1 3578 a.v010 ind tibtab 07176 0 00666 0 3579 a.v011 ind .crtte 07177 0 06452 1 3580 a.v012 ind itrcdm 07200 0 14600 3 3581 a.v013 ind mvplmm lower memory maximum address (in utilities) 07201 0 10400 3 3582 a.v014 ind frebuf 3583 *a.v015 unused 07202 0 04413 1 3584 a.v016 ind lsla 07203 0 00655 0 3585 a.v017 ind .crnls number of lsla's configured 07204 0 01472 1 3586 a.v018 ind setclk 07205 0 15000 3 3587 a.v019 ind nxtrce (in trace module) next entry in trace buffer 07206 0 00650 0 3588 a.v020 ind .crbuf 07207 0 00702 0 3589 a.v021 ind .crpte variable cpu page table entry 07210 0 00651 0 3590 a.v022 ind .crmem last legal memory address 07211 0 07600 3 3591 a.v023 ind endtrc (in trace module) last word in trace buffer 07212 0 00703 0 3592 a.v024 ind .crtsz 07213 0 00662 0 3593 a.v025 ind .crtrb 07214 0 00663 0 3594 a.v026 ind .crtrc 07215 0 03324 1 3595 a.v027 ind stop15 3596 07216 000372 0 3597 l.v001 dec 250 half of a millisecond in inst xec time 07217 001750 0 3598 l.v002 dec 1000 two milliseconds in inst xec time 07220 073 000 0 3599 l.v003 sel 0 07221 015012 0 3600 l.v004 vfd 9/cr,9/lf 3601 *l.v005 unused 07222 100000 0 3602 l.v006 dec 32768 3603 07223 3604 itemp bss 1 07224 3605 conswt bss 1 temporary for .crcon end of binary card 00000078 3606 end 7226 is the next available location. 355map version/assembly dates gmpa 770711/071177 gmpb 770711/071177 gmpc 770711/071177 assm 01 12-10-82 15.874 init - fnp initialization module for multics page 125 initialization main program there were no warning flags in the above assembly assm 01 12-10-82 15.883 init - fnp initialization module for multics page 126 octal symbol references by sequence no. 1550 a.a001 400 384 400 1551 a.a002 401 386 401 1552 a.a003 402 388 402 1553 a.a004 403 390 403 1554 a.a005 404 392 404 1555 a.a006 405 405 424 459 495 1656 a.b001 441 426 441 497 1676 a.c001 470 462 470 1677 a.c002 471 464 471 1700 a.c003 472 472 568 755 2040 a.d001 602 536 562 602 2041 a.d002 603 504 603 668 2042 a.d003 604 594 604 2043 a.d005 605 566 605 2044 a.d006 606 579 606 2045 a.d007 607 558 561 582 591 607 2046 a.d008 608 560 608 2047 a.d009 609 597 609 2050 a.d010 610 510 610 2051 a.d011 611 513 611 2052 a.d012 612 522 612 2053 a.d013 613 527 613 2054 a.d014 614 533 554 614 2055 a.d015 615 542 615 2056 a.d016 616 581 616 2057 a.d017 617 617 658 2060 a.d018 618 618 661 2061 a.d019 619 619 673 2062 a.d020 620 620 674 2063 a.d021 621 621 675 2064 a.d022 622 622 684 2065 a.d023 623 623 691 2066 a.d024 624 584 624 2554 a.f001 1095 765 1095 2555 a.f002 1096 1020 1096 2556 a.f003 1097 813 1097 2557 a.f004 1098 1027 1098 2560 a.f005 1099 1023 1099 2561 a.f006 1100 1100 1264 2562 a.f007 1101 1101 1287 2563 a.f008 1102 843 1102 2564 a.f009 1103 1103 1262 1268 2565 a.f010 1104 1104 1243 1255 2566 a.f011 1105 888 1105 2567 a.f012 1106 922 1106 2570 a.f013 1107 848 1107 2571 a.f014 1108 1108 1231 2572 a.f015 1109 1109 1245 1257 2573 a.f016 1110 859 1110 3176 a.i001 1402 1347 1370 1373 1402 3177 a.i002 1403 1321 1333 1403 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 127 octal symbol references by sequence no. 3200 a.i003 1404 1342 1345 1404 3201 a.i004 1405 1364 1394 1405 3202 a.i005 1406 1325 1406 3330 a.j001 1528 1429 1528 3331 a.j002 1529 1447 1458 1529 3332 a.j003 1530 1446 1530 3345 a.k001 1549 1425 1540 1549 3346 a.k002 1550 1441 1460 1486 1550 4156 a.m001 1846 1698 1701 1710 1846 4157 a.m002 1847 1752 1763 1766 1847 4160 a.m003 1848 1829 1848 4161 a.m004 1849 1834 1849 4162 a.m005 1850 1821 1850 4163 a.m006 1851 1782 1784 1794 1851 4164 a.m007 1852 1795 1852 4165 a.m008 1853 1796 1853 4166 a.m009 1854 1798 1854 4167 a.m010 1855 1799 1855 4170 a.m011 1856 1800 1856 4171 a.m012 1857 1729 1857 4172 a.m013 1858 1702 1858 4173 a.m014 1859 1737 1859 4174 a.m015 1860 1801 1860 4175 a.m016 1861 1628 1711 1861 4176 a.m017 1862 1717 1862 4177 a.m018 1863 1716 1863 4200 a.m019 1864 1727 1864 4201 a.m020 1865 1693 1705 1708 1732 1865 4202 a.m021 1866 1797 1866 4203 a.m022 1867 1810 1867 4204 a.m023 1868 1811 1868 4205 a.m024 1869 1812 1869 4206 a.m025 1870 1815 1870 4207 a.m026 1871 1804 1871 4210 a.m027 1872 1677 1872 4211 a.m028 1873 1680 1873 4212 a.m029 1874 1682 1874 4213 a.m030 1875 1664 1875 4214 a.m031 1876 1665 1876 4215 a.m032 1877 1830 1877 4216 a.m033 1878 1714 1878 4217 a.m034 1879 1639 1735 1879 4220 a.m035 1880 1719 1880 4221 a.m036 1881 1721 1881 4222 a.m037 1882 1621 1634 1645 1882 4223 a.m038 1883 1633 1883 4224 a.m039 1884 1623 1884 4225 a.m040 1885 1627 1885 4411 a.n001 2017 2001 2017 4412 a.n002 2018 2006 2018 4771 a.q001 2347 2053 2347 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 128 octal symbol references by sequence no. 4772 a.q002 2348 2074 2149 2259 2348 2427 4773 a.q003 2349 2075 2131 2349 2421 4774 a.q004 2350 2130 2139 2350 4775 a.q005 2351 2134 2351 4776 a.q006 2352 2153 2186 2263 2308 2352 2390 2431 2507 4777 a.q007 2353 2160 2270 2353 5000 a.q008 2354 2172 2289 2354 2484 5001 a.q009 2355 2306 2355 2502 5002 a.q010 2356 2356 2414 2448 2457 2466 5003 a.q011 2357 2043 2357 5004 a.q012 2358 2028 2358 5336 a.r001 2686 2434 2510 2686 5337 a.r002 2687 2644 2687 5340 a.r004 2688 2688 2772 5341 a.r005 2689 2689 2780 2829 2864 5342 a.r006 2690 2690 2809 2811 2846 5343 a.r007 2691 2691 2812 5344 a.r008 2692 2692 2819 5345 a.r009 2693 2558 2627 2693 5346 a.r010 2694 2561 2630 2694 5347 a.r011 2695 2564 2633 2695 5350 a.r012 2696 2559 2696 5351 a.r013 2697 2563 2697 5352 a.r014 2698 2628 2698 5353 a.r015 2699 2632 2699 5354 a.r016 2700 2670 2700 5355 a.r017 2701 2701 2848 5356 a.r018 2702 2702 2768 6406 a.t001 3028 3028 3087 6407 a.t002 3029 3029 3128 6410 a.t003 3030 3030 3129 6411 a.t004 3031 2977 3031 6412 a.t006 3032 2976 3032 3084 6413 a.t007 3033 2956 2964 3033 6414 a.t008 3034 2955 2994 3034 6415 a.t009 3035 2971 3000 3035 3085 6416 a.t010 3036 3036 3130 6417 a.t011 3037 3037 3131 6420 a.t012 3038 3038 3132 6421 a.t013 3039 3039 3133 6422 a.t014 3040 3040 3301 6423 a.t016 3041 3041 3187 6424 a.t017 3042 2947 3042 3324 6425 a.t019 3043 3043 3186 6427 a.t021 3045 3045 3152 6430 a.t022 3046 3046 3141 6431 a.t023 3047 3047 3127 6432 a.t024 3048 3048 3109 6433 a.t025 3049 3049 3113 3116 6434 a.t026 3050 3050 3122 6435 a.t027 3051 3051 3123 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 129 octal symbol references by sequence no. 6436 a.t028 3052 3052 3089 6437 a.t029 3053 3053 3137 3140 7007 a.u001 3447 3439 3447 7010 a.u002 3448 3386 3448 7011 a.u003 3449 3412 3449 7012 a.u004 3450 3387 3437 3450 7013 a.u005 3451 3391 3393 3402 3451 3491 7014 a.u006 3452 3396 3452 7015 a.u007 3453 3155 3453 7016 a.u008 3454 3212 3272 3454 7017 a.u009 3455 3258 3308 3312 3455 7020 a.u010 3456 3277 3456 7021 a.u011 3457 3197 3287 3457 7022 a.u012 3458 3280 3458 7023 a.u013 3459 3284 3286 3291 3459 7024 a.u014 3460 3201 3460 7025 a.u015 3461 3176 3461 7026 a.u016 3462 3180 3462 7027 a.u017 3463 3254 3463 7030 a.u018 3464 3255 3266 3464 7031 a.u019 3465 3257 3465 7032 a.u020 3466 3259 3466 7033 a.u021 3467 3262 3269 3467 7034 a.u022 3468 3263 3468 7035 a.u023 3469 3264 3469 7036 a.u024 3470 3227 3470 7037 a.u025 3471 3169 3471 7040 a.u026 3472 3170 3472 7041 a.u027 3473 3218 3473 7172 a.v007 3575 3506 3575 7173 a.v008 3576 3555 3576 7174 a.v009 3577 3556 3577 7175 a.v010 3578 3557 3578 7176 a.v011 3579 3558 3579 7177 a.v012 3580 3514 3580 7200 a.v013 3581 3521 3581 7201 a.v014 3582 3554 3582 7202 a.v016 3584 3503 3584 7203 a.v017 3585 3436 3504 3585 7204 a.v018 3586 3329 3440 3586 7205 a.v019 3587 3515 3529 3549 3587 7206 a.v020 3588 3510 3533 3588 7207 a.v021 3589 3524 3540 3589 7210 a.v022 3590 3542 3590 7211 a.v023 3591 3511 3516 3522 3544 3591 7212 a.v024 3592 3526 3545 3592 7213 a.v025 3593 3517 3527 3547 3593 7214 a.v026 3594 3518 3528 3548 3594 7215 a.v027 3595 3534 3535 3551 3595 2 ascii 2681 2583 2681 4732 asicw 2327 2142 2163 2252 2275 2327 2411 2476 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 130 octal symbol references by sequence no. 23 badint 46 441 3252 badsts 1454 1423 1426 1445 1454 24 bfcksw 62 1862 2 b.0 1058 1059 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 2178 2181 2184 2195 2300 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2350 2365 2366 2497 2536 2549 2587 2597 2860 2862 2869 2870 2891 2895 2896 2897 2898 2899 2900 2901 2902 2903 3573 3 b.1 2180 2183 2194 2302 2315 2317 2369 2370 2383 2385 2499 2517 2520 2572 2589 2654 2707 2712 2871 2872 25 brktab 81 3461 4264 btsts 1916 624 1530 1655 1916 1919 1948 5 bufshf 128 128 1720 40 bufsiz 128 128 1694 1695 2771 2785 2801 3507 3508 3530 4240 cbufr 1898 1696 1699 1704 1898 4243 cdelta 1903 1764 1781 1903 2074 cdiaic 632 502 632 1850 4253 cenimk 1907 1877 1907 4241 clchnp 1900 1770 1771 1900 4245 clchnr 1905 1900 1905 2346 4262 clkonx 1910 1783 1910 3753 clocks 1610 404 1610 26 conchn 56 3456 27 conman 109 2017 3460 30 consjt 76 1872 7224 conswt 3605 3285 3290 3605 31 contip 55 3458 4724 cpcw 2324 2070 2324 475 cptp 113 113 3031 15 cr 134 134 1133 1135 1137 1572 1574 1576 1578 1580 1582 1584 1586 1588 1590 1592 1594 1596 1598 2907 2909 2911 2913 2915 2917 2919 2921 2923 2925 3600 4242 csfcm 1902 1630 1637 1902 4260 csrpcw 1909 1776 1909 4244 ctemp 1904 1767 1777 1904 2 ctrl 63 1402 1 dclock 208 208 391 3428 2 ddia 210 210 383 3 dhsla 212 212 385 3399 1705 dia010 486 482 486 1721 dia020 501 492 501 1724 dia030 505 490 505 1730 dia040 510 506 510 1734 dia050 515 515 520 1742 dia060 522 518 522 2000 dia070 556 491 556 2016 dia080 574 565 573 574 2021 dia090 578 569 578 608 2030 dia100 589 585 589 616 1701 dia 479 400 479 70 diadis 273 273 546 12 diajt 73 610 32 diams1 98 3048 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 131 octal symbol references by sequence no. 74 diardc 272 272 540 33 dicell 52 604 4 dich 113 113 1945 34 diconf 75 615 7142 diexst 3564 3377 3564 454 dimb 113 113 602 1955 35 dindcw 53 609 3 dis0 113 113 611 456 dist 113 113 613 102 ditm 113 113 607 13 dlist 74 612 4 dlsla 214 214 387 6 dprint 218 218 389 36 dspqur 91 1871 1 dtfctl 126 126 1408 4 dtfsft 126 126 1411 10 dt.brk 126 126 1390 4 dt.flg 126 126 1378 1384 40 dtr 144 144 1909 2325 2326 2677 37 endtrc 95 3591 33 esc 137 137 2722 2724 2879 451 etmb 113 113 1854 3455 362 etr 113 113 1856 3464 40 etrint 85 1866 14 etrip 51 1855 41 etrmon 84 1870 15 exist 47 603 2347 3449 3565 70000 fadacn 182 182 2726 7 fbdacn 183 183 656 2041 37 fbdevc 195 195 381 3398 17 fbsped 199 199 2098 5 fcdacn 184 184 655 2040 15 fcdevc 196 196 374 3397 21 fcsped 200 200 2097 1521 figtre 364 364 371 373 3043 3452 37 fill 2756 2756 2868 440 fltv 113 113 3453 42 frebuf 58 1858 3582 43 fremem 60 1861 44 fresml 61 1878 45 getbfm 110 3471 46 getbuf 57 2688 3334 getchn 1539 619 1096 1437 1484 1539 1547 2693 47 getmem 59 1101 1403 4236 gudsts 1897 1654 1897 2542 hbaud 1083 803 808 842 1083 2500 hbdicw 1055 1048 1055 2530 hcnfig 1075 717 747 777 986 1075 3057 hcurpg 1295 1250 1252 1295 1 hfv 49 3073 3074 3075 3076 3077 3078 3079 3080 6454 hfvi 3073 3073 3156 3158 3160 3162 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 132 octal symbol references by sequence no. 2773 hgs001 1211 1204 1206 1208 1211 2774 hgs002 1212 1210 1212 3011 hgs003 1238 1235 1238 3013 hgs008 1240 1232 1240 3036 hgs010 1261 1251 1261 3042 hgs020 1267 1263 1267 3043 hgs030 1270 1265 1270 3046 hgs040 1275 1271 1272 1275 3051 hgs050 1285 1217 1285 2747 hgsfcm 1197 1097 1197 1292 1884 3055 hgsret 1291 1278 1291 2504 hicw01 1058 676 1058 2506 hicw02 1059 1028 1059 2543 hivloc 1084 722 727 730 733 1084 14 h.aicw 116 116 736 829 1049 2143 2164 2253 2276 2412 2477 2805 10 h.baw 116 116 1046 16 h.cnfg 116 116 713 758 759 781 789 2082 2806 2807 0 h.ric0 116 116 2141 2251 2410 2783 2 h.ric1 116 116 2786 11 h.sfcm 116 116 816 847 1032 2769 4 h.sic0 116 116 833 2226 2241 2405 2450 2800 2859 6 h.sic1 116 116 834 2406 2459 2802 2861 2446 hjtloc 1014 685 686 732 998 1014 2551 hlahcr 1090 618 1090 2552 hmask1 1091 778 782 1091 3064 hmetln 1300 1230 1239 1246 1258 1300 2616 hmsg01 1134 620 1058 1134 2635 hmsg02 1136 1021 1026 1059 1136 2512 hmskch 1066 1035 1036 1066 3060 hnxstp 1296 1241 1253 1276 1277 1296 2526 hpcw 1074 743 745 753 761 1037 1039 1074 2514 hreqcn 1068 751 752 1068 2540 hsaicw 1080 821 1080 2662 hsasbc 1139 1099 1139 2694 2545 hsavx2 1086 810 862 865 989 1086 2546 hsavx3 1087 812 815 990 1087 2447 hsbchn 1015 688 723 739 749 839 996 1001 1015 1022 1033 3061 hsflen 1297 1215 1242 1254 1286 1297 1885 3044 3062 hsfssl 1298 1110 1212 1298 2124 hsl010 680 671 680 2137 hsl020 707 707 1002 2157 hsl030 729 725 729 2214 hsl040 770 764 769 770 2236 hsl050 800 756 787 792 794 800 2256 hsl054 824 820 824 2260 hsl056 828 822 828 2317 hsl060 873 869 873 2327 hsl070 882 877 882 2336 hsl080 893 893 1105 2345 hsl090 901 894 901 2350 hsl100 905 905 909 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 133 octal symbol references by sequence no. 2353 hsl120 909 898 909 2354 hsl130 911 893 911 2354 hsl140 912 895 912 2354 hsl150 913 896 913 2354 hsl160 914 897 914 2354 hsl170 915 899 915 2354 hsl180 916 885 903 907 916 2361 hsl190 927 927 1106 2404 hsl200 948 928 948 2412 hsl210 955 929 955 2412 hsl220 956 930 956 2415 hsl230 960 934 960 2420 hsl234 964 944 945 964 2423 hsl240 968 931 968 2423 hsl250 969 932 969 2423 hsl260 970 933 970 2423 hsl270 971 935 971 2423 hsl280 972 936 972 2423 hsl290 973 937 973 2423 hsl300 974 938 974 2423 hsl310 975 939 975 2423 hsl320 976 940 976 2423 hsl330 977 941 977 2423 hsl340 978 942 978 2423 hsl350 979 943 979 2423 hsl359 980 946 980 2423 hsl360 981 950 953 958 962 966 981 2430 hsl380 993 993 1050 2451 hsl390 1019 784 797 1019 2473 hsl400 1043 715 1043 2077 hsla 653 401 653 50 hslajt 72 622 2450 hslano 1016 617 682 837 1016 51 hslms1 99 3049 2547 hsltra 1088 889 891 923 925 1088 2516 hsmska 1070 1005 1070 2520 hsmskb 1071 1006 1071 2522 hsmskc 1072 1007 1072 2524 hsmskd 1073 1008 1073 2534 hstat 1078 1057 1078 2502 hsticw 1057 735 1057 2544 htemp 1085 779 783 1024 1025 1085 100000 htfasy 249 249 1120 2550 htflgt 1089 874 880 901 948 1089 40000 htfop1 249 249 1126 200000 htfpl 249 249 1123 17 htfspd 249 249 802 3063 htibln 1299 1244 1256 1299 3045 0 ht.flg 249 249 801 805 866 873 1200 1233 1 ht.tib 249 249 845 1646 2510 hunmsk 1063 741 742 1063 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 134 octal symbol references by sequence no. 6446 iabsad 3062 3004 3015 3019 3062 2075 icflag 633 481 487 633 52 icmdat 83 1869 2076 ictmtp 634 559 590 634 3350 icw02 1555 1461 1555 3362 icw07 1560 1487 1560 3350 icws 1553 1528 1553 53 idlcnt 88 3467 54 idlint 86 3465 55 idlmax 89 3468 56 idlmin 90 3469 57 idloop 87 3466 60 ignore 45 2692 3473 3570 3571 7166 ignrad 3570 3234 3265 3570 3327 inhchn 1526 1431 1466 1471 1508 1517 1522 1526 0 init 277 42 277 278 10 initop 150 150 2323 3482 3483 3484 3485 2072 initst 630 583 630 4321 intmsk 1954 1927 1954 0 intv 113 113 1875 1660 iomch 445 368 395 421 423 430 445 456 458 489 494 665 708 1549 2358 2690 3451 61 iomflt 48 3454 4722 ipcw 2323 2064 2123 2174 2287 2323 2486 2700 7050 ipcwa 3482 3421 3482 7052 ipcwb 3483 3422 3483 7054 ipcwc 3484 3423 3484 7056 ipcwd 3485 3424 3485 6447 ipgerr 3063 3025 3063 3300 6310 istart 2948 43 2948 3575 6450 istpcl 3064 2957 2962 2990 2998 3009 3064 7223 itemp 3604 3360 3361 3604 16 itest 64 1859 1523 itl010 367 367 396 3561 1546 itl020 394 394 437 467 599 678 1011 2059 2876 3764 itl022 1630 1625 1630 4006 itl025 1654 1622 1638 1654 4013 itl030 1667 1667 1675 4031 itl040 1684 1679 1684 4052 itl050 1713 1707 1713 4063 itl060 1731 1731 1739 4073 itl070 1741 1733 1741 4104 itl080 1769 1769 1786 4124 itl090 1788 1753 1778 1788 6345 itl100 2987 2959 2987 2991 6365 itl110 3006 3006 3013 3022 6404 itl120 3024 2982 2985 3024 6464 itl130 3083 2996 3083 6473 itl140 3092 3010 3092 6503 itl150 3118 3115 3118 6521 itl160 3143 3139 3143 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 135 octal symbol references by sequence no. 6525 itl170 3154 3090 3154 6551 itl180 3191 3026 3191 6556 itl190 3203 3199 3203 6565 itl200 3219 3219 3224 6574 itl210 3228 3228 3239 6624 itl215 3261 3261 3463 6661 itl220 3293 3282 3293 6673 itl230 3323 1464 3313 3323 6705 itl240 3336 3336 3340 6706 itl250 3337 3328 3333 3337 3339 6712 itl260 3348 3325 3348 6716 itl270 3355 3355 3372 6745 itl290 3390 3390 3433 6746 itl300 3392 3388 3392 6775 itl310 3427 3400 3427 6777 itl320 3432 3415 3425 3432 7000 itl330 3435 3430 3435 7060 itl340 3489 3447 3489 7061 itl350 3490 3450 3490 7102 itl360 3520 3513 3520 7114 itl370 3532 3525 3532 7133 itl380 3553 3541 3553 2253 itlms1 820 820 3050 3000 itlms2 1217 1217 3051 3077 itlms3 1319 1319 3052 450 itmb 113 113 343 1851 6452 itrcdm 3066 3066 3580 4404 iwc010 2007 2004 2007 4406 iwc020 2010 2002 2010 4370 iwcon 2000 621 1098 1550 2000 2003 2005 2011 2014 2352 2695 4407 iwcret 2013 2008 2013 7170 iwcrlf 3573 3288 3573 672 .crbrk 114 114 3462 706 .crbtm 114 114 3472 650 .crbuf 114 114 1846 3588 656 .crcon 114 114 1849 3459 701 .crcpt 114 114 3032 653 .criom 114 114 623 2701 3041 651 .crmem 114 114 1100 3034 3590 704 .crmet 114 114 1108 1406 652 .crnbf 114 114 1880 675 .crnbs 114 114 1863 654 .crnhs 114 114 1848 3448 655 .crnls 114 114 1847 3585 702 .crpte 114 114 3035 3589 664 .crreg 114 114 3577 677 .crskd 114 114 1868 705 .crtdt 114 114 1882 662 .crtrb 114 114 1103 3593 663 .crtrc 114 114 3594 703 .crtsz 114 114 3592 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 136 octal symbol references by sequence no. 665 .crttb 114 114 1857 666 .crtte 114 114 1404 1865 3579 737 .mpool 120 120 1881 4316 .sstat 1952 1917 1952 1964 500 l1mb 113 113 2361 4766 lals 2344 2030 2344 5332 lastat 2678 2327 2353 2438 2678 5376 lbaud 2720 2617 2639 2720 4754 lcfast 2336 2238 2336 4752 lcficw 2335 2224 2239 2335 2402 2404 2449 2458 4770 lchnrp 2346 2035 2036 2346 5014 lcmpa1 2369 2219 2369 5015 lcmpa2 2370 2234 2370 5404 lcnfrm 2730 2334 2336 2356 2730 4756 lcricw 2337 2222 2237 2337 2409 4750 lcslow 2334 2223 2334 4322 ldimb 1955 1935 1939 1946 1955 5335 lerct1 2684 2380 2505 2684 12 lf 135 135 1133 1135 1137 1572 1574 1576 1578 1580 1582 1584 1586 1588 1590 1592 1594 1596 1598 2907 2909 2911 2913 2915 2917 2919 2921 2923 2925 3600 4760 lfig 2338 2026 2027 2096 2338 2531 4734 licw1 2328 2140 2176 2296 2328 2493 4736 licw2 2329 2225 2329 4740 licw3 2330 2250 2330 4742 licw4 2331 2240 2331 4744 licw5 2332 2221 2332 4746 licw6 2333 2236 2333 4326 limodl 1961 1942 1961 4324 list 1958 1934 1958 1556 l.a001 407 407 666 1657 l.b001 443 431 443 709 2067 l.d001 626 500 626 2070 l.d002 627 548 627 2071 l.d003 628 524 628 2574 l.f001 1113 840 1113 2575 l.f002 1114 786 1114 2576 l.f003 1115 790 1115 2577 l.f004 1116 791 1116 2600 l.f005 1117 793 1117 2601 l.f006 1118 795 1118 2603 l.f008 1120 806 876 1120 1234 2604 l.f009 1121 825 1121 2605 l.f010 1122 832 1122 2606 l.f011 1123 902 1123 2607 l.f012 1124 905 1124 2610 l.f013 1125 960 1125 2611 l.f014 1126 949 1126 2612 l.f015 1127 964 1127 2613 l.f016 1128 951 1128 2614 l.f017 1129 878 1129 3203 l.i001 1408 1379 1408 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 137 octal symbol references by sequence no. 3204 l.i002 1409 1381 1409 3206 l.i004 1411 1385 1411 3207 l.i005 1412 1387 1412 3210 l.i006 1413 1328 1413 3333 l.j001 1532 1435 1532 4226 l.m001 1887 1678 1813 1887 4227 l.m002 1888 1773 1888 4230 l.m003 1889 1632 1889 4231 l.m004 1890 1631 1890 4232 l.m005 1891 1624 1891 5005 l.q001 2361 2045 2361 5006 l.q002 2362 2083 2085 2362 5010 l.q003 2363 2147 2257 2363 5011 l.q004 2364 2167 2272 2284 2364 2440 2481 5012 l.q005 2365 2227 2365 5013 l.q006 2366 2242 2366 5357 l.r001 2704 2425 2704 5360 l.r002 2705 2585 2603 2705 5361 l.r003 2706 2640 2706 5362 l.r004 2707 2707 2799 5363 l.r005 2708 2708 2827 5364 l.r006 2709 2709 2832 5365 l.r007 2710 2710 2837 5366 l.r008 2711 2711 2787 5367 l.r009 2712 2712 2782 6440 l.t002 3055 2958 2960 2995 3055 6441 l.t003 3056 2973 2974 3003 3017 3021 3056 3211 3217 3226 3271 6442 l.t004 3057 2968 2999 3020 3057 6443 l.t005 3058 3058 3086 6444 l.t006 3059 2972 3001 3059 6445 l.t007 3060 3060 3088 3104 7042 l.u001 3475 3438 3475 7043 l.u002 3476 3410 3476 7044 l.u003 3477 3403 3477 7045 l.u004 3478 3114 3138 3177 3198 3281 3478 3512 7046 l.u005 3479 3241 3479 7216 l.v001 3597 3330 3597 7217 l.v002 3598 3309 3598 7220 l.v003 3599 3357 3599 7221 l.v004 3600 3573 3600 7222 l.v006 3602 3550 3602 5505 ljmptb 2746 2746 2817 6006 lmicw1 2895 2154 2895 6010 lmicw2 2896 2187 2896 6012 lmicw3 2897 2264 2897 6014 lmicw4 2898 2309 2898 6016 lmicw5 2899 2391 2899 6020 lmicw6 2900 2432 2900 6022 lmicw7 2901 2508 2901 6024 lmicw8 2902 2565 2902 6026 lmicw9 2903 2634 2903 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 138 octal symbol references by sequence no. 6031 lmsg1 2908 2895 2908 6053 lmsg2 2910 2896 2910 6074 lmsg3 2912 2897 2912 6121 lmsg4 2914 2898 2914 6144 lmsg5 2916 2899 2916 6171 lmsg6 2918 2900 2918 6222 lmsg7 2920 2901 2920 6245 lmsg8 2922 2696 2697 2902 2922 6265 lmsg9 2924 2698 2699 2903 2924 4763 lnbrts 2341 2112 2203 2213 2341 2534 2689 5637 lrbuf1 2882 2328 2330 2332 2333 2350 2351 2882 4767 lsel 2345 2033 2345 3 lsf1 66 2747 4 lsf2 67 2748 5 lsf3 68 2749 6 lsf4 69 2750 7 lsf5 70 2751 10 lsf6 71 2752 5506 lsfcms 2747 2702 2747 5334 lshort 2683 2396 2400 2683 2794 4441 lsl010 2054 2031 2054 4447 lsl020 2062 2055 2062 4447 lsl030 2063 2034 2063 4462 lsl040 2081 2073 2076 2080 2081 4470 lsl050 2087 2084 2087 4472 lsl060 2095 2086 2095 4503 lsl070 2106 2100 2106 4505 lsl080 2109 2102 2109 4506 lsl090 2111 2108 2111 4512 lsl100 2122 2122 2156 2189 2266 2311 2393 2686 4520 lsl110 2129 2116 2125 2129 4547 lsl120 2158 2150 2158 2165 4552 lsl130 2162 2162 2169 4555 lsl140 2166 2161 2166 4560 lsl150 2171 2168 2171 4600 lsl160 2191 2179 2182 2185 2191 4601 lsl170 2193 2193 2198 4606 lsl180 2200 2196 2200 4614 lsl190 2212 2204 2212 4632 lsl200 2233 2215 2233 4644 lsl210 2249 2229 2249 4663 lsl220 2268 2260 2268 2277 4670 lsl230 2274 2274 2281 2285 4673 lsl240 2279 2273 2279 4675 lsl250 2283 2271 2283 4702 lsl260 2297 2297 2318 4703 lsl270 2299 2299 2303 4707 lsl280 2305 2301 2305 4715 lsl290 2313 2307 2313 5017 lsl300 2378 2316 2378 5021 lsl310 2382 2382 2506 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 139 octal symbol references by sequence no. 5034 lsl320 2395 2132 2387 2395 5036 lsl330 2399 2389 2399 5041 lsl340 2403 2397 2403 5062 lsl360 2429 2426 2429 5070 lsl370 2436 2428 2436 2478 5106 lsl380 2453 2446 2453 5115 lsl390 2462 2455 2462 5123 lsl400 2472 2464 2472 5124 lsl410 2475 2441 2451 2460 2470 2475 2482 5127 lsl420 2480 2439 2480 5134 lsl430 2495 2495 2521 5143 lsl440 2504 2504 2515 5151 lsl450 2512 2503 2512 5151 lsl460 2513 2220 2235 2513 5160 lsl470 2529 2422 2519 2529 5172 lsl480 2543 2543 2659 5217 lsl490 2569 2551 2569 5230 lsl500 2581 2571 2573 2581 5235 lsl510 2588 2584 2588 5243 lsl520 2596 2590 2596 5254 lsl530 2607 2604 2607 5256 lsl540 2611 2598 2611 5261 lsl550 2616 2594 2606 2609 2616 5271 lsl560 2626 2622 2626 5303 lsl570 2638 2620 2638 5313 lsl580 2649 2579 2649 5314 lsl590 2653 2556 2567 2636 2653 5322 lsl600 2663 2657 2663 5515 lsl610 2766 2672 2766 5607 lsl620 2836 2831 2836 5611 lsl630 2839 2834 2839 5626 lsl640 2867 2867 2874 4413 lsla 2025 402 2025 3584 62 lslajt 65 2746 5372 lslano 2716 2357 2641 2716 2767 2814 2816 5016 lslhcr 2372 2046 2372 5443 lsmsg 2735 2329 2331 2735 5375 lsteo 2719 2545 2555 2618 2719 4323 lstsl 1956 1931 1956 4346 lstsls 1971 1930 1971 6004 lstxz 2891 2355 2891 5370 lsvx3 2714 2530 2668 2714 2778 0 lt10 239 239 2591 5 lt15a 243 243 2600 1 lt30a 240 240 2612 5377 ltdch 2722 2413 2447 2456 2465 2722 5371 ltemp1 2715 2715 2865 2873 4764 ltemp 2342 2192 2197 2201 2228 2243 2342 2384 2415 2443 2444 2535 2656 100 ltfibm 237 237 2705 5374 ltibad 2718 2541 2570 2647 2718 0 lt.flg 233 233 2544 2547 2554 2577 2586 2592 2601 2602 2613 2619 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 140 octal symbol references by sequence no. 1 lt.tib 234 234 2548 2650 4762 ltryct 2340 2115 2124 2340 1 macwk1 2000 1197 1292 1316 1399 2000 2014 3 macwk2 2000 1197 1316 2000 3113 mak005 1332 1329 1332 3117 mak010 1337 1319 1326 1337 3126 mak020 1350 1350 1359 3137 mak030 1362 1357 1362 3161 mak040 1383 1380 1383 3166 mak050 1389 1386 1389 3065 maktib 1316 1102 1316 1399 1883 2687 4320 mbxmsk 1953 1921 1953 3215 metadr 1418 1109 1335 1393 1418 7143 mexist 3565 3379 3565 30 m.asyl 120 120 1238 1332 56 m.synl 120 120 1236 1330 11 modnum 278 278 1273 1288 1322 1334 1354 1452 2773 17 msdsp 50 1843 3405 msg02 1573 1555 1573 3423 msg03 1575 1556 1575 3443 msg04 1577 1557 1577 3461 msg05 1579 1558 1579 3477 msg07 1581 1485 1560 1581 3516 msg08 1583 1561 1583 3544 msg09 1585 1562 1585 3567 msg10 1587 1563 1587 3613 msg11 1589 1564 1589 3636 msg12 1591 1565 1591 3660 msg13 1593 1566 1593 3711 msg14 1595 1567 1595 3732 msg15 1597 1568 1597 3212 mtemp 1416 1318 1327 1356 1368 1416 63 mvplmm 97 3033 3581 1653 ndv010 434 432 434 1662 nmpcw 447 435 447 1637 nodev 419 382 419 777776 nsfslo 227 227 2709 777775 nsfsnd 226 226 2708 40 ntimpb 2680 2550 2680 64 nxtrce 96 3587 4347 parity 1974 614 1932 1940 1974 1990 1992 4365 parwd1 1994 1980 1994 4366 parwd2 1995 1984 1995 200 pbit 130 130 2722 2724 2879 2880 1664 print 454 403 454 20 pspec 80 470 100 pte.s 3069 3069 3093 21 pterm 79 471 2000 ptro 142 142 2364 400 rcv 145 145 1909 2325 2326 3 reqcst 151 151 1068 2324 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 141 octal symbol references by sequence no. 4726 rpcw 2325 2145 2280 2325 2473 1503 rstclk 331 331 336 606 1860 2354 5 rstmsk 152 152 1063 20 rts 143 143 1068 1909 2326 2677 1557 savein 408 405 408 1876 2691 3470 1520 scindc 345 320 326 332 335 345 1517 sciv 344 324 344 1514 scoff 342 322 334 342 1512 scon 341 325 341 1516 scvalu 343 323 343 4234 sdqdat 1893 1803 1893 65 secdsp 92 1894 1472 setclk 319 319 327 605 1095 2348 3586 4 setmsk 153 153 1066 66 setptw 93 1107 1405 1879 3028 1 sfcm.0 124 122 124 2000 sffbsc 122 122 1125 40 sffebd 122 122 956 400000 sffhdl 122 122 1127 1 sffslo 124 124 227 2710 2 sffsnd 124 124 226 10000 sffsyn 122 122 1129 5 sfhsiz 122 122 826 1080 4 sf.bfc 124 124 2775 24 sf.cfg 122 122 987 5 sf.flg 122 122 124 879 957 961 965 2828 2833 2838 0 sf.hcm 122 122 854 42 sf.hln 122 122 1214 15 sf.hsl 122 122 863 1643 10 sf.icw 124 124 2823 3 sf.ioc 124 124 2789 14 sf.ity 124 124 2790 12 sf.ltb 124 124 2851 1 sf.nxa 122 122 857 2 sf.nxp 122 122 124 858 11 sf.ocw 124 124 2825 13 sf.otb 124 124 2798 15 sf.oty 124 124 2797 16 sf.sic 124 124 2804 23 sf.ssl 122 122 861 26 sf.sta 122 122 819 4 sf.tib 122 122 984 1647 3 sf.tly 122 122 860 42 sf.waq 122 122 856 24 sflsq 122 122 1211 12 sfssq 122 122 1209 4367 simsw 1997 472 1529 1918 1925 1997 2349 3042 67 skdata 82 1867 70 skdms1 100 3047 71 skdms2 101 3029 72 skdms3 102 3030 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 142 octal symbol references by sequence no. 73 skdms4 103 3036 74 skdms5 104 3037 75 skdms6 105 3038 76 skdms7 106 3039 5373 slotno 2717 2538 2560 2629 2643 2658 2717 200 snd 146 146 1909 2326 2677 5330 spcw 2677 2423 2677 4730 srpcw 2326 2255 2326 2468 4332 stdcw1 1963 1923 1961 1963 4336 stdcw2 1965 1928 1965 11 stomrg 154 154 1070 1071 1072 1073 3254 stop02 1457 1457 3315 3266 stop03 1470 484 1470 3271 stop04 1475 508 1475 3273 stop05 1479 576 1479 3304 stop08 1491 1491 2089 3306 stop09 1495 1495 2104 3310 stop10 1499 1499 2127 3312 stop11 1503 1503 2206 3314 stop12 1507 1507 3336 3317 stop13 1512 1512 2624 3321 stop14 1516 1516 3040 3324 stop15 1521 1521 3595 3216 stop 1422 1422 1468 1473 1477 1481 1493 1497 1501 1505 1510 1514 1519 1524 3237 stp010 1440 1432 1440 3240 stp020 1442 1430 1442 3250 stp030 1452 1424 1448 1452 3263 stp040 1465 1459 1465 4330 stslst 1962 1943 1956 1958 1962 1971 2 stx 136 136 2177 2298 2496 2722 2723 2724 2725 2731 2736 2739 2742 2890 26 sync 138 138 2731 2736 20000 tfauto 118 118 1128 400 tfctrl 118 118 1409 20 tfdlup 118 118 1124 200000 tfsftr 118 118 1412 3214 tibadr 1417 1104 1323 1338 1363 1397 1417 12 tibtab 282 282 1864 3578 77 timrjt 77 1852 32 t.brkp 118 118 1391 3 t.cur 118 118 1371 2 t.flg2 118 118 1388 1 t.flg 118 118 906 952 1382 30 t.ftse 118 118 2646 53 t.leng 118 118 1320 3149 4 t.line 118 118 1369 52 t.metr 118 118 1395 30 t.sfcm 118 118 849 875 1640 17 t.type 118 118 871 920 1367 1375 1636 77 tmch 113 113 321 333 1780 361 tmro 113 113 344 1853 22 trace 94 assm 01 12-10-82 15.883 init - fnp initialization module for multics page 143 octal symbol references by sequence no. 100 trams1 107 3053 101 trams2 108 3046 7 ttbsc 267 267 1207 23 ttcolt 270 270 1635 22 tthdlc 269 269 1205 21 ttx25 268 268 1203 1 tyrq 113 113 1874 2 tytm 113 113 1873 7 undef 245 245 2553 2621 37 us 139 139 2733 2738 2739 2741 2742 102 utsave 78 3576 3275 warn07 1483 1483 1489 2058 11 wcon 54 2018 3457 77400 window 3070 3057 3070 1 w.2 615 627 1055 1057 1080 1121 1958 1966 1969 2327 7144 xstsav 3567 3353 3567 ** 48530 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