assm 01 09-28-82 16.920 g115_tables page 1 preface this program will be loaded mod 64 program break 3620 common length 0 v count bits 5 primary symdef entry g115 0 gstar 600 g15acu 626 secondary symdef entry .chain 100 block length symref 1 begin 2 error 3 acutst 4 cvaddr 5 frebuf 6 hungup end of binary card 00000001 7 stpchn end of binary card 00000002 assm 01 09-28-82 16.920 g115_tables page 2 1 ****************************************************** 2 * * 3 * * 4 * copyright (c) 1972 by massachusetts institute of * 5 * technology and honeywell information systems, inc. * 6 * * 7 * * 8 ****************************************************** 9 10 lbl ,g115_tables assm 01 09-28-82 16.920 g115_tables page 3 14 pcc off 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 16 * 17 * 18 * g115_tables, g115 19 * 20 * control tables for running high-speed device obeying 21 * g115 protocol 22 * 23 * split off from control_tables by robert coren 4/29/76 24 * 25 * 26 * tables redone by joe nicholls and art beatie may-nov 1978 27 * the same general concepts were used, but the implementatio 28 * may be different. 29 * a number of redundencies have been built in to maintain a known 30 * state of things, such as reseting variable and dumpins. 31 * 32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 33 34 00000 35 g115 null 36 37 symdef g115 38 symdef gstar 39 symdef g15acu 40 41 symref begin 42 symref hungup 43 symref error 44 symref acutst 45 symref cvaddr 46 symref frebuf 47 00000 49 tib assm 01 09-28-82 16.926 g115_tables page 4 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 09-28-82 16.926 g115_tables 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.leng equ t.metr+1 length of a tib ******************************** * t.stat bits ******************************** 000001 tsfcd bool 000001 carrier detect 000002 tsfcts bool 000002 clear to send 000004 tsfdsr bool 000004 data set ready assm 01 09-28-82 16.926 g115_tables page 6 terminal information block (tib) 000010 tsfsrc bool 000010 supervisory receive 000020 tsfst bool 000020 store status 000040 tsfmrk bool 000040 send marker status 000100 tsftrm bool 000100 send terminate status 000200 tsfrcv bool 000200 receive mode 000400 tsfxmt bool 000400 transmit mode 001000 tsfbrk bool 001000 send line break 002000 tsfdtr bool 002000 data terminal ready 004000 tsfsxt bool 004000 supervisory transmit 004000 tsftre bool 004000 tally runout enable (hdlc) 010000 tsfrts bool 010000 request to send 020000 tsfcrq bool 020000 acu call request ******************************** * tib flags -- t.flg ******************************** 000001 tfwrit bool 000001 output chain present 000002 tfbel bool 000002 send bell as next echoed character 000004 tffdpx bool 000004 full duplex mode 000010 tfkybd bool 000010 keyboard addressed 000020 tfprtr bool 000020 printer addressed 000040 tfhang bool 000040 hangup this line 000100 tflisn bool 000100 answer the phone 000200 tfquit bool 000200 send nl on line break 000400 tfctrl bool 000400 do kybd/printer addressing 001000 tflfec bool 001000 do lf echo on cr 002000 tfcrec bool 002000 do cr echo on lf assm 01 09-28-82 16.926 g115_tables page 7 terminal information block (tib) 004000 tftbec bool 004000 do space echo on tab 010000 tfwabt bool 010000 do write abort 020000 tfauto bool 020000 this is hsla autobaud line 040000 tfeotx bool 040000 eot expected from 2741 100000 tfisus bool 100000 input suspended 200000 tfecpx bool 200000 echoplex mode 400000 tfosus bool 400000 output suspended ******************************** * second word of tib flags ******************************** 000001 tfxhld bool 000001 hold transmit on 000002 tfdild bool 000002 terminal is dialed up 000004 tfercv bool 000004 enter receive mode 000010 tfrabt bool 000010 do read abort 000020 tfacu bool 000020 do dial out 000040 tfifc bool 000040 input flow control mode 000100 tfofc bool 000100 output flow control mode 000200 tfupsf bool 000200 terminal is upshifted now 000400 tfrply bool 000400 replay mode 001000 tfrpon bool 001000 replay is occurring now 002000 tfplit bool 002000 polite mode 004000 tfblak bool 004000 asynchronous block acknowledgement 010000 tfcrcv bool 010000 'control' receive mode 020000 tfmrcv bool 020000 'message' receive mode 040000 tffrmi bool 040000 frame mode 100000 tffip bool 100000 frame in progress assm 01 09-28-82 16.926 g115_tables page 8 terminal information block (tib) 200000 tfsftr bool 200000 terminal is shifting device 400000 tfpfnl bool 400000 line is in prefixnl mode ********************************* * third word of tib flags ********************************* 000001 tfbkpt bool 000001 line is stopped at breakpoint 000002 tfitim bool 000002 timeout if input stops 000004 tfkpar bool 000004 keep parity bits 000010 tfecho bool 000010 echoing has priority over output (lsla) 000020 tfbral bool 000020 break on all characters 000040 tfsked bool 000040 input timeout routine scheduled 000100 tf8in bool 000100 don't strip input parity 000200 tf8out bool 000200 don't strip output parity 000400 tfoddp bool 000400 odd parity 002000 tfsoip bool 002000 suspension of output in progress 004000 tforp bool 004000 output resume pending (waiting until tro) ********************************* * redefined tib flags in t.flg ********************************* 000020 tfdlup equ tfprtr line is on dialup modem 00000 50 meters assm 01 09-28-82 16.926 g115_tables page 9 system-wide meters 000720 .mdilc set 464 cumulative no. of channels dialed 000722 .mdilu set 466 updates of .mdilc 000724 .mspav set 468 cumulative space available 000726 .mspau set 470 updates of .mspav 000730 .mimbx set 472 cumulative number of mbxes in use 000732 .mimbu set 474 updates of .mimbx 000734 .mndil set 476 current no. of channels dialed 000735 .malof set 477 number of space allocation failures 000736 .mdias set 478 abnormal dia status 000737 .mpool set 479 total size of buffer pool (in words) 000740 .mbufa set 480 number of buffer allocations 000742 .mbfpa set 482 number of buffers pre-allocated 000744 .mupab set 484 used a pre-allocated buffer 000746 .mpanf set 486 no pre-allocated buffer available 000030 .mleng equ .mpanf+2-.mdilc length of system-wide meters assm 01 09-28-82 16.926 g115_tables page 10 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 000027 m.maxi equ m.mini+1 maximum length of input message assm 01 09-28-82 16.926 g115_tables page 11 per-channel meters 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 00000 51 csbits assm 01 09-28-82 16.926 g115_tables page 12 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 09-28-82 16.926 g115_tables page 13 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) 100000 s.rbt bool 100000 receive block termination (bsc & hdlc) assm 01 09-28-82 16.926 g115_tables page 14 control and status bits 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 00000 52 tconst assm 01 09-28-82 16.926 g115_tables page 15 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 09-28-82 16.926 g115_tables page 16 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 09-28-82 16.926 g115_tables page 17 flag and control bit definitions 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 scan subop types assm 01 09-28-82 16.926 g115_tables page 18 flag and control bit definitions 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 00000 53 buffer assm 01 09-28-82 16.926 g115_tables page 19 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 00000 54 cctdef assm 01 09-28-82 16.926 g115_tables page 20 buffer format cct control bit definitions 000000 ct.ncs bool 000 normal char store 000001 ct.t1s bool 001 store and terminate on next 000002 ct.t2s bool 002 store and terminate after 2 chars 000003 ct.t0s bool 003 store and terminate 000004 ct.dmk bool 004 store and marker delayed 000005 ct.mk1 bool 005 store and marker on next 000006 ct.ign bool 006 ignore, no store 000007 ct.mrk bool 007 store and marker 000020 ct.sw bool 020 switch icws 000040 ct.syn bool 040 resync channel 000100 ct.tb1 bool 100 switch to table 1 000200 ct.tb2 bool 200 switch to table 2 000300 ct.tb3 bool 300 switch to table 3 000400 ct.tb4 bool 400 switch to table 4 000023 ct.eol equ ct.sw+ct.t0s eol for regular tty 000061 ct.grt equ ct.sw+ct.syn+ct.t1s for etx plus bcc char 000421 ct.etx equ ct.t1s+ct.sw+ct.tb4 000423 ct.nak equ ct.t0s+ct.sw+ct.tb4 000005 ct.itb equ ct.mk1 000204 ct.stx equ ct.tb2+ct.dmk 000207 ct.mtb equ ct.mrk+ct.tb2 ** following codes are for setcct opblock 000000 scc.dl equ 0 delete current cct 000001 scc.df equ 1 set to default cct based on modes 000002 scc.bs equ 2 reset to base of current cct 56 00000 57 base 64 00000 58 cct.3 null * cct for use with grts, terminate on etx + bcc 59 00000 000000 0 60 vfd 9/ct.ncs,9/ct.ncs * 000 001 00001 000061 0 61 vfd 9/ct.ncs,9/ct.grt * 002 etx 00002 000000 0 62 vfd 9/ct.ncs,9/ct.ncs * 004 005 00003 000000 0 63 vfd 9/ct.ncs,9/ct.ncs * 006 007 00004 000000 0 64 vfd 9/ct.ncs,9/ct.ncs * 010 011 00005 000000 0 65 vfd 9/ct.ncs,9/ct.ncs * 012 013 00006 000000 0 66 vfd 9/ct.ncs,9/ct.ncs * 014 015 00007 000000 0 67 vfd 9/ct.ncs,9/ct.ncs * 016 017 00010 000000 0 68 vfd 9/ct.ncs,9/ct.ncs * 020 021 00011 000000 0 69 vfd 9/ct.ncs,9/ct.ncs * 022 023 00012 000000 0 70 vfd 9/ct.ncs,9/ct.ncs * 024 025 00013 006061 0 71 vfd 9/ct.ign,9/ct.grt * syn etb 00014 000000 0 72 vfd 9/ct.ncs,9/ct.ncs * 030 031 00015 000000 0 73 vfd 9/ct.ncs,9/ct.ncs * 032 033 00016 000000 0 74 vfd 9/ct.ncs,9/ct.ncs * 034 035 00017 000000 0 75 vfd 9/ct.ncs,9/ct.ncs * 036 037 assm 01 09-28-82 16.926 g115_tables page 21 buffer format 76 00020 77 dup 1,48 00020 000000 0 78 vfd 9/ct.ncs,9/ct.ncs 00021 000000 0 vfd 9/ct.ncs,9/ct.ncs 00022 000000 0 vfd 9/ct.ncs,9/ct.ncs 00023 000000 0 vfd 9/ct.ncs,9/ct.ncs 00024 000000 0 vfd 9/ct.ncs,9/ct.ncs 00025 000000 0 vfd 9/ct.ncs,9/ct.ncs 00026 000000 0 vfd 9/ct.ncs,9/ct.ncs 00027 000000 0 vfd 9/ct.ncs,9/ct.ncs 00030 000000 0 vfd 9/ct.ncs,9/ct.ncs 00031 000000 0 vfd 9/ct.ncs,9/ct.ncs 00032 000000 0 vfd 9/ct.ncs,9/ct.ncs 00033 000000 0 vfd 9/ct.ncs,9/ct.ncs 00034 000000 0 vfd 9/ct.ncs,9/ct.ncs 00035 000000 0 vfd 9/ct.ncs,9/ct.ncs 00036 000000 0 vfd 9/ct.ncs,9/ct.ncs 00037 000000 0 vfd 9/ct.ncs,9/ct.ncs 00040 000000 0 vfd 9/ct.ncs,9/ct.ncs 00041 000000 0 vfd 9/ct.ncs,9/ct.ncs 00042 000000 0 vfd 9/ct.ncs,9/ct.ncs 00043 000000 0 vfd 9/ct.ncs,9/ct.ncs 00044 000000 0 vfd 9/ct.ncs,9/ct.ncs 00045 000000 0 vfd 9/ct.ncs,9/ct.ncs 00046 000000 0 vfd 9/ct.ncs,9/ct.ncs end of binary card 00000003 00047 000000 0 vfd 9/ct.ncs,9/ct.ncs 00050 000000 0 vfd 9/ct.ncs,9/ct.ncs 00051 000000 0 vfd 9/ct.ncs,9/ct.ncs 00052 000000 0 vfd 9/ct.ncs,9/ct.ncs 00053 000000 0 vfd 9/ct.ncs,9/ct.ncs 00054 000000 0 vfd 9/ct.ncs,9/ct.ncs 00055 000000 0 vfd 9/ct.ncs,9/ct.ncs 00056 000000 0 vfd 9/ct.ncs,9/ct.ncs 00057 000000 0 vfd 9/ct.ncs,9/ct.ncs 00060 000000 0 vfd 9/ct.ncs,9/ct.ncs 00061 000000 0 vfd 9/ct.ncs,9/ct.ncs 00062 000000 0 vfd 9/ct.ncs,9/ct.ncs 00063 000000 0 vfd 9/ct.ncs,9/ct.ncs 00064 000000 0 vfd 9/ct.ncs,9/ct.ncs 00065 000000 0 vfd 9/ct.ncs,9/ct.ncs 00066 000000 0 vfd 9/ct.ncs,9/ct.ncs 00067 000000 0 vfd 9/ct.ncs,9/ct.ncs 00070 000000 0 vfd 9/ct.ncs,9/ct.ncs 00071 000000 0 vfd 9/ct.ncs,9/ct.ncs 00072 000000 0 vfd 9/ct.ncs,9/ct.ncs 00073 000000 0 vfd 9/ct.ncs,9/ct.ncs 00074 000000 0 vfd 9/ct.ncs,9/ct.ncs 00075 000000 0 vfd 9/ct.ncs,9/ct.ncs 00076 000000 0 vfd 9/ct.ncs,9/ct.ncs 00077 000000 0 vfd 9/ct.ncs,9/ct.ncs assm 01 09-28-82 16.926 g115_tables page 22 buffer format 00100 79 start g115,,w3gesm090000 assm 01 09-28-82 16.926 g115_tables page 23 tib extension array definitions 00112 81 tibex incnt,char input char count 00112 82 tibex fctype,char function code type obtained 00112 83 tibex optype,char operation type of msg 00112 84 tibex acknak,char ack or nak char for msg 00112 85 tibex seqcde,char seq code to use in msg 00112 86 tibex prevsc,char previous seq code used 00112 87 tibex xmtsc,char xmited seq code 00112 88 tibex modtyp,char mode type we are in for gwrrd 00112 89 tibex scrchr,char storage for special control record char 00112 90 tibex tibchr,char place to stroe msg addr for comparision 00112 91 tibex rtnlbl,word label to return to for gotov 00112 92 tibex ctlop,word control word for line status new 00112 93 tibex ctlop1,word second control word for 36 bits 00112 94 tibex ctlop2,word some spare in tib 00112 95 tibex ctlop3,word make it even 4 words control 00112 96 tibex msgchk,word value of the check we did on the output message 00112 97 tibex outchn,word addr of last output buffer to check 00112 98 tibex bsyinc,word count for counting delay waits for 68/80 00112 99 tibex dlytim,word time to wait for response 00112 100 tibex gflags,word word of flags in tib extension 101 102 000001 103 trmchr bool 000001 flag that remote is finished inputing 000002 104 xnak bool 000002 internal to keep track of our naking 000004 105 rtntry bool 000004 tried to allocate buffer before, so give up 000010 106 early bool 000010 flag to say that we received our response before 001000 107 rmtcmp bool 001000 for multics to multics init assm 01 09-28-82 16.926 g115_tables page 24 g115 - defined values 109 /* defined modtyp test values */ 000001 110 actinp bool 1 active, input 000002 111 inact bool 2 inactive 000003 112 actot1 bool 3 active, output 1 000004 113 actot2 bool 4 active, output 2 000010 114 actot3 bool 10 mixed i/o mode 000007 115 inact1 bool 7 scr ($*$dis) received 000005 116 inact2 bool 5 rfd received 000006 117 inact3 bool 6 inactive, responding to a $*$out record 000011 118 inact4 bool 11 inactive, inprocess of terminating 000012 119 inact5 bool 12 we have output the terminate message 120 121 122 123 line status definitions for ctlop 000001 124 fspr bool 1 spare line status 000002 125 fbld bool 2 failure to build a message 000003 126 fxmit bool 3 failure to xmit msg n time in a row 000004 127 fsoh bool 4 failure to find soh chr in output msg 000005 128 fetx bool 5 failure to find ext chr at end of output msg 000006 129 fmod bool 6 bad mode in tib we will terminate and start over 000007 130 notimp bool 7 line control order not implemented in these table 000010 131 otpend bool 10 yes you have output pending 000011 132 discrd bool 11 portion of pending output was deleted before sent 000012 133 lngmsg bool 12 the assembled message was too long >324 character 134 135 136 line control definitions for ctlop 137 try to keep the same values as the bisinc tables 000003 138 lctrmt bool 3 set for remote mode 000005 139 lcttwr bool 5 see if output is pending 000006 140 lctrrt bool 6 set for host mode (reset remote mode) 141 142 143 144 145 /* defined fctype test values */ 000001 146 srvmes bool 1 service message 000002 147 scrmes bool 2 special contrl record 000003 148 infmes bool 3 information message 149 150 151 152 /* defined operation code test values */ 000000 153 opnorq bool 0 no request 000002 154 optdat bool 2 transmite data 000004 155 opwait bool 4 wait tosend output 156 157 158 159 /* defined instruction code test values */ assm 01 09-28-82 16.926 g115_tables page 25 g115 - defined values 000000 160 noinst bool 0 no instruction 000002 161 select bool 2 select 000003 162 termin bool 3 terminate 000004 163 rdyfd bool 4 ready for disconnect 000005 164 notrfd bool 5 not ready for disconnect 000006 165 disc bool 6 disconnect 166 167 168 169 /* defined format codes */ 000102 170 sm102 bool 102 upper case b 000103 171 sm103 bool 103 upper case c 000104 172 scr104 bool 104 upper case d 000105 173 scr105 bool 105 upper case e 000110 174 inf110 bool 110 upper case h 000111 175 inf111 bool 111 upper case i 000112 176 inf112 bool 112 upper case j 000113 177 inf113 bool 113 upper case k 000115 178 inf115 bool 115 upper case m 179 180 181 /* defined scan masks */ 000007 182 opmask bool 7 000070 183 ackmsk bool 70 184 185 186 187 /* defined output chars */ 000027 188 chr027 bool 027 end of transmission block etb 000036 189 chr036 bool 036 record separator 000040 190 chr040 bool 040 ascii blank and slew top 000044 191 chr044 bool 044 ascii dollar sign 000052 192 chr052 bool 052 ascii asterisk 000101 193 chr101 bool 101 one transmit seq code 000100 194 chr100 bool 100 address/identification code 000103 195 chr103 bool 103 terminate,ack 000102 196 chr102 bool 102 transmit data op,ack 000061 197 chr061 bool 061 scr - abort code 000010 198 chr010 bool 010 nak bit in operation code 000104 199 chr104 bool 104 ready for disconnect code 000105 200 chr105 bool 105 upper case e 000111 201 chr111 bool 111 upper case i 000112 202 chr112 bool 112 upper case j 000114 203 chr114 bool 114 upper case l and printer mc 000116 204 chr116 bool 116 upper case n and teleprinter mc 000117 205 chr117 bool 117 upper case o and printer mc 000123 206 chr123 bool 123 upper case s 000124 207 chr124 bool 124 upper case t 000125 208 chr125 bool 125 upper case u 000131 209 chr131 bool 131 upper case v assm 01 09-28-82 16.926 g115_tables page 26 g115 - defined values 211 gocase variable value and jump lists 00112 212 ginopt chstr (disc,rdyfd,select) 00114 213 ginout adrlst (gdis,grfd,gsel) end of binary card 00000004 214 215 00120 216 redop chstr (disc,rdyfd,termin,notrfd,select) 00123 217 redopj adrlst (gdis,grfd,gterm) 00127 218 srjmp adrlst (gdis,grfd1,gterm1,wrecnk) 00134 219 opotjm adrlst (gdis,grfd1,outtrm,wrecnk,gterm1) 220 00142 221 etxcmp chstr (actot2,actot3) 00144 222 etxjmp adrlst (getmor,getmor) 00147 223 wrjmp adrlst (output,output) 00152 224 sohjmp adrlst (gterm,gterm) 225 00155 226 otptfc chstr (srvmes,scrmes) 00157 227 otptfj adrlst (otckop,otcksc) 00162 228 redjmp adrlst (redsrv,scrrcv) 229 00165 230 wextmd chstr (actinp,inact,inact1,actot1,actot2,actot3,inact3,inact4,i 00165 231 etc nact2,inact5) end of binary card 00000005 00173 232 wextjp adrlst (gredin,gidle,gdis,outsrv,output,output,gterm,gterm,gdis 00173 233 etc ,endtrm) 00206 234 sctjmp adrlst (ginlop,gidle,gdis,gout,goodsc,goodsc,gterm1,endtr1,gdis, 00206 235 etc endtr1) 236 00221 237 fccmp chstr (sm102,sm103,scr104,scr105,inf110,inf111,inf112,inf113,in 00221 238 etc f115) 00226 239 fcjmp adrlst (fcsm,fcsm,fcscr,fcscr,fcinf,fcinf,fcinf,fcinf,fcinf) end of binary card 00000006 240 00240 241 opck chstr (select,termin) 00242 242 opjmp adrlst (gckret,gckret) 243 00245 245 scrcmp chstr (chr101,chr102,chr103,chr104,chr105,chr117) 00251 246 scrjmp adrlst (scra,scrqut,scrqut,scrd,scre,scro) 247 00260 248 norcmp chstr (inact1,inact2,inact3,inact4,inact5) 00263 249 norjmp adrlst (gdis,gdis,gterm1,endtr1,endtr1) 250 00271 251 trmcmp chstr (inact,inact5,inact4) 00273 252 trmjmp adrlst (gidle,endtrm) 00276 253 trmabt adrlst (gterm,endtr1,gterm1) 254 00302 255 msgcmp chstr (fsoh,fetx,lngmsg,discrd) end of binary card 00000007 00305 256 msgjmp adrlst (ftfsoh,ftfetx,flong,gwrdrd) 257 00312 258 otptoc chstr (opnorq,optdat) assm 01 09-28-82 16.926 g115_tables page 27 g115 - defined values 00314 259 otptoj adrlst (goodot,goodot) 260 00317 261 outopt chstr (noinst,disc,rdyfd) 00321 262 outopj adrlst (goutpt,gdis,grfd) 263 00325 264 msglcm chstr (actinp,actot3,inact3,inact4,inact5) 00330 265 msgljm adrlst (synbld,synbld,synbld,synbld,synbld) assm 01 09-28-82 16.926 g115_tables page 28 g115 - defined values 268 /* canned output messages */ 00336 269 tdomsg chstr (soh,inf110,null,chr100,chr102,chr100,stx,etx,seteom) 00343 270 tnkmsg chstr (soh,inf110,null,chr100,chr112,chr100,stx,etx,null,seteom 00343 271 etc ) 00351 272 synmsg chstr (syn,syn,syn,syn) end of binary card 00000008 00354 273 trmmsg chstr (soh,sm102,null,chr100,chr103,chr100,stx,etx,seteom) 00361 274 selmsg chstr (soh,sm102,null,chr100,chr102,chr100,stx,etx,seteom) 00366 275 rfdmsg chstr (soh,sm102,null,chr100,chr104,chr100,stx,etx,seteom) 00373 276 tdormt chstr (soh,sm102,null,chr100,chr100,chr100,stx,etx,seteom) 00400 277 tdack chstr (soh,inf110,null,chr100,chr100,chr100,stx,etx,seteom) 00405 278 wakmsg chstr (soh,inf110,null,chr100,chr104,chr100,stx,etx,seteom) 00412 279 dismsg chstr (soh,scr104,null,chr100,chr100,chr100,stx,chr116,chr104,c 00412 280 etc hr111,chr123,chr036,etx,seteom) end of binary card 00000009 00422 281 ndamsg chstr (soh,inf110,null,chr100,chr102,chr100,stx,chr116,chr116,c 00422 282 etc hr117,chr040,chr104,chr101,chr124,chr101,chr036,etx,seteo 00422 283 etc m) 00434 284 dlrout chstr (soh,scr104,null,chr100,chr100,chr100,stx,chr116,chr044,c 00434 285 etc hr052,chr044,chr117,chr125,chr124,chr036,etx,seteom) 286 287 288 289 /* outscn contrl lists */ 00445 290 octrl1 chstr (rescan,search,soh,ignore,ignore,replac,xmtsc) 00451 291 octrl2 chstr (rescan,search,soh,ignore,strlrc,search,etx,ignore,outlrc 00451 292 etc ,ignore,replac,null) 00460 293 octrl3 chstr (rescan,search,soh,ignore,ignore,ignore,ignore,setbit,chr 00460 294 etc 010) 00465 295 octrl4 chstr (rescan,search,soh,ignore,ignore,ignore,ignore,offbit,ack 00465 296 etc msk) end of binary card 00000010 00472 297 octrl5 chstr (rescan,search,soh,ignore,strlrc,search,chr027,ignore,out 00472 298 etc lrc,ignore,replac,null) 00501 299 octrl6 chstr (rescan,search,soh,ignore,strlrc,search,eot,ignore,outlrc 00501 300 etc ,ignore,replac,null) 301 302 303 304 /* inscan contrl lists */ 00510 305 adrscn chstr (rescan,search,soh,ignore,ignore,ignore,movchr,tibchr) 00515 306 fcscan chstr (movchr,fctype) 00517 307 ictrl1 chstr (rescan,search,stx,ignore,ignore,match,chr061) 00523 308 ictrl2 chstr (rescan,search,soh,ignore,strlrc,search,etx,ignore,cmplrc 00523 309 etc ,replac,null) 00531 310 ictrl4 chstr (ignore,movchr,seqcde,ignore,ignore,movmsk,optype,opmask, 00531 311 etc movmsk,acknak,ackmsk) 00537 312 ictrl6 chstr (search,stx,ignore,count,incnt,search,etx) end of binary card 00000011 00543 313 ictrl7 chstr (rescan,search,soh,ignore) 00546 314 ictrl9 chstr (rescan,search,stx,ignore,count,incnt,search,chr027) assm 01 09-28-82 16.926 g115_tables page 29 g115 - defined values 00553 315 icldlr chstr (rescan,search,stx,ignore,ignore,match,chr044,ignore,matc 00553 316 etc h,chr052,ignore,match,chr044,ignore,movchr,scrchr,ignore) 00564 317 iclabt chstr (match,chr102,ignore,match,chr124) 00567 318 iclout chstr (match,chr125,ignore,match,chr124) 00572 319 icldis chstr (match,chr111,ignore,match,chr123) 00575 320 iclend chstr (match,chr116,ignore,match,chr104) assm 01 09-28-82 16.926 new g115 tables page 30 g115 line initialization 00600 323 gstar tstflg tfacu,acutst must dial phone first 00604 324 tstflg tflisn,glisn see if 68/80 told us to listen end of binary card 00000012 00610 325 wait 0,0,begin if not wait for him to tell us 326 327 328 00614 329 glisn contrl sdtr+stat set our minimum leads needed 00616 330 wait 0,0,gntint wait for 115 or hangup order 331 we only need to see if modem is there, 332 we dont care if the phone rings or not since 333 dtr is set up before we look at the line 00622 334 status dsr,0,gonlin we have the terminal 00626 335 g15acu nullop return here after acu dials up 00627 336 gonlin tstflg tfdlup,setdpx cluge to set duplex until cmf is updated 00633 337 setflg tffdpx force that we are full duplex if not dialup 00636 338 contrl srts+stat full duplex 00640 339 wait 0,0,gntint wait for cd and cts 00644 340 status cd+cts,0,gtell have full duplex line 00650 341 setdpx clrflg tffdpx force that we are half duplex if dialup 00653 342 gtell getext ,errtib get tib extension end of binary card 00000013 00656 343 setcct cct.3 get default cct 00660 344 clrlcf gflags,trmchr+rmtcmp make sur 00663 345 setlcl dlytim,8 set delay to assume host timing 00666 346 calsub dmpall and no output 00670 347 signal dialup finally tell moma we are here 00672 348 setchr modtyp,inact we are doing nothing yet 00674 349 setflg tfmrcv only need space for one msg 00677 350 goto gidle go do our thing 351 352 00701 353 errtib goto ghangn cant do a thing without it 354 at this time the only other thing is to punt 355 but we dont want to take everybody with us assm 01 09-28-82 16.926 new g115 tables page 31 g115 idle loop 00703 357 gidle tstflg tfhang,ghang see if 68/80 told us to hangup 00707 358 setlcl bsyinc,0 just incase we fell out while stalling 00712 359 tstlcf gflags,trmchr,gottst if terminated, ok to output 00716 360 girec setflg tfcrcv only looking for a select msg 00721 361 contrl srec+rxmit set to receive mode 00723 362 setime 5 give 115 5 seconds to talk end of binary card 00000014 00725 363 wait gidle,gidle,gtest wait to see what happend first 00731 364 status brkchr,0,gin got something from 115 00735 365 status 0,dsr,ghang 115 went home early 00741 366 status parity,0,gipar ignor bad data here 00745 367 status exh,0,exhlim we ate too much 368 00751 369 gottst tstwrt gout got data to give out 00753 370 goto girec no so go check receive now 371 00755 372 gipar meter1 m.par,1 00760 373 stpchn whooo horse 00762 374 dumpin and throw the garbage out 00763 375 goto gidle assm 01 09-28-82 16.926 new g115 tables page 32 g115 input from remote routine 00765 377 gin contrl rrec+smark get out of rec mode 00767 378 wait 0,0,gtest 00773 379 status marker,0,ginset end of binary card 00000015 00777 380 status exh,0,exhlim 01003 381 status 0,dsr,ghang 382 01007 383 ginset calsub gckin see what we got 01011 384 cmpchr fctype,srvmes,ginput did we get a select msg 01014 385 ginbad dumpin no so forget it 01015 386 goto gidle 01017 387 ginput gocase optype,ginopt,ginout have something but what is it 01023 388 goto ginbad nothing that we want 389 01025 390 gsel dumpin throw out select msg 01026 391 setchr prevsc,seqcde save seq code we got 01030 392 goto rednda go ack select or do output 393 394 395 396 return here after remote responds 397 with next input 01032 398 gredin gocase fctype,otptfc,redjmp see what data was sent us 01036 399 cmpchr incnt,null,rednda if no chars dont give it to anybody 01041 400 ginlop calasm ckibsy see if dia has completed last input yet end of binary card 00000016 01044 401 tstflg tfhang,ghang are we going home now? 01050 402 tstlcl msgchk,1,gbusy if msgchk is one, dia has not finished 01054 403 tstlcl bsyinc,0,shipit if 0 have msg to send in 01060 404 dumpin else have not got new msg yet 01061 405 goto rednda and since channel was still in receive 406 should dump and not send in possible noise 01063 407 shipit meterm 0 record input message 01065 408 sendin give it to 68/80 01066 409 rednda setchr modtyp,actinp we are active input 01070 410 setlcl bsyinc,0 we are not stalling now 01073 411 clrlcf gflags,rtntry say first try 01076 412 setlcl rtnlbl,tdobld where to come for second try 01101 413 tdobld tstlcf gflags,rmtcmp,rmttdo if we are remote ack with no request msg 01105 414 bldmsg tdomsg,ftbld build xmit data msg 01110 415 goto gwrrd go output the msg end of binary card 00000017 416 01112 417 rmttdo cmpchr fctype,srvmes,rmtack if srv msg use srv msg no req as ack 01115 418 bldmsg tdack,ftbld else us info no req as ack 01120 419 goto gwrrd 420 01122 421 rmtack bldmsg tdormt,ftbld bld no req msg 01125 422 goto gwrrd 423 424 assm 01 09-28-82 16.926 new g115 tables page 33 g115 input from remote routine 01127 425 gbusy tstlcl bsyinc,0,bsysnd is this the first stall wait 01133 426 goto stalit if not, just go stall 01135 427 bsysnd meterm 0 01137 428 sendin if so move pending input to safe place from dumpi 01140 429 stalit meter2 m.cnt4,1 keep track of this 01143 430 tstlcf gflags,rmtcmp,rmtbsy if rmt we wak instead 01147 431 tstwrt gbusyo does mother have output? 01151 432 tstlcl bsyinc,12,bsyinp we waited 10 half seconds 01155 433 addlcl bsyinc,1 incr busy counter 01160 434 setime -500 give us a one half second to wait end of binary card 00000018 01162 435 wait ginlop,gbusyo,gtest wait and see what to do next 01166 436 status 0,dsr,ghang left us cold did he? 01172 437 status exh,0,exhlim dont allow data forced down our throat 438 01176 439 gbusyo cmpchr modtyp,actot3,gwrrd if still outputing just go do it 01201 440 setchr modtyp,actot3 output so say we are mixed io 01203 441 goto gwrrd go output 442 443 01205 444 bsyinp setlcl bsyinc,1 say we are still stalling 01210 445 setchr modtyp,actinp aviod confussion, this is an active input 01212 446 clrlcf gflags,rtntry say first try 01215 447 setlcl rtnlbl,tnklbl where to come for second try 01220 448 tnklbl bldmsg tnkmsg,ftbld nak last input as a stall since a wait 01223 449 goto gwrrd msg is not defined to the remote 450 01225 451 redsrv gocase optype,redop,redopj see what optype we have end of binary card 00000019 01231 452 dumpin not of interest 01232 453 goto rednda go try again 454 01234 455 rmtbsy setlcl bsyinc,1 we are stalling but who cares if were rmt 01237 456 clrlcf gflags,rtntry say first try 01242 457 setlcl rtnlbl,waklbl where to come for second try 01245 458 waklbl bldmsg wakmsg,ftbld send a wait msg 01250 459 goto gwrrd assm 01 09-28-82 16.926 new g115 tables page 34 output from main frame routine 01252 461 gout stpchn hold on boys our turn now 01254 462 dumpin throw it to the dogs 01255 463 clrlcf gflags,rtntry first time 01260 464 setlcl rtnlbl,selbld where to come for second try 01263 465 selbld bldmsg selmsg,ftbld try and get the line for us 01266 466 setchr modtyp,actot1 say we want the line 01270 467 goto gwrrd ship it! 468 469 470 come here after response to our select 01272 471 outsrv cmpchr fctype,srvmes,outopc if not service forget it unless multics to m 01275 472 tstlcf gflags,rmtcmp,cktdms if remote look for trans data msg end of binary card 00000020 01301 473 goto gout if not, try select again 474 01303 475 cktdms cmpchr fctype,infmes,outinf check for xmit data msg 01306 476 goto gout else try select again 477 01310 478 outinf dumpin if xmit data, input not dmped previously 01311 479 cmpchr optype,optdat,goutpt if xmit data, ok, if not bad 480 01314 481 outopc gocase optype,outopt,outopj see what type returned 01320 482 tstlcf gflags,rmtcmp,outrmt see if we are remote 01324 483 goto gout try again if not 01326 484 outrmt cmpchr optype,select,gsel if so we must give in 01331 485 goto gout else not what we expected 486 01333 487 goutpt meterm 1 count output message 01335 488 setchr modtyp,actot2 we are outputing data 01337 489 goto gwrrd 490 491 492 return point for outputing data 493 after we have the line from a select 01341 494 output gocase fctype,otptfc,otptfj see what function returned 01345 495 cmpchr incnt,null,outnch were any chars returned end of binary card 00000021 01350 496 dmpout get rid of the msg we sent 01351 497 goto ginlop assume that this is multics to multics 498 01353 499 outnch gocase optype,otptoc,otptoj if a norequest or trans data, good 01357 500 goto wrecnk if not bad 501 502 01361 503 otcksc dmpout clear our output msg first 01362 504 goto scrrcv go process special control record 505 01364 506 otckop gocase optype,redop,opotjm if so resync logical line 507 if terminate we want to send quit to 68/80 01370 508 goto wrecnk any other service msg is considered a nak 509 assm 01 09-28-82 16.926 new g115 tables page 35 output from main frame routine 510 01372 511 goodot dumpin throw out 115 return msg 01373 512 goodsc dmpout dump the output msg we are thru with it 01374 513 tstwrt morout more 68/80 output? 01376 514 cmpchr modtyp,actot3,ginlop if mixed io go back 01401 515 setimv dlytim give 7 secs to 01403 516 wait otck68,gwrrd,gtest wait for output from 68/80 01407 517 status 0,dsr,ghang 01413 518 status exh,0,exhlim watch for runaway channel end of binary card 00000022 01417 519 otck68 tstwrt gwrrd just made it for output, one last check 01421 520 tstlcf gflags,rmtcmp,rmtout are we remote 01425 521 goto gterm 01427 522 rmtout clrlcf gflags,rtntry 01432 523 setlcl rtnlbl,mulout 01435 524 mulout bldmsg dlrout,ftbld output the $*$out msg 01440 525 setchr modtyp,inact4 equal to a terminate 01442 526 goto gwrrd 527 01444 528 outtrm tstlcf gflags,rmtcmp,gterm1 if remote term means term 01450 529 goto scrqut else term means quit assm 01 09-28-82 16.926 new g115 tables page 36 g115 routine to write and then read the response 01452 531 morout meterm 1 meter next output message 01454 532 gwrrd calasm ckomsg go check the msg to output 01457 533 gocase msgchk,msgcmp,msgjmp see if msg was good or not 534 if we fall through it was good 01463 535 goto synlbl and go and the syn chars end of binary card 00000023 01465 536 gwrdrd dmpout dump the bad first part of the msg 01466 537 synlbl clrlcf gflags,rtntry first time 01471 538 setlcl rtnlbl,synbld where to come for second time 01474 539 clrflg tfcrcv reset for idle may have set it again 01477 540 gocase modtyp,msglcm,msgljm if inputing get bigger buffer 01503 541 setflg tfcrcv else only expect a control msg 01506 542 synbld bldmsg synmsg,ftbld add 4 syn chars to front of msg 01511 543 cmpchr modtyp,actinp,ckstal see if inputing 01514 544 goto notstl if not skip all this garbage 01516 545 ckstal tstlcl bsyinc,0,notstl see if stalling 01522 546 holdot save this for possible re-xmit 01523 547 goto wckdpx if so, send an erroneous msg so the level 6 will 548 send the msg again with a nak and we with 549 selectivly throw that msg away as a stall 550 since the host does not have a defined wait 01525 551 notstl scntr 0 init retry cntr to 0 01527 552 clrlcf gflags,xnak internal, first time always acking 01532 553 cmpchr xmtsc,chr101,seqcd2 deside on which seq cd to use end of binary card 00000024 01535 554 setchr xmtsc,chr101 use #1 01537 555 goto setsqc go set the seq code 01541 556 seqcd2 setchr xmtsc,chr102 have 1 so set it to #2 01543 557 setsqc outscn octrl1,ftfsoh place seq code 01546 558 clrlcf gflags,rtntry first time 01551 559 setlcl rtnlbl,setlrc where to come for second time 01554 560 setlrc outscn octrl2,lrcetx set lrc character 01557 561 holdot save output for rexmit if neccessary 01560 562 goto wckdpx do the output 01562 563 lrcetx outscn octrl5,ftbld no etx,try etb 01565 564 holdot save this for xmit again latter 01566 565 goto wckdpx go do our thing 566 01570 567 lrceot outscn octrl6,ftbld no etb, try eot, else give up 01573 568 holdot 569 570 01574 571 wckdpx clrlcf gflags,early looking for new response 01577 572 tstflg tffdpx,wfdpx see which duplex to output with end of binary card 00000025 01603 573 contrl srts+stat half duplex 01605 574 setime 1 wait for 1 sec 01607 575 wait ftxmit,0,gtest for line to turn around 01613 576 status 0,dsr,ghang 01617 577 status cts,0,wgotln we got the line 01623 578 status exh,0,exhlim watch for runaway channel assm 01 09-28-82 16.926 new g115 tables page 37 g115 routine to write and then read the response 579 01627 580 wgotln dcwlst set up the dcw list 01630 581 cmd sxmit+srec go into xmit mode and possible response 01631 582 output (outmsg) send data out 01633 583 cmd sterm+rxmit wait for msg to go out 01634 584 wait 0,0,gtest wait for status change 01640 585 status 0,dsr,ghang 01644 586 status brkchr,0,elyrsp fast wasn't he. 01650 587 status exh,0,exhlim watch for runaway channel end of binary card 00000026 01654 588 status 0,cts,wrlost lost line so try again 01660 589 status term,0,wgood output terminated properly 590 01664 591 wgood contrl rrts+stat ready ourselves for input 01666 592 tstlcf gflags,early,lintrn already have our response 01672 593 setimv dlytim wait 7 secs 01674 594 wait norsp,0,gtest for a response 01700 595 status 0,dsr,ghang 01704 596 status cd,0,lintrn turned line properly 01710 597 status exh,0,exhlim watch for runaway channel 598 599 01714 600 wfdpx dcwlst bld dcw list for full dplx line 01715 601 cmd sxmit+srec ready for output and input for full dpx 01716 602 output (outmsg) go do it end of binary card 00000027 01720 603 cmd sterm+rxmit ready for response 01721 604 wait 0,0,gtest wait for output tp finish 01725 605 status 0,dsr,ghang 01731 606 status brkchr,0,elyrsp fast son-of-a-gun 01735 607 status exh,0,exhlim watch for runaway channel 01741 608 status term,0,lintrn output finished properly 609 01745 610 elyrsp setlcf gflags,early note that we have our response already 01750 611 waitm go finish what we were doing 612 01751 613 lintrn cmpchr modtyp,inact4,trmchk if trminate msg, say we did it 01754 614 goto rspwat else just go wait for response 01756 615 trmchk setchr modtyp,inact5 say we sent it and dont do it again 01760 616 rspwat tstlcf gflags,early,wrecrp already have our response 01764 617 contrl stat see if anything interesting has happened 01766 618 setimv dlytim give us 7 secs end of binary card 00000028 01770 619 wait norsp,0,gtest wait for a response 01774 620 status 0,dsr,ghang 02000 621 status brkchr,0,wrecrp got a response 02004 622 status parity,0,gwrpar nak bad parity 02010 623 status exh,0,exhlim we ate too much go dmp it 624 02014 625 wrecrp contrl rrec+smark get out of rec mode 02016 626 wait 0,0,gtest wait for rec to be reset assm 01 09-28-82 16.926 new g115 tables page 38 g115 routine to write and then read the response 02022 627 status marker,0,recrst then continue 02026 628 status exh,0,exhlim 02032 629 status 0,dsr,ghang end of binary card 00000029 630 02036 631 recrst calsub gckin see what we got 02040 632 cmpchr fctype,null,wrnak error in response 02043 633 cmpchr incnt,null,wcknak no data in response 02046 634 cmpchr seqcde,prevsc,wckxnk same seq code 02051 635 goto wsvsc response ok save seq code 636 02053 637 wckxnk tstlcf gflags,xnak,wcknak see if we really already processed it 02057 638 dumpin yes, (data msg with same seq code) dont need it 02060 639 setchr incnt,null keep things consistant 640 02062 641 wcknak cmpchr acknak,nak,wrecnk got a nak 642 02065 643 wsvsc setchr prevsc,seqcde save the seq code 02067 644 cmpchr fctype,srvmes,wsvmes service msg 02072 645 cmpchr optype,opwait,wopwt need to wait 7 secs 02075 646 wrtok gocase modtyp,etxcmp,wrjmp output msg sent ok 02101 647 dmpout we dont need it any more 02102 648 gocase modtyp,wextmd,wextjp exit based on mode end of binary card 00000030 02106 649 goto badmod 650 651 02110 652 gwrpar meter1 m.par,1 02113 653 stpchn bad parity so throw it away 02115 654 dumpin 02116 655 goto wrnak and nak the msg 656 02120 657 wsvmes gocase modtyp,etxcmp,wrjmp if active output, let output decide what to d 02124 658 gocase optype,redop,srjmp see if srv msg needs processing 02130 659 goto wrtok message received ok 660 02132 661 wopwt dumpin throw away the wait message 02133 662 meter2 m.cnt4,1 02136 663 outscn octrl4,ftfsoh set ack in byte 02141 664 setimv dlytim set time for 7 secs 02143 665 wait wckdpx,0,gtest re-xmit after 7 secs 02147 666 status 0,dsr,ghang 02153 667 status exh,0,exhlim watch for runaway channel end of binary card 00000031 668 02157 669 wrecnk dumpin finished with input msg 02160 670 setchr incnt,null just to keep info consistant 02162 671 outscn octrl4,ftfsoh set ack in ic byte 02165 672 clrlcf gflags,xnak internal to say we are acking 02170 673 cmpchr modtyp,actinp,ckbyin in inputing, check some more 02173 674 goto wrlost keep triing until he says ok assm 01 09-28-82 16.926 new g115 tables page 39 g115 routine to write and then read the response 675 02175 676 ckbyin tstlcl bsyinc,0,wrlost if not busy bad msg 02201 677 dmpout cleanup the msg we forced out 02202 678 goto ginlop else things are backing up 679 02204 680 norsp meter2 m.cnt3,1 02207 681 gocase modtyp,norcmp,norjmp level 6 may or may not answer our msg 02213 682 goto wrlost get back to idle state 683 684 02215 685 wrnak outscn octrl3,ftfsoh set nak bit in ic byte 02220 686 setlcf gflags,xnak internal to say we are naking end of binary card 00000032 02223 687 wrlost meter2 m.cnt2,1 02226 688 acntr 1 bump retry counter 02230 689 tcntr 10,ftxmit too many xmition failures 02233 690 goto wckdpx go try again assm 01 09-28-82 16.926 new g115 tables page 40 routine to test orders from main frame 02235 692 gtest tstflg tfhang,ghang told to hangup 02241 693 tstflg tfwabt,gpgwrt write abort, purge output 02245 694 tstflg tfrabt,gpginp read abort,purge input 02251 695 linctl ctlop,tstret if no line control order just return 02254 696 tstlcl ctlop,lcttwr,gtstot see if output pending for him 02260 697 tstlcl ctlop,lctrmt,gtstrc are we to set remote mode 02264 698 tstlcl ctlop,lctrrt,gtstrr are we ro reset remote mode 02270 699 setlcl ctlop,notimp else line control order not implemented end of binary card 00000033 02273 700 setlcl ctlop1,0 set second 18 bits 02276 701 setlcl ctlop2,0 zero 3rd 18 bits 02301 702 setlcl ctlop3,0 zero 4th 18 bits 02304 703 linsta ctlop go tell 68/80 we have no response 02306 704 tstret waitm not interested in anything else 705 706 02307 707 gntint tstflg tfhang,ghangn hangup without tib ext 02313 708 waitm dont care 709 710 02314 711 gpgwrt stpchn hold on for a second 02316 712 calsub dmpall purge all output 02320 713 clrflg tfwabt reset this flag 02323 714 tstflg tfrabt,gpginp see if read abort also is set 02327 715 gocase modtyp,trmcmp,trmabt if teminating dont re-xmit 02333 716 goto gterm send terminate msg 717 718 02335 719 gpginp stpchn stop everything here also 02337 720 dumpin purge all input 02340 721 clrflg tfrabt reset this flag end of binary card 00000034 02343 722 gocase modtyp,trmcmp,trmabt if terminating dont re-xmit 02347 723 goto gterm 724 725 726 02351 727 gtstot tstwrt tstsot if pending output tell 68/80, he asked us 02353 728 setlcl ctlop,0 say we have no data 02356 729 goto gtstrt go return the info 02360 730 tstsot setlcl ctlop,otpend say we have output pending 02363 731 gtstrt setlcl ctlop1,0 set second 18 bits 02366 732 setlcl ctlop2,0 zero 3rd 18 bits 02371 733 setlcl ctlop3,0 zero 4th 18 bits 02374 734 linsta ctlop go tell 68/80 his answer 02376 735 waitm go back from where we came 736 02377 737 gtstrc setlcf gflags,rmtcmp+trmchr say to act as remote 02402 738 setlcl dlytim,6 set timer as if we are remote 02405 739 waitm 740 assm 01 09-28-82 16.926 new g115 tables page 41 routine to test orders from main frame 02406 741 gtstrr clrlcf gflags,rmtcmp say to act as host end of binary card 00000035 02411 742 setlcl dlytim,8 set timer as if host 02414 743 waitm assm 01 09-28-82 16.926 new g115 tables page 42 routines to give main frame a status indication 02415 745 ftbld tstlcf gflags,rtntry,bldfld see if we tried this before 02421 746 setime 1 if not wait 1 sec and try again 02423 747 wait bldwt,0,gtest 02427 748 status 0,dsr,ghang watch out 02433 749 bldwt setlcf gflags,rtntry say we tried this once 02436 750 gotov rtnlbl go try again 02440 751 bldfld meter2 m.cnt8,1 02443 752 setlcl ctlop,fbld failure to bld message for output 02446 753 setlcl ctlop1,0 zero second 18 bits 02451 754 setlcl ctlop2,0 zero 3rd 18 bits 02454 755 setlcl ctlop3,0 zero 4th 18 bits end of binary card 00000036 02457 756 linsta ctlop give this status to host 02461 757 goto ghang go hangup the line can do nothing 758 02463 759 ftxmit meter2 m.cnt5,1 02466 760 setlcl ctlop,fxmit unable to send good output 02471 761 setlcl ctlop1,0 zero second 18 bits 02474 762 setlcl ctlop2,0 zero 3rd 18 bits 02477 763 setlcl ctlop3,0 zero 4th 18 bits 02502 764 linsta ctlop give this status to host 02504 765 goto gterm1 cleanup and idle 766 02506 767 ftfsoh meter2 m.cnt6,1 02511 768 setlcl ctlop,fsoh failure to find soh on output msg 02514 769 setlcl ctlop1,0 zero second 18 bits 02517 770 setlcl ctlop2,0 zero 3rd 18 bits 02522 771 setlcl ctlop3,0 zero 4th 18 bits 02525 772 linsta ctlop tell 68/80 end of binary card 00000037 02527 773 dmpout get rid of bad msg 02530 774 gocase modtyp,etxcmp,sohjmp if from 68/80 his problem 02534 775 goto ghang else our problem 776 02536 777 ftfetx meter2 m.cnt6,1 02541 778 gocase modtyp,etxcmp,etxjmp if output from mother it is her problem 02545 779 setlcl ctlop,fetx failure to find ext in canned output msg 02550 780 setlcl ctlop1,0 0 second 18 02553 781 setlcl ctlop2,0 zero 3rd 18 bits 02556 782 setlcl ctlop3,0 zero 4th 18 bits 02561 783 linsta ctlop say we have a problem 02563 784 goto ghang so forget this whole bussiness 02565 785 getmor signal sndout ask for more data please 02567 786 setimv dlytim give 68/80 7 seconds to come up with something 02571 787 wait nomore,morout,gtest if not, dump and terminate end of binary card 00000038 02575 788 status 0,dsr,ghang watch out 02601 789 status exh,0,exhlim watch for runaway channel 02605 790 nomore calasm ckochn one last chance to see if sliped in before wait 02610 791 tstlcl outchn,0,gterm1 if 0 68/80 did not give more so dump it 02614 792 goto gwrrd else we got more so go try to output this assm 01 09-28-82 16.926 new g115 tables page 43 routines to give main frame a status indication 793 794 02616 795 badmod setlcl ctlop,fmod say we have a bad mode in tib 02621 796 setlcl ctlop1,0 zero second 18 bits 02624 797 setlcl ctlop2,0 zero 3rd 18 bits 02627 798 setlcl ctlop3,0 zero 4th 18 bits 02632 799 linsta ctlop tell host about our confussion 02634 800 calsub dmpall start with a clean slate 02636 801 dumpin also dump the input 02637 802 goto gterm 803 804 02641 805 flong meter2 m.cnt7,1 end of binary card 00000039 02644 806 setlcl ctlop,lngmsg message was too long 02647 807 setlcl ctlop1,0 zero 2nd 18 bits 02652 808 setlcl ctlop2,0 zero 3rd 18 bits 02655 809 setlcl ctlop3,0 zero 4th 18 bits 02660 810 linsta ctlop tell 68/80 02662 811 dmpout get rid of bad msg 02663 812 gocase modtyp,etxcmp,sohjmp if from 68/80 go terminate 02667 813 goto ghang else our problem so hangup assm 01 09-28-82 16.926 new g115 tables page 44 routines to end a dialog 02671 815 gterm1 dmpout if had no resp must dmp our msg 02672 816 gterm dumpin throw away the input 02673 817 gocase modtyp,trmcmp,trmjmp already terminated or "ing" 02677 818 setchr modtyp,inact4 end of input or output 02701 819 setlcf gflags,trmchr set the terminate flag 02704 820 clrlcf gflags,rtntry say first time 02707 821 setlcl rtnlbl,trmbld where to come for second try 02712 822 trmbld bldmsg trmmsg,ftbld set up terminate msg end of binary card 00000040 02715 823 goto gwrrd go output term msg 824 02717 825 endtr1 dmpout if no resp must dmp out output 02720 826 endtrm dumpin make sure we are clean 02721 827 setchr modtyp,inact say we are truely inactive 02723 828 goto gidle go rest for a while 829 830 831 02725 832 gdis stpchn received disconnect 02727 833 dumpin get rid of input if any 02730 834 calsub dmpall get rid of all output 02732 835 clrlcf gflags,trmchr lets reset things 02735 836 setchr modtyp,inact we are now inactive 02737 837 goto gidle go rest 838 839 840 02741 841 grfd1 dmpout dump out old msg we had sent 02742 842 grfd dumpin ready for disconnect 02743 843 clrlcf gflags,rtntry first time 02746 844 setlcl rtnlbl,rfdbld where to come for second try 02751 845 rfdbld bldmsg rfdmsg,ftbld generate rfd msg in response 02754 846 setchr modtyp,inact2 set this mode 02756 847 goto gwrrd go put the msg out assm 01 09-28-82 16.926 new g115 tables page 45 processing of special control records 02760 849 scrrcv cmpchr incnt,3,scrabt only 3 chars returned end of binary card 00000041 02763 850 goto scrmor if more or less further checking 02765 851 scrabt inscan ictrl1,passin abort msg? 02770 852 goto scrqut abort so go quit 02772 853 scrmor inscan icldlr,passin check for $*$ in this record 02775 854 gocase scrchr,scrcmp,scrjmp go check this special control record 03001 855 goto passin nothing we expected so give it to multics 856 03003 857 scra inscan iclabt,passin check for abort msg 03006 858 goto scrqut if so go quit 68/80 03010 859 scro inscan iclout,passin check for out msg 03013 860 setlcf gflags,trmchr yes so set terminate flag 03016 861 dumpin we are through with it 03017 862 tstwrt gterm if output, go do it now 03021 863 setime 5 give us 5 secs to 03023 864 wait noout,gterm,gtest wait for output 865 if no data send not data msg 03027 866 status 0,dsr,ghang self explanitory end of binary card 00000042 03033 867 status exh,0,exhlim watch for runaway channel 03037 868 noout setchr modtyp,inact3 waiting for response from no data 03041 869 clrlcf gflags,rtntry first time 03044 870 setlcl rtnlbl,bldnda where to come to try again 03047 871 bldnda bldmsg ndamsg,ftbld build no data msg 03052 872 goto gwrrd go output it 873 03054 874 scrd inscan icldis,passin check fr a disconnect msg 03057 875 setchr modtyp,inact1 we are in process of disconnecting 03061 876 dumpin get rid of old dis msg 03062 877 clrlcf gflags,rtntry first try 03065 878 setlcl rtnlbl,disbld where to come for second try 03070 879 disbld bldmsg dismsg,ftbld bld our own dis msg to the 115 03073 880 goto gwrrd go output our disconnect 881 03075 882 scre inscan iclend,passin check for an end msg end of binary card 00000043 03100 883 goto gterm if so go terminate 884 03102 885 exhlim meter2 m.exh,1 03105 886 stpchn hold everything, its too much 887 and start over again 03107 888 scrqut dumpin get rid of msg 03110 889 signal quit quit to 68/80 03112 890 calsub dmpall dump all the output 03114 891 goto gterm go terminate this dialog 892 03116 893 passin cmpchr incnt,null,scrrtn nothing to give 68/80 03121 894 cmpchr modtyp,actinp,scrrtn if actinp let input do the sendins 03124 895 sendin give it to the 68/80 03125 896 scrrtn gocase modtyp,wextmd,sctjmp go back assm 01 09-28-82 16.926 new g115 tables page 46 processing of special control records 03131 897 goto badmod bad data in tib assm 01 09-28-82 16.926 new g115 tables page 47 routine to hangup the line 03133 899 ghang retext release the tib extension 03134 900 ghangn contrl rxmit+rrec+rdtr+rrts lower all the contrl lines 03136 901 setime 5 wait 5 secs for modem to follow 03140 902 wait ghg,0,0 03144 903 status 0,dsr,ghg modem did its thing end of binary card 00000044 03150 904 ghg stpchn make sure all is stopped 03152 905 signal hangup tell momma he went home 03154 906 calsub dmpall purge all output buffers 03156 907 dumpin purge input buffer 03157 908 clrflg tfhang reset flag for next time 03162 909 goto hungup back to main contrl tables 910 thats all folks! assm 01 09-28-82 16.926 new g115 tables page 48 subroutine to insure all output is dumped 03164 912 dmpall dmpout throw output buffer away 03165 913 tstwrt dmpall still have some left 03167 914 retsub return to caller assm 01 09-28-82 16.926 new g115 tables page 49 subroutine to check for data remote sent to us 03170 916 gckin inscan ictrl2,gbadin check lrc on input 03173 917 calasm stpbcc go strip the bcc character from the buffer 03176 918 inscan ictrl7,gbadin find soh 03201 919 inscan fcscan,gbadin get the msg type to a tib addr 03204 920 gocase fctype,fccmp,fcjmp go to type of msg it is 03210 921 goto gbadin not a valid function code type 922 03212 923 fcsm setchr fctype,srvmes service msg 03214 924 goto gckcnt go check the rest end of binary card 00000045 03216 925 fcscr setchr fctype,scrmes special record msg 03220 926 goto gckcnt 03222 927 fcinf setchr fctype,infmes information msg 03224 928 gckcnt inscan ictrl4,gbadin save seq code, op type, and ack 03227 929 cmpchr acknak,null,setack see if we got ack in msg 03232 930 setchr acknak,nak no so say nak 03234 931 goto gack go get the cnt 03236 932 setack setchr acknak,ack yes we got an ack 03240 933 gack inscan ictrl6,gcketb count the chars we got 03243 934 goto gcksrv see if srv msg needs more checks 03245 935 gcketb inscan ictrl9,gbadin ck for etb if no etx 03250 936 gcksrv cmpchr fctype,srvmes,cksrv see if further checking required 03253 937 retsub no so go back 03254 938 cksrv gocase optype,opck,opjmp see if srvmes to be saved 03260 939 dumpin no so dump it 03261 940 gckret retsub return to caller 941 03262 942 gbadin dumpin get rid of bad msg 03263 943 setchr fctype,null say we got error end of binary card 00000046 03265 944 setchr optype,null same here 03267 945 setchr acknak,nak nak the msg 03271 946 meter2 m.cnt1,1 03274 947 retsub go back assm 01 09-28-82 16.926 new g115 tables page 50 subroutine to check for completion of dia input 949 * 950 * 951 * subroutine to check the dia input chain to see if one exists 952 * if it does, it is assumed that we are taking data faster than 953 * we can give it to the 68/80 and we must slow down by 954 * doing something else and checking again later. 955 * 956 * 03275 957 ckibsy subr cki 03300 0 50 272 3572 958 stx3 svx3-* save x3 03301 673 765 0 959 ila msgchk get tib addr of place to store result 03302 4333 00 0 960 cax3 move that tib addr to x3 03303 4 10 313 3616 961 tsy ckmcad-*,* call cvaddr to get real addr 03304 0 50 300 3604 962 stx3 ckmans-* save this addr to store status 03305 4 56 277 3604 963 stz ckmans-*,* init the status to 0 03306 1 20 026 0 964 szn t.dcp,1 set zero flag if no 68/80 input pending 03307 0 74 002 3311 965 tze ckirtn-* not busy so just return 03310 4 76 274 3604 966 aos ckmans-*,* else set it to one (fspr) 03311 0 41 261 3572 967 ckirtn ldx3 svx3-* restore x3 03312 968 return ckibsy assm 01 09-28-82 16.926 new g115 tables page 51 subroutine to check for any addtional output 970 * 971 * 972 * subroutine to check to see if dia_man has appended any addtional 973 * output to our output chain since we last looked at it. dia_man will 974 * not notify us if he appended stuff to an already existing chain, so 975 * we have to check for the appending ourselves 976 * 977 * 03314 978 ckochn subr cko 03317 0 50 253 3572 979 stx3 svx3-* save x3 03320 673 764 0 980 ila outchn get tib addr of place to get buffer addr 03321 4333 00 0 981 cax3 move this tib addr to x3 03322 4 10 274 3616 982 tsy ckmcad-*,* convert tib addr to real addr 03323 0 50 262 3605 983 stx3 ckmout-* save addr of variable for later use 03324 4 41 261 3605 984 ldx3 ckmout-*,* get buffer through indirect 03325 3 07 000 0 985 lda bf.nxt,3 get addr of the next buffer in the output chain 03326 4 17 257 3605 986 sta ckmout-*,* if not 0 we have more output 03327 0 41 243 3572 987 ldx3 svx3-* restore x3 03330 988 return ckochn assm 01 09-28-82 16.926 new g115 tables page 52 subroutine to adjust the buffer tally to not reflect the lrc 990 * 991 * 992 * subroutine to adjust the buffer tally to not reflect the lrc 993 * character in the tally of the buffer with the terminate 994 * character. 995 * 996 * 03332 997 stpbcc subr stp strip block chaeck char end of binary card 00000047 03335 0 50 235 3572 998 stx3 svx3-* save x3 03336 0 56 236 3574 999 stz prvbuf-* 03337 0 56 236 3575 1000 stz prsbuf-* 03340 0 56 254 3614 1001 stz prschr-* 03341 1 41 005 0 1002 ldx3 t.icp,1 get input chain 03342 0 74 073 3435 1003 tze stprtn-* if none, go back 03343 0 50 232 3575 1004 stpbuf stx3 prsbuf-* save addr of this input buffer 03344 3 07 001 0 1005 lda bf.flg,3 get flag word into a 03345 0 34 073 3440 1006 ana stpbrk-* and to get if brk char is here or not 03346 0 74 062 3430 1007 tze stpnxt-* if zero then use other buffer 03347 3 07 001 0 1008 lda bf.tly,3 get tally word into a 03350 0 34 245 3615 1009 ana tlymsk-* and separate character count 03351 0 74 064 3435 1010 tze stprtn-* must be error, forwe have term char here it said 03352 773 777 0 1011 iaa -1 char #1 is in 0 position 03353 0 17 241 3614 1012 sta prschr-* save the tally to add later 03354 0 34 066 3442 1013 ana stpodd-* see if even or odd 03355 0 74 005 3362 1014 tze stpevn-* it is even 03356 0 07 236 3614 1015 lda prschr-* get tally back 03357 0337 01 0 1016 ars 1 divide by 2 03360 0 37 061 3441 1017 ora stpbyt-* looking for odd byte since odd count 03361 0 71 004 3365 1018 tra stpdo-* go do the add 03362 0 07 232 3614 1019 stpevn lda prschr-* get tally back 03363 0337 01 0 1020 ars 1 divide by 2 03364 0 37 212 3576 1021 ora ckobyt-* looking for even byte 03365 0 17 227 3614 1022 stpdo sta prschr-* save for later use 03366 3333 00 0 1023 cx3a move buffer addr to a 03367 773 002 0 1024 iaa bf.dta incr to get real data 03370 0 37 206 3576 1025 ora ckobyt-* set to byte addring 03371 4333 00 0 1026 cax3 set x3 to this char addr 03372 0 40 222 3614 1027 adcx3 prschr-* set x3 to the char pointed to by tally 03373 3 07 200 0 1028 lda 0,3,b.0 load a with this char 03374 0 64 033 3427 1029 tnz stpntx-* either we were here already or lrc not checked 03375 0 41 200 3575 1030 ldx3 prsbuf-* get buffer back 03376 3 07 001 0 1031 lda bf.tly,3 get tally back to a 03377 773 777 0 1032 iaa -1 add -1 (substract 1) 03400 3 17 001 0 1033 sta bf.tly,3 and put it back decremented 03401 0 34 214 3615 1034 ana tlymsk-* just get the count end of binary card 00000048 03402 0 64 026 3430 1035 tnz stpnxt-* go look at the next buff if not zero count 03403 3 47 000 0 1036 ldq bf.nxt,3 if zero must release it 03404 0 41 170 3574 1037 ldx3 prvbuf-* get previous buffer 03405 0 74 030 3435 1038 tze stprtn-* error assm 01 09-28-82 16.926 new g115 tables page 53 subroutine to adjust the buffer tally to not reflect the lrc 03406 3 57 000 0 1039 stq bf.nxt,3 unthread the buffer we will free 03407 3 07 001 0 1040 lda bf.flg,3 get the flags for this buffer 03410 0 37 033 3443 1041 ora stplst-* say this is the real end of msg 03411 0 37 027 3440 1042 ora stpbrk-* say this is really where the break char is 03412 3 17 001 0 1043 sta bf.flg,3 put the modified flags back 03413 0 41 162 3575 1044 ldx3 prsbuf-* get back the buffer to be freed 03414 3 07 001 0 1045 lda bf.siz,3 get size code 03415 0337 17 0 1046 ars 15 get size code as interger 03416 773 001 0 1047 iaa 1 total # of 32 word groups 03417 0 17 025 3444 1048 sta stptly-* save num of icpl we need to subtract 03420 1 07 007 0 1049 lda t.icpl,1 get count of icp buffer lengths 03421 0 27 023 3444 1050 cmpa stptly-* just check to make sure 03422 0 75 013 3435 1051 tmi stprtn-* icpl less than number we calculated, error 03423 0 26 021 3444 1052 sba stptly-* substract out our buffer we are releasing 03424 1 17 007 0 1053 sta t.icpl,1 put back the correct tally 03425 473 000 0 1054 ilq 0 tell frebuf to use size code 03426 4 10 017 3445 1055 tsy stpfre-*,* go free this buffer 03427 0 41 146 3575 1056 stpntx ldx3 prsbuf-* get buffer base back to x3 (if fall through no ha 03430 0 07 145 3575 1057 stpnxt lda prsbuf-* get the old pres buff 03431 0 17 143 3574 1058 sta prvbuf-* and store it as a previous buff 03432 3 41 000 0 1059 ldx3 bf.nxt,3 else get addr of next buffer 03433 0 74 002 3435 1060 tze stprtn-* no more so return 03434 0 71 707 3343 1061 tra stpbuf-* go try this buffer now 03435 0 41 135 3572 1062 stprtn ldx3 svx3-* put back x3 03436 1063 return stpbcc 03440 020000 0 1064 stpbrk vfd o18/bffbrk break char flag 03441 3 00000 0 1065 stpbyt zero 0,b.1 odd byte addring 03442 000001 0 1066 stpodd vfd o18/1 looking at least significant bit (b17) 03443 040000 0 1067 stplst vfd o18/bfflst mask to set last buff in msg flag 03444 1068 stptly bss 1 total num of 32 word blocks in buffer 03445 0 05000 3 1069 stpfre ind frebuf to free a buffer assm 01 09-28-82 16.926 new g115 tables page 54 subroutine to check an output msg 1071 * 1072 * possibilities are 1073 * good msg transmit 1074 * particle msg ask multics for more 1075 * particle msg(s) followed 1076 * by good msg throw away particle msgs 1077 * msg > 324 text chars throw away 1078 * invalid msg throw away 1079 * 1080 * subroutine to check for a valid output message 1081 * a status is stored in the tib extension depending on the 1082 * result of our check. 1083 * gocase is then used to deside what to do with the status 1084 * 1085 * 03446 1086 ckomsg subr ckm end of binary card 00000049 03451 0 50 121 3572 1087 stx3 svx3-* save x3 03452 673 765 0 1088 ila msgchk get tib addr of place to put our result 03453 4333 00 0 1089 cax3 move that tib addr to x3 03454 4 10 142 3616 1090 tsy ckmcad-*,* call cvaddr to get real addr 03455 0 50 127 3604 1091 stx3 ckmans-* save the addr to store our answer 03456 673 764 0 1092 ila outchn our last buffer addr 03457 4333 00 0 1093 cax3 move this tib addr to x3 03460 4 10 136 3616 1094 tsy ckmcad-*,* get real addr to that variable 03461 0 50 124 3605 1095 stx3 ckmout-* place real addr in word to use later 03462 4 56 122 3604 1096 stz ckmans-*,* init answer to 0 and place it 03463 1 07 012 0 1097 lda t.ocp,1 get output chain 03464 0 74 103 3567 1098 tze ckmrtn-* no output so just return 03465 0 56 125 3612 1099 stz ckmflg-* init our found flag to 0 03466 0 56 105 3573 1100 stz lstbuf-* init last buffer address 03467 0 56 105 3574 1101 stz prvbuf-* init prev last msg buffer 03470 0 56 116 3606 1102 stz ckmcnt-* init character count of message 03471 0 17 104 3575 1103 ckmbuf sta prsbuf-* save base of present buffer 03472 4333 00 0 1104 cax3 save this buffer addr in x3 03473 3 07 001 0 1105 lda bf.tly,3 get number of chars in this data buffer 03474 0 34 121 3615 1106 ana tlymsk-* tally is low 9 bits 03475 773 001 0 1107 iaa 1 set our buffer overflow number 03476 0 17 101 3577 1108 sta ckmmax-* save our over flow number 03477 0 56 101 3600 1109 stz buftly-* set number of characters we start with 03500 3333 00 0 1110 cx3a get base of buffer back to a 03501 773 002 0 1111 iaa bf.dta get to first character in buffer 03502 0 37 074 3576 1112 ora ckobyt-* get to the 0 byte 03503 4333 00 0 1113 cax3 get this real addr to x3 for use 03504 0 76 074 3600 1114 ckmget aos buftly-* have scanned up another one in buffer 03505 0 07 073 3600 1115 lda buftly-* get our buffer characters read 03506 0 27 071 3577 1116 cmpa ckmmax-* see if we should switch to next buffer now 03507 0 64 006 3515 1117 tnz ckmsbf-* use the same buffer 03510 0 41 065 3575 1118 ldx3 prsbuf-* get our present buffer 03511 0 50 062 3573 1119 stx3 lstbuf-* save our present buffer for reference 03512 3 07 000 0 1120 lda bf.nxt,3 get next buffer addr assm 01 09-28-82 16.926 new g115 tables page 55 subroutine to check an output msg 03513 0 64 756 3471 1121 tnz ckmbuf-* if not zero we have a next buffer 03514 0 71 043 3557 1122 tra ckmmor-* else we are at end of string 03515 0 76 071 3606 1123 ckmsbf aos ckmcnt-* incr our character count 03516 0 07 075 3613 1124 lda ckmlen-* load a with max msg length end of binary card 00000050 03517 0 27 067 3606 1125 cmpa ckmcnt-* see if we are too long yet 03520 0 75 035 3555 1126 tmi ckmlng-* if so go notify 03521 3 07 200 0 1127 lda 0,3,b.0 get the character to check 03522 0 27 065 3607 1128 cmpa ckmetx-* see if we have an etx char 03523 0 74 040 3563 1129 tze ckmsta-* yes so msg is complete 03524 0 27 064 3610 1130 cmpa ckmetb-* see if we have an etb which is ok 03525 0 74 036 3563 1131 tze ckmsta-* yes so msg can be sent 03526 0 27 063 3611 1132 cmpa ckmeot-* see if eot char 03527 0 74 034 3563 1133 tze ckmsta-* yes so it is ok 03530 0 27 051 3601 1134 cmpa ckmsoh-* see if it is an soh char 03531 0 64 022 3553 1135 tnz ckmnxt-* no so go get the next char 03532 0 76 060 3612 1136 aos ckmflg-* say we found another soh char 03533 0 20 040 3573 1137 szn lstbuf-* see if first buffer we looked at 03534 0 74 017 3553 1138 tze ckmnxt-* first so dont discard it. 03535 0 50 057 3614 1139 stx3 prschr-* save our present character location 03536 0 20 036 3574 1140 szn prvbuf-* see if we had a previous last msg 03537 0 74 004 3543 1141 tze ckmset-* if not, go set this one 03540 0 41 034 3574 1142 ldx3 prvbuf-* get that previous buffer 03541 0 07 041 3602 1143 lda bftlsn-* load a with the last buf not flag 03542 3 32 001 0 1144 ansa bf.flg,3 set the last flag to 0 03543 0 41 030 3573 1145 ckmset ldx3 lstbuf-* go get our lst buffer 03544 0 50 030 3574 1146 stx3 prvbuf-* say we set one here 03545 0 56 041 3606 1147 stz ckmcnt-* restart our msg char cnt here 03546 673 011 0 1148 ila discrd say we have to dump 03547 4 17 035 3604 1149 sta ckmans-*,* save this status 03550 0 07 033 3603 1150 lda bftmsk-* load a with the last flag mask 03551 3 72 001 0 1151 orsa bf.flg,3 set the last flag 03552 0 41 042 3614 1152 ldx3 prschr-* go back to our present character 03553 373 300 0 1153 ckmnxt iacx3 0,b.1 incr to the next character 03554 0 71 730 3504 1154 tra ckmget-* go get the next character 03555 673 012 0 1155 ckmlng ila lngmsg message was too long 03556 0 71 004 3562 1156 tra ckmwan-* see if it was a msg at all 03557 0 07 016 3575 1157 ckmmor lda prsbuf-* get the addr of our last good buffer 03560 4 17 025 3605 1158 sta ckmout-*,* save this addr in our tib 03561 673 005 0 1159 ila fetx if we got here we didnt find an etx 03562 4 17 022 3604 1160 ckmwan sta ckmans-*,* place the answer we have so far 03563 0 20 027 3612 1161 ckmsta szn ckmflg-* see if we found at least one soh char 03564 0 64 003 3567 1162 tnz ckmrtn-* if we did skip next error msg 03565 673 004 0 1163 ila fsoh say we failed to find soh char end of binary card 00000051 03566 4 17 016 3604 1164 sta ckmans-*,* store our answer in the tib 03567 0 41 003 3572 1165 ckmrtn ldx3 svx3-* restore x3 to what it was 03570 1166 return ckomsg return to the caller 03572 1167 svx3 bss 1 save index3 03573 1168 lstbuf bss 1 last buffer we looked at 03574 1169 prvbuf bss 1 previous buffer we set last buf flag in assm 01 09-28-82 16.926 new g115 tables page 56 subroutine to check an output msg 03575 1170 prsbuf bss 1 addr of the present buffer we are in 03576 2 00000 0 1171 ckobyt zero 0,b.0 the first byte of the word 03577 1172 ckmmax bss 1 max number of chars + 1 we allowed in buff 03600 1173 buftly bss 1 char we are looking at in buffer 03601 000001 0 1174 ckmsoh vfd o18/soh soh character mask 03602 737777 0 1175 bftlsn vfd o18//bfflst last buff zeroed mask 03603 040000 0 1176 bftmsk vfd o18/bfflst last buff mask 03604 1177 ckmans bss 1 final addr to store our response 03605 1178 ckmout bss 1 final addr to store last output buffer in 03606 1179 ckmcnt bss 1 character count of msg 03607 000003 0 1180 ckmetx vfd o18/etx etx character 03610 000027 0 1181 ckmetb vfd o18/chr027 etb character 03611 000004 0 1182 ckmeot vfd o18/eot eot character 03612 1183 ckmflg bss 1 flag that we had found atleast one soh char 03613 000514 0 1184 ckmlen dec 332 max length of msg plus header, plus etx 03614 1185 prschr bss 1 our present character location in buffer 03615 000777 0 1186 tlymsk vfd o18/buftmk mask to get tally count 03616 0 04000 3 1187 ckmcad ind cvaddr external subroutine to get real tib addr end of binary card 00000052 assm 01 09-28-82 16.926 new g115 tables page 57 subroutine to check an output msg 1189 end 3620 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 09-28-82 16.929 new g115 tables page 58 octal symbol references by sequence no. 6 ack 52 52 932 70 ackmsk 183 183 296 311 463 acknak 84 84 311 641 929 930 932 945 1 actinp 110 110 231 264 409 445 543 673 894 3 actot1 112 112 231 466 4 actot2 113 113 221 231 488 10 actot3 114 114 221 231 264 439 440 514 3 acutst 44 323 2616 badmod 795 649 795 897 1 begin 41 325 20000 bffbrk 53 53 1064 40000 bfflst 53 53 1067 1175 1176 2 bf.dta 53 53 1024 1111 1 bf.flg 53 53 1005 1040 1043 1144 1151 0 bf.nxt 53 53 985 1036 1039 1059 1120 1 bf.siz 53 53 1045 1 bf.tly 53 53 1008 1031 1033 1105 3602 bftlsn 1175 1143 1175 3603 bftmsk 1176 1150 1176 2 b.0 1028 1127 1171 3 b.1 1065 1153 2440 bldfld 751 745 751 3047 bldnda 871 870 871 2433 bldwt 749 747 749 1000 brkchr 52 52 364 586 606 621 777763 bsyinc 98 98 358 403 410 425 432 433 444 455 545 676 1205 bsyinp 444 432 444 1135 bsysnd 427 425 427 3600 buftly 1173 1109 1114 1115 1173 777 buftmk 53 53 1186 0 cct.3 58 58 343 1 cd 52 52 340 596 1 chk 320 212 216 221 226 231 238 241 245 248 251 255 258 261 264 269 271 272 273 274 275 276 277 278 280 283 285 290 292 294 296 298 300 305 306 307 309 311 312 313 314 316 317 318 319 320 10 chr010 198 198 294 27 chr027 188 188 298 314 1181 36 chr036 189 189 280 283 285 40 chr040 190 190 283 44 chr044 191 191 285 316 52 chr052 192 192 285 316 61 chr061 197 197 307 100 chr100 194 194 269 271 273 274 275 276 277 278 280 283 285 101 chr101 193 193 245 283 553 554 102 chr102 196 196 245 269 274 283 317 556 103 chr103 195 195 245 273 104 chr104 199 199 245 275 278 280 283 320 105 chr105 200 200 245 111 chr111 201 201 280 319 112 chr112 202 202 271 116 chr116 204 204 280 283 285 320 assm 01 09-28-82 16.929 new g115 tables page 59 octal symbol references by sequence no. 117 chr117 205 205 245 283 285 123 chr123 206 206 280 319 124 chr124 207 207 283 285 317 318 125 chr125 208 208 285 318 104 chval 320 212 216 221 226 231 238 241 245 248 251 255 258 261 264 269 271 272 273 274 275 276 277 278 280 283 285 290 292 294 296 298 300 305 306 307 309 311 312 313 314 316 317 318 319 320 2 c.rcrq 51 51 52 40 c.rdtr 51 51 52 2 c.rrec 51 51 52 20000 c.rrqs 51 51 52 200 c.rsup 51 51 52 200 c.rtre 51 51 52 10 c.rxmt 51 51 52 1000 c.sbrk 51 51 52 1 c.scrq 51 51 52 20 c.sdtr 51 51 52 2000 c.smrk 51 51 52 1 c.srec 51 51 52 10000 c.srqs 51 51 52 100 c.ssup 51 51 52 400 c.stat 51 51 52 100 c.stre 51 51 52 4000 c.strm 51 51 52 4 c.sxmt 51 51 52 2175 ckbyin 676 673 676 3275 ckibsy 957 400 957 968 3311 ckirtn 967 965 967 3604 ckmans 1177 962 963 966 1091 1096 1149 1160 1164 1177 3471 ckmbuf 1103 1103 1121 3616 ckmcad 1187 961 982 1090 1094 1187 3606 ckmcnt 1179 1102 1123 1125 1147 1179 3611 ckmeot 1182 1132 1182 3610 ckmetb 1181 1130 1181 3607 ckmetx 1180 1128 1180 3612 ckmflg 1183 1099 1136 1161 1183 3504 ckmget 1114 1114 1154 3613 ckmlen 1184 1124 1184 3555 ckmlng 1155 1126 1155 3577 ckmmax 1172 1108 1116 1172 3557 ckmmor 1157 1122 1157 3553 ckmnxt 1153 1135 1138 1153 3605 ckmout 1178 983 984 986 1095 1158 1178 3567 ckmrtn 1165 1098 1162 1165 3515 ckmsbf 1123 1117 1123 3543 ckmset 1145 1141 1145 3601 ckmsoh 1174 1134 1174 3563 ckmsta 1161 1129 1131 1133 1161 3562 ckmwan 1160 1156 1160 3576 ckobyt 1171 1021 1025 1112 1171 3314 ckochn 978 790 978 988 assm 01 09-28-82 16.929 new g115 tables page 60 octal symbol references by sequence no. 3446 ckomsg 1086 532 1086 1166 3254 cksrv 938 936 938 1516 ckstal 545 543 545 1303 cktdms 475 472 475 513 cmplrc 52 52 309 521 count 52 52 312 314 61 ct.grt 54 54 61 71 6 ct.ign 54 54 71 0 ct.ncs 54 54 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 78 777770 ctlop1 93 93 700 731 753 761 769 780 796 807 777767 ctlop2 94 94 701 732 754 762 770 781 797 808 777766 ctlop3 95 95 702 733 755 763 771 782 798 809 777771 ctlop 92 92 695 696 697 698 699 703 728 730 734 752 756 760 764 768 772 779 783 795 799 806 810 2 cts 52 52 340 577 588 4 cvaddr 45 1187 100 dialup 52 52 347 3070 disbld 879 878 879 6 disc 165 165 212 216 261 11 discrd 132 132 255 1148 412 dismsg 279 279 879 434 dlrout 284 284 524 777762 dlytim 99 99 345 515 593 618 664 738 742 786 3164 dmpall 912 346 712 800 834 890 906 912 913 4 dsr 52 52 334 365 381 436 517 576 585 595 605 620 629 666 748 788 866 903 10 early 106 106 571 592 610 616 1745 elyrsp 610 586 606 610 2717 endtr1 825 235 249 253 825 2720 endtrm 826 233 252 826 4 eot 52 52 300 1182 2 error 43 701 errtib 353 342 353 3 etx 52 52 269 271 273 274 275 276 277 278 280 283 285 292 309 312 1180 142 etxcmp 221 221 646 657 774 778 812 144 etxjmp 222 222 778 4000 exh 52 52 367 380 437 518 578 587 597 607 623 628 667 789 867 3102 exhlim 885 367 380 437 518 578 587 597 607 623 628 667 789 867 885 2 fbld 125 125 752 221 fccmp 237 237 920 3222 fcinf 927 239 927 226 fcjmp 239 239 920 515 fcscan 306 306 919 3216 fcscr 925 239 925 3212 fcsm 923 239 923 461 fctype 82 82 306 384 398 417 471 475 494 632 644 920 923 925 927 936 943 5 fetx 128 128 255 779 1159 2641 flong 805 256 805 assm 01 09-28-82 16.929 new g115 tables page 61 octal symbol references by sequence no. 6 fmod 129 129 795 5 frebuf 46 1069 4 fsoh 127 127 255 768 1163 2415 ftbld 745 414 418 421 448 458 465 524 542 563 567 745 822 845 871 879 2536 ftfetx 777 256 777 2506 ftfsoh 767 256 557 663 671 685 767 2463 ftxmit 759 575 689 759 3 fxmit 126 126 760 0 g115 35 35 37 79 626 g15acu 335 39 335 3240 gack 933 931 933 3262 gbadin 942 916 918 919 921 928 935 942 1127 gbusy 425 402 425 1176 gbusyo 439 431 435 439 3224 gckcnt 928 924 926 928 3245 gcketb 935 933 935 3170 gckin 916 383 631 916 3261 gckret 940 242 940 3250 gcksrv 936 934 936 2725 gdis 832 213 217 218 219 233 235 249 262 832 2565 getmor 785 222 785 777761 gflags 100 100 344 359 411 413 430 446 456 463 472 482 520 522 528 537 552 558 571 592 610 616 637 672 686 737 741 745 749 819 820 835 843 860 869 877 3133 ghang 899 357 365 381 401 436 517 576 585 595 605 620 629 666 692 748 757 775 784 788 813 866 899 3134 ghangn 900 353 707 900 3150 ghg 904 902 903 904 703 gidle 357 233 235 252 350 357 363 375 386 828 837 765 gin 377 364 377 1014 ginbad 385 385 388 1041 ginlop 400 235 400 435 497 514 678 112 ginopt 212 212 387 114 ginout 213 213 387 1017 ginput 387 384 387 1007 ginset 383 379 383 755 gipar 372 366 372 716 girec 360 360 370 614 glisn 329 324 329 2307 gntint 707 330 339 707 627 gonlin 336 334 336 1372 goodot 511 259 511 1373 goodsc 512 235 512 751 gottst 369 359 369 1252 gout 461 235 369 461 473 476 483 485 1333 goutpt 487 262 479 487 2335 gpginp 719 694 714 719 2314 gpgwrt 711 693 711 1032 gredin 398 233 398 2741 grfd1 841 218 219 841 2742 grfd 842 213 217 262 842 assm 01 09-28-82 16.929 new g115 tables page 62 octal symbol references by sequence no. 1025 gsel 390 213 390 484 600 gstar 323 38 323 653 gtell 342 340 342 2671 gterm1 815 218 219 235 249 253 528 765 791 815 2672 gterm 816 217 224 233 253 521 716 723 802 816 862 864 883 891 2235 gtest 692 363 378 435 516 575 584 594 604 619 626 665 692 747 787 864 2351 gtstot 727 696 727 2377 gtstrc 737 697 737 2406 gtstrr 741 698 741 2363 gtstrt 731 729 731 1465 gwrdrd 536 256 536 2110 gwrpar 652 622 652 1454 gwrrd 532 415 419 422 439 441 449 459 467 489 516 519 526 532 792 823 847 872 880 101 hangup 52 52 905 6 hungup 42 909 564 iclabt 317 317 857 572 icldis 319 319 874 553 icldlr 315 315 853 575 iclend 320 320 882 567 iclout 318 318 859 517 ictrl1 307 307 851 523 ictrl2 308 308 916 531 ictrl4 310 310 928 537 ictrl6 312 312 933 543 ictrl7 313 313 918 546 ictrl9 314 314 935 503 ignore 52 52 290 292 294 296 298 300 305 307 309 311 312 313 314 316 317 318 319 320 7 inact1 115 115 231 248 875 5 inact2 116 116 231 248 846 6 inact3 117 117 231 248 264 868 11 inact4 118 118 231 248 251 264 525 613 818 12 inact5 119 119 231 248 251 264 615 2 inact 111 111 231 251 348 827 836 460 incnt 81 81 312 314 399 495 633 639 670 849 893 110 inf110 174 174 238 269 271 277 278 283 111 inf111 175 175 238 112 inf112 176 176 238 113 inf113 177 177 238 115 inf115 178 178 238 3 infmes 148 148 475 927 0 k 602 582 602 3 lctrmt 138 138 697 6 lctrrt 140 140 698 5 lcttwr 139 139 696 1751 lintrn 613 592 596 608 613 12 lngmsg 133 133 255 806 1155 1562 lrcetx 563 560 563 3573 lstbuf 1168 1100 1119 1137 1145 1168 0 macwk1 1086 957 968 978 988 997 1063 1086 1166 assm 01 09-28-82 16.929 new g115 tables page 63 octal symbol references by sequence no. 1 macwk2 1086 957 978 997 1086 40 marker 52 52 379 627 501 match 52 52 307 316 317 318 319 320 36 m.cnt1 50 50 946 40 m.cnt2 50 50 687 42 m.cnt3 50 50 680 44 m.cnt4 50 50 429 662 46 m.cnt5 50 50 759 50 m.cnt6 50 50 767 777 52 m.cnt7 50 50 805 54 m.cnt8 50 50 751 16 m.exh 50 50 885 11 m.par 50 50 372 652 467 modtyp 88 88 348 409 439 440 445 466 488 514 525 540 543 613 615 646 648 657 673 681 715 722 774 778 812 817 818 827 836 846 868 875 894 896 1452 morout 531 513 531 787 517 movchr 52 52 305 306 311 316 520 movmsk 52 52 311 777765 msgchk 96 96 402 533 959 1088 302 msgcmp 255 255 533 305 msgjmp 256 256 533 325 msglcm 264 264 540 330 msgljm 265 265 540 1435 mulout 524 523 524 25 nak 52 52 641 930 945 422 ndamsg 281 281 871 0 noinst 160 160 261 2605 nomore 790 787 790 3037 noout 868 864 868 260 norcmp 248 248 681 263 norjmp 249 249 681 2204 norsp 680 594 619 680 7 notimp 130 130 699 5 notrfd 164 164 216 1525 notstl 551 544 545 551 0 null 52 52 269 271 273 274 275 276 277 278 280 283 285 292 298 300 309 399 495 632 633 639 670 893 929 943 944 445 octrl1 290 290 557 451 octrl2 291 291 560 460 octrl3 293 293 685 465 octrl4 295 295 663 671 472 octrl5 297 297 563 501 octrl6 299 299 567 524 offbit 52 52 296 240 opck 241 241 938 242 opjmp 242 242 938 7 opmask 182 182 311 0 opnorq 153 153 258 134 opotjm 219 219 506 2 optdat 154 154 258 479 assm 01 09-28-82 16.929 new g115 tables page 64 octal symbol references by sequence no. 462 optype 83 83 311 387 451 479 481 484 499 506 645 658 938 944 4 opwait 155 155 645 1417 otck68 519 516 519 1364 otckop 506 227 506 1361 otcksc 503 227 503 10 otpend 131 131 730 155 otptfc 226 226 398 494 157 otptfj 227 227 494 312 otptoc 258 258 499 314 otptoj 259 259 499 777764 outchn 97 97 791 980 1092 1310 outinf 478 475 478 512 outlrc 52 52 292 298 300 403 outmsg 52 52 582 602 1353 outnch 499 495 499 1314 outopc 481 471 481 321 outopj 262 262 481 317 outopt 261 261 481 1341 output 494 223 233 494 1326 outrmt 484 482 484 1272 outsrv 471 233 471 1444 outtrm 528 219 528 10000 parity 52 52 366 622 3116 passin 893 851 853 855 857 859 874 882 893 465 prevsc 86 86 391 634 643 3575 prsbuf 1170 1000 1004 1030 1044 1056 1057 1103 1118 1157 1170 3614 prschr 1185 1001 1012 1015 1019 1022 1027 1139 1152 1185 3574 prvbuf 1169 999 1037 1058 1101 1140 1142 1146 1169 113 quit 52 52 889 40 rdtr 52 52 900 4 rdyfd 163 163 212 216 261 2036 recrst 631 627 631 162 redjmp 228 228 398 1066 rednda 409 392 399 405 409 453 120 redop 216 216 451 506 658 123 redopj 217 217 451 1225 redsrv 451 228 451 515 replac 52 52 290 292 298 300 309 510 rescan 52 52 290 292 294 296 298 300 305 307 309 313 314 316 2751 rfdbld 845 844 845 366 rfdmsg 275 275 845 1122 rmtack 421 417 421 1234 rmtbsy 455 430 455 1000 rmtcmp 107 107 344 413 430 472 482 520 528 737 741 1427 rmtout 522 520 522 1112 rmttdo 417 413 417 2 rrec 52 52 377 625 900 20000 rrts 52 52 591 900 1760 rspwat 616 614 616 777772 rtnlbl 91 91 412 447 457 464 523 538 559 750 821 844 870 878 4 rtntry 105 105 411 446 456 463 522 537 558 745 749 820 843 869 877 assm 01 09-28-82 16.929 new g115 tables page 65 octal symbol references by sequence no. 10 rxmit 52 52 361 583 603 900 104 scr104 172 172 238 280 285 105 scr105 173 173 238 3003 scra 857 246 857 2765 scrabt 851 849 851 470 scrchr 89 89 316 854 245 scrcmp 245 245 854 3054 scrd 874 246 874 3075 scre 882 246 882 251 scrjmp 246 246 854 2 scrmes 147 147 226 925 2772 scrmor 853 850 853 3010 scro 859 246 859 3107 scrqut 888 246 529 852 858 888 2760 scrrcv 849 228 504 849 3125 scrrtn 896 893 894 896 206 sctjmp 234 234 896 20 sdtr 52 52 329 502 search 52 52 290 292 294 296 298 300 305 307 309 312 313 314 316 1263 selbld 465 464 465 2 select 161 161 212 216 241 484 361 selmsg 274 274 465 1541 seqcd2 556 553 556 464 seqcde 85 85 311 391 634 643 3236 setack 932 929 932 523 setbit 52 52 294 650 setdpx 341 336 341 514 seteom 52 52 269 271 273 274 275 276 277 278 280 283 285 1554 setlrc 560 559 560 1543 setsqc 557 555 557 1063 shipit 407 403 407 200000 s.acr 51 51 52 400000 s.ads 51 51 52 400000 s.bdmk 51 51 52 200000 s.bmk 51 51 52 1000 s.brch 51 51 52 400 s.brk 51 51 52 1 s.cd 51 51 52 2 s.cts 51 51 52 100000 s.dlo 51 51 52 4 s.dsr 51 51 52 4000 s.exh 51 51 52 10000 s.fcse 51 51 52 40000 s.isd 51 51 52 40 s.mark 51 51 52 400000 s.pbyt 51 51 52 200 s.prex 51 51 52 10000 s.prty 51 51 52 40000 s.pwi 51 51 52 200000 s.rabt 51 51 52 100000 s.rbt 51 51 52 assm 01 09-28-82 16.929 new g115 tables page 66 octal symbol references by sequence no. 2000 s.ring 51 51 52 40000 s.rto 51 51 52 10 s.sprc 51 51 52 20 s.st 51 51 52 100 s.term 51 51 52 20000 s.xte 51 51 52 102 sm102 170 170 238 273 274 275 276 103 sm103 171 171 238 2000 smark 52 52 377 625 105 sndout 52 52 785 1 soh 52 52 269 271 273 274 275 276 277 278 280 283 285 290 292 294 296 298 300 305 309 313 1174 152 sohjmp 224 224 774 812 1 srec 52 52 361 581 601 127 srjmp 218 218 658 10000 srts 52 52 338 573 1 srvmes 146 146 226 384 417 471 644 923 936 1140 stalit 429 426 429 400 stat 52 52 329 338 573 591 617 4000 sterm 52 52 583 603 3332 stpbcc 997 917 997 1063 3440 stpbrk 1064 1006 1042 1064 3343 stpbuf 1004 1004 1061 3441 stpbyt 1065 1017 1065 7 stpchn 373 461 653 711 719 832 886 904 3365 stpdo 1022 1018 1022 3362 stpevn 1019 1014 1019 3445 stpfre 1069 1055 1069 3443 stplst 1067 1041 1067 3427 stpntx 1056 1029 1056 3430 stpnxt 1057 1007 1035 1057 3442 stpodd 1066 1013 1066 3435 stprtn 1062 1003 1010 1038 1051 1060 1062 3444 stptly 1068 1048 1050 1052 1068 511 strlrc 52 52 292 298 300 309 2 stx 52 52 269 271 273 274 275 276 277 278 280 283 285 307 312 314 316 3572 svx3 1167 958 967 979 987 998 1062 1087 1165 1167 4 sxmit 52 52 581 601 26 syn 52 52 272 1506 synbld 542 265 538 542 1466 synlbl 537 535 537 351 synmsg 272 272 542 400 tdack 277 277 418 1101 tdobld 413 412 413 336 tdomsg 269 269 414 373 tdormt 276 276 421 100 term 52 52 589 608 3 termin 162 162 216 241 20 tfacu 49 49 323 10000 tfcrcv 49 49 360 539 541 assm 01 09-28-82 16.929 new g115 tables page 67 octal symbol references by sequence no. 20 tfdlup 49 49 336 4 tffdpx 49 49 337 341 572 40 tfhang 49 49 357 401 692 707 908 100 tflisn 49 49 324 20000 tfmrcv 49 49 349 10 tfrabt 49 49 694 714 721 10000 tfwabt 49 49 693 713 40 tfwrd1 908 323 324 336 337 341 349 357 360 401 539 541 572 692 693 694 707 713 714 721 908 0 tfwrd2 908 323 324 336 337 341 349 357 360 401 539 541 572 692 693 694 707 713 714 721 908 471 tibchr 90 90 305 17 tibx.1 100 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 0 tibx.2 90 81 82 83 84 85 86 87 88 89 90 1 tibx.3 100 91 92 93 94 95 96 97 98 99 100 17 tibxsz 100 81 83 85 87 89 91 92 93 94 95 96 97 98 99 100 342 26 t.dcp 49 49 964 5 t.icp 49 49 1002 7 t.icpl 49 49 1049 1053 12 t.ocp 49 49 1097 3615 tlymsk 1186 1009 1034 1106 1186 1220 tnklbl 448 447 448 343 tnkmsg 270 270 448 276 trmabt 253 253 715 722 2712 trmbld 822 821 822 1756 trmchk 615 613 615 1 trmchr 103 103 344 359 737 819 835 860 271 trmcmp 251 251 715 722 817 273 trmjmp 252 252 817 354 trmmsg 273 273 822 2306 tstret 704 695 704 2360 tstsot 730 727 730 1245 waklbl 458 457 458 405 wakmsg 278 278 458 1574 wckdpx 571 547 562 565 571 665 690 2062 wcknak 641 633 637 641 2053 wckxnk 637 634 637 173 wextjp 232 232 648 165 wextmd 230 230 648 896 1714 wfdpx 600 572 600 1664 wgood 591 589 591 1627 wgotln 580 577 580 2132 wopwt 661 645 661 2157 wrecnk 669 218 219 500 508 641 669 2014 wrecrp 625 616 621 625 147 wrjmp 223 223 646 657 2223 wrlost 687 588 674 676 682 687 2215 wrnak 685 632 655 685 2075 wrtok 646 646 659 assm 01 09-28-82 16.929 new g115 tables page 68 octal symbol references by sequence no. 2120 wsvmes 657 644 657 2065 wsvsc 643 635 643 300 x 602 582 602 466 xmtsc 87 87 290 553 554 556 2 xnak 104 104 552 637 672 686 ** 47394 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