assm 01 02-03-86 09.436 init - fnp initialization module for multics page 1 preface program break 5324 common length 0 v count bits 6 primary symdef entry init 0 istart 4430 secondary symdef entry .chain 0 block length symref 1 hfv 2 ctrl 3 wcon 4 diajt 5 dlist 6 etrip 7 exist end of binary card 00000001 10 fpsel 11 itest 12 msdsp 13 obsel 14 pspec 15 pterm 16 trace 17 badint 20 bfcksw 21 brktab end of binary card 00000002 22 conchn 23 conman 24 consjt 25 contip 26 diasel 27 dicell 30 diconf 31 dindcw 32 dspqur 33 endtrc end of binary card 00000003 34 etrint 35 etrmon 36 frebfh assm 01 02-03-86 09.436 init - fnp initialization module for multics page 2 37 frebuf 40 fremem 41 fresml 42 getbfm 43 getbuf 44 getmem 45 hslajt end of binary card 00000004 46 icmdat 47 idlcnt 50 idlint 51 idlmax 52 idlmin 53 idloop 54 ignore 55 iomflt 56 mvplmm 57 nxtrce end of binary card 00000005 60 secdsp 61 setptw 62 skdata 63 timrjt 64 utsave end of binary card 00000006 assm 01 02-03-86 09.436 init - fnp initialization module for multics page 3 1 ****************************************************** 2 * * 3 * * 4 * copyright (c) 1972 by massachusetts institute of * 5 * technology and honeywell information systems, inc. * 6 * * 7 * * 8 ****************************************************** 9 10 lbl ,init assm 01 02-03-86 09.436 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 * modified by robert coren to support buffers in extended memory and 35 * to eliminate code for 32k fnp. 36 * modified september 1983 by robert coren to check for zero-length 37 * trace buffer. 38 * 39 *********************************************************************** 40 41 pcc on 42 pmc off 43 detail on 44 editp on 45 46 symdef init 47 symdef istart 48 49 symref ignore ignore interrupts routine 50 symref badint extraneous interrupt routine 51 symref exist summary of which iom channels exist 52 symref iomflt iom channel fault routine 53 symref hfv hardware fault vector entry base address 54 symref msdsp master dispatcher entry location 55 symref etrip elapsed timer rollover interrupt proc. 56 symref dicell dia configuration switch data location 57 symref dindcw dia_man interrupt dcw 58 symref wcon console routine entry point 59 symref contip console terminate interrupt proc address 60 symref conchn console channel number 61 symref getbuf buffer allocating subroutine 62 symref frebuf buffer freeing subroutine 63 symref frebfh free buffer in extended memory assm 01 02-03-86 09.436 init - fnp initialization module for multics page 5 64 symref getmem memory allocating subroutine 65 symref fremem memory freeing subroutine 66 symref fresml routine to clean up fres space 67 symref bfcksw switch that controls buffer checking 68 symref ctrl control tables 69 symref itest "test-state" entry to interpreter 70 symref hslajt hsla jump tables 71 symref diajt dia jump tables 72 symref dlist dia icws, pcws, etc. 73 symref diconf dia configuration area 74 symref consjt console jump tables 75 symref timrjt timer jump tables 76 symref utsave place in utilities where regs get saved 77 symref pterm printer terminate interrupt handler 78 symref pspec printer special handler 79 symref brktab addr of table in breakpoint_man 80 symref skdata address of scheduler data block 81 symref icmdat address of ic-moniroting data block 82 symref etrmon address of icmdat in sskdata 83 symref etrint address of timer interval in skdata 84 symref idlint idle metering interval 85 symref idloop start of idle loop 86 symref idlcnt counter maintained by idle loop 87 symref idlmax maximum idle count value 88 symref idlmin mininum " " " 89 symref dspqur secondary queuer 90 symref secdsp secondary dispatcher 91 symref setptw set page table word 92 symref trace trace module 93 symref endtrc (in trace module) last word in trace buffer 94 symref nxtrce (in trace module) next entry in trace buffer 95 symref mvplmm move paged lower memory maximum address 96 symref conman set to -1 by init if console_man is in image 97 symref getbfm interrupt time metering area for getbuf 98 symref diasel 'sel' instruction in dia_man 99 symref fpsel and two in utilities 100 symref obsel 101 102 pmc save,on 00000 103 systm assm 01 02-03-86 09.437 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 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 02-03-86 09.437 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 000003 dis0 set 3 dia special - 0 000023 dis1 set 19 dia special - 1 000043 dis2 set 35 dia special - 2 000063 dis3 set 51 dia special - 3 000103 dis4 set 67 dia special - 4 000123 dis5 set 83 dia special - 5 000143 dis6 set 99 dia special - 6 000163 dis7 set 115 dia special - 7 000203 dis8 set 131 dia special - 8 000223 dis9 set 147 dia special - 9 000243 dis10 set 163 dia special - 10 000263 dis11 set 179 dia special - 11 000303 dis12 set 195 dia special - 12 000323 dis13 set 211 dia special - 13 000343 dis14 set 227 dia special - 14 000363 dis15 set 243 dia special - 15 000140 h1ft set 96 hsla 1 fault assm 01 02-03-86 09.437 init - fnp initialization module for multics page 8 datanet configuration description 000004 h1a0 set 4 hsla 1 subch 0 active terminate vector 000005 h1a16 set 5 hsla 1 subch 16 active terminate vector 000006 h1c0 set 6 hsla 1 subch 0 config terminate vector 000007 h1c16 set 7 hsla 1 subch 16 config terminate vector 000024 h1a1 set 20 hsla 1 subch 1 active terminate vector 000025 h1a17 set 21 hsla 1 subch 17 active terminate vector 000026 h1c1 set 22 hsla 1 subch 1 config terminate vector 000027 h1c17 set 23 hsla 1 subch 17 config terminate vector 000044 h1a2 set 36 hsla 1 subch 2 active terminate vector 000045 h1a18 set 37 hsla 1 subch 18 active terminate vector 000046 h1c2 set 38 hsla 1 subch 2 config terminate vector 000047 h1c18 set 39 hsla 1 subch 18 config terminate vector 000064 h1a3 set 52 hsla 1 subch 3 active terminate vector 000065 h1a19 set 53 hsla 1 subch 19 active terminate vector 000066 h1c3 set 54 hsla 1 subch 3 config terminate vector 000067 h1c19 set 55 hsla 1 subch 19 config terminate vector 000104 h1a4 set 68 hsla 1 subch 4 active terminate vector 000105 h1a20 set 69 hsla 1 subch 20 active terminate vector 000106 h1c4 set 70 hsla 1 subch 4 config terminate vector 000107 h1c20 set 71 hsla 1 subch 20 config terminate vector 000124 h1a5 set 84 hsla 1 subch 5 active terminate vector 000125 h1a21 set 85 hsla 1 subch 21 active terminate vector 000126 h1c5 set 86 hsla 1 subch 5 config terminate vector 000127 h1c21 set 87 hsla 1 subch 21 config terminate vector 000144 h1a6 set 100 hsla 1 subch 6 active terminate vector assm 01 02-03-86 09.437 init - fnp initialization module for multics page 9 datanet configuration description 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 000305 h1a28 set 197 hsla 1 subch 28 active terminate vector assm 01 02-03-86 09.437 init - fnp initialization module for multics page 10 datanet configuration description 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 02-03-86 09.437 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 02-03-86 09.437 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 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 13 datanet configuration description 000427 h2fts set 279 hsla 2 fault status word 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 02-03-86 09.437 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 104 comreg assm 01 02-03-86 09.437 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 02-03-86 09.437 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 000707 .crnxe set 455 next available space in extended memory 000710 .crbpe set 456 buffer paging window table entry 000760 .crcpr set 496 copyright notice 105 00000 106 hwcm assm 01 02-03-86 09.437 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 107 00000 108 tib assm 01 02-03-86 09.437 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 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 19 terminal information block (tib) 000030 t.ftse equ t.dlst+1 first time slot entry in lsla table 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.abf0 equ t.metr+1 absolute address of first permanent buffe 000054 t.abf1 equ t.abf0+1 absolute address of first permanent buffe 000055 t.leng equ t.abf1+1 length of a tib ******************************** * t.stat bits ******************************** assm 01 02-03-86 09.437 init - fnp initialization module for multics page 20 terminal information block (tib) 000001 tsfcd bool 000001 carrier detect 000002 tsfcts bool 000002 clear to send 000004 tsfdsr bool 000004 data set ready 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 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 21 terminal information block (tib) 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 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 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 22 terminal information block (tib) 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 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 001000 tfabf0 bool 001000 t.afb0 available 010000 tfabf1 bool 010000 t.abf1 available 020000 tfmask bool 020000 channel has been masked for excessive int 040000 tfinq bool 040000 input is queued for the channel ********************************* assm 01 02-03-86 09.437 init - fnp initialization module for multics page 23 terminal information block (tib) * redefined tib flags in t.flg ********************************* 000020 tfdlup equ tfprtr line is on dialup modem 109 00000 110 meters assm 01 02-03-86 09.437 init - fnp initialization module for multics page 24 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 000750 .mblow set 488 buffer allocated in low memory 000030 .mleng equ .mpanf+2-.mdilc length of system-wide meters assm 01 02-03-86 09.437 init - fnp initialization module for multics page 25 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 02-03-86 09.437 init - fnp initialization module for multics page 26 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 111 00000 112 sfcm hsla pcc save,off assm 01 02-03-86 09.437 init - fnp initialization module for multics page 27 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 **not used** char address of next asynchr 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 (primary) 000005 sfhsiz equ 5 number of entries in hardware status buf assm 01 02-03-86 09.437 init - fnp initialization module for multics page 28 sfcm for hsla room for 6 status words 000042 sf.est equ sf.sta+sfhsiz*2+2 000042 sf.shq equ sf.est hardware status q, sicw here (secondary) room for 6 more status word 000056 sf.ast equ sf.shq+sfhsiz*2+2 000056 sf.hln equ sf.ast 000056 sf.waq equ sf.ast 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) 000070 sf.sln equ sf.hln+sfssq 000102 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 001000 sffcai bool 001000 on if altermate status queue is active 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 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 29 sfcm for hsla 040000 sffofr bool 040000 old setting of tffrmi (lines up on tffrmi 100000 sffnib bool 100000 need to allocate new input buffer(s) 400000 sffhdl bool 400000 uses hdlc channel board 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 113 00000 114 devtab assm 01 02-03-86 09.437 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 115 00000 116 buffer assm 01 02-03-86 09.437 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 02-03-86 09.437 init - fnp initialization module for multics page 32 buffer format 117 eject 000200 118 pbit bool 200 119 120 character codes 121 000015 122 cr bool 15 000012 123 lf bool 12 000002 124 stx bool 2 000033 125 esc bool 33 000026 126 sync bool 26 000037 127 us bool 37 128 129 002000 130 ptro bool 2000 pre-tally runout status 000020 131 rts bool 20 set request-to-send 000040 132 dtr bool 40 data terminal ready 000400 133 rcv bool 400 receive mode 000200 134 snd bool 200 send mode 135 136 pcw opcodes 137 000010 138 initop bool 10 000003 139 reqcst bool 3 000005 140 rstmsk bool 5 000004 141 setmsk bool 4 000011 142 stomrg bool 11 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 33 configuration tree table definitions 143 ttls configuration tree table definitions 144 ************************************************************************ 145 * these symbolic names are used to access the various fields of the 146 * configuration tree table (fig tree). 147 * 148 * three symbols are defined for each field: 149 * 150 * fa can be used as a mask to isolate the field. 151 * fb can be used as a mask when the field is right justified. 152 * fc the position ofthe lsb of the field. 153 * 154 * when changes are made to this table, be sure to check all useage 155 * of symbols beginning with "fa". 156 ************************************************************************ 157 400000 158 fampx bool 400000 1 = multiplexed channel 000001 159 fbmpx bool 1 000000 160 fcmpx equ 0 161 200000 162 farel bool 200000 1 = device released 000001 163 fbrel bool 1 000001 164 fcrel equ 1 165 100000 166 faasyn bool 100000 1 = asynchronous device 000001 167 fbasyn bool 1 000002 168 fcasyn equ 2 169 070000 170 fadacn bool 070000 device number for hsla and lsla 000007 171 fbdacn bool 7 000005 172 fcdacn equ 5 173 004000 174 fatnd bool 004000 1 = t&d is in control 000001 175 fbtnd bool 1 000006 176 fctnd equ 6 177 003000 178 fachrl bool 003000 character length code 000003 179 fbchrl bool 3 000010 180 fcchrl equ 8 181 000760 182 fadevc bool 000760 device type code 000037 183 fbdevc bool 37 000015 184 fcdevc equ 13 185 000017 186 fasped bool 000017 device speed code 000017 187 fbsped bool 17 000021 188 fcsped equ 17 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 34 configuration tree table definitions 189 eject 190 ********************************************************* 191 * device type codes 192 ********************************************************* 193 000000 194 dnimp bool 00 not implemented 195 000001 196 dclock bool 01 fnp's clocks 197 000002 198 ddia bool 02 dia 199 000003 200 dhsla bool 03 hsla 201 000004 202 dlsla bool 04 lsla 203 000005 204 dcon bool 05 console 205 000006 206 dprint bool 06 printer 207 208 unused codes 07 - 14 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 35 symbol definition 209 ttls symbol definition rem 210 211 pmc on,save 00000 212 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 213 pmc restore 214 215 216 ******************************************** 217 * modem types 218 ******************************************** 219 000001 220 mt103a equ 1 000002 221 mt201c equ 2 000003 222 mt2025 equ 3 000004 223 mt2026 equ 4 000005 224 mt208a equ 5 000006 225 mt208b equ 6 000007 226 mt209a equ 7 227 10-17 unused 228 000003 229 tt2741 equ 3 terminal type "2741" 000007 230 ttbsc equ 7 line type for bisync 000021 231 ttx25 equ 17 line type for x.25 000022 232 tthdlc equ 18 line type for hdlc 000023 233 ttcolt equ 19 line type for colts channel 234 000074 235 diardc bool 74 dia opcode -- read configuration 000070 236 diadis bool 70 dia opcode -- disconnect 237 238 239 00000 240 init null assm 01 02-03-86 09.437 init - fnp initialization module for multics page 36 symbol definition 00000 241 start init,9 242 pmc restore 243 00012 244 even 00012 245 tibtab bss 816 2 words per tib (unused space will be freed) assm 01 02-03-86 09.437 init - fnp initialization module for multics page 37 init macros 246 ttls init macros 247 248 ******************************************************* 249 * 250 * dn6670 paged data address icw (odd word) 251 * allows iom to directly address all 64k memory 252 * 253 ******************************************************* 254 255 amicwo macro 256 vfd 2/2,3/#1,1/#3,12/#2 257 endm amicwo 258 259 260 * multiply macro 261 262 mpy macro 263 mpf #1 264 lrl 1 265 endm mpy assm 01 02-03-86 09.437 init - fnp initialization module for multics page 38 miscellaneous subroutines 266 ttls miscellaneous subroutines 267 ************************************************************************ 268 * setclk -- set interval timer 269 * rstclk -- reset interval timer 270 * 271 * entry -- setclk 272 * 273 * lda (number milliseconds) 274 * ldq (return address on runout) 275 * tsy setclk-* 276 * 277 * entry -- rstclk 278 * 279 * tsy rstclk-* 280 ************************************************************************ 281 01472 0 00000 0 282 setclk ind ** 01473 0 54 025 1520 283 sti scindc-* save io select register 01474 073 077 0 284 sel tmch select clock channel 01475 0 60 017 1514 285 cioc scoff-* turn clock off 01476 4 17 020 1516 286 sta scvalu-*,* store time value 01477 4 57 020 1517 287 stq sciv-*,* store user's iv 01500 0 60 012 1512 288 cioc scon-* turn clock on 01501 0 44 017 1520 289 ldi scindc-* restor io select reg 01502 4 71 770 1472 290 tra setclk-*,* return 291 292 293 01503 0 00000 0 294 rstclk ind ** 01504 0 54 014 1520 295 sti scindc-* save io select register 01505 073 077 0 296 sel tmch select clock channel 01506 0 60 006 1514 297 cioc scoff-* turn clock off 01507 0 44 011 1520 298 ldi scindc-* restore io select register 01510 4 71 773 1503 299 tra rstclk-*,* return 300 301 302 01511 233100 0 01512 303 even 01512 000000 0 304 scon oct 0,0 01513 000000 0 01514 000000 0 305 scoff oct 0,010000 01515 010000 0 01516 0 00450 0 306 scvalu ind itmb interval timer mailbox address 01517 0 00361 0 307 sciv ind tmro interval timer runout iv address 01520 308 scindc bss 1 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 39 main initialization loop 309 ttls main initialization loop 310 311 ****************************************************************************** 312 * 313 * the code from istart-1 to the begining of channel initialization is only 314 * executed once. therefore, this code is located at the end of the module 315 * so it can be released as buffer space and used for tib and sfcm allocation. 316 * this helps in making available as much memory as 317 * possible for channel initialization. 318 * 319 ****************************************************************************** 320 321 322 ********************************************************* 323 * scan fig tree and initialize devices 324 ********************************************************* 325 01521 1 00000 0 326 figtre ind **+0,1 points to current "fig" -- 1st word 01522 1 00001 0 327 ind **+1,1 points to current "fig" -- 2nd word 328 01523 329 itl010 null 01523 0 07 132 1655 330 lda iomch-* end of binary card 00000007 01524 0336 01 0 331 als 1 01525 4332 00 0 332 cax1 x1 = 2 * iom channel number 01526 4 07 773 1521 333 lda figtre-*,* pluck a fig from the tree of knowledge 01527 6333 00 0 334 caq 01530 4 03 772 1522 335 ldx2 figtre+1-*,* get wd 2 of entry 01531 2337 04 0 336 arl 18-fcdevc-1 r-just device code bits 337 338 * at this point, 339 * q = word 0 of config table 340 * x1 = 2 * (iom channel #) 341 * x2 = word 1 of config table 342 01532 022 037 0 343 iana fbdevc ? non-implemented channel ? 01533 0 74 101 1634 344 tze nodev-* yes 01534 422 002 0 345 icmpa ddia ? device = dia ? 01535 4 74 011 1546 346 tze a.a001-*,* (dia) yes 01536 422 003 0 347 icmpa dhsla ? device = hsla ? 01537 4 74 010 1547 348 tze a.a002-*,* (hsla) yes 01540 422 006 0 349 icmpa dprint ? device = printer ? 01541 4 74 007 1550 350 tze a.a004-*,* (print) yes 01542 422 001 0 351 icmpa dclock ? device = clocks ? 01543 4 74 006 1551 352 tze a.a005-*,* (clocks) yes, also -- last iom channel 353 01544 354 itl020 null 01544 0 76 111 1655 355 aos iomch-* bump to next iom channel 01545 0 71 756 1523 356 tra itl010-* 357 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 40 main initialization loop 358 359 device initialization routines: 01546 0 01674 1 360 a.a001 ind dia direct interface adapter 01547 0 02103 1 361 a.a002 ind hsla high speed line adapter 362 *a.a003 unused 01550 0 01660 1 363 a.a004 ind print line printer 01551 0 03776 1 364 a.a005 ind clocks clocks -- final start up procedures 01552 0 01554 1 365 a.a006 zero savein 366 01553 4336 00 0 367 l.a001 qls 0 01554 368 savein bss 3*16 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 41 nodev -- initialize for non-implemented channel 369 ttls nodev -- initialize for non-implemented channel 370 ************************************************************************ 371 * non-implemented channel: 372 * 373 * --set appropriate iv's to point to an "extraneous interrupt" 374 * reporting routine. 375 * 376 * --send a mask pcw (bit 23 =1) to insure channel is off. 377 ************************************************************************ 378 01634 379 nodev null 380 01634 0 07 021 1655 381 lda iomch-* compute base address of iv's for 01635 0336 01 0 382 als 1 this channel 01636 0 06 017 1655 383 ada iomch-* 01637 0 06 713 1552 384 ada a.a006-* (savein) 01640 4332 00 0 385 cax1 01641 0 07 012 1653 386 lda a.b001-* (badint) 01642 1 17 000 0 387 sta 0,1 01643 1 17 001 0 388 sta 1,1 01644 1 17 002 0 389 sta 2,1 01645 0 07 010 1655 390 lda iomch-* store channel # in "sel" 01646 0 37 006 1654 391 ora l.b001-* (sel 0) instruction 01647 0 17 001 1650 392 sta ndv010-* 393 01650 073 000 0 394 ndv010 sel ** select the channel end of binary card 00000008 01651 0 60 005 1656 395 cioc nmpcw-* send mask pcw 396 01652 0 71 672 1544 397 tra itl020-* 398 399 400 01653 0 07400 3 401 a.b001 ind badint 402 01654 073 000 0 403 l.b001 sel 0 404 01655 0 00000 0 405 iomch zero 0 current iom channel number 01656 406 even 01656 000000 0 407 nmpcw oct 0,010000 pcw0 -- mask channel 01657 010000 0 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 42 print - initialize for line printer 408 ttls print - initialize for line printer 409 ********************************************************************** 410 * setup to run the line printer. init the interrupt vectors 411 * into ptrac. 412 ********************************************************************** 413 01660 414 print null 415 01660 0 07 775 1655 416 lda iomch-* get the channel number 01661 0336 01 0 417 als 1 times 2 01662 0 06 773 1655 418 ada iomch-* now is times 3 01663 0 06 667 1552 419 ada a.a006-* (savein) plus base of save area 01664 4332 00 0 420 cax1 copy into x1 421 01665 0 07 005 1672 422 lda a.c001-* (pspec) get special handler addr 01666 1 17 001 0 423 sta 1,1 put into save area 01667 0 07 004 1673 424 lda a.c002-* (pterm) and terminate handler 01670 1 17 002 0 425 sta 2,1 save it too, to be restored later 426 01671 0 71 653 1544 427 tra itl020-* return for next channel 428 429 01672 0 06000 3 430 a.c001 ind pspec 01673 0 06400 3 431 a.c002 ind pterm assm 01 02-03-86 09.437 init - fnp initialization module for multics page 43 dia -- initialize for inter-computer adapter 432 ttls dia -- initialize for inter-computer adapter 433 ************************************************************************ 434 * this routine initializes the dia by reading the setting of the 435 * configuration data switches. 436 ************************************************************************ 437 01674 438 dia null 439 01674 0 76 203 2077 440 aos icflag-* 441 01675 0 07 760 1655 442 lda iomch-* 01676 0 27 203 2101 443 cmpa diachn-* is it the one on which we got the interrupt? 01677 0 64 645 1544 444 tnz itl020-* no, ignore it altogether 01700 0 72 021 1721 445 orsa dia030-* 01701 0 72 100 2001 446 orsa dia070-* 01702 0 72 014 1716 447 orsa dia020-* 01703 4 72 141 2044 448 orsa a.d007-*,* bst010 01704 4 72 162 2066 449 orsa a.d025-*,* diasel (in dia_man) 01705 4 72 162 2067 450 orsa a.d026-*,* fpsel (in utilities) 01706 4 72 162 2070 451 orsa a.d027-*,* obsel (in utilities) 01707 0336 01 0 452 als 1 set level 1 iv to extraneous int routine 01710 0 06 745 1655 453 ada iomch-* 01711 0 06 641 1552 454 ada a.a006-* (savein) 01712 4332 00 0 455 cax1 01713 0 07 740 1653 456 lda a.b001-* (badint) 01714 1 17 001 0 457 sta 1,1 458 01715 0 07 154 2071 459 lda l.d001-* (=o400000) 01716 2337 00 0 460 dia020 arl ** 01717 0 17 157 2076 461 sta cdiaic-* save operand for "sic" 462 end of binary card 00000009 01720 4 47 120 2040 463 ldq a.d002-*,* (exist) 01721 4336 00 0 464 dia030 qls ** ? does this channel exist ? 01722 0 75 003 1725 465 tmi dia040-* yes 01723 4 71 001 1724 466 tra 1,* 01724 0 03300 1 467 ind stop04 "dia does not exist" eeeeeeeeeeeeeeeeeeee 468 01725 0 03 122 2047 469 dia040 ldx2 a.d010-* (diajt) 01726 1 13 002 0 470 stx2 2,1 put address of dia terminate jump table 471 in saved iv 01727 0 07 152 2101 472 lda diachn-* and put dia channel no. in jump table entries 01730 0336 16 0 473 als 14 line it up 01731 2 72 002 0 474 orsa 2,2 01732 0 43 116 2050 475 ldx1 a.d011-* (dis0) -- first dia "special" iv 01733 473 760 0 476 ilq -16 we will store 16 jump table addresses 01734 273 003 0 477 dia050 iacx2 3 increment jump table address 01735 1 13 000 0 478 stx2 0,1 put it in interrupt vector 01736 2 72 002 0 479 orsa 2,2 and store channel number 01737 573 001 0 480 iaq 1 bump counter assm 01 02-03-86 09.437 init - fnp initialization module for multics page 44 dia -- initialize for inter-computer adapter 01740 0 74 003 1743 481 tze dia060-* all done 01741 173 020 0 482 iacx1 16 no, bump interrupt vector address 01742 0 71 772 1734 483 tra dia050-* go round again 484 01743 0 03 106 2051 485 dia060 ldx2 a.d012-* (dlist) 01744 2 07 001 0 486 lda 1,2 get 2nd word of status icw template 01745 0 37 126 2073 487 ora l.d003-* (=o010000) 'or' in exhaust bit 01746 6333 00 0 488 caq 01747 2 07 000 0 489 lda 0,2 get rest of status icw template 01750 4 14 102 2052 490 staq a.d013-*,* (dist) store it in status icw mbx 01751 3332 00 0 491 cx2a 01752 773 002 0 492 iaa 2 point to pcw template 01753 4333 00 0 493 cax3 in x3 01754 673 002 0 494 ila 2 get count 01755 4332 00 0 495 cax1 01756 4 10 075 2053 496 tsy a.d014-*,* (parity) 497 pcw has correct parity now 01757 2 04 002 0 498 ldaq 2,2 pick it up 01760 4 14 057 2037 499 staq a.d001-*,* (dimb) put it in pcw mailbox 500 01761 273 006 0 501 iacx2 6 point x2 at dcw area 01762 673 000 0 502 ila 0 we will set up dcw list to read configuration 01763 473 074 0 503 ilq diardc config opcode (74) 01764 2 14 000 0 504 staq 0,2 01765 0 07 067 2054 505 lda a.d015-* (diconf),w.2 01766 473 004 0 506 ilq 4 end of binary card 00000010 01767 2 14 002 0 507 staq 2,2 508 now disconnect dcw 01770 673 070 0 509 ila diadis disconnect opcode (70) 01771 2 17 005 0 510 sta 5,2 01772 0 07 100 2072 511 lda l.d002-* (0,w.2) 01773 2 17 006 0 512 sta 6,2 01774 3332 00 0 513 cx2a 01775 4333 00 0 514 cax3 copy into x3 for parity subroutine 01776 673 010 0 515 ila 8 get count 01777 4332 00 0 516 cax1 02000 4 10 053 2053 517 tsy a.d014-*,* (parity) 518 02001 519 dia070 null 02001 073 000 0 520 sel ** 02002 4 07 100 2102 521 lda diatmv-*,* pick up terminate vector location of 02003 0 17 075 2100 522 sta ictmtp-* dia and temp store it 02004 0 07 041 2045 523 lda a.d008-* (dia090) pick up location to use for this 02005 4 17 075 2102 524 sta diatmv-*,* terminate and put in iv loc 02006 4 60 031 2037 525 cioc a.d001-*,* (dimb) pcw -- read dia configuration switches 526 02007 673 005 0 527 ila 5 set timeout (5 ms) for terminate interrupt 02010 0 47 004 2014 528 ldq dia080-1-* pick up addr of timeout handler 02011 4 10 031 2042 529 tsy a.d005-*,* (setclk) and go start up clock assm 01 02-03-86 09.437 init - fnp initialization module for multics page 45 dia -- initialize for inter-computer adapter 02012 4331 00 0 530 dis wait for dia interrupt 02013 0 71 777 2012 531 tra -1 dont let just any interrupt do it 532 02014 0 02015 1 533 ind dia080 02015 0 00000 0 534 dia080 ind ** 02016 4 71 001 2017 535 tra 1,* 02017 0 03302 1 536 ind stop05 "dia did not respond in time" eeeeeeeeeee 537 02020 0 00000 0 538 dia090 ind ** gets "tsy"d to on dia interrupt 02021 4 10 022 2043 539 tsy a.d006-*,* (rstclk) dia terminate interrupt occurred 540 02022 0 07 033 2055 541 lda a.d016-* (dia100) get new temporary iv 02023 4 17 057 2102 542 sta diatmv-*,* 02024 0 04 050 2074 543 ldaq initst-* get "init entered" status 02025 4 10 040 2065 544 tsy a.d024-*,* (btsts) send it to dia 02026 0 71 002 2030 545 tra dia100+1-* if we come here, we are in sim 546 547 btsts waits for interrupt 548 02027 0 00000 0 549 dia100 ind ** tsy'd to after interrupt 02030 0 07 050 2100 550 lda ictmtp-* pick up saved loc of dia terminate 02031 4 17 051 2102 551 sta diatmv-*,* handler, and put it back 552 553 put terminate interrupt cell into dia_man's dcw 02032 4 07 007 2041 554 lda a.d003-*,* (dicell) get it from configuration switches 02033 2337 03 0 555 arl 3 isolate terminate interrupt cell 02034 0336 06 0 556 als 6 02035 4 72 011 2046 557 orsa a.d009-*,* (dindcw) 558 dia is all set up now end of binary card 00000011 02036 0 71 506 1544 559 tra itl020-* assm 01 02-03-86 09.437 init - fnp initialization module for multics page 46 dia -- initialize for inter-computer adapter 560 eject 561 02037 0 00454 0 562 a.d001 ind dimb dia mailbox address 02040 0 03400 3 563 a.d002 ind exist 02041 0 13400 3 564 a.d003 ind dicell 02042 0 01472 1 565 a.d005 ind setclk 02043 0 01503 1 566 a.d006 ind rstclk 02044 0 04325 1 567 a.d007 ind bts010 02045 0 02020 1 568 a.d008 ind dia090 02046 0 14400 3 569 a.d009 ind dindcw 02047 0 02000 3 570 a.d010 ind diajt 02050 0 00003 0 571 a.d011 ind dis0 02051 0 02400 3 572 a.d012 ind dlist 02052 0 00456 0 573 a.d013 ind dist 02053 0 04363 1 574 a.d014 ind parity 02054 1 14000 3 575 a.d015 zero diconf,w.2 02055 0 02027 1 576 a.d016 ind dia100 02056 0 02446 1 577 a.d017 ind hslano 02057 0 02547 1 578 a.d018 ind hlahcr 02060 0 03346 1 579 a.d019 ind getchn 02061 0 02617 1 580 a.d020 ind hmsg01+2 02062 0 04404 1 581 a.d021 ind iwcon 02063 0 22400 3 582 a.d022 ind hslajt 02064 0 00653 0 583 a.d023 zero .criom 02065 0 04300 1 584 a.d024 ind btsts bootload status reporting routine 02066 0 13000 3 585 a.d025 ind diasel 'sel' instruction in dia_man 02067 0 04000 3 586 a.d026 ind fpsel 'sel' instruction in fault processor 02070 0 05400 3 587 a.d027 ind obsel 'sel' instruction in crash routine 588 02071 400000 0 589 l.d001 oct 400000 02072 1 00000 0 590 l.d002 zero 0,w.2 02073 010000 0 591 l.d003 oct 010000 exhaust bit 02074 592 even 02074 450000 0 593 initst oct 450000,000000 "init entered" status 02075 000000 0 594 02076 595 cdiaic bss 1 02077 000000 0 596 icflag oct 0 02100 000000 0 597 ictmtp oct 0 02101 598 diachn bss 1 dia iom channel 02102 0 00000 0 599 diatmv ind ** patched to address of dia terminate vector assm 01 02-03-86 09.437 init - fnp initialization module for multics page 47 hsla -- initialize for high speed line adapter 600 ttls hsla -- initialize for high speed line adapter 601 602 ************************************************************************ 603 * 604 * this routine will initialize all that is necessary to operate 605 * from one to three high speed line adapters. subchannels which are 606 * found to not exist or configured improperly will be marked by 607 * setting the "exhaust" bit in the active status icw. no tib or software 608 * comm region will be created for such subchannels. 609 * 610 ************************************************************************ 611 612 613 * this procedure is entered with: 614 * q = word 0 of config table 615 * x1 = 2 * (iomchannel #) 616 * x2 = word 1 of config table 617 02103 618 hsla null end of binary card 00000012 02103 7333 00 0 619 cqa lets figure out the hsla # 02104 2337 14 0 620 arl 18-fcdacn-1 from word 0 of config table 02105 022 007 0 621 iana fbdacn -- now we have got it 02106 773 777 0 622 iaa -1 internal count is from 0 02107 4 17 747 2056 623 sta a.d017-*,* (hslano) save it for later 02110 773 001 0 624 iaa 1 02111 0336 11 0 625 als 9 multiply by 1000 (octal) and we 02112 4 17 745 2057 626 sta a.d018-*,* (hlahcr) have the hardware region address 627 02113 4333 00 0 628 cax3 x3 -> this hsla hardware comm region 629 02114 0 07 541 1655 630 lda iomch-* now, lets see if this iom channel 02115 0 37 436 1553 631 ora l.a001-* (qls 0) exists (from the "exist" variable) 02116 0 17 002 2120 632 sta +2 put this "qls iomch#" where we will execute it 02117 4 47 721 2040 633 ldq a.d002-*,* (exist) pick up the knowledgeable variable 02120 4336 00 0 634 qls ** and shift left until our bit is in the 635 sign position (this loc patched) 02121 0 75 007 2130 636 tmi hsl010-* this channel does exist 637 02122 4 10 736 2060 638 tsy a.d019-*,* (getchn) get the current iom chan # in ascii 02123 4 57 736 2061 639 stq a.d020-*,* (hmsg01+2) and save its ascii value 02124 4 10 736 2062 640 tsy a.d021-*,* (iwcon) use "disaster" mode console routine 02125 0 02502 1 641 ind hicw01 02126 2331 00 0 642 nop dont bomb if no console exists 02127 0 71 415 1544 643 tra itl020-* give up on this hsla 644 02130 645 hsl010 null hsla does exist, and was initialized 02130 673 141 0 646 ila 97 get size of each jump table (per hsla) 02131 647 mpy hslano-* times hsla no to get addr offset 648 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 48 hsla -- initialize for high speed line adapter 02133 0 46 730 2063 649 adq a.d022-* (hslajt) add in base addr 02134 0 57 310 2444 650 stq hjtloc-* save 02135 0 76 307 2444 651 aos hjtloc-* bump by one to skip ind word 652 02136 0 56 307 2445 653 stz hsbchn-* set to 0th subchannel 02137 2332 00 0 654 cx1a get iom channel no. 655 times 2 02140 4 06 724 2064 656 ada a.d023-*,* (.criom) 02141 0332 00 0 657 cax2 pointer to iom table entry 02142 2 03 001 0 658 ldx2 1,2 pointer to hsla table 659 660 ********************************************************* 661 * 662 * perform the following initialization procedures for 663 * each subchannel that was configured in the cdt. 664 * if a subchannel does not exist, or does not conform 665 * to the configuration desired, set the "exhaust" bit in 666 * its active status icw; otherwise, allocate a tib 667 * (terminal information block) and a software comm. 668 * region for the subchannel. 669 * 670 ********************************************************* 671 02143 672 hsl020 null 02143 0 07 512 1655 673 lda iomch-* get the iom channel number 02144 0 37 510 1654 674 ora l.b001-* (sel 0) and build a "sel" instruction 02145 0 17 001 2146 675 sta 1 and put it where we'll use it 02146 073 000 0 676 sel ** (patched) select this hsla 677 02147 3 04 016 0 678 ldaq h.cnfg,3 get config pcw, if any (stored 679 here by load_fnp_ routine) 02150 0 74 321 2471 680 tze hsl400-* this channel isnt configured 681 02151 0 14 355 2526 682 staq hcnfig-* save the configuration pcw 683 end of binary card 00000013 02152 3333 00 0 684 cx3a get addr of hwcm into the a 02153 2337 11 0 685 arl 9 divide by 1000(8) 02154 0336 02 0 686 als 2 multiply by 4(8) 02155 0 17 364 2541 687 sta hivloc-* save as iv location so far 02156 0 07 267 2445 688 lda hsbchn-* get subchannel number 02157 422 020 0 689 icmpa 16 is it > 20(8)? 02160 0 75 003 2163 690 tmi hsl030-* no, continue 691 02161 0 76 360 2541 692 aos hivloc-* yes, bump ivloc by one 02162 773 760 0 693 iaa -16 and decrement sbchn by 16 02163 0336 04 0 694 hsl030 als 4 multiply subchn by 20(8) 02164 0 16 355 2541 695 asa hivloc-* add into ivloc 696 02165 0 07 257 2444 697 lda hjtloc-* get the jump table addr assm 01 02-03-86 09.437 init - fnp initialization module for multics page 49 hsla -- initialize for high speed line adapter 02166 4 17 353 2541 698 sta hivloc-*,* deposit in iv 699 02167 0 04 311 2500 700 ldaq hsticw-* set my active status icw 02170 3 14 014 0 701 staq h.aicw,3 and store it in hwcm 702 703 build an "unmask" pcw 02171 0 07 254 2445 704 lda hsbchn-* load subchannel number 02172 0336 06 0 705 als 6 move into subchannel field 02173 0 37 313 2506 706 ora hunmsk-* or in pcw 0, command 5 02174 0 47 313 2507 707 ldq hunmsk+1-* and pick up no broadside commands 02175 0 14 327 2524 708 staq hpcw-* and save this pcw for execution 709 02176 0 60 326 2524 710 cioc hpcw-* unmask the subchannel 711 02177 0 60 327 2526 712 cioc hcnfig-* configure this subchannel 713 02200 0 07 245 2445 714 lda hsbchn-* now lets build a "request config" pcw 02201 0336 06 0 715 als 6 move subchannel number in 02202 0 37 310 2512 716 ora hreqcn-* (=230000) pcw 1,command 3 02203 0 47 310 2513 717 ldq hreqcn+1-* get second word (request to send) 02204 0 14 320 2524 718 staq hpcw-* and save it for a bit later 719 02205 3 56 016 0 720 stz h.cnfg,3 clear config status words to be able 02206 3 56 017 0 721 stz h.cnfg+1,3 to detect no response 722 02207 0 60 315 2524 723 cioc hpcw-* request configuration status 724 02210 673 012 0 725 ila 10 wait 10 ms for status store 02211 0 47 004 2215 726 ldq hsl040-1-* get location to tsy thru then 02212 4 10 340 2552 727 tsy a.f001-*,* (setclk) go start up the clock 02213 4331 00 0 728 dis 02214 0 71 777 2213 729 tra -1 ignore all interrupts til then 730 02215 0 02216 1 731 ind hsl040 02216 0 00000 0 732 hsl040 ind ** control gets here when done waiting 733 for config status store 734 ********************************************************* 735 * now test received configuration status against 736 * desired configuration and other criteria. 737 ********************************************************* 738 02217 0 04 307 2526 739 ldaq hcnfig-* test upper half for matching bits 02220 0 34 330 2550 740 ana hmask1-* (=o600076) (see hmask1 for expl) end of binary card 00000014 02221 0 17 321 2542 741 sta htemp-* this is what it should be 742 02222 3 07 016 0 743 lda h.cnfg,3 now, lets see what it is 02223 0 34 325 2550 744 ana hmask1-* (=o600076) (see hmask1 for expl) 02224 0 27 316 2542 745 cmpa htemp-* see if what is is what should be 02225 0 64 222 2447 746 tnz hsl390-* nope, go mask off channel assm 01 02-03-86 09.437 init - fnp initialization module for multics page 50 hsla -- initialize for high speed line adapter 747 02226 0 31 345 2573 748 cana l.f002-* (=o200000) is it synchronous? 02227 0 64 011 2240 749 tnz hsl050-* if so, don't bother with second word 750 02230 3 07 017 0 751 lda h.cnfg+1,3 pick up lower half of status to test char length 02231 0 34 343 2574 752 ana l.f003-* (=o170000) mask out all but character lengths 02232 0 27 343 2575 753 cmpa l.f004-* (=o040000) see if 8 bit byte size 02233 0 74 005 2240 754 tze hsl050-* yes, this is ok 02234 0 27 342 2576 755 cmpa l.f005-* (=o020000) see if 7 bit byte size 02235 0 74 003 2240 756 tze hsl050-* yes, this is ok 02236 0 27 341 2577 757 cmpa l.f006-* (=o010000) see if 6 bit byte size 758 yes, this is ok, fall through 02237 0 64 210 2447 759 tnz hsl390-* not ok, mask out this channel 760 761 02240 762 hsl050 null 02240 2 07 000 0 763 lda ht.flg,2 get the baud rate into 02241 022 017 0 764 iana htfspd hbaud for maktib 02242 0 17 276 2540 765 sta hbaud-* 766 02243 2 07 000 0 767 lda ht.flg,2 get flags again 02244 0 34 335 2601 768 ana l.f008-* (hftasy) is it sync or async? 02245 2337 07 0 769 arl 7 just put bit into hbaud 02246 0 72 272 2540 770 orsa hbaud-* in the right place 771 02247 0 13 274 2543 772 stx2 hsavx2-* save ptr to hsla table entry 773 set up software comm. region and tib 02250 0 50 274 2544 774 stx3 hsavx3-* save hardware comm. region address 02251 4 10 303 2554 775 tsy a.f003-*,* (hgsfcm) allocate an sfcm 776 02252 0 41 272 2544 777 ldx3 hsavx3-* get hwcm address and store 02253 3 17 011 0 778 sta h.sfcm,3 software comm. region address 779 780 set up active status icw in hwcm 02254 773 026 0 781 iaa sf.sta point to hardware status in sfcm 02255 0 47 261 2536 782 ldq hsaicw-* get odd word of dn6670 status icw 02256 3 14 014 0 783 staq h.aicw,3 note that the channel can store 6 though 784 tally is set to 5. hardware stores status 785 in sixth word after tally runout. 02257 0 07 324 2603 786 lda l.f010-* (=o10000) exhaust bit in icw 02260 3 17 005 0 787 sta h.sic0+1,3 init both of the xmit 02261 3 17 007 0 788 sta h.sic1+1,3 to exhaust condition 789 790 now get line number 02262 0 47 164 2446 791 ldq hslano-* hsla number 02263 4336 06 0 792 qls 6 02264 0 46 161 2445 793 adq hsbchn-* subchannel no. 02265 0 46 305 2572 794 adq l.f001-* (=o1000) hsla indicator 795 now make the tib 02266 0 07 252 2540 796 lda hbaud-* restore baud code assm 01 02-03-86 09.437 init - fnp initialization module for multics page 51 hsla -- initialize for high speed line adapter 02267 4 10 272 2561 797 tsy a.f008-*,* (maktib) allocate a tib for it 798 end of binary card 00000015 02270 2 17 001 0 799 sta ht.tib,2 put real tib address in hsla table entry 800 02271 3 07 011 0 801 lda h.sfcm,3 get real sfcm address from hwcm 02272 4 10 274 2566 802 tsy a.f013-*,* (setptw) virtualize it 02273 1 17 030 0 803 sta t.sfcm,1 put virtual sfcm address in tib 02274 0332 00 0 804 cax2 get it into right register 805 806 fill in stuff in sfcm 807 02275 2 50 000 0 808 stx3 sf.hcm,2 put hwcm addr into sfcm 02276 3332 00 0 809 cx2a get sfcm addr in a 02277 773 056 0 810 iaa sf.waq put starting address of wraparound queue 02300 2 17 001 0 811 sta sf.nxa,2 in sfcm pointers 02301 2 17 002 0 812 sta sf.nxp,2 02302 4 07 267 2571 813 lda a.f016-*,* (hsfssl) initialize count of free slots in queue 02303 2 17 003 0 814 sta sf.tly,2 02304 2 17 023 0 815 sta sf.ssl,2 save as status queue length too 02305 0 07 236 2543 816 lda hsavx2-* address of hsla table 02306 2 17 015 0 817 sta sf.hsl,2 save addr in sfcm 818 02307 0 03 234 2543 819 ldx2 hsavx2-* reload ptr to hsla table 02310 2 07 000 0 820 lda ht.flg,2 get the flag bits 02311 2337 04 0 821 arl 4 shift line type into position 02312 022 037 0 822 iana 31 mask down 02313 0 74 002 2315 823 tze hsl060-* none specified, use default 824 02314 1 17 017 0 825 sta t.type,1 put into tib 826 02315 2 07 000 0 827 hsl060 lda ht.flg,2 reload flag bits 02316 0 17 230 2546 828 sta htflgt-* save in "stack" temporary 02317 1 03 030 0 829 ldx2 t.sfcm,1 reload sfcm ptr 02320 0 31 261 2601 830 cana l.f008-* (htfasy) asynchronous? 02321 0 64 004 2325 831 tnz hsl070-* yes 02322 0 07 270 2612 832 lda l.f017-* (sffsyn) no, mark the sfcm 02323 2 72 005 0 833 orsa sf.flg,2 02324 0 07 222 2546 834 lda htflgt-* get the hsla table flags back 835 02325 836 hsl070 null 02325 2337 11 0 837 arl 9 look at modem type this time 02326 022 017 0 838 iana 15 mask down 02327 0 74 023 2352 839 tze hsl180-* none specified 840 02330 773 777 0 841 iaa -1 relative to zero 02331 0 06 233 2564 842 ada a.f011-* (hsl080) get jump list base 02332 0 17 213 2545 843 sta hsltra-* store so we can indirect 844 02333 4 71 212 2545 845 tra hsltra-*,* dispatch on modem type assm 01 02-03-86 09.437 init - fnp initialization module for multics page 52 hsla -- initialize for high speed line adapter 846 02334 0 71 016 2352 847 hsl080 tra hsl130-* mt103a 02335 0 71 006 2343 848 tra hsl090-* mt201c 02336 0 71 014 2352 849 tra hsl140-* mt202c5 end of binary card 00000016 02337 0 71 013 2352 850 tra hsl150-* mt202c6 02340 0 71 012 2352 851 tra hsl160-* mt208a 02341 0 71 010 2351 852 tra hsl120-* mt208b 02342 0 71 010 2352 853 tra hsl170-* mt209a 854 02343 0 07 203 2546 855 hsl090 lda htflgt-* get ht flags 02344 0 31 240 2604 856 cana l.f011-* (htfpl) private line dataset? 02345 0 64 005 2352 857 tnz hsl180-* yes, all done 858 02346 0 07 237 2605 859 hsl100 lda l.f012-* (tfdlup) set tib flag for dial operation 02347 1 72 001 0 860 orsa t.flg,1 in first tib flag word 02350 0 71 002 2352 861 tra hsl180-* done 862 02351 0 71 775 2346 863 hsl120 tra hsl100-* 208b are always dial 864 02352 865 hsl130 null nothing special for these datasets 02352 866 hsl140 null 02352 867 hsl150 null 02352 868 hsl160 null 02352 869 hsl170 null 02352 870 hsl180 null assm 01 02-03-86 09.437 init - fnp initialization module for multics page 53 hsla -- initialize for high speed line adapter 871 eject 872 process line type specification 873 02352 1 07 017 0 874 lda t.type,1 now process type setting 02353 773 777 0 875 iaa -1 can never be zero here 02354 0 06 211 2565 876 ada a.f012-* (hsl190) get table base 02355 0 17 170 2545 877 sta hsltra-* save to indirect through 878 02356 4 71 167 2545 879 tra hsltra-*,* dispatch on line type 880 02357 881 hsl190 null 02357 0 71 023 2402 882 tra hsl200-* ascii 02360 0 71 030 2410 883 tra hsl210-* 1050 02361 0 71 027 2410 884 tra hsl220-* 2741 02362 0 71 037 2421 885 tra hsl240-* ards 02363 0 71 036 2421 886 tra hsl250-* sync 02364 0 71 035 2421 887 tra hsl260-* g115 02365 0 71 026 2413 888 tra hsl230-* bsc 02366 0 71 033 2421 889 tra hsl270-* 202etx 02367 0 71 032 2421 890 tra hsl280-* vip 02370 0 71 031 2421 891 tra hsl290-* async1 02371 0 71 030 2421 892 tra hsl300-* async2 02372 0 71 027 2421 893 tra hsl310-* async3 02373 0 71 026 2421 894 tra hsl320-* sync1 02374 0 71 025 2421 895 tra hsl330-* sync2 02375 0 71 024 2421 896 tra hsl340-* sync3 02376 0 71 023 2421 897 tra hsl350-* polled vip 02377 0 71 017 2416 898 tra hsl234-* x.25 lap 02400 0 71 016 2416 899 tra hsl234-* hdlc 02401 0 71 020 2421 900 tra hsl359-* colts 901 02402 0 07 144 2546 902 hsl200 lda htflgt-* get hsla table flag bits 02403 0 31 204 2607 903 cana l.f014-* (hftop1) option 1 set? 02404 0 74 015 2421 904 tze hsl360-* no 02405 0 07 204 2611 905 lda l.f016-* (tfauto) opt1 means autobaud end of binary card 00000017 02406 1 72 001 0 906 orsa t.flg,1 02407 0 71 012 2421 907 tra hsl360-* 908 02410 909 hsl210 null 1050 or 02410 673 040 0 910 hsl220 ila sffebd 2741 02411 2 72 005 0 911 orsa sf.flg,2 set ebcdic flag in sfcm 02412 0 71 007 2421 912 tra hsl360-* done 913 02413 0 07 173 2606 914 hsl230 lda l.f013-* (sffbsc) bsc type 02414 2 72 005 0 915 orsa sf.flg,2 set sffbsc in sfcm 02415 0 71 004 2421 916 tra hsl360-* 917 02416 0 07 172 2610 918 hsl234 lda l.f015-* (=sffhdl) hdlc type 02417 2 72 005 0 919 orsa sf.flg,2 set in sfcm assm 01 02-03-86 09.437 init - fnp initialization module for multics page 54 hsla -- initialize for high speed line adapter 02420 0 71 001 2421 920 tra hsl360-* 921 02421 922 hsl240 null nothing to do for these types 02421 923 hsl250 null 02421 924 hsl260 null 02421 925 hsl270 null 02421 926 hsl280 null 02421 927 hsl290 null 02421 928 hsl300 null 02421 929 hsl310 null 02421 930 hsl320 null 02421 931 hsl330 null 02421 932 hsl340 null 02421 933 hsl350 null 02421 934 hsl359 null 02421 935 hsl360 null assm 01 02-03-86 09.437 init - fnp initialization module for multics page 55 hsla -- initialize for high speed line adapter 936 eject 937 02421 2 53 004 0 938 stx1 sf.tib,2 put tib addr in sfcm 939 02422 0 04 104 2526 940 ldaq hcnfig-* get configuration pcw for channel 02423 2 14 024 0 941 staq sf.cfg,2 store it in sfcm for later modifications 942 02424 0 03 117 2543 943 ldx2 hsavx2-* reload ptr to hsla table 02425 0 41 117 2544 944 ldx3 hsavx3-* and ptr to hwcm 945 946 02426 947 hsl380 null increment to next subchannel 02426 273 002 0 948 iacx2 2 next hsla table entry 02427 373 020 0 949 iacx3 16 hwcm is 16 words long 02430 0 76 015 2445 950 aos hsbchn-* bump subchannel number 02431 673 003 0 951 ila 3 bump jump table ptr 02432 0 16 012 2444 952 asa hjtloc-* by three 953 02433 673 040 0 954 ila 32 valid numbers are 0 - 31 02434 0 27 011 2445 955 cmpa hsbchn-* see if still more subchannels 02435 0 64 506 2143 956 tnz hsl020-* yes, go process them 957 no, now store the mask register 958 02436 0 60 056 2514 959 cioc hsmska-* store the mask register 02437 0 60 057 2516 960 cioc hsmskb-* in case this is a dn6670, do it for each mlc 02440 0 60 060 2520 961 cioc hsmskc-* 02441 0 60 061 2522 962 cioc hsmskd-* 963 02442 4 71 001 2443 964 tra 1,* return to main routine 02443 0 01544 1 965 ind itl020 966 967 02444 968 hjtloc bss 1 hold current jump table addr 02445 969 hsbchn bss 1 this loc always has cur subchannel number 02446 970 hslano bss 1 current hsla number assm 01 02-03-86 09.437 init - fnp initialization module for multics page 56 hsla -- initialize for high speed line adapter 971 eject 972 02447 973 hsl390 null come here for bad configuration 02447 4 10 104 2553 974 tsy a.f002-*,* (hgetch) get iom channel number in ascii 02450 0 57 166 2636 975 stq hmsg02+2-* and store in error message 02451 0 07 774 2445 976 lda hsbchn-* pick up subchannel number 02452 0 06 104 2556 977 ada a.f005-* (hsasbc) add offset of subchannel table 02453 0 17 067 2542 978 sta htemp-* store it for a moment 02454 4 07 066 2542 979 lda htemp-*,* and pick up ascii equiv of subch nums 02455 0 17 165 2642 980 sta hmsg02+6-* and store into error message end of binary card 00000018 02456 4 10 077 2555 981 tsy a.f004-*,* (iwcon) use disaster mode console routine 02457 0 02504 1 982 ind hicw02 02460 2331 00 0 983 nop ignore inability to write on console 984 02461 673 777 0 985 ila -1 set sfcm addr in hwcm to -1 02462 3 17 011 0 986 sta h.sfcm,3 02463 0 07 762 2445 987 lda hsbchn-* load subchannel number 02464 0336 06 0 988 als 6 move into subchannel field 02465 0 37 023 2510 989 ora hmskch-* or in pcw 0, command 4 02466 0 47 023 2511 990 ldq hmskch+1-* and pick up no broadside commands 02467 0 14 035 2524 991 staq hpcw-* and store for execution 992 02470 0 60 034 2524 993 cioc hpcw-* mask this subchannel 994 995 end up here for badly-configured or 996 non-configured line 02471 997 hsl400 null we will set up active status icw with 998 exhaust bit on 02471 3333 00 0 999 cx3a get hwcm address 02472 773 010 0 1000 iaa h.baw we will point status icw at base address word 1001 pointer to avoid getting status stored randomly 02473 0 47 004 2477 1002 ldq hbdicw+1-* get rest of icw with exhaust bit 02474 3 14 014 0 1003 staq h.aicw,3 02475 0 71 731 2426 1004 tra hsl380-* on to next subchannel 1005 1006 02476 1007 even 1008 02476 1 00000 0 1009 hbdicw icw **,w.2,1,1 status icw for inactive subchannel 02477 010001 0 1010 02500 1 02532 1 1011 hsticw icw hstat,w.2,1 icw to store status for configuration 02501 000001 0 02502 2 02614 1 1012 hicw01 icw hmsg01-1,b.0,32 icw to type on fnp console 02503 000040 0 02504 2 02633 1 1013 hicw02 icw hmsg02-1,b.0,44 icw to type on fnp console 02505 000054 0 1014 status 1015 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 57 hsla -- initialize for high speed line adapter 1016 pcw to unmask a subchannel 02506 050000 0 1017 hunmsk vfd 2/0,4/rstmsk,2/0,4/**,6/0,18/0 02507 000000 0 1018 1019 pcw to mask a subchannel 02510 040000 0 1020 hmskch vfd 2/0,4/setmsk,2/0,4/**,6/0,18/0 02511 000000 0 1021 pcw to request configuration status 02512 230000 0 1022 hreqcn vfd 2/1,4/reqcst,2/0,4/**,6/0,18/rts 02513 000020 0 1023 pcw to store the mask register 02514 110000 0 1024 hsmska vfd 2/0,4/stomrg,12/0,18/0 02515 000000 0 02516 111000 0 1025 hsmskb vfd 2/0,4/stomrg,6/8,6/0,18/0 02517 000000 0 02520 112000 0 1026 hsmskc vfd 2/0,4/stomrg,6/16,6/0,18/0 02521 000000 0 02522 113000 0 1027 hsmskd vfd 2/0,4/stomrg,6/24,6/0,18/0 02523 000000 0 02524 1028 hpcw bss 2 temporary for pcws to execute 02526 1029 hcnfig bss 2 temporary for configuration pcw 02530 1030 hastat bss 2 temporary storage for status icw 1031 02532 1032 hstat bss 4 destination of status words for configuration 1033 02536 1034 hsaicw amicwo w.2,sfhsiz,0 dn6670 icw prototype (odd word) for hardware end of binary card 00000019 1035 status 02537 1036 htibad bss 1 tib address 02540 1037 hbaud bss 1 baud rate code(temporary) 02541 1038 hivloc bss 1 holds location of iv for this subchannel 02542 1039 htemp bss 1 an alround temporary 02543 1040 hsavx2 bss 1 place to save hsla table addr 02544 1041 hsavx3 bss 1 place to save hwcm address 02545 1042 hsltra bss 1 jump indirect through this word 02546 1043 htflgt bss 1 temp for hsla table flags 02547 000000 0 1044 hlahcr vfd 3/0,15/** hsla's hcr base address 02550 600076 0 1045 hmask1 oct 600076 mask to leave only (mbo's, async/sync 1046 parity stuff, icw alternation, and ccc enabled 02551 004377 0 1047 hmask2 oct 004377 mask to leave only (2 stop bits and speed) 1048 02552 0 01472 1 1049 a.f001 ind setclk routine to delay for n ms 02553 0 03346 1 1050 a.f002 ind getchn routine to convert iom channel to ascii 02554 0 02746 1 1051 a.f003 ind hgsfcm 02555 0 04404 1 1052 a.f004 ind iwcon routine to write on console if there 02556 0 02661 1 1053 a.f005 ind hsasbc table of ascii equivs of subch nums 02557 0 00651 0 1054 a.f006 ind .crmem last legal address configured 02560 0 22000 3 1055 a.f007 ind getmem memory allocating subroutine 02561 0 03051 1 1056 a.f008 ind maktib subroutine for making a tib 02562 0 00662 0 1057 a.f009 ind .crtrb base address of trace buffer assm 01 02-03-86 09.437 init - fnp initialization module for multics page 58 hsla -- initialize for high speed line adapter 02563 0 03236 1 1058 a.f010 ind tibadr real tib address 02564 0 02334 1 1059 a.f011 ind hsl080 02565 0 02357 1 1060 a.f012 ind hsl190 02566 0 30400 3 1061 a.f013 ind setptw set up page table entry 02567 0 00704 0 1062 a.f014 ind .crmet flag indicating metering 02570 0 03237 1 1063 a.f015 ind metadr real metering area address 02571 0 03046 1 1064 a.f016 ind hsfssl number of entries in software status queue 1065 1066 02572 001000 0 1067 l.f001 oct 1000 hsla indicator 02573 200000 0 1068 l.f002 oct 200000 this bit is on if synchronous 02574 170000 0 1069 l.f003 oct 170000 mask to leave only char length field 02575 040000 0 1070 l.f004 oct 040000 char length field of 6 bits 02576 020000 0 1071 l.f005 oct 020000 char length field of 7 bits 02577 010000 0 1072 l.f006 oct 010000 char length field of 8 bits 02600 000400 0 1073 l.f007 oct 000400 bit for marking asynch baud code 02601 100000 0 1074 l.f008 vfd 18/htfasy "async" bit in hsla table entry 02602 1 00000 0 1075 l.f009 zero 0,w.2 36-bit addressing 02603 010000 0 1076 l.f010 oct 010000 exhaust bit in icw 02604 200000 0 1077 l.f011 vfd 18/htfpl private line flag 02605 000020 0 1078 l.f012 vfd 18/tfdlup dialup flag in tib 02606 002000 0 1079 l.f013 vfd 18/sffbsc bisync bit in sfcm 02607 040000 0 1080 l.f014 vfd 18/htfop1 hsla table option flag 1 02610 400000 0 1081 l.f015 vfd 18/sffhdl hdlc channel 02611 020000 0 1082 l.f016 vfd 18/tfauto autobaud flag in tib 02612 010000 0 1083 l.f017 vfd 18/sffsyn synchronous flag in sfcm end of binary card 00000020 02613 024000 0 1084 l.f018 oct 024000 inhibit interrupts and overflow 1085 1086 detail off dont print all the words for messages 1087 02614 015012 0 1088 vfd 9/cr,9/lf 02615 052103 0 1089 hmsg01 aci 14,*ch-xx, hsla does not exist 02633 015012 0 1090 vfd 9/cr,9/lf 02634 052103 0 1091 hmsg02 aci 20,*ch-xx, sch-xx, bad configuration status 02660 015012 0 1092 vfd 9/cr,9/lf 1093 02661 1094 hsasbc null table of ascii subchannel nums 02661 060060 0 1095 aci 1,00 end of binary card 00000021 02662 060061 0 1096 aci 1,01 02663 060062 0 1097 aci 1,02 02664 060063 0 1098 aci 1,03 02665 060064 0 1099 aci 1,04 02666 060065 0 1100 aci 1,05 02667 060066 0 1101 aci 1,06 02670 060067 0 1102 aci 1,07 02671 060070 0 1103 aci 1,08 02672 060071 0 1104 aci 1,09 02673 061060 0 1105 aci 1,10 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 59 hsla -- initialize for high speed line adapter 02674 061061 0 1106 aci 1,11 02675 061062 0 1107 aci 1,12 02676 061063 0 1108 aci 1,13 02677 061064 0 1109 aci 1,14 02700 061065 0 1110 aci 1,15 02701 061066 0 1111 aci 1,16 02702 061067 0 1112 aci 1,17 02703 061070 0 1113 aci 1,18 02704 061071 0 1114 aci 1,19 02705 062060 0 1115 aci 1,20 02706 062061 0 1116 aci 1,21 02707 062062 0 1117 aci 1,22 02710 062063 0 1118 aci 1,23 02711 062064 0 1119 aci 1,24 02712 062065 0 1120 aci 1,25 02713 062066 0 1121 aci 1,26 02714 062067 0 1122 aci 1,27 02715 062070 0 1123 aci 1,28 02716 062071 0 1124 aci 1,29 02717 063060 0 1125 aci 1,30 02720 063061 0 1126 aci 1,31 02721 063062 0 1127 aci 1,32 02722 063063 0 1128 aci 1,33 02723 063064 0 1129 aci 1,34 02724 063065 0 1130 aci 1,35 02725 063066 0 1131 aci 1,36 02726 063067 0 1132 aci 1,37 02727 063070 0 1133 aci 1,38 02730 063071 0 1134 aci 1,39 end of binary card 00000022 02731 064060 0 1135 aci 1,40 02732 064061 0 1136 aci 1,41 02733 064062 0 1137 aci 1,42 02734 064063 0 1138 aci 1,43 02735 064064 0 1139 aci 1,44 02736 064065 0 1140 aci 1,45 02737 064066 0 1141 aci 1,46 02740 064067 0 1142 aci 1,47 02741 064070 0 1143 aci 1,48 02742 064071 0 1144 aci 1,49 02743 065060 0 1145 aci 1,50 02744 065061 0 1146 aci 1,51 02745 065062 0 1147 aci 1,52 1148 1149 detail on assm 01 02-03-86 09.437 init - fnp initialization module for multics page 60 hsla subroutine to get a sfcm or sfcm/tib pair 1150 ttls hsla subroutine to get a sfcm or sfcm/tib pair 1151 02746 1152 hgsfcm subr hgs,(x1,x2,i) 1153 1154 figure out sfcm size 02762 2 07 000 0 1155 lda ht.flg,2 02763 2337 04 0 1156 arl 4 shift line type down 02764 022 037 0 1157 iana 31 isolate it 02765 422 021 0 1158 icmpa ttx25 x.25? 02766 0 74 007 2775 1159 tze hgs001-* yes 02767 422 022 0 1160 icmpa tthdlc hdlc? 02770 0 74 005 2775 1161 tze hgs001-* yes 02771 422 007 0 1162 icmpa ttbsc bisync? 02772 0 74 003 2775 1163 tze hgs001-* yes 02773 473 012 0 1164 ilq sfssq none of above, use short status queue 02774 0 71 002 2776 1165 tra hgs002-* 02775 473 024 0 1166 hgs001 ilq sflsq use long size 02776 0 57 050 3046 1167 hgs002 stq hsfssl-* save queue length 02777 4336 02 0 1168 qls 2 multiply by 4 (to get in words) 03000 573 056 0 1169 iaq sf.hln add basic sfcm length end of binary card 00000023 03001 0 57 044 3045 1170 stq hsflen-* this is total size to allocate 1171 1172 1173 1174 ***************************************************************** 1175 * the following code allocates space for a sfcm and tib 1176 * starting at 32768. the sfcm and tib have to be allocated in 1177 * the same page for a given channel. 1178 * 1179 * since the tib has to be allocated now, its real address is 1180 * stored in 'tibadr'. the 'maktib' subroutine is coded to 1181 * account for this. 1182 ***************************************************************** 1183 03002 0 56 046 3050 1184 stz hmetln-* initially 03003 4 20 564 2567 1185 szn a.f014-*,* (.crmet) are we metering at all? 03004 0 74 010 3014 1186 tze hgs008-* no, skip this calculation 03005 2 07 000 0 1187 lda ht.flg,2 see if it's synchronous channel 03006 0 31 573 2601 1188 cana l.f008-* =htfasy 03007 0 64 003 3012 1189 tnz hgs003-* no 03010 473 056 0 1190 ilq m.synl yes, use synchronous length 03011 0 71 002 3013 1191 tra 2 03012 473 030 0 1192 hgs003 ilq m.asyl else asynchronous 03013 0 57 035 3050 1193 stq hmetln-* save this for later 03014 1194 hgs008 null 03014 0 07 027 3043 1195 lda hcurpg-* get page base address 03015 0 06 030 3045 1196 ada hsflen-* recalculate the end of the pair 03016 4 17 545 2563 1197 sta a.f010-*,* (tibadr) 03017 0 06 030 3047 1198 ada htibln-* assm 01 02-03-86 09.437 init - fnp initialization module for multics page 61 hsla subroutine to get a sfcm or sfcm/tib pair 03020 4 17 550 2570 1199 sta a.f015-*,* (metadr) 03021 0 06 027 3050 1200 ada hmetln-* 03022 6333 00 0 1201 caq get it into the right register 1202 03023 1203 hgs010 null 03023 4 20 537 2562 1204 szn a.f009-*,* (.crtrb) is trace configured? 03024 0 64 003 3027 1205 tnz hgs020-* yes 03025 4 67 532 2557 1206 cmpq a.f006-*,* (.crmem) no. will sfcm/tib pair fit in 03026 0 71 002 3030 1207 tra hgs030-* rest of memory? 1208 03027 1209 hgs020 null 03027 4 67 533 2562 1210 cmpq a.f009-*,* (.crtrb) will sfcm/tib pair fit below 1211 trace buffer? 03030 1212 hgs030 null 03030 0 45 003 3033 1213 tnc hgs040-* yes. we are cool 03031 0 74 002 3033 1214 tze hgs040-* whew. this better be the last one 03032 1215 die 1 no. out of memory 1216 03033 1217 hgs040 null 03033 0 57 011 3044 1218 stq hnxstp-* 03034 0 07 007 3043 1219 lda hcurpg-* get sfcm address for return 03035 6333 00 0 1220 caq 03036 0 44 555 2613 1221 ldi l.f018-* (=o024000) inhibit overflow 03037 0 46 172 3231 1222 adq l.i006-* =256 03040 0 57 003 3043 1223 stq hcurpg-* save address of next page for next pair 1224 03041 1225 hgsret null 03041 1226 return hgsfcm 1227 1228 03043 100000 0 1229 hcurpg dec 32768 base of current page 03044 100000 0 1230 hnxstp dec 32768 pointer to next sfcm/tib pair 03045 000000 0 1231 hsflen oct 0 next even number of words in sfcm 03046 000000 0 1232 hsfssl oct 0 size of software status queue 03047 000000 0 1233 htibln oct 0 next even number of words in tib end of binary card 00000024 03050 000000 0 1234 hmetln oct 0 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 62 maktib -- subroutine to allocate a tib 1235 ttls maktib -- subroutine to allocate a tib 1236 1237 this subroutine allocates space for a tib (terminal 1238 information block) and fills in stuff common to hsla 1239 and lsla 1240 1241 input: 1242 a reg contains baud rate code 1243 (with bit 9 marking asynch line) 1244 q reg contains line number 1245 1246 output: 1247 x1: contains virtual tib address 1248 a: contains real tib address 1249 03051 1250 maktib subr mak,(x2,x3) 1251 03062 0 14 152 3234 1252 staq mtemp-* save baud rate code and line number 03063 0 07 153 3236 1253 lda tibadr-* get real tib address 1254 * 1255 * save tib address in table for later use 1256 03064 4 03 132 3216 1257 ldx2 a.i003-*,* (.crtte) get address of next available slot 03065 2 17 000 0 1258 sta 0,2 03066 273 002 0 1259 iacx2 2 bump pointer 03067 4 13 127 3216 1260 stx2 a.i003-*,* (.crtte) 1261 03070 0 41 124 3214 1262 ldx3 a.i001-* (ctrl) get control_tables address 03071 3 41 003 0 1263 ldx3 3,3 x3 points to device type table 1264 03072 1265 mak020 null search table for type corresponding to baud rate 03072 3 07 000 0 1266 lda 0,3 get table entry 03073 422 777 0 1267 icmpa -1 hit end of table? 03074 0 64 002 3076 1268 tnz 2 03075 1269 die 6 if so, very bad news 03076 2335 11 0 1270 lrl 9 get baud rate code in a, device type in q 03077 0 27 135 3234 1271 cmpa mtemp-* matches argument? 03100 0 74 003 3103 1272 tze mak030-* 03101 373 001 0 1273 iacx3 1 no, keep looking 03102 0 71 770 3072 1274 tra mak020-* 1275 1276 now put associated device type into tib 03103 1277 mak030 null 03103 0 07 133 3236 1278 lda tibadr-* virtualize tib address 03104 4 10 113 3217 1279 tsy a.i004-*,* (setptw) 03105 4332 00 0 1280 cax1 get it into x1 03106 6337 11 0 1281 qrl 9 align device type in q 03107 1 57 017 0 1282 stq t.type,1 03110 0 47 125 3235 1283 ldq mtemp+1-* get line number again 03111 1 57 004 0 1284 stq t.line,1 put it in tib assm 01 02-03-86 09.437 init - fnp initialization module for multics page 63 maktib -- subroutine to allocate a tib 03112 4 07 102 3214 1285 lda a.i001-*,* (ctrl) pointer to start of control tables 03113 1 17 003 0 1286 sta t.cur,1 this is where interpreter will start 1287 03114 0 41 100 3214 1288 ldx3 a.i001-* (ctrl) 03115 3 41 001 0 1289 ldx3 1,3 addr(array of device table addresses) 03116 1 40 017 0 1290 adcx3 t.type,1 index by device type end of binary card 00000025 03117 3 41 777 0 1291 ldx3 -1,3 convert index to offset 1292 x3 now points to relevant device table entry 03120 3 07 004 0 1293 lda dt.flg,3 find out how tfctrl should be set 03121 0 31 103 3224 1294 cana l.i001-* (dtfctl) 03122 0 74 003 3125 1295 tze mak040-* it's off to start with 03123 0 07 102 3225 1296 lda l.i002-* (tfctrl) 03124 1 72 001 0 1297 orsa t.flg,1 if dtfctl was on, turn tfctrl on 03125 1298 mak040 null 03125 3 07 004 0 1299 lda dt.flg,3 now check setting of dtfsft 03126 0 31 101 3227 1300 cana l.i004-* (dtfsft) 03127 0 74 003 3132 1301 tze mak050-* 03130 0 07 100 3230 1302 lda l.i005-* (tfsftr) get tib bit to set 03131 1 72 002 0 1303 orsa t.flg2,1 03132 1304 mak050 null 03132 373 010 0 1305 iacx3 dt.brk get address of default break list 03133 1 50 032 0 1306 stx3 t.brkp,1 into tib 1307 03134 0 07 103 3237 1308 lda metadr-* get address of metering area 03135 4 10 062 3217 1309 tsy a.i004-*,* (setptw) virtualize it 03136 1 17 052 0 1310 sta t.metr,1 1311 1312 1313 for asynchronous line, take 2 32-word blocks 1314 for permanent input buffers (if available). 1315 remainder of page is added to buffer pool 1316 03137 0 07 075 3234 1317 lda mtemp-* synchronous line? 03140 0 31 071 3231 1318 cana l.i006-* (=o400) 03141 0 74 037 3200 1319 tze mak070-* yes, don't bother with buffers 03142 0 07 701 3043 1320 lda hcurpg-* get address of next page base 03143 0 26 701 3044 1321 sba hnxstp-* find out how much space is left in page 03144 422 100 0 1322 icmpa 2*bufsiz enough for two buffers? 03145 0 45 033 3200 1323 tnc mak070-* no, skip it 03146 0 07 676 3044 1324 lda hnxstp-* get starting address 03147 1 17 053 0 1325 sta t.abf0,1 this is first one 03150 6333 00 0 1326 caq 03151 4 10 046 3217 1327 tsy a.i004-*,* (setptw) 03152 0332 00 0 1328 cax2 make it addressable 03153 673 040 0 1329 ila bufsiz get size in words 03154 0336 11 0 1330 als 9 store in first character 03155 2 17 000 0 1331 sta 0,2 03156 573 040 0 1332 iaq bufsiz point to next one 03157 1 57 054 0 1333 stq t.abf1,1 address into tib assm 01 02-03-86 09.437 init - fnp initialization module for multics page 64 maktib -- subroutine to allocate a tib 03160 273 040 0 1334 iacx2 bufsiz virtual address also 03161 2 17 000 0 1335 sta 0,2 03162 573 040 0 1336 iaq bufsiz this is address of remaining space in the page 03163 4 20 037 3222 1337 szn a.i007-*,* is there any trace buffer? 03164 0 64 003 3167 1338 tnz mak058-* yes, go ahead 03165 4 67 036 3223 1339 cmpq a.i008-*,* (.crmem) else see if it fits in memory end of binary card 00000026 03166 0 71 002 3170 1340 tra 2 03167 4 67 033 3222 1341 mak058 cmpq a.i007-*,* (.crtrb) does it overlap trace buffer? 03170 0 45 003 3173 1342 tnc mak060-* no 03171 0 74 002 3173 1343 tze mak060-* also no, but it's close 03172 1344 die 1 yes, image won't work 03173 0 07 037 3232 1345 mak060 lda l.i007-* tfabf0+tfabf1 03174 1 72 036 0 1346 orsa t.flg3,1 mark them available 03175 0 67 646 3043 1347 cmpq hcurpg-* any space left in page? 03176 0 74 013 3211 1348 tze makbak-* no, that's all 03177 0 57 645 3044 1349 stq hnxstp-* yes, save address 03200 0 07 644 3044 1350 mak070 lda hnxstp-* get last available address 03201 773 037 0 1351 iaa bufsiz-1 round it up to even bufsiz boundary 03202 022 740 0 1352 iana -bufsiz 03203 0 17 641 3044 1353 sta hnxstp-* save it for size determination 03204 0 47 637 3043 1354 ldq hcurpg-* find end of page 03205 0 66 637 3044 1355 sbq hnxstp-* how much space is left? 03206 0 74 003 3211 1356 tze makbak-* none 03207 0 45 002 3211 1357 tnc makbak-* this is unlikely, but check anyway 03210 4 10 011 3221 1358 tsy a.i006-*,* (frebfh) free what remains in the page 03211 1359 makbak null that's all 03211 0 07 025 3236 1360 lda tibadr-* this is the real value where virtual value is 1361 is in the x1 register 03212 1362 return maktib 1363 1364 03214 0 01000 3 1365 a.i001 ind ctrl control tables 03215 0 22000 3 1366 a.i002 ind getmem memory allocating subroutine 03216 0 00666 0 1367 a.i003 ind .crtte 03217 0 30400 3 1368 a.i004 ind setptw set up page table word 03220 0 00704 0 1369 a.i005 ind .crmet 03221 0 17000 3 1370 a.i006 ind frebfh 03222 0 00662 0 1371 a.i007 ind .crtrb 03223 0 00651 0 1372 a.i008 ind .crmem 1373 03224 000001 0 1374 l.i001 vfd 18/dtfctl 03225 000400 0 1375 l.i002 vfd 18/tfctrl 03226 001000 0 1376 l.i003 oct 1000 03227 000004 0 1377 l.i004 vfd 18/dtfsft 03230 200000 0 1378 l.i005 vfd 18/tfsftr 03231 000400 0 1379 l.i006 oct 400 03232 011000 0 1380 l.i007 vfd 18/tfabf0+tfabf1 1381 03233 233100 0 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 65 maktib -- subroutine to allocate a tib 03234 1382 even 03234 1383 mtemp bss 2 place to put arguments 03236 1384 tibadr bss 1 real address of allocated tib 03237 1385 metadr bss 1 real address of allocated metering area assm 01 02-03-86 09.437 init - fnp initialization module for multics page 66 stopxx -- error notification routines 1386 ttls stopxx -- error notification routines 1387 1388 end of binary card 00000027 03240 0 00000 0 1389 stop ind ** 03241 0 72 027 3270 1390 orsa badsts-* put error code in status 03242 4 47 115 3357 1391 ldq a.k001-*,* (iomch) get iom channel number 03243 0 57 026 3271 1392 stq badsts+1-* put it in bootload status 03244 773 776 0 1393 iaa -2 no. get 2*(message index) 03245 0336 01 0 1394 als 1 03246 0 06 075 3343 1395 ada a.j001-* (icws) 03247 0 17 012 3261 1396 sta stp020-* this is the icw to be passed to wcon 03250 0 20 072 3342 1397 szn inhchn-* does message need channel number? 03251 0 64 007 3260 1398 tnz stp010-* no 03252 4332 00 0 1399 cax1 copy icw address 03253 1 07 000 0 1400 lda 0,1 get message address 03254 0 34 071 3345 1401 ana l.j001-* (=o077777) get rid of char addressing 03255 4332 00 0 1402 cax1 03256 0 10 070 3346 1403 tsy getchn-* get channel number for error message 03257 1 57 003 0 1404 stq 3,1 store channel number in message 1405 03260 1406 stp010 null 03260 4 10 100 3360 1407 tsy a.k002-*,* (iwcon) write it on console 03261 0 00000 0 1408 stp020 zero ** icw address goes here 03262 2331 00 0 1409 nop don't fret if no console 1410 03263 0 04 005 3270 1411 ldaq badsts-* notify cs of error 03264 4 10 060 3344 1412 tsy a.j003-*,* (btsts) 03265 4331 00 0 1413 dis just stop 03266 0 71 777 3265 1414 tra -1 1415 03267 233100 0 03270 1416 even 03270 440000 0 1417 badsts oct 440000,000000 03271 000000 0 1418 1419 03272 1420 stop02 null 03272 0 76 050 3342 1421 aos inhchn-* inhibit storing of channel no. in message 03273 673 002 0 1422 ila 2 03274 0 10 744 3240 1423 tsy stop-* 1424 03275 1425 stop03 null 03275 0 76 045 3342 1426 aos inhchn-* inhibit storing of channel no. in message 03276 673 003 0 1427 ila 3 03277 0 10 741 3240 1428 tsy stop-* 1429 03300 1430 stop04 null 03300 673 004 0 1431 ila 4 03301 0 10 737 3240 1432 tsy stop-* assm 01 02-03-86 09.437 init - fnp initialization module for multics page 67 stopxx -- error notification routines 1433 03302 1434 stop05 null 03302 673 005 0 1435 ila 5 03303 0 10 735 3240 1436 tsy stop-* 1437 03304 1438 stop06 null 03304 0 76 036 3342 1439 aos inhchn-* inhibit storing of channel no. in message 03305 673 006 0 1440 ila 6 03306 0 10 732 3240 1441 tsy stop-* 1442 end of binary card 00000028 03307 0 00000 0 1443 warn07 ind ** 03310 0 10 036 3346 1444 tsy getchn-* 03311 0 57 222 3533 1445 stq msg07+2-* 03312 4 10 046 3360 1446 tsy a.k002-*,* (iwcon) 03313 0 03374 1 1447 zero icw07 03314 2331 00 0 1448 nop dont let lack of console screw us 03315 4 71 772 3307 1449 tra warn07-*,* return to caller 1450 03316 1451 stop08 null 03316 0 76 024 3342 1452 aos inhchn-* 03317 673 010 0 1453 ila 8 03320 0 10 720 3240 1454 tsy stop-* 1455 03321 1456 stop09 null 03321 673 011 0 1457 ila 9 03322 0 10 716 3240 1458 tsy stop-* 1459 03323 1460 stop10 null 03323 673 012 0 1461 ila 10 03324 0 10 714 3240 1462 tsy stop-* 1463 03325 1464 stop11 null 03325 673 013 0 1465 ila 11 03326 0 10 712 3240 1466 tsy stop-* 1467 03327 1468 stop12 null 03327 0 76 013 3342 1469 aos inhchn-* inhibit storing of channel no. in message 03330 673 014 0 1470 ila 12 03331 0 10 707 3240 1471 tsy stop-* 1472 03332 1473 stop13 null 03332 673 015 0 1474 ila 13 03333 0 10 705 3240 1475 tsy stop-* 1476 03334 1477 stop14 null 03334 0 76 006 3342 1478 aos inhchn-* inhibit storing of channel no. in message 03335 673 016 0 1479 ila 14 03336 0 10 702 3240 1480 tsy stop-* 1481 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 68 stopxx -- error notification routines 03337 1482 stop15 null 03337 0 76 003 3342 1483 aos inhchn-* inhibit storing of channel no. in message 03340 673 017 0 1484 ila 15 03341 0 10 677 3240 1485 tsy stop-* 1486 03342 000000 0 1487 inhchn oct 0 1488 03343 0 03362 1 1489 a.j001 ind icws 1490 *a.j002 unused 03344 0 04300 1 1491 a.j003 ind btsts 1492 03345 077777 0 1493 l.j001 oct 077777 to eliminate character addressing assm 01 02-03-86 09.437 init - fnp initialization module for multics page 69 stopxx -- error notification routines 1494 eject 1495 ********************************************************* 1496 * getchn -- get current iom channel number, convert to 1497 * ascii code, and place in q-register 1498 ********************************************************* 1499 03346 0 00000 0 1500 getchn ind ** 03347 4 07 010 3357 1501 lda a.k001-*,* (iomch) get current iom channel number 03350 0336 14 0 1502 als 18-6 convert to ascii characters and leave 03351 473 006 0 1503 ilq 6 in q-register 03352 2334 03 0 1504 llr 3 03353 4336 06 0 1505 qls 6 03354 573 006 0 1506 iaq 6 03355 2334 03 0 1507 llr 3 end of binary card 00000029 03356 4 71 770 3346 1508 tra getchn-*,* 1509 03357 0 01655 1 1510 a.k001 ind iomch 03360 0 04404 1 1511 a.k002 ind iwcon assm 01 02-03-86 09.437 init - fnp initialization module for multics page 70 stopxx -- error notification routines 1512 eject 03361 233100 0 03362 1513 even 03362 1514 icws null 1515 03362 2 03416 1 1516 icw02 icw msg02-1,b.0,28 03363 000034 0 03364 2 03434 1 1517 icw03 icw msg03-1,b.0,32 03365 000040 0 03366 2 03454 1 1518 icw04 icw msg04-1,b.0,30 03367 000036 0 03370 2 03472 1 1519 icw05 icw msg05-1,b.0,30 03371 000036 0 03372 2 03510 1 1520 icw06 icw msg06-1,b.0,30 03373 000036 0 03374 2 03530 1 1521 icw07 icw msg07-1,b.0,32 03375 000040 0 03376 2 03547 1 1522 icw08 icw msg08-1,b.0,40 03377 000050 0 03400 2 03572 1 1523 icw09 icw msg09-1,b.0,40 03401 000050 0 03402 2 03615 1 1524 icw10 icw msg10-1,b.0,42 03403 000052 0 03404 2 03641 1 1525 icw11 icw msg11-1,b.0,40 03405 000050 0 03406 2 03664 1 1526 icw12 icw msg12-1,b.0,38 03407 000046 0 03410 2 03706 1 1527 icw13 icw msg13-1,b.0,44 03411 000054 0 03412 2 03733 1 1528 icw14 icw msg14-1,b.0,36 03413 000044 0 03414 2 03754 1 1529 icw15 icw msg15-1,b.0,36 03415 000044 0 1530 1531 detail off 1532 03416 015012 0 1533 vfd 9/cr,9/lf 03417 124111 0 1534 msg02 aci 13,timer channel not enabled end of binary card 00000030 03434 015012 0 1535 vfd 9/cr,9/lf 03435 115117 0 1536 msg03 aci 15,more than one dia configured 03454 015012 0 1537 vfd 9/cr,9/lf 03455 052103 0 1538 msg04 aci 13,*ch-xx, dia does not exist 03472 015012 0 1539 vfd 9/cr,9/lf 03473 052103 0 1540 msg05 aci 13,*ch-xx, dia did not respond in time end of binary card 00000031 03510 015012 0 1541 vfd 9/cr,9/lf 03511 105130 0 1542 msg06 aci 15,extended memory not configured 03530 015012 0 1543 vfd 9/cr,9/lf 03531 052103 0 1544 msg07 aci 14,*ch-xx, lsla does not exist assm 01 02-03-86 09.437 init - fnp initialization module for multics page 71 stopxx -- error notification routines end of binary card 00000032 03547 015012 0 1545 vfd 9/cr,9/lf 03550 103117 0 1546 msg08 aci 18,core image specifies too much memory 03572 015012 0 1547 vfd 9/cr,9/lf 03573 052103 0 1548 msg09 aci 18,*ch-xx, illegal lsla speed specified end of binary card 00000033 03615 015012 0 1549 vfd 9/cr,9/lf 03616 052103 0 1550 msg10 aci 19,*ch-xx, lsla failed for the tenth time 03641 015012 0 1551 vfd 9/cr,9/lf 03642 052103 0 1552 msg11 aci 18,*ch-xx, lsla actual <> desired speed end of binary card 00000034 03664 015012 0 1553 vfd 9/cr,9/lf 03665 124111 0 1554 msg12 aci 17,timer switch set to 64 khz, s/b 1 03706 015012 0 1555 vfd 9/cr,9/lf 03707 052103 0 1556 msg13 aci 20,*ch-xx, actual config doesn't match cdt end of binary card 00000035 03733 015012 0 1557 vfd 9/cr,9/lf 03734 120101 0 1558 msg14 aci 16,pager is disabled or inoperative 03754 015012 0 1559 vfd 9/cr,9/lf 03755 125116 0 1560 msg15 aci 16,unable to allocate trace buffer 03775 015012 0 1561 vfd 9/cr,9/lf 1562 1563 detail on assm 01 02-03-86 09.437 init - fnp initialization module for multics page 72 initialization main program -- wrap up 1564 ttls initialization main program -- wrap up 1565 *********************************************************************** 1566 * 1567 * all devices have now been initialized 1568 * all that remains is to open up the appropriate floodgates in an 1569 * orderly and meaningful sequence. 1570 * 1571 *********************************************************************** 1572 03776 1573 clocks null 1574 1575 1576 ********************************************************* 1577 * if t&d executive channel is configured, allocate a tib 1578 * for it. if in >32k, we will keep the sfcm area and fake 1579 * an hsla table entry therein to store the real tib 1580 * address, so the code in dia_man that finds the tib 1581 * table entry this way will work. 1582 ********************************************************* 1583 03776 4 20 243 4241 1584 szn a.m037-*,* .crtdt end of binary card 00000036 03777 0 74 023 4022 1585 tze itl025-* line not configured 04000 4 10 243 4243 1586 tsy a.m039-*,* (hgsfcm) set up tib address 04001 0 17 266 4267 1587 sta csfcm-* save sfcm address 04002 0 07 252 4254 1588 lda l.m004-* (=o412) give it a baud rate of 9600 04003 0 47 250 4253 1589 ldq l.m003-* =o1777, line number for colts 04004 4 10 236 4242 1590 tsy a.m038-*,* maktib 04005 4 17 234 4241 1591 sta a.m037-*,* save tib address in .crtdt 04006 673 023 0 1592 ila ttcolt set line type 04007 1 17 017 0 1593 sta t.type,1 04010 0 07 257 4267 1594 lda csfcm-* get sfcm address back 04011 4 10 225 4236 1595 tsy a.m034-*,* (setptw) get virtual addr 04012 1 17 030 0 1596 sta t.sfcm,1 keep it for future reference 04013 0332 00 0 1597 cax2 we will pretend 2nd and 3rd words are 04014 773 001 0 1598 iaa 1 hsla table entry 04015 2 17 015 0 1599 sta sf.hsl,2 04016 4333 00 0 1600 cax3 in order to save real tib address there 04017 4 07 222 4241 1601 lda a.m037-*,* (.crtdt) 04020 3 17 001 0 1602 sta ht.tib,3 04021 2 53 004 0 1603 stx1 sf.tib,2 just for cleanliness 1604 1605 ********************************************************* 1606 * send bootload status to cs. first we'll spin our wheels 1607 * for a second or so to give it time to process the 1608 * previous status 1609 ********************************************************* 1610 04022 673 001 0 1611 itl025 ila 1 04023 473 777 0 1612 ilq -1 aq contains 1777777, a good-sized loop index assm 01 02-03-86 09.437 init - fnp initialization module for multics page 73 initialization main program -- wrap up 04024 0 24 240 4264 1613 itl026 sbaq dbl1-* a doubleword 1 04025 0 64 777 4024 1614 tnz itl026-* keep going until it's zero 04026 0 04 234 4262 1615 ldaq gudsts-* get some good status 04027 0 10 251 4300 1616 tsy btsts-* send the bootload status 1617 04030 3331 00 0 1618 inh inhibit interrupts <-><-><-><-><-><-><-><-><->< 1619 1620 ********************************************************* 1621 * restore level 0, 1, and 2 interrupt vectors to their 1622 * operational settings 1623 ********************************************************* 1624 04031 0 41 201 4232 1625 ldx3 a.m030-* (intv+256) 04032 0 03 201 4233 1626 ldx2 a.m031-* (savein+48-3) 1627 04033 1628 itl030 null 04033 2 07 000 0 1629 lda 0,2 04034 2 47 001 0 1630 ldq 1,2 04035 3 14 760 0 1631 staq -16,3 04036 2 07 002 0 1632 lda 2,2 04037 3 17 762 0 1633 sta -14,3 04040 273 775 0 1634 iacx2 -3 04041 373 760 0 1635 iacx3 -16 04042 0 64 771 4033 1636 tnz itl030-* 1637 04043 0 07 164 4227 1638 lda a.m027-* (consjt) 04044 0 27 205 4251 1639 cmpa l.m001-* (=o776) is console_man in image? 04045 0 74 004 4051 1640 tze itl040-* no. skip console stuff end of binary card 00000037 04046 4 17 162 4230 1641 sta a.m028-*,* (tytm) yes. set up interrupt vectors for console 04047 773 003 0 1642 iaa 3 now point to "special" jump table 04050 4 17 161 4231 1643 sta a.m029-*,* (tyrq) 1644 04051 1645 itl040 null assm 01 02-03-86 09.437 init - fnp initialization module for multics page 74 initialization main program -- wrap up 1646 eject 1647 ************************************************ 1648 * now free all of init for use as buffer 1649 * space. note we will run in here for 1650 * awhile, so we must be careful about allocating 1651 * buffers. 1652 ************************************************ 1653 04051 4 76 144 4215 1654 aos a.m017-*,* (bfcksw) suspend buffer size checking 04052 4 07 146 4220 1655 lda a.m020-*,* (.crtte) 04053 773 037 0 1656 iaa bufsiz-1 round up to bufsiz boundary 04054 022 740 0 1657 iana -bufsiz 04055 0 17 211 4266 1658 sta cbufr-* this will be beginning of buffer space 1659 04056 4 47 120 4176 1660 ldq a.m001-*,* (.crbuf) old buffer area start 04057 0 66 207 4266 1661 sbq cbufr-* q contains total size 04060 4333 00 0 1662 cax3 point at which to be freed 04061 4 50 115 4176 1663 stx3 a.m001-*,* (.crbuf) so frebuf doesn't get upset 04062 4 10 127 4211 1664 tsy a.m013-*,* (frebuf) 1665 04063 0 07 203 4266 1666 lda cbufr-* start of buffer space 04064 4 26 134 4220 1667 sba a.m020-*,* (.crtte) free space before first buffer 04065 422 002 0 1668 icmpa 2 if at least 2 words, we will use it 04066 0 75 005 4073 1669 tmi itl050-* 04067 4 41 131 4220 1670 ldx3 a.m020-*,* (.crtte) addr of small space 04070 6333 00 0 1671 caq 04071 4 50 105 4176 1672 stx3 a.m001-*,* (.crbuf) 04072 4 10 122 4214 1673 tsy a.m016-*,* (fremem) 1674 04073 1675 itl050 null now free the rest of extended memory 1676 one page at a time 04073 0 54 175 4270 1677 sti itlind-* save indicators 04074 0 44 156 4252 1678 ldi l.m002-* (=024000o) inhibit interrupt & overflow 04075 4 07 150 4245 1679 lda a.m041-*,* (hcurpg) 04076 0 06 160 4256 1680 itl052 ada l.m006-* (=256) get address of end of page 04077 4 20 147 4246 1681 szn a.m042-*,* (.crtrb) is there any trace buffer? 04100 0 74 013 4113 1682 tze itl055-* no, free whole page 04101 4 27 145 4246 1683 cmpa a.m042-*,* (.crtrb) overlaps trace buffer? 04102 0 45 011 4113 1684 tnc itl055-* no 04103 0 74 010 4113 1685 tze itl055-* not quite 04104 4 07 142 4246 1686 lda a.m042-*,* .crtrb 04105 4 26 140 4245 1687 sba a.m041-*,* hcurpg 04106 022 740 0 1688 iana -bufsiz rounded to bufsize, this is actual amount left 04107 0 74 013 4122 1689 tze itl058-* which isn't any 04110 0 45 012 4122 1690 tnc itl058-* 04111 6333 00 0 1691 caq get size in q 04112 0 71 002 4114 1692 tra itl056-* 04113 0 47 143 4256 1693 itl055 ldq l.m006-* (=256) free whole page 04114 4 07 131 4245 1694 itl056 lda a.m041-*,* (hcurpg) end of binary card 00000038 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 75 initialization main program -- wrap up 04115 4 10 132 4247 1695 tsy a.m043-*,* frebfh 04116 0 06 140 4256 1696 ada l.m006-* (=256) next page address 04117 4 17 126 4245 1697 sta a.m041-*,* hcurpg 04120 4 27 130 4250 1698 cmpa a.m044-*,* .crmem 04121 0 45 755 4076 1699 tnc itl052-* if any more pages 1700 04122 4 10 113 4235 1701 itl058 tsy a.m033-*,* (fresml) clean up small space 04123 2331 00 0 1702 nop dont care which return 04124 4 56 072 4216 1703 stz a.m018-*,* (.crnbs) number of buffers for small space 04125 4 56 070 4215 1704 stz a.m017-*,* (bfcksw) enable buffer checking 1705 04126 4 07 111 4237 1706 lda a.m035-*,* .crnbf 04127 0336 05 0 1707 als bufshf get buffer pool size in words 04130 4 17 110 4240 1708 sta a.m036-*,* (.mpool) store where metering will find it 04131 0 44 137 4270 1709 ldi itlind-* restore previous indicators 1710 1711 ******************************************************** 1712 * start the control tables for each tib we created 1713 ******************************************************** 1714 04132 0 03 065 4217 1715 ldx2 a.m019-* (tibtab) get address of first entry in tib 1716 address table 04133 4 13 055 4210 1717 stx2 a.m012-*,* (.crttb) save it in system comreg 1718 04134 1719 itl060 null 04134 4 23 064 4220 1720 cmpx2 a.m020-*,* (.crtte) any more? 04135 0 74 007 4144 1721 tze itl070-* no 04136 2 07 000 0 1722 lda 0,2 yes. get real tib address 04137 4 10 077 4236 1723 tsy a.m034-*,* (setptw) virtualize it 04140 4332 00 0 1724 cax1 get virtual tib address into x1 04141 4 10 051 4212 1725 tsy a.m014-*,* (itest) call test-state entry of interpreter 04142 273 002 0 1726 iacx2 2 get address of next entry 04143 0 71 771 4134 1727 tra itl060-* get next entry 1728 04144 1729 itl070 null assm 01 02-03-86 09.437 init - fnp initialization module for multics page 76 initialization main program -- wrap up 1730 eject 1731 ********************************************************* 1732 * setup the interval and elapsed timers 1733 ********************************************************* 1734 04144 4 56 036 4202 1735 stz a.m006-*,* (itmb) interval timer value = 0 04145 0 07 036 4203 1736 lda a.m007-* (timrjt) interval timer jump table 04146 4 17 036 4204 1737 sta a.m008-*,* (tmro) timer interrupt vector 04147 4 07 052 4221 1738 lda a.m021-*,* (etrint) get elapsed timer default value 04150 4 17 035 4205 1739 sta a.m009-*,* (etmb) 04151 0 07 035 4206 1740 lda a.m010-* (etrip) elapsed timer interrupt handler 04152 4 17 035 4207 1741 sta a.m011-*,* (etr) timer interrupt vector 04153 4 10 040 4213 1742 tsy a.m015-*,* (rstclk) turn clock off 1743 04154 0 04 104 4260 1744 ldaq sdqdat-* schedule dummy rtn to kick off timer 04155 4 10 051 4226 1745 tsy a.m026-*,* (dspqur) since clock doesnt start til it is used 1746 1747 ********************************************************* 1748 * setup pointer to scheduler control blocks 1749 ********************************************************* 1750 04156 0 07 044 4222 1751 lda a.m022-* (skdata) addr of scheduler block 04157 4 17 044 4223 1752 sta a.m023-*,* (.crskd) store in .crskd 04160 0 07 044 4224 1753 lda a.m024-* (icmdat) addr of ic monitoring data 04161 0 27 070 4251 1754 cmpa l.m001-* (=o776) is it configured? 04162 0 74 002 4164 1755 tze 2 no 04163 4 17 042 4225 1756 sta a.m025-*,* (etrmon) store addr in sked block 1757 1758 ********************************************************* 1759 * set a level 2 interrupt for the dia so it can run 1760 ********************************************************* 1761 end of binary card 00000039 04164 4 07 015 4201 1762 lda a.m005-*,* (cdiaic) get mask word for interrupt cell 04165 452 002 0 1763 sic 2 1764 1765 ********************************************************* 1766 * set the interrupt enable mask register according to the 1767 * number of hsla's configured. 1768 ********************************************************* 1769 04166 4 43 011 4177 1770 ldx1 a.m003-*,* (.crnhs) 04167 0 42 045 4234 1771 adcx1 a.m032-* (cenimk) 04170 1 07 000 0 1772 lda 0,1 04171 052 000 0 1773 sier 1774 04172 4 56 006 4200 1775 stz a.m004-*,* (.crcon) make sure console io enabled assm 01 02-03-86 09.437 init - fnp initialization module for multics page 77 initialization main program -- wrap up 1776 eject 1777 ********************************************************* 1778 * well, here goes everything 1779 ********************************************************* 1780 04173 7331 00 0 1781 eni enable interrupts <+><+><+><+><+><+><+><+><+><+ 1782 04174 4 71 001 4175 1783 tra 1,* go to the main dispatcher "dis" 04175 0 05000 3 1784 ind msdsp assm 01 02-03-86 09.437 init - fnp initialization module for multics page 78 initialization main program -- wrap up 1785 eject 1786 04176 0 00650 0 1787 a.m001 ind .crbuf addr of very 1st buffer 1788 *a.m002 unused 04177 0 00654 0 1789 a.m003 ind .crnhs number of hsla's configured 04200 0 00656 0 1790 a.m004 ind .crcon console io flag 04201 0 02076 1 1791 a.m005 ind cdiaic set interrupt cell word for dia 04202 0 00450 0 1792 a.m006 ind itmb interval timer mailbox addr 04203 0 31400 3 1793 a.m007 ind timrjt interval timer jump table addr 04204 0 00361 0 1794 a.m008 ind tmro interval timer iv addr 04205 0 00451 0 1795 a.m009 ind etmb elapsed timer mailbox addr 04206 0 03000 3 1796 a.m010 ind etrip elapsed timer interrupt handler 04207 0 00362 0 1797 a.m011 ind etr elapsed timer iv addr 04210 0 00665 0 1798 a.m012 ind .crttb 04211 0 17400 3 1799 a.m013 ind frebuf 04212 0 04400 3 1800 a.m014 ind itest "test-state" entry of interpreter 04213 0 01503 1 1801 a.m015 ind rstclk stop clock routine 04214 0 20000 3 1802 a.m016 ind fremem 04215 0 10000 3 1803 a.m017 ind bfcksw 04216 0 00675 0 1804 a.m018 ind .crnbs 04217 0 00012 1 1805 a.m019 zero tibtab pointer to current entry of tib address table 04220 0 00666 0 1806 a.m020 zero .crtte pointer to end of tib address table 04221 0 16000 3 1807 a.m021 ind etrint address of default elapsed timer value 04222 0 31000 3 1808 a.m022 ind skdata address of scheduler control block 04223 0 00677 0 1809 a.m023 ind .crskd 04224 0 23000 3 1810 a.m024 ind icmdat address of data in ic-monitor routine 04225 0 16400 3 1811 a.m025 ind etrmon pointer to icmdat in skdata 04226 0 15000 3 1812 a.m026 ind dspqur 04227 0 12000 3 1813 a.m027 ind consjt console_man jump tables 04230 0 00002 0 1814 a.m028 ind tytm console terminate iv 04231 0 00001 0 1815 a.m029 ind tyrq console special iv 04232 0 00400 0 1816 a.m030 zero intv+256 end of binary card 00000040 04233 0 01631 1 1817 a.m031 zero savein+48-3 04234 0 04271 1 1818 a.m032 zero cenimk 04235 0 20400 3 1819 a.m033 ind fresml 04236 0 30400 3 1820 a.m034 ind setptw set up variable cpu page table word 04237 0 00652 0 1821 a.m035 ind .crnbf number of free "buffers" 04240 0 00737 0 1822 a.m036 ind .mpool buffer pool size for metering 04241 0 00705 0 1823 a.m037 ind .crtdt t&d channel indicator (later tib address) 04242 0 03051 1 1824 a.m038 ind maktib 04243 0 02746 1 1825 a.m039 ind hgsfcm 04244 0 03045 1 1826 a.m040 ind hsflen 04245 0 03043 1 1827 a.m041 ind hcurpg 04246 0 00662 0 1828 a.m042 ind .crtrb 04247 0 17000 3 1829 a.m043 ind frebfh 04250 0 00651 0 1830 a.m044 ind .crmem 1831 04251 000776 0 1832 l.m001 oct 776 address of missing module 04252 024000 0 1833 l.m002 oct 024000 inhibit interrupts & overflow assm 01 02-03-86 09.437 init - fnp initialization module for multics page 79 initialization main program -- wrap up 04253 001777 0 1834 l.m003 oct 1777 line number for colts pseudo-channel 04254 000412 0 1835 l.m004 oct 412 baud rate code for async 9600 baud 04255 100000 0 1836 l.m005 oct 100000 first address above 32k 04256 000400 0 1837 l.m006 dec 256 04257 233100 0 04260 1838 even 04260 007401 0 1839 sdqdat vfd 12/60,6/1 04261 0 30000 3 1840 ind secdsp 1841 04262 1842 even 04262 400000 0 1843 gudsts oct 400000,000000 bootloaded successfully status 04263 000000 0 04264 000000 0 1844 dbl1 dec 0,1 a doubleword 1 for subtracting from aq 04265 000001 0 04266 0 00000 0 1845 cbufr zero 1846 04267 1847 csfcm bss 1 "sfcm" for colts channel 04270 1848 itlind bss 1 for safe-storing indicators 1849 04271 740000 0 1850 cenimk oct 740000,776000,777700,777774 04272 776000 0 04273 777700 0 04274 777774 0 04275 233100 0 04276 1851 even 04276 000000 0 1852 clkonx oct 0,0 04277 000000 0 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 80 btsts - send bootload status to cs 1853 ttls btsts - send bootload status to cs 1854 ************************************************************************ 1855 * this routine will send status to the central system 1856 ************************************************************************ 04300 0 00000 0 1857 btsts ind ** 04301 0 14 031 4332 1858 staq .sstat-* save status to be sent end of binary card 00000041 04302 0 07 101 4403 1859 lda intcel-* get interrupt cell word 04303 0 34 031 4334 1860 ana mbxmsk-* mask mailbox address 04304 773 006 0 1861 iaa 6 add in relative location of status word 04305 0 17 041 4346 1862 sta stdcw1-* store in data transfer dcw 1863 04306 0 07 075 4403 1864 lda intcel-* get execute interrupt cell to set 04307 2337 06 0 1865 arl 6 position it 04310 0 34 025 4335 1866 ana intmsk-* mask away extraneous bits 04311 0 72 042 4353 1867 orsa stdcw2+1-* store in interrupt dcw 1868 04312 0 43 050 4362 1869 ldx1 lstsls-* get length of status dcw block 04313 0 41 024 4337 1870 ldx3 lstsl-* get pointer to dcw block 04314 0 10 047 4363 1871 tsy parity-* go calculate parity 1872 04315 0 04 023 4340 1873 ldaq list-* get list icw pointer (dia pcw) 04316 4 14 020 4336 1874 staq ldimb-*,* store in pcw mailbox 1875 04317 673 002 0 1876 ila 2 set word count for parity calculation 04320 4332 00 0 1877 cax1 04321 0 41 015 4336 1878 ldx3 ldimb-* calculate dia parity for pcw mailbox 04322 0 10 041 4363 1879 tsy parity-* 1880 04323 0 04 017 4342 1881 ldaq limodl-* get the list icw model 04324 0 14 020 4344 1882 staq stslst-* fill in for dia 1883 04325 073 000 0 1884 bts010 sel ** select the intercomputer channel 04326 4 60 010 4336 1885 cioc ldimb-*,* initiate i/o in dia channel 04327 4331 00 0 1886 dis wait for interrupt 04330 4 71 750 4300 1887 tra btsts-*,* return assm 01 02-03-86 09.437 init - fnp initialization module for multics page 81 btsts - send bootload status to cs 1888 eject 1889 04331 233100 0 04332 1890 even 04332 000000 0 1891 .sstat dec 0,0 bootload status to go 04333 000000 0 04334 007777 0 1892 mbxmsk oct 007777 mailbox address mask 04335 007700 0 1893 intmsk oct 007700 interrupt cell mask 04336 0 00454 0 1894 ldimb ind dimb dia mailbox location 04337 0 04344 1 1895 lstsl ind stslst location of status list 04340 1896 even 04340 1 04344 1 1897 list zero stslst,w.2 pcw model - ptr to list icw 04341 000072 0 1898 oct 72 opcode - list operation 1899 04342 1 04346 1 1900 limodl dcw stdcw1,6 bootload status list icw model 04343 000006 0 04344 000000 0 1901 stslst oct 0,0 place for list icw 04345 000000 0 04346 000000 0 1902 stdcw1 vfd 18/,12/,o6/75 data transfer fnp to cs dcw 04347 000075 0 04350 1 04332 1 1903 dcw .sstat,1 end of binary card 00000042 04351 000001 0 04352 000000 0 1904 stdcw2 vfd 18/,12/,o6/73 interrupt cs dcw 04353 000073 0 04354 1 00000 0 1905 zero 0,w.2 04355 000000 0 1906 oct 04356 000000 0 1907 stdcw3 vfd 18/,12/,o6/70 disconnect dcw 04357 000070 0 04360 1 00000 0 1908 zero 0,w.2 04361 000000 0 1909 oct 04362 0 00016 0 1910 lstsls ind *-stslst length of status dcw block assm 01 02-03-86 09.437 init - fnp initialization module for multics page 82 calculate parity routine 1911 ttls calculate parity routine 1912 04363 0 00000 0 1913 parity ind ** 04364 3 47 000 0 1914 ldq 0,3 get first word of dcw 04365 3 07 001 0 1915 lda 1,3 get second word of dcw 1916 04366 7336 22 0 1917 qlp 18 calculate parity for 1st word 04367 0 64 002 4371 1918 tnz 2 odd parity... 04370 0 37 011 4401 1919 ora parwd1-* even - set parity bit 1920 04371 3336 22 0 1921 alp 18 calculate parity for 2nd word 04372 0 64 002 4374 1922 tnz 2 odd parity... 04373 0 37 007 4402 1923 ora parwd2-* even - set parity bit 1924 04374 3 17 001 0 1925 sta 1,3 restore 2nd word with parity bits 1926 04375 373 002 0 1927 iacx3 2 bump words pointer 04376 173 776 0 1928 iacx1 -2 decrement word count 04377 0 64 765 4364 1929 tnz parity+1-* more to do 1930 04400 4 71 763 4363 1931 tra parity-*,* return 1932 04401 040000 0 1933 parwd1 oct 040000 parity bit for 1st word of dia dcw 04402 020000 0 1934 parwd2 oct 020000 parity bit for 2nd word of dia dcw 1935 beginning of free space while init is running 04403 000000 0 1936 intcel dec 0 interrupt cell passed by gicb assm 01 02-03-86 09.437 init - fnp initialization module for multics page 83 iwcon - common interface to wcon 1937 ttls iwcon - common interface to wcon 1938 04404 1939 iwcon subr iwc,(x1) 04412 4 20 013 4425 1940 szn a.n001-*,* (conman) is console_man in image? 04413 0 74 007 4422 1941 tze iwc020-* no. take error return 04414 4 07 770 4404 1942 lda iwcon-*,* yes. get icw address 04415 0 17 003 4420 1943 sta iwc010-* store it after tsy to wcon 04416 0 76 766 4404 1944 aos iwcon-* set up for error return end of binary card 00000043 04417 4 10 007 4426 1945 tsy a.n002-*,* (wcon) write on console 04420 0 00000 0 1946 iwc010 zero ** icw address 04421 0 71 002 4423 1947 tra iwcret-* error return 1948 04422 1949 iwc020 null 04422 0 76 762 4404 1950 aos iwcon-* bump return address 1951 04423 1952 iwcret null 04423 1953 return iwcon 1954 1955 04425 0 11400 3 1956 a.n001 ind conman 04426 0 01400 3 1957 a.n002 ind wcon assm 01 02-03-86 09.437 init - fnp initialization module for multics page 84 initialization main program 1958 ttls initialization main program 1959 1960 1961 ********************************************* 1962 * gicb enters inti by way of 1963 * tra =(istart-1),* 1964 * 1965 * and passes: 1966 * the highest address in mcs in x2 1967 * the interrupt cell for the cs in x3 1968 * the dia iom channel in the a 1969 ********************************************** 1970 04427 4 50 134 4563 1971 stx3 a.t017-*,* (intcel) set interrupt cell 04430 1972 istart null 04430 3331 00 0 1973 inh inhibit interrupts <-><-><-><-><-><-><-><-><->< 1974 04431 4 17 121 4552 1975 sta a.t003-*,* (diachn) save dia i/o channel 1976 and derive terminate interrupt vector address 04432 0336 04 0 1977 als 4 which is 16*(channel)+2 04433 773 002 0 1978 iaa 2 04434 4 17 124 4560 1979 sta a.t010-*,* diatmv 1980 1981 ************************************************************** 1982 * clear all unused configured memory including extended memory 1983 ************************************************************** 1984 04435 4 07 121 4556 1985 lda a.t008-*,* (.crmem) get memory size 04436 4 17 117 4555 1986 sta a.t007-*,* (mvplmm) set lower memory maximum address 04437 0 17 145 4604 1987 sta istpcl-* stops memory clear loop 04440 0 27 131 4571 1988 cmpa l.t002-* (=32768) is last address above 32k? 04441 4 45 126 4567 1989 tnc a.t022-*,* (stop06) no. we can't run this code 04442 0 07 127 4571 1990 lda l.t002-* (=32768) yes. calculate last address in lower 32k 04443 773 777 0 1991 iaa -1 04444 0 17 140 4604 1992 sta istpcl-* stops memory clear loop 04445 773 400 0 1993 iaa -256 account for paging window 04446 773 400 0 1994 iaa -256 and buffer window 04447 4 17 106 4555 1995 sta a.t007-*,* (mvplmm) set lower memory maximum address 1996 * 1997 * check pager operation 1998 * 04450 0 43 130 4600 1999 ldx1 l.t009-* get address of loc. 0 04451 1 07 000 0 2000 lda 0,1 save its contents 04452 0 17 135 4607 2001 sta itloc0-* 04453 673 777 0 2002 ila -1 put something recognizable there 04454 1 17 000 0 2003 sta 0,1 04455 0 43 116 4573 2004 ldx1 l.t004-* (window) base of window 04456 1 56 000 0 2005 stz 0,1 clear test cells 04457 1 56 400 0 2006 stz -256,1 04460 4 41 077 4557 2007 ldx3 a.t009-*,* (.crpte) assm 01 02-03-86 09.437 init - fnp initialization module for multics page 85 initialization main program 04461 0 07 114 4575 2008 lda l.t006-* (=o100040) init page table to window page 77000 04462 0 26 110 4572 2009 sba l.t003-* (=o400) 04463 0 26 107 4572 2010 sba l.t003-* (=o400) 04464 3 17 000 0 2011 sta 0,3 04465 4 07 067 4554 2012 lda a.t006-*,* (.crcpt) init cpu pager end of binary card 00000044 04466 4 17 065 4553 2013 sta a.t004-*,* (cptp) 04467 673 777 0 2014 ila -1 lets see where this goes 04470 1 17 000 0 2015 sta 0,1 store test value 04471 3 56 000 0 2016 stz 0,3 disable pager 04472 1 07 000 0 2017 lda 0,1 this is the real 77400, has it changed? 04473 0 64 053 4546 2018 tnz itl120-* yes. bad news 04474 1 07 400 0 2019 lda -256,1 this is where store should go 04475 422 777 0 2020 icmpa -1 is it correct? 04476 0 64 050 4546 2021 tnz itl120-* no. bad news 2022 04477 2023 itl100 null clear lower memory loop 04477 2 56 000 0 2024 stz 0,2 clear one word 04500 273 001 0 2025 iacx2 1 udate pointer 04501 0 23 103 4604 2026 cmpx2 istpcl-* is clearing finished? 04502 0 64 775 4477 2027 tnz itl100-* no. continue clear 04503 2 56 000 0 2028 stz 0,2 yes. clear the last location 2029 04504 4 07 052 4556 2030 lda a.t008-*,* (.crmem) get memory size 04505 773 001 0 2031 iaa 1 yes. calculate stop for memory clear loop 04506 0 17 076 4604 2032 sta istpcl-* 04507 0 43 064 4573 2033 ldx1 l.t004-* (window) get pointer to paged address space 04510 4 03 047 4557 2034 ldx2 a.t009-*,* (.crpte) get address of variable page table entry 04511 0 07 064 4575 2035 lda l.t006-* (=o100040) set up page table entry for window 04512 2 17 000 0 2036 sta 0,2 04513 0 41 057 4572 2037 ldx3 l.t003-* (=o400) set up counter 04514 0 07 066 4602 2038 lda iabsad-* absolute address value 04515 0 44 053 4570 2039 ldi l.t001-* inhibit overflow 2040 04516 2041 itl110 null clear one page of extended memory loop 04516 1 56 000 0 2042 stz 0,1 clear one word 04517 0 31 060 4577 2043 cana l.t008-* (=o077777) first word of a 32k block? 04520 0 64 006 4526 2044 tnz itl115-* no, proceed 04521 0 53 065 4606 2045 stx1 itx1-* save contents of x1 04522 0 43 056 4600 2046 ldx1 l.t009-* zero 04523 1 20 000 0 2047 szn 0,1 did we clobber loc. 0? 04524 4 74 025 4551 2048 tze a.t002-*,* (stop08) yes, there isn't this much memory 04525 0 43 061 4606 2049 ldx1 itx1-* restore x1 04526 773 001 0 2050 itl115 iaa 1 increment absolute address value 04527 0 27 055 4604 2051 cmpa istpcl-* has the whole upper memory been written? 04530 0 74 072 4622 2052 tze itl140-* yes. extended memory clearing is done 04531 173 001 0 2053 iacx1 1 no. increment page pointer 04532 373 777 0 2054 iacx3 -1 done with this page? 04533 0 74 003 4536 2055 tze itl118-* yes, set up for next 04534 1 56 000 0 2056 stz 0,1 no. continue clearing assm 01 02-03-86 09.437 init - fnp initialization module for multics page 86 initialization main program end of binary card 00000045 04535 0 71 771 4526 2057 tra itl115-* 2058 04536 0 17 044 4602 2059 itl118 sta iabsad-* save absolute address value 04537 2 07 000 0 2060 lda 0,2 current page table entry 04540 0 06 032 4572 2061 ada l.t003-* (=o400) point to next page in upper memroy 04541 2 17 000 0 2062 sta 0,2 hope the pager sees this 04542 0 07 040 4602 2063 lda iabsad-* restore absolute address value to a register 04543 0 43 030 4573 2064 ldx1 l.t004-* (window) re-init page pointer 04544 0 41 026 4572 2065 ldx3 l.t003-* (=o400) re-init counter 04545 0 71 751 4516 2066 tra itl110-* do the next page 2067 04546 2068 itl120 null 04546 0 76 035 4603 2069 aos ipgerr-* remember paging error 04547 0 71 105 4654 2070 tra itl180-* init iv's for console write 2071 04550 0 30401 3 2072 a.t001 ind setptw+1 04551 0 03316 1 2073 a.t002 ind stop08 04552 0 02101 1 2074 a.t003 ind diachn 04553 0 00475 0 2075 a.t004 ind cptp 04554 0 00701 0 2076 a.t006 ind .crcpt 04555 0 27000 3 2077 a.t007 ind mvplmm lower memory maximum address (in utilities) 04556 0 00651 0 2078 a.t008 ind .crmem memory size 04557 0 00702 0 2079 a.t009 ind .crpte 04560 0 02102 1 2080 a.t010 ind diatmv 2081 *a.t011 unused 2082 *a.t012 unused 2083 *a.t013 unused 04561 0 03334 1 2084 a.t014 ind stop14 04562 0 00653 0 2085 a.t016 ind .criom 04563 0 04403 1 2086 a.t017 ind intcel 04564 0 01521 1 2087 a.t019 ind figtre 04565 0 03045 1 2088 a.t020 ind hsflen 04566 0 03047 1 2089 a.t021 ind htibln 04567 0 03304 1 2090 a.t022 ind stop06 2091 04570 024000 0 2092 l.t001 oct 024000 inhibit overflow and interrupts 04571 100000 0 2093 l.t002 dec 32768 04572 000400 0 2094 l.t003 oct 400 04573 077400 0 2095 l.t004 vfd 18/window 04574 4 71 777 4573 2096 l.t005 tra -1,* 04575 100040 0 2097 l.t006 vfd 10/128,3/1,5/0 04576 2331 00 0 2098 l.t007 nop 04577 077777 0 2099 l.t008 oct 077777 04600 000000 0 2100 l.t009 oct 0 04601 020000 0 2101 l.t010 oct 020000 inhibit interrupts only 2102 04602 100000 0 2103 iabsad oct 100000 04603 000000 0 2104 ipgerr oct 0 end of binary card 00000046 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 87 initialization main program 04604 000000 0 2105 istpcl oct 0 04605 000000 0 2106 itcerr oct 0 04606 2107 itx1 bss 1 04607 2108 itloc0 bss 1 04610 000000 0 2109 itrcdm oct 0 dummy area used in case trace module is not 2110 configured 2111 000100 2112 pte.s bool 100 page table entry security bit 077400 2113 window bool 77400 2114 04611 233100 0 04612 2115 even 04612 0 00400 3 2116 hfvi ind hfv fault vector images 04613 0 00402 3 2117 ind hfv+2 04614 0 00404 3 2118 ind hfv+4 04615 0 00406 3 2119 ind hfv+6 04616 0 00410 3 2120 ind hfv+8 04617 0 00412 3 2121 ind hfv+10 04620 0 00414 3 2122 ind hfv+12 04621 0 00416 3 2123 ind hfv+14 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 88 initialization main program 2124 eject 2125 04622 2126 itl140 null 04622 673 100 0 2127 ila pte.s turn on 'security' bit in ptw so 04623 2 72 000 0 2128 orsa 0,2 any reference to window will cause a store fault 2129 2130 ********************************************************* 2131 * set up some values for hgsfcm subroutine in init module 2132 ********************************************************* 2133 04624 673 055 0 2134 ila t.leng get length of tib 04625 773 001 0 2135 iaa 1 make it an even number of words 04626 022 776 0 2136 iana -2 04627 4 17 737 4566 2137 sta a.t021-*,* (htibln) 2138 04630 2139 itl170 null 04630 0 43 274 5124 2140 ldx1 a.u007-* (fltv) move processor fault vector images to 04631 0 04 761 4612 2141 ldaq hfvi-* fault vector locations 04632 1 14 000 0 2142 staq 0,1 04633 0 04 761 4614 2143 ldaq hfvi+2-* 04634 1 14 002 0 2144 staq 2,1 04635 0 04 761 4616 2145 ldaq hfvi+4-* 04636 1 14 004 0 2146 staq 4,1 04637 0 04 761 4620 2147 ldaq hfvi+6-* 04640 1 14 006 0 2148 staq 6,1 2149 2150 ********************************************************* 2151 * get buffer routine metering area address 2152 ********************************************************* 2153 04641 0 07 305 5146 2154 lda a.u025-* addr (getbfm) 04642 4 17 305 5147 2155 sta a.u026-*,* .crbtm 2156 2157 ********************************************************* 2158 * if breakpoint_man in coreimage, setup .crbrk 2159 ********************************************************* 2160 04643 0 07 271 5134 2161 lda a.u015-* (brktab) address of break control table 04644 0 27 311 5155 2162 cmpa l.u004-* (=o776) valid (not equal to 776) 04645 0 64 002 4647 2163 tnz 2 yes, ok 04646 673 000 0 2164 ila 0 use 0, no break table 04647 4 17 266 5135 2165 sta a.u016-*,* (.crbrk) store in comm region assm 01 02-03-86 09.437 init - fnp initialization module for multics page 89 initialization main program 2166 eject 2167 ********************************************************* 2168 * set up fig tree table pointers 2169 ********************************************************* 2170 04650 0 43 714 4564 2171 ldx1 a.t019-* (figtre) 04651 4 07 711 4562 2172 lda a.t016-*,* (.criom) get address of fig tree table 04652 1 16 000 0 2173 asa 0,1 end of binary card 00000047 04653 1 16 001 0 2174 asa 1,1 2175 04654 2176 itl180 null 2177 2178 ********************************************************* 2179 * if console_man is in coreimage, turn on 'conman' switch 2180 ********************************************************* 2181 04654 0 07 254 5130 2182 lda a.u011-* (wcon) get address of entry point in console_man 04655 0 27 300 5155 2183 cmpa l.u004-* (=o776) is console_man in image? 04656 0 74 003 4661 2184 tze itl190-* no 04657 673 777 0 2185 ila -1 yes. turn on conman switch 04660 4 17 253 5133 2186 sta a.u014-*,* (conman) 2187 04661 2188 itl190 null 2189 2190 ********************************************************* 2191 * set up level 0, 1, and 2 iv's so that "iom channel 2192 * faults" are trapped and all other's ignored. save 2193 * previous contents of these iv's for later restoration. 2194 ********************************************************* 2195 04661 0 44 720 4601 2196 ldi l.t010-* (=o020000) resume permission of overflow faults 04662 0 43 716 4600 2197 ldx1 l.t009-* zero 04663 0 07 724 4607 2198 lda itloc0-* restore original contents of location 0 04664 1 17 000 0 2199 sta 0,1 04665 0 43 705 4572 2200 ldx1 l.t003-* (=o400) fill iom channel fault iv's 04666 0 07 237 5125 2201 lda a.u008-* (iomflt) with pointer's to "iomflt" 04667 1 17 760 0 2202 sta -16,1 04670 173 760 0 2203 iacx1 -16 04671 0 64 776 4667 2204 tnz -2 2205 04672 0 41 700 4572 2206 ldx3 l.t003-* (=o400) replace all zero iv's with a pointer 04673 0 07 255 5150 2207 lda a.u027-* (ignore) to an ignore interrupts routine 04674 2208 itl200 null 04674 3 47 777 0 2209 ldq -1,3 04675 0 64 002 4677 2210 tnz 2 04676 3 17 777 0 2211 sta -1,3 04677 373 777 0 2212 iacx3 -1 04700 0 64 774 4674 2213 tnz itl200-* 2214 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 90 initialization main program 04701 0 41 671 4572 2215 ldx3 l.t003-* (=o400) save present values of level 0, 1, 2 04702 0 03 243 5145 2216 ldx2 a.u024-* (savein+48-3) interrupt vectors for restoration 04703 2217 itl210 null 04703 3 04 760 0 2218 ldaq -16,3 later 04704 2 17 000 0 2219 sta 0,2 04705 2 57 001 0 2220 stq 1,2 04706 3 07 762 0 2221 lda -14,3 04707 2 17 002 0 2222 sta 2,2 04710 0 04 356 5266 2223 ldaq ignrad-* set iv's to "ignore" 04711 3 14 760 0 2224 staq -16,3 04712 3 17 762 0 2225 sta -14,3 04713 273 775 0 2226 iacx2 -3 04714 373 760 0 2227 iacx3 -16 04715 0 64 766 4703 2228 tnz itl210-* 2229 04716 0 07 240 5156 2230 lda l.u005-* (=o700000) enable level 0,1,2 interrupts 04717 052 000 0 2231 sier <-><+><-><+><-><+><-><+><-><+><-><+> 2232 04720 673 061 0 2233 ila 3*16+1 allow any interrupts waiting 2234 to cycle thru 04721 7331 00 0 2235 eni enable interrupts <+><+><+><+><+><+><+><+><+><+ end of binary card 00000048 04722 2331 00 0 2236 nop 04723 773 777 0 2237 iaa -1 loop for a while to give them a chance 04724 0 64 776 4722 2238 tnz -2 to do their thing 2239 2240 now run the idle loop for one metering interval 2241 to establish a counter value for an idle interval 2242 04725 0 07 211 5136 2243 lda a.u017-* addr (itl215) 04726 4 17 211 5137 2244 sta a.u018-*,* (etr) direct timer interrupt to here 04727 673 000 0 2245 ila 0 get negative interval size to set timer 04730 4 26 210 5140 2246 sba a.u019-*,* idlint 04731 4 17 175 5126 2247 sta a.u009-*,* etmb 04732 4 71 207 5141 2248 tra a.u020-*,* (idloop) run the idle loop till timer goes off 2249 04733 0 00000 0 2250 itl215 ind ** elapsed timer runout comes here 04734 4 04 206 5142 2251 ldaq a.u021-*,* idlcnt 04735 4 14 206 5143 2252 staq a.u022-*,* (idlmax) this is maximum value 04736 4 14 206 5144 2253 staq a.u023-*,* (idlmin) and also minimum so far 04737 0 07 327 5266 2254 lda ignrad-* now ignore timer interrupts again 04740 4 17 177 5137 2255 sta a.u018-*,* etr 04741 673 000 0 2256 ila 0 and clear the counter 04742 473 000 0 2257 ilq 0 04743 4 14 177 5142 2258 staq a.u021-*,* idlcnt 2259 04744 0 43 626 4572 2260 ldx1 l.t003-* (=o400) fill iom channel fault iv's 04745 0 07 160 5125 2261 lda a.u008-* (iomflt) with pointer's to "iomflt" 04746 1 17 760 0 2262 sta -16,1 04747 173 760 0 2263 iacx1 -16 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 91 initialization main program 04750 0 64 776 4746 2264 tnz -2 2265 04751 4 07 156 5127 2266 lda a.u010-*,* (conchn) initialize console terminate iv 04752 0336 04 0 2267 als 4 04753 4332 00 0 2268 cax1 04754 0 07 155 5131 2269 lda a.u012-* (contip) 04755 0 27 200 5155 2270 cmpa l.u004-* (=o776) is console_man in image? 04756 0 74 012 4770 2271 tze itl220-* no. skip console stuff 04757 1 17 002 0 2272 sta 2,1 yes. set up console terminate interrupt vector 04760 4 07 152 5132 2273 lda a.u013-*,* (.crcon) save console switch 04761 0 17 342 5323 2274 sta conswt-* 04762 4 56 150 5132 2275 stz a.u013-*,* (.crcon) zero switch so cr/lf goes through 04763 4 10 145 5130 2276 tsy a.u011-*,* (wcon) send cr/lf to console to unmask channel 04764 0 05270 1 2277 zero iwcrlf (9/cr,9/lf) 04765 2331 00 0 2278 nop don't loop if no console 04766 0 07 335 5323 2279 lda conswt-* restore .crcon 04767 4 17 143 5132 2280 sta a.u013-*,* (.crcon) 2281 04770 2282 itl220 null assm 01 02-03-86 09.437 init - fnp initialization module for multics page 92 initialization main program 2283 eject 2284 *********************************************************** 2285 * now that the console has been set up, 2286 * check for fatal errors. 2287 *********************************************************** 2288 04770 0 20 613 4603 2289 szn ipgerr-* was there a paging error? end of binary card 00000049 04771 4 64 570 4561 2290 tnz a.t014-*,* (stop14) yes. cannot continue 2291 2292 2293 *********************************************************** 2294 * check if timer is enabled and running 2295 *********************************************************** 2296 04772 4 07 134 5126 2297 lda a.u009-*,* (etmb) get current value of elapsed timer 04773 0 47 323 5316 2298 ldq l.v002-* (=1000) get two millisecond counter 04774 573 777 0 2299 iaq -1 wait two milliseconds 04775 0 64 777 4774 2300 tnz -1 04776 4 27 130 5126 2301 cmpa a.u009-*,* (etmb) check and see if timer changed 04777 0 64 003 5002 2302 tnz itl230-* yes-ok 05000 4 71 001 5001 2303 tra 1,* no. error...timer not enabled 05001 0 03272 1 2304 ind stop02 2305 2306 2307 *********************************************************** 2308 * check to make sure interval timer switch is set 2309 * to click every msec and not every 64th of a msec 2310 *********************************************************** 2311 05002 2312 itl230 null 05002 673 002 0 2313 ila 2 set timer to go off in 2 msec 05003 0 47 010 5013 2314 ldq itl250-* .. 05004 4 10 277 5303 2315 tsy a.v018-*,* (setclk) 05005 0 47 310 5315 2316 ldq l.v001-* (=250) get half millisecond counter 05006 573 777 0 2317 iaq -1 wait half millisecond 05007 0 64 777 5006 2318 tnz -1 .. 05010 0 56 003 5013 2319 stz itl250-* if we finished counting, timer is set to click 2320 every msec. set flag and wait for timer to go off 05011 4331 00 0 2321 dis 05012 0 03327 1 2322 itl240 ind stop12 05013 0 05014 1 2323 itl250 ind *+1 addr of place to go on timer interrupt 05014 0 00000 0 2324 ind ** 05015 0 20 776 5013 2325 szn itl250-* did we finish counting above? 05016 4 64 774 5012 2326 tnz itl240-*,* no - timer sw is wrong - inform cs assm 01 02-03-86 09.437 init - fnp initialization module for multics page 93 initialization main program 2327 eject 2328 *********************************************************** 2329 * determine which iom channels are physically present. 2330 * save the results in word "exist" such that a one in 2331 * bit position "x" indicates that channel "x" exists. 2332 *********************************************************** 2333 05017 2334 itl260 null 05017 473 000 0 2335 ilq 0 the q reg contains the status found so far 05020 673 000 0 2336 ila 0 want x1 to hold current subch num -- but 05021 4332 00 0 2337 cax1 it needs to be loaded first 2338 05022 0 41 223 5245 2339 ldx3 xstsav-* x3 will point to table of 16 readbacks 2340 05023 2341 itl270 null 05023 2332 00 0 2342 cx1a get the iom chan num into a reg 05024 0 37 273 5317 2343 ora l.v003-* (sel 0) 'or' in the sel instruction 05025 0 17 001 5026 2344 sta 1 put it where we will execute it 05026 073 000 0 2345 sel ** (altrd) select the current iom chan 05027 0 70 273 5322 2346 stex itemp-* store this channel's static status 05030 0 07 272 5322 2347 lda itemp-* pick up the status status 05031 3 17 000 0 2348 sta 0,3 save it in readback vector 05032 422 000 0 2349 icmpa 0 by experiment, non-existant channels 2350 * return 0, most others dont (dia is exception) 05033 0 74 002 5035 2351 tze 2 it doesn't exist, dont turn on this bit 05034 573 001 0 2352 iaq 1 it does exist, turn on low order bit 05035 4336 01 0 2353 qls 1 move over to make room for next channel 05036 173 001 0 2354 iacx1 1 add one to subchannel number 05037 373 001 0 2355 iacx3 1 add one to readback vector loc end of binary card 00000050 05040 2332 00 0 2356 cx1a get the subchannel number again 05041 422 020 0 2357 icmpa 16 was it the last one, 05042 0 64 761 5023 2358 tnz itl270-* no 2359 05043 4336 01 0 2360 qls 1 move word over one more to left justify 2361 2362 dia doesn't perform properly for experiment, so... 2363 05044 4 57 200 5244 2364 stq mexist-*,* save word where others can find it 05045 4 07 104 5151 2365 lda a.u028-*,* (diachn) get dia channel 05046 0 37 111 5157 2366 ora l.u006-* 'arl 0' 05047 0 17 002 5051 2367 sta itl275-* patch shift instruction 05050 0 07 110 5160 2368 lda l.u007-* (=o400000) get bit to shift 05051 2337 00 0 2369 itl275 arl ** 05052 4 72 172 5244 2370 orsa mexist-*,* update 'exists' word assm 01 02-03-86 09.437 init - fnp initialization module for multics page 94 initialization main program 2371 eject 2372 ********************************************************* 2373 * send an initialize pcw to each hsla configured 2374 ********************************************************* 2375 05053 2376 itl280 null 05053 4 20 044 5117 2377 szn a.u002-*,* (.crnhs) first, are there any hsla's ?? 05054 4 74 045 5121 2378 tze a.u004-*,* (itl350) no, don't bother with this code 05055 0 71 002 5057 2379 tra itl300-* skip over channel incrementation 2380 05056 2381 itl290 null * come here to increment to next channel 05056 4 76 044 5122 2382 aos a.u005-*,* (iomch) 05057 2383 itl300 null 05057 4 07 043 5122 2384 lda a.u005-*,* (iomch) load iom channel 05060 0336 01 0 2385 als 1 multiply by two 05061 4332 00 0 2386 cax1 x1 <- 2 * (iom ch #) 05062 4 07 041 5123 2387 lda a.u006-*,* (figtre,*) pick up 1st word of config tree 05063 2337 04 0 2388 arl 18-fcdevc-1 right justify the device type 05064 022 037 0 2389 iana fbdevc mask out the rest of the word 05065 422 003 0 2390 icmpa dhsla is it any hsla ?? 05066 0 64 020 5106 2391 tnz itl310-* no, jump out of this section 2392 * yes, prepare to initialize it 05067 4 07 033 5122 2393 lda a.u005-*,* (iomch) pick up the iom channel # 05070 0 37 064 5154 2394 ora l.u003-* (sel 0) 'or' in a select instruction 05071 0 17 001 5072 2395 sta +1 store in where we will execute it 05072 073 000 0 2396 sel ** (this instruction patched above) 2397 * select this hsla for operation 2398 2399 * now, check to see if this channel exists 05073 022 017 0 2400 iana 15 mask out all but iom channel # (=o17) 05074 0 37 057 5153 2401 ora l.u002-* (qls 0) 'or' in 'qls' instruction 05075 0 17 002 5077 2402 sta +2 store where we will execute it 05076 4 47 022 5120 2403 ldq a.u003-*,* (exist) pick up word on which channels exist 05077 4336 00 0 2404 qls ** (patched from above) 2405 * move desired bit into sign bit 05100 0 65 010 5110 2406 tpl itl320-* doesn't exist, the hsla initialization 2407 * will print out a message later 2408 2409 * initialize this hsla 2410 * (we need to hit it 4 times in case it's a 6670 2411 * with 4 mlcs pretending to be 1 hsla) 05101 0 60 061 5162 2412 cioc ipcwa-* pcw1, cmd 10, subchannel 0 05102 0 60 062 5164 2413 cioc ipcwb-* " " " 8 05103 0 60 063 5166 2414 cioc ipcwc-* " " " 16 05104 0 60 064 5170 2415 cioc ipcwd-* " " " 24 05105 0 71 003 5110 2416 tra itl320-* 2417 05106 2418 itl310 null 05106 422 001 0 2419 icmpa dclock is this the clock (the clock must be 2420 * the last iom channel assm 01 02-03-86 09.437 init - fnp initialization module for multics page 95 initialization main program end of binary card 00000051 05107 0 74 002 5111 2421 tze itl330-* yes, go initialize the devices 2422 05110 2423 itl320 null * no, go look for other hsla's 05110 0 71 746 5056 2424 tra itl290-* 2425 05111 2426 itl330 null 05111 0 07 041 5152 2427 lda l.u001-* (=5000) set clock for 5 sec to allow hsla's 05112 0 47 004 5116 2428 ldq a.u001-* (itl340) to finish 05113 4 10 170 5303 2429 tsy a.v018-*,* (setclk) wait here for clock to time out 05114 4331 00 0 2430 dis 05115 0 71 777 5114 2431 tra -1 2432 2433 2434 2435 05116 0 05172 1 2436 a.u001 ind itl340 jump over the following area of data 05117 0 00654 0 2437 a.u002 ind .crnhs number of hsla's configured 05120 0 03400 3 2438 a.u003 ind exist 05121 0 05173 1 2439 a.u004 ind itl350 05122 0 01655 1 2440 a.u005 ind iomch 05123 4 01521 1 2441 a.u006 ind figtre,* 05124 0 00440 0 2442 a.u007 zero fltv fault vector base address 05125 0 26400 3 2443 a.u008 ind iomflt iom channel fault routine 05126 0 00451 0 2444 a.u009 ind etmb elapsed timer mailbox 05127 0 11000 3 2445 a.u010 ind conchn 05130 0 01400 3 2446 a.u011 ind wcon 05131 0 12400 3 2447 a.u012 ind contip 05132 0 00656 0 2448 a.u013 ind .crcon 05133 0 11400 3 2449 a.u014 ind conman 05134 0 10400 3 2450 a.u015 ind brktab address of table in breakpoint_man 05135 0 00672 0 2451 a.u016 ind .crbrk 05136 0 04733 1 2452 a.u017 ind itl215 05137 0 00362 0 2453 a.u018 ind etr elapsed timer interrupt vector 05140 0 24000 3 2454 a.u019 ind idlint idle metering interval (in scheduler) 05141 0 25400 3 2455 a.u020 ind idloop start of idle loop (in scheduler) 05142 0 23400 3 2456 a.u021 ind idlcnt counter incremented by idle loop (in scheduler) 05143 0 24400 3 2457 a.u022 ind idlmax maximum value of idlcnt (in scheduler) 05144 0 25000 3 2458 a.u023 ind idlmin minimum " " " " " 05145 0 01631 1 2459 a.u024 zero savein+48-3 05146 0 21000 3 2460 a.u025 ind getbfm 05147 0 00706 0 2461 a.u026 ind .crbtm 05150 0 26000 3 2462 a.u027 ind ignore 05151 0 02101 1 2463 a.u028 ind diachn 2464 05152 011610 0 2465 l.u001 dec 5000 05153 4336 00 0 2466 l.u002 qls 0 05154 073 000 0 2467 l.u003 sel 0 05155 000776 0 2468 l.u004 oct 776 a missing address end of binary card 00000052 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 96 initialization main program 05156 700000 0 2469 l.u005 oct 700000 05157 2337 00 0 2470 l.u006 arl 0 05160 400000 0 2471 l.u007 oct 400000 2472 05161 233100 0 05162 2473 even 05162 300000 0 2474 ipcwa vfd 2/1,4/initop,12/0,18/0 initialize pcw 05163 000000 0 05164 301000 0 2475 ipcwb vfd 2/1,4/initop,6/8,6/0,18/0 same for second mlc 05165 000000 0 05166 302000 0 2476 ipcwc vfd 2/1,4/initop,6/16,6/0,18/0 third 05167 000000 0 05170 303000 0 2477 ipcwd vfd 2/1,4/initop,6/24,6/0,18/0 fourth 05171 000000 0 2478 2479 2480 05172 0 00000 0 2481 itl340 ind ** 05173 2482 itl350 null 05173 4 56 727 5122 2483 stz a.u005-*,* (iomch) assm 01 02-03-86 09.437 init - fnp initialization module for multics page 97 initialization main program 2484 eject 2485 *********************************************************** 2486 * set up initial buffer space parameters. 2487 * we will allocate buffers starting at istart of init 2488 * but we will free the rest of init for use as buffer space 2489 * later. the code from istart to the end of init is no 2490 * longer needed. 2491 *********************************************************** 2492 05174 0 07 077 5273 2493 lda a.v007-* (istart-1) the begining of the end of init 05175 773 037 0 2494 iaa bufsiz-1 round to buffer boundary 05176 022 740 0 2495 iana -bufsiz 05177 4333 00 0 2496 cax3 address to free 05200 4 17 105 5305 2497 sta a.v020-*,* (.crbuf) starting addr of buffer area 05201 0 07 107 5310 2498 lda a.v023-* (endtrc) is trace module in image? 05202 0 27 753 5155 2499 cmpa l.u004-* (=o776) 05203 0 64 006 5211 2500 tnz itl360-* yes 05204 0 07 074 5300 2501 lda a.v012-* (itrcdm) no. fake out initialization of 05205 0 17 077 5304 2502 sta a.v019-* (nxtrce) trace module 05206 0 17 102 5310 2503 sta a.v023-* (endtrc) 05207 0 17 103 5312 2504 sta a.v025-* (.crtrb) 05210 0 17 103 5313 2505 sta a.v026-* (.crtrc) 2506 05211 2507 itl360 null 05211 4 07 070 5301 2508 lda a.v013-*,* (mvplmm) set up trace variables 05212 4 17 076 5310 2509 sta a.v023-*,* (endtrc) 05213 773 001 0 2510 iaa 1 2511 05214 2512 itl370 null 05214 4 26 071 5305 2513 sba a.v020-*,* (.crbuf) base of current free buffer area 05215 4 74 077 5314 2514 tze a.v027-*,* (stop15) there's no room left 05216 4 45 076 5314 2515 tnc a.v027-*,* (stop15) bad news 05217 6333 00 0 2516 caq >0. ok. almost ready for frebuf 2517 * 2518 * finish up trace buffer allocation 2519 05220 4 07 067 5307 2520 lda a.v022-*,* (.crmem) yes. put trace buffer at high 2521 end of configured memory 05221 4 17 067 5310 2522 sta a.v023-*,* (endtrc) 05222 4 26 067 5311 2523 sba a.v024-*,* (.crtsz) 05223 4 27 065 5310 2524 cmpa a.v023-*,* (endtrc) is there really a trace buffer? 05224 0 74 002 5226 2525 tze 2 no, skip the addition end of binary card 00000053 05225 773 001 0 2526 iaa 1 05226 4 17 064 5312 2527 sta a.v025-*,* (.crtrb) 05227 4 17 064 5313 2528 sta a.v026-*,* (.crtrc) 05230 4 17 054 5304 2529 sta a.v019-*,* (nxtrce) 05231 0 27 070 5321 2530 cmpa l.v006-* (=32768) is base above 32k? 05232 4 45 062 5314 2531 tnc a.v027-*,* (stop15) no. cannot handle this 2532 assm 01 02-03-86 09.437 init - fnp initialization module for multics page 98 initialization main program 05233 2533 itl380 null 05233 4 10 047 5302 2534 tsy a.v014-*,* (frebuf) free initial buffer space 05234 0 07 040 5274 2535 lda a.v008-* (utsave) 05235 4 17 040 5275 2536 sta a.v009-*,* (.crreg) save place where regs are saved 05236 0 07 040 5276 2537 lda a.v010-* (tibtab) init end of tib tab ptr 05237 4 17 040 5277 2538 sta a.v011-*,* (.crtte) so maktib can fill it in 05240 4 56 032 5272 2539 stz a.v006-*,* (bfcksw) enable buffer size checking 2540 05241 4 71 001 5242 2541 tra 1,* 05242 0 01523 1 2542 ind itl010 all set to pick the figtre assm 01 02-03-86 09.437 init - fnp initialization module for multics page 99 initialization main program 2543 eject 2544 05243 020000 0 2545 diexst oct 020000 bit to be turned on to say dia exists 05244 0 03400 3 2546 mexist ind exist 2547 05245 0 05246 1 2548 xstsav ind *+1 ptr to table of stex reads from devices 05246 2549 bss 16 05266 2550 even 05266 0 26000 3 2551 ignrad ind ignore ignore interrupts routine 05267 0 26000 3 2552 ind ignore 2553 05270 2 05320 1 2554 iwcrlf icw l.v004,b.0,2 05271 000002 0 2555 05272 0 10000 3 2556 a.v006 ind bfcksw 05273 0 04427 1 2557 a.v007 ind istart-1 05274 0 32000 3 2558 a.v008 ind utsave 05275 0 00664 0 2559 a.v009 ind .crreg 05276 0 00012 1 2560 a.v010 ind tibtab 05277 0 00666 0 2561 a.v011 ind .crtte 05300 0 04610 1 2562 a.v012 ind itrcdm 05301 0 27000 3 2563 a.v013 ind mvplmm lower memory maximum address (in utilities) 05302 0 17400 3 2564 a.v014 ind frebuf 2565 *a.v015 unused 2566 *a.v016 unused 2567 *a.v017 unused 05303 0 01472 1 2568 a.v018 ind setclk 05304 0 27400 3 2569 a.v019 ind nxtrce (in trace module) next entry in trace buffer 05305 0 00650 0 2570 a.v020 ind .crbuf 05306 0 00702 0 2571 a.v021 ind .crpte variable cpu page table entry 05307 0 00651 0 2572 a.v022 ind .crmem last legal memory address 05310 0 15400 3 2573 a.v023 ind endtrc (in trace module) last word in trace buffer 05311 0 00703 0 2574 a.v024 ind .crtsz end of binary card 00000054 05312 0 00662 0 2575 a.v025 ind .crtrb 05313 0 00663 0 2576 a.v026 ind .crtrc 05314 0 03337 1 2577 a.v027 ind stop15 2578 05315 000372 0 2579 l.v001 dec 250 half of a millisecond in inst xec time 05316 001750 0 2580 l.v002 dec 1000 two milliseconds in inst xec time 05317 073 000 0 2581 l.v003 sel 0 05320 015012 0 2582 l.v004 vfd 9/cr,9/lf 2583 *l.v005 unused 05321 100000 0 2584 l.v006 dec 32768 2585 05322 2586 itemp bss 1 05323 2587 conswt bss 1 temporary for .crcon end of binary card 00000055 2588 end 5324 is the next available location. assm 01 02-03-86 09.437 init - fnp initialization module for multics page 100 initialization main program 355map version/assembly dates gmpa 801215/123080 gmpb 801215/123080 gmpc 801215/123080 there were no warning flags in the above assembly assm 01 02-03-86 09.440 init - fnp initialization module for multics page 101 octal symbol references by sequence no. 1546 a.a001 360 346 360 1547 a.a002 361 348 361 1550 a.a004 363 350 363 1551 a.a005 364 352 364 1552 a.a006 365 365 384 419 454 1653 a.b001 401 386 401 456 1672 a.c001 430 422 430 1673 a.c002 431 424 431 2037 a.d001 562 499 525 562 2040 a.d002 563 463 563 633 2041 a.d003 564 554 564 2042 a.d005 565 529 565 2043 a.d006 566 539 566 2044 a.d007 567 448 567 2045 a.d008 568 523 568 2046 a.d009 569 557 569 2047 a.d010 570 469 570 2050 a.d011 571 475 571 2051 a.d012 572 485 572 2052 a.d013 573 490 573 2053 a.d014 574 496 517 574 2054 a.d015 575 505 575 2055 a.d016 576 541 576 2056 a.d017 577 577 623 2057 a.d018 578 578 626 2060 a.d019 579 579 638 2061 a.d020 580 580 639 2062 a.d021 581 581 640 2063 a.d022 582 582 649 2064 a.d023 583 583 656 2065 a.d024 584 544 584 2066 a.d025 585 449 585 2067 a.d026 586 450 586 2070 a.d027 587 451 587 2552 a.f001 1049 727 1049 2553 a.f002 1050 974 1050 2554 a.f003 1051 775 1051 2555 a.f004 1052 981 1052 2556 a.f005 1053 977 1053 2557 a.f006 1054 1054 1206 2561 a.f008 1056 797 1056 2562 a.f009 1057 1057 1204 1210 2563 a.f010 1058 1058 1197 2564 a.f011 1059 842 1059 2565 a.f012 1060 876 1060 2566 a.f013 1061 802 1061 2567 a.f014 1062 1062 1185 2570 a.f015 1063 1063 1199 2571 a.f016 1064 813 1064 3214 a.i001 1365 1262 1285 1288 1365 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 102 octal symbol references by sequence no. 3216 a.i003 1367 1257 1260 1367 3217 a.i004 1368 1279 1309 1327 1368 3221 a.i006 1370 1358 1370 3222 a.i007 1371 1337 1341 1371 3223 a.i008 1372 1339 1372 3343 a.j001 1489 1395 1489 3344 a.j003 1491 1412 1491 3357 a.k001 1510 1391 1501 1510 3360 a.k002 1511 1407 1446 1511 4176 a.m001 1787 1660 1663 1672 1787 4177 a.m003 1789 1770 1789 4200 a.m004 1790 1775 1790 4201 a.m005 1791 1762 1791 4202 a.m006 1792 1735 1792 4203 a.m007 1793 1736 1793 4204 a.m008 1794 1737 1794 4205 a.m009 1795 1739 1795 4206 a.m010 1796 1740 1796 4207 a.m011 1797 1741 1797 4210 a.m012 1798 1717 1798 4211 a.m013 1799 1664 1799 4212 a.m014 1800 1725 1800 4213 a.m015 1801 1742 1801 4214 a.m016 1802 1673 1802 4215 a.m017 1803 1654 1704 1803 4216 a.m018 1804 1703 1804 4217 a.m019 1805 1715 1805 4220 a.m020 1806 1655 1667 1670 1720 1806 4221 a.m021 1807 1738 1807 4222 a.m022 1808 1751 1808 4223 a.m023 1809 1752 1809 4224 a.m024 1810 1753 1810 4225 a.m025 1811 1756 1811 4226 a.m026 1812 1745 1812 4227 a.m027 1813 1638 1813 4230 a.m028 1814 1641 1814 4231 a.m029 1815 1643 1815 4232 a.m030 1816 1625 1816 4233 a.m031 1817 1626 1817 4234 a.m032 1818 1771 1818 4235 a.m033 1819 1701 1819 4236 a.m034 1820 1595 1723 1820 4237 a.m035 1821 1706 1821 4240 a.m036 1822 1708 1822 4241 a.m037 1823 1584 1591 1601 1823 4242 a.m038 1824 1590 1824 4243 a.m039 1825 1586 1825 4245 a.m041 1827 1679 1687 1694 1697 1827 4246 a.m042 1828 1681 1683 1686 1828 4247 a.m043 1829 1695 1829 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 103 octal symbol references by sequence no. 4250 a.m044 1830 1698 1830 4425 a.n001 1956 1940 1956 4426 a.n002 1957 1945 1957 4551 a.t002 2073 2048 2073 4552 a.t003 2074 1975 2074 4553 a.t004 2075 2013 2075 4554 a.t006 2076 2012 2076 4555 a.t007 2077 1986 1995 2077 4556 a.t008 2078 1985 2030 2078 4557 a.t009 2079 2007 2034 2079 4560 a.t010 2080 1979 2080 4561 a.t014 2084 2084 2290 4562 a.t016 2085 2085 2172 4563 a.t017 2086 1971 2086 4564 a.t019 2087 2087 2171 4566 a.t021 2089 2089 2137 4567 a.t022 2090 1989 2090 5116 a.u001 2436 2428 2436 5117 a.u002 2437 2377 2437 5120 a.u003 2438 2403 2438 5121 a.u004 2439 2378 2439 5122 a.u005 2440 2382 2384 2393 2440 2483 5123 a.u006 2441 2387 2441 5124 a.u007 2442 2140 2442 5125 a.u008 2443 2201 2261 2443 5126 a.u009 2444 2247 2297 2301 2444 5127 a.u010 2445 2266 2445 5130 a.u011 2446 2182 2276 2446 5131 a.u012 2447 2269 2447 5132 a.u013 2448 2273 2275 2280 2448 5133 a.u014 2449 2186 2449 5134 a.u015 2450 2161 2450 5135 a.u016 2451 2165 2451 5136 a.u017 2452 2243 2452 5137 a.u018 2453 2244 2255 2453 5140 a.u019 2454 2246 2454 5141 a.u020 2455 2248 2455 5142 a.u021 2456 2251 2258 2456 5143 a.u022 2457 2252 2457 5144 a.u023 2458 2253 2458 5145 a.u024 2459 2216 2459 5146 a.u025 2460 2154 2460 5147 a.u026 2461 2155 2461 5150 a.u027 2462 2207 2462 5151 a.u028 2463 2365 2463 5272 a.v006 2556 2539 2556 5273 a.v007 2557 2493 2557 5274 a.v008 2558 2535 2558 5275 a.v009 2559 2536 2559 5276 a.v010 2560 2537 2560 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 104 octal symbol references by sequence no. 5277 a.v011 2561 2538 2561 5300 a.v012 2562 2501 2562 5301 a.v013 2563 2508 2563 5302 a.v014 2564 2534 2564 5303 a.v018 2568 2315 2429 2568 5304 a.v019 2569 2502 2529 2569 5305 a.v020 2570 2497 2513 2570 5307 a.v022 2572 2520 2572 5310 a.v023 2573 2498 2503 2509 2522 2524 2573 5311 a.v024 2574 2523 2574 5312 a.v025 2575 2504 2527 2575 5313 a.v026 2576 2505 2528 2576 5314 a.v027 2577 2514 2515 2531 2577 17 badint 50 401 3270 badsts 1417 1390 1392 1411 1417 20 bfcksw 67 1803 2556 2 b.0 1012 1013 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 2554 21 brktab 79 2450 4325 bts010 1884 567 1884 4300 btsts 1857 584 1491 1616 1857 1887 5 bufshf 116 116 1707 40 bufsiz 116 116 1322 1329 1332 1334 1336 1351 1352 1656 1657 1688 2494 2495 4266 cbufr 1845 1658 1661 1666 1845 2076 cdiaic 595 461 595 1791 4271 cenimk 1850 1818 1850 3776 clocks 1573 364 1573 22 conchn 60 2445 23 conman 96 1956 2449 24 consjt 74 1813 5323 conswt 2587 2274 2279 2587 25 contip 59 2447 475 cptp 103 103 2075 15 cr 122 122 1088 1090 1092 1533 1535 1537 1539 1541 1543 1545 1547 1549 1551 1553 1555 1557 1559 1561 2582 4267 csfcm 1847 1587 1594 1847 2 ctrl 68 1365 4264 dbl1 1844 1613 1844 1 dclock 196 196 351 2419 2 ddia 198 198 345 3 dhsla 200 200 347 2390 1716 dia020 460 447 460 1721 dia030 464 445 464 1725 dia040 469 465 469 1734 dia050 477 477 483 1743 dia060 485 481 485 2001 dia070 519 446 519 2015 dia080 534 528 533 534 2020 dia090 538 538 568 2027 dia100 549 545 549 576 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 105 octal symbol references by sequence no. 1674 dia 438 360 438 2101 diachn 598 443 472 598 2074 2463 70 diadis 236 236 509 4 diajt 71 570 74 diardc 235 235 503 26 diasel 98 585 2102 diatmv 599 521 524 542 551 599 2080 27 dicell 56 564 30 diconf 73 575 454 dimb 103 103 562 1894 31 dindcw 57 569 3 dis0 103 103 571 456 dist 103 103 573 5 dlist 72 572 6 dprint 206 206 349 32 dspqur 89 1812 1 dtfctl 114 114 1374 4 dtfsft 114 114 1377 10 dt.brk 114 114 1305 4 dt.flg 114 114 1293 1299 33 endtrc 93 2573 451 etmb 103 103 1795 2444 362 etr 103 103 1797 2453 34 etrint 83 1807 6 etrip 55 1796 35 etrmon 82 1811 7 exist 51 563 2438 2546 7 fbdacn 171 171 621 37 fbdevc 183 183 343 2389 5 fcdacn 172 172 620 15 fcdevc 184 184 336 2388 1521 figtre 326 326 333 335 2087 2441 440 fltv 103 103 2442 10 fpsel 99 586 36 frebfh 63 1370 1829 37 frebuf 62 1799 2564 40 fremem 65 1802 41 fresml 66 1819 42 getbfm 97 2460 43 getbuf 61 3346 getchn 1500 579 1050 1403 1444 1500 1508 44 getmem 64 1055 1366 4262 gudsts 1843 1615 1843 2540 hbaud 1037 765 770 796 1037 2476 hbdicw 1009 1002 1009 2526 hcnfig 1029 682 712 739 940 1029 3043 hcurpg 1229 1195 1219 1223 1229 1320 1347 1354 1827 1 hfv 53 2116 2117 2118 2119 2120 2121 2122 2123 4612 hfvi 2116 2116 2141 2143 2145 2147 2775 hgs001 1166 1159 1161 1163 1166 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 106 octal symbol references by sequence no. 2776 hgs002 1167 1165 1167 3012 hgs003 1192 1189 1192 3014 hgs008 1194 1186 1194 3027 hgs020 1209 1205 1209 3030 hgs030 1212 1207 1212 3033 hgs040 1217 1213 1214 1217 2746 hgsfcm 1152 1051 1152 1226 1825 2502 hicw01 1012 641 1012 2504 hicw02 1013 982 1013 2541 hivloc 1038 687 692 695 698 1038 14 h.aicw 106 106 701 783 1003 10 h.baw 106 106 1000 16 h.cnfg 106 106 678 720 721 743 751 11 h.sfcm 106 106 778 801 986 4 h.sic0 106 106 787 6 h.sic1 106 106 788 2444 hjtloc 968 650 651 697 952 968 2547 hlahcr 1044 578 1044 2550 hmask1 1045 740 744 1045 3050 hmetln 1234 1184 1193 1200 1234 2615 hmsg01 1089 580 1012 1089 2634 hmsg02 1091 975 980 1013 1091 2510 hmskch 1020 989 990 1020 3044 hnxstp 1230 1218 1230 1321 1324 1349 1350 1353 1355 2524 hpcw 1028 708 710 718 723 991 993 1028 2512 hreqcn 1022 716 717 1022 2536 hsaicw 1034 782 1034 2661 hsasbc 1094 1053 1094 2543 hsavx2 1040 772 816 819 943 1040 2544 hsavx3 1041 774 777 944 1041 2445 hsbchn 969 653 688 704 714 793 950 955 969 976 987 3045 hsflen 1231 1170 1196 1231 1826 2088 3046 hsfssl 1232 1064 1167 1232 2130 hsl010 645 636 645 2143 hsl020 672 672 956 2163 hsl030 694 690 694 2216 hsl040 732 726 731 732 2240 hsl050 762 749 754 756 762 2315 hsl060 827 823 827 2325 hsl070 836 831 836 2334 hsl080 847 847 1059 2343 hsl090 855 848 855 2346 hsl100 859 859 863 2351 hsl120 863 852 863 2352 hsl130 865 847 865 2352 hsl140 866 849 866 2352 hsl150 867 850 867 2352 hsl160 868 851 868 2352 hsl170 869 853 869 2352 hsl180 870 839 857 861 870 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 107 octal symbol references by sequence no. 2357 hsl190 881 881 1060 2402 hsl200 902 882 902 2410 hsl210 909 883 909 2410 hsl220 910 884 910 2413 hsl230 914 888 914 2416 hsl234 918 898 899 918 2421 hsl240 922 885 922 2421 hsl250 923 886 923 2421 hsl260 924 887 924 2421 hsl270 925 889 925 2421 hsl280 926 890 926 2421 hsl290 927 891 927 2421 hsl300 928 892 928 2421 hsl310 929 893 929 2421 hsl320 930 894 930 2421 hsl330 931 895 931 2421 hsl340 932 896 932 2421 hsl350 933 897 933 2421 hsl359 934 900 934 2421 hsl360 935 904 907 912 916 920 935 2426 hsl380 947 947 1004 2447 hsl390 973 746 759 973 2471 hsl400 997 680 997 2103 hsla 618 361 618 45 hslajt 70 582 2446 hslano 970 577 647 791 970 2545 hsltra 1042 843 845 877 879 1042 2514 hsmska 1024 959 1024 2516 hsmskb 1025 960 1025 2520 hsmskc 1026 961 1026 2522 hsmskd 1027 962 1027 2532 hstat 1032 1011 1032 2500 hsticw 1011 700 1011 2542 htemp 1039 741 745 978 979 1039 100000 htfasy 212 212 1074 2546 htflgt 1043 828 834 855 902 1043 40000 htfop1 212 212 1080 200000 htfpl 212 212 1077 17 htfspd 212 212 764 3047 htibln 1233 1198 1233 2089 0 ht.flg 212 212 763 767 820 827 1155 1187 1 ht.tib 212 212 799 1602 2506 hunmsk 1017 706 707 1017 4602 iabsad 2103 2038 2059 2063 2103 2077 icflag 596 440 596 46 icmdat 81 1810 2100 ictmtp 597 522 550 597 3374 icw07 1521 1447 1521 3362 icws 1514 1489 1514 47 idlcnt 86 2456 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 108 octal symbol references by sequence no. 50 idlint 84 2454 51 idlmax 87 2457 52 idlmin 88 2458 53 idloop 85 2455 54 ignore 49 2462 2551 2552 5266 ignrad 2551 2223 2254 2551 3342 inhchn 1487 1397 1421 1426 1439 1452 1469 1478 1483 1487 0 init 240 46 240 241 10 initop 138 138 2474 2475 2476 2477 2074 initst 593 543 593 4403 intcel 1936 1859 1864 1936 2086 4335 intmsk 1893 1866 1893 0 intv 103 103 1816 1655 iomch 405 330 355 381 383 390 405 416 418 442 453 630 673 1510 2440 55 iomflt 52 2443 5162 ipcwa 2474 2412 2474 5164 ipcwb 2475 2413 2475 5166 ipcwc 2476 2414 2476 5170 ipcwd 2477 2415 2477 4603 ipgerr 2104 2069 2104 2289 4430 istart 1972 47 1972 2557 4604 istpcl 2105 1987 1992 2026 2032 2051 2105 5322 itemp 2586 2346 2347 2586 11 itest 69 1800 1523 itl010 329 329 356 2542 1544 itl020 354 354 397 427 444 559 643 965 4022 itl025 1611 1585 1611 4024 itl026 1613 1613 1614 4033 itl030 1628 1628 1636 4051 itl040 1645 1640 1645 4073 itl050 1675 1669 1675 4076 itl052 1680 1680 1699 4113 itl055 1693 1682 1684 1685 1693 4114 itl056 1694 1692 1694 4122 itl058 1701 1689 1690 1701 4134 itl060 1719 1719 1727 4144 itl070 1729 1721 1729 4477 itl100 2023 2023 2027 4516 itl110 2041 2041 2066 4526 itl115 2050 2044 2050 2057 4536 itl118 2059 2055 2059 4546 itl120 2068 2018 2021 2068 4622 itl140 2126 2052 2126 4654 itl180 2176 2070 2176 4661 itl190 2188 2184 2188 4674 itl200 2208 2208 2213 4703 itl210 2217 2217 2228 4733 itl215 2250 2250 2452 4770 itl220 2282 2271 2282 5002 itl230 2312 2302 2312 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 109 octal symbol references by sequence no. 5012 itl240 2322 2322 2326 5013 itl250 2323 2314 2319 2323 2325 5023 itl270 2341 2341 2358 5051 itl275 2369 2367 2369 5056 itl290 2381 2381 2424 5057 itl300 2383 2379 2383 5106 itl310 2418 2391 2418 5110 itl320 2423 2406 2416 2423 5111 itl330 2426 2421 2426 5172 itl340 2481 2436 2481 5173 itl350 2482 2439 2482 5211 itl360 2507 2500 2507 4270 itlind 1848 1677 1709 1848 4607 itloc0 2108 2001 2108 2198 450 itmb 103 103 306 1792 4610 itrcdm 2109 2109 2562 4606 itx1 2107 2045 2049 2107 4420 iwc010 1946 1943 1946 4422 iwc020 1949 1941 1949 4404 iwcon 1939 581 1052 1511 1939 1942 1944 1950 1953 4423 iwcret 1952 1947 1952 5270 iwcrlf 2554 2277 2554 672 .crbrk 104 104 2451 706 .crbtm 104 104 2461 650 .crbuf 104 104 1787 2570 656 .crcon 104 104 1790 2448 701 .crcpt 104 104 2076 653 .criom 104 104 583 2085 651 .crmem 104 104 1054 1372 1830 2078 2572 704 .crmet 104 104 1062 1369 652 .crnbf 104 104 1821 675 .crnbs 104 104 1804 654 .crnhs 104 104 1789 2437 702 .crpte 104 104 2079 2571 664 .crreg 104 104 2559 677 .crskd 104 104 1809 705 .crtdt 104 104 1823 662 .crtrb 104 104 1057 1371 1828 2575 663 .crtrc 104 104 2576 703 .crtsz 104 104 2574 665 .crttb 104 104 1798 666 .crtte 104 104 1367 1806 2561 737 .mpool 110 110 1822 4332 .sstat 1891 1858 1891 1903 4336 ldimb 1894 1874 1878 1885 1894 12 lf 123 123 1088 1090 1092 1533 1535 1537 1539 1541 1543 1545 1547 1549 1551 1553 1555 1557 1559 1561 2582 4342 limodl 1900 1881 1900 4340 list 1897 1873 1897 1553 l.a001 367 367 631 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 110 octal symbol references by sequence no. 1654 l.b001 403 391 403 674 2071 l.d001 589 459 589 2072 l.d002 590 511 590 2073 l.d003 591 487 591 2572 l.f001 1067 794 1067 2573 l.f002 1068 748 1068 2574 l.f003 1069 752 1069 2575 l.f004 1070 753 1070 2576 l.f005 1071 755 1071 2577 l.f006 1072 757 1072 2601 l.f008 1074 768 830 1074 1188 2603 l.f010 1076 786 1076 2604 l.f011 1077 856 1077 2605 l.f012 1078 859 1078 2606 l.f013 1079 914 1079 2607 l.f014 1080 903 1080 2610 l.f015 1081 918 1081 2611 l.f016 1082 905 1082 2612 l.f017 1083 832 1083 2613 l.f018 1084 1084 1221 3224 l.i001 1374 1294 1374 3225 l.i002 1375 1296 1375 3227 l.i004 1377 1300 1377 3230 l.i005 1378 1302 1378 3231 l.i006 1379 1222 1318 1379 3232 l.i007 1380 1345 1380 3345 l.j001 1493 1401 1493 4251 l.m001 1832 1639 1754 1832 4252 l.m002 1833 1678 1833 4253 l.m003 1834 1589 1834 4254 l.m004 1835 1588 1835 4256 l.m006 1837 1680 1693 1696 1837 4570 l.t001 2092 2039 2092 4571 l.t002 2093 1988 1990 2093 4572 l.t003 2094 2009 2010 2037 2061 2065 2094 2200 2206 2215 2260 4573 l.t004 2095 2004 2033 2064 2095 4575 l.t006 2097 2008 2035 2097 4577 l.t008 2099 2043 2099 4600 l.t009 2100 1999 2046 2100 2197 4601 l.t010 2101 2101 2196 5152 l.u001 2465 2427 2465 5153 l.u002 2466 2401 2466 5154 l.u003 2467 2394 2467 5155 l.u004 2468 2162 2183 2270 2468 2499 5156 l.u005 2469 2230 2469 5157 l.u006 2470 2366 2470 5160 l.u007 2471 2368 2471 5315 l.v001 2579 2316 2579 5316 l.v002 2580 2298 2580 5317 l.v003 2581 2343 2581 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 111 octal symbol references by sequence no. 5320 l.v004 2582 2554 2582 5321 l.v006 2584 2530 2584 4337 lstsl 1895 1870 1895 4362 lstsls 1910 1869 1910 1 macwk1 1939 1152 1226 1250 1362 1939 1953 3 macwk2 1939 1152 1250 1939 3072 mak020 1265 1265 1274 3103 mak030 1277 1272 1277 3125 mak040 1298 1295 1298 3132 mak050 1304 1301 1304 3167 mak058 1341 1338 1341 3173 mak060 1345 1342 1343 1345 3200 mak070 1350 1319 1323 1350 3211 makbak 1359 1348 1356 1357 1359 3051 maktib 1250 1056 1250 1362 1824 4334 mbxmsk 1892 1860 1892 3237 metadr 1385 1063 1308 1385 5244 mexist 2546 2364 2370 2546 30 m.asyl 110 110 1192 56 m.synl 110 110 1190 11 modnum 241 241 1215 1269 1344 12 msdsp 54 1784 3417 msg02 1534 1516 1534 3435 msg03 1536 1517 1536 3455 msg04 1538 1518 1538 3473 msg05 1540 1519 1540 3511 msg06 1542 1520 1542 3531 msg07 1544 1445 1521 1544 3550 msg08 1546 1522 1546 3573 msg09 1548 1523 1548 3616 msg10 1550 1524 1550 3642 msg11 1552 1525 1552 3665 msg12 1554 1526 1554 3707 msg13 1556 1527 1556 3734 msg14 1558 1528 1558 3755 msg15 1560 1529 1560 3234 mtemp 1383 1252 1271 1283 1317 1383 56 mvplmm 95 2077 2563 1650 ndv010 394 392 394 1656 nmpcw 407 395 407 1634 nodev 379 344 379 57 nxtrce 94 2569 13 obsel 100 587 4363 parity 1913 574 1871 1879 1913 1929 1931 4401 parwd1 1933 1919 1933 4402 parwd2 1934 1923 1934 1660 print 414 363 414 14 pspec 78 430 100 pte.s 2112 2112 2127 15 pterm 77 431 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 112 octal symbol references by sequence no. 3 reqcst 139 139 1022 1503 rstclk 294 294 299 566 1801 5 rstmsk 140 140 1017 20 rts 131 131 1022 1554 savein 368 365 368 1817 2459 1520 scindc 308 283 289 295 298 308 1517 sciv 307 287 307 1514 scoff 305 285 297 305 1512 scon 304 288 304 1516 scvalu 306 286 306 4260 sdqdat 1839 1744 1839 60 secdsp 90 1840 1472 setclk 282 282 290 565 1049 2568 4 setmsk 141 141 1020 61 setptw 91 1061 1368 1820 2072 2000 sffbsc 112 112 1079 40 sffebd 112 112 910 400000 sffhdl 112 112 1081 10000 sffsyn 112 112 1083 5 sfhsiz 112 112 1034 24 sf.cfg 112 112 941 5 sf.flg 112 112 833 911 915 919 0 sf.hcm 112 112 808 56 sf.hln 112 112 1169 15 sf.hsl 112 112 817 1599 1 sf.nxa 112 112 811 2 sf.nxp 112 112 812 23 sf.ssl 112 112 815 26 sf.sta 112 112 781 4 sf.tib 112 112 938 1603 3 sf.tly 112 112 814 56 sf.waq 112 112 810 24 sflsq 112 112 1166 12 sfssq 112 112 1164 62 skdata 80 1808 4346 stdcw1 1902 1862 1900 1902 4352 stdcw2 1904 1867 1904 11 stomrg 142 142 1024 1025 1026 1027 3272 stop02 1420 1420 2304 3300 stop04 1430 467 1430 3302 stop05 1434 536 1434 3304 stop06 1438 1438 2090 3316 stop08 1451 1451 2073 3327 stop12 1468 1468 2322 3334 stop14 1477 1477 2084 3337 stop15 1482 1482 2577 3240 stop 1389 1389 1423 1428 1432 1436 1441 1454 1458 1462 1466 1471 1475 1480 1485 3260 stp010 1406 1398 1406 3261 stp020 1408 1396 1408 4344 stslst 1901 1882 1895 1897 1901 1910 assm 01 02-03-86 09.440 init - fnp initialization module for multics page 113 octal symbol references by sequence no. 1000 tfabf0 108 108 1380 10000 tfabf1 108 108 1380 20000 tfauto 108 108 1082 400 tfctrl 108 108 1375 20 tfdlup 108 108 1078 200000 tfsftr 108 108 1378 3236 tibadr 1384 1058 1253 1278 1360 1384 12 tibtab 245 245 1805 2560 63 timrjt 75 1793 53 t.abf0 108 108 1325 54 t.abf1 108 108 1333 32 t.brkp 108 108 1306 3 t.cur 108 108 1286 2 t.flg2 108 108 1303 36 t.flg3 108 108 1346 1 t.flg 108 108 860 906 1297 55 t.leng 108 108 2134 4 t.line 108 108 1284 52 t.metr 108 108 1310 30 t.sfcm 108 108 803 829 1596 17 t.type 108 108 825 874 1282 1290 1593 77 tmch 103 103 284 296 361 tmro 103 103 307 1794 16 trace 92 7 ttbsc 230 230 1162 23 ttcolt 233 233 1592 22 tthdlc 232 232 1160 21 ttx25 231 231 1158 1 tyrq 103 103 1815 2 tytm 103 103 1814 64 utsave 76 2558 3307 warn07 1443 1443 1449 3 wcon 58 1957 2446 77400 window 2113 2095 2113 1 w.2 575 590 1009 1011 1034 1075 1897 1905 1908 5245 xstsav 2548 2339 2548 48785 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