assm 01 12-01-82 14.714 mclt multics hc fnp colts exec rev c 821015 page 1 *********************************************************************************** * (c) copyright, 1981, by honeywell information systems inc. * *********************************************************************************** preface program break 704 common length 0 v count bits 5 primary symdef entry mclt 2 colts 14 tdip 620 secondary symdef entry .chain 2 block length symref 1 denq 2 begin 3 cvabs 4 g3wjt 5 itest 6 mdisp end of binary card 00000001 7 dspqur 10 frebuf 11 getbuf 12 gettib 13 secdsp 14 setbpt 15 setptw 16 tdhung end of binary card 00000002 assm 01 12-01-82 14.714 mclt multics hc fnp colts exec rev c 821015 page 2 1 * *********************************************************** 2 * * * 3 * * copyright, (c) honeywell information systems inc., 1982 * 4 * * * 5 * *********************************************************** 6 lbl ,colts assm 01 12-01-82 14.714 mclt multics hc fnp colts exec rev c 821015 page 3 00000 100201 0 8 bci 2,821015 00001 000105 0 9 cpr 1981 10 * 11 * 12 * insert comments on purpose of module 13 * 14 * 15 pcc on 16 pmc off 17 editp on 18 detail on 19 symdef mclt 20 symdef colts 21 symdef tdip 22 symref begin 23 symref g3wjt 24 symref mdisp 25 symref secdsp 26 symref dspqur 27 symref getbuf 28 symref setbpt 29 symref frebuf 30 symref itest 31 symref gettib 32 symref setptw 33 symref denq 34 symref tdhung 35 symref cvabs 36 pmc save,on 00002 37 mclt null 00002 38 start mclt symdef -.chain crsm save,off 00002 even ine '','',2 ife '','',1 00002 000000 0 .chain dec 0 crsm restore 00003 442343 0 bci 2,mclt 00004 632020 0 00005 0 00002 1 ind mclt 00006 010200 0 date 00007 011002 0 ine '.002.','',1 00010 330000 0 bci 4,.002. 00011 023320 0 00012 202020 0 00013 202020 0 00014 39 tib assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 4 terminal information block (tib) ttls terminal information block (tib) 000000 t.stat equ 0 holds current line status 000001 t.flg equ t.stat+1 flag word 000002 t.flg2 equ t.flg+1 second word of flags 000003 t.cur equ t.flg2+1 current address in control table 000004 t.line equ t.cur+1 10 bit line number 000005 t.icp equ t.line+1 first buffer in input chain 000006 t.ilst equ t.icp+1 last buffer in input chain 000007 t.icpl equ t.ilst+1 count of buffers in icp chain 000010 t.icch equ t.icpl+1 address of next input character 000011 t.elnk equ t.icch+1 link to tib extension 000011 t.rcp equ t.elnk replay chain pointer (share t.elnk) 000012 t.ocp equ t.elnk+1 addr of output chain from cs 000013 t.ocur equ t.ocp+1 addr of current output buffer 000014 t.olst equ t.ocur+1 addr of last buffer in output chain 000015 t.occh equ t.olst+1 addr of next output character 000016 t.ocnt equ t.occh+1 count of buffers in t.ocur 000017 t.type equ t.ocnt+1 line type 000020 t.time equ t.type+1 time at which next timeout will occur 000022 t.reta equ t.time+2 return address from calsub 000023 t.dcwa equ t.reta+1 addr of dcw list to 'execute' 000024 t.dcwl equ t.dcwa+1 length of dcw list 000025 t.echo equ t.dcwl+1 echo buffer address 000026 t.dcp equ t.echo+1 addr of message chain for cs 000027 t.dlst equ t.dcp+1 last buffer in messge chain for cs 000030 t.ftse equ t.dlst+1 first time slot entry in lsla table assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 5 terminal information block (tib) 000030 t.sfcm equ t.ftse pointer to sfcm for hsla lines 000031 t.bcnt equ t.ftse+1 counting temporary 000032 t.brkp equ t.bcnt+1 pointer to current break list 000033 t.pos equ t.brkp+1 current carriage position 000034 t.char equ t.pos+1 pending line control char (lsla only) 000034 t.ecch equ t.char address of current echo char (hsla only) 000035 t.cntr equ t.char+1 counter for control tables 000036 t.flg3 equ t.cntr+1 third word of flags 000037 t.dtp equ t.flg3+1 pointer to delay table for this line 000040 t.frmc equ t.dtp+1 framing chars (2 chars) 000041 t.dcpl equ t.frmc+1 number of buffers in dcp chain 000042 t.scll equ t.dcpl+1 screenline length left, for echo neg. 000043 t.sncc equ t.scll+1 echo negotiation sync ctr. 000044 t.entp equ t.sncc+1 echo negotiation break table ptr 000045 t.ifch equ t.entp+1 input flow control characters 000046 t.ofch equ t.ifch+1 output flow control characters 000047 t.omct equ t.ofch+1 output message count (for flow control) 000050 t.itim equ t.omct+1 time of last call to inproc (2 words) 000052 t.metr equ t.itim+2 address of metering area 000053 t.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 ******************************** 000001 tsfcd bool 000001 carrier detect assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 6 terminal information block (tib) 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 000200 tfquit bool 000200 send nl on line break assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 7 terminal information block (tib) 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 004000 tfblak bool 004000 asynchronous block acknowledgement 010000 tfcrcv bool 010000 'control' receive mode assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 8 terminal information block (tib) 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 002000 tfsoip bool 002000 suspension of output in progress 004000 tforp bool 004000 output resume pending (waiting until tro) 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 ********************************* * redefined tib flags in t.flg ********************************* assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 9 terminal information block (tib) 000020 tfdlup equ tfprtr line is on dialup modem 00014 40 csbits assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 10 control and status bits ttls control and status bits control bits 000001 c.srec bool 000001 set receive mode 000002 c.rrec bool 000002 reset receive mode 000004 c.sxmt bool 000004 set transmit mode 000010 c.rxmt bool 000010 reset transmit mode 000020 c.sdtr bool 000020 set data terminal ready 000040 c.rdtr bool 000040 reset data terminal ready 000100 c.ssup bool 000100 set supervisory transmit mode 000100 c.stre bool 000100 set tally runout enable (hdlc) 000200 c.rsup bool 000200 reset supervisory transmit mode 000200 c.rtre bool 000200 reset tally runout enable (hdlc) 000400 c.stat bool 000400 store status 001000 c.sbrk bool 001000 send line break 002000 c.smrk bool 002000 store marker status 004000 c.strm bool 004000 store terminate status 010000 c.srqs bool 010000 set request to send 020000 c.rrqs bool 020000 reset request to send 040000 c.pad bool 040000 unused 100000 c.cmd bool 100000 indicates cmd subop 400000 c.scmd bool 400000 indicates supplementary cmd subop the following must be used in the optional fields to the cmd (or contrl) macros in the control_tables 000001 c.scrq bool 000001 set call request 000002 c.rcrq bool 000002 reset call request assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 11 control and status bits status bits 000001 s.cd bool 000001 carrier detect 000002 s.cts bool 000002 clear to send 000004 s.dsr bool 000004 data set ready 000010 s.sprc bool 000010 supervisory receive mode 000020 s.st bool 000020 status requested 000040 s.mark bool 000040 marker status 000100 s.term bool 000100 terminate status 000200 s.prex bool 000200 pre-exhaust 000400 s.brk bool 000400 line break received 001000 s.brch bool 001000 break character received 002000 s.ring bool 002000 ring 004000 s.exh bool 004000 exhaust status 010000 s.prty bool 010000 parity error 010000 s.fcse bool 010000 frame check sequence error (hdlc) 020000 s.xte bool 020000 transfer timing error 040000 s.pwi bool 040000 acu power indicator 100000 s.dlo bool 100000 acu data line occupied 200000 s.acr bool 200000 acu abandon call and retry 400000 s.ads bool 400000 acu raised data set status the following four bits share the values of acu status but can never be misinterpreted. 040000 s.rto bool 040000 receive time out (bsc) 040000 s.isd bool 040000 idle state detect (hdlc) assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 12 control and status bits 100000 s.rbt bool 100000 receive block termination (bsc & hdlc) 200000 s.bmk bool 200000 marker status (bsc) 200000 s.rabt bool 200000 receive abort (hdlc) 400000 s.bdmk bool 400000 delayed marker status (bsc) 400000 s.pbyt bool 400000 partial byte (hdlc) bits in common between standard status 000177 s.tib bool 000177 and tib status dataset status bits in standard status 000017 s.dss bool 000017 and tib status asynchronous configuration bits 000001 fg.icw bool 000001 icw (two send icw's) 000002 fg.lpr bool 000002 lateral parity receive 000004 fg.lps bool 000004 lateral parity send 000010 fg.lpo bool 000010 lateral parity odd 000020 fg.5bt bool 000020 5-bit character mode 000040 fg.6bt bool 000040 6-bit character mode 000100 fg.7bt bool 000100 7-bit character mode 000200 fg.8bt bool 000200 8-bit character mode 000400 fg.beb bool 000400 ebcdic mode (bsc) 000400 fg.itf bool 000400 interfame time fill (hdlc) 001000 fg.btr bool 001000 transparent mode (bsc) 002000 fg.cct bool 002000 enable cct 00014 41 tconst assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 13 flag and control bit definitions ttls flag and control bit definitions 000001 gbf6up bool 000001 cs up global switch device types 000001 ttasci equ 1 ascii terminals, cdi, tty 33, 35, 37, etc 000002 tt1050 equ 2 ibm 1050 000003 tt2741 equ 3 ibm 2741, trendata, dura, etc. 000004 ttards equ 4 ards, tektronix 000005 ttsync equ 5 general sync devices 000006 ttg115 equ 6 remote computer interface, g115 000007 ttbsc equ 7 binary synchronous communications 000010 tt202c equ 8 ascii on 202c6 modem 000011 ttvip equ 9 vip terminal 000020 ttpvip equ 16 polled vip 000021 ttx25l equ 17 x.25 link access procedure (lap) 000023 ttcolt equ 19 colts (online t&d executive) signal types 000113 quit bool 113 dia cmd, break received 000100 dialup bool 100 dia cmd, accept new terminal 000101 hangup bool 101 dia cmd, disconnected line 000114 wrutim bool 114 dia cmd, wru timeout 000105 sndout bool 105 dia cmd, send output 000120 acupwi bool 120 dia cmd, no power to acu 000121 acudlo bool 121 dia cmd, data line occupied 000122 acuacr bool 122 dia cmd, dial out failed 000123 acung bool 123 dia cmd, request for acu is invalid control types 000001 srec equ c.srec set receive mode 000002 rrec equ c.rrec reset receive 000004 sxmit equ c.sxmt set xmit mode 000010 rxmit equ c.rxmt reset xmit 000020 sdtr equ c.sdtr set data terminal ready 000040 rdtr equ c.rdtr reset dtr 000100 ssup equ c.ssup set supervisory xmit 000200 rsup equ c.rsup reset supervisory xmit 000400 stat equ c.stat store status 001000 sbrk equ c.sbrk send line break 002000 smark equ c.smrk send marker status 004000 sterm equ c.strm send terminate status 010000 srts equ c.srqs set request to send 020000 rrts equ c.rrqs reset request to send 000001 scrq equ c.scrq set call request 000002 rcrq equ c.rcrq reset call request 000100 stroe equ c.stre set tally runout enable (hdlc) 000200 rtroe equ c.rtre reset tally runout enable (hdlc) assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 14 flag and control bit definitions status bits 000001 cd equ s.cd carrier detect 000002 cts equ s.cts clear to send 000004 dsr equ s.dsr data set ready 000010 suprec equ s.sprc supervisory receive 000020 st equ s.st status requested 000400 break equ s.brk line break received 001000 brkchr equ s.brch break char received 002000 ring equ s.ring ring 000100 term equ s.term terminate status 000040 marker equ s.mark marker status 004000 exh equ s.exh exhaust status 000200 prexh equ s.prex pre-exhaust status 010000 parity equ s.prty parity error 020000 xte equ s.xte transfer timing error 040000 pwi equ s.pwi power indicator on acu 100000 dlo equ s.dlo data line occupied (acu) 400000 ads equ s.ads dialed station has answered data set is in data mode (acu) 200000 acr equ s.acr abandon call and retry (acu) 040000 rcvto equ s.rto rcv time out 100000 bscrcv equ s.rbt bsc terminate 200000 bscmrk equ s.bmk bsc marker 400000 bscdmk equ s.bdmk bsc delayed marker 010000 fcserr equ s.fcse frame check sequence error (hdlc) 040000 idlesd equ s.isd idle state detect (hdlc) 100000 rcvtrm equ s.rbt receive terminate (hdlc) 200000 rcvabt equ s.rabt receive abort (hdlc) 400000 parbyt equ s.pbyt partial byte (hdlc) assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 15 flag and control bit definitions eject output types 000401 adprtr bool 401 insert printer addr string 000402 adkybd bool 402 insert keyboard addr string 000403 outmsg bool 403 insert output msg 000404 repeat bool 404 insert next char n times various characters matched and sent 000064 eoa bool 64 eoa from/to 2741/1050 000001 minus bool 1 minus char from 1050 000055 ibmnl bool 55 cr nl from/to 2741/1050 000075 ibmpad bool 75 2741/1050 pad character(idle) 000074 ibmeot bool 74 2741/1050 eot char 000174 eotshf bool 174 eot w/case shift 000035 ibmbs bool 35 backspace from 2741 000057 ibmtab bool 57 tab from 2741 000042 ibmsl bool 42 2741 slash 000024 ibm0 bool 24 2741 zero 000044 ibm9 bool 44 2741 nine 000076 ibmprf bool 76 2741 prefix code 000003 ibmpls bool 3 2741 plus sign 000034 ibmup bool 34 2741 upshift 000037 ibmdwn bool 37 2741 downshift 000012 nl bool 12 ascii new-line 000015 cr bool 15 ascii carriage return 000000 pad bool 0 ascii pad char 000020 dle bool 20 ascii data link escape 000004 eot bool 4 ascii end of transmission 000033 esc bool 33 ascii escape char 000014 ff bool 14 ascii form feed char 000011 tab bool 11 ascii tab char 000010 bs bool 10 ascii backspace 000040 space bool 40 ascii space 000005 awru bool 5 ascii "who are you?" 000000 null bool 0 nothing 000006 ack bool 6 ascii ack 000025 nak bool 25 ascii nak 000001 soh bool 1 ascii start of header 000026 syn bool 26 ascii syn character 000002 stx bool 2 ascii start of text char 000003 etx bool 3 ascii end of text char 000007 bel bool 007 ascii bell character 000150 h bool 150 ascii h (esc mtr on) 000154 l bool 154 ascii l (used by vip for ff) 000161 q bool 161 ascii q (used by vip for quit) 000100 atchar bool 100 ascii at sign (used to mark reset-read) 000777 nochar bool 777 used in cmt to match no character assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 16 flag and control bit definitions scan subop types 000501 match bool 501 match the char exactly 000502 search bool 502 search until match 000503 ignore bool 503 skip to next char, block check unchanged 000504 sbcc bool 504 start the bcc computation 000505 endchn bool 505 point to last character in chain 000506 cbcc bool 506 compare current with bcc char 000507 cmask bool 507 compare char with mask 000510 rescan bool 510 reset scan position to first char in chai 000511 strlrc bool 511 start lrc computation 000512 outlrc bool 512 insert lrc into chain 000513 cmplrc bool 513 compare lrc accumulation vs current char 000514 seteom bool 514 set last buffer in message flag ( for bld 000515 replac bool 515 replace current char 000516 cmplst bool 516 compare current vs list of chars for equa 000517 movchr bool 517 move current char to tib extension 000520 movmsk bool 520 movchr with masking of current char 000521 count bool 521 count number of chars scanned 000522 serch2 bool 522 search for one of two chars 000523 setbit bool 523 turn on bits in current char 000524 offbit bool 524 turn off bits in current char 000525 chktrm bool 525 check the sync termination char 000526 mvlst2 bool 526 move last two chars to tib ext 000527 nxtchr bool 527 update block check and skip to next char 00014 42 hwcm assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 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 00014 43 sfcm pcc save,off assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 18 sfcm for .003. 000000 sf.hcm equ 0 hardware comm. region address 000001 sf.nxa equ sf.hcm+1 current input status pointer 000002 sf.nxp equ sf.nxa+1 status save buffer ptr 000003 sf.ioc equ sf.nxp+1 i/o chain pointer 000004 sf.bfc equ sf.ioc+1 current input buffer ptr 000005 sf.flg equ sf.bfc+1 flag word 000006 sf.bfa equ sf.flg+1 alternate input buffer ptr 000007 sf.bfl equ sf.bfa+1 output buffer length 000010 sf.icw equ sf.bfl+1 ptr to current input icw 000011 sf.ocw equ sf.icw+1 ptr to current output icw 000012 sf.ltb equ sf.ocw+1 ptr to lsla table 000013 sf.otb equ sf.ltb+1 ptr to output buffer 000014 sf.ity equ sf.otb+1 tally for input icw 000015 sf.oty equ sf.ity+1 tally for output icw 000016 sf.sic equ sf.oty+1 standard status icw 000020 sf.ssb equ sf.sic+2 status save buffer (10 words) 000032 sf.sbf equ sf.ssb+10 status buffer (8 words) bit definitions for sf.flg 000200 sffrlm bool 200 already sent error message about resync a 000100 sffopt bool 100 dsr and cts reported 000040 sffrsy bool 40 resync required 000020 sffptr bool 20 expecting input ptro 000010 sffrun bool 10 lsla running ok 000004 sffnsx bool 4 no stx on last input frame 000002 sffsnd bool 2 second output buffer current 000001 sffslo bool 1 short frame lsla (22 time slots) assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 19 sfcm for .003. pcc restore 00014 44 buffer assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 20 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 00014 45 global assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 21 global switches ttls global switches 000001 gbfup bool 000001 cs is up 000002 gbfhng bool 000002 we've received "blast hangup" 000004 gbfbla bool 000004 doing "blast" output 00014 46 comreg assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 22 system communications region ttls system communications region ********************************** * system communication region * ********************************** 000640 .crldt set 416 date and time of binding 000644 .crbdt set 420 date and time of bootloading 000650 .crbuf set 424 starting address of buffer area 000651 .crmem set 425 last location of memory 000652 .crnbf set 426 number of buffers available 000653 .criom set 427 start of iom table 000654 .crnhs set 428 number of hsla's configured 000655 .crnls set 429 number of lsla's configured 000656 .crcon set 430 console enabled flag 000657 .crmod set 431 starting address of module chain 000660 .crnxa set 432 ptr to next avaliable buffer 000661 .crtra set 433 trace entry enable mask 000662 .crtrb set 434 base address of trace table 000663 .crtrc set 435 next available location in trace table 000664 .crreg set 436 disaster fault register storage location 000665 .crttb set 437 location of tib table 000666 .crtte set 438 location of end of tib table 000667 .crdly set 439 head of delay table chain 000670 .crver set 440 mcs version number, 4 chars 000672 .crbrk set 442 addr of breakpoint control table 000673 .crtsw set 443 if non-zero, tracing will cease 000674 .crnxs set 444 next free small block 000675 .crnbs set 445 number of buffers devoted to small space assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 23 system communications region 000676 .crcct set 446 address of first cct descriptor 000677 .crskd set 447 address of scheduler data block 000700 .cretb set 448 list of echo-negotiation bit tables 000701 .crcpt set 449 address of cpu page table 000702 .crpte set 450 address of variable cpu page table entry 000703 .crtsz set 451 size of trace data buffer 000704 .crmet set 452 non-zero if metering enabled 000705 .crtdt set 453 address of tib for t&d executive channel 000706 .crbtm set 454 address of time meters for getbuf/frebuf 000707 .crnxe set 455 next available space in extended memory 000710 .crbpe set 456 buffer paging window table entry 000760 .crcpr set 496 copyright notice assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 24 test tib extension definitions 47 ttls test tib extension definitions 48 * 00014 49 tibex tb3wjt,word pmc restore 00014 50 tibex tbscid,word pmc restore 00014 51 tibex tbiflg,word pmc restore 00014 52 tibex tbaicw,word pmc restore 00014 53 tibex tbaiw2,word pmc restore 00014 54 tibex tbconf,word pmc restore 00014 55 tibex tbcnf2,word pmc restore 00014 56 tibex tberc1,word pmc restore 00014 57 tibex tberc2,word pmc restore 00014 58 tibex tbhcrb,word pmc restore 00014 59 tibex tbcbfs,word pmc restore 00014 60 tibex tbtmp1,word pmc restore 00014 61 tibex tbtmp2,word pmc restore 00014 62 tibex tbtmp3,word pmc restore 00014 63 tibex tbtmp4,word pmc restore 00014 64 tibex tbtcur,word pmc restore 00014 65 tibex tbrtib,word pmc restore 00014 66 tibex tbaux1,word pmc restore 00014 67 tibex tbvtib,word pmc restore 00014 68 tibex tbaux2,word pmc restore 00014 69 tibex tbbufr,word pmc restore 00014 70 tibex tbbufs,word pmc restore 00014 71 tibex tbmtal,word pmc restore 00014 72 tibex tbbtal,word pmc restore 00014 73 tibex tbspar,word assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 25 test tib extension definitions pmc restore 00014 74 tibex tbsic1,word pmc restore 00014 75 tibex tbsice,word pmc restore 76 * 77 pmc restore assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 26 colts executive line handler 78 ttls colts executive line handler 79 * 00014 80 colts tstflg tflisn,slisn 00020 81 wait 0,0,begin 82 * 00024 83 slisn signal dialup 00026 84 wait 0,sendr,tshang 85 * 00032 86 tshang tstflg tfhang,shang 00036 87 waitm 88 * 00037 89 shangc calasm t6dis 00042 90 shang signal hangup 00044 91 goto tdhung 92 * 00046 93 sendr clrflg tfwrit end of binary card 00000003 00051 94 calasm tdac1 00054 95 tstflg tfupsf,gtibex 00060 96 sndicm calasm tstc11 00063 97 tstflg tfhang,shangc 00067 98 sendin 00070 99 signal sndout 00072 100 wait 0,sendr,tshngc 101 * 00076 102 tshngc tstflg tfhang,shangc 00102 103 waitm 104 * 00103 105 gtibex clrflg tfupsf 00106 106 getext tibxsz,texerr 00111 107 calasm tstc3 00114 108 goto sndicm 00116 109 texerr calasm tstc2 end of binary card 00000004 00121 110 goto sndicm 111 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 27 colts test page line handler 112 ttls colts test page line handler 113 * 00123 114 ctest wait 0,schan,tchang 115 * 00127 116 tchang tstflg tfhang,chang 00133 117 waitm 118 * 00134 119 chang calasm t6dtp 00137 120 retext 00140 121 signal hangup 00142 122 goto tdhung 123 * 00144 124 schan clrflg tfwrit 00147 125 calasm tdac2 00152 126 schana tstflg tfofc,schanb 00156 127 calasm prcmes 00161 128 stcht setime 1 00163 129 wait timer,0,tchng end of binary card 00000005 130 * 00167 131 tchng tstflg tfhang,chang 00173 132 tstflg tfacu,timer 00177 133 waitm 134 * 00200 135 timer setime 0 00202 136 calasm timprc 00205 137 sndtes tstflg tfhang,chang 00211 138 sendin 00212 139 signal sndout 00214 140 goto ctest 141 * 00216 142 schanc clrflg tfwrit 00221 143 calasm tdac7 00224 144 goto schana 145 * 00226 146 schanb clrflg tfofc 00231 147 signal sndout 00233 148 wait 0,schanc,tthang end of binary card 00000006 00237 149 tthang tstflg tfhang,chang 00243 150 waitm 151 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 28 process dac icm from 600 152 ttls process dac icm from 600 00244 153 tdac1 subr td1 00247 1 07 012 0 154 lda t.ocp,1 get outbuf ptr 00250 1 17 013 0 155 sta t.ocur,1 save as current 00251 1 56 012 0 156 stz t.ocp,1 clear orig ptr 00252 773 002 0 157 iaa 2 step to start of icm 00253 4 10 136 411 158 tsy xsbpt-*,* set ptr in buff page table for icm base 00254 1 17 015 0 159 sta t.occh,1 save relative addr of icm 00255 0332 00 0 160 cax2 copy icm addr to index reg 00256 2 07 004 0 161 lda t600cd,2 get command code from icm 00257 422 370 0 162 icmpa toplx2 is it link nrx2? 00260 0 74 301 561 163 tze lnorx2-* yes, go link it 00261 422 300 0 164 icmpa toplx1 is it link nrx1? 00262 0 74 226 510 165 tze lnorx1-* yes, go link 00263 0 03 131 414 166 ldx2 pnores-* see if non-res exec already linked 00264 0 74 007 273 167 tze tdac8-* no, bad news 00265 222 200 0 168 icana toplk2 00266 0 64 315 603 169 tnz lkmod2-* go link tp submod2 00267 222 100 0 170 icana toplk1 00270 0 64 305 575 171 tnz lkmod1-* go link tp submod1 00271 222 017 0 172 icana topsrt 00272 0 64 124 416 173 tnz tstc-* go start test 00273 673 042 0 174 tdac8 ila topinv 00274 0 17 354 650 175 prcend sta temp3-* save reply code 00275 0 03 120 415 176 ldx2 zerov-* 00276 177 return tdac1 return to op blocks 178 * 00300 673 041 0 179 tstc9 ila topgo load op complete code 00301 0 71 773 274 180 tra prcend-* and return 181 00302 0 00316 1 182 rtdac9 ind tdac9 183 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 29 process tp dac icm 184 ttls process tp dac icm 185 * 00303 186 prcmes subr pr2 end of binary card 00000007 00306 0 03 106 414 187 ldx2 pnores-* get nrx1 ptr 00307 2 10 063 0 188 tsy tpproc,2 process msg 00310 422 000 0 189 icmpa 0 is it bad icm? 00311 0 64 014 325 190 tnz tpdac8-* yes, send back icm 00312 0 03 270 602 191 ldx2 dsp1bs-* get tp submod ptr 00313 0 07 767 302 192 lda rtdac9-* set up return from submod 00314 2 17 017 0 193 sta ep15,2 save ptr in submod 00315 2 71 013 0 194 tra ep11,2 go to submod icm decode 195 * 00316 196 tdac9 null 00316 1 43 023 0 197 ldx1 -tbvtib,1 restore test tib ptr 00317 1 03 011 0 198 ldx2 t.elnk,1 get tib ext ptr 00320 2 07 015 0 199 lda -tbtmp2,2 get desired timer value 00321 0 17 641 162 200 sta stcht+1-* save for setime 00322 0 03 073 415 201 ldx2 zerov-* 00323 202 return prcmes 203 * 00325 0 03 066 413 204 tpdac8 ldx2 sndtst-* get op block return ptr 00326 205 return prcmes 206 * 00330 207 tdac2 subr td2 00333 0 03 061 414 208 ldx2 pnores-* get nrx1 ptr 00334 2 10 037 0 209 tsy tpda2,2 00335 0 03 060 415 210 ldx2 zerov-* 00336 211 return tdac2 return to op blocks 212 * 00340 213 tdac7 subr td7 00343 0 03 051 414 214 ldx2 pnores-* get nrx1 ptr 00344 2 10 041 0 215 tsy tpda7,2 00345 0 03 050 415 216 ldx2 zerov-* 00346 217 return tdac7 return to op blocks 218 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 30 return icm to 600/6000 219 ttls return icm to 600/6000 220 * 00350 221 tstc11 subr t11 end of binary card 00000008 00353 1 03 015 0 222 ldx2 t.occh,1 get icm ptr 00354 0 07 274 650 223 lda temp3-* get reply code 00355 0 56 273 650 224 stz temp3-* clear temp loc 00356 2 17 005 0 225 sta t355cd,2 save reply in exec icm 00357 1 41 013 0 226 ldx3 t.ocur,1 set up inp buff ptrs 00360 1 50 005 0 227 stx3 t.icp,1 first buff addr 00361 1 41 014 0 228 ldx3 t.olst,1 last buff addr 00362 1 50 006 0 229 stx3 t.ilst,1 00363 1 41 016 0 230 ldx3 t.ocnt,1 output buff count 00364 1 50 007 0 231 stx3 t.icpl,1 use as input buff count 00365 1 56 013 0 232 stz t.ocur,1 clear pointers 00366 1 56 015 0 233 stz t.occh,1 00367 0 03 026 415 234 ldx2 zerov-* 00370 235 return tstc11 return to op blocks 236 * 00372 237 tstc2 subr tc2 00375 673 050 0 238 ila topbuf get buffer denial code 00376 0 03 017 415 239 ldx2 zerov-* 00377 240 return tstc2 return to op blocks 241 * 00401 242 tstc3 subr tc3 00404 0 03 010 414 243 ldx2 pnores-* get ptr to nrx1 00405 2 10 045 0 244 tsy tptc3,2 set up test channel 00406 0 03 007 415 245 ldx2 zerov-* 00407 246 return tstc3 return to op blocks 247 * 00411 0 14000 3 248 xsbpt ind setbpt set buffer page base 00412 0 03000 3 249 xcvab ind cvabs convert virtual to abs address 00413 0 00205 1 250 sndtst ind sndtes 00414 0 00000 0 251 pnores ind ** ptr to nrx1 00415 000000 0 252 zerov oct 0 assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 31 channel test request 253 ttls channel test request 254 * 00416 255 tstc null initiate test start 00416 0 03 776 414 256 ldx2 pnores-* get nrx1 ptr 00417 2 10 043 0 257 tsy tptstc,2 00420 422 042 0 258 icmpa topinv check for bad icm end of binary card 00000009 00421 0 74 653 274 259 tze prcend-* invalid icm 00422 422 050 0 260 icmpa topbuf check for buffer denial 261 00423 0 74 651 274 262 tze prcend-* buff denial return 00424 0 71 654 300 263 tra tstc9-* normal return 264 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 32 line dis connect processor 265 ttls line dis connect processor 00425 266 t6dis subr t6d 00430 0 03 764 414 267 ldx2 pnores-* get nrx1 addr 00431 0 74 006 437 268 tze t6ret-* gone, so return 00432 2 07 023 0 269 lda tpmodu,2 get number of users 00433 0 74 003 436 270 tze t6ds1-* none, so release nr exec 00434 0 53 053 507 271 stx1 execfl-* tp still active so set exec disc flag 00435 0 71 002 437 272 tra t6ret-* return 00436 0 10 012 450 273 t6ds1 tsy relex-* release nr exec 00437 0 03 756 415 274 t6ret ldx2 zerov-* 00440 275 return t6dis return to op blocks 276 * 00442 0 00000 0 277 modrsl zero 00443 3 47 001 0 278 ldq 1,3 load size of buffer 00444 6337 12 0 279 qrl 10 position to num of wds 00445 573 040 0 280 iaq bufsiz correct count 00446 4 10 151 617 281 tsy tdlblk-*,* release it 00447 4 71 773 442 282 tra modrsl-*,* return 283 * 00450 0 00000 0 284 relex zero 00451 0 03 743 414 285 ldx2 pnores-* get nrx1 ptr 00452 4 74 776 450 286 tze relex-*,* nr exec gone so return 00453 2 41 015 0 287 ldx3 tpxm2,2 get nrx2 ptr 00454 0 74 003 457 288 tze rlx1-* already gone 00455 0 75 002 457 289 tmi rlx1-* likewise 00456 0 10 764 442 290 tsy modrsl-* release nrx2 00457 0 41 735 414 291 rlx1 ldx3 pnores-* get nrx1 ptr 00460 0 10 762 442 292 tsy modrsl-* release nrx1 00461 0 56 733 414 293 stz pnores-* clear ptr 00462 4 71 766 450 294 tra relex-*,* return 295 * 00463 296 t6dtp subr t6p 00466 0 03 114 602 297 ldx2 dsp1bs-* get submod addr 00467 0 74 003 472 298 tze wrapup-* submod 1 not loaded end of binary card 00000010 00470 2 20 012 0 299 szn ep10,2 is part 2 loaded? 00471 2 65 016 0 300 tpl ep14,2 yes go to submod wrapup 00472 3331 00 0 301 wrapup inh 00473 0 03 721 414 302 ldx2 pnores-* get ptr to nrx1 00474 2 10 035 0 303 tsy tpdis,2 go finish disconnect 00475 7331 00 0 304 eni 00476 0 07 104 602 305 lda dsp1bs-* get tp submod ptr 00477 0 64 005 504 306 tnz wrpend-* tp still present 00500 0 07 007 507 307 lda execfl-* tp gone,check if exec disc 00501 0 74 003 504 308 tze wrpend-* exec still active 00502 0 10 746 450 309 tsy relex-* release non res exec mods 00503 0 56 004 507 310 stz execfl-* clear flag 00504 0 03 711 415 311 wrpend ldx2 zerov-* 00505 312 return t6dtp return to op blocks 313 * 00507 000000 0 314 execfl oct 0 assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 33 line dis connect processor 315 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 34 link exec non-resident submods 316 ttls link exec non-resident submods 317 * 00510 318 lnorx1 null link nrx1 00510 0 20 704 414 319 szn pnores-* get possible ptr to nrx1 00511 0 64 567 300 320 tnz tstc9-* already linked, return icm 00512 0 10 137 651 321 tsy mvblk-* move to contig buffer 00513 422 000 0 322 icmpa 0 check for normal return 00514 0 64 560 274 323 tnz prcend-* bad news, buff denied 00515 0 03 133 650 324 ldx2 temp3-* get nrx1 ptr 00516 0 13 676 414 325 stx2 pnores-* save it 00517 2 13 014 0 326 stx2 tpxm1,2 save in nrx1 also 00520 0 04 070 610 327 ldaq tdmdsp-* set up ptrs in nrx1 00521 2 14 002 0 328 staq tpmdsp,2 mdisp,secdsp 00522 0 04 074 616 329 ldaq tdgbuf-* 00523 2 14 006 0 330 staq tpgbuf,2 getbuf,frebuf 00524 0 07 071 615 331 lda tdqur2-* 00525 2 17 004 0 332 sta tpdspq,2 dspqur 00526 0 07 075 623 333 lda tg3wjt-* 00527 2 17 005 0 334 sta tpg3w,2 g3wjt 00530 0 07 152 702 335 lda getadr-* 00531 2 17 010 0 336 sta tpgtib,2 gettib 00532 0 07 151 703 337 lda convad-* 00533 2 17 011 0 338 sta tpsptw,2 setptw 00534 0 07 112 646 339 lda iitest-* 00535 2 17 012 0 340 sta tpitst,2 itest 00536 0 07 141 677 341 lda sigsnd-* end of binary card 00000011 00537 2 17 013 0 342 sta tpdenq,2 denq 00540 0 07 136 676 343 lda dsp1bp-* 00541 2 17 017 0 344 sta tpd1bs,2 dsp1bs 00542 0 04 050 612 345 ldaq tdsnp-* 00543 2 14 020 0 346 staq tpsnd,2 tdsnds,wrapup 00544 0 07 134 700 347 lda testop-* 00545 2 17 030 0 348 sta tpctst,2 ctest 00546 0 07 133 701 349 lda icktim-* 00547 2 17 024 0 350 sta tpchkt,2 cktime 00550 0 07 010 560 351 lda imodrl-* 00551 2 17 027 0 352 sta tpmrsl,2 modrsl 00552 0 07 637 411 353 lda xsbpt-* 00553 2 17 025 0 354 sta tpsbpt,2 setbpt 00554 0 07 636 412 355 lda xcvab-* 00555 2 17 026 0 356 sta tpcvab,2 cvabs 00556 0 56 072 650 357 lnxret stz temp3-* clear temp ptr 00557 0 71 521 300 358 tra tstc9-* return icm 359 * 00560 0 00442 1 360 imodrl ind modrsl 361 * 00561 362 lnorx2 null link nrx2 00561 0 41 633 414 363 ldx3 pnores-* check if nrx1 linked 00562 0 74 516 300 364 tze tstc9-* no, so return icm 00563 3 20 015 0 365 szn tpxm2,3 check if nrx2 already linked assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 35 link exec non-resident submods 00564 0 64 514 300 366 tnz tstc9-* yes, return icm 00565 0 10 064 651 367 tsy mvblk-* put in contig buffer 00566 422 000 0 368 icmpa 0 check for bad return 00567 0 64 505 274 369 tnz prcend-* bad news, buff denied 00570 0 03 624 414 370 ldx2 pnores-* get nrx1 ptr 00571 0 07 057 650 371 lda temp3-* get nrx2 ptr 00572 2 17 015 0 372 sta tpxm2,2 link nrx2 to nrx1 00573 2 10 033 0 373 tsy tpinz,2 go to nrx1 init 00574 0 71 762 556 374 tra lnxret-* return icm 375 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 36 pointers & entry points in nrx1 376 ttls pointers & entry points in nrx1 377 * 000002 378 tpmdsp equ 2 mdisp 000003 379 tpsecd equ 3 secdsp 000004 380 tpdspq equ 4 dspqur 000005 381 tpg3w equ 5 g3wjt 000006 382 tpgbuf equ 6 getbuf 000007 383 tpfrbf equ 7 frebuf 000010 384 tpgtib equ 8 gettib 000011 385 tpsptw equ 9 setptw 000012 386 tpitst equ 10 itest 000013 387 tpdenq equ 11 denq 000014 388 tpxm1 equ 12 nrx1 000015 389 tpxm2 equ 13 nrx2 000016 390 tpsubm equ 14 submod1 000017 391 tpd1bs equ 15 dsp1bs 000020 392 tpsnd equ 16 tdsnds 000021 393 tpwrp equ 17 wrapup 000022 394 tpxtab equ 18 abs addr xtib 000023 395 tpmodu equ 19 moduse 000024 396 tpchkt equ 20 cktime 000025 397 tpsbpt equ 21 setbpt 000026 398 tpcvab equ 22 cvabs 000027 399 tpmrsl equ 23 modrsl 000030 400 tpctst equ 24 ctest 401 * 000031 402 tpip equ 25 interrupt processor 403 * 000033 404 tpinz equ 27 non-res exec init 405 * 000035 406 tpdis equ 29 disconnect tp 407 * 000037 408 tpda2 equ 31 409 * 000041 410 tpda7 equ 33 411 * 000043 412 tptstc equ 35 413 * 000045 414 tptc3 equ 37 415 * 000047 416 tpls1 equ 39 link submod1 417 * 000052 418 tpls2 equ 42 link submod2 419 * 000055 420 tptim equ 45 elapsed time proc 421 * 000060 422 tpctm equ 48 check timer 423 * 000063 424 tpproc equ 51 process msg 425 * 000066 426 tpsen equ 54 prepare icm for return assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 37 pointers & entry points in nrx1 427 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 38 link t/d submodules 428 ttls link t/d submodules 00575 429 lkmod1 null link submodule -1- 00575 0 03 617 414 430 ldx2 pnores-* get nrx1 ptr 00576 2 10 047 0 431 tsy tpls1,2 go link submod1 00577 422 000 0 432 icmpa 0 ck for error 00600 0 64 474 274 433 tnz prcend-* error, so exit 00601 0 71 477 300 434 tra tstc9-* return icm 435 * 436 * 437 * module -1- link address table 438 * 00602 0 00000 0 439 dsp1bs ind ** ptr to submod1 440 * 441 * 00603 442 lkmod2 null link submodule -2- 00603 0 03 611 414 443 ldx2 pnores-* get nrx1 ptr 00604 2 10 052 0 444 tsy tpls2,2 go link submod2 00605 422 000 0 445 icmpa 0 ck for error end of binary card 00000012 00606 0 64 466 274 446 tnz prcend-* error, so exit 00607 0 71 471 300 447 tra tstc9-* return icm 448 * 449 * 450 * submodule 1 header format 451 * 000000 452 ep0 equ 0 submodule data 000001 453 ep1 equ 1 submodule data 000002 454 ep2 equ 2 exec control 000003 455 ep3 equ 3 exec control 000004 456 ep4 equ 4 master dispatcher address 000005 457 ep5 equ 5 event dispatcher address 000006 458 ep6 equ 6 tib timeout dispatch address 000007 459 ep7 equ 7 grts dispatch queuer address 000010 460 ep8 equ 8 address of icm send routine 000011 461 ep9 equ 9 exec return address after wrapup 000012 462 ep10 equ 10 part 2 address and flag 000013 463 ep11 equ 11 icm decode 000014 464 ep12 equ 12 process interrupt 000015 465 ep13 equ 13 process tib timeout 000016 466 ep14 equ 14 test line wrapup 000017 467 ep15 equ 15 initialize submodule (entered via tsy) 000021 468 ep17 equ 17 ptr to getbuf 000022 469 ep18 equ 18 ptr to frebuf 000023 470 ep19 equ 19 ptr to setbpt 471 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 39 colts system symbols and definitions 472 ttls colts system symbols and definitions 000026 473 tdispp bool 26 colts dispatcher priority 000014 474 trlbkp bool 14 rellbf priority 00610 0 06000 3 475 tdmdspeind mdisp master dispatcher 00611 0 13000 3 476 tddisp ind secdsp secondary dispatcher 00612 0 00635 1 477 tdsnp eind tdsnds return icm to 600 00613 0 00472 1 478 tdwrp ind wrapup exec return address after wrapup 00614 0 00624 1 479 timout ind timprc test tib timeout processor ptr 00615 0 07000 3 480 tdqur2 ind dspqur dispatcher queuer 00616 0 11000 3 481 tdgbufeind getbuf ptr to getbuf 00617 0 10000 3 482 tdlblk ind frebuf frebuf address 483 * define icm format 000002 484 tmcksm equ 2 checksum word 000003 485 tmcsta equ 3 355 reply in test icm 000004 486 t600cd equ 4 000005 487 t355cd equ 5 000006 488 tmcid1 equ 6 000007 489 tmcid2 equ 7 000010 490 tmcid3 equ 8 000011 491 tmcid4 equ 9 000012 492 tmcid5 equ 10 000013 493 tmcid6 equ 11 494 600 to 355 op-codes 000017 495 topsrt bool 17 000100 496 toplk1 bool 100 000200 497 toplk2 bool 200 000300 498 toplx1 bool 300 link nrx1 000370 499 toplx2 bool 370 link nrx2 500 355 to 600 op-codes 000041 501 topgo bool 41 operation complete op-code 000042 502 topinv bool 42 invalid icm op-code 000045 503 topact bool 45 channel active op-code 000046 504 topdis bool 46 line disconnected op-code 000047 505 topnlk bool 47 module not linked op-code 000050 506 topbuf bool 50 bufferdenial op-code assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 40 test system interrupt processor 507 ttls test system interrupt processor 508 * 00620 509 tdip null 00620 0 03 574 414 510 ldx2 pnores-* get nrx1 ptr 00621 4 74 767 610 511 tze tdmdsp-*,* no nrx1, exit to disp 00622 2 71 031 0 512 tra tpip,2 process interrupt 513 * 00623 0 04000 3 514 tg3wjt ind g3wjt get 3rd word of jump table 515 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 41 time out processor 516 ttls time out processor 517 * 00624 518 timprc subr tim 00627 0 03 565 414 519 ldx2 pnores-* get nrx1 ptr 00630 2 10 055 0 520 tsy tptim,2 go proc timer 00631 1 07 013 0 521 lda t.ocur,1 get abs addr icm buff 00632 4 10 557 411 522 tsy xsbpt-*,* set bpt for icm 00633 0 03 747 602 523 ldx2 dsp1bs-* get submod1 ptr 00634 2 64 015 0 524 tnz ep13,2 go proc tib timeout 00635 525 tdsnds null 00635 0 03 557 414 526 ldx2 pnores-* get nrx1 ptr 00636 2 10 066 0 527 tsy tpsen,2 go prepare icm for return 00637 0 03 556 415 528 ldx2 zerov-* 00640 529 return timprc return to op blocks 530 * 531 * 532 * 00642 533 cktime null 00642 0 03 552 414 534 ldx2 pnores-* get nrx1 ptr 00643 2 10 060 0 535 tsy tpctm,2 check elapsed time 00644 3 43 021 0 536 ldx1 -tbrtib,3 get abs test tib addr 00645 4 71 744 611 537 tra tddisp-*,* exit to secdsp 538 * 00646 0 05000 3 539 iitest ind itest 540 * 00647 000000 0 541 temp2 oct 0 00650 000000 0 542 temp3 oct 0 543 * assm 01 12-01-82 14.718 mclt multics hc fnp colts exec rev c 821015 page 42 subroutine - move icm to contiguous buffer 544 ttls subroutine - move icm to contiguous buffer 545 * 00651 0 00000 0 546 mvblk zero 00652 2 07 000 0 547 lda 0,2 00653 0 17 774 647 548 sta temp2-* save total number 36-bit wds 00654 0336 01 0 549 als 1 convert to 18-bit wd count end of binary card 00000013 00655 773 040 0 550 iaa bufsiz force to next even bufsiz 00656 022 740 0 551 iana -bufsiz mask residue 00657 6333 00 0 552 caq 00660 4 10 736 616 553 tsy tdgbuf-*,* get system buffers - contiguous 00661 0 71 013 674 554 tra wtmem-* no go joe 00662 0 50 766 650 555 stx3 temp3-* save addr for caller 00663 2 04 002 0 556 mvblk4 ldaq 2,2 move the data 00664 3 14 002 0 557 staq 2,3 00665 273 002 0 558 iacx2 2 increment icm ptr 00666 373 002 0 559 iacx3 2 increment block pointer 00667 673 777 0 560 ila -1 decrement move count 00670 0 16 757 647 561 asa temp2-* 00671 0 64 772 663 562 tnz mvblk4-* not done yet 00672 0 07 523 415 563 lda zerov-* set to zero for normal return 00673 4 71 756 651 564 tra mvblk-*,* move complete 565 00674 566 wtmem null can't get contiguous buffers 00674 673 050 0 567 ila topbuf denied buffers op-code 00675 4 71 754 651 568 tra mvblk-*,* return 569 * 570 * 571 * 00676 0 00602 1 572 dsp1bp ind dsp1bs 00677 0 01000 3 573 sigsnd ind denq 00700 0 00123 1 574 testop ind ctest 00701 000642 1 575 icktim vfd 3/0,15/cktime 00702 0 12000 3 576 getadr ind gettib 00703 0 15000 3 577 convad ind setptw 578 * 579 end of binary card 00000014 580 end 704 is the next available location. 355map version/assembly dates gmpa 770711/071177 gmpb 770711/071177 gmpc 770711/071177 there were no warning flags in the above assembly assm 01 12-01-82 14.721 mclt multics hc fnp colts exec rev c 821015 page 43 octal symbol references by sequence no. 2 begin 22 81 40 bufsiz 44 44 280 550 551 134 chang 119 116 119 131 137 149 2 c.rcrq 40 40 41 40 c.rdtr 40 40 41 2 c.rrec 40 40 41 20000 c.rrqs 40 40 41 200 c.rsup 40 40 41 200 c.rtre 40 40 41 10 c.rxmt 40 40 41 1000 c.sbrk 40 40 41 1 c.scrq 40 40 41 20 c.sdtr 40 40 41 2000 c.smrk 40 40 41 1 c.srec 40 40 41 10000 c.srqs 40 40 41 100 c.ssup 40 40 41 400 c.stat 40 40 41 100 c.stre 40 40 41 4000 c.strm 40 40 41 4 c.sxmt 40 40 41 642 cktime 533 533 575 14 colts 80 20 80 703 convad 577 337 577 123 ctest 114 114 140 574 3 cvabs 35 249 1 denq 33 573 100 dialup 41 41 83 676 dsp1bp 572 343 572 602 dsp1bs 439 191 297 305 439 523 572 7 dspqur 26 480 12 ep10 462 299 462 13 ep11 463 194 463 15 ep13 465 465 524 16 ep14 466 300 466 17 ep15 467 193 467 507 execfl 314 271 307 310 314 10 frebuf 29 482 4 g3wjt 23 514 702 getadr 576 335 576 11 getbuf 27 481 12 gettib 31 576 103 gtibex 105 95 105 101 hangup 41 41 90 121 701 icktim 575 349 575 646 iitest 539 339 539 560 imodrl 360 351 360 5 itest 30 539 575 lkmod1 429 171 429 603 lkmod2 442 169 442 510 lnorx1 318 165 318 assm 01 12-01-82 14.721 mclt multics hc fnp colts exec rev c 821015 page 44 octal symbol references by sequence no. 561 lnorx2 362 163 362 556 lnxret 357 357 374 0 macwk1 518 153 177 186 202 205 207 211 213 217 221 235 237 240 242 246 266 275 296 312 518 529 1 macwk2 518 153 186 207 213 221 237 242 266 296 518 2 mclt 37 19 37 38 6 mdisp 24 475 442 modrsl 277 277 282 290 292 360 663 mvblk4 556 556 562 651 mvblk 546 321 367 546 564 568 414 pnores 251 166 187 208 214 243 251 256 267 285 291 293 302 319 325 363 370 430 443 510 519 526 534 274 prcend 175 175 180 259 262 323 369 433 446 303 prcmes 186 127 186 202 205 450 relex 284 273 284 286 294 309 457 rlx1 291 288 289 291 302 rtdac9 182 182 192 144 schan 124 114 124 152 schana 126 126 144 226 schanb 146 126 146 216 schanc 142 142 148 13 secdsp 25 476 46 sendr 93 84 93 100 14 setbpt 28 248 15 setptw 32 577 42 shang 90 86 90 37 shangc 89 89 97 102 677 sigsnd 573 341 573 200000 s.acr 40 40 41 400000 s.ads 40 40 41 400000 s.bdmk 40 40 41 200000 s.bmk 40 40 41 1000 s.brch 40 40 41 400 s.brk 40 40 41 1 s.cd 40 40 41 2 s.cts 40 40 41 100000 s.dlo 40 40 41 4 s.dsr 40 40 41 4000 s.exh 40 40 41 10000 s.fcse 40 40 41 40000 s.isd 40 40 41 40 s.mark 40 40 41 400000 s.pbyt 40 40 41 200 s.prex 40 40 41 10000 s.prty 40 40 41 40000 s.pwi 40 40 41 200000 s.rabt 40 40 41 100000 s.rbt 40 40 41 2000 s.ring 40 40 41 40000 s.rto 40 40 41 10 s.sprc 40 40 41 assm 01 12-01-82 14.721 mclt multics hc fnp colts exec rev c 821015 page 45 octal symbol references by sequence no. 20 s.st 40 40 41 100 s.term 40 40 41 20000 s.xte 40 40 41 24 slisn 83 80 83 60 sndicm 96 96 108 110 105 sndout 41 41 99 139 147 205 sndtes 137 137 250 413 sndtst 250 204 250 161 stcht 128 128 200 5 t355cd 487 225 487 4 t600cd 486 161 486 425 t6dis 266 89 266 275 436 t6ds1 273 270 273 463 t6dtp 296 119 296 312 437 t6ret 274 268 272 274 777757 tbrtib 65 65 536 777763 tbtmp2 61 61 199 777755 tbvtib 67 67 197 127 tchang 116 114 116 167 tchng 131 129 131 244 tdac1 153 94 153 177 330 tdac2 207 125 207 211 340 tdac7 213 143 213 217 273 tdac8 174 167 174 316 tdac9 196 182 196 611 tddisp 476 476 537 616 tdgbuf 481 329 481 553 16 tdhung 34 91 122 620 tdip 509 21 509 617 tdlblk 482 281 482 610 tdmdsp 475 327 475 511 615 tdqur2 480 331 480 635 tdsnds 525 477 525 612 tdsnp 477 345 477 647 temp2 541 541 548 561 650 temp3 542 175 223 224 324 357 371 542 555 700 testop 574 347 574 116 texerr 109 106 109 20 tfacu 39 39 132 40 tfhang 39 39 86 97 102 116 131 137 149 100 tflisn 39 39 80 100 tfofc 39 39 126 146 200 tfupsf 39 39 95 105 40 tfwrd1 149 80 86 93 95 97 102 105 116 124 126 131 132 137 142 146 149 0 tfwrd2 149 80 86 93 95 97 102 105 116 124 126 131 132 137 142 146 149 1 tfwrit 39 39 93 124 142 623 tg3wjt 514 333 514 33 tibx.1 75 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 assm 01 12-01-82 14.721 mclt multics hc fnp colts exec rev c 821015 page 46 octal symbol references by sequence no. 1 tibx.3 75 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 33 tibxsz 75 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 106 200 timer 135 129 132 135 624 timprc 518 136 479 518 529 11 t.elnk 39 39 198 5 t.icp 39 39 227 7 t.icpl 39 39 231 6 t.ilst 39 39 229 15 t.occh 39 39 159 222 233 16 t.ocnt 39 39 230 12 t.ocp 39 39 154 156 13 t.ocur 39 39 155 226 232 521 14 t.olst 39 39 228 50 topbuf 506 238 260 506 567 41 topgo 501 179 501 42 topinv 502 174 258 502 100 toplk1 496 170 496 200 toplk2 497 168 497 300 toplx1 498 164 498 370 toplx2 499 162 499 17 topsrt 495 172 495 24 tpchkt 396 350 396 60 tpctm 422 422 535 30 tpctst 400 348 400 26 tpcvab 398 356 398 17 tpd1bs 391 344 391 37 tpda2 408 209 408 41 tpda7 410 215 410 325 tpdac8 204 190 204 13 tpdenq 387 342 387 35 tpdis 406 303 406 4 tpdspq 380 332 380 5 tpg3w 381 334 381 6 tpgbuf 382 330 382 10 tpgtib 384 336 384 33 tpinz 404 373 404 31 tpip 402 402 512 12 tpitst 386 340 386 47 tpls1 416 416 431 52 tpls2 418 418 444 2 tpmdsp 378 328 378 23 tpmodu 395 269 395 27 tpmrsl 399 352 399 63 tpproc 424 188 424 25 tpsbpt 397 354 397 66 tpsen 426 426 527 20 tpsnd 392 346 392 11 tpsptw 385 338 385 45 tptc3 414 244 414 assm 01 12-01-82 14.721 mclt multics hc fnp colts exec rev c 821015 page 47 octal symbol references by sequence no. 55 tptim 420 420 520 43 tptstc 412 257 412 14 tpxm1 388 326 388 15 tpxm2 389 287 365 372 389 32 tshang 86 84 86 76 tshngc 102 100 102 350 tstc11 221 96 221 235 372 tstc2 237 109 237 240 401 tstc3 242 107 242 246 300 tstc9 179 179 263 320 358 364 366 434 447 416 tstc 255 173 255 237 tthang 149 148 149 472 wrapup 301 298 301 478 504 wrpend 311 306 308 311 674 wtmem 566 554 566 412 xcvab 249 249 355 411 xsbpt 248 158 248 353 522 415 zerov 252 176 201 210 216 234 239 245 252 274 311 528 563 ** 47228 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