assm 01 12-10-82 16.029 t202_tables -- terminet 1200 on 202c modem page 1 preface this program will be loaded mod 64 program break 1046 common length 0 v count bits 5 primary symdef entry t202 0 tstart 117 ant202 214 cct.6 0 secondary symdef entry .chain 100 block length symref 1 begin 2 stpchn end of binary card 00000001 assm 01 12-10-82 16.029 t202_tables -- terminet 1200 on 202c modem 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 ,t202_tables assm 01 12-10-82 16.029 t202_tables -- terminet 1200 on 202c modem page 3 15 pcc off 16 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 17 * 18 * 19 * t202_tables, t202 20 * 21 * control tables for terminet 1200 or similar device 22 * using terminet protocol on bell 202c modem 23 * 24 25 * 26 * split off from control_tables by robert coren 4/29/76 27 * 28 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 29 00000 30 t202 null 31 32 symdef t202 33 symdef tstart 34 symdef ant202 35 symdef cct.6 36 37 symref begin 38 39 00000 41 cctdef 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 assm 01 12-10-82 16.029 t202_tables -- terminet 1200 on 202c modem page 4 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 42 00000 43 base 64 44 00000 45 cct.6 null * cct for tn1200 on 202c6 46 * break on etx, ack, nak 47 00000 000000 0 48 vfd 9/ct.ncs,9/ct.ncs * 000 001 00001 000023 0 49 vfd 9/ct.ncs,9/ct.eol * 002 etx 00002 000000 0 50 vfd 9/ct.ncs,9/ct.ncs * 004 005 00003 023000 0 51 vfd 9/ct.eol,9/ct.ncs * ack 007 00004 000000 0 52 vfd 9/ct.ncs,9/ct.ncs * 010 011 00005 000000 0 53 vfd 9/ct.ncs,9/ct.ncs * 012 013 00006 000000 0 54 vfd 9/ct.ncs,9/ct.ncs * 014 015 00007 000000 0 55 vfd 9/ct.ncs,9/ct.ncs * 016 017 00010 000000 0 56 vfd 9/ct.ncs,9/ct.ncs * 020 021 00011 000000 0 57 vfd 9/ct.ncs,9/ct.ncs * 022 023 00012 000023 0 58 vfd 9/ct.ncs,9/ct.eol * 024 nak 59 00013 60 dup 1,53 00013 000000 0 61 vfd 9/ct.ncs,9/ct.ncs end of binary card 00000002 62 63 64 00100 65 start t202 symdef -.chain 00100 even 00100 000000 0 .chain dec 0 00101 630200 0 bci 2,t202 00103 0 00000 1 ind t202 00104 010201 0 date 00106 330000 0 bci 4,.002. 00112 66 tib assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 5 terminal information block (tib) 000000 t.stat equ 0 holds current line status 000001 t.flg equ t.stat+1 flag word 000002 t.flg2 equ t.flg+1 second word of flags 000003 t.cur equ t.flg2+1 current address in control table 000004 t.line equ t.cur+1 10 bit line number 000005 t.icp equ t.line+1 first buffer in input chain 000006 t.ilst equ t.icp+1 last buffer in input chain 000007 t.icpl equ t.ilst+1 count of buffers in icp chain 000010 t.icch equ t.icpl+1 address of next input character 000011 t.elnk equ t.icch+1 link to tib extension 000011 t.rcp equ t.elnk replay chain pointer (share t.elnk) 000012 t.ocp equ t.elnk+1 addr of output chain from cs 000013 t.ocur equ t.ocp+1 addr of current output buffer 000014 t.olst equ t.ocur+1 addr of last buffer in output chain 000015 t.occh equ t.olst+1 addr of next output character 000016 t.ocnt equ t.occh+1 count of buffers in t.ocur 000017 t.type equ t.ocnt+1 line type 000020 t.time equ t.type+1 time at which next timeout will occur 000022 t.reta equ t.time+2 return address from calsub 000023 t.dcwa equ t.reta+1 addr of dcw list to 'execute' 000024 t.dcwl equ t.dcwa+1 length of dcw list 000025 t.echo equ t.dcwl+1 echo buffer address 000026 t.dcp equ t.echo+1 addr of message chain for cs 000027 t.dlst equ t.dcp+1 last buffer in messge chain for cs 000030 t.ftse equ t.dlst+1 first time slot entry in lsla table assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 6 terminal information block (tib) 000030 t.sfcm equ t.ftse pointer to sfcm for hsla lines 000031 t.bcnt equ t.ftse+1 counting temporary 000032 t.brkp equ t.bcnt+1 pointer to current break list 000033 t.pos equ t.brkp+1 current carriage position 000034 t.char equ t.pos+1 pending line control char (lsla only) 000034 t.ecch equ t.char address of current echo char (hsla only) 000035 t.cntr equ t.char+1 counter for control tables 000036 t.flg3 equ t.cntr+1 third word of flags 000037 t.dtp equ t.flg3+1 pointer to delay table for this line 000040 t.frmc equ t.dtp+1 framing chars (2 chars) 000041 t.dcpl equ t.frmc+1 number of buffers in dcp chain 000042 t.scll equ t.dcpl+1 screenline length left, for echo neg. 000043 t.sncc equ t.scll+1 echo negotiation sync ctr. 000044 t.entp equ t.sncc+1 echo negotiation break table ptr 000045 t.ifch equ t.entp+1 input flow control characters 000046 t.ofch equ t.ifch+1 output flow control characters 000047 t.omct equ t.ofch+1 output message count (for flow control) 000050 t.itim equ t.omct+1 time of last call to inproc (2 words) 000052 t.metr equ t.itim+2 address of metering area 000053 t.leng equ t.metr+1 length of a tib ******************************** * t.stat bits ******************************** 000001 tsfcd bool 000001 carrier detect 000002 tsfcts bool 000002 clear to send 000004 tsfdsr bool 000004 data set ready assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 7 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 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 8 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 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 9 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 00112 67 csbits assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 10 control and status bits control bits 000001 c.srec bool 000001 set receive mode 000002 c.rrec bool 000002 reset receive mode 000004 c.sxmt bool 000004 set transmit mode 000010 c.rxmt bool 000010 reset transmit mode 000020 c.sdtr bool 000020 set data terminal ready 000040 c.rdtr bool 000040 reset data terminal ready 000100 c.ssup bool 000100 set supervisory transmit mode 000100 c.stre bool 000100 set tally runout enable (hdlc) 000200 c.rsup bool 000200 reset supervisory transmit mode 000200 c.rtre bool 000200 reset tally runout enable (hdlc) 000400 c.stat bool 000400 store status 001000 c.sbrk bool 001000 send line break 002000 c.smrk bool 002000 store marker status 004000 c.strm bool 004000 store terminate status 010000 c.srqs bool 010000 set request to send 020000 c.rrqs bool 020000 reset request to send 040000 c.pad bool 040000 unused 100000 c.cmd bool 100000 indicates cmd subop 400000 c.scmd bool 400000 indicates supplementary cmd subop the following must be used in the optional fields to the cmd (or contrl) macros in the control_tables 000001 c.scrq bool 000001 set call request 000002 c.rcrq bool 000002 reset call request assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 11 control and status bits status bits 000001 s.cd bool 000001 carrier detect 000002 s.cts bool 000002 clear to send 000004 s.dsr bool 000004 data set ready 000010 s.sprc bool 000010 supervisory receive mode 000020 s.st bool 000020 status requested 000040 s.mark bool 000040 marker status 000100 s.term bool 000100 terminate status 000200 s.prex bool 000200 pre-exhaust 000400 s.brk bool 000400 line break received 001000 s.brch bool 001000 break character received 002000 s.ring bool 002000 ring 004000 s.exh bool 004000 exhaust status 010000 s.prty bool 010000 parity error 010000 s.fcse bool 010000 frame check sequence error (hdlc) 020000 s.xte bool 020000 transfer timing error 040000 s.pwi bool 040000 acu power indicator 100000 s.dlo bool 100000 acu data line occupied 200000 s.acr bool 200000 acu abandon call and retry 400000 s.ads bool 400000 acu raised data set status the following four bits share the values of acu status but can never be misinterpreted. 040000 s.rto bool 040000 receive time out (bsc) 040000 s.isd bool 040000 idle state detect (hdlc) 100000 s.rbt bool 100000 receive block termination (bsc & hdlc) assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 12 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 00112 68 tconst assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 13 flag and control bit definitions 000001 gbf6up bool 000001 cs up global switch device types 000001 ttasci equ 1 ascii terminals, cdi, tty 33, 35, 37, etc 000002 tt1050 equ 2 ibm 1050 000003 tt2741 equ 3 ibm 2741, trendata, dura, etc. 000004 ttards equ 4 ards, tektronix 000005 ttsync equ 5 general sync devices 000006 ttg115 equ 6 remote computer interface, g115 000007 ttbsc equ 7 binary synchronous communications 000010 tt202c equ 8 ascii on 202c6 modem 000011 ttvip equ 9 vip terminal 000020 ttpvip equ 16 polled vip 000021 ttx25l equ 17 x.25 link access procedure (lap) 000023 ttcolt equ 19 colts (online t&d executive) signal types 000113 quit bool 113 dia cmd, break received 000100 dialup bool 100 dia cmd, accept new terminal 000101 hangup bool 101 dia cmd, disconnected line 000114 wrutim bool 114 dia cmd, wru timeout 000105 sndout bool 105 dia cmd, send output 000120 acupwi bool 120 dia cmd, no power to acu 000121 acudlo bool 121 dia cmd, data line occupied 000122 acuacr bool 122 dia cmd, dial out failed 000123 acung bool 123 dia cmd, request for acu is invalid control types 000001 srec equ c.srec set receive mode 000002 rrec equ c.rrec reset receive 000004 sxmit equ c.sxmt set xmit mode 000010 rxmit equ c.rxmt reset xmit 000020 sdtr equ c.sdtr set data terminal ready 000040 rdtr equ c.rdtr reset dtr 000100 ssup equ c.ssup set supervisory xmit 000200 rsup equ c.rsup reset supervisory xmit 000400 stat equ c.stat store status 001000 sbrk equ c.sbrk send line break 002000 smark equ c.smrk send marker status 004000 sterm equ c.strm send terminate status 010000 srts equ c.srqs set request to send 020000 rrts equ c.rrqs reset request to send 000001 scrq equ c.scrq set call request 000002 rcrq equ c.rcrq reset call request 000100 stroe equ c.stre set tally runout enable (hdlc) 000200 rtroe equ c.rtre reset tally runout enable (hdlc) assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 14 flag and control bit definitions status bits 000001 cd equ s.cd carrier detect 000002 cts equ s.cts clear to send 000004 dsr equ s.dsr data set ready 000010 suprec equ s.sprc supervisory receive 000020 st equ s.st status requested 000400 break equ s.brk line break received 001000 brkchr equ s.brch break char received 002000 ring equ s.ring ring 000100 term equ s.term terminate status 000040 marker equ s.mark marker status 004000 exh equ s.exh exhaust status 000200 prexh equ s.prex pre-exhaust status 010000 parity equ s.prty parity error 020000 xte equ s.xte transfer timing error 040000 pwi equ s.pwi power indicator on acu 100000 dlo equ s.dlo data line occupied (acu) 400000 ads equ s.ads dialed station has answered data set is in data mode (acu) 200000 acr equ s.acr abandon call and retry (acu) 040000 rcvto equ s.rto rcv time out 100000 bscrcv equ s.rbt bsc terminate 200000 bscmrk equ s.bmk bsc marker 400000 bscdmk equ s.bdmk bsc delayed marker 010000 fcserr equ s.fcse frame check sequence error (hdlc) 040000 idlesd equ s.isd idle state detect (hdlc) 100000 rcvtrm equ s.rbt receive terminate (hdlc) 200000 rcvabt equ s.rabt receive abort (hdlc) 400000 parbyt equ s.pbyt partial byte (hdlc) assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 15 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 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 16 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 assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 17 dialup and answerback for 202c6 ascii 00112 71 iscn4 chstr (rescan,search,ack) 00114 72 iscn5 chstr (rescan,search,etx,replac,null) end of binary card 00000003 73 74 00117 75 tstart tstflg tflisn,tlisn /* are we listening? */ 76 00123 77 thung stpchn /* no, hold everything */ 00125 78 contrl rdtr /* make sure we don't answer the phone */ 00127 79 tstflg tflisn,tlisn /* listening now? */ 00133 80 wait 0,0,begin /* no, wait until we do */ 81 00137 82 tlisn contrl sdtr+srts+rsup /* be ready to answer phone */ 83 00141 84 wait 0,0,ttslsn 00145 85 status dsr+cd+cts,0,tdiald /* ok, he's there */ 86 00151 87 ttslsn tstglb gbf6up,ttsthg /* maybe we're not supposed to listen anymore */ 00154 88 goto thung /* indeed */ 89 00156 90 tdiald clrflg (tfkybd,tfercv) /* let's start clean */ 00161 91 dmpout /* get rid of any leftover output */ 00162 92 dumpin /* and input */ 00163 93 dcwlst /* turn on mtr of terminet */ 00164 94 cmd sxmit 00165 95 output (esc,h) /* tn1200 mtr on */ end of binary card 00000004 00167 96 cmd rxmit+sterm 97 00170 98 setime 0 /* nothing should happen til terminate */ 00172 99 wait 0,0,0 00176 100 status 0,dsr,thung /* unless it gets hung up */ 00202 101 status term,0,tsig /* ok, motor is on */ 102 00206 103 tsig signal dialup /* tell multics */ 00210 104 setcct cct.6 /* make sure we have a cct */ 00212 105 goto tnext /* wait for something to happen */ 106 107 00214 108 ant202 null /* here to get answerback */ 00214 109 tstflg tfkybd,taturn /* who had the line */ 00220 110 goto tawru2 /* we did, go send who-are-you */ 111 00222 112 taturn contrl rrec+srts+rsup /* see if we can grab it */ 00224 113 setime 5 114 00226 115 wait taturn,0,0 00232 116 status cd+cts,0,tawru /* there it is */ end of binary card 00000005 00236 117 status 0,dsr,thngup /* oh, well */ 118 assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 18 dialup and answerback for 202c6 ascii 00242 119 tawru clrflg tfkybd /* line is ours */ 00245 120 tawru2 dcwlst /* so send enq */ 00246 121 cmd sxmit 00247 122 output (awru) 00251 123 cmd rxmit+rrts+ssup /* wru should put terminal in xmit */ 124 00252 125 setime 0 /* wait for a response */ 00254 126 wait 0,0,0 00260 127 status 0,cts,taread /* we can hear him now */ 00264 128 status 0,dsr,thngup 129 00270 130 taread contrl srec /* into receive mode now */ 00272 131 setflg tfkybd /* show that he has the line */ 132 00275 133 setime 5 00277 134 wait tatry,0,0 /* try again if it times out */ 00303 135 status 0,dsr,thngup /* or hang up */ end of binary card 00000006 00307 136 status brkchr,0,tgota /* this is what we want (maybe) */ 137 00313 138 tgota inscan iscn4,tatry /* is it an ack? */ 00316 139 sendin /* yes, ship it */ 00317 140 goto txmit /* get the line back */ 141 00321 142 tatry acntr 1 /* must have been a nak, try again */ 00323 143 tcntr 3,tanot /* unless we've reached limit */ 00326 144 goto ant202 145 00330 146 tanot signal wrutim /* guess we're not getting it */ 00332 147 goto txmit /* get the line */ assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 19 202c6 reading 00334 149 trcv tstflg tfhang,thang /* if someone said to hang up, do it */ 00340 150 tstflg tfkybd,tread /* if he already has the line, good */ 151 00344 152 dcwlst /* else give it to him */ 00345 153 cmd sxmit+rrec 00346 154 output (etx) /* send etx to turn line around */ 00350 155 cmd rxmit+rrts+ssup /* get out of xmit */ 156 00351 157 setime 5 end of binary card 00000007 158 00353 159 wait ttmout,0,ttsthg /* wait for it to turn */ 00357 160 status 0,cts,tread /* cts is down, go read */ 00363 161 status 0,dsr,thngup /* no phone */ 162 00367 163 tread contrl srec+rxmit /* receive */ 00371 164 setflg tfkybd /* ready to read */ 00374 165 clrflg tfercv /* we want to know if someone turns this on later 166 00377 167 wait 0,0,ttsthg 00403 168 status exh,0,texh /* used too many buffers */ 00407 169 status xte,0,texh /* status processor fell behind */ 00413 170 status prexh,0,tsndta /* too much input to hang on to */ 00417 171 status brkchr,0,ttetx /* if break, check for etx */ end of binary card 00000008 00423 172 status break,0,tquit /* quit */ 00427 173 status 0,dsr,thngup /* bye */ 174 00433 175 ttetx inscan iscn5,tsndta /* if not etx, just ship data */ 00436 176 sendin /* otherwise, we'll take line */ 177 00437 178 ttry tstflg tfkybd,txmit /* if he has the line, take it */ 00443 179 goto tnext /* else see what happens now */ 180 00445 181 texh contrl rrec /* exhaust, shut him off */ 00447 182 setime 0 /* we can't do anything until he */ 00451 183 wait 0,0,ttsthg /* hits quit or hangs up */ 00455 184 status 0,dsr,thngup /* he hung up */ 00461 185 status break,0,tquit /* he hit quit */ 186 187 00465 188 tsndta sendin /* ship to 6180 */ 00466 189 waitm assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 20 writing for 202c6 00467 191 txmit contrl rrec+srts+rsup+stat /* try to get the line for output */ end of binary card 00000009 00471 192 setime 5 /* give him some time */ 193 00473 194 wait ttmout,0,0 00477 195 status cd+cts,0,tnext /* okay, we have it */ 00503 196 status 0,dsr,thngup 197 00507 198 tnext clrflg tfkybd 00512 199 tstwrt twrite /* if there's output, do it */ 00514 200 tstflg tfercv,trcv /* if we're supposed to read, do that */ 201 00520 202 tnext1 setime 0 /* else wait for something to happen */ 203 00522 204 wait 0,twrite,ttest 00526 205 status 0,dsr,thngup 206 00532 207 twrite dcwlst /* output on the way */ 00533 208 cmd rrec+sxmit 00534 209 output (outmsg) /* here it is */ 00536 210 cmd rxmit+sterm /* terminate when done */ 211 00537 212 twait1 setime 1 /* don't do anything for a second */ end of binary card 00000010 213 00541 214 wait twsup,0,0 /* we will give suprec 1 second to come up */ 00545 215 status 0,dsr,thngup /* lost phone */ 00551 216 status term,0,twdone /* output completed */ 217 00555 218 twsup setime 0 /* we're only interested in status */ 00557 219 wait 0,0,ttdump /* we might have to throw it away */ 00563 220 status 0,dsr,thngup /* of course we might lose phone */ 00567 221 status term,0,twdone /* output finished */ 00573 222 status 0,suprec,twait2 /* lost suprec, might be quit */ 223 00577 224 twait2 setime 1 00601 225 wait thngup,0,0 /* wait for suprec to come back */ 00605 226 status suprec,0,toquit /* there it is, that's a quit */ end of binary card 00000011 00611 227 status 0,dsr,thngup /* not again */ 00615 228 status term,0,twdone /* well, we finished */ 229 00621 230 twdone tstflg tfhang,thang /* do they want us to hang up? */ 00625 231 tstwrt twrite /* more output, go handle it */ 00627 232 tstflg tfercv,trcv /* do they want to read? */ 00633 233 goto tnext1 /* no, see what's next */ assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 21 202c6 dumping and quitting 00635 235 ttest tstflg tfhang,thang /* hang it up? */ 00641 236 tstflg tfercv,trcv /* give the line away? */ 00645 237 waitm /* none of the above */ 238 00646 239 ttdump tstflg tfwabt,tdump /* dump output? */ 00652 240 waitm /* no, keep waiting */ 241 00653 242 tdump stpchn /* dump output, stop everything first */ 00655 243 dmpout /* throw output away */ end of binary card 00000012 00656 244 clrflg tfwabt 00661 245 goto twdone 246 00663 247 tquit stpchn /* quit during input */ 00665 248 sendin /* ship pending input */ 00666 249 signal quit /* tell multics */ 00670 250 goto tread /* can't send newline, so go read some more */ 251 00672 252 toquit signal quit /* quit during output, tell multics */ 00674 253 tstflg tfquit,tqdump /* send nl if appropriate */ 00700 254 goto twait1 255 00702 256 tqdump stpchn /* hold on, dump output, and send nl */ 00704 257 dmpout 00705 258 clrflg tfwabt 259 00710 260 dcwlst /* we must already have been transmitting */ 00711 261 cmd sxmit 00712 262 output (repeat,pad,2,nl) /* send newline */ 00715 263 cmd rxmit+smark /* marker when done */ 264 00716 265 setime 5 266 00720 267 wait ttmout,0,0 /* wait for marker */ 00724 268 status marker,0,twdone /* ok */ end of binary card 00000013 00730 269 status 0,dsr,thngup /* you never know when someone will hang up */ assm 01 12-10-82 16.032 t202_tables -- terminet 1200 on 202c modem page 22 hangup code for 202c6 00734 271 thang stpchn 00736 272 setime 3 /* wait for possible final output */ 273 00740 274 wait thang1,ttry,0 00744 275 status 0,dsr,thngup /* saved us the trouble */ 276 00750 277 thang1 dcwlst /* hang him */ 00751 278 cmd sxmit+rrec+srts+rsup /* we must get the line */ 00752 279 output (dle,eot) /* that should do it */ 00754 280 cmd rdtr+smark+rxmit /* drop dtr, and we're finished */ 00755 281 setime 10 282 00757 283 wait thang,0,0 /* try again if necessary */ 00763 284 status marker,0,thngup /* okay, we're finished */ 00767 285 status 0,dsr,thngup /* loss of dtr means same thing */ 286 00773 287 thngup stpchn /* nothing out there anyway */ end of binary card 00000014 00775 288 dmpout /* who needs output */ 00776 289 signal hangup /* tell the world */ 01000 290 clrflg (tflisn,tfhang,tfercv) 01003 291 goto thung /* wait for further listening */ 292 01005 293 ttmout stpchn /* unexpected timeout, try to get going again */ 01007 294 contrl srts+rsup+stat /* can we get anything out of him? */ 295 01011 296 clrflg tfkybd /* we're not listening now */ 01014 297 setime 10 /* give it a chance */ 298 01016 299 wait ttmout,0,ttest 01022 300 status cd+cts+dsr,0,ttm2 /* we got it */ 01026 301 status 0,dsr,thngup /* gone */ 302 01032 303 ttm2 tstflg tfwabt,tdump /* dump output if desired */ 01036 304 goto tnext /* see what's happening */ 305 01040 306 ttsthg tstflg tfhang,thang /* supposed to hang up? */ end of binary card 00000015 01044 307 waitm end of binary card 00000016 308 end 1046 is the next available location. 355map version/assembly dates gmpa 770711/071177 gmpb 770711/071177 gmpc 770711/071177 there were no warning flags in the above assembly assm 01 12-10-82 16.034 t202_tables -- terminet 1200 on 202c modem page 23 octal symbol references by sequence no. 6 ack 68 68 71 214 ant202 108 34 108 144 5 awru 68 68 122 1 begin 37 80 400 break 68 68 172 185 1000 brkchr 68 68 136 171 0 cct.6 45 35 45 104 1 cd 68 68 85 116 195 300 1 chk 72 71 72 0 chval 72 71 72 2 c.rcrq 67 67 68 40 c.rdtr 67 67 68 2 c.rrec 67 67 68 20000 c.rrqs 67 67 68 200 c.rsup 67 67 68 200 c.rtre 67 67 68 10 c.rxmt 67 67 68 1000 c.sbrk 67 67 68 1 c.scrq 67 67 68 20 c.sdtr 67 67 68 2000 c.smrk 67 67 68 1 c.srec 67 67 68 10000 c.srqs 67 67 68 100 c.ssup 67 67 68 400 c.stat 67 67 68 100 c.stre 67 67 68 4000 c.strm 67 67 68 4 c.sxmt 67 67 68 23 ct.eol 41 41 49 51 58 0 ct.ncs 41 41 48 49 50 51 52 53 54 55 56 57 58 61 2 cts 68 68 85 116 127 160 195 300 100 dialup 68 68 103 20 dle 68 68 279 4 dsr 68 68 85 100 117 128 135 161 173 184 196 205 215 220 227 269 275 285 300 301 4 eot 68 68 279 33 esc 68 68 95 3 etx 68 68 72 154 4000 exh 68 68 168 1 gbf6up 68 68 87 150 h 68 68 95 101 hangup 68 68 289 112 iscn4 71 71 138 114 iscn5 72 72 175 1 k 279 95 122 154 209 262 279 40 marker 68 68 268 284 12 nl 68 68 262 0 null 68 68 72 403 outmsg 68 68 209 0 pad 68 68 262 200 prexh 68 68 170 assm 01 12-10-82 16.034 t202_tables -- terminet 1200 on 202c modem page 24 octal symbol references by sequence no. 113 quit 68 68 249 252 40 rdtr 68 68 78 280 404 repeat 68 68 262 515 replac 68 68 72 510 rescan 68 68 71 72 2 rrec 68 68 112 153 181 191 208 278 20000 rrts 68 68 123 155 200 rsup 68 68 82 112 191 278 294 10 rxmit 68 68 96 123 155 163 210 263 280 20 sdtr 68 68 82 502 search 68 68 71 72 200000 s.acr 67 67 68 400000 s.ads 67 67 68 400000 s.bdmk 67 67 68 200000 s.bmk 67 67 68 1000 s.brch 67 67 68 400 s.brk 67 67 68 1 s.cd 67 67 68 2 s.cts 67 67 68 100000 s.dlo 67 67 68 4 s.dsr 67 67 68 4000 s.exh 67 67 68 10000 s.fcse 67 67 68 40000 s.isd 67 67 68 40 s.mark 67 67 68 400000 s.pbyt 67 67 68 200 s.prex 67 67 68 10000 s.prty 67 67 68 40000 s.pwi 67 67 68 200000 s.rabt 67 67 68 100000 s.rbt 67 67 68 2000 s.ring 67 67 68 40000 s.rto 67 67 68 10 s.sprc 67 67 68 20 s.st 67 67 68 100 s.term 67 67 68 20000 s.xte 67 67 68 2000 smark 68 68 263 280 1 srec 68 68 130 163 10000 srts 68 68 82 112 191 278 294 100 ssup 68 68 123 155 400 stat 68 68 191 294 4000 sterm 68 68 96 210 2 stpchn 77 242 247 256 271 287 293 10 suprec 68 68 222 226 4 sxmit 68 68 94 121 153 208 261 278 0 t202 30 30 32 65 330 tanot 146 143 146 270 taread 130 127 130 321 tatry 142 134 138 142 222 taturn 112 109 112 115 assm 01 12-10-82 16.034 t202_tables -- terminet 1200 on 202c modem page 25 octal symbol references by sequence no. 245 tawru2 120 110 120 242 tawru 119 116 119 156 tdiald 90 85 90 653 tdump 242 239 242 303 100 term 68 68 101 216 221 228 445 texh 181 168 169 181 4 tfercv 66 66 90 165 200 232 236 290 40 tfhang 66 66 149 230 235 290 306 10 tfkybd 66 66 90 109 119 131 150 164 178 198 296 100 tflisn 66 66 75 79 290 200 tfquit 66 66 253 10000 tfwabt 66 66 239 244 258 303 40 tfwrd1 306 75 79 90 109 119 131 149 150 164 165 178 198 200 230 232 235 236 239 244 253 258 290 296 303 306 0 tfwrd2 306 75 79 90 109 119 131 149 150 164 165 178 198 200 230 232 235 236 239 244 253 258 290 296 303 306 313 tgota 138 136 138 750 thang1 277 274 277 734 thang 271 149 230 235 271 283 306 773 thngup 287 117 128 135 161 173 184 196 205 215 220 225 227 269 275 284 285 287 301 123 thung 77 77 88 100 291 137 tlisn 82 75 79 82 520 tnext1 202 202 233 507 tnext 198 105 179 195 198 304 672 toquit 252 226 252 702 tqdump 256 253 256 663 tquit 247 172 185 247 334 trcv 149 149 200 232 236 367 tread 163 150 160 163 250 206 tsig 103 101 103 465 tsndta 188 170 175 188 117 tstart 75 33 75 646 ttdump 239 219 239 635 ttest 235 204 235 299 433 ttetx 175 171 175 1032 ttm2 303 300 303 1005 ttmout 293 159 194 267 293 299 437 ttry 178 178 274 151 ttslsn 87 84 87 1040 ttsthg 306 87 159 167 183 306 537 twait1 212 212 254 577 twait2 224 222 224 621 twdone 230 216 221 228 230 245 268 532 twrite 207 199 204 207 231 555 twsup 218 214 218 467 txmit 191 140 147 178 191 114 wrutim 68 68 146 4 x 279 95 122 154 209 262 279 20000 xte 68 68 169 ** 46612 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