assm 01 11-12-82 11.505 polled_vip_tables page 1 preface this program will be loaded mod 64 program break 2550 common length 0 v count bits 5 primary symdef entry pvstar 352 secondary symdef entry .chain 200 block length symref 1 begin 2 adbyte 3 cvaddr 4 hungup 5 stpchn end of binary card 00000001 assm 01 11-12-82 11.505 polled_vip_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 ,polled_vip_tables assm 01 11-12-82 11.505 polled_vip_tables page 3 15 pcc off 16 ********************************************************************* 17 * 18 * polled_vip_tables 19 * 20 * these control tables are designed to support the polled vip 21 * communication protocol. both controller polling and 22 * round-robin station polling are available. 23 * 24 * coded november 1978 by jerry stern 25 * 26 ********************************************************************* 27 00000 28 pvip null 29 30 symdef pvstar 31 32 symref begin 33 symref hungup 34 symref adbyte 35 symref cvaddr 36 00000 38 tib assm 01 11-12-82 11.513 polled_vip_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 11-12-82 11.513 polled_vip_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.abf0 equ t.metr+1 absolute address of first permanent buffe 000054 t.abf1 equ t.abf0+1 absolute address of first permanent buffe 000055 t.leng equ t.abf1+1 length of a tib ******************************** * t.stat bits ******************************** 000001 tsfcd bool 000001 carrier detect assm 01 11-12-82 11.513 polled_vip_tables page 6 terminal information block (tib) 000002 tsfcts bool 000002 clear to send 000004 tsfdsr bool 000004 data set ready 000010 tsfsrc bool 000010 supervisory receive 000020 tsfst bool 000020 store status 000040 tsfmrk bool 000040 send marker status 000100 tsftrm bool 000100 send terminate status 000200 tsfrcv bool 000200 receive mode 000400 tsfxmt bool 000400 transmit mode 001000 tsfbrk bool 001000 send line break 002000 tsfdtr bool 002000 data terminal ready 004000 tsfsxt bool 004000 supervisory transmit 004000 tsftre bool 004000 tally runout enable (hdlc) 010000 tsfrts bool 010000 request to send 020000 tsfcrq bool 020000 acu call request ******************************** * tib flags -- t.flg ******************************** 000001 tfwrit bool 000001 output chain present 000002 tfbel bool 000002 send bell as next echoed character 000004 tffdpx bool 000004 full duplex mode 000010 tfkybd bool 000010 keyboard addressed 000020 tfprtr bool 000020 printer addressed 000040 tfhang bool 000040 hangup this line 000100 tflisn bool 000100 answer the phone 000200 tfquit bool 000200 send nl on line break 000400 tfctrl bool 000400 do kybd/printer addressing assm 01 11-12-82 11.513 polled_vip_tables page 7 terminal information block (tib) 001000 tflfec bool 001000 do lf echo on cr 002000 tfcrec bool 002000 do cr echo on lf 004000 tftbec bool 004000 do space echo on tab 010000 tfwabt bool 010000 do write abort 020000 tfauto bool 020000 this is hsla autobaud line 040000 tfeotx bool 040000 eot expected from 2741 100000 tfisus bool 100000 input suspended 200000 tfecpx bool 200000 echoplex mode 400000 tfosus bool 400000 output suspended ******************************** * second word of tib flags ******************************** 000001 tfxhld bool 000001 hold transmit on 000002 tfdild bool 000002 terminal is dialed up 000004 tfercv bool 000004 enter receive mode 000010 tfrabt bool 000010 do read abort 000020 tfacu bool 000020 do dial out 000040 tfifc bool 000040 input flow control mode 000100 tfofc bool 000100 output flow control mode 000200 tfupsf bool 000200 terminal is upshifted now 000400 tfrply bool 000400 replay mode 001000 tfrpon bool 001000 replay is occurring now 002000 tfplit bool 002000 polite mode 004000 tfblak bool 004000 asynchronous block acknowledgement 010000 tfcrcv bool 010000 'control' receive mode 020000 tfmrcv bool 020000 'message' receive mode assm 01 11-12-82 11.513 polled_vip_tables page 8 terminal information block (tib) 040000 tffrmi bool 040000 frame mode 100000 tffip bool 100000 frame in progress 200000 tfsftr bool 200000 terminal is shifting device 400000 tfpfnl bool 400000 line is in prefixnl mode ********************************* * third word of tib flags ********************************* 000001 tfbkpt bool 000001 line is stopped at breakpoint 000002 tfitim bool 000002 timeout if input stops 000004 tfkpar bool 000004 keep parity bits 000010 tfecho bool 000010 echoing has priority over output (lsla) 000020 tfbral bool 000020 break on all characters 000040 tfsked bool 000040 input timeout routine scheduled 000100 tf8in bool 000100 don't strip input parity 000200 tf8out bool 000200 don't strip output parity 000400 tfoddp bool 000400 odd parity 001000 tfabf0 bool 001000 t.afb0 available 002000 tfsoip bool 002000 suspension of output in progress 004000 tforp bool 004000 output resume pending (waiting until tro) 010000 tfabf1 bool 010000 t.abf1 available 020000 tfmask bool 020000 channel has been masked for excessive int ********************************* * redefined tib flags in t.flg ********************************* 000020 tfdlup equ tfprtr line is on dialup modem 00000 39 meters assm 01 11-12-82 11.513 polled_vip_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 000750 .mblow set 488 buffer allocated in low memory 000030 .mleng equ .mpanf+2-.mdilc length of system-wide meters assm 01 11-12-82 11.513 polled_vip_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 11-12-82 11.513 polled_vip_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 40 csbits assm 01 11-12-82 11.513 polled_vip_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 11-12-82 11.513 polled_vip_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 11-12-82 11.513 polled_vip_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 41 tconst assm 01 11-12-82 11.513 polled_vip_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 11-12-82 11.513 polled_vip_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 11-12-82 11.513 polled_vip_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 11-12-82 11.513 polled_vip_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 assm 01 11-12-82 11.513 polled_vip_tables page 19 polled vip cct 00000 44 cctdef 45 000063 46 ct.eot equ ct.sw+ct.t0s+ct.syn 47 48 00000 49 base 64 00000 50 vipcct null * cct for polled vip 51 * table 0 - terminate on eot, ignore syn 52 00000 000000 0 53 vfd 9/ct.ncs,9/ct.ncs * 000 001 00001 000100 0 54 vfd 9/ct.ncs,9/ct.tb1 * 002 etx 00002 063000 0 55 vfd 9/ct.eot,9/ct.ncs * eot 005 00003 000000 0 56 vfd 9/ct.ncs,9/ct.ncs * 006 007 00004 000000 0 57 vfd 9/ct.ncs,9/ct.ncs * 010 011 00005 000000 0 58 vfd 9/ct.ncs,9/ct.ncs * 012 013 00006 000000 0 59 vfd 9/ct.ncs,9/ct.ncs * 014 015 00007 000000 0 60 vfd 9/ct.ncs,9/ct.ncs * 016 017 00010 000000 0 61 vfd 9/ct.ncs,9/ct.ncs * 020 021 00011 000000 0 62 vfd 9/ct.ncs,9/ct.ncs * 022 023 00012 000000 0 63 vfd 9/ct.ncs,9/ct.ncs * 024 025 00013 006000 0 64 vfd 9/ct.ign,9/ct.ncs * syn 027 00014 000000 0 65 vfd 9/ct.ncs,9/ct.ncs * 030 031 00015 000000 0 66 vfd 9/ct.ncs,9/ct.ncs * 032 033 00016 000000 0 67 vfd 9/ct.ncs,9/ct.ncs * 034 035 00017 000000 0 68 vfd 9/ct.ncs,9/ct.ncs * 036 037 00020 69 dup 1,48 00020 000000 0 70 vfd 9/ct.ncs,9/ct.ncs * 040 - 177 end of binary card 00000002 71 72 73 * table 1 - store lrc char and switch to table 0 74 00100 75 dup 1,64 00100 000000 0 76 vfd 9/ct.ncs,9/ct.ncs * 000 - 177 end of binary card 00000004 77 78 79 00200 80 start pvip assm 01 11-12-82 11.513 polled_vip_tables page 20 polled vip tib extension symbols 00212 82 tibex poladr,char /* poll address */ 00212 83 tibex argadr,char /* address char subroutine arg */ 00212 84 tibex argsta,char /* status char subroutine arg */ 00212 85 tibex inadr,char /* input message address */ 00212 86 tibex insta,char /* input message status char */ 00212 87 tibex outdev,char /* output message device address */ 00212 88 tibex savdev,char /* pending output message device address */ 00212 89 tibex repadr,char /* station address for reply */ 00212 90 tibex reptyp,char /* reply type - ack or nak */ 00212 91 tibex dspsta,char /* display status */ 00212 92 tibex prtsta,char /* printer status */ 00212 93 tibex blkend,char /* end of block - etx or etb */ 94 00212 95 tibex stat0,word /* line status/line control words */ 00212 96 tibex stat1,word 00212 97 tibex stat2,word 00212 98 tibex stat3,word 00212 99 tibex nsbchn,word /* number of subchannels */ 00212 100 tibex sbchn1,word /* subchannel mask - part 1 */ 00212 101 tibex sbchn2,word /* subchannel mask - part 2 */ 00212 102 tibex curadr,word /* current poll address */ 00212 103 tibex inkcnt,word /* count of consecutive naks for bad input */ 00212 104 tibex onkcnt,word /* count of consecutive naks for bad output */ 00212 105 tibex itocnt,word /* count of consecutive timeouts */ 00212 106 tibex msgcnt,word /* count of status messages in input frame */ 00212 107 tibex qcount,word /* count of consecutive quiescent responses */ 00212 108 tibex ptime,word /* pause time between quiescent response cycles * 00212 109 tibex wrtcnt,word /* count of consecutive writes */ 00212 110 tibex echom1,word /* echo mask - part 1 */ 00212 111 tibex echom2,word /* echo mask - part 2 */ 112 113 00212 114 tibex tbxflg,word /* flag word */ 000001 115 idle bool 000001 /* on if polling stopped */ 000002 116 quiet bool 000002 /* on if got quiescent input frame */ 000004 117 datrcv bool 000004 /* on if got input during output */ 000010 118 rflag bool 000010 /* on if reading while writing */ 000020 119 textsw bool 000020 /* on if got text msg in input frame */ 000040 120 rderr bool 000040 /* on if error reading input frame */ 000100 121 cntrlr bool 000100 /* on if controller polling enabled */ 000200 122 echosw bool 000200 /* on if crlf echoing enabled */ 000400 123 afrsw bool 000400 /* on to await first response */ 001000 124 rdpar bool 001000 /* on if parity error in input frame */ 002000 125 blderr bool 002000 /* on if bdbld done */ 126 /* return label for error handling */ 00212 127 tibex rtnlbl,word assm 01 11-12-82 11.513 polled_vip_tables page 21 polled vip constant symbols 129 *** control characters *** 130 000140 131 dspdev bool 140 /* display device address */ 000150 132 prtdev bool 150 /* printer device address */ 000027 133 etb bool 027 000032 134 prt bool 032 /* printer message type */ 000010 135 ctlpol bool 010 /* controller poll address */ 000400 136 eof bool 400 /* special end-of-frame marker */ 000156 137 pgof bool 156 /* page overflow status char */ 138 139 140 *** line status types *** 141 000001 142 lstpst equ 1 /* printer status */ 000002 143 lstito equ 2 /* input timeout */ 000003 144 lstink equ 3 /* input nak */ 000004 145 lstonk equ 4 /* output nak */ 000005 146 lstbof equ 5 /* bad output frame */ 000006 147 lstoto equ 6 /* output timeout */ 000007 148 lstdst equ 7 /* display status */ 000010 149 lstchu equ 8 /* i hung up the channel */ 150 151 152 *** line control types *** 153 000001 154 lctssp equ 1 /* start station polling */ 000002 155 lctscp equ 2 /* start controller polling */ 000003 156 lctstp equ 3 /* stop polling */ 000004 157 lctspt equ 4 /* set pause time */ 000005 158 lctsem equ 5 /* set echo mask */ 000006 159 lctafr equ 6 /* awit first poll response */ 160 161 162 *** inscan control strings *** 163 00212 164 quiet1 chstr (rescan,match,eot) 00214 165 quiet2 chstr (match,eot) 00216 166 getsoh chstr (rescan,match,soh,ignore) 00221 167 mormsg chstr (search,soh,ignore) 00223 168 regmsg chstr (strlrc,movchr,inadr,nxtchr,movchr,insta,nxtchr,nxtchr,nx 00223 169 etc tchr,match,stx,nxtchr,serch2,etx,etb,movchr,blkend,ignore 00223 170 etc ,cmplrc,ignore) end of binary card 00000005 00236 171 chgadr chstr (replac,repadr) 00240 172 skpmsg chstr (serch2,etx,etb,ignore,ignore,match,soh,ignore) 173 174 175 *** outscn control strings *** 176 00245 177 outfrm chstr (rescan,endchn,match,eof,replac,eot,seteom) 00251 178 outadr chstr (rescan,search,soh,ignore,movchr,repadr,search,etx,ignore assm 01 11-12-82 11.513 polled_vip_tables page 22 polled vip constant symbols 00251 179 etc ,ignore,search,soh,ignore,movchr,outdev) 00261 180 setlrc chstr (rescan,search,soh,ignore,strlrc,search,etx,ignore,outlrc 00261 181 etc ) 00266 182 nxtlrc chstr (search,soh,ignore,strlrc,search,etx,ignore,outlrc) 00273 183 setpol chstr (rescan,search,soh,ignore,replac,poladr) 184 185 186 *** bldmsg control strings *** 187 00277 188 polmsg chstr (syn,syn,syn,syn,soh,poladr,null,space,space,stx,etx,spac 00277 189 etc e,syn,syn,syn,syn,eot,seteom) end of binary card 00000006 00311 190 repmsg chstr (syn,syn,syn,syn,soh,repadr,null,space,space,stx,etx,spac 00311 191 etc e,syn,syn,syn,syn,soh,dspdev,reptyp,space,space,stx,etx,s 00311 192 etc pace,syn,syn,syn,syn,eot,seteom) 193 00331 194 echmsg chstr (syn,syn,syn,syn,soh,repadr,null,space,space,stx,etx,spac 00331 195 etc e,syn,syn,syn,syn,soh,dspdev,reptyp,space,space,stx,cr,nl 00331 196 etc ,etx,space,syn,syn,syn,syn,eot,seteom) assm 01 11-12-82 11.513 polled_vip_tables page 23 polled vip dialup and initialization 198 ********************************************************************* 199 * 200 * wait for line to dial up, i.e., wait for dsr to come on. 201 * 202 ********************************************************************* 203 00352 204 pvstar tstflg tflisn,lisn /* told to listen ? */ end of binary card 00000007 00356 205 wait 0,0,begin /* no, start over */ 206 00362 207 lisn tstflg tfdlup,dulisn /* handle dialup line */ 00366 208 contrl sdtr+srts+stat /* ready full duplex line */ 00370 209 wait 0,0,cklisn 00374 210 status cts+dsr,0,ckdlup 211 00400 212 dulisn contrl sdtr+rrts+stat /* ready halfduplex line */ 00402 213 wait 0,0,cklisn 00406 214 status dsr,0,ckdlup 215 00412 216 ckdlup setime 1 /* wait for dsr to stabilize */ 00414 217 wait ckdsr,0,cklisn 218 00420 219 ckdsr contrl stat /* find out if dsr is still up */ end of binary card 00000008 00422 220 wait 0,0,cklisn 00426 221 status dsr,0,dialed /* yes, this is a real dial up */ 00432 222 status 0,dsr,hungup /* no, dsr vanished */ 223 00436 224 cklisn tstflg tfhang,hang 00442 225 tstflg tflisn,golisn 00446 226 goto hungup 00450 227 golisn waitm 228 229 230 ********************************************************************* 231 * 232 * line has dialed up. initialize and signal dialup. 233 * 234 ********************************************************************* 235 00451 236 dialed getext ,hang1 /* cant do anything without a tib extension */ 00454 237 setcct vipcct 00456 238 config /* configure send and rcv odd parity */ 00457 239 smode fg.lpr+fg.lps+fg.lpo 240 00460 241 setflg tfmrcv /* use message rcv mode */ 00463 242 setlcl ptime,1 /* default pause time = 1 sec */ 243 00466 244 signal dialup assm 01 11-12-82 11.513 polled_vip_tables page 24 polled vip basic work loop 246 ********************************************************************* 247 * 248 * enter idle state. do nothing until told to start polling. 249 * 250 ********************************************************************* 251 00470 252 setlcf tbxflg,idle /* set idle state */ end of binary card 00000009 00473 253 isleep wait 0,0,tstate /* wait for a line control order */ 00477 254 status 0,dsr,hang 255 00503 256 notidl clrlcf tbxflg,idle /* test-state handler transfers here */ 00506 257 dumpin 00507 258 calsub dmpall 259 00511 260 setlcl qcount,0 /* initialize a few things */ 00514 261 setlcl wrtcnt,0 00517 262 clrlcf tbxflg,quiet 00522 263 setchr savdev,nochar 00524 264 setlcf tbxflg,afrsw 265 266 267 ********************************************************************* 268 * 269 * find something to do. if there is output, send it. otherwise, 270 * send a poll. before polling, however, see if we should pause. 271 * 272 ********************************************************************* 273 00527 274 getwrk setlcl inkcnt,0 /* reset error counters */ 00532 275 setlcl onkcnt,0 00535 276 setlcl itocnt,0 end of binary card 00000010 277 00540 278 tstlcl wrtcnt,2,forcep /* force poll after 2 consecutive writes */ 00544 279 tstwrt writef /* have any output ? */ 00546 280 tstlcf tbxflg,idle,isleep /* if idle, go to sleep */ 281 00552 282 tstlcf tbxflg,quiet,qcycle /* last response was quiescent ? */ 00556 283 forcep setlcl qcount,0 /* no, reset counter */ 00561 284 goto poll 285 00563 286 qcycle tstlcl ptime,0,poll /* no pause wanted */ 00567 287 tstlcf tbxflg,cntrlr,pause /* controller polling enabled ? */ 00573 288 addlcl qcount,1 /* no, bump counter */ 00576 289 tstlcv qcount,nsbchn,pause /* finished quiescent cycle ? */ 00602 290 goto poll /* no */ 291 00604 292 pause setlcl qcount,0 /* reset counter */ end of binary card 00000011 00607 293 setimv ptime /* set timer */ assm 01 11-12-82 11.513 polled_vip_tables page 25 polled vip basic work loop 00611 294 wait poll,writef,tstate /* wait for timer or anything else */ 00615 295 status 0,dsr,hang assm 01 11-12-82 11.513 polled_vip_tables page 26 polled vip basic work loop 297 ********************************************************************* 298 * 299 * send output if we have a complete frame. 300 * 301 ********************************************************************* 302 00621 303 writef addlcl wrtcnt,1 /* bump write counter */ 00624 304 clrlcf tbxflg,quiet /* for output, ignore quiescent response */ 00627 305 ckeot outscn outfrm,noeot /* is there a complete frame ? */ 00632 306 signal sndout /* yes, start the next one coming */ 307 00634 308 outscn outadr,badout /* repadr <- select addr, outdev <- device addr * 00637 309 setchr savdev,outdev /* save device address of this output */ 00641 310 setchr argadr,repadr 00643 311 calasm swapps /* convert select addr to poll addr */ 00646 312 setchr poladr,argadr /* output frame ends with poll to this addr */ 00650 313 meterm 1 00652 314 goto sndfrm /* send it */ 315 00654 316 badout dmpout /* ugh, a bad output frame */ 00655 317 setchr savdev,nochar end of binary card 00000012 00657 318 setlcl stat0,lstbof /* indicate bad output frame */ 00662 319 linsta stat0 /* send line status */ 00664 320 goto getwrk 321 00666 322 noeot signal sndout /* ask for rest of frame */ 00670 323 meter2 m.cnt4,1 00673 324 clrflg tfwabt /* so we can detect write abort at next wait */ 00676 325 setime 5 /* wait at most 5 secs */ 00700 326 wait otosta,ckeot,tswabt 00704 327 status 0,dsr,hang 328 00710 329 otosta setlcl stat0,lstoto /* indicate output timeouts status */ 00713 330 linsta stat0 /* send line status */ 00715 331 dmpout /* discard incomplete output */ 00716 332 goto getwrk assm 01 11-12-82 11.513 polled_vip_tables page 27 polled vip basic work loop 334 ********************************************************************* 335 * 336 * build a poll message. 337 * 338 ********************************************************************* 339 00720 340 poll setlcl wrtcnt,0 /* reset write counter */ 00723 341 setlcf tbxflg,quiet /* assume quiescent response */ end of binary card 00000013 00726 342 tstlcf tbxflg,cntrlr,cpoll /* controller polling enabled ? */ 343 00732 344 calasm getspa /* get station poll address */ 00735 345 setchr argadr,poladr 00737 346 calasm swapps /* convert to select address */ 00742 347 setchr repadr,argadr /* and save for reply */ 00744 348 goto poll1 349 00746 350 bldfld setlcl stat0,lstchu /* hung up the channel */ 00751 351 linsta stat0 /* tell host */ 00753 352 goto hang /* and say goodbye */ 353 /* if i've been here, tell host and hangup */ 00755 354 bdbld tstlcf tbxflg,blderr,bldfld 00761 355 setime 1 /* wait 1 sec and then retry */ 00763 356 wait bldwt,0,tstate 00767 357 status 0,dsr,hang 00773 358 bldwt setlcf tbxflg,blderr /* note that i've been here */ end of binary card 00000014 00776 359 gotov rtnlbl /* back to where i'm told */ 360 361 01000 362 cpoll setchr poladr,ctlpol /* prepare for controller poll */ 01002 363 setchr repadr,nochar /* don't know who will respond */ 01004 364 poll1 clrlcf tbxflg,blderr /* reset */ 01007 365 setlcl rtnlbl,poll1a /* where to go */ 01012 366 poll1a bldmsg polmsg,bdbld /* build the poll message */ 01015 367 poll2 clrlcf tbxflg,blderr /* reset */ 01020 368 setlcl rtnlbl,poll2a 01023 369 poll2a outscn setlrc,bdbld 01026 370 poll3 setchr outdev,nochar /* no output device, i.e., not a select msg */ assm 01 11-12-82 11.513 polled_vip_tables page 28 polled vip basic work loop 372 ********************************************************************* 373 * 374 * send the output frame and wait for a response. 375 * 376 ********************************************************************* 377 01030 378 sndfrm calsub writer /* enter rcv mode and write the frame */ 01032 379 tstlcf tbxflg,datrcv,read /* got input during write ? */ 01036 380 tstlcf tbxflg,rdpar,read /* got par err for input during write? */ 381 01042 382 setime 3 /* set 3 second timeout */ end of binary card 00000015 01044 383 wait timout,0,tstate 01050 384 status 0,dsr,hang 01054 385 status brkchr,0,read 01060 386 status exh,0,exhsta 01064 387 status xte,0,xtesta 01070 388 status parity,0,parsta 389 01074 390 timout meter2 m.cnt3,1 01077 391 calsub stprcv /* timed out, leave rcv mode */ 01101 392 dumpin /* dump any incomplete input */ 01102 393 clrlcf tbxflg,quiet /* did not get quiescent response */ 01105 394 addlcl itocnt,1 /* bump counter */ 01110 395 tstlcl itocnt,3,itosta /* too many timeouts ? */ end of binary card 00000016 01114 396 goto sndfrm /* not yet, send it again */ 397 01116 398 itosta tstlcf tbxflg,afrsw,dmpfrm /* skip line status if waiting for response * 01122 399 setlcl stat0,lstito /* indicate input timeout status */ 01125 400 setchr argadr,repadr 01127 401 calasm ldstat /* put repadr in stat1 */ 01132 402 linsta stat0 /* send line status */ 403 01134 404 dmpfrm dmpout /* dump whatever output we had */ 01135 405 cmpchr outdev,nochar,rstest /* if poll, check for pending output */ 01140 406 setchr savdev,nochar /* no pending output */ 01142 407 goto getwrk /* better luck next time */ 408 01144 409 parsta setlcf tbxflg,rdpar /* parity error on input */ 01147 410 goto read /* meter it later */ 01151 411 exhsta meter2 m.exh,1 01154 412 goto read 01156 413 xtesta meter1 m.xte,1 end of binary card 00000017 assm 01 11-12-82 11.513 polled_vip_tables page 29 polled vip basic work loop 415 ********************************************************************* 416 * 417 * got an input frame. see what messages it contains. 418 * 419 ********************************************************************* 420 01161 421 read calsub stprcv /* exit rcv mode */ 01163 422 clrlcf tbxflg,afrsw /* no longer awaiting first response */ 01166 423 setlcl itocnt,0 /* did not time out */ 01171 424 tstlcf tbxflg,rdpar,badpar /* parity error in input frame */ 01175 425 setchr reptyp,ack /* default reply is an ack */ 01177 426 setchr dspsta,nak /* default display status is nak */ 01201 427 setchr prtsta,nochar /* default printer status is none */ 01203 428 clrlcf tbxflg,textsw+rderr /* init these flags */ 01206 429 setlcl msgcnt,0 /* init status message count */ 430 01211 431 inscan quiet1,rdsoh /* type 1 quiescent frame ? */ 01214 432 goto endfrm /* yes */ 01216 433 rdsoh inscan getsoh,sndnak /* frame must start with soh */ 01221 434 inscan quiet2,notqui /* type 2 quiescent message ? */ 01224 435 goto endfrm /* yes */ 01226 436 notqui clrlcf tbxflg,quiet /* not a quiescent frame */ end of binary card 00000018 437 01231 438 rdloop setchr insta,nochar /* init message status */ 01233 439 setchr inadr,nochar /* init message address */ 01235 440 setchr blkend,nochar /* init block end char */ 01237 441 inscan regmsg,badmsg /* is there a regular message ? */ 01242 442 goto goodms /* yes, looks good */ 443 01244 444 badmsg setlcf tbxflg,rderr /* a sick message */ 01247 445 goto nxtmsg 446 01251 447 badpar meter1 m.par,1 /* meter the parity error */ 01254 448 clrlcf tbxflg,rdpar /* reset the flag for next time */ 01257 449 goto sndnak /* nak the input frame */ 450 01261 451 goodms cmpchr poladr,ctlpol,ckmcnt /* sent controller poll ? */ 01264 452 goto notpol /* no */ 01266 453 ckmcnt tstlcl msgcnt,0,ispol /* yes, is this first message ? */ 01272 454 goto notpol /* no */ 455 01274 456 ispol setchr argadr,inadr /* get poll addr of responding station */ 01276 457 calasm swapps /* convert to select address */ end of binary card 00000019 01301 458 setchr repadr,argadr /* that's who we reply to */ 01303 459 goto nxtmsg 460 01305 461 notpol cmpchr insta,null,txtmsg /* got a text message */ 01310 462 cmpchr insta,prt,txtmsg /* likewise */ 463 assm 01 11-12-82 11.513 polled_vip_tables page 30 polled vip basic work loop 01313 464 cmpchr inadr,dspdev,dspsav /* got display status */ 01316 465 cmpchr inadr,prtdev,prtsav /* got printer status */ 466 01321 467 goto nxtmsg /* got garbage */ 468 01323 469 dspsav setchr dspsta,insta /* save display status */ 01325 470 goto nxtmsg 471 01327 472 prtsav setchr prtsta,insta /* save printer status */ 473 01331 474 nxtmsg inscan mormsg,endfrm /* more messages in input frame ? */ 01334 475 addlcl msgcnt,1 /* yes, bump status message count */ 01337 476 goto rdloop /* process next message */ 477 01341 478 endfrm dumpin /* discard the input */ 01342 479 tstlcf tbxflg,rderr,sndnak /* might have lost text msg, so send nak */ end of binary card 00000020 01346 480 goto dostat 481 482 483 ********************************************************************* 484 * 485 * got a text message. there can only be one text message per 486 * frame and it must be the last message. see if we sent a 487 * controller poll. if so, the first message of the frame 488 * will be a poll message which contains the responding station 489 * address. if not, we must change the device address in the 490 * text message to a station address to identify the message 491 * source. 492 * 493 ********************************************************************* 494 01350 495 txtmsg tstlcf tbxflg,rderr,sndnak /* get a clean frame */ 01354 496 setlcf tbxflg,textsw /* remember getting text message */ 01357 497 cmpchr poladr,ctlpol,sndtxt /* sent controller poll ? */ 498 01362 499 inscan getsoh,sndnak /* position to start of input frame */ 01365 500 findtx tstlcl msgcnt,0,chgtxt /* status message next ? */ 01371 501 addlcl msgcnt,-1 /* yes, decrement status message count */ 01374 502 inscan skpmsg,sndnak /* skip the status message */ 01377 503 goto findtx /* keep scanning for text message */ 504 01401 505 chgtxt inscan chgadr,sndnak /* change the address */ 01404 506 sndtxt meterm 0 01406 507 sendin /* send input to multics */ 01407 508 goto reply /* send ack for text message */ assm 01 11-12-82 11.513 polled_vip_tables page 31 polled vip basic work loop 510 ********************************************************************* 511 * 512 * got bad input. reply by sending a nak. 513 * 514 ********************************************************************* 515 01411 516 sndnak dumpin /* discard bad input */ 01412 517 meter2 m.cnt1,1 end of binary card 00000021 01415 518 clrlcf tbxflg,quiet /* not a quiescent response */ 01420 519 setchr reptyp,nak /* reply type is nak */ 01422 520 cmpchr repadr,nochar,dostat /* station adress known ? */ 01425 521 tstlcl inkcnt,3,inksta /* have we sent too many naks ? */ 01431 522 addlcl inkcnt,1 /* not yet, bump count */ 01434 523 goto reply 524 01436 525 inksta setlcl stat0,lstink /* indicate input nak status */ 01441 526 setchr argadr,repadr 01443 527 calasm ldstat /* put repadr in stat1 */ 01446 528 linsta stat0 /* send line status */ 529 530 531 ********************************************************************* 532 * 533 * reply to input frame. send ack or nak frame. 534 * 535 ********************************************************************* 536 01450 537 reply cmpchr reptyp,nak,reply3 /* ordinary nak message */ 01453 538 tstlcf tbxflg,echosw,reply2 /* echoing enabled ? */ 01457 539 goto reply3 /* no */ 540 01461 541 reply2 calasm testem /* test echo mask for current station */ end of binary card 00000022 01464 542 tstlcl temflg,0,reply3 /* temflg = 0 means don't echo */ 01470 543 clrlcf tbxflg,blderr /* first time here */ 01473 544 setlcl rtnlbl,repl2a /* set to come back there */ 01476 545 repl2a bldmsg echmsg,bdbld /* build reply frame with echo */ 01501 546 goto reply4 547 01503 548 reply3 clrlcf tbxflg,blderr /* reset */ 01506 549 setlcl rtnlbl,repl3a 01511 550 repl3a bldmsg repmsg,bdbld /* build ordinary reply frame */ 551 01514 552 reply4 clrlcf tbxflg,blderr /* reset */ 01517 553 setlcl rtnlbl,repl4a 01522 554 repl4a outscn setlrc,bdbld /* put lrc on select message */ 01525 555 clrlcf tbxflg,blderr /* reset */ 01530 556 setlcl rtnlbl,repl4b end of binary card 00000023 01533 557 repl4b outscn nxtlrc,bdbld /* put lrc on status message */ assm 01 11-12-82 11.513 polled_vip_tables page 32 polled vip basic work loop 558 01536 559 calsub write /* send it */ 01540 560 dmpout /* and throw it away */ assm 01 11-12-82 11.513 polled_vip_tables page 33 polled vip basic work loop 562 ********************************************************************* 563 * 564 * process saved input status. delete output unless it must 565 * be resent. note that the receipt of text input from a 566 * display implies that any output sent was ignored and must 567 * be resent. 568 * 569 ********************************************************************* 570 01541 571 dostat cmpchr reptyp,nak,dspck /* did we nak the input ? */ 01544 572 setlcl inkcnt,0 /* no, reset counter */ 573 01547 574 dspck cmpchr outdev,dspdev,dspsnt /* sent display output ? */ 01552 575 goto prtck1 /* no */ 576 01554 577 dspsnt setchr argsta,dspsta /* set arg for cknak subr */ 01556 578 calsub cknak /* check for nak status */ 01560 579 cmpchr argsta,nak,prtck2 /* was it nak ? */ 01563 580 cmpchr dspsta,pgof,dsplst /* was it pgof ? */ 01566 581 goto txtck /* no */ 582 01570 583 dsplst setlcl stat0,lstdst /* send line status */ 01573 584 setchr argadr,repadr 01575 585 calasm ldstat /* put repadr and dspsta in stat1 */ 01600 586 linsta stat0 end of binary card 00000024 587 01602 588 txtck tstlcf tbxflg,textsw,prtck2 /* text message received ? */ 01606 589 goto delout /* no, discard the output */ 590 01610 591 prtck1 cmpchr outdev,prtdev,prtsnt /* sent printer output ? */ 01613 592 goto prtck2 /* no */ 593 01615 594 prtsnt setchr argsta,prtsta /* set arg for cknak subr */ 01617 595 calsub cknak /* check for nak status */ 01621 596 cmpchr argsta,nak,rptest /* was it nak ? */ 597 01624 598 delout dmpout /* discard the output frame */ 01625 599 setchr savdev,nochar /* no output pending */ 600 01627 601 prtck2 cmpchr prtsta,nochar,rptest /* got printer status ? */ 01632 602 setlcl stat0,lstpst /* indicate printer status */ 01635 603 setchr argadr,repadr 01637 604 setchr argsta,prtsta 01641 605 calasm ldstat /* put repadr and prtsta in stat1 */ 01644 606 linsta stat0 /* send line status */ assm 01 11-12-82 11.513 polled_vip_tables page 34 polled vip basic work loop 608 ********************************************************************* 609 * 610 * see if it is necessary to repoll the same station. 611 * 612 ********************************************************************* 613 01646 614 rptest cmpchr repadr,nochar,ckdel /* station adress known ? */ end of binary card 00000025 01651 615 cmpchr reptyp,nak,rptst2 /* did we nak the input ? */ 01654 616 tstlcf tbxflg,textsw,cketb /* got a text message ? */ 01660 617 goto ckdel /* no, don't have to repoll */ 618 01662 619 cketb cmpchr blkend,etb,rptst2 /* did text block end with etb ? */ 01665 620 goto ckdel /* no */ 621 01667 622 rptst2 cmpchr outdev,nochar,rptst3 /* last output was a poll, reuse it */ 01672 623 goto poll1 /* build a poll message */ 624 01674 625 rptst3 cmpchr poladr,ctlpol,rptst4 /* was last poll to controller ? */ 01677 626 goto poll3 /* no, already have station poll */ 627 01701 628 rptst4 setchr argadr,repadr /* get station select address */ 01703 629 calasm swapps /* convert to poll address */ 01706 630 setchr poladr,argadr 01710 631 clrlcf tbxflg,blderr /* reset */ 01713 632 setlcl rtnlbl,rptst5 01716 633 rptst5 outscn setpol,bdbld /* update into poll message */ end of binary card 00000026 01721 634 goto poll2 635 01723 636 ckdel cmpchr outdev,nochar,delpol /* was last output a poll ? */ 01726 637 goto rstest /* no */ 01730 638 delpol dmpout /* yes, delete it */ 639 640 641 ********************************************************************* 642 * 643 * check for pending output to be resent. 644 * 645 ********************************************************************* 646 01731 647 rstest cmpchr savdev,nochar,getwrk /* if no saved output, start at top */ 01734 648 setchr outdev,savdev /* saved output now current again */ 01736 649 goto sndfrm /* resend it */ assm 01 11-12-82 11.513 polled_vip_tables page 35 polled vip test-state handler 651 ********************************************************************* 652 * 653 * test-state handler. 654 * 655 ********************************************************************* 656 01740 657 tstate tstflg tfhang,hang 01744 658 linctl stat0,tsret /* check for line control */ 01747 659 tstlcl stat0,lctssp,setspl /* start station polling */ 01753 660 tstlcl stat0,lctscp,setcpl /* start controller polling */ 01757 661 tstlcl stat0,lctstp,poloff /* stop polling */ 01763 662 tstlcl stat0,lctspt,setpt /* set pause time */ end of binary card 00000027 01767 663 tstlcl stat0,lctsem,echomk /* set echo mask */ 01773 664 tstlcl stat0,lctafr,setafr /* set await first response switch */ 01777 665 tsret waitm 666 02000 667 setspl tstlcl stat1,0,poloff /* if zero subchan count, stop polling */ 02004 668 tstlcl stat2,0,cksta3 /* first part of subchan mask is zero ? */ 02010 669 goto dossp /* no */ 02012 670 cksta3 tstlcl stat3,0,poloff /* if zero subchan mask, stop polling */ 671 02016 672 dossp setlcv nsbchn,stat1 /* copy subchannel count */ 02021 673 setlcv sbchn1,stat2 /* copy subchannel mask */ 02024 674 setlcv sbchn2,stat3 02027 675 setlcl curadr,0 /* init current station address */ 02032 676 clrlcf tbxflg,cntrlr /* disable controller polling */ 677 02035 678 tstlcf tbxflg,idle,notidl /* if idle, go to work */ end of binary card 00000028 02041 679 waitm 680 02042 681 setcpl setlcf tbxflg,cntrlr /* enable controller polling */ 02045 682 tstlcf tbxflg,idle,notidl /* if idle, go to work */ 02051 683 waitm 684 02052 685 poloff setlcf tbxflg,idle /* enter idle state */ 02055 686 waitm 687 02056 688 setpt setlcv ptime,stat1 /* set pause time */ 02061 689 waitm 690 02062 691 echomk setlcv echom1,stat2 /* save echo mask */ 02065 692 setlcv echom2,stat3 02070 693 tstlcl stat1,0,noecho /* stat1 = 0 means null mask */ 02074 694 setlcf tbxflg,echosw 02077 695 waitm 02100 696 noecho clrlcf tbxflg,echosw 02103 697 waitm 698 02104 699 setafr setlcf tbxflg,afrsw /* await first poll response */ assm 01 11-12-82 11.513 polled_vip_tables page 36 polled vip test-state handler end of binary card 00000029 02107 700 waitm 701 02110 702 tswabt tstflg tfwabt,wabort /* check for write abort */ 02114 703 goto tstate /* nope, do standard test-state stuff */ 02116 704 wabort dmpout /* discard output */ 02117 705 goto getwrk assm 01 11-12-82 11.513 polled_vip_tables page 37 polled vip hangup and punt handlers 707 ********************************************************************* 708 * 709 * come here to hang up the line. 710 * 711 ********************************************************************* 712 02121 713 hang unwind /* in case we jumped out of a subroutine */ 02122 714 retext /* free tib extension */ 02123 715 hang1 stpchn 02125 716 dumpin 02126 717 calsub dmpall 718 02130 719 contrl rdtr /* drop dtr */ 02132 720 clrflg (tflisn,tfhang) 02135 721 signal hangup 02137 722 goto hungup assm 01 11-12-82 11.513 polled_vip_tables page 38 polled vip write subroutine 724 ************************************************************************ 725 * 726 * subroutine to write the current output stuff. 727 * it can be called at "write", in which case only output 728 * is done, or it can be called at "writer", which 729 * also sets receive mode during the output. the flag 730 * "datrcv" in the tib ext will be set if data is read while 731 * the output is in progress. 732 * 733 * this routine was adapted from the bsc_tables counterpart 734 * 735 ************************************************************************ 736 02141 737 write clrlcf tbxflg,rflag /* remember which entry */ 02144 738 goto write1 739 02146 740 writer setlcf tbxflg,rflag 741 02151 742 write1 setime 0 02153 743 clrlcf tbxflg,datrcv end of binary card 00000030 02156 744 holdot /* hold all output */ 745 02157 746 tstflg tfdlup,write3 /* half duplex */ 02163 747 goto write4 /* full duplex */ 748 02165 749 write3 tstlcf tbxflg,rflag,write5 /* choose between dcw lists */ 02171 750 dcwlst 02172 751 cmd sxmit+srts 02173 752 output (outmsg) 02175 753 cmd rxmit+rrts+sterm 02176 754 goto write6 755 02200 756 write5 dcwlst 02201 757 cmd sxmit+srec+srts 02202 758 output (outmsg) 02204 759 cmd rxmit+rrts+sterm 02205 760 goto write6 761 02207 762 write4 tstlcf tbxflg,rflag,write7 /* choose between fulldpx dcwlists */ 02213 763 dcwlst 02214 764 cmd sxmit 02215 765 output (outmsg) 02217 766 cmd rxmit+sterm 02220 767 goto write6 768 02222 769 write7 dcwlst end of binary card 00000031 02223 770 cmd sxmit+srec 02224 771 output (outmsg) 02226 772 cmd rxmit+sterm assm 01 11-12-82 11.513 polled_vip_tables page 39 polled vip write subroutine 773 02227 774 write6 wait 0,0,tstate /* common wait block */ 02233 775 status 0,dsr,hang 02237 776 status term,0,write9 02243 777 status brkchr,0,write8 /* got input during output */ 02247 778 status parity,0,write2 779 02253 780 write2 setlcf tbxflg,rdpar /* remember parity error on input frame */ 02256 781 waitm /* conti 782 02257 783 write8 setlcf tbxflg,datrcv /* remember data came in */ 02262 784 waitm 785 02263 786 write9 retsub assm 01 11-12-82 11.513 polled_vip_tables page 40 polled vip utility routines 788 ********************************************************************* 789 * 790 * routine to exit receive mode. 791 * 792 ********************************************************************* 793 02264 794 stprcv contrl rrec+smark 02266 795 wait 0,0,tstate end of binary card 00000032 02272 796 status marker,0,rcvoff 797 02276 798 rcvoff retsub 799 800 801 ********************************************************************* 802 * 803 * routine to dump all output. 804 * 805 ********************************************************************* 806 02277 807 dmpall dmpout 02300 808 tstwrt dmpall 02302 809 retsub 810 811 812 ********************************************************************* 813 * 814 * routine to handle received nak status. 815 * 816 ********************************************************************* 817 02303 818 cknak cmpchr argsta,nak,cknak2 /* got a nak ? */ 02306 819 setlcl onkcnt,0 /* no, reset counter */ 02311 820 retsub 821 02312 822 cknak2 meter2 m.cnt2,1 02315 823 addlcl onkcnt,1 /* bump count */ 02320 824 tstlcl onkcnt,3,cknak3 /* too many naks received ? */ 02324 825 retsub 826 02325 827 cknak3 setlcl onkcnt,0 /* pretend it was an ack */ 02330 828 setchr argsta,ack 829 02332 830 setlcl stat0,lstonk /* indicate output nak status */ 02335 831 setchr argadr,repadr 02337 832 calasm ldstat /* put repadr in stat1 */ end of binary card 00000033 02342 833 linsta stat0 /* send line status */ 02344 834 retsub assm 01 11-12-82 11.513 polled_vip_tables page 41 polled vip assembler routines 836 ********************************************************************* 837 * 838 * swapps - swap poll/select 839 * 840 * converts the address specified by argadr from a poll address 841 * to a corresponding select address or vice versa. 842 * 843 ********************************************************************* 844 02345 845 swapps subr sps,(x3) 846 02353 0 07 156 2531 847 lda l.a000-* (=argadr) get addr of argadr 02354 4 10 171 2545 848 tsy a.a000-*,* (=adbyte) convert it 02355 000000 0 849 oct 0 conversion failed, die 02356 3 07 200 0 850 lda 0,3,b.0 get value of argadr 02357 322 140 0 851 iera 96 flip the poll/select bits 02360 3 17 200 0 852 sta 0,3,b.0 update argadr 853 02361 854 return swapps assm 01 11-12-82 11.513 polled_vip_tables page 42 polled vip assembler routines 856 ********************************************************************* 857 * 858 * 859 * ldstat - load status 860 * 861 * stores an address character (argadr) and a status 862 * character (argsta) into stat1. 863 * 864 ********************************************************************* 865 02363 866 ldstat subr lds,(x3) 867 02371 0 07 143 2534 868 lda l.a003-* (=argsta) get addr of argsta 02372 4 10 153 2545 869 tsy a.a000-*,* (=adbyte) convert it 02373 000000 0 870 oct 0 conversion failed, die 02374 3 07 200 0 871 lda 0,3,b.0 get value of argsta 02375 0335 11 0 872 lrs 9 shift into q 02376 0 57 014 2412 873 stq ldstmp-* save it 874 02377 0 07 132 2531 875 lda l.a000-* (=argadr) get addr of argadr 02400 4 10 145 2545 876 tsy a.a000-*,* convert it 02401 000000 0 877 oct 0 conversion failed, die 02402 3 07 200 0 878 lda 0,3,b.0 get value of argadr 02403 0 47 007 2412 879 ldq ldstmp-* get back argsta 02404 0335 11 0 880 lrs 9 combine with argadr 881 end of binary card 00000034 02405 0 41 130 2535 882 ldx3 l.a004-* (=stat1) get addr of stat1 02406 4 10 140 2546 883 tsy a.a001-*,* (=cvaddr) convert it 02407 3 57 000 0 884 stq 0,3 store status in stat1 885 02410 886 return ldstat 887 02412 888 ldstmp bss 1 assm 01 11-12-82 11.513 polled_vip_tables page 43 polled vip assembler routines 890 ********************************************************************* 891 * 892 * getspa - get station poll address 893 * 894 * computes the address of the next station to poll based on the 895 * subchannel configuration data. stores the poll address in 896 * poladr. 897 * 898 ********************************************************************* 899 02413 900 getspa subr gsp,(x2,x3) 901 02424 0 41 113 2537 902 ldx3 l.a006-* (=sbchn1) get addr of sbchn1 02425 4 10 121 2546 903 tsy a.a001-*,* (=cvaddr) convert it 02426 3 07 000 0 904 lda 0,3 get value of sbchn1 02427 3 47 001 0 905 ldq 1,3 get value of sbchn2 (assumed adjacent) 02430 0 14 040 2470 906 staq gspsc-* save subchannel mask 907 02431 0 41 112 2543 908 ldx3 l.a010-* (=curadr) get addr of curadr 02432 4 10 114 2546 909 tsy a.a001-*,* (=cvaddr) convert it 02433 3 07 000 0 910 lda 0,3 get value of curadr 02434 0 37 106 2542 911 ora l.a009-* (=llr 0) make llr instruction 02435 0 17 002 2437 912 sta gsp010-* put in place 913 02436 0 04 032 2470 914 ldaq gspsc-* get subchannel mask 02437 2334 00 0 915 gsp010 llr 0 rotate to current subchan 916 02440 0 03 100 2540 917 ldx2 l.a007-* (=37) init shift counter 02441 273 777 0 918 gsp020 iacx2 -1 decrement shift counter 02442 0 74 004 2446 919 tze gsp025-* error, no subchans found 02443 2334 01 0 920 llr 1 rotate subchan mask 02444 0 75 003 2447 921 tmi gsp030-* subchan is configured 02445 0 71 774 2441 922 tra gsp020-* keep looking 923 02446 000000 0 924 gsp025 oct 0 die 925 02447 0 13 023 2472 926 gsp030 stx2 gsptmp-* store shift counter 02450 0 07 070 2540 927 lda l.a007-* (=37) get original value 02451 0 26 021 2472 928 sba gsptmp-* get number of shifts 02452 3 06 000 0 929 ada 0,3 add in starting address end of binary card 00000035 02453 0 27 066 2541 930 cmpa l.a008-* (=36) did we wrap around ? 02454 0 75 002 2456 931 tmi gsp035-* no 02455 0 26 064 2541 932 sba l.a008-* (=36) yes, normalize 02456 3 17 000 0 933 gsp035 sta 0,3 update curadr 02457 0 17 013 2472 934 sta gsptmp-* save a copy 935 02460 0 07 052 2532 936 lda l.a001-* (=poladr) get addr of poladr 02461 4 10 064 2545 937 tsy a.a000-*,* (=adbyte) convert it 02462 000000 0 938 oct 0 conversion failed, die 02463 0 47 007 2472 939 ldq gsptmp-* get current subchan addr assm 01 11-12-82 11.513 polled_vip_tables page 44 polled vip assembler routines 02464 573 040 0 940 iaq 32 convert to poll addr 02465 3 57 200 0 941 stq 0,3,b.0 update poladr 942 02466 943 return getspa 944 02470 945 even 02470 946 gspsc bss 2 02472 947 gsptmp bss 1 assm 01 11-12-82 11.513 polled_vip_tables page 45 polled vip assembler routines 949 ****************************************************************** 950 * 951 * testem - test echo mask 952 * 953 * tests the echo mask to see if echoing is required for 954 * the station whose select address is given by repadr. 955 * 956 ****************************************************************** 957 02473 958 testem subr tem,(x3) 959 02501 0 41 032 2533 960 ldx3 l.a002-* (=echom1) get addr of echom1 02502 4 10 044 2546 961 tsy a.a001-*,* (=cvaddr) convert it 02503 3 07 000 0 962 lda 0,3 get value of echom1 02504 3 47 001 0 963 ldq 1,3 get value of echom2 (assumed adjacent) 02505 0 14 021 2526 964 staq temdbl-* save echo mask 965 02506 0 07 030 2536 966 lda l.a005-* (=repadr) get addr of repadr 02507 4 10 036 2545 967 tsy a.a000-*,* (=adbyte) convert it 02510 000000 0 968 oct 0 conversion failed, die 02511 3 07 200 0 969 lda 0,3,b.0 get value of repadr 02512 022 037 0 970 iana 31 mask out high-order bits 02513 0 37 027 2542 971 ora l.a009-* (=llr 0) make llr instruction 02514 0 17 004 2520 972 sta tem010-* put in place 973 02515 673 001 0 974 ila 1 02516 0 17 012 2530 975 sta temflg-* assume echo enabled 976 02517 0 04 007 2526 977 ldaq temdbl-* get back echo mask 02520 2334 00 0 978 tem010 llr 0 rotate to station of interest 02521 0 75 002 2523 979 tmi temret-* echo is enabled end of binary card 00000036 02522 0 56 006 2530 980 stz temflg-* echo is disabled 981 02523 982 temret return testem 983 02526 984 even 02526 985 temdbl bss 2 02530 986 temflg bss 1 assm 01 11-12-82 11.513 polled_vip_tables page 46 polled vip assembler routines 02531 000461 0 988 l.a000 vfd 18/argadr 02532 000460 0 989 l.a001 vfd 18/poladr 02533 777752 0 990 l.a002 vfd 18/echom1 02534 000462 0 991 l.a003 vfd 18/argsta 02535 777770 0 992 l.a004 vfd 18/stat1 02536 000467 0 993 l.a005 vfd 18/repadr 02537 777764 0 994 l.a006 vfd 18/sbchn1 02540 000045 0 995 l.a007 dec 37 02541 000044 0 996 l.a008 dec 36 02542 2334 00 0 997 l.a009 llr 0 02543 777762 0 998 l.a010 vfd 18/curadr 02544 377777 0 999 l.a011 oct 377777 1000 02545 0 02000 3 1001 a.a000 ind adbyte 02546 0 03000 3 1002 a.a001 ind cvaddr 1003 end of binary card 00000037 1004 end 2550 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 11-12-82 11.517 polled_vip_tables page 47 octal symbol references by sequence no. 6 ack 41 41 425 828 2 adbyte 34 1001 400 afrsw 123 123 264 398 422 699 2545 a.a000 1001 848 869 876 937 967 1001 2546 a.a001 1002 883 903 909 961 1002 461 argadr 83 83 310 312 345 347 400 456 458 526 584 603 628 630 831 988 462 argsta 84 84 577 579 594 596 604 818 828 991 1244 badmsg 444 441 444 654 badout 316 308 316 1251 badpar 447 424 447 755 bdbld 354 354 366 369 545 550 554 557 633 1 begin 32 205 2 b.0 850 852 871 878 941 969 2000 blderr 125 125 354 358 364 367 543 548 552 555 631 746 bldfld 350 350 354 773 bldwt 358 356 358 473 blkend 93 93 170 440 619 1000 brkchr 41 41 385 777 236 chgadr 171 171 505 1401 chgtxt 505 500 505 0 chk 196 164 165 166 167 170 171 172 177 179 181 182 183 189 192 196 4 chval 196 164 165 166 167 170 171 172 177 179 181 182 183 189 192 196 2 c.rcrq 40 40 41 40 c.rdtr 40 40 41 2 c.rrec 40 40 41 20000 c.rrqs 40 40 41 200 c.rsup 40 40 41 200 c.rtre 40 40 41 10 c.rxmt 40 40 41 1000 c.sbrk 40 40 41 1 c.scrq 40 40 41 20 c.sdtr 40 40 41 2000 c.smrk 40 40 41 1 c.srec 40 40 41 10000 c.srqs 40 40 41 100 c.ssup 40 40 41 400 c.stat 40 40 41 100 c.stre 40 40 41 4000 c.strm 40 40 41 4 c.sxmt 40 40 41 1723 ckdel 636 614 617 620 636 412 ckdlup 216 210 214 216 420 ckdsr 219 217 219 627 ckeot 305 305 326 1662 cketb 619 616 619 436 cklisn 224 209 213 217 220 224 1266 ckmcnt 453 451 453 2312 cknak2 822 818 822 2325 cknak3 827 824 827 2303 cknak 818 578 595 818 2012 cksta3 670 668 670 assm 01 11-12-82 11.517 polled_vip_tables page 48 octal symbol references by sequence no. 513 cmplrc 41 41 170 100 cntrlr 121 121 287 342 676 681 1000 cpoll 362 342 362 15 cr 41 41 196 63 ct.eot 46 46 55 6 ct.ign 44 44 64 0 ct.ncs 44 44 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 76 20 ct.sw 44 44 46 40 ct.syn 44 44 46 3 ct.t0s 44 44 46 100 ct.tb1 44 44 54 10 ctlpol 135 135 362 451 497 625 2 cts 41 41 210 777762 curadr 102 102 675 998 3 cvaddr 35 1002 4 datrcv 117 117 379 743 783 1624 delout 598 589 598 1730 delpol 638 636 638 451 dialed 236 221 236 100 dialup 41 41 244 2277 dmpall 807 258 717 807 808 1134 dmpfrm 404 398 404 2016 dossp 672 669 672 1541 dostat 571 480 520 571 1547 dspck 574 571 574 140 dspdev 131 131 192 196 464 574 1570 dsplst 583 580 583 1323 dspsav 469 464 469 1554 dspsnt 577 574 577 471 dspsta 91 91 426 469 577 580 4 dsr 41 41 210 214 221 222 254 295 327 357 384 775 400 dulisn 212 207 212 331 echmsg 194 194 545 777752 echom1 110 110 691 990 777751 echom2 111 111 692 2062 echomk 691 663 691 200 echosw 122 122 538 694 696 505 endchn 41 41 177 1341 endfrm 478 432 435 474 478 400 eof 136 136 177 4 eot 41 41 164 165 177 189 192 196 27 etb 133 133 170 172 619 3 etx 41 41 170 172 179 181 182 189 192 196 4000 exh 41 41 386 1151 exhsta 411 386 411 10 fg.lpo 40 40 239 2 fg.lpr 40 40 239 4 fg.lps 40 40 239 1365 findtx 500 500 503 556 forcep 283 278 283 assm 01 11-12-82 11.517 polled_vip_tables page 49 octal symbol references by sequence no. 216 getsoh 166 166 433 499 2413 getspa 900 344 900 943 527 getwrk 274 274 320 332 407 647 705 450 golisn 227 225 227 1261 goodms 451 442 451 2437 gsp010 915 912 915 2441 gsp020 918 918 922 2446 gsp025 924 919 924 2447 gsp030 926 921 926 2456 gsp035 933 931 933 2470 gspsc 946 906 914 946 2472 gsptmp 947 926 928 934 939 947 2123 hang1 715 236 715 2121 hang 713 224 254 295 327 352 357 384 657 713 775 101 hangup 41 41 721 4 hungup 33 222 226 722 1 idle 115 115 252 256 280 678 682 685 503 ignore 41 41 166 167 170 172 179 181 182 183 463 inadr 85 85 170 439 456 464 465 777761 inkcnt 103 103 274 521 522 572 1436 inksta 525 521 525 464 insta 86 86 170 438 461 462 469 472 473 isleep 253 253 280 1274 ispol 456 453 456 777757 itocnt 105 105 276 394 395 423 1116 itosta 398 395 398 0 k 771 752 758 765 771 6 lctafr 159 159 664 2 lctscp 155 155 660 5 lctsem 158 158 663 4 lctspt 157 157 662 1 lctssp 154 154 659 3 lctstp 156 156 661 2363 ldstat 866 401 527 585 605 832 866 886 2412 ldstmp 888 873 879 888 362 lisn 207 204 207 2531 l.a000 988 847 875 988 2532 l.a001 989 936 989 2533 l.a002 990 960 990 2534 l.a003 991 868 991 2535 l.a004 992 882 992 2536 l.a005 993 966 993 2537 l.a006 994 902 994 2540 l.a007 995 917 927 995 2541 l.a008 996 930 932 996 2542 l.a009 997 911 971 997 2543 l.a010 998 908 998 5 lstbof 146 146 318 10 lstchu 149 149 350 7 lstdst 148 148 583 3 lstink 144 144 525 assm 01 11-12-82 11.517 polled_vip_tables page 50 octal symbol references by sequence no. 2 lstito 143 143 399 4 lstonk 145 145 830 6 lstoto 147 147 329 1 lstpst 142 142 602 1 macwk1 958 845 854 866 886 900 943 958 982 3 macwk2 958 845 866 900 958 40 marker 41 41 796 501 match 41 41 164 165 166 170 172 177 36 m.cnt1 39 39 517 40 m.cnt2 39 39 822 42 m.cnt3 39 39 390 44 m.cnt4 39 39 323 16 m.exh 39 39 411 11 m.par 39 39 447 20 m.xte 39 39 413 221 mormsg 167 167 474 517 movchr 41 41 170 179 777756 msgcnt 106 106 429 453 475 500 501 25 nak 41 41 426 519 537 571 579 596 615 818 12 nl 41 41 196 777 nochar 41 41 263 317 363 370 405 406 427 438 439 440 520 599 601 614 622 636 647 2100 noecho 696 693 696 666 noeot 322 305 322 503 notidl 256 256 678 682 1305 notpol 461 452 454 461 1226 notqui 436 434 436 777765 nsbchn 99 99 289 672 0 null 41 41 189 192 196 461 527 nxtchr 41 41 170 266 nxtlrc 182 182 557 1331 nxtmsg 474 445 459 467 470 474 777760 onkcnt 104 104 275 819 823 824 827 710 otosta 329 326 329 251 outadr 178 178 308 465 outdev 87 87 179 309 370 405 574 591 622 636 648 245 outfrm 177 177 305 512 outlrc 41 41 181 182 403 outmsg 41 41 752 758 765 771 10000 parity 41 41 388 778 1144 parsta 409 388 409 604 pause 292 287 289 292 156 pgof 137 137 580 460 poladr 82 82 183 189 312 345 362 451 497 625 630 989 1004 poll1 364 348 364 623 1012 poll1a 366 365 366 1015 poll2 367 367 634 1023 poll2a 369 368 369 1026 poll3 370 370 626 720 poll 340 284 286 290 294 340 277 polmsg 188 188 366 assm 01 11-12-82 11.517 polled_vip_tables page 51 octal symbol references by sequence no. 2052 poloff 685 661 667 670 685 32 prt 134 134 462 1610 prtck1 591 575 591 1627 prtck2 601 579 588 592 601 150 prtdev 132 132 465 591 1327 prtsav 472 465 472 1615 prtsnt 594 591 594 472 prtsta 92 92 427 472 594 601 604 777754 ptime 108 108 242 286 293 688 0 pvip 28 28 80 352 pvstar 204 30 204 777755 qcount 107 107 260 283 288 289 292 563 qcycle 286 282 286 212 quiet1 164 164 431 214 quiet2 165 165 434 2 quiet 116 116 262 282 304 341 393 436 518 2276 rcvoff 798 796 798 40 rderr 120 120 428 444 479 495 1231 rdloop 438 438 476 1000 rdpar 124 124 380 409 424 448 780 1216 rdsoh 433 431 433 40 rdtr 41 41 719 1161 read 421 379 380 385 410 412 421 223 regmsg 168 168 441 467 repadr 89 89 171 179 192 196 310 347 363 400 458 520 526 584 603 614 628 831 993 1476 repl2a 545 544 545 1511 repl3a 550 549 550 1522 repl4a 554 553 554 1533 repl4b 557 556 557 515 replac 41 41 171 177 183 1461 reply2 541 538 541 1503 reply3 548 537 539 542 548 1514 reply4 552 546 552 1450 reply 537 508 523 537 311 repmsg 190 190 550 470 reptyp 90 90 192 196 425 519 537 571 615 510 rescan 41 41 164 166 177 179 181 183 10 rflag 118 118 737 740 749 762 1646 rptest 614 596 601 614 1667 rptst2 622 615 619 622 1674 rptst3 625 622 625 1701 rptst4 628 625 628 1716 rptst5 633 632 633 2 rrec 41 41 794 20000 rrts 41 41 212 753 759 1731 rstest 647 405 637 647 777747 rtnlbl 127 127 359 365 368 544 549 553 556 632 10 rxmit 41 41 753 759 766 772 466 savdev 88 88 263 309 317 406 599 647 648 777764 sbchn1 100 100 673 994 assm 01 11-12-82 11.517 polled_vip_tables page 52 octal symbol references by sequence no. 777763 sbchn2 101 101 674 20 sdtr 41 41 208 212 502 search 41 41 167 179 181 182 183 522 serch2 41 41 170 172 2104 setafr 699 664 699 2042 setcpl 681 660 681 514 seteom 41 41 177 189 192 196 261 setlrc 180 180 369 554 273 setpol 183 183 633 2056 setpt 688 662 688 2000 setspl 667 659 667 200000 s.acr 40 40 41 400000 s.ads 40 40 41 400000 s.bdmk 40 40 41 200000 s.bmk 40 40 41 1000 s.brch 40 40 41 400 s.brk 40 40 41 1 s.cd 40 40 41 2 s.cts 40 40 41 100000 s.dlo 40 40 41 4 s.dsr 40 40 41 4000 s.exh 40 40 41 10000 s.fcse 40 40 41 40000 s.isd 40 40 41 40 s.mark 40 40 41 400000 s.pbyt 40 40 41 200 s.prex 40 40 41 10000 s.prty 40 40 41 40000 s.pwi 40 40 41 200000 s.rabt 40 40 41 100000 s.rbt 40 40 41 2000 s.ring 40 40 41 40000 s.rto 40 40 41 10 s.sprc 40 40 41 20 s.st 40 40 41 100 s.term 40 40 41 20000 s.xte 40 40 41 240 skpmsg 172 172 502 2000 smark 41 41 794 1030 sndfrm 378 314 378 396 649 1411 sndnak 516 433 449 479 495 499 502 505 516 105 sndout 41 41 306 322 1404 sndtxt 506 497 506 1 soh 41 41 166 167 172 179 181 182 183 189 192 196 40 space 41 41 189 192 196 1 srec 41 41 757 770 10000 srts 41 41 208 751 757 777771 stat0 95 95 318 319 329 330 350 351 399 402 525 528 583 586 602 606 658 659 660 661 662 663 664 830 833 777770 stat1 96 96 667 672 688 693 992 777767 stat2 97 97 668 673 691 assm 01 11-12-82 11.517 polled_vip_tables page 53 octal symbol references by sequence no. 777766 stat3 98 98 670 674 692 400 stat 41 41 208 212 219 4000 sterm 41 41 753 759 766 772 5 stpchn 715 2264 stprcv 794 391 421 794 511 strlrc 41 41 170 181 182 2 stx 41 41 170 189 192 196 2345 swapps 845 311 346 457 629 845 854 4 sxmit 41 41 751 757 764 770 26 syn 41 41 189 192 196 777750 tbxflg 114 114 252 256 262 264 280 282 287 304 341 342 354 358 364 367 379 380 393 398 409 422 424 428 436 444 448 479 495 496 518 538 543 548 552 555 588 616 631 676 678 681 682 685 694 696 699 737 740 743 749 762 780 783 2520 tem010 978 972 978 2526 temdbl 985 964 977 985 2530 temflg 986 542 975 980 986 2523 temret 982 979 982 100 term 41 41 776 2473 testem 958 541 958 982 20 textsw 119 119 428 496 588 616 20 tfdlup 38 38 207 746 40 tfhang 38 38 224 657 720 100 tflisn 38 38 204 225 720 20000 tfmrcv 38 38 241 10000 tfwabt 38 38 324 702 20 tfwrd1 746 204 207 224 225 241 324 657 702 720 746 0 tfwrd2 746 204 207 224 225 241 324 657 702 720 746 31 tibx.1 127 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 114 127 0 tibx.2 93 82 83 84 85 86 87 88 89 90 91 92 93 1 tibx.3 127 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 114 127 31 tibxsz 127 82 84 86 88 90 92 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 114 127 236 1074 timout 390 383 390 1777 tsret 665 658 665 1740 tstate 657 253 294 356 383 657 703 774 795 2110 tswabt 702 326 702 1602 txtck 588 581 588 1350 txtmsg 495 461 462 495 0 vipcct 50 50 237 2116 wabort 704 702 704 2151 write1 742 738 742 2253 write2 780 778 780 2165 write3 749 746 749 2207 write4 762 747 762 2200 write5 756 749 756 2227 write6 774 754 760 767 774 2222 write7 769 762 769 assm 01 11-12-82 11.517 polled_vip_tables page 54 octal symbol references by sequence no. 2257 write8 783 777 783 2263 write9 786 776 786 2141 write 737 559 737 621 writef 303 279 294 303 2146 writer 740 378 740 777753 wrtcnt 109 109 261 278 303 340 300 x 771 752 758 765 771 20000 xte 41 41 387 1156 xtesta 413 387 413 ** 47234 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