assm 01 06-26-89 14.671 x25_tables page 1 preface program break 10004 common length 0 v count bits 5 primary symdef entry x25str 406 secondary symdef entry .chain 0 block length symref 1 begin 2 adbyte 3 cvaddr 4 hungup 5 setbpt 6 stpchn end of binary card 00000001 assm 01 06-26-89 14.671 x25_tables page 2 1 * ************************************************************ 2 * * * 3 * * copyright, (c) bull hn information systems inc., 1989 * 4 * * * 5 * * copyright, (c) honeywell information systems inc., 1982 * 6 * * * 7 * * copyright, (c) honeywell information systems inc., 1980. * 8 * * * 9 * ************************************************************ 10 lbl ,x25_tables assm 01 06-26-89 14.671 x25_tables page 3 15 pcc off 16 **************************************************************** 17 * 18 * x25_tables (orginal called x25lap_tables) 19 * 20 * this module is designed to use the hdlc subchannel of 21 * the high-speed line adaptor to implement the link 22 * access procedure (lap) of ccitt recommendation x.25. this 23 * module supports both asynchronous response mode and 24 * asynchronous balance mode (lapb). 25 * 26 * coded august, 1979 by j. stern 27 * fixed for telenet may 1980 by c. hornig 28 * rnr problem fixed october 1980 by c. hornig 29 * modified for parameterization december 1980 by r. harvey 30 * rewritten by d. w. cousins june 1981 31 * fixed bugs to pass telnet certication and 32 * improve maintinance for future improvements. 33 * rewritten by d. w. cousins april, 1982 for lapb 34 * modified by d. w. cousins july,1982 for eom sentinal 35 * modified by d. w. cousins janurary, 1983 for stpchn problem on exhaust 36 * modified by d. w. cousins janurary, 1983 for bugs fixes 37 * modified by d. w. cousins june 8, 1983 for output blockage during 38 * link recovery from timer expired with transmitter busy 39 * modified by d. w. cousins sept 9, 1983 for lapb reset i-frame hold 40 * modified by d. w. cousins april 1984 for speed ups in the output 41 * section to used a nrn instruction inplace of tstlcf code and 42 * set up a cmdr/frmr check for i-frames with more data then remote 43 * can accept to cause the link to disconnect. 44 * modified by d. w. cousins oct 12 1984 to have the control of crash 45 * to deactivate the line in such a matter to only have an activate 46 * control order to turn it back on. 47 * modified by d. w. cousins oct 18, 1985 to correct a problem of rnr, 48 * rr being recieve during i-frame output in which a.r is reset 49 * such that no messages are acknowledged that should be. 50 * modified by d. w. cousins nov 22 1985 to abort the hangup timer in 51 * control_tables so that the activation order is not lost. 52 * 53 * 54 **************************************************************** 55 56 * history comments: 57 * 1) change(86-02-03,kissel), approve(86-02-03,mcr7297), 58 * audit(86-02-03,coren), install(86-04-10,mr12.0-1038): 59 * correct a problem of rnr or rr being received during i-frame output in 60 * which a.r is reset such that no messages are acknowledged when they 61 * should be. 62 * 2) change(86-02-03,kissel), approve(86-02-03,mcr7324), 63 * audit(86-02-03,coren), install(86-04-10,mr12.0-1038): 64 * modified to abort the hangup timer in the control_tables so that an 65 * activation order is not lost. 66 * 3) change(86-12-19,cousins), approve(87-01-26,mcr7605), assm 01 06-26-89 14.671 x25_tables page 4 67 * audit(87-06-11,brunelle), install(87-07-15,mr12.1-1041): 68 * close a hole in detecting invalid frames. bug caused connection to go 69 * into link-up state when it should not. this would not happen with 70 * certified connections, expected only during certification tests. 71 * 4) change(87-02-04,beattie), approve(87-04-06,mcr7657), 72 * audit(87-06-11,brunelle), install(87-07-15,mr12.1-1041): 73 * the fnp erroneously sends out 2 disc (disconnect) commands when a dm 74 * (disconnected mode) response is received when the link is down. this 75 * can cause loss of synchronization with the other end. there is also a 76 * bug in handling of dms when the connection is in the link up state. 77 * 5) change(89-04-30,beattie), approve(89-05-15,mcr8108), 78 * audit(89-06-15,brunelle): 79 * input exhaust status processing incorrectly reestablishing t1 timer to 80 * 1 second rather than current value for t1. can cause extra data to be 81 * sent to remote terminal. 82 * end history comments 83 84 00000 85 x25tbs null 86 87 symdef x25str 88 89 symref begin 90 symref hungup 91 symref adbyte 92 symref cvaddr 93 symref setbpt /*18 to 15 bit for i/o buffers */ 94 00000 96 tib assm 01 06-26-89 14.676 x25_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 06-26-89 14.676 x25_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.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 ******************************** assm 01 06-26-89 14.676 x25_tables page 7 terminal information block (tib) 000001 tsfcd bool 000001 carrier detect 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 assm 01 06-26-89 14.676 x25_tables page 8 terminal information block (tib) 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 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 assm 01 06-26-89 14.676 x25_tables page 9 terminal information block (tib) 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 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 010000 tfabf1 bool 010000 t.abf1 available 020000 tfmask bool 020000 channel has been masked for excessive int 040000 tfinq bool 040000 input is queued for the channel ********************************* * redefined tib flags in t.flg assm 01 06-26-89 14.676 x25_tables page 10 terminal information block (tib) ********************************* 000020 tfdlup equ tfprtr line is on dialup modem 00000 97 sfcm hsla pcc save,off assm 01 06-26-89 14.676 x25_tables page 11 sfcm for hsla 000000 sf.hcm equ 0 addr of hwcm 000001 sf.nxa equ sf.hcm+1 addr of next available queue entry 000002 sf.nxp equ sf.nxa+1 addr of next queue entry to process 000003 sf.tly equ sf.nxp+1 tally of status queue 000004 sf.tib equ sf.tly+1 addr of tib for this line 000005 sf.flg equ sf.tib+1 flag word 000006 sf.ib0 equ sf.flg+1 pointer to input buffer 1 000007 sf.ib1 equ sf.ib0+1 pointer to input buffer 2 000010 sf.ob0 equ sf.ib1+1 pointer to output buffer 1 000011 sf.ob1 equ sf.ob0+1 pointer to output buffer 2 000012 sf.pcw equ sf.ob1+1 current pcw 2nd word 000013 sf.cct equ sf.pcw+1 cct addr for this line, if non-zero 000014 sf.rct equ sf.cct+1 repeat count for status queue overflows 000015 sf.hsl equ sf.rct+1 address of hsla table entry for this line 000016 sf.bsz equ sf.hsl+1 max buffer size 000017 sf.fbs equ sf.bsz+1 buffer size to be used during frame input 000020 sf.mms equ sf.fbs+1 maximum synchronous message size 000020 sf.csz equ sf.mms current asynchronous buffer size 000021 sf.rms equ sf.mms+1 remaining unallocated message length 000021 sf.nic equ sf.rms char. address of next asynchronous input 000022 sf.noc equ sf.nic+1 **not used** char address of next asynchr 000023 sf.ssl equ sf.noc+1 number of entries in software status queu 000024 sf.cfg equ sf.ssl+1 2 words for config pcw 000026 sf.sta equ sf.cfg+2 hardware status q, sicw here (primary) 000005 sfhsiz equ 5 number of entries in hardware status buf assm 01 06-26-89 14.676 x25_tables page 12 sfcm for hsla room for 6 status words 000042 sf.est equ sf.sta+sfhsiz*2+2 000042 sf.shq equ sf.est hardware status q, sicw here (secondary) room for 6 more status word 000056 sf.ast equ sf.shq+sfhsiz*2+2 000056 sf.hln equ sf.ast 000056 sf.waq equ sf.ast wrap around queue, software status q 000012 sfssq equ 10 length of "short" software status queue 000024 sflsq equ 20 length of "long" software status queue (used for hdlc and bisync lines) 000070 sf.sln equ sf.hln+sfssq 000102 sf.lln equ sf.hln+sflsq sfcm flag definitions 000001 sffskd bool 000001 status processor is scheduled 000002 sffcii bool 000002 on if alternate input icw is active 000004 sffcoi bool 000004 on if alternate output icw is active 000010 sffisc bool 000010 inactive subchannel flag 000020 sffsct bool 000020 short cct flag 000040 sffebd bool 000040 ebcdic data code on this line 000100 sffech bool 000100 tab, cr, lf echo going on now 000200 sffdct bool 000200 dynamic (sharable) cct in use for channel 000400 sffstp bool 000400 stop channel, rxmit done 001000 sffcai bool 001000 on if altermate status queue is active 002000 sffbsc bool 002000 binary synchronous device 004000 sffsqo bool 004000 status queue overflow pending 010000 sffsyn bool 010000 any synchronous line type 020000 sffmsp bool 020000 marker status pending assm 01 06-26-89 14.676 x25_tables page 13 sfcm for hsla 040000 sffofr bool 040000 old setting of tffrmi (lines up on tffrmi 100000 sffnib bool 100000 need to allocate new input buffer(s) 400000 sffhdl bool 400000 uses hdlc channel board 000002 sfhmk equ 2 x-or mask to switch icw addrs 000001 sfbfmk equ 1 x-or mask to switch i-or-ob1/2 addrs pcc restore 00000 98 csbits assm 01 06-26-89 14.676 x25_tables page 14 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 06-26-89 14.676 x25_tables page 15 control and status bits status bits 000001 s.cd bool 000001 carrier detect 000002 s.cts bool 000002 clear to send 000004 s.dsr bool 000004 data set ready 000010 s.sprc bool 000010 supervisory receive mode 000020 s.st bool 000020 status requested 000040 s.mark bool 000040 marker status 000100 s.term bool 000100 terminate status 000200 s.prex bool 000200 pre-exhaust 000400 s.brk bool 000400 line break received 001000 s.brch bool 001000 break character received 002000 s.ring bool 002000 ring 004000 s.exh bool 004000 exhaust status 010000 s.prty bool 010000 parity error 010000 s.fcse bool 010000 frame check sequence error (hdlc) 020000 s.xte bool 020000 transfer timing error 040000 s.pwi bool 040000 acu power indicator 100000 s.dlo bool 100000 acu data line occupied 200000 s.acr bool 200000 acu abandon call and retry 400000 s.ads bool 400000 acu raised data set status the following four bits share the values of acu status but can never be misinterpreted. 040000 s.rto bool 040000 receive time out (bsc) 040000 s.isd bool 040000 idle state detect (hdlc) assm 01 06-26-89 14.676 x25_tables page 16 control and status bits 100000 s.rbt bool 100000 receive block termination (bsc & hdlc) 200000 s.bmk bool 200000 marker status (bsc) 200000 s.rabt bool 200000 receive abort (hdlc) 400000 s.bdmk bool 400000 delayed marker status (bsc) 400000 s.pbyt bool 400000 partial byte (hdlc) bits in common between standard status 000177 s.tib bool 000177 and tib status dataset status bits in standard status 000017 s.dss bool 000017 and tib status asynchronous configuration bits 000001 fg.icw bool 000001 icw (two send icw's) 000002 fg.lpr bool 000002 lateral parity receive 000004 fg.lps bool 000004 lateral parity send 000010 fg.lpo bool 000010 lateral parity odd 000020 fg.5bt bool 000020 5-bit character mode 000040 fg.6bt bool 000040 6-bit character mode 000100 fg.7bt bool 000100 7-bit character mode 000200 fg.8bt bool 000200 8-bit character mode 000400 fg.beb bool 000400 ebcdic mode (bsc) 000400 fg.itf bool 000400 interfame time fill (hdlc) 001000 fg.btr bool 001000 transparent mode (bsc) 002000 fg.cct bool 002000 enable cct 00000 99 buffer assm 01 06-26-89 14.676 x25_tables page 17 buffer format 000000 bf.nxt equ 0 address of next buffer in chain 000001 bf.siz equ bf.nxt+1 size of buffer (bits0-2) 000001 bf.flg equ bf.nxt+1 flags (bits3-8) 000001 bf.tly equ bf.nxt+1 tally of buffer (bits9-17) 000002 bf.dta equ bf.siz+1 start of data 000040 bufsiz equ 32 buffer size 000074 bufnch equ bufsiz*2-4 number of data characters in a buffer 000050 bufmax equ 40 maximum number of input buffers 000012 bufpre equ 10 number of buffers to trigger pre-exhaust 000005 bufshf equ 5 number of bits shifted to divide by bufsi 000024 bufres equ 20 number of reserved buffers 700000 bufsmk bool 700000 mask to isolate bf.siz 077000 buffmk bool 077000 mask to isolate bf.flg 000777 buftmk bool 000777 mask to isolate bf.tly 000002 bufthr equ 2 threshold at which to send send_output 000400 bfmsiz equ 256 maximum buffer size in words ******************************** * buffer flags ******************************** 040000 bfflst bool 040000 last buffer in message 020000 bffbrk bool 020000 buffer contains break character 010000 bfftra bool 010000 throw away this buffer when done inputtin 004000 bffrpy bool 004000 buffer is last in replay chain 002000 bffctl bool 002000 buffer consists of keybd/prtr control 001000 bffhld bool 001000 hold output buffer until dmpout 00000 100 comreg assm 01 06-26-89 14.676 x25_tables page 18 system communications region ********************************** * system communication region * ********************************** 000640 .crldt set 416 date and time of binding 000644 .crbdt set 420 date and time of bootloading 000650 .crbuf set 424 starting address of buffer area 000651 .crmem set 425 last location of memory 000652 .crnbf set 426 number of buffers available 000653 .criom set 427 start of iom table 000654 .crnhs set 428 number of hsla's configured 000655 .crnls set 429 number of lsla's configured 000656 .crcon set 430 console enabled flag 000657 .crmod set 431 starting address of module chain 000660 .crnxa set 432 ptr to next avaliable buffer 000661 .crtra set 433 trace entry enable mask 000662 .crtrb set 434 base address of trace table 000663 .crtrc set 435 next available location in trace table 000664 .crreg set 436 disaster fault register storage location 000665 .crttb set 437 location of tib table 000666 .crtte set 438 location of end of tib table 000667 .crdly set 439 head of delay table chain 000670 .crver set 440 mcs version number, 4 chars 000672 .crbrk set 442 addr of breakpoint control table 000673 .crtsw set 443 if non-zero, tracing will cease 000674 .crnxs set 444 next free small block 000675 .crnbs set 445 number of buffers devoted to small space assm 01 06-26-89 14.676 x25_tables page 19 system communications region 000676 .crcct set 446 address of first cct descriptor 000677 .crskd set 447 address of scheduler data block 000700 .cretb set 448 list of echo-negotiation bit tables 000701 .crcpt set 449 address of cpu page table 000702 .crpte set 450 address of variable cpu page table entry 000703 .crtsz set 451 size of trace data buffer 000704 .crmet set 452 non-zero if metering enabled 000705 .crtdt set 453 address of tib for t&d executive channel 000706 .crbtm set 454 address of time meters for getbuf/frebuf 000707 .crnxe set 455 next available space in extended memory 000710 .crbpe set 456 buffer paging window table entry 000760 .crcpr set 496 copyright notice 00000 101 tconst assm 01 06-26-89 14.676 x25_tables page 20 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 06-26-89 14.676 x25_tables page 21 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 06-26-89 14.676 x25_tables page 22 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 assm 01 06-26-89 14.676 x25_tables page 23 flag and control bit definitions scan subop types 000501 match bool 501 match the char exactly 000502 search bool 502 search until match 000503 ignore bool 503 skip to next char, block check unchanged 000504 sbcc bool 504 start the bcc computation 000505 endchn bool 505 point to last character in chain 000506 cbcc bool 506 compare current with bcc char 000507 cmask bool 507 compare char with mask 000510 rescan bool 510 reset scan position to first char in chai 000511 strlrc bool 511 start lrc computation 000512 outlrc bool 512 insert lrc into chain 000513 cmplrc bool 513 compare lrc accumulation vs current char 000514 seteom bool 514 set last buffer in message flag ( for bld 000515 replac bool 515 replace current char 000516 cmplst bool 516 compare current vs list of chars for equa 000517 movchr bool 517 move current char to tib extension 000520 movmsk bool 520 movchr with masking of current char 000521 count bool 521 count number of chars scanned 000522 serch2 bool 522 search for one of two chars 000523 setbit bool 523 turn on bits in current char 000524 offbit bool 524 turn off bits in current char 000525 chktrm bool 525 check the sync termination char 000526 mvlst2 bool 526 move last two chars to tib ext 000527 nxtchr bool 527 update block check and skip to next char 00000 102 meters assm 01 06-26-89 14.676 x25_tables page 24 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 06-26-89 14.676 x25_tables page 25 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 assm 01 06-26-89 14.676 x25_tables page 26 per-channel meters 000027 m.maxi equ m.mini+1 maximum length of input message 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 104 00000 105 start x25tbs,,c3x25m0c0000 assm 01 06-26-89 14.676 x25_tables page 27 x25 lap tib extension variables 00012 107 tibex locadr,char /* local station address */ 00012 108 tibex remadr,char /* remote station address */ 00012 109 tibex frmadr,char /* address from current input frame */ 00012 110 tibex pmask,char /* p bit mask for command output */ 00012 111 tibex fmask,char /* f bit mask for response output */ 00012 112 tibex cfield,char /* output frame control field */ 00012 113 tibex cmdrb1,char /* cmdr/frmr info field, byte 1 */ 00012 114 tibex cmdrb2,char /* cmdr/frmr info field, byte 2 */ 00012 115 tibex cmdrb3,char /* cmdr/frmr info field, byte 3 */ 116 00012 117 tibex lkupws,word /* which table during link up */ 00012 118 tibex lastf,word /* last function recieve */ 00012 119 tibex stat0,word /* line status/line control words */ 00012 120 tibex stat1,word 00012 121 tibex stat2,word 00012 122 tibex stat3,word 00012 123 tibex rc,word /* retry counter */ 00012 124 tibex v.s,word /* next n(s) to send */ 00012 125 tibex v.r,word /* next n(s) to receive */ 00012 126 tibex a.s,word /* last n(r) sent */ 00012 127 tibex a.r,word /* last n(r) received */ 00012 128 tibex xx,word /* saved value of v.s during timer recovery */ 00012 129 tibex t1,word /* response time-out interval (from host) */ 00012 130 tibex t3,word /* time-out interval (from host) */ 00012 131 tibex n2,word /* max number of retries (from host) */ 00012 132 tibex kc,word /* number of frame before stopping host */ 00012 133 tibex kv,word /* number of frame on the chain now */ 00012 134 tibex state,word /* primary state */ 00012 135 tibex pstate,word /* primanry up state */ 00012 136 tibex sstate,word /* secondary up state */ 00012 137 tibex mxfrsz,word /* max frame size (input) */ 00012 138 tibex uaoffs,word /* buffer offset (offset to buffer) */ 00012 139 tibex bufadd,word /* buffer pool address */ 00012 140 tibex upobuf,word /* unprocess buffer address */ 00012 141 tibex nrv,word /* n.r if xmit is busy */ 00012 142 tibex retlbl,word /* label for stpchn return to */ 143 00012 144 tibex flgwd1,word /* flags word link control */ 000001 145 laparb bool 000001 /* on if lapb protocall */ 000002 146 dcedte bool 000002 /* on if dce device */ 000004 147 discft bool 000004 /* on if send disc first */ 000010 148 trcoff bool 000010 /* on if trace is to be off on crash */ 000020 149 rprtsw bool 000020 /* on if report needed to host */ 000040 150 xmitsw bool 000040 /* on if transmitter busy */ 000100 151 rcvsw bool 000100 /* on if recieving mode on */ 000200 152 oasw bool 000200 /* on if output is recieve since last sndout */ 000400 153 t1rec bool 000400 /* on if timer recovery is in progress */ 001000 154 timesw bool 001000 /* on if timer is running */ 002000 155 timet3 bool 002000 /* on if t3 timmer is running */ 004000 156 pbit bool 004000 /* on if poll is required */ assm 01 06-26-89 14.676 x25_tables page 28 x25 lap tib extension variables 010000 157 fbit bool 010000 /* on if finial is required */ 020000 158 ifrsnd bool 020000 /* on if iframe on t.ocp (xmiting) */ 040000 159 psarm bool 040000 /* on if a prior sarm is recieve */ 100000 160 oprusw bool 100000 /* on if output recieve on xmit on */ 200000 161 ackrq bool 200000 /* on if ack is required because of i-frame xmit 400000 162 downsw bool 400000 /* on if link is down */ 163 00012 164 tibex flgwd2,word /* flag word 2 output messages */ 200000 165 sndm bool 200000 /* on send dm (lapb) */ 100000 166 sndisc bool 100000 /* on send disc */ 040000 167 snsarm bool 040000 /* on send sarm (lap) */ 020000 168 snsabm bool 020000 /* on send sabm (lapb) */ 010000 169 sncmdr bool 010000 /* on send cmdr (lap) */ 010000 170 snfrmr bool 010000 /* on send frmr (lapb) */ 004000 171 snua bool 004000 /* on send ua */ 002000 172 snrnr bool 002000 /* on send response rnr */ 001000 173 snrej bool 001000 /* on send response rej */ 000400 174 snifr bool 000400 /* on send i-frame */ 000200 175 snrr bool 000200 /* on send response rr */ 000100 176 snprnr bool 000100 /* on send command rnr (lapb) */ 000040 177 snprej bool 000040 /* on send command rej (lapb) */ 000020 178 snprr bool 000020 /* on send command rr (lapb) */ 179 *unused 400017 /* note 180 00012 181 tibex flgwd3,word /* flag word 3 misc flags */ 000001 182 rtyhld bool 000001 /* on = no i-frame to be send t1rec */ 000002 183 hldvar bool 000002 /* on = next ua response to disc not ss move */ 000004 184 mstclr bool 000004 /* on = must clear buffers */ 000010 185 mstifr bool 000010 /* on = sent one i-frame (timer recovery)*/ 186 *unused 777760 assm 01 06-26-89 14.676 x25_tables page 29 x25 lap constant symbols 188 * 189 * miscellaneous chars 190 * 000001 191 dceadr bool 001 /* dce address */ 000003 192 dteadr bool 003 /* dte address */ 000001 193 rr bool 001 /* rr frame type */ 000005 194 rnr bool 005 /* rnr frame tpye */ 000011 195 rej bool 011 /* rej frame type */ 000017 196 sarm bool 017 /* sarm frame type */ 000057 197 sabm bool 057 /* sabm frame type */ 000103 198 disc bool 103 /* disc frame type */ 000017 199 dm bool 017 /* dm frame type */ 000143 200 ua bool 143 /* ua frame type */ 000207 201 cmdr bool 207 /* cmdr frame type */ 000207 202 frmr bool 207 /* frmr frame type */ 000020 203 pfon bool 020 /* p/f bit mask */ 000400 204 eof bool 400 /* end of frame bit */ 205 * 206 * link state constants 207 * 000001 208 lkdnst equ 1 /*link down state */ 000002 209 lkt3st equ 2 /* t3 state */ 000003 210 lkssst equ 3 /* sabm send state (lapb) */ 000004 211 lksust equ 4 /* link setup state */ 000005 212 lkisup equ 5 /* link up state */ 000005 213 lkprnr equ 5 /* prinary normal state */ 000006 214 lkprrb equ 6 /* primary remote busy state */ 000007 215 lkprt1 equ 7 /* primary t1 expire state */ 000010 216 lkprsr equ 8 /* primary sarm reset state */ 000011 217 lkscnm equ 9 /* secondary normal state */ 000012 218 lksclb equ 10 /* secondary local busy state */ 000013 219 lkscrj equ 11 /* secondary reject state */ 000014 220 lksccs equ 12 /* secondary cmdr send state */ 000015 221 lkupfr equ 13 /* link up frmr send (lapb) */ 000016 222 lkuprs equ 14 /* link up reset started (lapb) */ 223 * 224 * miscellaneous integers 225 * 000010 226 dialim equ 8 /* max queued frames to dia */ 227 * 228 * line control types 229 * 000001 230 lctact equ 1 /* activate link */ 000002 231 lctdea equ 2 /* deactivate link */ 000003 232 lctdis equ 3 /* disconnect link */ 233 * 234 * format of activate order (stat0) 235 * 400000 236 dceflg bool 400000 /* we are a dce */ 200000 237 abmflg bool 200000 /* default to lapb */ assm 01 06-26-89 14.676 x25_tables page 30 x25 lap constant symbols 100000 238 disftf bool 100000 /* disc first flags */ 239 *unused 077000 000777 240 ordmsk bool 000777 /* control order type */ 241 * 242 * line status types 243 * 000001 244 lstdwn equ 1 /* link is down */ 000002 245 lstup equ 2 /* link is up */ 000003 246 lstcmr equ 3 /* cmdr of i-frame y set*/ 247 * 248 * bldmsg control strings 249 * 00012 250 srmmsg chstr (remadr,sarm,seteom) 00014 251 dmmsg chstr (locadr,dm,seteom) 00016 252 sbmmsg chstr (remadr,sabm,seteom) 00020 253 dscmsg chstr (remadr,disc,seteom) 00022 254 uamsg chstr (locadr,ua,seteom) 00024 255 cmdmsg chstr (remadr,cfield,seteom) 00026 256 rspmsg chstr (locadr,cfield,seteom) 00030 257 frmrms null 00030 258 cmdrms chstr (locadr,cmdr,cmdrb1,cmdrb2,cmdrb3,seteom) 259 * 260 * outscn control strings 261 * 00034 262 setp chstr (rescan,ignore,setbit,pmask) 00037 263 setf chstr (rescan,ignore,setbit,fmask) 00042 264 setac chstr (rescan,replac,remadr,ignore,replac,cfield,setbit,pmask,e 00042 265 etc ndchn,offbit,eof) end of binary card 00000002 266 * 267 * gocase control labels, compare strings, and tables constants 268 * 269 * tables constants 270 * 000000 271 rvbdad equ 0 /* bad address or other type of trash */ 000001 272 rvdisc equ 1 /* receive disc */ 000002 273 rvdm equ 2 /* receive dm (lapb) */ 000003 274 rvsarm equ 3 /* receive sarm (lap) */ 000004 275 rvsabm equ 4 /* recieve sabm (lapb) */ 000005 276 rvua equ 5 /* recieve ua */ 000006 277 rvcmdr equ 6 /* recieve cmdr (lap) or frmr (lapb) */ 000007 278 rvrr equ 7 /* recieve response rr */ 000010 279 rvrnr equ 8 /* recieve response rnr */ 000011 280 rvrej equ 9 /* recieve response rej */ 000012 281 rvbdcr equ 10 /* recieve a bad command or response */ 000013 282 rvt12l equ 11 /* t1 expired rc less then n2 */ 000014 283 rvt12e equ 12 /* t1 expired rc equal to n2 */ 000015 284 rvbdfb equ 13 /* recieve bad f-bit */ 000016 285 rvbdir equ 14 /* recieve i-frame bad n(r) */ 000017 286 rvbdis equ 15 /* recieve i-frame bad n(s) */ assm 01 06-26-89 14.676 x25_tables page 31 x25 lap constant symbols 000020 287 rvifrm equ 16 /* recieve i-frame */ 000021 288 rvprr equ 17 /* recieve command poll rr (lapb) */ 000022 289 rvprnr equ 18 /* recieve command poll rnr (lapb) */ 000023 290 rvprej equ 19 /* recieve command poll rej (lapb) */ 291 * 292 * down state table control array 293 * 00050 294 downst chstr (rvdisc,rvdm,rvua,rvt12l,rvt12e) 295 * 296 * t3 state table (mostly send disc go to down state used by 297 * dce portion only) 298 * 00053 299 t3stat chstr (rvdisc,rvdm,rvsarm,rvsabm,rvcmdr,rvrr,rvrnr,rvrej,rvbdcr 00053 300 etc ,rvt12l,rvt12e,rvbdfb,rvbdir,rvbdis,rvifrm,rvprr,rvprnr,r 00053 301 etc vprej) 302 * 303 * sabm send state used by lapb only 304 * 00065 305 ssstat chstr (rvdisc,rvdm,rvsabm,rvua,rvcmdr,rvt12l,rvt12e) 306 * 307 * set up state used by lap only 308 * 00071 309 sustat chstr (rvdisc,rvsarm,rvua,rvt12l,rvt12e) 310 * 311 * link up state primary side sub tables 312 * prinr - primary normal state 313 * prirb - primary remote busy state 314 * prit1 - primary timer reset state 315 * 00074 316 prinr null 00074 317 prirb null 00074 318 prit1 chstr (rvdisc,rvdm,rvsarm,rvsabm,rvua,rvcmdr,rvrr,rvrnr,rvrej,r 00074 319 etc vbdcr,rvt12l,rvt12e,rvbdfb,rvbdir,rvbdis,rvifrm) 320 * 321 * link up primary substate sarm send state lap only 322 * 00105 323 prisr chstr (rvua,rvt12l,rvt12e) 324 * 325 * link up secondary substate 326 * secnm - secondary normal 327 * seclb - secondary local busy 328 * secrj - secondary reject 329 * seccs - secondary command send lap only 330 * 00107 331 secnm null 00107 332 seclb null 00107 333 secrj null 00107 334 seccs chstr (rvdisc,rvsarm,rvsabm,rvua,rvcmdr,rvrr,rvrnr,rvrej,rvbdcr 00107 335 etc ,rvbdir,rvbdis,rvifrm,rvprr,rvprnr,rvprej) end of binary card 00000003 assm 01 06-26-89 14.676 x25_tables page 32 x25 lap constant symbols 336 * 337 * link up frame reject state lapb only 338 * 00117 339 prifr chstr (rvdisc,rvdm,rvsarm,rvsabm,rvua,rvcmdr,rvrr,rvrnr,rvrej,r 00117 340 etc vbdcr,rvt12l,rvt12e,rvbdfb,rvbdir,rvbdis,rvifrm,rvprr,rvp 00117 341 etc rnr,rvprej) 342 * 343 * link up reset send state lapb only 344 * 00131 345 prisrt chstr (rvdisc,rvdm,rvsabm,rvua,rvcmdr,rvt12l,rvt12e) 346 * 347 * which state tables gocase is going to used? 348 * (used in linkup state only) 349 * 00135 350 whstgc chstr (lkprnr,lkprrb,lkprt1,lkprsr,lkscnm,lksclb,lkscrj,lksccs, 00135 351 etc lkupfr,lkuprs) 352 * 353 * gocase label tables 354 * 355 * down state transferred vectors 356 * 00143 357 dslabl adrlst (dssnua,dmstt3,srtt3,disct1,dst1e) 358 * 359 * t3 state transferred vectors 360 * 00151 361 t3labl adrlst (sndua,dsdisc,susua,lpbiup,dsdisc,dsdisc,dsdisc,dsdisc,ds 00151 362 etc disc,t3t1ln,dsdscp,dsdisc,dsdisc,dsdisc,dsdisc,dsdisc,dsd 00151 363 etc isc,dsdisc) end of binary card 00000004 364 * 365 * ss lapb state transferred vectors for sabm sent state 366 * 00174 367 sslabl adrlst (sndua,ckdisc,sndua,lpbiup,sndsbm,t1sabm,ckdscp) 368 * 369 * set up state transferred vectors (lap) 370 * 00204 371 sulabl adrlst (dsdsua,sndua1,ckupst,sndsmp,dsdscp) 372 * 373 * primary normal state 374 * primary remote busy 375 * primary t1 time out 376 * transferred vectors 377 * 00212 378 pnrlbl null 00212 379 prblbl null 00212 380 pt1lbl adrlst (frsrrq,dsdisc,frsrrq,frsrrq,uaigfr,sborsm,nrrr,rbrnr,nrr 00212 381 etc ej,frsrrq,t1stch,n2rssr,frsrrq,frsrrq,frsrrq,frsrrq) 382 * 383 * primary sarm rest state transferred vectors 384 * assm 01 06-26-89 14.676 x25_tables page 33 x25 lap constant symbols 00233 385 psrlbl adrlst (backnr,tisarm,tidisc) end of binary card 00000005 386 * 387 * secondary normal state transferred vectors 388 * 00237 389 snmlbl adrlst (dsduab,nmdua,nmduab,frcmdr,frcmdr,frcmdr,frcmdr,frcmdr,f 00237 390 etc rcmdr,frsrrq,rjrej,nmif,finrr,finrr,finrr) 391 * 392 * secondary local busy state transferred vectors 393 * 00257 394 slblbl adrlst (dsduab,nmsdua,nmduab,frcmdr,frcmdr,frcmdr,frcmdr,frcmdr, 00257 395 etc frcmdr,frsrrq,sndrnr,sndrnr,finrnr,finrnr,finrnr) 396 * 397 * secondary reject state transferred vectors 398 * 00277 399 srjlbl adrlst (dsduab,nmsdua,nmduab,frcmdr,frcmdr,frcmdr,frcmdr,frcmdr, 00277 400 etc frcmdr,frsrrq,rej1,pnmif,finrej,finrej,finrej) end of binary card 00000006 401 * 402 * secondary command reject state transferred vectors 403 * 00317 404 scslbl adrlst (dsdsua,nmsdua,sndcmd,sndcmd,sndcmd,sndcmd,sndcmd,sndcmd, 00317 405 etc sndcmd,frsrrq,sndcmd,sndcmd,sndcmd,sndcmd,sndcmd) 406 * 407 * lapb frame reject transferred vectors 408 * 00337 409 lbfrtv adrlst (dsduab,discds,sndfr,lpbpup,sndfr,rssabm,sndfr,sndfr,sndf 00337 410 etc r,sndfr,t1nor,rssabm,sndfr,sndfr,sndfr,sndfr,sndfr,sndfr, 00337 411 etc sndfr) end of binary card 00000007 412 * 413 * reset sabm send state transferred vectors 414 * 00363 415 lbrstv adrlst (dsduab,discds,sndua,lpbpup,sndsbm,t1sabm,discds) 416 * 417 * which gocase table search to use transferred vectors 418 * 00373 419 whgclb adrlst (lkpnr,lkprb,lkpt1,lkpsr,lksnm,lkslb,lksrj,lkscs,lkfrlb,l 00373 420 etc krslb) 421 422 * 423 * meter difinitions 424 * 000001 425 frmxmt equ 1 /* output messages */ 000000 426 frmrcv equ 0 /* input messages */ 000036 427 rtyxmt equ m.cnt1 /* metter xmt retried */ 000040 428 resxmt equ m.cnt2 /* meter xmt reset */ 000042 429 rtyrcv equ m.cnt3 /* meter frmaes discarded */ 000044 430 resrcv equ m.cnt4 /* meter reciever reset */ 000046 431 mfce equ m.cnt5 /* meter fcs errors */ assm 01 06-26-89 14.676 x25_tables page 34 x25 lap constant symbols 000050 432 mrab equ m.cnt6 /* meter read aborts */ 433 434 ************************************************************ 435 * 436 * 437 * the x25 protocall has states in which only certain 438 * function can be preform, if these are violated; the 439 * state will send it to another state for that function 440 * or if function is satisfied then it will progress it 441 * to the proper state in line to link up. 442 * 443 * the first function is the physcal connect. this 444 * is not a state for the x25, but a common state to 445 * all lines. 446 * 447 * the following is the primary states for normal linkup flow 448 * 449 * lap lapb 450 * down state down state 451 * t3 state t3 state 452 * setup state sabm send state 453 * linkup state linkup state 454 * note lapb can go to linkup state in t3 state but 455 * lap cann't 456 * 457 * the following is the linkup substate 458 * 459 * lap lapb 460 * primary normal primary normal 461 * primary remote busy primary remote busy 462 * primary t1 primary t1 463 * primary sarm send 464 * secondary normal secondary normal 465 * secondary local busy secondary local busy 466 * secondary reject secondary reject 467 * secondary command reject 468 * frame reject 469 * reset sabm send 470 * 471 ************************************************************ assm 01 06-26-89 14.676 x25_tables page 35 physical connection 474 ************************************************************ 475 * 476 * wait for the activation order 477 * 478 ************************************************************ 479 00406 480 x25str clrflg tfhang /* clear last hangup flag just in case */ 00411 481 config /* set idle link state */ 00412 482 rmode fg.itf /* don't transmit flags */ 00413 483 getext ,gopunt /* get tib extension */ 00416 484 linctl stat0,actwt /* did we get activated? */ 00421 485 goto actts2 /* yes, process it now */ end of binary card 00000008 486 00423 487 actwt wait 0,0,actts /* wait for activation order */ 488 00427 489 actts tstflg tfhang,hangr /* start over */ 00433 490 linctl stat0,actwt /* is it a activation order */ 00436 491 actts2 calasm dcdact,(actwt) /* decode it */ 492 00442 493 lisna tstflg tflisn,lisn /* told to listen? */ 00446 494 wait 0,0,lisnt /* test for it type */ 495 00452 496 lisnt tstflg tfhang,hangr /* told to hand up */ 00456 497 goto lisna /* all other */ 498 00460 499 lisn contrl sdtr+srts+stat /* full duplex set rts and dtr */ 500 00462 501 wait 0,0,cklisn /* wait for changes or status */ end of binary card 00000009 00466 502 status cts+dsr+cd,0,ckdlup 503 * /* must have cts, dsr, and cd before we can talk */ 504 00472 505 ckdlup setime 1 /* wait one second for line settling */ 00474 506 wait ckline,0,ckdlup 507 00500 508 ckline contrl stat /*find out if line still up */ 509 00502 510 wait 0,0,cklisn 00506 511 status cts+dsr+cd,0,dialed /* it di 00512 512 status 0,dsr,hang /* dead line so drop it */ 513 00516 514 cklisn tstflg tfhang,hang /* told to drop the line */ 00522 515 tstflg tflisn,golisn /* still listening */ 00526 516 goto hang /* none so quit */ 517 00530 518 golisn waitm 519 520 521 ************************************************************ assm 01 06-26-89 14.676 x25_tables page 36 physical connection 522 * 523 * the line has dial up now set up some tables 524 * 525 ************************************************************ 526 00531 527 dialed calasm cfgpcw /* set configuration pcw */ end of binary card 00000010 00534 528 contrl srec /* enter recieve mode */ 00536 529 setlcf flgwd1,rcvsw /* say we are recieving */ 530 00541 531 config /* set active link state */ 00542 532 smode fg.itf 533 00543 534 clrlcf flgwd1,xmitsw /* clear transmitter */ 00546 535 goto pcdown /* start the down state function */ 536 537 ************************************************************ 538 * 539 * handle the deactivation of the line 540 * 541 ************************************************************ 542 00550 543 deact contrl rrec /* exit recieve mode */ 00552 544 config /* set idle link */ 00553 545 rmode fg.itf 00554 546 goto hang /* wait for activation order */ assm 01 06-26-89 14.676 x25_tables page 37 link down state 549 550 ************************************************************ 551 * 552 * link down has two phases. one is for initialization 553 * the other is for the actual down state functions 554 * 555 ************************************************************ 556 00556 557 pcdown clrlcf flgwd1,rprtsw /* no report is needed */ 00561 558 setlcl flgwd2,0 /* clear all messages */ 00564 559 setlcl flgwd3,0 /* clear more flags */ 00567 560 clrlcf flgwd1,xmitsw /* xmiter not busy */ 00572 561 tstlcf flgwd1,discft,dwnst /* down 00576 562 tstlcf flgwd1,laparb,pssute /* setup for lapb */ end of binary card 00000011 00602 563 goto psuste /* lap setup */ 00604 564 dwnst setlcf flgwd1,downsw /* shown link is down */ 00607 565 clrlcf flgwd1,t1rec /* no timer recovery */ 00612 566 clrlcf flgwd1,timet3 /* no t3 timer going */ 00615 567 clrlcf flgwd1,pbit /* clear p bit */ 00620 568 clrlcf flgwd1,fbit /* clear f bit */ 00623 569 setchr pmask,null 00625 570 setchr fmask,null 00627 571 calsub clrabf /* free any messages buffers */ 572 00631 573 tstlcf flgwd1,rprtsw,repdns /* do we report down state */ 00635 574 goto dwnwt /* no */ 575 00637 576 repdns setlcl stat0,lstdwn /* set order to down state */ 00642 577 setlcv stat1,lastf /* going tell host why we when down */ 00645 578 setlcv stat2,state end of binary card 00000012 00650 579 setlcv stat3,sstate 00653 580 tstlcf flgwd1,trcoff,repdn1 00657 581 goto repdn2 00661 582 repdn1 setlcl .crtsw,1 00664 583 repdn2 calasm setust 00667 584 linsta stat0 00671 585 clrlcf flgwd1,rprtsw /* clear the report switch */ 00674 586 goto deact /* not t 587 /* link 588 00676 589 dwnwt setlcl state,lkdnst /* show we are down */ 00701 590 setlcl pstate,0 /* save a mess later */ 00704 591 clrlcf flgwd1,psarm /* prior sarm required off */ 00707 592 setlcl rc,0 /* set retry counter to zero */ 00712 593 setimv t1 /* set timer */ 00714 594 setlcf flgwd1,timesw /* start timer */ end of binary card 00000013 00717 595 setlcf flgwd2,sndisc /* set send disc message */ assm 01 06-26-89 14.676 x25_tables page 38 link down state 00722 596 calsub outlst /* output it */ 597 00724 598 dwntwt setlcl retlbl,dwntwt /* return label for stpchn */ 00727 599 wait timeds,badoa,testst /* main wait for down state */ 00733 600 status 0,dsr,hang /* line drop hangup */ 00737 601 status exh,0,exhsta /* no buffers avaible */ 00743 602 status fcserr,0,fcesta /* fcs error */ 00747 603 status rcvabt,0,rabsta /* read abort */ 00753 604 status rcvtrm,0,rddsin /* read terminate check it out */ 00757 605 status term,0,outpcw /* output terminate see if any more */ 00763 606 status xte,0,xtesta /* punt transferred timming error */ end of binary card 00000014 607 608 ************************************************************ 609 * 610 * driver for the down state 611 * 612 ************************************************************ 613 00767 614 timeds calsub timeo /* which timer is it (t3, t1 < rc, or t1 = rc */ 00771 615 goto dstest /* go to work */ 616 00773 617 rddsin meterm frmrcv /* meter input */ 00775 618 calasm valfrm /* get function form input */ 01000 619 setlcl rc,0 /* still some life give it a chance */ 620 01003 621 dstest gocase lastf,downst,dslabl /* do the work */ 01007 622 meter2 rtyrcv,1 /* not handle here meter it */ 01012 623 dumpin /* ignore it */ 01013 624 setchr fmask,null /* no finial here */ 01015 625 clrlcf flgwd1,fbit 01020 626 waitm /* go back to where came from */ assm 01 06-26-89 14.676 x25_tables page 39 t3 state 629 630 ************************************************************ 631 * 632 * t3 state dce use only - set t3 and wait for sarm 633 * for lap and ua for lapb 634 * 635 ************************************************************ 636 01021 637 t3tat setlcl retlbl,t3tat /* return label for stpchn */ 01024 638 wait tmt3,badoa,testst /* main wait for t3 state */ 01030 639 status 0,dsr,hang /* dead line - hangup */ 01034 640 status exh,0,exhsta /* exhaust */ end of binary card 00000015 01040 641 status fcserr,0,fcesta /* fcs error */ 01044 642 status rcvabt,0,rabsta /* read abort */ 01050 643 status rcvtrm,0,rdnt3 /* reader terminate */ 01054 644 status term,0,outpcw /* output terminate */ 01060 645 status xte,0,xtesta /* punt transferred timing error */ 646 01064 647 rdnt3 meterm frmrcv /* meter this */ 01066 648 calasm valfrm /* get function from input */ 01071 649 goto t3test /* go do the work */ 650 01073 651 tmt3 calsub timeo /* which time */ 01075 652 tstlcf flgwd1,timet3,dsdscp /* t3 expired go down */ 653 01101 654 t3test gocase lastf,t3stat,t3labl /* do the work */ end of binary card 00000016 01105 655 meter2 rtyrcv,1 /* not handle here */ 01110 656 dumpin /* ignore it */ 01111 657 setchr fmask,null /* no finial here */ 01113 658 clrlcf flgwd1,fbit 01116 659 waitm /* go back were we came from */ assm 01 06-26-89 14.676 x25_tables page 40 ss state (lapb only) 662 663 ************************************************************ 664 * 665 * ss state a lapb state for link initialization. 666 * it is waiting for a ua response to the previous 667 * sabm command 668 * 669 ************************************************************ 670 01117 671 pssute clrlcf flgwd3,hldvar 01122 672 setlcf flgwd2,snsabm /* sabm is to be sent */ 01125 673 calsub outlst 01127 674 setlcf flgwd1,timesw 01132 675 setimv t1 01134 676 setlcl rc,0 01137 677 sspbst setlcl retlbl,sspbst /* return label for stpchn */ 01142 678 wait tmss,badoa,testst /* main wait for ss state */ 01146 679 status 0,dsr,hang /* line drop */ 01152 680 status exh,0,exhsta /* exhaust conditions */ end of binary card 00000017 01156 681 status fcserr,0,fcesta /* fcs error */ 01162 682 status rcvabt,0,rabsta /* read abort */ 01166 683 status rcvtrm,0,rdnss /* read terminate */ 01172 684 status term,0,outpcw /* output terminate */ 01176 685 status xte,0,xtesta /* punt transferred timing error */ 686 01202 687 tmss calsub timeo /* which timer */ 01204 688 goto sstest /* process it */ 689 01206 690 rdnss meterm frmrcv /* meter the input */ 01210 691 calasm valfrm /* what function to preform */ 692 01213 693 sstest gocase lastf,ssstat,sslabl /* driver to process ss state */ 01217 694 dumpin /* not process here dump it */ 01220 695 meter2 rtyrcv,1 /* meter it */ end of binary card 00000018 01223 696 setchr fmask,null /* no finial here */ 01225 697 clrlcf flgwd1,fbit 01230 698 waitm /* go back to wait */ 699 assm 01 06-26-89 14.676 x25_tables page 41 set up state 702 703 ************************************************************ 704 * 705 * setup state a short distant to link up, only 706 * need a ua to complete it (lap) 707 * 708 ************************************************************ 709 01231 710 psuste setlcf flgwd2,snsarm /* send a sarm now */ 01234 711 calsub outlst 01236 712 setlcf flgwd1,timesw 01241 713 setimv t1 01243 714 setlcl rc,0 01246 715 sustte setlcl retlbl,sustte /* return label for stpchn */ 01251 716 wait timesu,badoa,testst /* main wait */ 01255 717 status 0,dsr,hang /* drop line hangup */ 01261 718 status exh,0,exhsta /* exhaust condition */ 01265 719 status fcserr,0,fcesta /* fcs error */ end of binary card 00000019 01271 720 status rcvabt,0,rabsta /* read abort */ 01275 721 status rcvtrm,0,rdnsu /* read terminate */ 01301 722 status term,0,outpcw /* output terminate */ 01305 723 status xte,0,xtesta /* punt transferred timing error */ 724 01311 725 rdnsu meterm frmrcv /* meter input */ 01313 726 calasm valfrm /* process ctr field */ 01316 727 goto sutest 728 01320 729 timesu calsub timeo /* which time is it */ 01322 730 sutest gocase lastf,sustat,sulabl /* process the frame */ 01326 731 dumpin /* not process here */ 01327 732 meter2 rtyrcv,1 /* meter it */ 01332 733 setchr fmask,null /* no finial here */ 01334 734 clrlcf flgwd1,fbit 01337 735 waitm /* return back to last wait */ end of binary card 00000020 assm 01 06-26-89 14.676 x25_tables page 42 link up state (information transfer state) 738 739 ************************************************************ 740 * 741 * link up stae this contains two side of the protocol 742 * the primary and the secondary. to insure the proper 743 * rountines to call a double gocase is perform. the 744 * first is to get the right tables, the second is to call the 745 * right function. 746 * 747 ************************************************************ 748 01340 749 linkup setlcl retlbl,linkup /* return lable for stpchn */ 01343 750 wait timelk,writeo,testst /* main linkup wait */ 01347 751 status 0,dsr,hang /* line drop hangup */ 01353 752 status exh,0,exhsta /* exhaust condition */ 01357 753 status fcserr,0,fcesta /* fcs error */ 01363 754 status rcvabt,0,rabsta /* read abort */ 01367 755 status rcvtrm,0,rdnlk /* read terminate */ 01373 756 status term,0,outpcw /* output terminate */ 01377 757 status xte,0,xtesta /* punt transferred timing error */ 758 01403 759 timelk calsub timeo /* which time is it */ 01405 760 goto tmlk end of binary card 00000021 761 01407 762 rdnlk meterm frmrcv /* meter input */ 01411 763 calasm valfrm /* find which function is it */ 01414 764 cmpchr frmadr,locadr,secmpr /* secondary side */ 01417 765 setlcv lkupws,pstate /* no primary side */ 01422 766 goto tmlk 767 01424 768 secmpr setlcv lkupws,sstate /* set to secondary tables */ 769 01427 770 tmlk gocase lkupws,whstgc,whgclb /* which table to use */ 01433 771 dumpin /* bad input */ 01434 772 meter2 rtyrcv,1 01437 773 waitm 774 01440 775 lkpnr gocase lastf,prinr,pnrlbl /* primary mornal */ 01444 776 goto lkpret /* not handle function */ 777 01446 778 lkprb gocase lastf,prirb,prblbl /* primary remote busy */ 01452 779 goto lkpret /* not handle function */ 780 01454 781 lkpt1 gocase lastf,prit1,pt1lbl /* primary t1 expired */ end of binary card 00000022 01460 782 goto lkpret /* not handle functions */ 783 01462 784 lkpsr gocase lastf,prisr,psrlbl /* primary sarm sent (lap)*/ 01466 785 goto lkpret /* not handle functions */ assm 01 06-26-89 14.676 x25_tables page 43 link up state (information transfer state) 786 01470 787 lksnm gocase lastf,secnm,snmlbl /* secondary normal */ 01474 788 goto lkpret /* not handle functions */ 789 01476 790 lkslb gocase lastf,seclb,slblbl /* secondary local busy */ 01502 791 goto lkpret /* not handle functions */ 792 01504 793 lksrj gocase lastf,secrj,srjlbl /* secondary reject */ 01510 794 goto lkpret /* functions not handle */ 795 01512 796 lkscs gocase lastf,seccs,scslbl /* secondary command sent */ 01516 797 goto lkpret /* functions not handle */ 798 01520 799 lkfrlb gocase lastf,prifr,lbfrtv /* frame reject (lapb) */ 01524 800 goto lkpret /* function not handle */ end of binary card 00000023 801 01526 802 lkrslb gocase lastf,prisrt,lbrstv /* reset sabm (lapb) */ 803 01532 804 setchr fmask,null 01534 805 clrlcf flgwd1,fbit 01537 806 lkpret dumpin /* ignore function */ 01540 807 meter2 rtyrcv,1 /* meter anyway */ 01543 808 waitm assm 01 06-26-89 14.676 x25_tables page 44 driver call functional code for x.25 protocol 811 812 ************************************************************ 813 * 814 * dssnua - down state, receive disc send ua 815 * if lap dce send ua plus a disc 816 * if lap dte just a ua 817 * if lapb dce just a ua 818 * if lapb dte send ua plus a disc 819 * 820 ************************************************************ 821 01544 822 dssnua setlcf flgwd2,snua /* set send ua flag */ 01547 823 calsub outlst /* output it */ 01551 824 dumpin /* dump any input */ 01552 825 setimv t1 /* set timer */ 01554 826 setlcf flgwd1,timesw /* set indicator timer is running */ 01557 827 tstlcf flgwd1,laparb,lpbtst /* test for lapb */ 828 01563 829 tstlcf flgwd1,dcedte,stdisc /* test for dce */ 830 01567 831 dsrtsn waitm /* nothing more to do */ 832 01570 833 lpbtst tstlcf flgwd1,dcedte,dsrtsn /* test for dce */ end of binary card 00000024 01574 834 stdisc setlcf flgwd2,sndisc /* set flag it will be sent later */ 01577 835 waitm /* that is all */ 836 837 838 ************************************************************ 839 * 840 * dmstt3 - dm recieve while in down state 841 * send mode setting response (sabm) in lapb only 842 * if lap - ingore it as an error 843 * 844 ************************************************************ 845 01600 846 dmstt3 tstlcf flgwd1,laparb,dmst3n /* is it lapb */ 01604 847 goto lkpret /* no error ingore it */ 01606 848 dmst3n setlcf flgwd2,snsabm /* send a sabm */ 01611 849 clrlcf flgwd3,hldvar /* no ua to hold */ 01614 850 goto srtt3 851 852 853 ************************************************************ 854 * 855 * srtt3 - start t3 timer 856 * if dte then do; 857 * if lap go to su state, send a sarm, and wait for a ua 858 * if lapb go to ss state, send a sabm, and wait for a ua 859 * end assm 01 06-26-89 14.676 x25_tables page 45 driver call functional code for x.25 protocol 860 * else do; 861 * go to t3 state 862 * set t3 timer 863 * wait for approxiate command 864 * end; 865 * 866 ************************************************************ 867 01616 868 srtt3 tstlcf flgwd3,hldvar,srt3i /* do we 01622 869 setime 0 /* reset timer */ 01624 870 setlcl rc,0 /* reset rc counter */ 01627 871 clrlcf flgwd1,timesw /* reset timer running flag */ 01632 872 calsub fbitck /* check final bit */ 01634 873 dumpin /* dump any input */ 01635 874 tstlcf flgwd1,dcedte,t3sts /* test for dce */ 875 01641 876 setimv t1 /* set timer to t1 */ end of binary card 00000025 01643 877 clrlcf flgwd1,timet3 /* reset t3 flag */ 01646 878 setlcf flgwd1,timesw /* set t1 flag */ 01651 879 tstlcf flgwd1,laparb,t3sbm /* dce send sabm */ 01655 880 setlcf flgwd2,snsarm /* set send sarm for lap */ 01660 881 calsub outlst /* output it */ 01662 882 setlcl state,lksust 01665 883 goto sustte /* go to set up state */ 884 01667 885 t3sbm setlcf flgwd2,snsabm /* set send sabm flag for lapb */ 01672 886 calsub outlst /* output it */ 01674 887 setlcl state,lkssst 01677 888 goto sspbst /* go to send sabm state */ 889 01701 890 t3sts setimv t3 /* set timer to t3 */ 01703 891 setlcf flgwd1,timesw /* set timer running flag */ 01706 892 setlcf flgwd1,timet3 /* set t3 flag */ 01711 893 setlcl state,lkt3st end of binary card 00000026 01714 894 calsub outlst /*just in case (dm sabm request) */ 01716 895 goto t3tat /* go to t3 state */ 896 01720 897 srt3i clrlcf flgwd3,hldvar /*no holding now */ 01723 898 calsub fbitck 01725 899 dumpin 01726 900 waitm 901 902 903 ************************************************************ 904 * 905 * disct1 - t1 expired send disc - polled 906 * 907 * dst1ep - same as above but doesn't increase rc assm 01 06-26-89 14.676 x25_tables page 46 driver call functional code for x.25 protocol 908 * 909 ************************************************************ 910 01727 911 disct1 addlcl rc,1 /* add one to retry counter */ 01732 912 dst1ep setchr pmask,pfon /* set poll bit */ 01734 913 setlcf flgwd2,sndisc /* send a disc */ 01737 914 calsub outlst /* output it */ 01741 915 setlcf flgwd1,timesw /* set timer running flag */ 01744 916 setimv t1 /* set timer */ 01746 917 waitm 918 919 920 ************************************************************ 921 * 922 * dst1e - t1 expired with rc = n2 923 * if dte lapb reset timer and ignore 924 * it should be hangup for dte on both lap & lapb 925 * 926 ************************************************************ 927 01747 928 dst1e tstlcf flgwd1,laparb,dst1e2 /* if lapb */ 01753 929 goto dst1ep 930 01755 931 dst1e2 tstlcf flgwd1,dcedte,dst1ep /* if dce */ end of binary card 00000027 01761 932 clrlcf flgwd1,timesw /* reset timer flag */ 01764 933 setime 0 /* reset timer */ 01766 934 setlcl rc,0 /* clear the retry count for later */ 01771 935 waitm 936 937 938 ************************************************************ 939 * 940 * sndua - send ua and remine here 941 * 942 ************************************************************ 943 01772 944 sndua1 setlcf flgwd1,psarm 01775 945 sndua setlcf flgwd2,snua /* set send ua flag */ 02000 946 meter2 resrcv,1 /* meter this, but it not right */ 02003 947 dumpin /* dump any input */ 02004 948 calsub fbitck /* check f-bit */ 02006 949 calsub outlst /* output it */ 02010 950 waitm 951 952 953 ************************************************************ 954 * 955 * dsdisc - send disc go to down state (link still down ) 956 * assm 01 06-26-89 14.676 x25_tables page 47 driver call functional code for x.25 protocol 957 * dsdscp - same as above but send a poll disc 958 * 959 ************************************************************ 960 02011 961 ckdisc setlcf flgwd3,hldvar /* dm slow ua process to ss state */ 02014 962 tstlcf flgwd1,discft,dsdisc 02020 963 clrlcf flgwd3,hldvar /*no down state let t1 handle it */ 02023 964 dumpin 02024 965 waitm 02025 966 ckdscp tstlcf flgwd1,discft,dsdscp end of binary card 00000028 02031 967 goto t1sbmg /* ss state t1 expired rc=n2 */ 968 02033 969 dsdscp setchr pmask,pfon /* set polled bit */ 02035 970 dsdisc setlcf flgwd1,downsw /* set down flag */ 02040 971 setlcl flgwd2,0 /* clear out output control */ 02043 972 calsub fbitck /* check for f-bit */ 02045 973 dumpin /* dump any input */ 02046 974 goto dwnst /* goto down state */ 975 976 977 ************************************************************ 978 * 979 * susua - send ua and goto to setup state (lap only) 980 * since dce are in t3, no check for dte needed 981 * if lapb - set lastf to bad command go to driver 982 * else send a sarm, send ua, reset t3, goto su state 983 * 984 ************************************************************ 985 02050 986 susua tstlcf flgwd1,laparb,t3bcrd /* lapb bad news */ 02054 987 setlcf flgwd1,psarm /* sarm recieve */ 02057 988 clrlcf flgwd1,timet3 /* clear t3 timer */ 02062 989 setime 0 /* clear timer */ 02064 990 setlcl rc,0 /* reset retry counter */ 02067 991 dumpin /* dump any input */ 02070 992 setlcl state,lksust /* set state to su */ 02073 993 setlcf flgwd2,snsarm /* one sarm needed */ 02076 994 setlcf flgwd2,snua /* also one ua */ end of binary card 00000029 02101 995 calsub outlst /* output one of them */ 02103 996 setimv t1 /* set timer */ 02105 997 setlcf flgwd1,timesw /* insure timer is running */ 02110 998 goto sustte /* go to su state wait */ 999 02112 1000 t3bcrd setlcl lastf,rvbdcr /* bad command */ 02115 1001 goto t3test /* t3 state driver entry */ 1002 1003 1004 ************************************************************ assm 01 06-26-89 14.676 x25_tables page 48 driver call functional code for x.25 protocol 1005 * 1006 * lpbiup - lapb initial linkup entry 1007 * if state = t3state send a ua 1008 * if lap entry then bad command (label t3bcrd) 1009 * lkupst- -linkup for lap 1010 * lpbpup - reset link (lapb) do not report to host 1011 * status 1012 * 1013 ************************************************************ 1014 02117 1015 ckupst tstlcf flgwd1,psarm,lkupst 02123 1016 calsub fbitck /* check f-bit */ 02125 1017 dumpin /* ua no longer needed */ 02126 1018 waitm 02127 1019 lpbiup tstlcf flgwd1,laparb,lkupst /* if lapb */ 02133 1020 goto t3bcrd /* no bad command */ 02135 1021 lkupst setlcf flgwd1,rprtsw /* report to host link failure */ 02140 1022 signal dialup /* the host we are up */ 02142 1023 lpbpup calsub fbitck /* check f-bit */ 02144 1024 dumpin /* dump any input */ 02145 1025 clrlcf flgwd1,psarm end of binary card 00000030 02150 1026 clrlcf flgwd1,downsw /* clear down indicator */ 02153 1027 setlcl flgwd2,0 /* clear any output */ 02156 1028 tstlcl state,lkt3st,snualk /* send a ua */ 02162 1029 tstlcl pstate,lkupfr,snualk /* also send ua */ 02166 1030 goto norlku /* no ua needed */ 1031 02170 1032 snualk setlcf flgwd2,snua /* set ua flag */ 02173 1033 calsub outlst /* output it */ 1034 02175 1035 norlku clrlcf flgwd1,timesw /* clear timer */ 02200 1036 clrlcf flgwd1,timet3 /* clear t3 flag */ 02203 1037 setlcl flgwd3,0 /* reset some flags */ 02206 1038 setlcl v.s,0 /* clear the state variables */ 02211 1039 setlcl v.r,0 02214 1040 setlcl a.s,0 end of binary card 00000031 02217 1041 setlcl a.r,0 02222 1042 setlcl rc,0 /* reset retry counter */ 02225 1043 setlcl uaoffs,0 /* set to top message (first 1044 * unacknowledge message */ 02230 1045 clrlcf flgwd1,t1rec 02233 1046 setime 0 /* clear time */ 02235 1047 setlcl state,lkisup /* set statte to link up */ 02240 1048 setlcl pstate,lkprnr /* set p state to normal */ 02243 1049 setlcl sstate,lkscnm /* set s state to normal */ 02246 1050 setchr pmask,null /* reset mask bits */ 02250 1051 setchr fmask,null 02252 1052 setchr cmdrb1,null /* no cmdr/frmr info */ assm 01 06-26-89 14.676 x25_tables page 49 driver call functional code for x.25 protocol 02254 1053 calasm scanup 02257 1054 tstlcl bufadd,0,nupwt /* any thing to write */ 02263 1055 setlcf flgwd2,snifr /* yes */ end of binary card 00000032 02266 1056 calsub outlst /* output if we can */ 02270 1057 nupwt calsub sigotp /* check for sndout requirements */ 02272 1058 goto linkup /* that is all to link up */ 1059 1060 1061 ************************************************************ 1062 * 1063 * t3t1ln - t3 state t1 expired rc < n2 1064 * this is currently impositiable - for their is only 1065 * one timer running. incase it is corrected inc rc 1066 * and restart the timer. 1067 * 1068 ************************************************************ 1069 02274 1070 t3t1ln addlcl rc,1 /* inc rc counter */ 02277 1071 setlcf flgwd1,timesw /* start timer flag */ 02302 1072 setimv t1 /* set timer going */ 02304 1073 waitm 1074 1075 1076 ************************************************************ 1077 * 1078 * sndsbm - meter bad command send a sabm and remain 1079 * 1080 ************************************************************ 1081 02305 1082 sndsbm meter2 rtyrcv,1 /* meter bad command */ 02310 1083 dumpin /* no input needed */ 02311 1084 setlcf flgwd2,snsabm /* set send sabm flag */ 02314 1085 calsub outlst /* output it */ 02316 1086 waitm 1087 1088 1089 ************************************************************ 1090 * 1091 * t1sabm - t1 expired send a sabm and remain 1092 * 1093 ************************************************************ 1094 02317 1095 t1sabm addlcl rc,1 /* inc retry counter */ 02322 1096 t1sbmg setchr pmask,pfon 02324 1097 setlcf flgwd2,snsabm /* set send sabm flag */ 02327 1098 calsub outlst /* output it */ 02331 1099 setlcf flgwd1,timesw /* set timer flag */ end of binary card 00000033 02334 1100 setimv t1 /* start timer */ assm 01 06-26-89 14.676 x25_tables page 50 driver call functional code for x.25 protocol 02336 1101 waitm 1102 1103 1104 ************************************************************ 1105 * 1106 * dsdsua - send disc, send ua, go to down state (lap) 1107 * if dte send just a ua 1108 * else send both disc and a ua 1109 * 1110 ************************************************************ 1111 02337 1112 dsdsua meter2 resrcv,1 /* meter reset counts */ 02342 1113 setlcl flgwd2,0 /* clear any output messages */ 02345 1114 setchr pmask,null /* no poll needed */ 02347 1115 clrlcf flgwd1,pbit /* clear bit */ 02352 1116 setlcf flgwd2,snua /* set send ua flag */ 02355 1117 tstlcf flgwd1,dcedte,dcdsua /*dce test */ 02361 1118 goto dtdsua /* nothing for dte */ 02363 1119 dcdsua setlcf flgwd2,sndisc /* need one disc */ 02366 1120 dtdsua dumpin /* no input needed */ 02367 1121 calsub outlst /* output anything that is left */ 02371 1122 setlcl rc,0 /* reset retry counter */ 02374 1123 setlcf flgwd1,timesw /* set timer flag */ 02377 1124 setimv t1 /* set timer going */ 02401 1125 goto dwnst /* go to down state */ end of binary card 00000034 1126 1127 1128 ************************************************************ 1129 * 1130 * sndsmp - send pol sarm and remain 1131 * tisarm - same 1132 * 1133 ************************************************************ 1134 02403 1135 tisarm null 02403 1136 sndsmp setchr pmask,pfon /* set pol bit */ 02405 1137 addlcl rc,1 /* inc retry counter */ 02410 1138 setlcf flgwd2,snsarm /* set sarm flag */ 02413 1139 dumpin /* dump any input */ 02414 1140 setlcf flgwd1,timesw /* restart the timer */ 02417 1141 calsub outlst 02421 1142 setimv t1 02423 1143 waitm 1144 1145 1146 ************************************************************ 1147 * 1148 * frsrrq - frame reject or sarm required 1149 * if lapb send frame reject and goto fr state assm 01 06-26-89 14.676 x25_tables page 51 driver call functional code for x.25 protocol 1150 * else send sarm go to sr state 1151 * 1152 ************************************************************ 1153 02424 1154 frsrrq meter2 resxmt,1 /* meter link reset */ 02427 1155 setlcl rc,0 /* reset retry conter */ 02432 1156 setlcf flgwd1,timesw 02435 1157 tstlcf flgwd1,laparb,lpbfrc /* lapb test */ 02441 1158 setlcf flgwd2,snsarm /* sarm needed (lap) */ 02444 1159 setlcl pstate,lkprsr /* set primary to new state */ 02447 1160 goto frsren /* go to continue */ end of binary card 00000035 02451 1161 lpbfrc setlcf flgwd2,snfrmr /* set send frmr */ 02454 1162 calasm blfcdr /* generate the frmr fields */ 02457 1163 calasm ldnsdr /* load the n(s) value */ 02462 1164 setlcl pstate,lkupfr /* set sub state to fr state */ 02465 1165 setlcl sstate,lkupfr 02470 1166 frsren dumpin /* dump input now */ 02471 1167 calsub outlst 02473 1168 setimv t1 /* restart timer */ 02475 1169 waitm 1170 1171 1172 ************************************************************ 1173 * 1174 * sborsm - send sabm or sarm 1175 * if lap then send sarm and go to sarm reset state. 1176 * else if lapb then send sabm and go to reset state 1177 * 1178 ************************************************************ 1179 02476 1180 sborsm tstlcl lastf,rvcmdr,cmchkl /* check i-frame length problem 02502 1181 goto sbors1 /* no continue */ 02504 1182 cmchkl tstlcl cmdrln,0,sbors1 /* length error */ 02510 1183 setlcf flgwd2,sndisc /* send disc to crash the link */ 02513 1184 calsub outlst /* get the disc out 02515 1185 setlcl stat0,lstcmr /* set cmdr reject */ end of binary card 00000036 02520 1186 linsta stat0 /* send in the status */ 02522 1187 clrlcf flgwd1,rprtsw /* clear report indicator */ 02525 1188 goto deact /* crash the link */ 02527 1189 sbors1 meter2 resxmt,1 /* meter link reset */ 02532 1190 setlcl rc,0 /* reset counter */ 02535 1191 setlcf flgwd1,timesw /* needed timer */ 02540 1192 tstlcf flgwd1,laparb,lpbsbb /* lap or lapb */ 02544 1193 setlcl pstate,lkprsr /* set sarm reset state */ 02547 1194 setlcf flgwd2,snsarm /* send sarm */ 02552 1195 goto sbsmct 02554 1196 lpbsbb setlcl pstate,lkuprs /* set reset state */ 02557 1197 setlcl sstate,lkuprs /* just in case */ assm 01 06-26-89 14.676 x25_tables page 52 driver call functional code for x.25 protocol 02562 1198 setlcf flgwd2,snsabm /* send sabm */ 02565 1199 sbsmct dumpin 02566 1200 calsub outlst /* send the message */ end of binary card 00000037 02570 1201 setimv t1 /* set timer */ 02572 1202 setlcf flgwd1,timesw /* set timer flags */ 02575 1203 waitm 1204 1205 1206 ************************************************************ 1207 * 1208 * uaigfr - ua receive during substates normal, t1 1209 * expired, and remote busy. ignore it unless it lapb 1210 * then go to frame reject 1211 * 1212 ************************************************************ 1213 02576 1214 uaigfr calsub fbitck /* check the f-bit */ 02600 1215 tstlcf flgwd1,laparb,frsrrq /* lapb frsrrq can do it */ 02604 1216 dumpin /* input not needed now */ 02605 1217 waitm /* ignore it, go back to start */ 1218 1219 1220 ************************************************************ 1221 * 1222 * nrrr - recieve rr frame - go back to nornal substate 1223 * set xx and n(r), ack any frame, also set fbit and 1224 * timer 1225 * 1226 ************************************************************ 1227 02606 1228 nrrr tstlcl sstate,lksccs,cshook /* cs (lap) generate aproper response*/ 02612 1229 calsub fbitck /* process f bit */ 02614 1230 dumpin 02615 1231 tstlcl pstate,lkprrb,rsprrb /* remote busy some special */ 02621 1232 setlcl pstate,lkprnr /* set p state to normal */ 02624 1233 tstlcv a.r,n.r,gowait /* ack any */ 02630 1234 calsub ackmsg /* ok ack them */ 02632 1235 goto suakst 02634 1236 rsprrb setlcl pstate,lkprnr /* set pstate to normal */ end of binary card 00000038 02637 1237 calsub ackmsg /* ack any frames */ 02641 1238 setlcv v.s,n.r /* set v.s to normal */ 1239 /* a.r will be handle by the ack process */ 02644 1240 calsub clrrbb /* set up next output frame */ 02646 1241 suakst setlcl rc,0 /* reset retry counter */ 02651 1242 tstlcv v.s,a.r,rclkrr /* if equal reset clock */ 02655 1243 setlcf flgwd1,timesw /* no restart timer */ 02660 1244 setimv t1 02662 1245 gowait tstlcf flgwd1,t1rec,rect1 /* tier recovery in process */ assm 01 06-26-89 14.676 x25_tables page 53 driver call functional code for x.25 protocol 02666 1246 tstlcf flgwd3,rtyhld,hldrty /* more t1 recovery lapb left over */ 02672 1247 gownt1 calsub outlst /* output any thing */ 02674 1248 gotov retlbl /* that is all */ 1249 1250 ************************************************************ 1251 * 1252 * this should be only lapb condition - reset 1253 * i-frame hold flag and restart i_frame processing 1254 * 1255 ************************************************************ 02676 1256 hldrty clrlcf flgwd3,rtyhld /* reset i-frame hold */ 02701 1257 calsub clrrbb /* setup next output i-frame */ 02703 1258 goto gownt1 /* finish up */ end of binary card 00000039 1259 02705 1260 rect1 clrlcf flgwd1,t1rec /* reset recovery flag */ 02710 1261 clrlcf flgwd3,rtyhld /* reset i-frame hold */ 02713 1262 setlcl rc,0 /* reset retry counter */ 02716 1263 calsub clrrbb /* setup next output frame */ 1264 ************************************************************ 1265 * 1266 * lapb on timer recovery reset , must check for 1267 * unack frames if any the polled bit must be set 1268 * again for next i-frame to be sent 1269 * 1270 ************************************************************ 1271 02720 1272 tstlcf flgwd1,laparb,trplms /* is it lapb */ 02724 1273 goto gownt1 /* no proceed */ 02726 1274 trplms tstlcv xx,a.r,gownt1 /* all ack return */ 02732 1275 tstlcl bufadd,0,gownt1 /* test for no output */ 02736 1276 setchr pmask,pfon /* set poll on */ 02740 1277 setlcf flgwd1,pbit /* set bit */ 02743 1278 setlcf flgwd3,mstifr /* must send one i-frame out */ 02746 1279 calsub outlst /* output poll i-frame */ 02750 1280 setlcf flgwd3,rtyhld /* no more i-frame wait for response */ 02753 1281 gotov retlbl /* go back to normal wait */ end of binary card 00000040 1282 02755 1283 rclkrr tstlcl uaoffs,0,rclkra /* any unack messages? */ 02761 1284 punt 3 /* yes crash for there shouldn't be */ 02763 1285 rclkra null 02763 1286 clrlcf flgwd1,timesw /* clear flag */ 02766 1287 setime 0 /* reset timer */ 02770 1288 goto gowait /* now finish it up */ 1289 1290 1291 ************************************************************ 1292 * 1293 * rbrnr - go to remote busy and process rnr message assm 01 06-26-89 14.676 x25_tables page 54 driver call functional code for x.25 protocol 1294 * 1295 ************************************************************ 1296 02772 1297 rbrnr tstlcl sstate,lksccs,cshook /* lap error */ 02776 1298 calsub fbitck /* process f-bit */ 03000 1299 setlcl pstate,lkprrb /* set pstate to remote busy */ 03003 1300 dumpin 03004 1301 calsub ackmsg /* ack any output messages */ 03006 1302 setlcl uaoffs,0 /* sending no more, top one is next*/ 03011 1303 tstlcf flgwd1,timesw,rbrn1 /* reset timer needed */ 03015 1304 goto rbrnr2 03017 1305 rbrn1 setlcl rc,0 /* reset retry counter */ 03022 1306 setlcf flgwd1,timesw /* reset timer */ end of binary card 00000041 03025 1307 setimv t1 03027 1308 rbrnr2 waitm 1309 1310 1311 ************************************************************ 1312 * 1313 * nrrej - normal state rej recieve 1314 * 1315 ************************************************************ 1316 03030 1317 nrrej tstlcl sstate,lksccs,cshook 03034 1318 calsub fbitck 03036 1319 setlcl pstate,lkprnr /*set state to normal */ 03041 1320 meter2 rtyxmt,1 /* meter this one */ 03044 1321 calsub ackmsg /* ack any output messages */ 03046 1322 calsub rejrst /* get reject message */ 03050 1323 dumpin /* input not needed */ 03051 1324 tstlcv v.s,a.r,rclkrr /* recieve last message so stop the clock */ 03055 1325 setlcv v.s,n.r /* transmit this frame next */ 03060 1326 goto gowait /*some more check common area */ 1327 1328 1329 ************************************************************ 1330 * 1331 * t1stch - t1 expired retramit the earlest i-frame 1332 * in lapb case start sending poll rr frames 1333 * 1334 ************************************************************ 1335 03062 1336 t1stch meter2 rtyxmt,1 /* meter this */ 03065 1337 clrlcf flgwd3,rtyhld /* tempory reset i-frame hold */ 03070 1338 addlcl rc,1 /* inc the retry counter */ end of binary card 00000042 03073 1339 setlcl pstate,lkprt1 /* set pstate to t1 recovery */ 03076 1340 setlcf flgwd1,t1rec /* set t1 recovery flag */ 03101 1341 setlcv xx,v.s /* save current value */ assm 01 06-26-89 14.676 x25_tables page 55 driver call functional code for x.25 protocol 03104 1342 setlcv v.s,a.r /* set to first unack frame */ 03107 1343 setchr pmask,pfon /* set poll bit */ 03111 1344 setlcf flgwd1,pbit 03114 1345 setimv t1 /* reset time for next time out */ 03116 1346 setlcl uaoffs,0 /* setup first message */ 03121 1347 tstlcf flgwd1,laparb,lpbt1s /* test for lapb */ 03125 1348 tstlcl bufadd,0,lpanif 03131 1349 setlcf flgwd2,snifr /* set i frame to transmit */ 03134 1350 setlcf flgwd3,mstifr /* force at least one i-frame */ 03137 1351 t1stou calsub outlst /* output it */ end of binary card 00000043 03141 1352 setlcf flgwd3,rtyhld /*no i-frame to be sent */ 03144 1353 lpanif waitm /* that is all */ 03145 1354 lpbt1s clrlcf flgwd2,snifr /* lapb no i-frame during recovery */ 03150 1355 setlcf flgwd2,snprr /* set poll rr message needed */ 03153 1356 goto t1stou 1357 1358 1359 ************************************************************ 1360 * 1361 * n2rssr - t1 expired with rc = n2 1362 * lap go to sr state and send sarm 1363 * lapb go to rs state and send sabm 1364 * 1365 ************************************************************ 1366 03155 1367 n2rssr meter2 resxmt,1 /* meter this */ 03160 1368 setchr pmask,null /* no needed poll bit yet */ 03162 1369 clrlcf flgwd1,pbit 03165 1370 setlcl rc,0 /* reset retry counter */ 03170 1371 tstlcf flgwd1,laparb,lpbsbs 03174 1372 setlcl pstate,lkprsr /* set pstate to sr state */ 03177 1373 setlcf flgwd2,snsarm /* set send sarm flag */ 03202 1374 goto n2rrsc 03204 1375 lpbsbs setlcl pstate,lkuprs /* set stats to reset sabm */ 03207 1376 setlcl sstate,lkuprs end of binary card 00000044 03212 1377 setlcf flgwd2,snsabm /* send sabm now */ 03215 1378 n2rrsc dumpin 03216 1379 calsub outlst 03220 1380 setlcf flgwd1,timesw /* reset timer */ 03223 1381 setimv t1 /* restart the timer */ 03225 1382 waitm 1383 1384 1385 ************************************************************ 1386 * 1387 * backnr - lap only go back to normal state reset 1388 * outgoing frames and v.s, a.s values 1389 * assm 01 06-26-89 14.676 x25_tables page 56 driver call functional code for x.25 protocol 1390 ************************************************************ 1391 03226 1392 backnr clrlcf flgwd1,t1rec /* no timer recovery */ 03231 1393 clrlcf flgwd3,rtyhld /* no i-frame holding */ 03234 1394 dumpin /* needed no input */ 03235 1395 setlcl v.s,0 /* reset some values */ 03240 1396 setlcl a.r,0 03243 1397 setime 0 /* reset timer */ 03245 1398 setlcl rc,0 /* reset retry counter */ 03250 1399 clrlcf flgwd1,timesw /* reset timer indicator */ 03253 1400 setchr fmask,null /* reset maskes */ 03255 1401 setchr pmask,null end of binary card 00000045 03257 1402 setlcl uaoffs,0 /* reset i-frame to top */ 03262 1403 calasm scanup 03265 1404 tstlcl bufadd,0,bknrni /* any i-frame to transmit */ 03271 1405 setlcf flgwd2,snifr /* some to go */ 03274 1406 bknrni setlcl pstate,lkprnr /* set pstate to normal */ 03277 1407 calsub outlst /* output frames */ 03301 1408 calsub sigotp /* tell host of output */ 03303 1409 waitm 1410 1411 1412 ************************************************************ 1413 * 1414 * tidisc - t1 expired with rc = n2 send dics and go down 1415 * 1416 ************************************************************ 1417 03304 1418 tidisc meter2 resxmt,1 /* meter this stuff */ 03307 1419 setlcl rc,0 /* reset counter */ 03312 1420 setchr pmask,null /* reset mask */ 03314 1421 clrlcf flgwd1,pbit 03317 1422 setlcf flgwd1,downsw /* indicat we are down */ 03322 1423 setlcl flgwd2,0 /* reset output flags */ 03325 1424 setlcf flgwd2,sndisc /* send a disc */ end of binary card 00000046 03330 1425 calsub fbitck 03332 1426 calsub outlst /* output the disc */ 03334 1427 goto dwnst /* go down now */ 1428 1429 ************************************************************ 1430 * 1431 * dsduab - if lap then use dsdsua by goto 1432 * else if lapb then send a ua and go to down state 1433 * 1434 ************************************************************ 1435 1436 03336 1437 dsduab tstlcf flgwd1,laparb,dsdub /* test for lapb */ assm 01 06-26-89 14.676 x25_tables page 57 driver call functional code for x.25 protocol 03342 1438 goto dsdsua /* lap only */ 03344 1439 dsdub setlcl flgwd2,0 /* reset output flags */ 03347 1440 setchr pmask,null /* reset poll bit */ 03351 1441 setlcf flgwd2,snua /* flag a send ua */ 03354 1442 calsub outlst /* output it now */ 03356 1443 goto dwnst /* ok go down now */ 1444 1445 1446 ************************************************************ 1447 * 1448 * nmdua - send ua and clear this state. 1449 * 1450 * nmsdua - go to normal (lap only ) 1451 * 1452 ************************************************************ 1453 1454 03360 1455 nmsdua tstlcf flgwd1,laparb,frcmdr /* lapb error */ 03364 1456 setlcl sstate,lkscnm /* reset state */ 03367 1457 setchr cmdrb1,null /* clear cmdr fields */ 03371 1458 nmdua tstlcf flgwd1,laparb,frcmdr /* lapb error */ end of binary card 00000047 03375 1459 setlcl v.r,0 /* reset recieve variables */ 03400 1460 setlcl a.s,0 03403 1461 tstlcl bufadd,0,nmdua1 03407 1462 setlcf flgwd2,snifr /* tried to write something */ 03412 1463 nmdua1 setlcl flgwd2,snua /* send a ua */ 03415 1464 meter2 resrcv,1 /* meter the reset recieve */ 03420 1465 dumpin 03421 1466 calsub outlst /* send ua out */ 03423 1467 waitm 1468 1469 1470 ************************************************************ 1471 * 1472 * nmduab - recieve sabm send a ua and reset link 1473 * (lapb only ) 1474 * 1475 ************************************************************ 1476 03424 1477 nmduab tstlcf flgwd1,laparb,nmdubc /* test for lapb */ 03430 1478 goto frcmdr /* no it a lap */ 03432 1479 nmdubc setlcl flgwd2,0 /* clear all output stuff */ 03435 1480 dumpin /* no more input needed */ 03436 1481 goto snualk /* reset link via linkup code */ 1482 1483 1484 ************************************************************ 1485 * 1486 * frcmdr - build reject fields and set state as follows assm 01 06-26-89 14.676 x25_tables page 58 driver call functional code for x.25 protocol 1487 * if lap then set state to cs 1488 * else if lapb then set state to fr 1489 * 1490 * sndcmd - cs lap only send cmdr again 1491 * 1492 * sndfr - fr lapb only send frmr again 1493 * note cmdr and frmr are the same command 1494 * 1495 ************************************************************ 1496 03440 1497 frcmdr calasm blfcdr /* build the reject frame */ 03443 1498 tstlcf flgwd1,laparb,lpbfrb /* test for lapb */ end of binary card 00000048 03447 1499 setlcl sstate,lksccs /* lap set state */ 03452 1500 goto sndcmd /* continue on */ 03454 1501 lpbfrb setlcl sstate,lkupfr /* set laps state */ 03457 1502 setlcl pstate,lkupfr 03462 1503 calasm ldnsdr 03465 1504 sndfr null /* lapb entry */ 03465 1505 sndcmd setlcf flgwd2,sncmdr /* set output flag */ 03470 1506 meter2 rtyrcv,1 /* meter this */ 03473 1507 dumpin /* input not needed */ 03474 1508 calsub outlst /* output the command */ 03476 1509 waitm 1510 1511 1512 ************************************************************ 1513 * 1514 * rjrej - reject - bad i-frame only one reject can be 1515 * sent. 1516 * 1517 * rej1 - same as reject but no rej is sent 1518 * 1519 ************************************************************ 1520 03477 1521 rjrej setlcl sstate,lkscrj /* set sstate to reject state */ 03502 1522 setlcf flgwd2,snrej /* set reject flag */ 03505 1523 rej1 calsub ackmsg /* ack any frames */ 03507 1524 calsub outlst /* output any messages */ 03511 1525 meter2 rtyrcv,1 /* meter it */ end of binary card 00000049 03514 1526 dumpin 03515 1527 waitm 1528 1529 1530 ************************************************************ 1531 * 1532 * nmif - process i-frame and stay here 1533 * 1534 * pnmif - process i-frame and go to normal state assm 01 06-26-89 14.676 x25_tables page 59 driver call functional code for x.25 protocol 1535 * also check for local busy conditions 1536 * 1537 ************************************************************ 1538 03516 1539 pnmif setlcl sstate,lkscnm /* set sstate */ 03521 1540 nmif calasm ckrnr /* check for local busy */ 03524 1541 tstlcl rnrflg,0,nmifa /* is it */ 03530 1542 goto sndrt1 03532 1543 nmifa calsub ackmsg /* ack any frames */ 03534 1544 setlcv amarg1,v.r /* set mod8 arith */ 03537 1545 setlcl amarg2,1 03542 1546 calasm admod8 03545 1547 setlcv v.r,amarg2 03550 1548 calasm setbrk /* set break flag */ 03553 1549 sendin /* send it off to the host */ 03554 1550 tstlcv a.r,v.s,rcnmif /* reset timer */ 03560 1551 goto nmifct end of binary card 00000050 03562 1552 rcnmif tstlcf flgwd1,t1rec,nmifct /* if recovery in process skip */ 03566 1553 tstlcl uaoffs,0,rcnmfa /* some unack buffers ? */ 03572 1554 punt 3 /* shouldn't be any crash */ 03574 1555 rcnmfa null 03574 1556 clrlcf flgwd1,timesw 03577 1557 setime 0 03601 1558 nmifct null 03601 1559 setlcf flgwd2,snrr /* ack this last frame */ 03604 1560 calsub outlst /* do it now */ 03606 1561 waitm 1562 1563 1564 ************************************************************ 1565 * 1566 * finrr - poll response recieve send a rr back 1567 * 1568 * finrej - since one rej can be send send a rr back 1569 * instead 1570 * 1571 ************************************************************ 1572 03607 1573 finrr null 03607 1574 finrej calsub ackmsg /* ack any frames */ 03611 1575 dumpin 03612 1576 setlcf flgwd2,snrr /* send the rr */ 03615 1577 calsub outlst 03617 1578 waitm 1579 1580 1581 ************************************************************ 1582 * 1583 * sndrnr - send rnr remote busy recieve i-frame assm 01 06-26-89 14.676 x25_tables page 60 driver call functional code for x.25 protocol 1584 * test for not busy if so process as normal 1585 * 1586 ************************************************************ 1587 03620 1588 sndrnr calasm ckrnr /* check for local busy */ 03623 1589 tstlcl rnrflg,1,sndrt1 /* yes it is */ 03627 1590 setlcl sstate,lkscnm end of binary card 00000051 03632 1591 goto secmpr /* reprocess it */ 03634 1592 sndrt1 setlcl sstate,lksclb /* set local busy condition */ 03637 1593 meter2 rtyrcv,1 /* meter this */ 03642 1594 calsub ackmsg /* ack any frames */ 03644 1595 dumpin 03645 1596 setlcf flgwd2,snrnr /* send rnr */ 03650 1597 calsub outlst 03652 1598 waitm 1599 1600 1601 ************************************************************ 1602 * 1603 * finrnr - poll response recieve send an rnr back 1604 * 1605 ************************************************************ 1606 03653 1607 finrnr calsub ackmsg /* ack any input frames */ 03655 1608 dumpin 03656 1609 calasm ckrnr /* check if busy has been clear */ 03661 1610 tstlcl rnrflg,0,finrn1 03665 1611 setlcf flgwd2,snrnr /* no send rnr */ 03670 1612 goto finrn2 03672 1613 finrn1 setlcl sstate,lkscnm /* normal state */ 03675 1614 setlcf flgwd2,snrr /*send rr */ end of binary card 00000052 03700 1615 finrn2 calsub outlst 03702 1616 waitm 1617 1618 1619 ************************************************************ 1620 * 1621 * discds - either recieve dm or t1 expired with rc = n2 1622 * on both fr and rs state - send disc and go down 1623 * 1624 ************************************************************ 1625 03703 1626 discds setlcl flgwd2,0 /* clear out flags */ 03706 1627 dumpin 03707 1628 setlcf flgwd2,sndisc /* send a disc now */ 03712 1629 calsub outlst 03714 1630 goto dwnst 1631 assm 01 06-26-89 14.676 x25_tables page 61 driver call functional code for x.25 protocol 1632 1633 ************************************************************ 1634 * 1635 * rssabm - go to rs state and send a sabm 1636 * 1637 ************************************************************ 1638 03716 1639 rssabm calsub fbitck /* check f-bit */ 03720 1640 dumpin /* dump any input */ 03721 1641 setlcf flgwd1,timesw 03724 1642 setimv t1 03726 1643 setlcf flgwd2,snsabm /* set sabm flags */ 03731 1644 setlcl pstate,lkuprs /* set states now */ 03734 1645 setlcl sstate,lkuprs 03737 1646 calsub outlst /* output sabm now */ 03741 1647 waitm 1648 1649 1650 ************************************************************ 1651 * 1652 * t1nor - t1 - expired rest timer and to rc and wait 1653 * 1654 ************************************************************ 1655 03742 1656 t1nor addlcl rc,1 /* inc rc counter */ 03745 1657 setlcf flgwd1,timesw /* set timer flag */ end of binary card 00000053 03750 1658 setimv t1 /* restart timer */ 03752 1659 waitm assm 01 06-26-89 14.676 x25_tables page 62 status called routines and errors handlers 1662 1663 ************************************************************ 1664 * 1665 * exhsta - got exhaust status. this means an input tally runout 1666 * occurred which resets receive mode. therefore, we must 1667 * set receive mode on again. unfortunately, we cannot do 1668 * this immediately if there is a pending output dcw list. 1669 * 1670 * stpchn at this point realy messup the x25_tables, therefore, 1671 * the code of stpchn is inserted here and is modified to 1672 * handle the unique problem of this tables. 1673 * 1674 ***************************************************************** 1675 03753 1676 exhsta null 03753 1677 meter2 m.exh,1 /* meter this conditions */ 03756 1678 goto exhrst /* and reset things */ 1679 03760 1680 xtesta null 03760 1681 meter1 m.xte,1 /* meter it */ 1682 03763 1683 exhrst null 03763 1684 contrl rrec+rxmit+smark /* reset 03765 1685 setime 1 /* set a timer to insure resetting occures */ 03767 1686 wait exhsta,exhwrt,testst /* wait 1687 1688 ************************************************************ 1689 * 1690 * note: exhsta in time out is for insuring that the rrec and rxmit is perfo 1691 * 1692 * exhwrt is to insure that no output is lost. 1693 * 1694 * testst is to kill the line if a hangup is signalled. 1695 * 1696 ************************************************************ 1697 03773 1698 status marker,0,exhret /* finish on stopping the channel */ 03777 1699 status 0,dsr,hang 1700 * 04003 1701 exhwrt setlcf flgwd1,oasw /* output arrive */ 04006 1702 setlcf flgwd1,oprusw /* say it has been recieve */ 04011 1703 waitm /*go back to waiting */ 1704 * 04012 1705 exhrtr setimv t1 / not right but timer will be restarted */ 04014 1706 goto exhcnt end of binary card 00000054 1707 * 04016 1708 exhret tstlcf flgwd1,timesw,exhrtr /* timer running, set timer */ 04022 1709 setime 0 /* reset the timer */ 04024 1710 exhcnt null assm 01 06-26-89 14.676 x25_tables page 63 status called routines and errors handlers 04024 1711 clrlcf flgwd1,rcvsw /* out of rcv mode */ 04027 1712 meter2 rtyrcv,1 /* meter also a retried to be preform */ 04032 1713 dumpin 04033 1714 tstlcf flgwd1,xmitsw,outpcw /* output was going process like term */ 04037 1715 contrl srec /* reset recieve mode */ 04041 1716 setlcf flgwd1,rcvsw 04044 1717 tstlcf flgwd1,oprusw,writeo /* output has arrive process it */ 04050 1718 gotov retlbl /* return to previous wait */ 1719 1720 1721 ************************************************************ 1722 * 1723 * fcs error on the frame 1724 * 1725 ************************************************************ 1726 04052 1727 fcesta meter2 mfce,1 /* meter it */ 04055 1728 goto abtfn 1729 1730 1731 ************************************************************ 1732 * 1733 * read abort status 1734 * 1735 ************************************************************ 1736 04057 1737 rabsta meter2 mrab,1 04062 1738 abtfn meter2 rtyrcv,1 /* meter everything as a retried */ end of binary card 00000055 04065 1739 dumpin 04066 1740 waitm 1741 1742 1743 ************************************************************ 1744 * 1745 * gopunt - unrecoverable error so die 1746 * 1747 ************************************************************ 1748 04067 1749 gopunt punt 2 1750 1751 1752 ************************************************************ 1753 * 1754 * hang - clean up tib extension and reset dtr 1755 * signals 1756 * 1757 * hangr - delete the tib extension and signal hangup 1758 * 1759 ************************************************************ assm 01 06-26-89 14.676 x25_tables page 64 status called routines and errors handlers 1760 04071 1761 hang stpchn /* kill the channel */ 04073 1762 clrlcf flgwd1,xmitsw 04076 1763 calsub clrabf 04100 1764 config 04101 1765 rmode fg.itf 04102 1766 contrl rdtr+rrts 04104 1767 hangr unwind /* in case we exited a subroutine */ 04105 1768 retext /* release the extension */ 04106 1769 dumpin 04107 1770 hang2 dmpout 04110 1771 tstwrt hang2 /* loop untill all output is gone */ 04112 1772 clrflg (tflisn,tfhang) 04115 1773 signal hangup 04117 1774 goto hungup 1775 1776 1777 ************************************************************ 1778 * 1779 * outpcw - output process complete check for more 1780 * 1781 ************************************************************ 1782 04121 1783 outpcw clrlcf flgwd1,xmitsw /* reset transmitter busy */ 04124 1784 tstlcf flgwd1,ifrsnd,iprotm 04130 1785 dmpout 04131 1786 goto iptmrt 04133 1787 outclr calsub clrabf /* clear any data frames */ end of binary card 00000056 04135 1788 goto iptrta 04137 1789 iprotm calasm clrocp 04142 1790 iptmrt tstlcf flgwd3,mstclr,outclr 04146 1791 iptrta tstlcf flgwd1,rcvsw,sgoa /* is reciver running */ 04152 1792 contrl srec /* no restart it */ 04154 1793 setlcf flgwd1,rcvsw 04157 1794 sgoa tstlcf flgwd1,ackrq,sgoa1 04163 1795 goto sgoa2 04165 1796 sgoa1 setlcv n.r,nrv 04170 1797 calsub ackmsg 04172 1798 sgoa2 tstwrt writa2 /* output on t.ocp process it */ 04174 1799 tstlcf flgwd1,oprusw,write1 04200 1800 clrlcf flgwd1,ifrsnd /* clear for next */ end of binary card 00000057 04203 1801 tstlcf flgwd1,ackrq,ackrtc 04207 1802 calsub outlst 04211 1803 gotov retlbl /* insure right wait block */ assm 01 06-26-89 14.676 x25_tables page 65 wait test routines and timer determination 1806 1807 ************************************************************ 1808 * 1809 * timeo - time out processing set lastf to proper state 1810 * 1811 ************************************************************ 1812 04213 1813 timeo setlcl lastf,rvbdad /* set function to ignore value */ 04216 1814 setlcv lkupws,pstate /* set to primary state */ 04221 1815 tstlcf flgwd1,timesw,cotime /* timer must be running */ 04225 1816 retime retsub 1817 04226 1818 cotime tstlcf flgwd1,timet3,retime 1819 04232 1820 tstlcv rc,n2,n2equl /* rc = n2 */ 04236 1821 setlcl lastf,rvt12l /* no normal case */ 04241 1822 retsub 04242 1823 n2equl setlcl lastf,rvt12e /* next state or down */ 04245 1824 retsub 1825 1826 1827 ************************************************************ 1828 * 1829 * testst - comman dia test line status and orders 1830 * 1831 ************************************************************ 1832 04246 1833 testst tstflg tfhang,hang /* told to hangup */ end of binary card 00000058 04252 1834 linctl stat0,testwt /* line status - no return */ 04255 1835 tstlcl stat0,lctdea,deact /* told to deactivate the line */ 04261 1836 tstlcl stat0,lctdis,dsdisc /* logical disconnect the line*/ 1837 * note is status should never be used */ 1838 04265 1839 testwt waitm 1840 1841 1842 ************************************************************ 1843 * 1844 * badoa - write recieve for actual linkup and linkup 1845 * is not complete. rember the write, but flush the output 1846 * 1847 ************************************************************ 1848 04266 1849 badoa setlcf flgwd1,oasw /* output arrived since last sndout */ 04271 1850 tstlcf flgwd1,xmitsw,badoa2 /* xmit busy */ 04275 1851 dmpout /* no dump output now */ 04276 1852 badoa2 waitm 1853 1854 assm 01 06-26-89 14.676 x25_tables page 66 wait test routines and timer determination 1855 ************************************************************ 1856 * 1857 * writeo - write output from the dia (i-frame. 1858 * this will not set up the control fiels in the i-frame 1859 * nor will it set the clock and state variable, the outlst 1860 * do the dirty work. also the output is place on the 1861 * unprocess chain for later processing. 1862 * 1863 ************************************************************ 1864 04277 1865 writeo setlcf flgwd1,oasw /* say we have output form host */ 04302 1866 setlcf flgwd1,oprusw 04305 1867 tstlcf flgwd1,xmitsw,wrtrrt 04311 1868 tstwrt writa2 04313 1869 clrlcf flgwd1,oprusw 04316 1870 goto wrtret 04320 1871 write1 tstlcf flgwd1,ifrsnd,writ1a end of binary card 00000059 04324 1872 goto writa2 04326 1873 writ1a calasm scpbst 04331 1874 clrlcf flgwd1,ifrsnd 04334 1875 goto writa3 04336 1876 writa2 calasm ocpset,(temups) 04342 1877 calasm clrocp 04345 1878 writa3 clrlcf flgwd1,oprusw 04350 1879 calasm scupem 04353 1880 tstlcf flgwd1,ackrq,ackrtc 04357 1881 calsub outlst /*tried to send it now */ 04361 1882 wrtret calsub sigotp /* signal the host */ end of binary card 00000060 04363 1883 wrtrrt gotov retlbl /* insure right wait block */ 1884 04365 1885 ackrtc clrlcf flgwd1,ackrq 04370 1886 calsub sigotp /* just incase ackmsg bypassed it */ 04372 1887 goto suakst 1888 1889 1890 ************************************************************ 1891 * 1892 * clrabf - clear the buffer chain and reset some variables 1893 * 1894 ************************************************************ 1895 04374 1896 clrabf tstlcf flgwd1,xmitsw,busyst 04400 1897 tstwrt clrbfn /* anything on the output chain */ 04402 1898 clrloo calasm setocp,(bufadd) 04406 1899 clrlo1 dmpout /* dump the message */ 04407 1900 clrlo2 tstwrt clrlo1 /* anymore */ 04411 1901 tstlcl upobuf,0,clrlo3 04415 1902 calasm setocp,(upobuf) assm 01 06-26-89 14.676 x25_tables page 67 wait test routines and timer determination end of binary card 00000061 04421 1903 setlcl upobuf,0 04424 1904 goto clrlo2 04426 1905 clrlo3 calasm setocp,(temclr) 04432 1906 setlcl temclr,0 04435 1907 setlcl kv,0 /* clean up a few things */ 04440 1908 setlcl bufadd,0 04443 1909 setlcl uaoffs,0 04446 1910 clrlcf flgwd3,mstclr 04451 1911 retsub 04452 1912 clrbfn tstlcf flgwd1,ifrsnd,clrloo /* onput frame ignore it */ 04456 1913 calasm ocpset,(temclr) end of binary card 00000062 04462 1914 goto clrloo 04464 1915 busyst setlcf flgwd3,mstclr 04467 1916 retsub 04470 000000 0 1917 temclr oct 0 1918 1919 1920 **************************************************************** 1921 * 1922 * outlst - output a message under two different priorty 1923 * but first dm of lapb may be outputed. 1924 * if f bit send the following in order: sarm, cmdr, 1925 * ua, rnr, rej, and rr. otherwise the order is disc 1926 * sarm, cmdr, ua, rnr, rej, i, and rr. 1927 * lapb the sarm is sabm and cmdr is frmr. also polled rr, 1928 * rnr and rej are send if so wanted 1929 * 1930 ************************************************************ 1931 04471 1932 outlst tstlcf flgwd1,xmitsw,retotl /* busy return */ 04475 1933 tstlcf flgwd1,fbit,flst /* f bit required */ 04501 1934 tstlcl flgwd2,0,retotl /* nothing to do return */ 04505 1935 calasm getopt /* find 04510 1936 sddnnt bldmsg dmmsg,gopunt /* create the dm message */ 04513 1937 outscn setf,gopunt /* set f bit */ 04516 1938 clrlcf flgwd2,sndm /* clear it indicator */ end of binary card 00000063 04521 1939 goto wret /* write it now */ 04523 1940 sdout bldmsg dscmsg,gopunt /* build the disc message */ 04526 1941 outscn setp,gopunt /* set the p bit */ 04531 1942 clrlcf flgwd2,sndisc /* clear the flag */ 04534 1943 goto wret /* write it an d return */ 04536 1944 ssout1 bldmsg srmmsg,gopunt /* build the sarm message */ 04541 1945 outscn setp,gopunt /* set the p bit */ 04544 1946 clrlcf flgwd2,snsarm /* clear the send sarm */ 04547 1947 goto wret /* write and return */ 04551 1948 sbout1 bldmsg sbmmsg,gopunt /* build a sabm */ 04554 1949 outscn setp,gopunt /* set poll bit */ assm 01 06-26-89 14.676 x25_tables page 68 wait test routines and timer determination 04557 1950 clrlcf flgwd2,snsabm 04562 1951 goto wret 04564 1952 scout1 bldmsg cmdrms,gopunt /* build the cmdr message */ 04567 1953 outscn setf,gopunt /* set the f bit */ end of binary card 00000064 04572 1954 clrlcf flgwd2,sncmdr /* clear the send cmdr flag */ 04575 1955 goto wret /* write it and return */ 04577 1956 sua1 bldmsg uamsg,gopunt /* build the ua message */ 04602 1957 outscn setf,gopunt /* set f bit */ 04605 1958 clrlcf flgwd2,snua /* clear the ua flag */ 04610 1959 goto wret /* write it and return */ 04612 1960 srnr1 setchr cfield,null /* clear cfield */ 04614 1961 calsub outseq /* setup n.r */ 04616 1962 calasm bldrsp,(rnr) /* build the rsp message */ 04622 1963 bldmsg rspmsg,gopunt /* build the actual message */ 04625 1964 outscn setf,gopunt /* set f bit */ 04630 1965 clrlcf flgwd2,snrnr /* clear the flag */ end of binary card 00000065 04633 1966 goto wret 04635 1967 srej1 setchr cfield,null /* clear cfield */ 04637 1968 calsub outseq /* set up n.r */ 04641 1969 calasm bldrsp,(rej) /* build response field */ 04645 1970 bldmsg rspmsg,gopunt /* build the message */ 04650 1971 outscn setf,gopunt /* set f bit */ 04653 1972 clrlcf flgwd2,snrej /* reset the send reject flag */ 04656 1973 goto wret /* write it and return */ 04660 1974 sif1 tstlcl pstate,lkprrb,ifrett /* no write right now */ 04664 1975 tstlcl pstate,lkprsr,ifrett 04670 1976 tstlcl pstate,lkupfr,ifrett end of binary card 00000066 04674 1977 tstlcl pstate,lkuprs,ifrett 04700 1978 tstlcl sstate,lksccs,ifrett /* no need to confuse the reciver */ 04704 1979 tstlcf flgwd3,mstifr,ifskov /* required to send i-frame */ 04710 1980 tstlcf flgwd3,rtyhld,ifrett /* hold i-frames */ 04714 1981 ifskov clrlcf flgwd3,mstifr /* not required any more */ 04717 1982 calasm gtntms /* get next message on t.ocp */ 04722 1983 calasm tstocp,(0,ifrett) 04727 1984 goto sif2 04731 1985 ifrett clrlcf flgwd2,snifr end of binary card 00000067 04734 1986 goto outlst /* continue on for other output */ 04736 1987 sif2 setlcl cfield,null /* clear cfield */ 04741 1988 calasm bldcfd /* build cfield */ 04744 1989 outscn setac,gopunt /* finish control fields */ 04747 1990 setlcf flgwd1,ifrsnd /* set this for later processing */ 04752 1991 clrlcf flgwd2,snrr /* no rr needed i-frame will do */ 04755 1992 goto wret /* output it now */ 04757 1993 srr1 setchr cfield,null /* clear cfield */ 04761 1994 calsub outseq /* set up n.r */ 04763 1995 calasm bldrsp,(rr) /* build the response field */ assm 01 06-26-89 14.676 x25_tables page 69 wait test routines and timer determination 04767 1996 bldmsg rspmsg,gopunt /* build the output message */ 04772 1997 outscn setf,gopunt /* set finial bit in message */ end of binary card 00000068 04775 1998 clrlcf flgwd2,snrr /* clear the flag */ 05000 1999 goto wret /* write it and return *? 05002 2000 sprnr1 setchr cfield,null /* set c field to null for building */ 05004 2001 calsub outseq /* get n.r */ 05006 2002 calasm bldrsp,(rnr) /* gset in the command */ 05012 2003 bldmsg cmdmsg,gopunt 05015 2004 outscn setp,gopunt 05020 2005 clrlcf flgwd2,snprnr 05023 2006 goto wret 05025 2007 sprej1 setchr cfield,null /* clear cfield */ 05027 2008 calsub outseq /* get n.r :/ 05031 2009 calasm bldrsp,(rej) end of binary card 00000069 05035 2010 bldmsg cmdmsg,gopunt /* build the command msg */ 05040 2011 outscn setp,gopunt 05043 2012 clrlcf flgwd2,snprej 05046 2013 goto wret 05050 2014 sprr1 setchr cfield,null /* clear cfiedl :/ 05052 2015 calsub outseq /* get n.r */ 05054 2016 calasm bldrsp,(rr) /* build rr control */ 05060 2017 bldmsg cmdmsg,gopunt 05063 2018 outscn setp,gopunt 05066 2019 clrlcf flgwd2,snprr end of binary card 00000070 05071 2020 goto wret 05073 2021 flst tstlcf flgwd2,snsarm,fsout /* send a sarm */ 05077 2022 goto fbout 05101 2023 fsout bldmsg srmmsg,gopunt /* build a sarm message */ 2024 ************************************************************ 2025 * 2026 * a condition - the only time a sarm is send prior 2027 * a final frame, this is done to achive a link up condition 2028 * in most cases it wouldn't haven. 2029 * 2030 ************************************************************ 05104 2031 clrlcf flgwd2,snsarm /* clear the sarm flag */ 05107 2032 fsabmc outscn setp,gopunt /* set p bit */ 05112 2033 calsub write /* write the message */ 05114 2034 goto retotl 05116 2035 fbout tstlcf flgwd2,snsabm,fbsout 05122 2036 goto fcout 05124 2037 fbsout bldmsg sbmmsg,gopunt 05127 2038 clrlcf flgwd2,snsabm 05132 2039 goto fsabmc 05134 2040 fcout tstlcf flgwd2,sncmdr,scout1 /* send a cmdr */ end of binary card 00000071 05140 2041 tstlcf flgwd2,snua,sua1 /* send ua */ assm 01 06-26-89 14.676 x25_tables page 70 wait test routines and timer determination 05144 2042 tstlcf flgwd2,snrnr,srnr1 /* sned rnr */ 05150 2043 tstlcf flgwd2,snrej,srej1 /* send a reject */ 05154 2044 goto srr1 /* send rr like or not */ 05156 2045 wret calsub write /* write the message */ 05160 2046 tstlcf flgwd1,fbit,cfbps /* clear fbit? */ 05164 2047 tstlcf flgwd1,ifrsnd,write2 05170 2048 goto retotl 05172 2049 write2 tstlcf flgwd1,timesw,write3 /* timer running */ 05176 2050 setlcf flgwd1,timesw 05201 2051 setimv t1 /* set timer going */ 05203 2052 write3 setlcv amarg1,v.s /* add mod 8 to v.s */ 05206 2053 setlcl amarg2,1 end of binary card 00000072 05211 2054 calasm admod8 05214 2055 setlcv v.s,amarg2 05217 2056 tstlcf flgwd1,t1rec,write4 /* in timer recovery check xx */ 05223 2057 retsub 05224 2058 write4 tstlcv xx,amarg1,write5 05230 2059 retsub 05231 2060 write5 setlcv xx,amarg2 /* set xx to next */ 05234 2061 retsub 05235 2062 cfbps clrlcf flgwd1,fbit /* clear sending finial bit */ 05240 2063 setchr fmask,null /* clear mask also */ 05242 2064 retotl retsub 2065 2066 2067 ************************************************************ 2068 * 2069 * fbitck - if f bit on then reset the fbit flags 2070 * 2071 ************************************************************ 2072 05243 2073 fbitck tstlcl pf,0,fbitc1 /* f bit on */ 05247 2074 clrlcf flgwd1,fbit /* clear the flags */ 05252 2075 clrlcf flgwd1,pbit 05255 2076 setchr fmask,null /* clear the maskes */ end of binary card 00000073 05257 2077 setchr pmask,null 05261 2078 setlcl pf,0 /* reset the pf flag */ 05264 2079 fbitc1 retsub 2080 2081 2082 ************************************************************ 2083 * 2084 * sigotp - signal sndout if kv < kc else return 2085 * 2086 ************************************************************ 2087 05265 2088 sigotp tstlcv kv,kc,sigret /* equal stop the host */ 05271 2089 tstlcf flgwd1,oasw,sigctn /* needed sndout */ assm 01 06-26-89 14.676 x25_tables page 71 wait test routines and timer determination 05275 2090 sigret retsub 05276 2091 sigctn signal sndout 05300 2092 clrlcf flgwd1,oasw 05303 2093 retsub 2094 2095 2096 ************************************************************ 2097 * 2098 * cshook - a hook for the send cmdr state into 2099 * primary for responses 2100 * 2101 ************************************************************ 2102 05304 2103 cshook tstlcf flgwd1,dcedte,frsrrq 05310 2104 goto sndcmd 2105 2106 2107 ************************************************************ 2108 * 2109 * ackmsg - acknowledge any i-frames. delete all 2110 * messages that have been ack. reset kv as well 2111 * 2112 ************************************************************ 2113 05312 2114 ackmsg tstlcf flgwd1,xmitsw,ackms1 05316 2115 goto ackms3 05320 2116 ackms1 tstlcf flgwd2,snifr,ackms2 05324 2117 goto ackms3 end of binary card 00000074 05326 2118 ackms2 setlcv nrv,n.r 05331 2119 setlcf flgwd1,ackrq 05334 2120 retsub 05335 2121 ackms3 tstlcv a.r,n.r,akmret /* any to ack */ 05341 2122 calasm tstocp,(0,ackstr) 05346 2123 calasm ocpset,(temclr) 05352 2124 ackstr calasm setocp,(bufadd) end of binary card 00000075 05356 2125 acklop calasm tstocp,(uaoffs,ackclr) 05363 2126 goto ackst1 /* no - no clear */ 05365 2127 ackclr setlcl uaoffs,0 /* clear it next will off the top */ 05370 2128 ackst1 dmpout /* dump one message */ 05371 2129 addlcl kv,-1 /* one less off the chain */ 05374 2130 setlcv amarg1,a.r /* set up the admod8 to add one to a.r */ 05377 2131 setlcl amarg2,1 05402 2132 calasm admod8 05405 2133 tstlcf flgwd1,t1rec,ackms4 /* if t1 recovery test v.s */ 05411 2134 goto ackms6 /* if equal, increment it with a.r */ 05413 2135 ackms4 tstlcv v.s,a.r,ackms5 end of binary card 00000076 05417 2136 goto ackms6 assm 01 06-26-89 14.676 x25_tables page 72 wait test routines and timer determination 05421 2137 ackms5 setlcv v.s,amarg2 05424 2138 ackms6 setlcv a.r,amarg2 05427 2139 tstlcv a.r,n.r,ackpro /* finish */ 05433 2140 goto acklop /* loop again not finish */ 05435 2141 ackpro calasm ocpset,(bufadd) 05441 2142 calasm setocp,(temclr) 05445 2143 setlcl temclr,0 /* clear tempory */ end of binary card 00000077 05450 2144 tstlcf flgwd1,oprusw,akmret /* no scanup if output recieve on bufadd */ 05454 2145 calasm scanup /* any on unprocess chain */ 05457 2146 calsub sigotp /* tell host if output is ok */ 05461 2147 akmret retsub 2148 2149 2150 ************************************************************ 2151 * 2152 * clrrbb - clear a remote busy or reject mustsetup 2153 * the next output buffer (set flgwd2,snifr) */ 2154 * 2155 ************************************************************ 2156 05462 2157 clrrbb tstlcl bufadd,0,clrret /* nothing to set up */ 05466 2158 setlcf flgwd2,snifr /* set send i-frame */ 05471 2159 clrret retsub 2160 2161 2162 ************************************************************ 2163 * 2164 * rejrst - reject recieve must reset uaoffs 2165 * 2166 ************************************************************ 2167 05472 2168 rejrst setlcl uaoffs,0 /* top is the next if any */ 05475 2169 tstlcl bufadd,0,rejret /* nothing to do */ 05501 2170 setlcf flgwd2,snifr /* set send i-frame */ 05504 2171 rejret retsub 2172 2173 2174 ************************************************************ 2175 * 2176 * outseq - put n(r) into the send frame 2177 * 2178 ************************************************************ 2179 05505 2180 outseq setlcv outn.r,v.r /* get current v(r) */ 05510 2181 calasm putn.r /* put n(r) in control field */ 05513 2182 setlcv a.s,outa.s /* remember most recent ack sent */ 05516 2183 retsub end of binary card 00000078 2184 assm 01 06-26-89 14.676 x25_tables page 73 wait test routines and timer determination 2185 2186 ***************************************************************** 2187 * 2188 * subroutine to start transmission of the current output 2189 * message. 2190 * 2191 ***************************************************************** 2192 05517 2193 write holdot /* hold the output */ 05520 2194 meterm frmxmt /* meter this */ 05522 2195 setlcf flgwd1,xmitsw /* indicate xmit busy */ 05525 2196 dcwlst 05526 2197 cmd sxmit+rtroe 05527 2198 output (outmsg) 05531 2199 cmd rxmit+sterm 05532 2200 retsub 2201 assm 01 06-26-89 14.676 x25_tables page 74 multiply and divide macros 2203 mpy macro 2204 mpf #1 2205 lrl 1 2206 endm mpy 2207 2208 2209 dvd macro 2210 qls 1 2211 dvf #1 2212 endm dvd assm 01 06-26-89 14.676 x25_tables page 75 assembler utility subroutines 2214 ************************************************************ 2215 * 2216 * dcdact - subroutine to decode the parameters from the 2217 * activate control order. 2218 * control order format: 2219 * 2220 * dcl 1 order_format aligned based (addr(stat0)), 2221 * 2 flags, 2222 * 3 dce_or_dte bit (1) unal, /* on = dce */ 2223 * 3 lap_or_lapb bit (1) unal, /* on = lapb */ 2224 * 3 disc_first bit (1) unal, /* on = disc sent right away */ 2225 * 3 trace_off bit (1) unal, /* on = trace off upon crash */ 2226 * 3 pad bit (5) unal, /* padding */ 2227 * 2 activation_order bit (9) unal init ("001"b), /* constant */ 2228 * 2 frame_size fixed bin (17) unal, /* max frame size */ 2229 * 2 k fixed bin (8) unal, /* max unack frames */ 2230 * 2 n2 uns fixed bin (9) unal, /* number of retries */ 2231 * 2 t1 uns fixed bin (9) unal, /* retry time in tents of seconds */ 2232 * 2 t3 uns fixed bin (9) unal; /* init timer */ 2233 * 2234 * called with address of opblock to return to if 2235 * the control order is not activate 2236 * 2237 ************************************************************ 2238 05533 2239 dcdact subr dcd,(x3) 05541 0 50 157 5720 2240 stx3 t.a000-* /*save off the parameter */ 2241 * 2242 * check for activate 2243 * 05542 0 41 136 5700 2244 ldx3 l.a000-* /* =stat0 getr address */ 05543 4 10 133 5676 2245 tsy a.a000-*,* /* = cvaddr in x3 */ 05544 3 07 000 0 2246 lda 0,3 /* got order word */ 05545 0 17 154 5721 2247 sta t.a001-* /* save it */ 05546 0 34 133 5701 2248 ana l.a001-* /* =ordmsk mask all but order */ 05547 0 27 133 5702 2249 cmpa l.a002-* /* =lctact corrent one */ 05550 0 74 004 5554 2250 tze dcd010-* /* yes go on */ 2251 * 2252 * unwanted order, return as requested 2253 * 05551 0 41 147 5720 2254 ldx3 t.a000-* /* get address of parm block */ 05552 3 03 000 0 2255 ldx2 0,3 /* return is now in place */ 05553 0 71 121 5674 2256 tra dcdret-* /* get out */ 2257 * 2258 * set flags and control address 2259 * 05554 0 41 127 5703 2260 dcd010 ldx3 l.a003-* /* =flgwd1 05555 4 10 121 5676 2261 tsy a.a000-*,* /* cvaddr */ 05556 3 56 000 0 2262 stz 0,3 /* clear the field */ 05557 0 07 142 5721 2263 lda t.a001-* /* get back stat0 */ assm 01 06-26-89 14.676 x25_tables page 76 assembler utility subroutines 05560 473 000 0 2264 ilq 0 05561 0337 14 0 2265 ars 12 /* clear the order :/ 05562 222 004 0 2266 icana =4 /* trace off on crash */ 05563 0 74 002 5565 2267 tze dcd015-* end of binary card 00000079 05564 573 010 0 2268 iaq =8 05565 222 010 0 2269 dcd015 icana =8 /* is disc on */ 05566 0 74 002 5570 2270 tze dcd020-* /* no skip it */ 05567 573 004 0 2271 iaq =4 05570 222 020 0 2272 dcd020 icana =16 /* is lapb on */ 05571 0 74 002 5573 2273 tze dcd030-* /* no */ 05572 573 001 0 2274 iaq =1 05573 222 040 0 2275 dcd030 icana =32 /* is dce on */ 05574 0 74 013 5607 2276 tze dcd040-* /* no */ 05575 573 002 0 2277 iaq =2 /* set up last flags */ 05576 7333 00 0 2278 cqa /* place it into a */ 05577 3 72 000 0 2279 orsa 0,3 /* or it in */ 05600 0 07 104 5704 2280 lda l.a004-* /* =locadr */ 05601 4 10 076 5677 2281 tsy a.a001-*,* /* adbyte */ 05602 2331 00 0 2282 nop 05603 673 001 0 2283 ila dceadr /* dec address */ 05604 3 17 200 0 2284 sta 0,3,b.0 /*store it */ 05605 0 07 100 5705 2285 lda l.a005-* /* =remadr */ 05606 0 71 011 5617 2286 tra dcd050-* /* common area */ 2287 05607 7333 00 0 2288 dcd040 cqa /* set flgwd1 flags */ 05610 3 72 000 0 2289 orsa 0,3 /* store them */ 05611 0 07 074 5705 2290 lda l.a005-* /* remadr */ 05612 4 10 065 5677 2291 tsy a.a001-*,* /* adbyte */ 05613 2331 00 0 2292 nop 05614 673 001 0 2293 ila dceadr 05615 3 17 200 0 2294 sta 0,3,b.0 05616 0 07 066 5704 2295 lda l.a004-* /*locadr */ 2296 05617 4 10 060 5677 2297 dcd050 tsy a.a001-*,* /* =adbyte */ 05620 2331 00 0 2298 nop 05621 673 003 0 2299 ila dteadr 05622 3 17 200 0 2300 sta 0,3,b.0 /* flags bit are done */ 2301 * 2302 * now do the stat1 frame size (n1) 2303 * 05623 0 41 063 5706 2304 ldx3 l.a006-* /* stat1 */ 05624 4 10 052 5676 2305 tsy a.a000-*,* /* =cvaddr */ 05625 3 07 000 0 2306 lda 0,3 /* get stat1 contents */ 05626 773 007 0 2307 iaa 7 /* round upward */ 05627 0337 03 0 2308 ars 3 /* convert to bytes */ 05630 6333 00 0 2309 caq /* get it to q */ 05631 0 41 056 5707 2310 ldx3 l.a007-* /* =mxfrsz max frame size */ 05632 4 10 044 5676 2311 tsy a.a000-*,* /* cvaddr */ end of binary card 00000080 assm 01 06-26-89 14.676 x25_tables page 77 assembler utility subroutines 05633 3 57 000 0 2312 stq 0,3 /* save q for max size */ 2313 * 2314 * now do stat2 lower (k) window size 2315 * 05634 0 41 054 5710 2316 ldx3 l.a008-* /* =stat2 */ 05635 4 10 041 5676 2317 tsy a.a000-*,* /* cvaddr */ 05636 3 07 000 0 2318 lda 0,3 /* get the contance of stat2 */ 05637 0 17 063 5722 2319 sta t.a002-* /* saft temp storage */ 05640 0 41 051 5711 2320 ldx3 l.a009-* /* =kc unack number of frames */ 05641 4 10 035 5676 2321 tsy a.a000-*,* /* cvaddr :/ 05642 0 07 060 5722 2322 lda t.a002-* /* retrieve stat2 */ 05643 0337 11 0 2323 ars 9 /* get only k value */ 05644 3 17 000 0 2324 sta 0,3 /* put it in place */ 2325 * 2326 * upper of stat2 (n2) 2327 * 05645 0 41 045 5712 2328 ldx3 l.a010-* /* =n2*/ 05646 4 10 030 5676 2329 tsy a.a000-*,* /* cvaddr */ 05647 0 07 053 5722 2330 lda t.a002-* /* temp storage */ 05650 0 34 043 5713 2331 ana l.a011-* /* =o000777 */ 05651 3 17 000 0 2332 sta 0,3 2333 * 2334 * stat3 lower (t1) 2335 * 05652 0 41 042 5714 2336 ldx3 l.a012-* /* =stat3 */ 05653 4 10 023 5676 2337 tsy a.a000-*,* /* cvaddr */ 05654 3 03 000 0 2338 ldx2 0,3 /* got contants of stat3 */ 05655 0 13 046 5723 2339 stx2 t.a003-* /* save tempary */ 05656 0 41 037 5715 2340 ldx3 l.a013-* /* =t1 */ 05657 4 10 017 5676 2341 tsy a.a000-*,* /* cvaddr */ 05660 3332 00 0 2342 cx2a /* get back stat3*/ 05661 2337 11 0 2343 arl 9 /* shift out bad bits */ 05662 2344 mpy l.a014-* /* convert tenths to negative milliseconds */ 05664 3 57 000 0 2345 stq 0,3 /* pu it in place */ 2346 * 2347 * now t3 in stat3 2348 * 05665 0 41 032 5717 2349 ldx3 l.a015-* /* =t3 */ 05666 4 10 010 5676 2350 tsy a.a000-*,* /* cvaddr */ 05667 0 07 034 5723 2351 lda t.a003-* /* get back stat3 */ 05670 0 34 023 5713 2352 ana l.a011-* /* =o000777 */ 05671 3 17 000 0 2353 sta 0,3 /* save t3 */ 2354 * 2355 * all done, set up normal return 2356 * 05672 673 000 0 2357 ila 0 05673 0332 00 0 2358 cax2 05674 2359 dcdret return dcdact 2360 05676 0 03000 3 2361 a.a000 ind cvaddr assm 01 06-26-89 14.676 x25_tables page 78 assembler utility subroutines 05677 0 02000 3 2362 a.a001 ind adbyte 2363 05700 777770 0 2364 l.a000 vfd 18/stat0 05701 000777 0 2365 l.a001 vfd 18/ordmsk end of binary card 00000081 05702 000001 0 2366 l.a002 vfd 18/lctact 05703 777740 0 2367 l.a003 vfd 18/flgwd1 05704 000460 0 2368 l.a004 vfd 18/locadr 05705 000461 0 2369 l.a005 vfd 18/remadr 05706 777767 0 2370 l.a006 vfd 18/stat1 05707 777746 0 2371 l.a007 vfd 18/mxfrsz 05710 777766 0 2372 l.a008 vfd 18/stat2 05711 777753 0 2373 l.a009 vfd 18/kc 05712 777754 0 2374 l.a010 vfd 18/n2 05713 000777 0 2375 l.a011 oct 000777 05714 777765 0 2376 l.a012 vfd 18/stat3 05715 777756 0 2377 l.a013 vfd 18/t1 05716 777634 0 2378 l.a014 dec -100 05717 777755 0 2379 l.a015 vfd 18/t3 2380 05720 2381 t.a000 bss 1 /* temp for parameters */ 05721 2382 t.a001 bss 1 /* stat0 tempory */ 05722 2383 t.a002 bss 1 /* stat2 tempory */ 05723 2384 t.a003 bss 1 /* stat3 tempory */ 2385 2386 ******************************************************************************** 2387 * 2388 * cfgpcw - set configuration pcw 2389 * 2390 * turns off unwanted bits in the configuration pcw. 2391 * 2392 ******************************************************************************** 2393 05724 2394 cfgpcw subr cfp,(x3) 2395 05732 0 07 010 5742 2396 lda l.b000-* (=tfkpar) get keep parity bit 05733 1 72 036 0 2397 orsa t.flg3,1 turn it on in the tib 2398 05734 1 41 030 0 2399 ldx3 t.sfcm,1 get addr of sfcm 05735 0 07 006 5743 2400 lda l.b001-* (=777704) get mask for word 1 of pcw 05736 3 32 024 0 2401 ansa sf.cfg,3 leave only wanted bits on in word 1 of pcw 05737 3 56 025 0 2402 stz sf.cfg+1,3 zero word 2 of pcw 2403 05740 2404 return cfgpcw 05742 000004 0 2405 l.b000 vfd 18/tfkpar 05743 777704 0 2406 l.b001 oct 777704 2407 2408 2409 ************************************************************ 2410 * assm 01 06-26-89 14.676 x25_tables page 79 assembler utility subroutines 2411 * valfrm - validate input frame - check for bad address, 2412 * test for proper length, test for known commands,set 2413 * calues - lastf and frmadr-, check for pand f bits 2414 * for propper conditions, also test n(s) and n(r) in 2415 * all messages 2416 * 2417 * no arguments (nornal usages a = controlfield q = function 2418 * 2419 ************************************************************ 2420 05744 2421 valfrm subr vfm,(x1) end of binary card 00000082 05752 0 56 267 6241 2422 stz cmdrln-* "zero le 05753 4 56 267 6242 2423 stz a.c000-*,* /* =pf clear finial test data */ 05754 1 07 005 0 2424 lda t.icp,1 /* get input buffer */ 05755 0 74 252 6227 2425 tze vfmree-* /* nothing to do */ 05756 4 10 265 6243 2426 tsy a.c001-*,* /* =setbpt 18 - 15 bit address */ 05757 0332 00 0 2427 cax2 05760 4 10 264 6244 2428 tsy a.c002-*,* /* =gtbfsz get buffer data size */ 05761 4 07 264 6245 2429 lda a.c003-*,* /* = vfmsiz load a with size */ 05762 422 002 0 2430 icmpa 2 /* at least two bytes */ 05763 0 75 244 6227 2431 tmi vfmree-* /* no not enought */ 05764 273 002 0 2432 iacx2 bf.dta /* get data address */ 05765 2 07 000 0 2433 lda 0,2 /* get address fields */ 05766 2337 11 0 2434 arl 9 /* clear all other fields */ 05767 422 001 0 2435 icmpa 1 /* dte pri */ 05770 0 74 003 5773 2436 tze vfm000-* /* good */ 05771 422 003 0 2437 icmpa 3 /* dce pri */ 05772 0 64 235 6227 2438 tnz vfmree-* /* bad address */ 05773 0 17 244 6237 2439 vfm000 sta q.save-* /* save foeld tempory */ 05774 0 07 261 6255 2440 lda l.c000-* /* =frmadr */ 05775 4 10 251 6246 2441 tsy a.c004-*,* /* =adbyte */ 05776 000000 0 2442 oct 0 /* die on this error */ 05777 0 47 240 6237 2443 ldq q.save-* /* bet back address fields */ 06000 3 57 200 0 2444 stq 0,3,b.0 /* store it in t.elnk */ 06001 2 07 000 0 2445 lda 0,2 /* get control field now */ 06002 0336 11 0 2446 als 9 /* get rid of address fields */ 06003 2337 11 0 2447 arl 9 /* control field is only thing left */ 06004 222 001 0 2448 icana =o1 /* is it an i-frame */ 06005 0 74 145 6152 2449 tze iframp-* /* yes */ 06006 6333 00 0 2450 caq /* save it in q */ 06007 2337 01 0 2451 arl 1 /* sift 1 */ 06010 022 007 0 2452 iana 7 /* mask out other bits */ 06011 4333 00 0 2453 cax3 /* save in x3 */ 06012 7333 00 0 2454 cqa 06013 4 71 241 6254 2455 tra a.c010-*,* /* find what connamd it is */ 06014 0 71 106 6122 2456 vfm020 tra rrp-* /* 000 rr frame */ 06015 0 71 160 6175 2457 tra dsuap-* /* 001 either disc, ua, or bad frame */ 06016 0 71 122 6140 2458 tra rnrp-* /* 010 rnr frame */ 06017 0 71 007 6026 2459 tra cmdrp-* /* 011 cmdr or bad frame */ assm 01 06-26-89 14.676 x25_tables page 80 assembler utility subroutines 06020 0 71 123 6143 2460 tra rejp-* /* 100 rej frame */ end of binary card 00000083 06021 0 71 003 6024 2461 tra bdcrp-* /* 101 bad command */ 06022 0 71 002 6024 2462 tra bdcrp-* /* 110 bad command */ 06023 0 71 163 6206 2463 tra sbrdmp-* /* 111 dm, sarm, sabm, or bad command *]/ 06024 473 012 0 2464 bdcrp ilq rvbdcr /* set function to bad command */ 06025 0 71 203 6230 2465 tra vfmret-* /* return */ 06026 473 006 0 2466 cmdrp ilq rvcmdr /* cmdr processing */ 06027 222 340 0 2467 icana =o340 /* first is it cmdr */ 06030 0 74 774 6024 2468 tze bdcrp-* /* no it isn't */ 06031 222 140 0 2469 icana =o140 06032 0 74 002 6034 2470 tze 2 /* it is cmdr now */ 06033 0 71 771 6024 2471 tra bdcrp-* 06034 2 07 001 0 2472 lda 1,2 "get cmdr cmd field 06035 0337 11 0 2473 ars 9 "get field in position 06036 222 001 0 2474 icana =o1 "is it and i-frame 06037 0 64 015 6054 2475 tnz cmdrpc-* "no 06040 2 07 002 0 2476 lda 2,2 "get cmdr flags fields 06041 0337 11 0 2477 ars 9 "get field in to position 06042 222 004 0 2478 icana =o4 "is y bit set 06043 0 74 011 6054 2479 tze cmdrpc-* "no 06044 0 76 175 6241 2480 aos cmdrln-* "indicate a problem 06045 0 41 213 6260 2481 ldx3 l.c003-* "=stat1 06046 4 10 205 6253 2482 tsy a.c009-*,* "cvaddr 06047 2 07 001 0 2483 lda 1,2 "reject byte and state var 06050 3 17 000 0 2484 sta 0,3 "stat1 field 06051 2 07 002 0 2485 lda 2,2 "flags and zeros 06052 3 17 001 0 2486 sta 1,3 "stat2 06053 3 56 002 0 2487 stz 2,3 "stat3 06054 4 07 171 6245 2488 cmdrpc lda a.c003-*,* /* gtbfsz */ 06055 422 005 0 2489 icmpa 5 /* check for proprer frame size */ 06056 0 74 003 6061 2490 tze vfm030-* /* good length */ 06057 4 76 170 6247 2491 aos a.c005-*,* /* bdlgsz */ 06060 0 71 744 6024 2492 tra bdcrp-* 06061 2493 vfm030 null 06061 0 10 200 6261 2494 rspfck tsy checkr-* /* check for response address */ 06062 0 71 146 6230 2495 tra vfmret-* /* no respose */ 06063 0 10 273 6356 2496 tsy checkf-* /* check f bit */ 06064 0 71 144 6230 2497 tra vfmret-* 06065 0 71 143 6230 2498 tra vfmret-* /* done */ 06066 473 005 0 2499 uap ilq rvua /* function ua */ 06067 4 07 156 6245 2500 lda a.c003-*,* /*gtbfsz message size */ end of binary card 00000084 06070 422 002 0 2501 icmpa 2 /* only two bytes */ 06071 0 74 770 6061 2502 tze rspfck-* 06072 4 76 155 6247 2503 aos a.c005-*,* 06073 0 71 731 6024 2504 tra bdcrp-* 06074 473 001 0 2505 discp ilq rvdisc /* function disc */ 06075 4 07 150 6245 2506 lda a.c003-*,* /* vfmsiz */ 06076 422 002 0 2507 icmpa 2 /* two bytes */ assm 01 06-26-89 14.676 x25_tables page 81 assembler utility subroutines 06077 0 74 003 6102 2508 tze vfm040-* 06100 4 76 147 6247 2509 aos a.c005-*,* 06101 0 71 723 6024 2510 tra bdcrp-* 06102 0 10 214 6316 2511 vfm040 tsy checkc-* /* check for command */ 06103 0 71 125 6230 2512 tra vfmret-* 06104 0 10 315 6421 2513 tsy checkp-* /* check p bit */ 06105 2331 00 0 2514 nop 06106 0 71 122 6230 2515 tra vfmret-* 06107 473 003 0 2516 sarmp ilq rvsarm /* function sarm */ 06110 4 07 135 6245 2517 lda a.c003-*,* /* message size vfmsiz */ 06111 422 002 0 2518 icmpa 2 /* only two bytes */ 06112 0 74 003 6115 2519 tze vfm050-* 06113 4 76 134 6247 2520 aos a.c005-*,* 06114 0 71 710 6024 2521 tra bdcrp-* 06115 0 10 201 6316 2522 vfm050 tsy checkc-* /* check for command */ 06116 0 71 107 6225 2523 tra dmp-* /* response then it a dm on lapb */ 06117 0 10 302 6421 2524 tsy checkp-* /* check p bit */ 06120 0 71 110 6230 2525 tra vfmret-* 06121 0 71 107 6230 2526 tra vfmret-* 06122 473 007 0 2527 rrp ilq rvrr /* function rr */ 06123 673 021 0 2528 ila rvprr /* may be p rr */ 06124 0 17 114 6240 2529 rpros sta polcmd-* 06125 0 10 134 6261 2530 tsy checkr-* /* check for response */ 06126 0 71 020 6146 2531 tra prespc-* /* polled command */ 06127 0 10 227 6356 2532 tsy checkf-* /* f bit processing */ 06130 0 71 100 6230 2533 tra vfmret-* 06131 4 10 117 6250 2534 rpcomp tsy a.c006-*,* /* chknr */ 06132 0 71 076 6230 2535 tra vfmret-* 06133 4 07 112 6245 2536 lda a.c003-*,* /* vfmsiz */ 06134 422 002 0 2537 icmpa 2 /* two bytes only */ 06135 0 74 073 6230 2538 tze vfmret-* 06136 4 76 111 6247 2539 aos a.c005-*,* /* bad length */ end of binary card 00000085 06137 0 71 665 6024 2540 tra bdcrp-* 06140 473 010 0 2541 rnrp ilq rvrnr /* rnr = function */ 06141 673 022 0 2542 ila rvprnr 06142 0 71 762 6124 2543 tra rpros-* 06143 473 011 0 2544 rejp ilq rvrej /* rej = function */ 06144 673 023 0 2545 ila rvprej 06145 0 71 757 6124 2546 tra rpros-* 06146 0 10 253 6421 2547 prespc tsy checkp-* /* check for polled bit */ 06147 0 71 655 6024 2548 tra bdcrp-* 06150 0 47 070 6240 2549 ldq polcmd-* /* set function to poll command function */ 06151 0 71 760 6131 2550 tra rpcomp-* 06152 473 020 0 2551 iframp ilq rvifrm /* i-frame processing */ 06153 0 10 143 6316 2552 tsy checkc-* 06154 0 71 054 6230 2553 tra vfmret-* 06155 0 10 244 6421 2554 tsy checkp-* 06156 2331 00 0 2555 nop 06157 4 10 072 6251 2556 tsy a.c007-*,* /* checnr */ assm 01 06-26-89 14.676 x25_tables page 82 assembler utility subroutines 06160 0 71 050 6230 2557 tra vfmret-* 06161 4 10 071 6252 2558 tsy a.c008-*,* /* checnr */ 06162 0 71 046 6230 2559 tra vfmret-* 06163 4 47 062 6245 2560 ldq a.c003-*,* /* vfmsiz */ 06164 0 41 073 6257 2561 ldx3 l.c002-* /* mxfrsz */ 06165 4 10 066 6253 2562 tsy a.c009-*,* /* cvaddr */ 06166 3 67 000 0 2563 cmpq 0,3 /* compare to max size */ 06167 0 74 002 6171 2564 tze vfm055-* /* equal is allright */ 06170 0 65 003 6173 2565 tpl vfmbif-* 06171 473 020 0 2566 vfm055 ilq rvifrm 06172 0 71 036 6230 2567 tra vfmret-* 06173 4 76 054 6247 2568 vfmbif aos a.c005-*,* /* bad info length */ 06174 0 71 630 6024 2569 tra bdcrp-* 06175 222 200 0 2570 dsuap icana =o200 /* any 1xx */ 06176 0 64 626 6024 2571 tnz bdcrp-* /* yes bad command */ 06177 222 340 0 2572 icana =o340 /* any 000 */ 06200 0 74 624 6024 2573 tze bdcrp-* /* yes it is also bad */ 06201 222 240 0 2574 icana =o240 06202 0 74 672 6074 2575 tze discp-* /* disc command */ 06203 222 300 0 2576 icana =o300 /* misc bit check */ 06204 0 74 620 6024 2577 tze bdcrp-* /* bad command */ 06205 0 71 661 6066 2578 tra uap-* /* ua command */ end of binary card 00000086 06206 222 340 0 2579 sbrdmp icana =o340 06207 0 74 700 6107 2580 tze sarmp-* /* sarm command */ 06210 222 300 0 2581 icana =o300 06211 0 64 613 6024 2582 tnz bdcrp-* /* not 001 */ 06212 473 004 0 2583 ilq rvsabm /* sabm function */ 06213 4 07 032 6245 2584 lda a.c003-*,* /* vfmsiz */ 06214 422 002 0 2585 icmpa 2 /* two bytes */ 06215 0 74 003 6220 2586 tze vfm070-* 06216 4 76 031 6247 2587 aos a.c005-*,* /* bad message length */ 06217 0 71 605 6024 2588 tra bdcrp-* 06220 0 10 076 6316 2589 vfm070 tsy checkc-* 06221 0 71 007 6230 2590 tra vfmret-* 06222 0 10 177 6421 2591 tsy checkp-* 06223 0 71 005 6230 2592 tra vfmret-* 06224 0 71 004 6230 2593 tra vfmret-* 06225 473 002 0 2594 dmp ilq rvdm /* dm recieve */ 06226 0 71 002 6230 2595 tra vfmret-* 06227 473 000 0 2596 vfmree ilq rvbdad /* function of nothing */ 06230 673 000 0 2597 vfmret ila 0 /* set to return by clearing x2 */ 06231 0332 00 0 2598 cax2 06232 0 41 024 6256 2599 ldx3 l.c001-* /* lastf */ 06233 4 10 020 6253 2600 tsy a.c009-*,* /* cvaddr */ 06234 3 57 000 0 2601 stq 0,3 06235 2602 return valfrm 2603 2604 06237 2605 q.save bss 1 assm 01 06-26-89 14.676 x25_tables page 83 assembler utility subroutines 06240 2606 polcmd bss 1 06241 2607 cmdrln bss 1 2608 06242 0 06420 1 2609 a.c000 ind pf 06243 0 05000 3 2610 a.c001 ind setbpt 06244 0 07103 1 2611 a.c002 ind gtbfsz 06245 0 07135 1 2612 a.c003 ind vfmsiz 06246 0 02000 3 2613 a.c004 ind adbyte 06247 0 07136 1 2614 a.c005 ind bdlgsz 06250 0 06467 1 2615 a.c006 ind chknr 06251 0 06540 1 2616 a.c007 ind checnr 06252 0 06561 1 2617 a.c008 ind checns 06253 0 03000 3 2618 a.c009 ind cvaddr 06254 3 06014 1 2619 a.c010 ind vfm020,3 2620 06255 000462 0 2621 l.c000 vfd 18/frmadr end of binary card 00000087 06256 777771 0 2622 l.c001 vfd 18/lastf 06257 777746 0 2623 l.c002 vfd 18/mxfrsz 06260 777767 0 2624 l.c003 vfd 18/stat1 2625 2626 2627 ************************************************************ 2628 * 2629 * checkr - check response to address 2630 * 2631 ************************************************************ 2632 06261 2633 checkr subr ckr,(a,q,x2,x3) 06300 2 07 000 0 2634 lda 0,2 /* get control address again */ 06301 2337 11 0 2635 arl 9 /* only address is needed */ 06302 0332 00 0 2636 cax2 06303 0 07 050 6353 2637 lda l.d001-* /* remadr */ 06304 4 10 051 6355 2638 tsy a.d000-*,* /* adbyte */ 06305 000000 0 2639 oct 0 06306 3 23 200 0 2640 cmpx2 0,3,b.0 /* compare address */ 06307 0 64 003 6312 2641 tnz ckrree-* /* no compare */ 06310 0 76 751 6261 2642 aos checkr-* 06311 0 71 003 6314 2643 tra ckrret-* 06312 473 012 0 2644 ckrree ilq rvbdcr /* bad command */ 06313 0 57 762 6275 2645 stq ckrsq-* 06314 2646 ckrret return checkr 2647 2648 2649 ************************************************************ 2650 * 2651 * checkc - check for command address 2652 * 2653 ************************************************************ 2654 assm 01 06-26-89 14.676 x25_tables page 84 assembler utility subroutines 06316 2655 checkc subr chc,(a,q,x2,x3) end of binary card 00000088 06335 2 07 000 0 2656 lda 0,2 /* get address byte */ 06336 2337 11 0 2657 arl 9 /* only address is needed */ 06337 0332 00 0 2658 cax2 06340 0 07 014 6354 2659 lda l.d002-* /* locadr */ 06341 4 10 014 6355 2660 tsy a.d000-*,* /* adbyte */ 06342 000000 0 2661 oct 0 06343 3 23 200 0 2662 cmpx2 0,3,b.0 /* are they equal */ 06344 0 64 003 6347 2663 tnz ckcree-* 06345 0 76 751 6316 2664 aos checkc-* 06346 0 71 003 6351 2665 tra ckcret-* 06347 473 012 0 2666 ckcree ilq rvbdcr /* bad command */ 06350 0 57 762 6332 2667 stq chcsq-* 06351 2668 ckcret return checkc 2669 06353 000461 0 2670 l.d001 vfd 18/remadr 06354 000460 0 2671 l.d002 vfd 18/locadr 06355 0 02000 3 2672 a.d000 ind adbyte 2673 2674 2675 ************************************************************ 2676 * 2677 * checkf - check f bit for validate response frames 2678 * 2679 ************************************************************ 2680 06356 2681 checkf subr chf,(a,q,x3) 06372 2 07 000 0 2682 lda 0,2 /* get back controls fields */ 06373 0336 11 0 2683 als 9 /* only control bit needed */ 06374 2337 11 0 2684 arl 9 06375 0 17 772 6367 2685 sta chfsa-* 06376 0 56 022 6420 2686 stz pf-* 06377 0 34 062 6461 2687 ana l.e000-* /*fbit position */ 06400 0 17 066 6466 2688 sta fchtmp-* /* save it tempory */ end of binary card 00000089 06401 0 07 061 6462 2689 lda l.e001-* /* pbit pmask */ 06402 4 10 055 6457 2690 tsy a.e000-*,* /* adbyte */ 06403 000000 0 2691 oct 0 06404 0 07 062 6466 2692 lda fchtmp-* /* get orgin value back */ 06405 3 27 200 0 2693 cmpa 0,3,b.0 /* compare if f bit is on */ 06406 0 64 007 6415 2694 tnz chf010-* /* not equal */ 06407 0 76 747 6356 2695 aos checkf-* /* normal return */ 06410 0 20 056 6466 2696 szn fchtmp-* /* is it zero */ 06411 0 74 002 6413 2697 tze chfret-* /* yes it is */ 06412 0 76 006 6420 2698 aos pf-* 06413 2699 chfret return checkf 06415 473 015 0 2700 chf010 ilq rvbdfb /* it a bad command */ 06416 0 57 752 6370 2701 stq chfsq-* /* save for q reg restore */ 06417 0 71 774 6413 2702 tra chfret-* assm 01 06-26-89 14.676 x25_tables page 85 assembler utility subroutines 2703 06420 2704 pf bss 1 2705 2706 2707 ************************************************************ 2708 * 2709 * checkp - check poll bit if on set needed fbit 2710 * 2711 ************************************************************ 2712 06421 2713 checkp subr chp,(a,q,x3) 06435 2 07 000 0 2714 lda 0,2 /* get back controls fields */ 06436 0336 11 0 2715 als 9 /* only control bits needed */ 06437 2337 11 0 2716 arl 9 06440 0 17 772 6432 2717 sta chpsa-* 06441 0 31 020 6461 2718 cana l.e000-* /* pfon */ 06442 0 74 013 6455 2719 tze chpret-* /* nothing */ 06443 0 76 756 6421 2720 aos checkp-* /* normal return */ 06444 0 07 017 6463 2721 lda l.e003-* /* fmask */ 06445 4 10 012 6457 2722 tsy a.e000-*,* /* adbyte */ 06446 000000 0 2723 oct 0 06447 0 07 012 6461 2724 lda l.e000-* /* pfon */ end of binary card 00000090 06450 3 72 200 0 2725 orsa 0,3,b.0 /* or the bit in */ 06451 0 41 013 6464 2726 ldx3 l.e004-* /* flgwd1 */ 06452 4 10 006 6460 2727 tsy a.e001-*,* /* cvaddr */ 06453 0 07 012 6465 2728 lda l.e005-* /* fbit */ 06454 3 72 000 0 2729 orsa 0,3 06455 2730 chpret return checkp 2731 06457 0 02000 3 2732 a.e000 ind adbyte 06460 0 03000 3 2733 a.e001 ind cvaddr 2734 06461 000020 0 2735 l.e000 vfd 18/pfon 06462 000463 0 2736 l.e001 vfd 18/pmask 2737 *l.e002 unused 06463 000464 0 2738 l.e003 vfd 18/fmask 06464 777740 0 2739 l.e004 vfd 18/flgwd1 06465 010000 0 2740 l.e005 vfd 18/fbit 2741 06466 2742 fchtmp bss 1 2743 2744 2745 ************************************************************ 2746 * 2747 * chknr - check nr for response frames, if out of 2748 * range then it is a error, else normal return 2749 * 2750 ************************************************************ 2751 assm 01 06-26-89 14.676 x25_tables page 86 assembler utility subroutines 06467 2752 chknr subr chk,(a,x3) 06500 0 56 037 6537 2753 stz bnr-* 06501 0 34 114 6615 2754 ana l.f006-* /* o=340 n.r mask */ 06502 2337 05 0 2755 arl 5 /* shift it to proper place */ 06503 0 17 145 6650 2756 sta middle-* /*let hope it is the middle */ 06504 0 17 032 6536 2757 sta n.r-* /* storage for later uses */ 06505 0 41 102 6607 2758 ldx3 l.f000-* /* a.r */ 06506 4 10 100 6606 2759 tsy a.f000-*,* /* cvaddr */ 06507 3 07 000 0 2760 lda 0,3 /*get a.r */ 06510 0 17 137 6647 2761 sta low-* 06511 0 41 077 6610 2762 ldx3 l.f001-* /* flgwd1 */ 06512 4 10 074 6606 2763 tsy a.f000-*,* /* cvaddr */ 06513 3 07 000 0 2764 lda 0,3 06514 0 34 075 6611 2765 ana l.f002-* /* mask all but t1rec */ 06515 0 74 004 6521 2766 tze chk010-* end of binary card 00000091 06516 0 41 074 6612 2767 ldx3 l.f003-* /* xx */ 06517 4 10 067 6606 2768 tsy a.f000-*,* /* cvaddr */ 06520 0 71 003 6523 2769 tra chk020-* 06521 0 41 072 6613 2770 chk010 ldx3 l.f004-* /* v.s */ 06522 4 10 064 6606 2771 tsy a.f000-*,* /* cvaddr */ 06523 3 07 000 0 2772 chk020 lda 0,3 06524 0 17 122 6646 2773 sta high-* 06525 0 10 071 6616 2774 tsy chkrng-* 06526 0 20 123 6651 2775 szn badrng-* 06527 0 74 004 6533 2776 tze chk030-* 06530 473 012 0 2777 ilq rvbdcr /* bad command +? 06531 0 76 006 6537 2778 aos bnr-* 06532 0 71 002 6534 2779 tra chkret-* 06533 0 76 734 6467 2780 chk030 aos chknr-* 06534 2781 chkret return chknr 2782 06536 2783 n.r bss 1 06537 2784 bnr bss 1 2785 2786 2787 ************************************************************ 2788 * 2789 * checnr - check nr on i-frames 2790 * 2791 ************************************************************ 2792 06540 2793 checnr subr chr,(a,x3) 06551 0 10 716 6467 2794 tsy chknr-* /* he'll do the work */ 06552 0 71 002 6554 2795 tra chr010-* 06553 0 71 003 6556 2796 tra chr020-* 06554 473 016 0 2797 chr010 ilq rvbdir /* bad n(r) i-frame */ 06555 0 71 002 6557 2798 tra chrret-* 06556 0 76 762 6540 2799 chr020 aos checnr-* 06557 2800 chrret return checnr assm 01 06-26-89 14.676 x25_tables page 87 assembler utility subroutines 2801 2802 2803 ************************************************************ 2804 * 2805 * checns - check n.s on i-frames 2806 * 2807 ************************************************************ 2808 06561 2809 checns subr chs,(a,x3) end of binary card 00000092 06572 022 016 0 2810 iana =o16 /* mask all but n.s */ 06573 2337 01 0 2811 arl 1 /* shift by one */ 06574 0332 00 0 2812 cax2 06575 0 41 017 6614 2813 ldx3 l.f005-* /* v.r */ 06576 4 10 010 6606 2814 tsy a.f000-*,* /* cvaddr */ 06577 3 23 000 0 2815 cmpx2 0,3 /* must be equal */ 06600 0 74 003 6603 2816 tze chs010-* 06601 473 017 0 2817 ilq rvbdis /* bad i-frame n.s */ 06602 0 71 002 6604 2818 tra chsret-* 06603 0 76 756 6561 2819 chs010 aos checns-* 06604 2820 chsret return checns 2821 06606 0 03000 3 2822 a.f000 ind cvaddr 2823 06607 777760 0 2824 l.f000 vfd 18/a.r 06610 777740 0 2825 l.f001 vfd 18/flgwd1 06611 000400 0 2826 l.f002 vfd 18/t1rec 06612 777757 0 2827 l.f003 vfd 18/xx 06613 777763 0 2828 l.f004 vfd 18/v.s 06614 777762 0 2829 l.f005 vfd 18/v.r 06615 000340 0 2830 l.f006 oct 000340 2831 2832 2833 ************************************************************ 2834 * 2835 * chkrng - check range to check if midle is middle 2836 * on mod 8 arith. 2837 * 2838 ************************************************************ 2839 06616 2840 chkrng subr ckg 06621 0 07 025 6646 2841 lda high-* /* get upper bound */ 06622 0 27 025 6647 2842 cmpa low-* /* hi < low */ 06623 0 65 010 6633 2843 tpl ckg010-* /*no */ 06624 673 010 0 2844 ila 8 /* get modulus */ 06625 0 16 021 6646 2845 asa high-* /* advance upper bound */ 06626 0 07 022 6650 2846 lda middle-* /* get middle */ 06627 0 27 020 6647 2847 cmpa low-* /* middle < low */ 06630 0 65 003 6633 2848 tpl ckg010-* /* no */ 06631 673 010 0 2849 ila 8 /* get modulus */ assm 01 06-26-89 14.676 x25_tables page 88 assembler utility subroutines 06632 0 16 016 6650 2850 asa middle-* advance middle 2851 06633 673 001 0 2852 ckg010 ila 1 end of binary card 00000093 06634 0 17 015 6651 2853 sta badrng-* assume out of range */ 06635 0 07 013 6650 2854 lda middle-* /* get middl */ 06636 0 27 011 6647 2855 cmpa low-* /* less than lower bound */ 06637 0 75 005 6644 2856 tmi ckgret-* /* yes it is bad */ 06640 0 07 006 6646 2857 lda high-* /* get upper bound */ 06641 0 27 007 6650 2858 cmpa middle-* /* less than middle */ 06642 0 75 002 6644 2859 tmi ckgret-* /* yes error */ 2860 06643 0 56 006 6651 2861 stz badrng-* 06644 2862 ckgret return chkrng 2863 06646 2864 high bss 1 06647 2865 low bss 1 06650 2866 middle bss 1 06651 2867 badrng bss 1 2868 2869 2870 ************************************************************ 2871 * 2872 * blfcdr - build command reject fields 2873 * 2874 ************************************************************ 2875 06652 2876 blfcdr subr blc 06655 1 07 005 0 2877 lda t.icp,1 /* get pointer to input message */ 06656 4 10 061 6737 2878 tsy a.g000-*,* /* setbpe */ 06657 773 002 0 2879 iaa bf.dta /* get buffer data offset */ 06660 0332 00 0 2880 cax2 06661 2 47 000 0 2881 ldq 0,2 get control field */ 06662 4336 11 0 2882 qls 9 /* clean it up to have only control */ 06663 6337 11 0 2883 qrl 9 06664 0 57 111 6775 2884 stq qrsave-* /* save it tempory */ 06665 0 07 056 6743 2885 lda l.g000-* /* cmdr1 */ 06666 4 10 052 6740 2886 tsy a.g001-*,* /* adbyte */ 06667 000000 0 2887 oct 0 06670 3 07 200 0 2888 lda 0,3,b.0 /* get it info */ 06671 0 64 041 6732 2889 tnz blcret-* /* sonething is already there */ 06672 0 47 103 6775 2890 ldq qrsave-* 06673 3 57 200 0 2891 stq 0,3,b.0 /* put it in place */ 06674 0 41 052 6746 2892 ldx3 l.g003-* /* v.r */ 06675 4 10 044 6741 2893 tsy a.g002-*,* /* cvaddr */ 06676 3 07 000 0 2894 lda 0,3 06677 0336 06 0 2895 als 6 /* place in proper location */ 06700 0 17 075 6775 2896 sta qrsave-* 06701 0 07 043 6744 2897 lda l.g001-* /* cmdr2 */ 06702 4 10 036 6740 2898 tsy a.g001-*,* /* adbyte */ assm 01 06-26-89 14.676 x25_tables page 89 assembler utility subroutines 06703 000000 0 2899 oct 0 06704 0 47 071 6775 2900 ldq qrsave-* end of binary card 00000094 06705 3 57 200 0 2901 stq 0,3,b.0 06706 4 20 034 6742 2902 szn a.g003-*,* /* dblgsz */ 06707 0 74 010 6717 2903 tze blc010-* 06710 473 003 0 2904 ilq 3 /*set w and x */ 06711 2 07 000 0 2905 lda 0,2 06712 222 001 0 2906 icana =01 06713 0 74 002 6715 2907 tze 2 06714 0 71 010 6724 2908 tra blc020-* 06715 473 005 0 2909 ilq 5 /* set w and y */ 06716 0 71 006 6724 2910 tra blc020-* 06717 0 20 620 6537 2911 blc010 szn bnr-* 06720 0 74 003 6723 2912 tze blc015-* 06721 473 010 0 2913 ilq =o10 06722 0 71 002 6724 2914 tra blc020-* 06723 473 001 0 2915 blc015 ilq 1 /* just w */ 06724 0 57 051 6775 2916 blc020 stq qrsave-* 06725 0 07 020 6745 2917 lda l.g002-* /* cmdr3 */ 06726 4 10 012 6740 2918 tsy a.g001-*,* /* adbyte */ 06727 000000 0 2919 oct 0 06730 0 47 045 6775 2920 ldq qrsave-* 06731 3 57 200 0 2921 stq 0,3,b.0 06732 673 000 0 2922 blcret ila 0 06733 0 56 604 6537 2923 stz bnr-* 06734 0332 00 0 2924 cax2 06735 2925 return blfcdr 2926 06737 0 05000 3 2927 a.g000 ind setbpt 06740 0 02000 3 2928 a.g001 ind adbyte 06741 0 03000 3 2929 a.g002 ind cvaddr 06742 0 07136 1 2930 a.g003 ind bdlgsz 2931 06743 000466 0 2932 l.g000 vfd 18/cmdrb1 06744 000467 0 2933 l.g001 vfd 18/cmdrb2 06745 000470 0 2934 l.g002 vfd 18/cmdrb3 06746 777762 0 2935 l.g003 vfd 18/v.r 06747 777763 0 2936 l.g004 vfd 18/v.s 2937 2938 2939 ************************************************************ 2940 * 2941 * ldnsdr - load ns into frmr for lapb reject 2942 * 2943 ************************************************************ 2944 06750 2945 ldnsdr subr ldn,(x3) end of binary card 00000095 06756 0 41 771 6747 2946 ldx3 l.g004-* /*v.s */ assm 01 06-26-89 14.676 x25_tables page 90 assembler utility subroutines 06757 4 10 762 6741 2947 tsy a.g002-*,* /* cvaddr */ 06760 3 07 000 0 2948 lda 0,3 06761 0336 01 0 2949 als 1 06762 0 17 013 6775 2950 sta qrsave-* 06763 0 07 761 6744 2951 lda l.g001-* /* cmdrb2 */ 06764 4 10 754 6740 2952 tsy a.g001-*,* /* adbyte */ 06765 000000 0 2953 oct 0 06766 3 07 200 0 2954 lda 0,3,b.0 06767 0 37 006 6775 2955 ora qrsave-* 06770 3 17 200 0 2956 sta 0,3,b.0 06771 673 000 0 2957 ila 0 06772 0332 00 0 2958 cax2 06773 2959 return ldnsdr 06775 2960 qrsave bss 1 2961 2962 2963 ************************************************************ 2964 * 2965 * ckrnr - check rnr needed 2966 * 2967 * determines whether a rnr response is appropriate due to 2968 * either of the following conditions: 2969 * 2970 * 1. the total number of free buffers is less that the 2971 * sum of the reserved buffer count plus twice the channel 2972 * buffer size. 2973 * 2974 * 2. two or more frames belonging to this channel are already 2975 * queued for dia transfer. 2976 * 2977 ************************************************************ 2978 06776 2979 ckrnr subr rnr,(x3) 07004 0 10 016 7022 2980 tsy cntqf-* /* count queued frames */ 07005 0 07 040 7045 2981 lda cqfcnt-* /*get count */ 07006 0 27 013 7021 2982 cmpa l.h001-* /* =dialim over limit */ 07007 0 65 003 7012 2983 tpl rnr030-* /*yes, rnr required */ 2984 07010 0 56 006 7016 2985 stz rnrflg-* 07011 0 71 003 7014 2986 tra rnrret-* 2987 07012 673 001 0 2988 rnr030 ila 1 07013 0 17 003 7016 2989 sta rnrflg-* /* indicate rnr required */ 2990 07014 2991 rnrret return ckrnr 2992 07016 2993 rnrflg bss 1 end of binary card 00000096 07017 0 05000 3 2994 a.h000 ind setbpt 2995 assm 01 06-26-89 14.676 x25_tables page 91 assembler utility subroutines 07020 020000 0 2996 l.h000 vfd 18/bffbrk 07021 000010 0 2997 l.h001 vfd 18/dialim 2998 2999 3000 ************************************************************ 3001 * 3002 * cntqf - count queued frames 3003 * 3004 * a subroutine to count the number of frames on the dia 3005 * queue. (count only the i-frames) 3006 * 3007 ************************************************************ 3008 07022 3009 cntqf subr cqf,(x3) 07030 0 56 015 7045 3010 stz cqfcnt-* /* start count at zero */ 07031 1 07 026 0 3011 lda t.dcp,1 /* get start of dia queue */ 07032 0 74 011 7043 3012 tze cqf030-* /* end of queue */ 07033 4 10 764 7017 3013 cqf010 tsy a.h000-*,* /* setbpe */ 07034 4333 00 0 3014 cax3 07035 3 07 001 0 3015 lda bf.flg,3 /* look at buffer flags */ 07036 0 31 762 7020 3016 cana l.h000-* /* =bffbrk */ 07037 0 74 002 7041 3017 tze cqf020-* 07040 0 76 005 7045 3018 aos cqfcnt-* /* yes, count another frame */ 07041 3 07 000 0 3019 cqf020 lda bf.nxt,3 /* follow the chain */ 07042 0 64 771 7033 3020 tnz cqf010-* /* if not the end */ 07043 3021 cqf030 return cntqf 3022 07045 3023 cqfcnt bss 1 3024 3025 3026 ************************************************************ 3027 * 3028 * admod8 - add modulo 8 3029 * 3030 ************************************************************ 3031 07046 3032 admod8 subr am8 07051 0 07 006 7057 3033 lda amarg1-* /* get arg 1 */ 07052 0 16 006 7060 3034 asa amarg2-* /* add to arg 2 */ 07053 0 07 006 7061 3035 lda l.i000-* /* =o000007 get mod 8 mask */ 07054 0 32 004 7060 3036 ansa amarg2-* /* convert arg 2 to mod 8 */ 3037 07055 3038 return admod8 3039 07057 3040 amarg1 bss 1 07060 3041 amarg2 bss 1 07061 000007 0 3042 l.i000 oct 000007 3043 3044 3045 ************************************************************ assm 01 06-26-89 14.676 x25_tables page 92 assembler utility subroutines 3046 * 3047 * setbrk - set break flag in last buffer 3048 * 3049 ************************************************************ 3050 07062 3051 setbrk subr sbk,(x3) end of binary card 00000097 07070 1 07 005 0 3052 lda t.icp,1 /* get buffer address */ 07071 4 10 040 7131 3053 sbk010 tsy a.j000-*,* /* convert address to 15 bits */ 07072 4333 00 0 3054 cax3 /* place address in index reg */ 07073 3 20 000 0 3055 szn bf.nxt,3 /* is next zero */ 07074 0 74 003 7077 3056 tze sbk020-* /* yes location found */ 07075 3 07 000 0 3057 lda bf.nxt,3 /* get ready for follow the chain */ 07076 0 71 773 7071 3058 tra sbk010-* /* follow it */ 07077 0 07 033 7132 3059 sbk020 lda l.j000-* /* bffbrk flag */ 07100 3 72 001 0 3060 orsa bf.flg,3 /* set it on */ 07101 3061 return setbrk 3062 3063 3064 ************************************************************ 3065 * 3066 * gtbfsz- get buffer size. add all the buffers 3067 * in the input chain and place it in vfmsiz 3068 * 3069 ************************************************************ 3070 07103 3071 gtbfsz subr gtb,(x3) 07111 0 56 024 7135 3072 stz vfmsiz-* /* clear tally */ 07112 0 56 024 7136 3073 stz bdlgsz-* /* clear check */ 07113 1 07 005 0 3074 lda t.icp,1 /* get input buffer */ 07114 4 10 015 7131 3075 gtb010 tsy a.j000-*,* /* setbpt */ 07115 4333 00 0 3076 cax3 07116 3 07 001 0 3077 lda bf.tly,3 /* get the tally */ 07117 0 34 015 7134 3078 ana l.j002-* /* bfmsk tally mask */ 07120 0 16 015 7135 3079 asa vfmsiz-* /* add to storage */ 07121 3 20 000 0 3080 szn bf.nxt,3 /* is next zero */ 07122 0 74 003 7125 3081 tze gtb020-* /* yes finish */ 07123 3 07 000 0 3082 lda bf.nxt,3 /* get next buffer */ 07124 0 71 770 7114 3083 tra gtb010-* /* loop again */ 07125 1 07 005 0 3084 gtb020 lda t.icp,1 /* get back to orginal */ 07126 4 10 003 7131 3085 tsy a.j000-*,* /* setbpt */ 07127 3086 return gtbfsz 3087 end of binary card 00000098 07131 0 05000 3 3088 a.j000 ind setbpt 3089 07132 020000 0 3090 l.j000 vfd 18/bffbrk 07133 040000 0 3091 l.j001 vfd 18/bfflst 07134 000777 0 3092 l.j002 vfd 18/buftmk 3093 assm 01 06-26-89 14.676 x25_tables page 93 assembler utility subroutines 07135 3094 vfmsiz bss 1 07136 3095 bdlgsz bss 1 3096 3097 3098 ************************************************************ 3099 * 3100 * addbte - add buffer to end of output chain 3101 * 3102 ************************************************************ 3103 07137 3104 addbte subr adb,(x3) 07145 0 41 043 7210 3105 ldx3 l.k000-* /* buffadd */ 07146 4 10 037 7205 3106 tsy a.k000-*,* /* cvaddr */ 07147 3 07 000 0 3107 lda 0,3 /* get buffer into regs */ 07150 0 64 004 7154 3108 tnz adb010-* /* no more searching */ 07151 0 07 360 7531 3109 lda temups-* /* get new buffer chain */ 07152 3 17 000 0 3110 sta 0,3 /* place it at the head */ 07153 0 71 010 7163 3111 tra adbret-* /* that is all */ 07154 4 10 032 7206 3112 adb010 tsy a.k001-*,* /* convert 18 to 15 setbpt */ 07155 4333 00 0 3113 cax3 07156 3 07 000 0 3114 lda bf.nxt,3 /* get next buffer */ 07157 0 74 002 7161 3115 tze adb020-* /* no more add it here */ 07160 0 71 774 7154 3116 tra adb010-* /* loop for end */ 07161 0 07 350 7531 3117 adb020 lda temups-* /* get new chain */ 07162 3 17 000 0 3118 sta bf.nxt,3 /* put in proper place */ 07163 3119 adbret return addbte 3120 3121 3122 ************************************************************ 3123 * bldrsp- build response command in cfield 3124 * 3125 ************************************************************ 3126 07165 3127 bldrsp subr brp,(x3) 07173 0 07 016 7211 3128 lda l.k001-* /* cfield */ 07174 4 10 013 7207 3129 tsy a.k002-*,* /* adbyte */ 07175 000000 0 3130 oct 0 end of binary card 00000099 07176 0 03 774 7172 3131 ldx2 brpsx3-* /* get type of message address */ 07177 2 07 000 0 3132 lda 0,2 /* get response bits */ 07200 3 72 200 0 3133 orsa 0,3,b.0 /* or it into cfield */ 07201 673 000 0 3134 ila 0 07202 0332 00 0 3135 cax2 07203 3136 return bldrsp 3137 07205 0 03000 3 3138 a.k000 ind cvaddr 07206 0 05000 3 3139 a.k001 ind setbpt 07207 0 02000 3 3140 a.k002 ind adbyte 3141 07210 777744 0 3142 l.k000 vfd 18/bufadd assm 01 06-26-89 14.676 x25_tables page 94 assembler utility subroutines 07211 000465 0 3143 l.k001 vfd 18/cfield 07212 777752 0 3144 l.k002 vfd 18/kv 3145 3146 3147 ************************************************************ 3148 * 3149 * gtntms - get next message to send 3150 * 3151 ************************************************************ 3152 07213 3153 gtntms subr gtn,(x3) 07221 0 41 127 7350 3154 ldx3 l.l000-* /* uaoffs */ 07222 4 10 123 7345 3155 tsy a.l000-*,* /* cvaddr */ 07223 3333 00 0 3156 cx3a 07224 0332 00 0 3157 cax2 07225 3 07 000 0 3158 lda 0,3 /* get it buffer pointer address */ 07226 0 64 006 7234 3159 tnz gtn010-* /* must loop down to end of message */ 07227 0 41 122 7351 3160 ldx3 l.l001-* /* bufadd */ 07230 4 10 115 7345 3161 tsy a.l000-*,* /* cvaddr */ 07231 3 07 000 0 3162 lda 0,3 /* get top message */ 07232 2 17 000 0 3163 sta 0,2 /* place it on uaoffs */ 07233 0 71 014 7247 3164 tra gtnret-* /* common return */ 07234 4 10 112 7346 3165 gtn010 tsy a.l001-*,* /* setbpt */ 07235 4333 00 0 3166 cax3 07236 3 07 001 0 3167 lda bf.flg,3 /* get buffer flags */ 07237 0 34 113 7352 3168 ana l.l002-* /* bfflst */ 07240 0 64 004 7244 3169 tnz gtn020-* /* finish this is next */ 07241 3 07 000 0 3170 lda bf.nxt,3 /* get next message chain pointer */ 07242 0 74 005 7247 3171 tze gtnret-* /* finish no more don''t set uaoffs */ 07243 0 71 771 7234 3172 tra gtn010-* /* loop again */ end of binary card 00000100 07244 3 07 000 0 3173 gtn020 lda bf.nxt,3 /* get next buffer */ 07245 0 74 002 7247 3174 tze gtnret-* /* nothing there don't set uaoffs */ 07246 2 17 000 0 3175 sta 0,2 /* set uaoffs to head of message chain */ 07247 1 17 012 0 3176 gtnret sta t.ocp,1 /* store next in output */ 07250 1 56 013 0 3177 stz t.ocur,1 07251 1 56 014 0 3178 stz t.olst,1 07252 673 000 0 3179 ila 0 07253 0332 00 0 3180 cax2 07254 3181 return gtntms 3182 3183 3184 ************************************************************ 3185 * 3186 * bldcfd - build command field for this i-frame 3187 * 3188 ************************************************************ 3189 07256 3190 bldcfd subr bcd,(x3) 07264 0 07 067 7353 3191 lda l.l003-* /* cfield */ assm 01 06-26-89 14.676 x25_tables page 95 assembler utility subroutines 07265 4 10 062 7347 3192 tsy a.l002-*,* /* adbyte */ 07266 000000 0 3193 oct 0 07267 3 56 200 0 3194 stz 0,3,b.0 /* clear cfield */ 07270 3333 00 0 3195 cx3a 07271 0332 00 0 3196 cax2 07272 0 41 062 7354 3197 ldx3 l.l004-* /* v.s */ 07273 4 10 052 7345 3198 tsy a.l000-*,* /* cvaddr */ 07274 3 07 000 0 3199 lda 0,3 /* v.s in a +? 07275 0336 01 0 3200 als 1 /* shift v.s to proper spot */ 07276 2 17 200 0 3201 sta 0,2,b.0 /* store it in cfield */ 07277 0 41 056 7355 3202 ldx3 l.l005-* /* v.r */ 07300 4 10 045 7345 3203 tsy a.l000-*,* /* cvaddr */ 07301 3 07 000 0 3204 lda 0,3 07302 0 17 040 7342 3205 sta outn.r-* 07303 0 10 011 7314 3206 tsy putn.r-* 07304 0 03 037 7343 3207 ldx2 outa.s-* /* also remiber last ack */ 07305 0 41 057 7364 3208 ldx3 l.l012-* /* a.s */ 07306 4 10 037 7345 3209 tsy a.l000-*,* /* cvaddr */ 07307 3 13 000 0 3210 stx2 0,3 07310 673 000 0 3211 ila 0 07311 0332 00 0 3212 cax2 07312 3213 return bldcfd end of binary card 00000101 3214 3215 3216 ************************************************************ 3217 * 3218 * putn.r - put n(r) in to cfield 3219 * 3220 * a subroutine to put the current n(r) value in the control 3221 * field of the next output frame. 3222 * 3223 ************************************************************ 3224 07314 3225 putn.r subr pnr,(q,x3) 07325 0 07 015 7342 3226 lda outn.r-* get n.r */ 07326 0 34 030 7356 3227 ana l.l006-* /* 000007 */ 07327 0 17 014 7343 3228 sta outa.s-* /* save for caller */ 07330 0336 05 0 3229 als 5 /* shift into proper byte position +? 07331 0 17 013 7344 3230 sta pnrtmp-* /* save it in temp */ 07332 0 07 021 7353 3231 lda l.l003-* /* cfield */ 07333 4 10 014 7347 3232 tsy a.l002-*,* /* adbyte */ 07334 000000 0 3233 oct 0 07335 3 07 200 0 3234 lda 0,3,b.0 /* get value of cfield */ 07336 0 37 006 7344 3235 ora pnrtmp-* /* drop in n.r */ 07337 3 17 200 0 3236 sta 0,3,b.0 /* update cfield */ 07340 3237 return putn.r /* that is all folks */ 3238 07342 3239 outn.r bss 1 07343 3240 outa.s bss 1 assm 01 06-26-89 14.676 x25_tables page 96 assembler utility subroutines 07344 3241 pnrtmp bss 1 3242 07345 0 03000 3 3243 a.l000 ind cvaddr 07346 0 05000 3 3244 a.l001 ind setbpt 07347 0 02000 3 3245 a.l002 ind adbyte 3246 07350 777745 0 3247 l.l000 vfd 18/uaoffs 07351 777744 0 3248 l.l001 vfd 18/bufadd 07352 040000 0 3249 l.l002 vfd 18/bfflst 07353 000465 0 3250 l.l003 vfd 18/cfield 07354 777763 0 3251 l.l004 vfd 18/v.s 07355 777762 0 3252 l.l005 vfd 18/v.r 07356 000007 0 3253 l.l006 oct 000007 07357 777766 0 3254 l.l007 vfd 18/stat2 07360 000777 0 3255 l.l008 oct 000777 07361 777772 0 3256 l.l009 vfd 18/lkupws end of binary card 00000102 07362 777765 0 3257 l.l010 vfd 18/stat3 07363 777750 0 3258 l.l011 vfd 18/pstate 07364 777761 0 3259 l.l012 vfd 18/a.s 3260 3261 3262 ************************************************************ 3263 * 3264 * setust - set up link down status of word stat2 and 3265 * stat3 3266 * 3267 ************************************************************ 3268 07365 3269 setust subr sut,(x3) 07373 0 41 764 7357 3270 ldx3 l.l007-* /* stat2 */ 07374 4 10 751 7345 3271 tsy a.l000-*,* /* cvaddr */ 07375 0 07 763 7360 3272 lda l.l008-* /* o000777 */ 07376 3 32 000 0 3273 ansa 0,3 /* mask out upper half */ 07377 3333 00 0 3274 cx3a 07400 0332 00 0 3275 cax2 07401 0 41 760 7361 3276 ldx3 l.l009-* /* lkupws */ 07402 4 10 743 7345 3277 tsy a.l000-*,* /* cvaddr */ 07403 3 07 000 0 3278 lda 0,3 /* get data */ 07404 0336 11 0 3279 als 9 /* place is upper position */ 07405 2 72 000 0 3280 orsa 0,2 /* store it */ 07406 0 41 754 7362 3281 ldx3 l.l010-* /* stat3 */ 07407 4 10 736 7345 3282 tsy a.l000-*,* /* cvaddr */ 07410 0 07 750 7360 3283 lda l.l008-* /* o000777 */ 07411 3 32 000 0 3284 ansa 0,3 07412 3333 00 0 3285 cx3a 07413 0332 00 0 3286 cax2 07414 0 41 747 7363 3287 ldx3 l.l011-* /* pstate */ 07415 4 10 730 7345 3288 tsy a.l000-*,* /* cvaddr */ 07416 3 07 000 0 3289 lda 0,3 assm 01 06-26-89 14.676 x25_tables page 97 assembler utility subroutines 07417 0336 11 0 3290 als 9 07420 2 72 000 0 3291 orsa 0,2 07421 673 000 0 3292 ila 0 07422 0332 00 0 3293 cax2 07423 3294 return setust 3295 3296 3297 ************************************************************ 3298 * 3299 * scpbst - scan process chain for unprocess messages 3300 * and break chain on set address in temups 3301 * 3302 ************************************************************ 3303 07425 3304 scpbst subr scp,(x3) end of binary card 00000103 07433 0 41 103 7536 3305 ldx3 l.n000-* /* =bufadd 07434 4 10 077 7533 3306 tsy a.n000-*,* /* cvaddr */ 07435 3 07 000 0 3307 lda 0,3 07436 0 17 072 7530 3308 sta fbufmg-* 07437 0 56 073 7532 3309 stz fbufng-* /* head of queue check */ 07440 0 74 034 7474 3310 tze scpret-* 07441 6333 00 0 3311 scp010 caq 07442 4 10 072 7534 3312 tsy a.n001-*,* /* setbpt */ 07443 4333 00 0 3313 cax3 07444 3 07 001 0 3314 lda bf.flg,3 07445 0 31 072 7537 3315 cana l.n001-* /* bfflst */ 07446 0 64 004 7452 3316 tnz scp020-* /* last message flag */ 07447 3 07 000 0 3317 lda bf.nxt,3 07450 0 74 007 7457 3318 tze scp030-* /* no more */ 07451 0 71 770 7441 3319 tra scp010-* 07452 0 76 060 7532 3320 scp020 aos fbufng-* 07453 3 07 000 0 3321 lda bf.nxt,3 07454 0 74 020 7474 3322 tze scpret-* 07455 0 57 053 7530 3323 stq fbufmg-* 07456 0 71 763 7441 3324 tra scp010-* 07457 0 07 051 7530 3325 scp030 lda fbufmg-* 07460 0 20 052 7532 3326 szn fbufng-* 07461 0 74 007 7470 3327 tze scp040-* 07462 4 10 052 7534 3328 tsy a.n001-*,* /* setbpe */ 07463 4333 00 0 3329 cax3 07464 3 47 000 0 3330 ldq bf.nxt,3 07465 3 56 000 0 3331 stz bf.nxt,3 07466 0 57 043 7531 3332 stq temups-* 07467 0 71 005 7474 3333 tra scpret-* 07470 0 17 041 7531 3334 scp040 sta temups-* 07471 0 41 045 7536 3335 ldx3 l.n000-* /* bufadd */ 07472 4 10 041 7533 3336 tsy a.n000-*,* /* cvaddr */ 07473 3 56 000 0 3337 stz 0,3 07474 673 000 0 3338 scpret ila 0 assm 01 06-26-89 14.676 x25_tables page 98 assembler utility subroutines 07475 0332 00 0 3339 cax2 07476 3340 return scpbst end of binary card 00000104 3341 3342 3343 ************************************************************ 3344 * 3345 * scupem - scan unprocess chain and add new buffer to it 3346 * 3347 ************************************************************ 3348 07500 3349 scupem subr scu,(x3) 07506 0 47 023 7531 3350 ldq temups-* 07507 0 74 015 7524 3351 tze scu040-* 07510 0 41 030 7540 3352 ldx3 l.n002-* /* upobuf */ 07511 4 10 022 7533 3353 tsy a.n000-*,* /* cvaddr */ 07512 3 07 000 0 3354 lda 0,3 07513 0 74 006 7521 3355 tze scu020-* 07514 4 10 020 7534 3356 scu010 tsy a.n001-*,* /* setbpe */ 07515 4333 00 0 3357 cax3 07516 3 07 000 0 3358 lda bf.nxt,3 07517 0 74 004 7523 3359 tze scu030-* 07520 0 71 774 7514 3360 tra scu010-* 07521 3 57 000 0 3361 scu020 stq 0,3 07522 0 71 002 7524 3362 tra scu040-* 07523 3 57 000 0 3363 scu030 stq bf.nxt,3 07524 0 56 005 7531 3364 scu040 stz temups-* 07525 0 10 023 7550 3365 tsy scanup-* 07526 3366 return scupem 3367 3368 07530 3369 fbufmg bss 1 07531 3370 temups bss 1 07532 3371 fbufng bss 1 3372 07533 0 03000 3 3373 a.n000 ind cvaddr 07534 0 05000 3 3374 a.n001 ind setbpt 07535 0 07137 1 3375 a.n002 ind addbte 3376 07536 777744 0 3377 l.n000 vfd 18/bufadd 07537 040000 0 3378 l.n001 vfd 18/bfflst 07540 777743 0 3379 l.n002 vfd 18/upobuf 07541 000777 0 3380 l.n003 vfd 18/buftmk 07542 777752 0 3381 l.n004 vfd 18/kv 07543 777753 0 3382 l.n005 vfd 18/kc 07544 777737 0 3383 l.n006 vfd 18/flgwd2 end of binary card 00000105 07545 000400 0 3384 l.n007 vfd 18/snifr 3385 *l.n008 07546 400000 0 3386 l.n009 oct 400000 assm 01 06-26-89 14.676 x25_tables page 99 assembler utility subroutines 07547 000400 0 3387 l.n010 oct 000400 3388 *l.n011 3389 3390 ************************************************************ 3391 * 3392 * scanup - scan unprocess chain and place complete 3393 * messages on the bufadd 3394 * 3395 ************************************************************ 3396 07550 3397 scanup subr scn,(x3) 07556 0 41 764 7542 3398 ldx3 l.n004-* /* kv */ 07557 4 10 754 7533 3399 tsy a.n000-*,* /* cvaddr */ 07560 3333 00 0 3400 cx3a 07561 0332 00 0 3401 cax2 07562 0 41 761 7543 3402 scn010 ldx3 l.n005-* /* kc */ 07563 4 10 750 7533 3403 tsy a.n000-*,* /* cvaddr */ 07564 2 07 000 0 3404 lda 0,2 07565 3 27 000 0 3405 cmpa 0,3 07566 0 74 012 7600 3406 tze scaret-* /* no more output */ 07567 0 10 015 7604 3407 tsy getups-* /* get next on upobuf chain */ 07570 0 71 010 7600 3408 tra scaret-* /* done */ 07571 4 10 744 7535 3409 tsy a.n002-*,* /* add it to the bufadd */ 07572 0 41 752 7544 3410 ldx3 l.n006-* /* flgwd2 */ 07573 4 10 740 7533 3411 tsy a.n000-*,* /* cvaddr */ 07574 0 07 751 7545 3412 lda l.n007-* /* snifr */ 07575 3 72 000 0 3413 orsa 0,3 07576 2 76 000 0 3414 aos 0,2 07577 0 71 763 7562 3415 tra scn010-* 07600 673 000 0 3416 scaret ila 0 07601 0332 00 0 3417 cax2 07602 3418 return scanup 3419 3420 3421 ************************************************************ 3422 * 3423 * getups - get next uprocess message and process it 3424 * 3425 ************************************************************ 3426 07604 3427 getups subr gtp,(x2,x3) end of binary card 00000106 07615 0 41 723 7540 3428 ldx3 l.n002-* /* upobuf */ 07616 4 10 715 7533 3429 tsy a.n000-*,* /* cvaddr */ 07617 3 07 000 0 3430 lda 0,3 07620 0 74 036 7656 3431 tze gtpret-* /* nothing to do */ 07621 0 17 710 7531 3432 sta temups-* /* store address here for later use */ 07622 4 10 712 7534 3433 gtp010 tsy a.n001-*,* /*setbpt */ 07623 0 17 705 7530 3434 sta fbufmg-* /* temp store for address modication */ 07624 4333 00 0 3435 cax3 assm 01 06-26-89 14.676 x25_tables page 100 assembler utility subroutines 07625 3 07 001 0 3436 lda bf.tly,3 07626 0 34 713 7541 3437 ana l.n003-* /* only tally is needed */ 07627 773 001 0 3438 iaa 1 07630 0337 01 0 3439 ars 1 07631 773 777 0 3440 iaa -1 07632 0 06 676 7530 3441 ada fbufmg-* 07633 773 002 0 3442 iaa bf.dta 07634 0332 00 0 3443 cax2 07635 2 07 000 0 3444 lda 0,2 07636 0 31 710 7546 3445 cana l.n009-* 07637 0 64 006 7645 3446 tnz gtp020-* /* found eom */ 07640 0 31 707 7547 3447 cana l.n010-* 07641 0 64 004 7645 3448 tnz gtp020-* 07642 3 07 000 0 3449 lda bf.nxt,3 07643 0 74 013 7656 3450 tze gtpret-* /* no more input */ 07644 0 71 756 7622 3451 tra gtp010-* /* loop again */ 07645 0 76 737 7604 3452 gtp020 aos getups-* /* normal return */ 07646 0 07 671 7537 3453 lda l.n001-* /* bfflst */ 07647 3 72 001 0 3454 orsa bf.flg,3 07650 3 07 000 0 3455 lda bf.nxt,3 07651 3 56 000 0 3456 stz bf.nxt,3 07652 6333 00 0 3457 caq 07653 0 41 665 7540 3458 ldx3 l.n002-* /* upobuf */ 07654 4 10 657 7533 3459 tsy a.n000-*,* /* cvaddr */ 07655 3 57 000 0 3460 stq 0,3 07656 3461 gtpret return getups 3462 3463 3464 ************************************************************ 3465 * 3466 * getotp - a very fast method to get the proper output 3467 * command/response to be sent 3468 * this routine use the normalize instruction to 3469 * preform this function. 3470 * 3471 * parameters 3472 * flgwd2 - place in a-reg with bit 0 off (a must) 3473 * pointer (endlist) in x1 for transfer lables back 3474 * 3475 * results 3476 * routines will return to lable corresponding to 3477 * bit set in flgwd2 3478 * 3479 * warnings 3480 * flgwd2 must have bit 0 off 3481 * and flgwd2 must not be zero 3482 * 3483 ************************************************************ 07660 3484 getopt subr gto,(x1) "restore x1 on return end of binary card 00000107 assm 01 06-26-89 14.676 x25_tables page 101 assembler utility subroutines 07666 0 41 011 7677 3485 ldx3 l.o000-* "=flgwd2 07667 4 10 007 7676 3486 tsy a.o000-*,* "=cvaddr 07670 3 07 000 0 3487 lda 0,3 "flgwd2 must be in a-reg 07671 0 43 007 7700 3488 ldx1 l.o001-* "address of endlist 07672 1336 00 0 3489 nrm "find something to output 07673 1 03 000 0 3490 ldx2 0,1 "this what we will do 07674 3491 return getopt 3492 07676 0 03000 3 3493 a.o000 ind cvaddr 07677 777737 0 3494 l.o000 vfd 18/flgwd2 07700 0 07715 1 3495 l.o001 ind endlst 3496 07701 0 05050 1 3497 ind sprr1 "poll rr command 07702 0 05025 1 3498 ind sprej1 "poll rej command 07703 0 05002 1 3499 ind sprnr1 "poll rnr command 07704 0 04757 1 3500 ind srr1 "rr response 07705 0 04660 1 3501 ind sif1 "i-frame 07706 0 04635 1 3502 ind srej1 "rej response 07707 0 04612 1 3503 ind srnr1 "rnr response 07710 0 04577 1 3504 ind sua1 "ua response 07711 0 04564 1 3505 ind scout1 "cmdr/frmr command 07712 0 04551 1 3506 ind sbout1 "sabm command 07713 0 04536 1 3507 ind ssout1 "sarm command 07714 0 04523 1 3508 ind sdout "disc command 07715 0 04510 1 3509 endlst ind sddnnt "dm command 3510 3511 3512 ************************************************************ 3513 * 3514 * clrocp, setocp, ocpset, tstocp 3515 * 3516 * subrountines to handle the t.ocp field 3517 * 3518 ************************************************************ 07716 3519 clrocp subr 07721 1 56 012 0 3520 stz t.ocp,1 07722 1 56 013 0 3521 stz t.ocur,1 07723 1 56 014 0 3522 stz t.olst,1 07724 3523 return clrocp 3524 07726 3525 setocp subr 07731 3 41 000 0 3526 ldx3 0,3 end of binary card 00000108 07732 4 10 051 10003 3527 tsy a.m000-*,* /* cvaddr */ 07733 3 07 000 0 3528 lda 0,3 07734 1 17 012 0 3529 sta t.ocp,1 07735 1 56 013 0 3530 stz t.ocur,1 07736 1 56 014 0 3531 stz t.olst,1 07737 673 000 0 3532 ila 0 07740 0332 00 0 3533 cax2 assm 01 06-26-89 14.676 x25_tables page 102 assembler utility subroutines 07741 3534 return setocp 3535 07743 3536 ocpset subr 07746 3 41 000 0 3537 ldx3 0,3 07747 4 10 034 10003 3538 tsy a.m000-*,* /* cvaddr */ 07750 1 07 012 0 3539 lda t.ocp,1 07751 3 17 000 0 3540 sta 0,3 07752 673 000 0 3541 ila 0 07753 0332 00 0 3542 cax2 07754 3543 return ocpset 3544 07756 3545 tstocp subr tst,(x3) 07764 3 41 000 0 3546 ldx3 0,3 07765 0 74 004 7771 3547 tze tst010-* /* zero no address */ 07766 4 10 015 10003 3548 tsy a.m000-*,* /* cvaddr */ 07767 3 07 000 0 3549 lda 0,3 07770 0 71 002 7772 3550 tra tst020-* 07771 3333 00 0 3551 tst010 cx3a 07772 1 27 012 0 3552 tst020 cmpa t.ocp,1 07773 0 74 005 10000 3553 tze tst040-* 07774 673 000 0 3554 ila 0 07775 0332 00 0 3555 tst030 cax2 07776 3556 return tstocp end of binary card 00000109 10000 0 41 763 7763 3557 tst040 ldx3 tstsx3-* 10001 3 07 001 0 3558 lda 1,3 10002 0 71 773 7775 3559 tra tst030-* 10003 0 03000 3 3560 a.m000 ind cvaddr end of binary card 00000110 3561 end 10004 is the next available location. 355map version/assembly dates gmpa 801215/123080 gmpb 801215/123080 gmpc 801215/123080 there were no warning flags in the above assembly assm 01 06-26-89 14.681 x25_tables page 103 octal symbol references by sequence no. 4062 abtfn 1738 1728 1738 5365 ackclr 2127 2125 2127 5356 acklop 2125 2125 2140 5320 ackms1 2116 2114 2116 5326 ackms2 2118 2116 2118 5335 ackms3 2121 2115 2117 2121 5413 ackms4 2135 2133 2135 5421 ackms5 2137 2135 2137 5424 ackms6 2138 2134 2136 2138 5312 ackmsg 2114 1234 1237 1301 1321 1523 1543 1574 1594 1607 1797 2114 5435 ackpro 2141 2139 2141 200000 ackrq 161 161 1794 1801 1880 1885 2119 4365 ackrtc 1885 1801 1880 1885 5370 ackst1 2128 2126 2128 5352 ackstr 2124 2122 2124 436 actts2 491 485 491 427 actts 489 487 489 423 actwt 487 484 487 490 491 7154 adb010 3112 3108 3112 3116 7161 adb020 3117 3115 3117 7163 adbret 3119 3111 3119 2 adbyte 91 2362 2613 2672 2732 2928 3140 3245 7137 addbte 3104 3104 3119 3375 7046 admod8 3032 1546 2054 2132 3032 3038 5676 a.a000 2361 2245 2261 2305 2311 2317 2321 2329 2337 2341 2350 2361 5677 a.a001 2362 2281 2291 2297 2362 6242 a.c000 2609 2423 2609 6243 a.c001 2610 2426 2610 6244 a.c002 2611 2428 2611 6245 a.c003 2612 2429 2488 2500 2506 2517 2536 2560 2584 2612 6246 a.c004 2613 2441 2613 6247 a.c005 2614 2491 2503 2509 2520 2539 2568 2587 2614 6250 a.c006 2615 2534 2615 6251 a.c007 2616 2556 2616 6252 a.c008 2617 2558 2617 6253 a.c009 2618 2482 2562 2600 2618 6254 a.c010 2619 2455 2619 6355 a.d000 2672 2638 2660 2672 6457 a.e000 2732 2690 2722 2732 6460 a.e001 2733 2727 2733 6606 a.f000 2822 2759 2763 2768 2771 2814 2822 6737 a.g000 2927 2878 2927 6740 a.g001 2928 2886 2898 2918 2928 2952 6741 a.g002 2929 2893 2929 2947 6742 a.g003 2930 2902 2930 7017 a.h000 2994 2994 3013 7131 a.j000 3088 3053 3075 3085 3088 7205 a.k000 3138 3106 3138 7206 a.k001 3139 3112 3139 7207 a.k002 3140 3129 3140 assm 01 06-26-89 14.681 x25_tables page 104 octal symbol references by sequence no. 7345 a.l000 3243 3155 3161 3198 3203 3209 3243 3271 3277 3282 3288 7346 a.l001 3244 3165 3244 7347 a.l002 3245 3192 3232 3245 10003 a.m000 3560 3527 3538 3548 3560 7533 a.n000 3373 3306 3336 3353 3373 3399 3403 3411 3429 3459 7534 a.n001 3374 3312 3328 3356 3374 3433 7535 a.n002 3375 3375 3409 7676 a.o000 3493 3486 3493 777760 a.r 127 127 1041 1233 1242 1274 1324 1342 1396 1550 2121 2130 2135 2138 2139 2824 777761 a.s 126 126 1040 1460 2182 3259 5461 akmret 2147 2121 2144 2147 7057 amarg1 3040 1544 2052 2058 2130 3033 3040 7060 amarg2 3041 1545 1547 2053 2055 2060 2131 2137 2138 3034 3036 3041 3226 backnr 1392 385 1392 4276 badoa2 1852 1850 1852 4266 badoa 1849 599 638 678 716 1849 6651 badrng 2867 2775 2853 2861 2867 6024 bdcrp 2464 2461 2462 2464 2468 2471 2492 2504 2510 2521 2540 2548 2569 2571 2573 2577 2582 2588 7136 bdlgsz 3095 2614 2930 3073 3095 1 begin 89 20000 bffbrk 99 99 2996 3090 40000 bfflst 99 99 3091 3249 3378 2 bf.dta 99 99 2432 2879 3442 1 bf.flg 99 99 3015 3060 3167 3314 3454 0 bf.nxt 99 99 3019 3055 3057 3080 3082 3114 3118 3170 3173 3317 3321 3330 3331 3358 3363 3449 3455 3456 1 bf.tly 99 99 3077 3436 2 b.0 2284 2294 2300 2444 2640 2662 2693 2725 2888 2891 2901 2921 2954 2956 3133 3194 3201 3234 3236 3274 bknrni 1406 1404 1406 6717 blc010 2911 2903 2911 6723 blc015 2915 2912 2915 6724 blc020 2916 2908 2910 2914 2916 6732 blcret 2922 2889 2922 7256 bldcfd 3190 1988 3190 3213 7165 bldrsp 3127 1962 1969 1995 2002 2009 2016 3127 3136 6652 blfcdr 2876 1162 1497 2876 2925 6537 bnr 2784 2753 2778 2784 2911 2923 7172 brpsx3 3127 3127 3131 777744 bufadd 139 139 1054 1275 1348 1404 1461 1898 1908 2124 2141 2157 2169 3142 3248 3377 777 buftmk 99 99 3092 3380 4464 busyst 1915 1896 1915 1 cala.x 2142 491 1876 1898 1902 1905 1913 1962 1969 1983 1995 2002 2009 2016 2122 2123 2124 2125 2141 2142 1 cd 101 101 502 511 5235 cfbps 2062 2046 2062 5724 cfgpcw 2394 527 2394 2404 465 cfield 112 112 255 256 265 1960 1967 1987 1993 2000 2007 2014 3143 3250 6332 chcsq 2655 2655 2667 assm 01 06-26-89 14.681 x25_tables page 105 octal symbol references by sequence no. 6316 checkc 2655 2511 2522 2552 2589 2655 2664 2668 6356 checkf 2681 2496 2532 2681 2695 2699 6421 checkp 2713 2513 2524 2547 2554 2591 2713 2720 2730 6261 checkr 2633 2494 2530 2633 2642 2646 6540 checnr 2793 2616 2793 2799 2800 6561 checns 2809 2617 2809 2819 2820 6415 chf010 2700 2694 2700 6413 chfret 2699 2697 2699 2702 6367 chfsa 2681 2681 2685 6370 chfsq 2681 2681 2701 6521 chk010 2770 2766 2770 6523 chk020 2772 2769 2772 6533 chk030 2780 2776 2780 0 chk 351 250 251 252 253 254 255 256 258 262 263 265 294 301 305 309 319 323 335 341 345 351 6467 chknr 2752 2615 2752 2780 2781 2794 6534 chkret 2781 2779 2781 6616 chkrng 2840 2774 2840 2862 6455 chpret 2730 2719 2730 6432 chpsa 2713 2713 2717 6554 chr010 2797 2795 2797 6556 chr020 2799 2796 2799 6557 chrret 2800 2798 2800 6603 chs010 2819 2816 2819 6604 chsret 2820 2818 2820 15 chval 351 250 251 252 253 254 255 256 258 262 263 265 294 301 305 309 319 323 335 341 345 351 2 c.rcrq 98 98 101 40 c.rdtr 98 98 101 2 c.rrec 98 98 101 20000 c.rrqs 98 98 101 200 c.rsup 98 98 101 200 c.rtre 98 98 101 10 c.rxmt 98 98 101 1000 c.sbrk 98 98 101 1 c.scrq 98 98 101 20 c.sdtr 98 98 101 2000 c.smrk 98 98 101 1 c.srec 98 98 101 10000 c.srqs 98 98 101 100 c.ssup 98 98 101 400 c.stat 98 98 101 100 c.stre 98 98 101 4000 c.strm 98 98 101 4 c.sxmt 98 98 101 6347 ckcree 2666 2663 2666 6351 ckcret 2668 2665 2668 2011 ckdisc 961 367 961 472 ckdlup 505 502 505 506 2025 ckdscp 966 367 966 assm 01 06-26-89 14.681 x25_tables page 106 octal symbol references by sequence no. 6633 ckg010 2852 2843 2848 2852 6644 ckgret 2862 2856 2859 2862 500 ckline 508 506 508 516 cklisn 514 501 510 514 6776 ckrnr 2979 1540 1588 1609 2979 2991 6312 ckrree 2644 2641 2644 6314 ckrret 2646 2643 2646 6275 ckrsq 2633 2633 2645 2117 ckupst 1015 371 1015 4374 clrabf 1896 571 1763 1787 1896 4452 clrbfn 1912 1897 1912 4406 clrlo1 1899 1899 1900 4407 clrlo2 1900 1900 1904 4426 clrlo3 1905 1901 1905 4402 clrloo 1898 1898 1912 1914 7716 clrocp 3519 1789 1877 3519 3523 5462 clrrbb 2157 1240 1257 1263 2157 5471 clrret 2159 2157 2159 2504 cmchkl 1182 1180 1182 24 cmdmsg 255 255 2003 2010 2017 207 cmdr 201 201 258 466 cmdrb1 113 113 258 1052 1457 2932 467 cmdrb2 114 114 258 2933 470 cmdrb3 115 115 258 2934 6241 cmdrln 2607 1182 2422 2480 2607 30 cmdrms 258 258 1952 6026 cmdrp 2466 2459 2466 6054 cmdrpc 2488 2475 2479 2488 7022 cntqf 3009 2980 3009 3021 4226 cotime 1818 1815 1818 7033 cqf010 3013 3013 3020 7041 cqf020 3019 3017 3019 7043 cqf030 3021 3012 3021 7045 cqfcnt 3023 2981 3010 3018 3023 5304 cshook 2103 1228 1297 1317 2103 2 cts 101 101 502 511 3 cvaddr 92 2361 2618 2733 2822 2929 3138 3243 3373 3493 3560 5554 dcd010 2260 2250 2260 5565 dcd015 2269 2267 2269 5570 dcd020 2272 2270 2272 5573 dcd030 2275 2273 2275 5607 dcd040 2288 2276 2288 5617 dcd050 2297 2286 2297 5533 dcdact 2239 491 2239 2359 5674 dcdret 2359 2256 2359 2363 dcdsua 1119 1117 1119 1 dceadr 191 191 2283 2293 2 dcedte 146 146 829 833 874 931 1117 2103 550 deact 543 543 586 1188 1835 531 dialed 527 511 527 assm 01 06-26-89 14.681 x25_tables page 107 octal symbol references by sequence no. 10 dialim 226 226 2997 100 dialup 101 101 1022 103 disc 198 198 253 3703 discds 1626 411 415 1626 4 discft 147 147 561 962 966 6074 discp 2505 2505 2575 1727 disct1 911 357 911 17 dm 199 199 251 14 dmmsg 251 251 1936 6225 dmp 2594 2523 2594 1606 dmst3n 848 846 848 1600 dmstt3 846 357 846 50 downst 294 294 621 400000 downsw 162 162 564 970 1026 1422 20 dscmsg 253 253 1940 2035 dsdisc 970 363 381 962 970 1836 2033 dsdscp 969 363 371 652 966 969 2337 dsdsua 1112 371 405 1112 1438 3336 dsduab 1437 390 395 400 411 415 1437 3344 dsdub 1439 1437 1439 143 dslabl 357 357 621 4 dsr 101 101 502 511 512 600 639 679 717 751 1699 1567 dsrtsn 831 831 833 1544 dssnua 822 357 822 1755 dst1e2 931 928 931 1747 dst1e 928 357 928 1732 dst1ep 912 912 929 931 1003 dstest 621 615 621 6175 dsuap 2570 2457 2570 2366 dtdsua 1120 1118 1120 3 dteadr 192 192 2299 604 dwnst 564 561 564 974 1125 1427 1443 1630 676 dwnwt 589 574 589 505 endchn 101 101 265 7715 endlst 3509 3495 3509 400 eof 204 204 265 4000 exh 101 101 601 640 680 718 752 4024 exhcnt 1710 1706 1710 4016 exhret 1708 1698 1708 3763 exhrst 1683 1678 1683 4012 exhrtr 1705 1705 1708 3753 exhsta 1676 601 640 680 718 752 1676 1686 4003 exhwrt 1701 1686 1701 10000 fbit 157 157 568 625 658 697 734 805 1933 2046 2062 2074 2740 5264 fbitc1 2079 2073 2079 5243 fbitck 2073 872 898 948 972 1016 1023 1214 1229 1298 1318 1425 1639 2073 5116 fbout 2035 2022 2035 5124 fbsout 2037 2035 2037 7530 fbufmg 3369 3308 3323 3325 3369 3434 3441 7532 fbufng 3371 3309 3320 3326 3371 assm 01 06-26-89 14.681 x25_tables page 108 octal symbol references by sequence no. 4052 fcesta 1727 602 641 681 719 753 1727 6466 fchtmp 2742 2688 2692 2696 2742 5134 fcout 2040 2036 2040 10000 fcserr 101 101 602 641 681 719 753 400 fg.itf 98 98 482 532 545 1765 3607 finrej 1574 400 1574 3672 finrn1 1613 1610 1613 3700 finrn2 1615 1612 1615 3653 finrnr 1607 395 1607 3607 finrr 1573 390 1573 777740 flgwd1 144 144 529 534 557 560 561 562 564 565 566 567 568 573 580 585 591 594 625 652 658 674 697 712 734 805 826 827 829 833 846 871 874 877 878 879 891 892 915 928 931 932 944 962 966 970 986 987 988 997 1015 1019 1021 1025 1026 1035 1036 1045 1071 1099 1115 1117 1123 1140 1156 1157 1187 1191 1192 1202 1215 1243 1245 1260 1272 1277 1286 1303 1306 1340 1344 1347 1369 1371 1380 1392 1399 1421 1422 1437 1455 1458 1477 1498 1552 1556 1641 1657 1701 1702 1708 1711 1714 1716 1717 1762 1783 1784 1791 1793 1794 1799 1800 1801 1815 1818 1849 1850 1865 1866 1867 1869 1871 1874 1878 1880 1885 1896 1912 1932 1933 1990 2046 2047 2049 2050 2056 2062 2074 2075 2089 2092 2103 2114 2119 2133 2144 2195 2367 2739 2825 777737 flgwd2 164 164 558 595 672 710 822 834 848 880 885 913 945 971 993 994 1027 1032 1055 1084 1097 1113 1116 1119 1138 1158 1161 1183 1194 1198 1349 1354 1355 1373 1377 1405 1423 1424 1439 1441 1462 1463 1479 1505 1522 1559 1576 1596 1611 1614 1626 1628 1643 1934 1938 1942 1946 1950 1954 1958 1965 1972 1985 1991 1998 2005 2012 2019 2021 2031 2035 2038 2040 2041 2042 2043 2116 2158 2170 3383 3494 777736 flgwd3 181 181 559 671 849 868 897 961 963 1037 1246 1256 1261 1278 1280 1337 1350 1352 1393 1790 1910 1915 1979 1980 1981 5073 flst 2021 1933 2021 464 fmask 111 111 263 570 624 657 696 733 804 1051 1400 2063 2076 2738 3440 frcmdr 1497 390 395 400 1455 1458 1478 1497 462 frmadr 109 109 764 2621 0 frmrcv 426 426 617 647 690 725 762 1 frmxmt 425 425 2194 2470 frsren 1166 1160 1166 2424 frsrrq 1154 381 390 395 400 405 1154 1215 2103 5107 fsabmc 2032 2032 2039 5101 fsout 2023 2021 2023 7660 getopt 3484 1935 3484 3491 7604 getups 3427 3407 3427 3452 3461 530 golisn 518 515 518 4067 gopunt 1749 483 1749 1936 1937 1940 1941 1944 1945 1948 1949 1952 1953 1956 1957 1963 1964 1970 1971 1989 1996 1997 2003 2004 2010 2011 2017 2018 2023 2032 2037 2662 gowait 1245 1233 1245 1288 1326 2672 gownt1 1247 1247 1258 1273 1274 1275 7114 gtb010 3075 3075 3083 7125 gtb020 3084 3081 3084 7103 gtbfsz 3071 2611 3071 3086 7234 gtn010 3165 3159 3165 3172 7244 gtn020 3173 3169 3173 assm 01 06-26-89 14.681 x25_tables page 109 octal symbol references by sequence no. 7247 gtnret 3176 3164 3171 3174 3176 7213 gtntms 3153 1982 3153 3181 7622 gtp010 3433 3433 3451 7645 gtp020 3452 3446 3448 3452 7656 gtpret 3461 3431 3450 3461 4107 hang2 1770 1770 1771 4071 hang 1761 512 514 516 546 600 639 679 717 751 1699 1761 1833 4104 hangr 1767 489 496 1767 101 hangup 101 101 1773 6646 high 2864 2773 2841 2845 2857 2864 2676 hldrty 1256 1246 1256 2 hldvar 183 183 671 849 868 897 961 963 4 hungup 90 1774 6152 iframp 2551 2449 2551 4731 ifrett 1985 1974 1975 1976 1977 1978 1980 1983 1985 20000 ifrsnd 158 158 1784 1800 1871 1874 1912 1990 2047 4714 ifskov 1981 1979 1981 503 ignore 101 101 262 263 265 4137 iprotm 1789 1784 1789 4142 iptmrt 1790 1786 1790 4146 iptrta 1791 1788 1791 673 .crtsw 100 100 582 777753 kc 132 132 2088 2373 3382 777752 kv 133 133 1907 2088 2129 3144 3381 1 laparb 145 145 562 827 846 879 928 986 1019 1157 1192 1215 1272 1347 1371 1437 1455 1458 1477 1498 777771 lastf 118 118 577 621 654 693 730 775 778 781 784 787 790 793 796 799 802 1000 1180 1813 1821 1823 2622 337 lbfrtv 409 409 799 363 lbrstv 415 415 802 1 lctact 230 230 2366 2 lctdea 231 231 1835 3 lctdis 232 232 1836 6750 ldnsdr 2945 1163 1503 2945 2959 1340 linkup 749 749 1058 460 lisn 499 493 499 442 lisna 493 493 497 452 lisnt 496 494 496 5700 l.a000 2364 2244 2364 5701 l.a001 2365 2248 2365 5702 l.a002 2366 2249 2366 5703 l.a003 2367 2260 2367 5704 l.a004 2368 2280 2295 2368 5705 l.a005 2369 2285 2290 2369 5706 l.a006 2370 2304 2370 5707 l.a007 2371 2310 2371 5710 l.a008 2372 2316 2372 5711 l.a009 2373 2320 2373 5712 l.a010 2374 2328 2374 5713 l.a011 2375 2331 2352 2375 assm 01 06-26-89 14.681 x25_tables page 110 octal symbol references by sequence no. 5714 l.a012 2376 2336 2376 5715 l.a013 2377 2340 2377 5716 l.a014 2378 2344 2378 5717 l.a015 2379 2349 2379 5742 l.b000 2405 2396 2405 5743 l.b001 2406 2400 2406 6255 l.c000 2621 2440 2621 6256 l.c001 2622 2599 2622 6257 l.c002 2623 2561 2623 6260 l.c003 2624 2481 2624 6353 l.d001 2670 2637 2670 6354 l.d002 2671 2659 2671 6461 l.e000 2735 2687 2718 2724 2735 6462 l.e001 2736 2689 2736 6463 l.e003 2738 2721 2738 6464 l.e004 2739 2726 2739 6465 l.e005 2740 2728 2740 6607 l.f000 2824 2758 2824 6610 l.f001 2825 2762 2825 6611 l.f002 2826 2765 2826 6612 l.f003 2827 2767 2827 6613 l.f004 2828 2770 2828 6614 l.f005 2829 2813 2829 6615 l.f006 2830 2754 2830 6743 l.g000 2932 2885 2932 6744 l.g001 2933 2897 2933 2951 6745 l.g002 2934 2917 2934 6746 l.g003 2935 2892 2935 6747 l.g004 2936 2936 2946 7020 l.h000 2996 2996 3016 7021 l.h001 2997 2982 2997 7061 l.i000 3042 3035 3042 7132 l.j000 3090 3059 3090 7134 l.j002 3092 3078 3092 7210 l.k000 3142 3105 3142 7211 l.k001 3143 3128 3143 7350 l.l000 3247 3154 3247 7351 l.l001 3248 3160 3248 7352 l.l002 3249 3168 3249 7353 l.l003 3250 3191 3231 3250 7354 l.l004 3251 3197 3251 7355 l.l005 3252 3202 3252 7356 l.l006 3253 3227 3253 7357 l.l007 3254 3254 3270 7360 l.l008 3255 3255 3272 3283 7361 l.l009 3256 3256 3276 7362 l.l010 3257 3257 3281 7363 l.l011 3258 3258 3287 7364 l.l012 3259 3208 3259 7536 l.n000 3377 3305 3335 3377 assm 01 06-26-89 14.681 x25_tables page 111 octal symbol references by sequence no. 7537 l.n001 3378 3315 3378 3453 7540 l.n002 3379 3352 3379 3428 3458 7541 l.n003 3380 3380 3437 7542 l.n004 3381 3381 3398 7543 l.n005 3382 3382 3402 7544 l.n006 3383 3383 3410 7545 l.n007 3384 3384 3412 7546 l.n009 3386 3386 3445 7547 l.n010 3387 3387 3447 7677 l.o000 3494 3485 3494 7700 l.o001 3495 3488 3495 1 lkdnst 208 208 589 1520 lkfrlb 799 420 799 5 lkisup 212 212 1047 1440 lkpnr 775 420 775 1446 lkprb 778 420 778 1537 lkpret 806 776 779 782 785 788 791 794 797 800 806 847 5 lkprnr 213 213 351 1048 1232 1236 1319 1406 6 lkprrb 214 214 351 1231 1299 1974 10 lkprsr 216 216 351 1159 1193 1372 1975 7 lkprt1 215 215 351 1339 1462 lkpsr 784 420 784 1454 lkpt1 781 420 781 1526 lkrslb 802 420 802 14 lksccs 220 220 351 1228 1297 1317 1499 1978 12 lksclb 218 218 351 1592 11 lkscnm 217 217 351 1049 1456 1539 1590 1613 13 lkscrj 219 219 351 1521 1512 lkscs 796 420 796 1476 lkslb 790 420 790 1470 lksnm 787 420 787 1504 lksrj 793 420 793 3 lkssst 210 210 887 4 lksust 211 211 882 992 2 lkt3st 209 209 893 1028 15 lkupfr 221 221 351 1029 1164 1165 1501 1502 1976 16 lkuprs 222 222 351 1196 1197 1375 1376 1644 1645 1977 2135 lkupst 1021 1015 1019 1021 777772 lkupws 117 117 765 768 770 1814 3256 460 locadr 107 107 251 254 256 258 764 2368 2671 6647 low 2865 2761 2842 2847 2855 2865 3144 lpanif 1353 1348 1353 3454 lpbfrb 1501 1498 1501 2451 lpbfrc 1161 1157 1161 2127 lpbiup 1019 363 367 1019 2142 lpbpup 1023 411 415 1023 2554 lpbsbb 1196 1192 1196 3204 lpbsbs 1375 1371 1375 3145 lpbt1s 1354 1347 1354 1570 lpbtst 833 827 833 assm 01 06-26-89 14.681 x25_tables page 112 octal symbol references by sequence no. 3 lstcmr 246 246 1185 1 lstdwn 244 244 576 1 macwk1 3545 2239 2359 2394 2404 2421 2602 2633 2646 2655 2668 2681 2699 2713 2730 2752 2781 2793 2800 2809 2820 2840 2862 2876 2925 2945 2959 2979 2991 3009 3021 3032 3038 3051 3061 3071 3086 3104 3119 3127 3136 3153 3181 3190 3213 3225 3237 3269 3294 3304 3340 3349 3366 3397 3418 3427 3461 3484 3491 3519 3523 3525 3534 3536 3543 3545 3556 3 macwk2 3545 2239 2394 2421 2633 2655 2681 2713 2752 2793 2809 2840 2876 2945 2979 3009 3032 3051 3071 3104 3127 3153 3190 3225 3269 3304 3349 3397 3427 3484 3519 3525 3536 3545 40 marker 101 101 1698 46 mfce 431 431 1727 6650 middle 2866 2756 2846 2850 2854 2858 2866 36 m.cnt1 102 102 427 40 m.cnt2 102 102 428 42 m.cnt3 102 102 429 44 m.cnt4 102 102 430 46 m.cnt5 102 102 431 50 m.cnt6 102 102 432 16 m.exh 102 102 1677 20 m.xte 102 102 1681 50 mrab 432 432 1737 4 mstclr 184 184 1790 1910 1915 10 mstifr 185 185 1278 1350 1979 1981 777746 mxfrsz 137 137 2371 2623 777754 n2 131 131 1820 2374 4242 n2equl 1823 1820 1823 3215 n2rrsc 1378 1374 1378 3155 n2rssr 1367 381 1367 6536 n.r 2783 1233 1238 1325 1796 2118 2121 2139 2757 2783 3412 nmdua1 1463 1461 1463 3371 nmdua 1458 390 1458 3424 nmduab 1477 390 395 400 1477 3432 nmdubc 1479 1477 1479 3521 nmif 1540 390 1540 3532 nmifa 1543 1541 1543 3601 nmifct 1558 1551 1552 1558 3360 nmsdua 1455 395 400 405 1455 2175 norlku 1035 1030 1035 3030 nrrej 1317 381 1317 2606 nrrr 1228 381 1228 777742 nrv 141 141 1796 2118 0 null 101 101 569 570 624 657 696 733 804 1050 1051 1052 1114 1368 1400 1401 1420 1440 1457 1960 1967 1987 1993 2000 2007 2014 2063 2076 2077 2270 nupwt 1057 1054 1057 200 oasw 152 152 1701 1849 1865 2089 2092 7743 ocpset 3536 1876 1913 2123 2141 3536 3543 524 offbit 101 101 265 100000 oprusw 160 160 1702 1717 1799 1866 1869 1878 2144 777 ordmsk 240 240 2365 assm 01 06-26-89 14.681 x25_tables page 113 octal symbol references by sequence no. 7343 outa.s 3240 2182 3207 3228 3240 4133 outclr 1787 1787 1790 4471 outlst 1932 596 673 711 823 881 886 894 914 949 995 1033 1056 1085 1098 1121 1141 1167 1184 1200 1247 1279 1351 1379 1407 1426 1442 1466 1508 1524 1560 1577 1597 1615 1629 1646 1802 1881 1932 1986 403 outmsg 101 101 2198 7342 outn.r 3239 2180 3205 3226 3239 4121 outpcw 1783 605 644 684 722 756 1714 1783 5505 outseq 2180 1961 1968 1994 2001 2008 2015 2180 4000 pbit 156 156 567 1115 1277 1344 1369 1421 2075 556 pcdown 557 535 557 6420 pf 2704 2073 2078 2609 2686 2698 2704 20 pfon 203 203 912 969 1096 1136 1276 1343 2735 463 pmask 110 110 262 265 569 912 969 1050 1096 1114 1136 1276 1343 1368 1401 1420 1440 2077 2736 3516 pnmif 1539 400 1539 212 pnrlbl 378 378 775 7344 pnrtmp 3241 3230 3235 3241 6240 polcmd 2606 2529 2549 2606 212 prblbl 379 379 778 6146 prespc 2547 2531 2547 117 prifr 339 339 799 74 prinr 316 316 775 74 prirb 317 317 778 105 prisr 323 323 784 131 prisrt 345 345 802 74 prit1 318 318 781 40000 psarm 159 159 591 944 987 1015 1025 233 psrlbl 385 385 784 1117 pssute 671 562 671 777750 pstate 135 135 590 765 1029 1048 1159 1164 1193 1196 1231 1232 1236 1299 1319 1339 1372 1375 1406 1502 1644 1814 1974 1975 1976 1977 3258 1231 psuste 710 563 710 212 pt1lbl 380 380 781 7314 putn.r 3225 2181 3206 3225 3237 6237 q.save 2605 2439 2443 2605 6775 qrsave 2960 2884 2890 2896 2900 2916 2920 2950 2955 2960 4057 rabsta 1737 603 642 682 720 754 1737 3017 rbrn1 1305 1303 1305 3027 rbrnr2 1308 1304 1308 2772 rbrnr 1297 381 1297 777764 rc 123 123 592 619 676 714 870 911 934 990 1042 1070 1095 1122 1137 1155 1190 1241 1262 1305 1338 1370 1398 1419 1656 1820 2763 rclkra 1285 1283 1285 2755 rclkrr 1283 1242 1283 1324 3574 rcnmfa 1555 1553 1555 3562 rcnmif 1552 1550 1552 200000 rcvabt 101 101 603 642 682 720 754 100 rcvsw 151 151 529 1711 1716 1791 1793 100000 rcvtrm 101 101 604 643 683 721 755 assm 01 06-26-89 14.681 x25_tables page 114 octal symbol references by sequence no. 773 rddsin 617 604 617 1407 rdnlk 762 755 762 1206 rdnss 690 683 690 1311 rdnsu 725 721 725 1064 rdnt3 647 643 647 40 rdtr 101 101 1766 2705 rect1 1260 1245 1260 3505 rej1 1523 400 1523 11 rej 195 195 1969 2009 6143 rejp 2544 2460 2544 5504 rejret 2171 2169 2171 5472 rejrst 2168 1322 2168 461 remadr 108 108 250 252 253 255 265 2369 2670 661 repdn1 582 580 582 664 repdn2 583 581 583 637 repdns 576 573 576 515 replac 101 101 265 510 rescan 101 101 262 263 265 44 resrcv 430 430 946 1112 1464 40 resxmt 428 428 1154 1189 1367 1418 4225 retime 1816 1816 1818 777741 retlbl 142 142 598 637 677 715 749 1248 1281 1718 1803 1883 5242 retotl 2064 1932 1934 2034 2048 2064 3477 rjrej 1521 390 1521 7012 rnr030 2988 2983 2988 5 rnr 194 194 1962 2002 7016 rnrflg 2993 1541 1589 1610 2985 2989 2993 6140 rnrp 2541 2458 2541 7014 rnrret 2991 2986 2991 6131 rpcomp 2534 2534 2550 6124 rpros 2529 2529 2543 2546 20 rprtsw 149 149 557 573 585 1021 1187 1 rr 193 193 1995 2016 2 rrec 101 101 543 1684 6122 rrp 2527 2456 2527 20000 rrts 101 101 1766 6061 rspfck 2494 2494 2502 26 rspmsg 256 256 1963 1970 1996 2634 rsprrb 1236 1231 1236 3716 rssabm 1639 411 1639 200 rtroe 101 101 2197 1 rtyhld 182 182 1246 1256 1261 1280 1337 1352 1393 1980 42 rtyrcv 429 429 622 655 695 732 772 807 1082 1506 1525 1593 1712 1738 36 rtyxmt 427 427 1320 1336 0 rvbdad 271 271 1813 2596 12 rvbdcr 281 281 301 319 335 341 1000 2464 2644 2666 2777 15 rvbdfb 284 284 301 319 341 2700 16 rvbdir 285 285 301 319 335 341 2797 17 rvbdis 286 286 301 319 335 341 2817 6 rvcmdr 277 277 301 305 319 335 341 345 1180 2466 assm 01 06-26-89 14.681 x25_tables page 115 octal symbol references by sequence no. 1 rvdisc 272 272 294 301 305 309 319 335 341 345 2505 2 rvdm 273 273 294 301 305 319 341 345 2594 20 rvifrm 287 287 301 319 335 341 2551 2566 23 rvprej 290 290 301 335 341 2545 22 rvprnr 289 289 301 335 341 2542 21 rvprr 288 288 301 335 341 2528 11 rvrej 280 280 301 319 335 341 2544 10 rvrnr 279 279 301 319 335 341 2541 7 rvrr 278 278 301 319 335 341 2527 4 rvsabm 275 275 301 305 319 335 341 345 2583 3 rvsarm 274 274 301 309 319 335 341 2516 14 rvt12e 283 283 294 301 305 309 319 323 341 345 1823 13 rvt12l 282 282 294 301 305 309 319 323 341 345 1821 5 rvua 276 276 294 305 309 319 323 335 341 345 2499 10 rxmit 101 101 1684 2199 57 sabm 197 197 252 17 sarm 196 196 250 6107 sarmp 2516 2516 2580 7071 sbk010 3053 3053 3058 7077 sbk020 3059 3056 3059 16 sbmmsg 252 252 1948 2037 2527 sbors1 1189 1181 1182 1189 2476 sborsm 1180 381 1180 4551 sbout1 1948 1948 3506 6206 sbrdmp 2579 2463 2579 2565 sbsmct 1199 1195 1199 7550 scanup 3397 1053 1403 2145 3365 3397 3418 7600 scaret 3416 3406 3408 3416 7562 scn010 3402 3402 3415 4564 scout1 1952 1952 2040 3505 7441 scp010 3311 3311 3319 3324 7452 scp020 3320 3316 3320 7457 scp030 3325 3318 3325 7470 scp040 3334 3327 3334 7425 scpbst 3304 1873 3304 3340 7474 scpret 3338 3310 3322 3333 3338 317 scslbl 404 404 796 7514 scu010 3356 3356 3360 7521 scu020 3361 3355 3361 7523 scu030 3363 3359 3363 7524 scu040 3364 3351 3362 3364 7500 scupem 3349 1879 3349 3366 4510 sddnnt 1936 1936 3509 4523 sdout 1940 1940 3508 20 sdtr 101 101 499 107 seccs 334 334 796 107 seclb 332 332 790 1424 secmpr 768 764 768 1591 107 secnm 331 331 787 107 secrj 333 333 793 assm 01 06-26-89 14.681 x25_tables page 116 octal symbol references by sequence no. 42 setac 264 264 1989 523 setbit 101 101 262 263 265 5 setbpt 93 2610 2927 2994 3088 3139 3244 3374 7062 setbrk 3051 1548 3051 3061 514 seteom 101 101 250 251 252 253 254 255 256 258 37 setf 263 263 1937 1953 1957 1964 1971 1997 7726 setocp 3525 1898 1902 1905 2124 2142 3525 3534 34 setp 262 262 1941 1945 1949 2004 2011 2018 2032 7365 setust 3269 583 3269 3294 24 sf.cfg 97 97 2401 2402 4165 sgoa1 1796 1794 1796 4172 sgoa2 1798 1795 1798 4157 sgoa 1794 1791 1794 4660 sif1 1974 1974 3501 4736 sif2 1987 1984 1987 5276 sigctn 2091 2089 2091 5265 sigotp 2088 1057 1408 1882 1886 2088 2146 5275 sigret 2090 2088 2090 200000 s.acr 98 98 101 400000 s.ads 98 98 101 400000 s.bdmk 98 98 101 200000 s.bmk 98 98 101 1000 s.brch 98 98 101 400 s.brk 98 98 101 1 s.cd 98 98 101 2 s.cts 98 98 101 100000 s.dlo 98 98 101 4 s.dsr 98 98 101 4000 s.exh 98 98 101 10000 s.fcse 98 98 101 40000 s.isd 98 98 101 40 s.mark 98 98 101 400000 s.pbyt 98 98 101 200 s.prex 98 98 101 10000 s.prty 98 98 101 40000 s.pwi 98 98 101 200000 s.rabt 98 98 101 100000 s.rbt 98 98 101 2000 s.ring 98 98 101 40000 s.rto 98 98 101 10 s.sprc 98 98 101 20 s.st 98 98 101 100 s.term 98 98 101 20000 s.xte 98 98 101 257 slblbl 394 394 790 2000 smark 101 101 1684 10000 sncmdr 169 169 1505 1954 2040 3465 sndcmd 1505 405 1500 1505 2104 3465 sndfr 1504 411 1504 100000 sndisc 166 166 595 834 913 1119 1183 1424 1628 1942 assm 01 06-26-89 14.681 x25_tables page 117 octal symbol references by sequence no. 200000 sndm 165 165 1938 105 sndout 101 101 2091 3620 sndrnr 1588 395 1588 3634 sndrt1 1592 1542 1589 1592 2305 sndsbm 1082 367 415 1082 2403 sndsmp 1136 371 1136 1772 sndua1 944 371 944 1775 sndua 945 363 367 415 945 10000 snfrmr 170 170 1161 400 snifr 174 174 1055 1349 1354 1405 1462 1985 2116 2158 2170 3384 237 snmlbl 389 389 787 40 snprej 177 177 2012 100 snprnr 176 176 2005 20 snprr 178 178 1355 2019 1000 snrej 173 173 1522 1972 2043 2000 snrnr 172 172 1596 1611 1965 2042 200 snrr 175 175 1559 1576 1614 1991 1998 20000 snsabm 168 168 672 848 885 1084 1097 1198 1377 1643 1950 2035 2038 40000 snsarm 167 167 710 880 993 1138 1158 1194 1373 1946 2021 2031 4000 snua 171 171 822 945 994 1032 1116 1441 1463 1958 2041 2170 snualk 1032 1028 1029 1032 1481 5025 sprej1 2007 2007 3498 5002 sprnr1 2000 2000 3499 5050 sprr1 2014 2014 3497 1 srec 101 101 528 1715 1792 4635 srej1 1967 1967 2043 3502 277 srjlbl 399 399 793 12 srmmsg 250 250 1944 2023 4612 srnr1 1960 1960 2042 3503 4757 srr1 1993 1993 2044 3500 1720 srt3i 897 868 897 10000 srts 101 101 499 1616 srtt3 868 357 850 868 174 sslabl 367 367 693 4536 ssout1 1944 1944 3507 1137 sspbst 677 677 888 65 ssstat 305 305 693 777747 sstate 136 136 579 768 1049 1165 1197 1228 1297 1317 1376 1456 1499 1501 1521 1539 1590 1592 1613 1645 1978 1213 sstest 693 688 693 777770 stat0 119 119 484 490 576 584 1185 1186 1834 1835 1836 2364 777767 stat1 120 120 577 2370 2624 777766 stat2 121 121 578 2372 3254 777765 stat3 122 122 579 2376 3257 400 stat 101 101 499 508 777751 state 134 134 578 589 882 887 893 992 1028 1047 1574 stdisc 834 829 834 4000 sterm 101 101 2199 6 stpchn 1761 4577 sua1 1956 1956 2041 3504 assm 01 06-26-89 14.681 x25_tables page 118 octal symbol references by sequence no. 2646 suakst 1241 1235 1241 1887 204 sulabl 371 371 730 71 sustat 309 309 730 1246 sustte 715 715 883 998 2050 susua 986 363 986 1322 sutest 730 727 730 4 sxmit 101 101 2197 777756 t1 129 129 593 675 713 825 876 916 996 1072 1100 1124 1142 1168 1201 1244 1307 1345 1381 1642 1658 1705 2051 2377 3742 t1nor 1656 411 1656 400 t1rec 153 153 565 1045 1245 1260 1340 1392 1552 2056 2133 2826 2317 t1sabm 1095 367 415 1095 2322 t1sbmg 1096 967 1096 3062 t1stch 1336 381 1336 3137 t1stou 1351 1351 1356 777755 t3 130 130 890 2379 2112 t3bcrd 1000 986 1000 1020 151 t3labl 361 361 654 1667 t3sbm 885 879 885 53 t3stat 299 299 654 1701 t3sts 890 874 890 2274 t3t1ln 1070 363 1070 1021 t3tat 637 637 895 1101 t3test 654 649 654 1001 4470 temclr 1917 1905 1906 1913 1917 2123 2142 2143 7531 temups 3370 1876 3109 3117 3332 3334 3350 3364 3370 3432 100 term 101 101 605 644 684 722 756 4246 testst 1833 599 638 678 716 750 1686 1833 4265 testwt 1839 1834 1839 40 tfhang 96 96 480 489 496 514 1772 1833 4 tfkpar 96 96 2405 100 tflisn 96 96 493 515 1772 40 tfwrd1 1833 480 489 493 496 514 515 1772 1833 0 tfwrd2 1833 480 489 493 496 514 515 1772 1833 42 tibx.1 181 107 108 109 110 111 112 113 114 115 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 144 164 181 0 tibx.2 117 107 108 109 110 111 112 113 114 115 117 1 tibx.3 181 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 144 164 181 42 tibxsz 181 107 109 111 113 115 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 144 164 181 483 3304 tidisc 1418 385 1418 767 timeds 614 599 614 1403 timelk 759 750 759 4213 timeo 1813 614 651 687 729 759 1813 1320 timesu 729 716 729 1000 timesw 154 154 594 674 712 826 871 878 891 915 932 997 1035 1071 1099 1123 1140 1156 1191 1202 1243 1286 1303 1306 1380 1399 1556 1641 1657 1708 1815 assm 01 06-26-89 14.681 x25_tables page 119 octal symbol references by sequence no. 2049 2050 2000 timet3 155 155 566 652 877 892 988 1036 1818 2403 tisarm 1135 385 1135 5720 t.a000 2381 2240 2254 2381 5721 t.a001 2382 2247 2263 2382 5722 t.a002 2383 2319 2322 2330 2383 5723 t.a003 2384 2339 2351 2384 26 t.dcp 96 96 3011 36 t.flg3 96 96 2397 5 t.icp 96 96 2424 2877 3052 3074 3084 12 t.ocp 96 96 3176 3520 3529 3539 3552 13 t.ocur 96 96 3177 3521 3530 14 t.olst 96 96 3178 3522 3531 30 t.sfcm 96 96 2399 1427 tmlk 770 760 766 770 1202 tmss 687 678 687 1073 tmt3 651 638 651 10 trcoff 148 148 580 2726 trplms 1274 1272 1274 7771 tst010 3551 3547 3551 7772 tst020 3552 3550 3552 7775 tst030 3555 3555 3559 10000 tst040 3557 3553 3557 7756 tstocp 3545 1983 2122 2125 3545 3556 7763 tstsx3 3545 3545 3557 143 ua 200 200 254 2576 uaigfr 1214 381 1214 22 uamsg 254 254 1956 777745 uaoffs 138 138 1043 1283 1302 1346 1402 1553 1909 2125 2127 2168 3247 6066 uap 2499 2499 2578 777743 upobuf 140 140 1901 1902 1903 3379 5744 valfrm 2421 618 648 691 726 763 2421 2602 5773 vfm000 2439 2436 2439 6014 vfm020 2456 2456 2619 6061 vfm030 2493 2490 2493 6102 vfm040 2511 2508 2511 6115 vfm050 2522 2519 2522 6171 vfm055 2566 2564 2566 6220 vfm070 2589 2586 2589 6173 vfmbif 2568 2565 2568 6227 vfmree 2596 2425 2431 2438 2596 6230 vfmret 2597 2465 2495 2497 2498 2512 2515 2525 2526 2533 2535 2538 2553 2557 2559 2567 2590 2592 2593 2595 2597 7135 vfmsiz 3094 2612 3072 3079 3094 777762 v.r 125 125 1039 1459 1544 1547 2180 2829 2935 3252 777763 v.s 124 124 1038 1238 1242 1324 1325 1341 1342 1395 1550 2052 2055 2135 2137 2828 2936 3251 373 whgclb 419 419 770 135 whstgc 350 350 770 5156 wret 2045 1939 1943 1947 1951 1955 1959 1966 1973 1992 1999 2006 2013 2020 2045 assm 01 06-26-89 14.681 x25_tables page 120 octal symbol references by sequence no. 4326 writ1a 1873 1871 1873 4336 writa2 1876 1798 1868 1872 1876 4345 writa3 1878 1875 1878 4320 write1 1871 1799 1871 5172 write2 2049 2047 2049 5203 write3 2052 2049 2052 5224 write4 2058 2056 2058 5231 write5 2060 2058 2060 5517 write 2193 2033 2045 2193 4277 writeo 1865 750 1717 1865 4361 wrtret 1882 1870 1882 4363 wrtrrt 1883 1867 1883 406 x25str 480 87 480 0 x25tbs 85 85 105 40 xmitsw 150 150 534 560 1714 1762 1783 1850 1867 1896 1932 2114 2195 20000 xte 101 101 606 645 685 723 757 3760 xtesta 1680 606 645 685 723 757 1680 777757 xx 128 128 1274 1341 2058 2060 2827 49085 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