assm 01 12-10-82 15.654 ards_tables page 1 preface program break 1246 common length 0 v count bits 5 primary symdef entry ards 0 astart 12 ahang 1132 agtwrk 113 secondary symdef entry .chain 0 block length symref 1 begin 2 stpchn end of binary card 00000001 assm 01 12-10-82 15.654 ards_tables page 2 1 * *********************************************************** 2 * * * 3 * * copyright, (c) honeywell information systems inc., 1982 * 4 * * * 5 * * copyright (c) 1972 by massachusetts institute of * 6 * * technology and honeywell information systems, inc. * 7 * * * 8 * *********************************************************** 9 10 lbl ,ards_tables assm 01 12-10-82 15.654 ards_tables page 3 14 pcc off 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 16 * 17 * 18 * ards_tables, ards 19 * 20 * control tables for dealing with ards-like screen terminal 21 * on a 202c modem 22 * 23 * split off from control_tables by robert coren 4/29/76 24 * 25 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * assm 01 12-10-82 15.654 ards_tables page 4 00000 27 ards null 28 symdef ards 29 30 symdef astart 31 symdef ahang 32 symdef agtwrk 33 34 symref begin 35 00000 36 start ards 00012 38 tib assm 01 12-10-82 15.659 ards_tables 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 15.659 ards_tables 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 15.659 ards_tables 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 15.659 ards_tables 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 15.659 ards_tables 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 00012 39 csbits assm 01 12-10-82 15.659 ards_tables 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 15.659 ards_tables 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 15.659 ards_tables 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 00012 40 tconst assm 01 12-10-82 15.659 ards_tables 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 15.659 ards_tables 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 15.659 ards_tables 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 15.659 ards_tables 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 00012 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 assm 01 12-10-82 15.659 ards_tables page 17 flag and control bit definitions ** 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 assm 01 12-10-82 15.659 ards_tables page 18 dialup control for the ards and tn1200 00012 44 astart tstflg tflisn,alisn /* if we are listening */ 45 00016 46 ahung stpchn /* nope, hungup */ 00020 47 contrl rdtr /* drop dtr */ 00022 48 tstflg tflisn,alisn /* are we to listen now */ 49 00026 50 wait 0,0,begin /* wait here until told to move */ 51 00032 52 alisn contrl sdtr+srts+rrec+rsup+stat /* bring up dtr to ans phone */ 00034 53 setime 0 /* turn off the timer */ 54 00036 55 wait 0,0,atstls /* we may have changed things */ 00042 56 status dsr+cd+cts+suprec,0,adiald /* dialed? */ 57 00046 58 atstls tstglb gbf6up,atsthg /* did multics say to stop listening? */ end of binary card 00000002 00051 59 goto ahung /* yup */ 60 00053 61 adiald clrflg tfkybd /* clear because we printed */ 00056 62 dmpout /* get rid of anything left over from before */ 00057 63 dumpin 64 00060 65 aerase dcwlst /* erase the screen */ 00061 66 cmd sxmit /* enter xmit mode */ 00062 67 output (repeat,pad,300,stx,esc,ff,repeat,pad,440) 00070 68 cmd rxmit+smark /* done, esc was for tektronix */ 69 00071 70 setime 8 /* wait 8 seconds for marker */ 71 00073 72 wait aerase,0,0 /* retry on timeout */ 00077 73 status marker,0,asdial /* done, tell 6180 of dialup */ 00103 74 status 0,dsr,ahngup /* died here */ 75 00107 76 asdial signal dialup /* tell 6180 that we are here */ 00111 77 setcct scc.df /* make sure we have a cct */ assm 01 12-10-82 15.659 ards_tables page 19 get work and reading tables for ards 00113 79 agtwrk clrflg (tfwabt,tfrabt) /* clear here in case abort done */ 00116 80 tstwrt awrite /* writing to do, go */ end of binary card 00000003 00120 81 tstflg tfhang,ahang /* hang him up */ 00124 82 tstflg tfkybd,aread /* kybd on now, read */ 83 00130 84 dcwlst /* address kybd */ 00131 85 cmd sxmit+rrec /* blank screen */ 00132 86 output (etx) 00134 87 cmd rxmit+rrts+ssup+smark /* drop rts and set supxmt */ 88 00135 89 setime 5 /* wait 5 seconds for this */ 90 00137 91 wait atmout,0,0 /* play with line on timeout */ 00143 92 status 0,cd,cdown /* carrier down now */ 00147 93 status 0,dsr,ahngup /* he hungup the phone */ 94 00153 95 cdown wait atmout,0,0 /* wait for it to come back */ 00157 96 status cd,0,aread /* there it is, read now */ 00163 97 status 0,dsr,ahngup /* bye bye */ end of binary card 00000004 98 00167 99 aread contrl srec+rxmit /* start reading */ 00171 100 setflg tfkybd /* keyboard on now */ 00174 101 tstwrt awrite /* writing to do, go */ 00176 102 tstflg tfhang,ahang /* drop the line on him */ 00202 103 arwait setime 0 /* turn off the timer */ 104 00204 105 wait 0,arabrt,atstrb /* wait for various things */ 00210 106 status exh,0,aexh /* stop the channel on exhaust */ 00214 107 status xte,0,aexh /* or on xte */ 00220 108 status prexh,0,apre /* ship data when enough */ 00224 109 status brkchr,0,asndta /* and on break char recognition */ 00230 110 status break,0,aiquit /* user punched quit */ 00234 111 status 0,dsr,ahngup end of binary card 00000005 112 00240 113 arabrt ckinpt agtwrk /* look for partial input, none agtwrk */ 00242 114 tstflg tfplit,arplit /* polite mode? */ 00246 115 prepnl /* prepare to output newline */ 00247 116 goto agtwrk 117 00251 118 arplit setime 30 /* wait 30 seconds for input to finish */ 00253 119 wait apltmo,0,atsthg 00257 120 status exh,0,aexh /* stop the channel on exhaust */ 00263 121 status xte,0,aexh /* or on xte */ 00267 122 status prexh,0,apre /* ship data when enough */ 00273 123 status brkchr,0,asndta /* and on break char recognition */ 00277 124 status break,0,aiquit /* user punched quit */ 00303 125 status 0,dsr,ahngup end of binary card 00000006 assm 01 12-10-82 15.659 ards_tables page 20 get work and reading tables for ards 126 00307 127 apltmo prepnl /* we have waited long enough */ 00310 128 tstflg tfrabt,admpin /* throw away input if appropriate */ 00314 129 goto agtwrk 130 00316 131 aiquit stpchn /* stop input now */ 00320 132 sendin /* ship the data to 6180 */ 00321 133 signal quit /* tell someone about it */ 00323 134 tstflg tfquit,aprtnl /* print new-line now */ 00327 135 goto agtwrk /* wait for system action */ 136 00331 137 aexh stpchn /* halt receiver now */ 00333 138 sendin /* ship the data */ 00334 139 tstwrt agtwrk /* make sure no write to be done */ 00336 140 setime 10 /* give 10 seconds, then signal quit */ 00340 141 wait aiquit,awrite,atsthg /* output or hangup will pull us out */ 00344 142 status 0,dsr,ahngup /* so will dead line */ 00350 143 status break,0,aiquit /* so will real quit */ end of binary card 00000007 144 00354 145 asndta tstflg tfrabt,admpin /* or throw it away instead */ 00360 146 sendin /* ship to 6180 now */ 00361 147 tstwrt agtwrk /* if any ready now, start it */ 00363 148 goto arwait 149 00365 150 apre sendin /* too much to keep around */ 00366 151 waitm /* so ship it and keep going */ assm 01 12-10-82 15.659 ards_tables page 21 writing part of the tables for ards 00367 153 awrite tstflg tfkybd,adscr /* keyboard on, address screen */ 00373 154 goto aready /* all ok, go write */ 155 00375 156 adscr contrl rrec+rxmit+rsup /* drop supxmt */ 00377 157 setime 5 /* wait 5 seconds */ 158 00401 159 wait adscr,0,0 /* retry on timeout */ 00405 160 status 0,cd,arts /* carrier is down */ 161 00411 162 arts contrl srts /* bring up request to send */ 00413 163 setime 5 /* wait for carrier and clear to send */ 164 00415 165 wait ahngup,0,0 /* dead if timeout here */ 00421 166 status cd+cts,0,astx /* there they are, send stx */ end of binary card 00000008 00425 167 status 0,dsr,ahngup /* he dropped the line */ 168 00431 169 astx dcwlst /* send out the stxchar */ 00432 170 cmd sxmit /* enter xmit mode */ 00433 171 output (repeat,pad,40,stx,outmsg) 00437 172 cmd rxmit+sterm /* all done */ 173 00440 174 clrflg tfkybd /* keyboard klobbered */ 00443 175 tstflg tfrply,adorpy /* if we want replay check it */ 00447 176 goto await /* all set, wait */ 177 00451 178 adorpy ckinpt await /* no input, just wait output */ 00453 179 setflg tfrpon /* indicate replay on now */ 00456 180 gtinpt /* scoop up the input */ 00457 181 goto await /* wait for it to go off */ 182 00461 183 aready dcwlst /* screen ready, send data */ 00462 184 cmd sxmit /* enter xmit mode */ 00463 185 output (outmsg) /* send the guys data */ 00465 186 cmd rxmit+sterm /* stop channel and send terminate */ 187 00466 188 goto asupon /* suprec is already on, go wait */ 189 00470 190 await setime 1 /* wait 1 second for suprec to stabilize */ end of binary card 00000009 191 00472 192 wait asupon,0,0 /* on timeout, go to standard wait */ 00476 193 status term,0,awdone /* if write finishes, done */ 00502 194 status 0,dsr,ahngup /* died here */ 195 00506 196 asupon tstflg tfwabt,adump /* abort during above waits */ 00512 197 setime 0 /* turn off the timer */ assm 01 12-10-82 15.659 ards_tables page 22 writing part of the tables for ards 00514 199 await1 wait 0,0,atdmp /* look for write abt */ 00520 200 status 0,suprec,await2 /* possible start of quit sequence */ 00524 201 status 0,dsr,ahngup /* lost the phone */ 00530 202 status term,0,awdone /* finsihed output */ 203 00534 204 await2 setime 1 /* if suprec doesn't come back */ 205 /* in one second, its hungup */ 206 00536 207 wait ahngup,0,0 /* wait for end of reverse quit */ end of binary card 00000010 00542 208 status suprec,0,aoquit /* there it is folks */ 00546 209 status 0,dsr,ahngup /* those phones! */ 00552 210 status term,0,awdone /* we made it, finished output */ 211 00556 212 awdone tstflg tfxhld,ahold /* are we in transmit hold? */ 00562 213 tstflg tfrabt,admpin /* no, were we to throw away input? */ 00566 214 tstwrt agtwrk /* make sure no new writes ready */ 00570 215 tstflg tfrpon,awdrp /* replay ready to be done */ 00574 216 tstflg tfplit,awdpl /* polite test for more output */ 00600 217 goto agtwrk /* no, look for more */ 218 00602 219 awdrp tstrpy awdrpd /* replay already done, goto awdrpd */ 00604 220 setime 1 /* wait one second for more output */ 00606 221 wait awdrpt,awrite,atest end of binary card 00000011 00612 222 status 0,dsr,ahngup /* phone died */ 00616 223 status 0,suprec,await2 /* quit now? */ 224 00622 225 awdrpt replay /* make saved input an output chain */ 00623 226 goto agtwrk 227 00625 228 awdrpd clrflg tfrpon /* clear now, replay done */ 00630 229 goto agtwrk /* done here */ 230 00632 231 awdpl ckinpt agtwrk /* had we just been polite to him? */ 00634 232 setime 1 /* wait for possible more output */ 00636 233 wait awdplt,awrite,atest 00642 234 status 0,dsr,ahngup 00646 235 status 0,suprec,await2 /* quit? */ 236 00652 237 awdplt goto agtwrk /* none, setup to read */ 238 00654 239 ahold tstwrt awrite /* transmit hold, more output? */ end of binary card 00000012 00656 240 setime 0 /* clear all timers and wait for some */ 241 00660 242 wait 0,awrite,atest /* timeout will not happen */ 00664 243 status 0,dsr,ahngup /* we might get hung up though */ 00670 244 status 0,suprec,await2 /* or a quit */ 245 00674 246 atest tstflg tfhang,ahang /* they said to hang it up */ assm 01 12-10-82 15.659 ards_tables page 23 writing part of the tables for ards 00700 247 tstflg tfwabt,adump /* they said to dump it */ 00704 248 tstflg tfxhld,ahold /* are we still hanging on to xmit? */ 00710 249 goto agtwrk /* no, go see what's happening */ assm 01 12-10-82 15.659 ards_tables page 24 quit and newline processing for ards 00712 251 aoquit signal quit /* tell multics */ 00714 252 clrflg tfxhld /* make 00717 253 tstflg tfquit,aqdump /* print new-line now */ 00723 254 goto await1 /* go to right place to wait */ end of binary card 00000013 255 00725 256 aqdump stpchn /* stop the channel */ 00727 257 dmpout /* dump any output */ 00730 258 goto aprtnl /* go print the new-line */ 259 00732 260 atdmp tstflg tfwabt,adump /* test for dump output request */ 00736 261 waitm /* wait some more */ 262 00737 263 adump stpchn /* dump, kill channel */ 00741 264 dmpout /* dump the stuff */ 00742 265 clrflg tfxhld /* on dumpout, we must not hold xmit up */ 00745 266 goto agtwrk /* not needed go get work */ 267 00747 268 aprtnl tstflg tfkybd,anl /* keyboard addressed, undo it */ 269 00753 270 dcwlst /* screen on, send new line */ 00754 271 cmd sxmit /* xmit mode needed */ 00755 272 output (repeat,pad,2,stx,nl) /* go to it */ 00761 273 cmd rxmit+smark /* tell us when done */ 274 00762 275 goto anlwt /* go wait for event */ 276 00764 277 anl contrl rsup+rrec /* drop supxmt to address screen */ 00766 278 setime 5 /* wait 5 seconds for carrier to drop */ 279 00770 280 wait anl,0,0 /* loop trying on timeout */ end of binary card 00000014 00774 281 status 0,cd,aarts /* down it goes, wait for it */ 282 /* to come back up */ 283 01000 284 aarts contrl srts /* bring up rts */ 01002 285 setime 5 01004 286 wait ahngup,0,0 /* lose on timeout */ 01010 287 status cd+cts,0,asnl /* all ready, ship nl */ 01014 288 status 0,dsr,ahngup /* too bad also */ 289 01020 290 asnl dcwlst /* send out the nl string */ 01021 291 cmd sxmit /* enter xmit mode */ 01022 292 output (repeat,pad,40,stx,nl) /* ship out the new line */ 01026 293 cmd rxmit+smark /* marker when done */ 294 01027 295 anlwt setime 1 /* one second for suprec */ 296 01031 297 wait anlt,0,0 /* on timeout, suprec up */ 01035 298 status marker,0,anlf /* if done first, wait for suprec */ 01041 299 status 0,dsr,ahngup /* died here */ assm 01 12-10-82 15.659 ards_tables page 25 quit and newline processing for ards end of binary card 00000015 300 01045 301 anlf tstflg tfkybd,anlf1 /* if kybd was on, wait for suprec */ 01051 302 goto agtwrk /* else all done */ 303 01053 304 anlf1 clrflg tfkybd /* screen on now */ 01056 305 wait agtwrk,0,0 /* on timeout, suprec on - done */ 01062 306 status 0,dsr,ahngup /* hungup phone */ 307 01066 308 anlt setime 5 /* suprec is up, wait for newline to finish */ 01070 309 clrflg tfkybd 01073 310 wait atmout,0,0 01077 311 status marker,0,agtwrk /* done, finally */ 01103 312 status 0,dsr,ahngup /* again? */ assm 01 12-10-82 15.659 ards_tables page 26 hangup and timeout code for ards 01107 314 atstrb tstflg tfrabt,atplit /* check for dumpinput */ end of binary card 00000016 01113 315 atsthg tstflg tfhang,ahang /* are we supposed to hang up line? */ 01117 316 awaitm waitm /* no, go on with what we were doing */ 317 01120 318 atplit tstflg tfplit,awaitm /* if polite, wait till later */ 319 01124 320 admpin stpchn /* kill the channel */ 01126 321 dmprpy /* dump any accumulated replay */ 01127 322 dumpin /* throw away input */ 01130 323 goto agtwrk 324 01132 325 ahang stpchn 01134 326 contrl stat /* make sure we hear hangup */ 01136 327 setime 1 /* make sure there's no more output */ 328 01140 329 wait ahang1,agtwrk,0 /* hang up on timeout */ 01144 330 status 0,dsr,ahngup /* line hung itself up */ 331 01150 332 ahang1 dcwlst /* shut off his terminal */ 01151 333 cmd sxmit+rrec+srts+rsup /* we want to send */ 01152 334 output (repeat,pad,400,stx,dle,eot,etx) /* cheat and delay */ 01157 335 cmd rdtr+smark+rxmit /* drop dtr and marker when done */ 336 01160 337 setime 10 end of binary card 00000017 338 01162 339 wait ahang2,0,0 /* just drop it */ 01166 340 status marker,0,ahngup /* done it */ 01172 341 status 0,dsr,ahngup /* who cares */ 342 01176 343 ahang2 contrl rdtr /* drop channel */ 344 01200 345 ahngup stpchn /* terminal is dead now */ 01202 346 dmpout /* throw away his stuff */ 01203 347 signal hangup 01205 348 clrflg (tflisn,tfhang) /* stop listening now */ 01210 349 goto ahung /* wait for new dialup */ 350 351 01212 352 atmout stpchn /* channel is not responding */ 01214 353 contrl srts+rsup+stat /* try to get channel */ 01216 354 clrflg (tfkybd,tfxhld) /* keyboard is off */ 01221 355 setime 10 356 01223 357 wait atmout,0,0 /* wait for good dataset status */ 01227 358 status cd+cts+suprec+dsr,0,ato2 /* great, go on */ end of binary card 00000018 01233 359 status 0,dsr,ahngup /* well, we tried */ 360 01237 361 ato2 tstflg tfwabt,adump /* abort during timeout? */ assm 01 12-10-82 15.659 ards_tables page 27 hangup and timeout code for ards 01243 362 goto agtwrk /* go do something to him */ end of binary card 00000019 363 end 1246 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 15.661 ards_tables page 28 octal symbol references by sequence no. 1000 aarts 284 281 284 53 adiald 61 56 61 1124 admpin 320 128 145 213 320 451 adorpy 178 175 178 375 adscr 156 153 156 159 737 adump 263 196 247 260 263 361 60 aerase 65 65 72 331 aexh 137 106 107 120 121 137 113 agtwrk 79 32 79 113 116 129 135 139 147 214 217 226 229 231 237 249 266 302 305 311 323 329 362 1150 ahang1 332 329 332 1176 ahang2 343 339 343 1132 ahang 325 31 81 102 246 315 325 1200 ahngup 345 74 93 97 111 125 142 165 167 194 201 207 209 222 234 243 286 288 299 306 312 330 340 341 345 359 654 ahold 239 212 239 248 16 ahung 46 46 59 349 316 aiquit 131 110 124 131 141 143 32 alisn 52 44 48 52 764 anl 277 268 277 280 1053 anlf1 304 301 304 1045 anlf 301 298 301 1066 anlt 308 297 308 1027 anlwt 295 275 295 712 aoquit 251 208 251 307 apltmo 127 119 127 365 apre 150 108 122 150 747 aprtnl 268 134 258 268 725 aqdump 256 253 256 240 arabrt 113 105 113 0 ards 27 27 28 36 167 aread 99 82 96 99 461 aready 183 154 183 251 arplit 118 114 118 411 arts 162 160 162 202 arwait 103 103 148 107 asdial 76 73 76 354 asndta 145 109 123 145 1020 asnl 290 287 290 12 astart 44 30 44 431 astx 169 166 169 506 asupon 196 188 192 196 732 atdmp 260 199 260 674 atest 246 221 233 242 246 1212 atmout 352 91 95 310 352 357 1237 ato2 361 358 361 1120 atplit 318 314 318 1113 atsthg 315 58 119 141 315 46 atstls 58 55 58 1107 atstrb 314 105 314 514 await1 199 199 254 assm 01 12-10-82 15.661 ards_tables page 29 octal symbol references by sequence no. 534 await2 204 200 204 223 235 244 470 await 190 176 178 181 190 1117 awaitm 316 316 318 556 awdone 212 193 202 210 212 632 awdpl 231 216 231 652 awdplt 237 233 237 602 awdrp 219 215 219 625 awdrpd 228 219 228 622 awdrpt 225 221 225 367 awrite 153 80 101 141 153 221 233 239 242 1 begin 34 50 400 break 40 40 110 124 143 1000 brkchr 40 40 109 123 1 cd 40 40 56 92 96 160 166 281 287 358 153 cdown 95 92 95 2 c.rcrq 39 39 40 40 c.rdtr 39 39 40 2 c.rrec 39 39 40 20000 c.rrqs 39 39 40 200 c.rsup 39 39 40 200 c.rtre 39 39 40 10 c.rxmt 39 39 40 1000 c.sbrk 39 39 40 1 c.scrq 39 39 40 20 c.sdtr 39 39 40 2000 c.smrk 39 39 40 1 c.srec 39 39 40 10000 c.srqs 39 39 40 100 c.ssup 39 39 40 400 c.stat 39 39 40 100 c.stre 39 39 40 4000 c.strm 39 39 40 4 c.sxmt 39 39 40 2 cts 40 40 56 166 287 358 100 dialup 40 40 76 20 dle 40 40 334 4 dsr 40 40 56 74 93 97 111 125 142 167 194 201 209 222 234 243 288 299 306 312 330 341 358 359 4 eot 40 40 334 33 esc 40 40 67 3 etx 40 40 86 334 4000 exh 40 40 106 120 14 ff 40 40 67 1 gbf6up 40 40 58 101 hangup 40 40 347 0 k 334 67 86 171 185 272 292 334 40 marker 40 40 73 298 311 340 12 nl 40 40 272 292 403 outmsg 40 40 171 185 0 pad 40 40 67 171 272 292 334 200 prexh 40 40 108 122 assm 01 12-10-82 15.661 ards_tables page 30 octal symbol references by sequence no. 113 quit 40 40 133 251 40 rdtr 40 40 47 335 343 404 repeat 40 40 67 171 272 292 334 2 rrec 40 40 52 85 156 277 333 20000 rrts 40 40 87 200 rsup 40 40 52 156 277 333 353 10 rxmit 40 40 68 87 99 156 172 186 273 293 335 1 scc.df 41 41 77 20 sdtr 40 40 52 200000 s.acr 39 39 40 400000 s.ads 39 39 40 400000 s.bdmk 39 39 40 200000 s.bmk 39 39 40 1000 s.brch 39 39 40 400 s.brk 39 39 40 1 s.cd 39 39 40 2 s.cts 39 39 40 100000 s.dlo 39 39 40 4 s.dsr 39 39 40 4000 s.exh 39 39 40 10000 s.fcse 39 39 40 40000 s.isd 39 39 40 40 s.mark 39 39 40 400000 s.pbyt 39 39 40 200 s.prex 39 39 40 10000 s.prty 39 39 40 40000 s.pwi 39 39 40 200000 s.rabt 39 39 40 100000 s.rbt 39 39 40 2000 s.ring 39 39 40 40000 s.rto 39 39 40 10 s.sprc 39 39 40 20 s.st 39 39 40 100 s.term 39 39 40 20000 s.xte 39 39 40 2000 smark 40 40 68 87 273 293 335 1 srec 40 40 99 10000 srts 40 40 52 162 284 333 353 100 ssup 40 40 87 400 stat 40 40 52 326 353 4000 sterm 40 40 172 186 2 stpchn 46 131 137 256 263 320 325 345 352 2 stx 40 40 67 171 272 292 334 10 suprec 40 40 56 200 208 223 235 244 358 4 sxmit 40 40 66 85 170 184 271 291 333 100 term 40 40 193 202 210 40 tfhang 38 38 81 102 246 315 348 10 tfkybd 38 38 61 82 100 153 174 268 301 304 309 354 100 tflisn 38 38 44 48 348 2000 tfplit 38 38 114 216 318 200 tfquit 38 38 134 253 assm 01 12-10-82 15.661 ards_tables page 31 octal symbol references by sequence no. 10 tfrabt 38 38 79 128 145 213 314 400 tfrply 38 38 175 1000 tfrpon 38 38 179 215 228 10000 tfwabt 38 38 79 196 247 260 361 10000 tfwrd1 361 44 48 61 79 81 82 100 102 114 128 134 145 153 174 175 179 196 212 213 215 216 228 246 247 248 252 253 260 265 268 301 304 309 314 315 318 348 354 361 0 tfwrd2 361 44 48 61 79 81 82 100 102 114 128 134 145 153 174 175 179 196 212 213 215 216 228 246 247 248 252 253 260 265 268 301 304 309 314 315 318 348 354 361 1 tfxhld 38 38 212 248 252 265 354 4 x 334 67 86 171 185 272 292 334 20000 xte 40 40 107 121 ** 46640 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