assm 01 09-28-82 16.891 ibm3270_tables -- tables for ibm 3270 terminals page 1 preface program break 1210 common length 0 v count bits 5 primary symdef entry st3270 64 secondary symdef entry .chain 0 block length symref 1 bscrd 2 bscwt 3 bscbad 4 bsccki 5 bsccko 6 bscswa 7 bsctst 10 bscwtr end of binary card 00000001 11 bshang 12 cvaddr end of binary card 00000002 assm 01 09-28-82 16.891 ibm3270_tables -- tables for ibm 3270 terminals page 2 1 ****************************************************** 2 * * 3 * * 4 * copyright (c) 1972 by massachusetts institute of * 5 * technology and honeywell information systems, inc. * 6 * * 7 * * 8 ****************************************************** 9 10 lbl ,ibm3270_tables assm 01 09-28-82 16.891 ibm3270_tables -- tables for ibm 3270 terminals page 3 13 pcc off 16 00000 17 i3270 null 18 00000 19 start i3270,,w3ibmm090000 20 21 22 symdef st3270 23 24 symref bsctst bisync test state handler 25 symref bscwt bisync write routine 26 symref bscwtr bisync write routine with rcv mode set 27 symref bscrd bisync read routine 28 symref bsccki bisync check input message routine 29 symref bsccko bisync check output message routine 30 symref bscswa bisync ack switching routine 31 symref bshang when line hangs up 32 symref bscbad for reporting bad blocks 33 symref cvaddr convert tib ext address 34 00012 36 csbits assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 4 control and status bits control bits 000001 c.srec bool 000001 set receive mode 000002 c.rrec bool 000002 reset receive mode 000004 c.sxmt bool 000004 set transmit mode 000010 c.rxmt bool 000010 reset transmit mode 000020 c.sdtr bool 000020 set data terminal ready 000040 c.rdtr bool 000040 reset data terminal ready 000100 c.ssup bool 000100 set supervisory transmit mode 000100 c.stre bool 000100 set tally runout enable (hdlc) 000200 c.rsup bool 000200 reset supervisory transmit mode 000200 c.rtre bool 000200 reset tally runout enable (hdlc) 000400 c.stat bool 000400 store status 001000 c.sbrk bool 001000 send line break 002000 c.smrk bool 002000 store marker status 004000 c.strm bool 004000 store terminate status 010000 c.srqs bool 010000 set request to send 020000 c.rrqs bool 020000 reset request to send 040000 c.pad bool 040000 unused 100000 c.cmd bool 100000 indicates cmd subop 400000 c.scmd bool 400000 indicates supplementary cmd subop the following must be used in the optional fields to the cmd (or contrl) macros in the control_tables 000001 c.scrq bool 000001 set call request 000002 c.rcrq bool 000002 reset call request assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 5 control and status bits status bits 000001 s.cd bool 000001 carrier detect 000002 s.cts bool 000002 clear to send 000004 s.dsr bool 000004 data set ready 000010 s.sprc bool 000010 supervisory receive mode 000020 s.st bool 000020 status requested 000040 s.mark bool 000040 marker status 000100 s.term bool 000100 terminate status 000200 s.prex bool 000200 pre-exhaust 000400 s.brk bool 000400 line break received 001000 s.brch bool 001000 break character received 002000 s.ring bool 002000 ring 004000 s.exh bool 004000 exhaust status 010000 s.prty bool 010000 parity error 010000 s.fcse bool 010000 frame check sequence error (hdlc) 020000 s.xte bool 020000 transfer timing error 040000 s.pwi bool 040000 acu power indicator 100000 s.dlo bool 100000 acu data line occupied 200000 s.acr bool 200000 acu abandon call and retry 400000 s.ads bool 400000 acu raised data set status the following four bits share the values of acu status but can never be misinterpreted. 040000 s.rto bool 040000 receive time out (bsc) 040000 s.isd bool 040000 idle state detect (hdlc) 100000 s.rbt bool 100000 receive block termination (bsc & hdlc) assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 6 control and status bits 200000 s.bmk bool 200000 marker status (bsc) 200000 s.rabt bool 200000 receive abort (hdlc) 400000 s.bdmk bool 400000 delayed marker status (bsc) 400000 s.pbyt bool 400000 partial byte (hdlc) bits in common between standard status 000177 s.tib bool 000177 and tib status dataset status bits in standard status 000017 s.dss bool 000017 and tib status asynchronous configuration bits 000001 fg.icw bool 000001 icw (two send icw's) 000002 fg.lpr bool 000002 lateral parity receive 000004 fg.lps bool 000004 lateral parity send 000010 fg.lpo bool 000010 lateral parity odd 000020 fg.5bt bool 000020 5-bit character mode 000040 fg.6bt bool 000040 6-bit character mode 000100 fg.7bt bool 000100 7-bit character mode 000200 fg.8bt bool 000200 8-bit character mode 000400 fg.beb bool 000400 ebcdic mode (bsc) 000400 fg.itf bool 000400 interfame time fill (hdlc) 001000 fg.btr bool 001000 transparent mode (bsc) 002000 fg.cct bool 002000 enable cct 00012 37 tconst assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 7 flag and control bit definitions 000001 gbf6up bool 000001 cs up global switch device types 000001 ttasci equ 1 ascii terminals, cdi, tty 33, 35, 37, etc 000002 tt1050 equ 2 ibm 1050 000003 tt2741 equ 3 ibm 2741, trendata, dura, etc. 000004 ttards equ 4 ards, tektronix 000005 ttsync equ 5 general sync devices 000006 ttg115 equ 6 remote computer interface, g115 000007 ttbsc equ 7 binary synchronous communications 000010 tt202c equ 8 ascii on 202c6 modem 000011 ttvip equ 9 vip terminal 000020 ttpvip equ 16 polled vip 000021 ttx25l equ 17 x.25 link access procedure (lap) 000023 ttcolt equ 19 colts (online t&d executive) signal types 000113 quit bool 113 dia cmd, break received 000100 dialup bool 100 dia cmd, accept new terminal 000101 hangup bool 101 dia cmd, disconnected line 000114 wrutim bool 114 dia cmd, wru timeout 000105 sndout bool 105 dia cmd, send output 000120 acupwi bool 120 dia cmd, no power to acu 000121 acudlo bool 121 dia cmd, data line occupied 000122 acuacr bool 122 dia cmd, dial out failed 000123 acung bool 123 dia cmd, request for acu is invalid control types 000001 srec equ c.srec set receive mode 000002 rrec equ c.rrec reset receive 000004 sxmit equ c.sxmt set xmit mode 000010 rxmit equ c.rxmt reset xmit 000020 sdtr equ c.sdtr set data terminal ready 000040 rdtr equ c.rdtr reset dtr 000100 ssup equ c.ssup set supervisory xmit 000200 rsup equ c.rsup reset supervisory xmit 000400 stat equ c.stat store status 001000 sbrk equ c.sbrk send line break 002000 smark equ c.smrk send marker status 004000 sterm equ c.strm send terminate status 010000 srts equ c.srqs set request to send 020000 rrts equ c.rrqs reset request to send 000001 scrq equ c.scrq set call request 000002 rcrq equ c.rcrq reset call request 000100 stroe equ c.stre set tally runout enable (hdlc) 000200 rtroe equ c.rtre reset tally runout enable (hdlc) assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 8 flag and control bit definitions status bits 000001 cd equ s.cd carrier detect 000002 cts equ s.cts clear to send 000004 dsr equ s.dsr data set ready 000010 suprec equ s.sprc supervisory receive 000020 st equ s.st status requested 000400 break equ s.brk line break received 001000 brkchr equ s.brch break char received 002000 ring equ s.ring ring 000100 term equ s.term terminate status 000040 marker equ s.mark marker status 004000 exh equ s.exh exhaust status 000200 prexh equ s.prex pre-exhaust status 010000 parity equ s.prty parity error 020000 xte equ s.xte transfer timing error 040000 pwi equ s.pwi power indicator on acu 100000 dlo equ s.dlo data line occupied (acu) 400000 ads equ s.ads dialed station has answered data set is in data mode (acu) 200000 acr equ s.acr abandon call and retry (acu) 040000 rcvto equ s.rto rcv time out 100000 bscrcv equ s.rbt bsc terminate 200000 bscmrk equ s.bmk bsc marker 400000 bscdmk equ s.bdmk bsc delayed marker 010000 fcserr equ s.fcse frame check sequence error (hdlc) 040000 idlesd equ s.isd idle state detect (hdlc) 100000 rcvtrm equ s.rbt receive terminate (hdlc) 200000 rcvabt equ s.rabt receive abort (hdlc) 400000 parbyt equ s.pbyt partial byte (hdlc) assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 9 flag and control bit definitions output types 000401 adprtr bool 401 insert printer addr string 000402 adkybd bool 402 insert keyboard addr string 000403 outmsg bool 403 insert output msg 000404 repeat bool 404 insert next char n times various characters matched and sent 000064 eoa bool 64 eoa from/to 2741/1050 000001 minus bool 1 minus char from 1050 000055 ibmnl bool 55 cr nl from/to 2741/1050 000075 ibmpad bool 75 2741/1050 pad character(idle) 000074 ibmeot bool 74 2741/1050 eot char 000174 eotshf bool 174 eot w/case shift 000035 ibmbs bool 35 backspace from 2741 000057 ibmtab bool 57 tab from 2741 000042 ibmsl bool 42 2741 slash 000024 ibm0 bool 24 2741 zero 000044 ibm9 bool 44 2741 nine 000076 ibmprf bool 76 2741 prefix code 000003 ibmpls bool 3 2741 plus sign 000034 ibmup bool 34 2741 upshift 000037 ibmdwn bool 37 2741 downshift 000012 nl bool 12 ascii new-line 000015 cr bool 15 ascii carriage return 000000 pad bool 0 ascii pad char 000020 dle bool 20 ascii data link escape 000004 eot bool 4 ascii end of transmission 000033 esc bool 33 ascii escape char 000014 ff bool 14 ascii form feed char 000011 tab bool 11 ascii tab char 000010 bs bool 10 ascii backspace 000040 space bool 40 ascii space 000005 awru bool 5 ascii "who are you?" 000000 null bool 0 nothing 000006 ack bool 6 ascii ack 000025 nak bool 25 ascii nak 000001 soh bool 1 ascii start of header 000026 syn bool 26 ascii syn character 000002 stx bool 2 ascii start of text char 000003 etx bool 3 ascii end of text char 000007 bel bool 007 ascii bell character 000150 h bool 150 ascii h (esc mtr on) 000154 l bool 154 ascii l (used by vip for ff) 000161 q bool 161 ascii q (used by vip for quit) 000100 atchar bool 100 ascii at sign (used to mark reset-read) 000777 nochar bool 777 used in cmt to match no character scan subop types assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 10 flag and control bit definitions 000501 match bool 501 match the char exactly 000502 search bool 502 search until match 000503 ignore bool 503 skip to next char, block check unchanged 000504 sbcc bool 504 start the bcc computation 000505 endchn bool 505 point to last character in chain 000506 cbcc bool 506 compare current with bcc char 000507 cmask bool 507 compare char with mask 000510 rescan bool 510 reset scan position to first char in chai 000511 strlrc bool 511 start lrc computation 000512 outlrc bool 512 insert lrc into chain 000513 cmplrc bool 513 compare lrc accumulation vs current char 000514 seteom bool 514 set last buffer in message flag ( for bld 000515 replac bool 515 replace current char 000516 cmplst bool 516 compare current vs list of chars for equa 000517 movchr bool 517 move current char to tib extension 000520 movmsk bool 520 movchr with masking of current char 000521 count bool 521 count number of chars scanned 000522 serch2 bool 522 search for one of two chars 000523 setbit bool 523 turn on bits in current char 000524 offbit bool 524 turn off bits in current char 000525 chktrm bool 525 check the sync termination char 000526 mvlst2 bool 526 move last two chars to tib ext 000527 nxtchr bool 527 update block check and skip to next char 00012 38 tib assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 11 terminal information block (tib) 000000 t.stat equ 0 holds current line status 000001 t.flg equ t.stat+1 flag word 000002 t.flg2 equ t.flg+1 second word of flags 000003 t.cur equ t.flg2+1 current address in control table 000004 t.line equ t.cur+1 10 bit line number 000005 t.icp equ t.line+1 first buffer in input chain 000006 t.ilst equ t.icp+1 last buffer in input chain 000007 t.icpl equ t.ilst+1 count of buffers in icp chain 000010 t.icch equ t.icpl+1 address of next input character 000011 t.elnk equ t.icch+1 link to tib extension 000011 t.rcp equ t.elnk replay chain pointer (share t.elnk) 000012 t.ocp equ t.elnk+1 addr of output chain from cs 000013 t.ocur equ t.ocp+1 addr of current output buffer 000014 t.olst equ t.ocur+1 addr of last buffer in output chain 000015 t.occh equ t.olst+1 addr of next output character 000016 t.ocnt equ t.occh+1 count of buffers in t.ocur 000017 t.type equ t.ocnt+1 line type 000020 t.time equ t.type+1 time at which next timeout will occur 000022 t.reta equ t.time+2 return address from calsub 000023 t.dcwa equ t.reta+1 addr of dcw list to 'execute' 000024 t.dcwl equ t.dcwa+1 length of dcw list 000025 t.echo equ t.dcwl+1 echo buffer address 000026 t.dcp equ t.echo+1 addr of message chain for cs 000027 t.dlst equ t.dcp+1 last buffer in messge chain for cs 000030 t.ftse equ t.dlst+1 first time slot entry in lsla table assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 12 terminal information block (tib) 000030 t.sfcm equ t.ftse pointer to sfcm for hsla lines 000031 t.bcnt equ t.ftse+1 counting temporary 000032 t.brkp equ t.bcnt+1 pointer to current break list 000033 t.pos equ t.brkp+1 current carriage position 000034 t.char equ t.pos+1 pending line control char (lsla only) 000034 t.ecch equ t.char address of current echo char (hsla only) 000035 t.cntr equ t.char+1 counter for control tables 000036 t.flg3 equ t.cntr+1 third word of flags 000037 t.dtp equ t.flg3+1 pointer to delay table for this line 000040 t.frmc equ t.dtp+1 framing chars (2 chars) 000041 t.dcpl equ t.frmc+1 number of buffers in dcp chain 000042 t.scll equ t.dcpl+1 screenline length left, for echo neg. 000043 t.sncc equ t.scll+1 echo negotiation sync ctr. 000044 t.entp equ t.sncc+1 echo negotiation break table ptr 000045 t.ifch equ t.entp+1 input flow control characters 000046 t.ofch equ t.ifch+1 output flow control characters 000047 t.omct equ t.ofch+1 output message count (for flow control) 000050 t.itim equ t.omct+1 time of last call to inproc (2 words) 000052 t.metr equ t.itim+2 address of metering area 000053 t.leng equ t.metr+1 length of a tib ******************************** * t.stat bits ******************************** 000001 tsfcd bool 000001 carrier detect 000002 tsfcts bool 000002 clear to send 000004 tsfdsr bool 000004 data set ready assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 13 terminal information block (tib) 000010 tsfsrc bool 000010 supervisory receive 000020 tsfst bool 000020 store status 000040 tsfmrk bool 000040 send marker status 000100 tsftrm bool 000100 send terminate status 000200 tsfrcv bool 000200 receive mode 000400 tsfxmt bool 000400 transmit mode 001000 tsfbrk bool 001000 send line break 002000 tsfdtr bool 002000 data terminal ready 004000 tsfsxt bool 004000 supervisory transmit 004000 tsftre bool 004000 tally runout enable (hdlc) 010000 tsfrts bool 010000 request to send 020000 tsfcrq bool 020000 acu call request ******************************** * tib flags -- t.flg ******************************** 000001 tfwrit bool 000001 output chain present 000002 tfbel bool 000002 send bell as next echoed character 000004 tffdpx bool 000004 full duplex mode 000010 tfkybd bool 000010 keyboard addressed 000020 tfprtr bool 000020 printer addressed 000040 tfhang bool 000040 hangup this line 000100 tflisn bool 000100 answer the phone 000200 tfquit bool 000200 send nl on line break 000400 tfctrl bool 000400 do kybd/printer addressing 001000 tflfec bool 001000 do lf echo on cr 002000 tfcrec bool 002000 do cr echo on lf assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 14 terminal information block (tib) 004000 tftbec bool 004000 do space echo on tab 010000 tfwabt bool 010000 do write abort 020000 tfauto bool 020000 this is hsla autobaud line 040000 tfeotx bool 040000 eot expected from 2741 100000 tfisus bool 100000 input suspended 200000 tfecpx bool 200000 echoplex mode 400000 tfosus bool 400000 output suspended ******************************** * second word of tib flags ******************************** 000001 tfxhld bool 000001 hold transmit on 000002 tfdild bool 000002 terminal is dialed up 000004 tfercv bool 000004 enter receive mode 000010 tfrabt bool 000010 do read abort 000020 tfacu bool 000020 do dial out 000040 tfifc bool 000040 input flow control mode 000100 tfofc bool 000100 output flow control mode 000200 tfupsf bool 000200 terminal is upshifted now 000400 tfrply bool 000400 replay mode 001000 tfrpon bool 001000 replay is occurring now 002000 tfplit bool 002000 polite mode 004000 tfblak bool 004000 asynchronous block acknowledgement 010000 tfcrcv bool 010000 'control' receive mode 020000 tfmrcv bool 020000 'message' receive mode 040000 tffrmi bool 040000 frame mode 100000 tffip bool 100000 frame in progress assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 15 terminal information block (tib) 200000 tfsftr bool 200000 terminal is shifting device 400000 tfpfnl bool 400000 line is in prefixnl mode ********************************* * third word of tib flags ********************************* 000001 tfbkpt bool 000001 line is stopped at breakpoint 000002 tfitim bool 000002 timeout if input stops 000004 tfkpar bool 000004 keep parity bits 000010 tfecho bool 000010 echoing has priority over output (lsla) 000020 tfbral bool 000020 break on all characters 000040 tfsked bool 000040 input timeout routine scheduled 000100 tf8in bool 000100 don't strip input parity 000200 tf8out bool 000200 don't strip output parity 000400 tfoddp bool 000400 odd parity 002000 tfsoip bool 002000 suspension of output in progress 004000 tforp bool 004000 output resume pending (waiting until tro) ********************************* * redefined tib flags in t.flg ********************************* 000020 tfdlup equ tfprtr line is on dialup modem 00012 39 meters assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 16 system-wide meters 000720 .mdilc set 464 cumulative no. of channels dialed 000722 .mdilu set 466 updates of .mdilc 000724 .mspav set 468 cumulative space available 000726 .mspau set 470 updates of .mspav 000730 .mimbx set 472 cumulative number of mbxes in use 000732 .mimbu set 474 updates of .mimbx 000734 .mndil set 476 current no. of channels dialed 000735 .malof set 477 number of space allocation failures 000736 .mdias set 478 abnormal dia status 000737 .mpool set 479 total size of buffer pool (in words) 000740 .mbufa set 480 number of buffer allocations 000742 .mbfpa set 482 number of buffers pre-allocated 000744 .mupab set 484 used a pre-allocated buffer 000746 .mpanf set 486 no pre-allocated buffer available 000030 .mleng equ .mpanf+2-.mdilc length of system-wide meters assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 17 per-channel meters meters for all channels 000000 m.dql equ 0 cumulative length of dia request queue 000002 m.dqu equ m.dql+2 updates of m.dql 000004 m.nst equ m.dqu+2 cumulative no. of pending status 000006 m.nsu equ m.nst+2 updates of m.nst 000010 m.over equ m.nsu+2 output overlaps 000011 m.par equ m.over+1 parity errors 000012 m.ssqo equ m.par+1 software status queue overflows 000013 m.hsqo equ m.ssqo+1 hardware status queue overflows 000014 m.inaf equ m.hsqo+1 input allocation failures 000015 m.cql equ m.inaf+1 current length of dia request queue 000016 m.exh equ m.cql+1 exhaust status 000020 m.xte equ m.exh+2 software xte status 000022 m.leng equ m.xte+2 length of common meters (must be even) additional meters for asynchronous channels 000022 m.prex equ m.leng pre-exhaust status 000024 m.ebof equ m.prex+2 echo buffer overflows 000026 m.quit equ m.ebof+2 bell-quits 000030 m.asyl equ m.quit+2 total length of asynchronous meters (must be even) additional meters for synchronous channels 000022 m.nim equ m.leng number of input messages 000024 m.iml equ m.nim+2 cumulative length of input 000026 m.mini equ m.iml+2 minimum length of input message 000027 m.maxi equ m.mini+1 maximum length of input message assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 18 per-channel meters 000030 m.nom equ m.maxi+1 number of output messages 000032 m.oml equ m.nom+2 cumulative length of output 000034 m.mino equ m.oml+2 minimum length of output message 000035 m.maxo equ m.mino+1 maximum length of output message 000036 m.cnt1 equ m.maxo+1 first type of counter 000040 m.cnt2 equ m.cnt1+2 second type of counter 000042 m.cnt3 equ m.cnt2+2 third type of counter 000044 m.cnt4 equ m.cnt3+2 fourth type of counter 000046 m.cnt5 equ m.cnt4+2 fifth type of counter 000050 m.cnt6 equ m.cnt5+2 sixth type of counter 000052 m.cnt7 equ m.cnt6+2 seventh type of counter 000054 m.cnt8 equ m.cnt7+2 eighth type of counter 000056 m.synl equ m.cnt8+2 total length of synchronous meters 00012 40 buffer assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 19 buffer format 000000 bf.nxt equ 0 address of next buffer in chain 000001 bf.siz equ bf.nxt+1 size of buffer (bits0-2) 000001 bf.flg equ bf.nxt+1 flags (bits3-8) 000001 bf.tly equ bf.nxt+1 tally of buffer (bits9-17) 000002 bf.dta equ bf.siz+1 start of data 000040 bufsiz equ 32 buffer size 000074 bufnch equ bufsiz*2-4 number of data characters in a buffer 000050 bufmax equ 40 maximum number of input buffers 000012 bufpre equ 10 number of buffers to trigger pre-exhaust 000005 bufshf equ 5 number of bits shifted to divide by bufsi 000024 bufres equ 20 number of reserved buffers 700000 bufsmk bool 700000 mask to isolate bf.siz 077000 buffmk bool 077000 mask to isolate bf.flg 000777 buftmk bool 000777 mask to isolate bf.tly 000002 bufthr equ 2 threshold at which to send send_output 000400 bfmsiz equ 256 maximum buffer size in words ******************************** * buffer flags ******************************** 040000 bfflst bool 040000 last buffer in message 020000 bffbrk bool 020000 buffer contains break character 010000 bfftra bool 010000 throw away this buffer when done inputtin 004000 bffrpy bool 004000 buffer is last in replay chain 002000 bffctl bool 002000 buffer consists of keybd/prtr control 001000 bffhld bool 001000 hold output buffer until dmpout 00012 41 bscdat assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 20 bsc symbol definitions 00012 tibex ack0,char /* ack0 value */ 00012 tibex ack1,char /* ack1 value */ 00012 tibex tiback,char /* current ack value */ 00012 tibex enq,char /* enq value */ 00012 tibex tibnak,char /* nak value */ 00012 tibex tibeot,char /* eot value */ 00012 tibex rvi,char /* rvi value */ 00012 tibex wack,char /* wack value */ 00012 tibex etb,char /* etb value */ 00012 tibex chartb,word /* address of table define characters for 00012 tibex stattb,word /* address of state transiion table */ 00012 tibex nakcnt,word /* count of naks received during write */ 00012 tibex naklmt,word /* limit of naks during write */ 00012 tibex enqcnt,word /* count of bad responses or timeouts dur 00012 tibex result,word /* final answer on message scans */ /* ... possible values are: */ 000000 resinc equ 0 /* ... message incomplete */ 000001 resnak equ 1 /* ... message should be nakked */ 000002 reseot equ 2 /* ... message was eot */ 000003 resenq equ 3 /* ... message was enq */ 000004 resack equ 4 /* ... good message */ 000005 resnul equ 5 /* ... no data at all */ 000006 resntr equ 6 /* ... non-transparent msg in trans m 00012 tibex ctlop,word /* start of 4 words for linctl */ 00012 tibex ctlvl1,word 00012 tibex ctlvl2,word 00012 tibex ctlvl3,word 00012 tibex bidlmt,word /* maximum times to bid for line */ 00012 tibex bidcnt,word /* count of bid tries */ 00012 tibex cfgrmd,word /* rmode bits for reconfig */ 00012 tibex cfgsmd,word /* smode bits for reconfig */ 00012 tibex ttdtim,word /* time interval between ttds */ 00012 tibex ttdlmt,word /* maxinum number to send */ 00012 tibex ttdcnt,word /* number sent so far */ 00012 tibex polad1,word /* 3 words for polling address */ 00012 tibex polad2,word 00012 tibex polad3,word 00012 tibex testrt,word /* address of extra test state handler */ 00012 tibex exflg1,word /* a word of flags */ 000001 dialed bool 000001 /* set when dialup has been signalled */ 000002 naksw bool 000002 /* nak required */ 000004 nakksw bool 000004 /* indicates receive nakked last message 000010 codasc bool 000010 /* set if using ascii code */ 000020 codebc bool 000020 /* set if using ebcdic code */ 000040 trnon bool 000040 /* set if tranparency is on */ 000100 trnoff bool 000100 /* set if transparency is off */ 000200 wacksw bool 000200 /* indicates wack sent or received on las assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 21 bsc symbol definitions 000400 datrcv bool 000400 /* indicates data was read during write * 001000 alwbid bool 001000 /* set if line bid should be accepted */ 002000 cfgpnd bool 002000 /* reconfiguration is pending */ 004000 cfgok bool 004000 /* its ok to reconfigure now */ 010000 rflag bool 010000 /* to distinguish between 'write' and 'wr 020000 ttdsw bool 020000 /* ttd was just sent */ 040000 ntrsw bool 040000 /* set while send non-trans block in tran 100000 rvisw bool 100000 /* rvi has been used as ack this transmis 200000 needrv bool 200000 /* ack this msg with rvi if possible */ 400000 ctlmsg bool 400000 /* indicates first output buffer is ctl m 00012 tibex exflg2,word /* second word of flags */ 000001 lookot bool 000001 /* set if read subr should watch for writ 000002 gotot bool 000002 /* read terminated by write call */ 000004 timout bool 000004 /* timeout waiting for input */ 000010 ib3270 bool 000010 /* ibm 3270 protocol to be used */ 000020 polpnd bool 000020 /* poll pending on channel */ 000040 pollok bool 000040 /* ok to poll now */ 000100 selop bool 000100 /* select in progress */ 000200 bool 000200 000400 pollsw bool 000400 /* last message sent was poll */ 001000 autopl bool 001000 /* automatic poll mode enabled */ 002000 haspmd bool 002000 /* hasp protocol to be used */ 004000 master bool 004000 /* we are master (or primary) end */ 010000 outarv bool 010000 /* remember iwrite call occured (for hasp 020000 dialos bool 020000 /* can't send input over dia now (for has 040000 csreqa bool 040000 /* tell cs when current msg is sent (hasp 00012 tibex selad1,word 00012 tibex selad2,word 00012 tibex selad3,word /* hasp re-definitions */ 777754 hxmttm equ ttdtim /* hasp transmit time limit */ 777760 hcontm equ bidlmt /* hasp connect time limit */ 777752 hrcvtm equ ttdcnt /* hasp receive time limit */ 777743 wabmsk equ selad1 /* array of wait-a-bit masks */ 777742 hblkno equ selad2 /* bcb of block cs is interested in */ 777741 wrpcnt equ selad3 /* sync-blocks needed before xfer resumes 020000 syswab equ ttdsw /* system wait-a-bit bit */ 100000 msgcmp equ rvisw /* output arrived during system wait-a-bi 000467 wrkch1 equ wack /* temporary work character */ 000470 wrkch2 equ etb /* " " " */ assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 22 bsc symbol definitions /* ascii char values */ 000060 aack0 bool 60 000061 aack1 bool 61 000005 aenq bool 5 000025 anak bool 25 000004 aeot bool 4 000074 arvi bool 74 000073 awack bool 73 000027 aetb bool 27 /* ebcdic char values */ 000160 eack0 bool 160 000141 eack1 bool 141 000055 eenq bool 55 000075 enak bool 75 000067 eeot bool 67 000174 ervi bool 174 000153 ewack bool 153 000046 eetb bool 46 /* common char values */ 000037 itb bool 37 /* line status op-codes */ 000001 lstbdf equ 1 /* bid failed */ 000002 lstbbk equ 2 /* attempt to write bad block */ 000003 lstrvi equ 3 /* rvi recieved */ 000004 lstnak equ 4 /* excessive naks */ 000005 lstrwr equ 5 /* reporting result of write status */ 000006 lstwrc equ 6 /* write completed */ 000007 lstwkm equ 7 /* ibm3270 wacked message */ 000010 lsteot equ 8 /* got eot in response to output */ 000011 lstabo equ 9 /* sent eot because too many timeouts or 000012 lstslf equ 10 /* select failed */ 000013 lstwck equ 11 /* wack in response to select */ 000014 lstnko equ 12 /* too many naks on output */ 000015 lsthin equ 13 /* hasp initialization complete */ /* line control op-codes */ 000001 lctbid equ 1 /* set bid retry limit */ 000002 lctabd equ 2 /* allow line bids now */ 000003 lctcfg equ 3 /* reconfigure */ 000004 lctttd equ 4 /* set ttd parameters */ 000005 lcttwr equ 5 /* test write status */ 000006 lct327 equ 6 /* set ibm3270 mode */ assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 23 bsc symbol definitions 000007 lctpla equ 7 /* set polling address */ 000010 lctpol equ 8 /* start a polling operation */ 000011 lctsla equ 9 /* set selection address */ 000012 lctsta equ 10 /* stop auto polling */ 000013 lctmst equ 11 /* set master or slave mode */ 000014 lcthsp equ 12 /* set hasp mode */ 000015 lctnak equ 13 /* set nak limit */ 000016 lcthtm equ 14 /* set hasp time limits */ 43 44 000377 45 epad bool 377 000062 46 esyn bool 062 47 48 49 /* input scan control strings */ 50 00012 51 inenq chstr (rescan,match,enq) 00014 52 ineot chstr (rescan,match,tibeot) 00016 53 inack chstr (rescan,match,dle,ignore,match,tiback) 00022 54 innak chstr (rescan,match,tibnak) 00024 55 indisc chstr (rescan,match,dle,ignore,match,tibeot) 00030 56 inwack chstr (rescan,match,dle,ignore,match,wack) 00034 57 inrvi chstr (rescan,match,dle,ignore,match,rvi) 58 59 /* output bldmsg control strings */ 60 00040 61 otack chstr (dle,tiback,seteom) 00042 62 otnak chstr (tibnak,seteom) 00044 63 otenq chstr (enq,seteom) 00046 64 oteot chstr (tibeot,seteom) end of binary card 00000003 00050 65 otdisc chstr (dle,tibeot,seteom) 00052 66 otwack chstr (dle,wack,seteom) 00054 67 otttd chstr (stx,enq,seteom) 00056 68 otrvi chstr (dle,rvi,seteom) 000044 69 otpoll equ otenq 00060 70 otetpd chstr (tibeot,epad,esyn,esyn,esyn,esyn) 71 assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 24 3270 polling and input 73 ************************************************************************ 74 * 75 * enter here for ibm 3270 terminal operation 76 * 77 ************************************************************************ 78 00064 79 st3270 clrlcf exflg1,naksw+nakksw+wacksw+ttdsw+ntrsw+rvisw+needrv 00067 80 clrlcf exflg1,ctlmsg 00072 81 clrlcf exflg2,pollok+polpnd 00075 82 setlcl testrt,testst /* so bisync uses my test state handler */ 83 84 ************************************************************************ 85 * 86 * wait for something to do 87 * 88 ************************************************************************ 89 00100 90 idle tstwrt gosel /* data to write, we can do a select */ 00102 91 tstlcf exflg2,polpnd,gopoll /* previoulsy asked to poll */ 00106 92 setlcf exflg2,pollok /* can accept a poll req now */ 00111 93 wait 0,idle,bsctst /* if output comes in, check for rvi */ 00115 94 status 0,dsr,bshang /* if we lose the line, all bets are off */ end of binary card 00000004 95 96 ************************************************************************ 97 * 98 * asked to start polling operation 99 * 100 ************************************************************************ 101 00121 102 gopoll unwind /* in case subr interrupted */ 00122 103 clrlcf exflg1,rvisw+nakksw 00125 104 clrlcf exflg2,pollok+polpnd+selop /* cant take poll req now */ 00130 105 setchr tiback,ack0 00132 106 setlcl nakcnt,0 /* initialize nak counter */ 00135 107 setlcl bidcnt,0 /* initialize bid timeout counter */ 00140 108 sndpol bldmsg otpoll,gopunt /* get enq for poll message */ 00143 109 calasm bldpol,polad1 /* add in device selection stuff */ 00147 110 bldmsg otetpd,gopunt 00152 111 setlcf exflg2,pollsw /* remember current message is poll */ 00155 112 sndmsg holdot 00156 113 calsub bscwtr /* write poll */ end of binary card 00000005 00160 114 dmpout 00161 115 pollwt setime 5 /* time limit for response */ 00163 116 calsub bscrd 00165 117 tstlcf exflg2,timout,pollto /* timed out */ 00171 118 tstlcf exflg1,naksw,nakpol /* got bad reply */ 00175 119 calasm bsccki /* check input message */ 00200 120 tstlcl result,reseot,poleot /* eot, end of pool seq */ 00204 121 tstlcl result,resack,pollgd /* got good reply */ assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 25 3270 polling and input 00210 122 tstlcl result,resenq,enqpol /* got enq, so repeat prevous response */ 00214 123 goto nakpol 124 125 ************************************************************************ 126 * 127 * got eot in response to poll 128 * 129 ************************************************************************ 130 00216 131 poleot tstwrt polend /* if data to write, stop polling */ 00220 132 tstlcf exflg2,autopl,conpol /* continue polling if autopoll */ 00224 133 polend sendin /* tell multics we stopped polling */ 00225 134 goto idle end of binary card 00000006 00227 135 conpol dumpin /* thrwo away eot */ 00230 136 setime 1 00232 137 wait gopoll,idle,bsctst /* tetry poll in 1 second */ 00236 138 status 0,dsr,bshang 139 140 ************************************************************************ 141 * 142 * got a good response in reply to a poll 143 * 144 ************************************************************************ 145 00242 146 pollgd meterm 0 /* meter input */ 00244 147 sendin /* ship it */ 00245 148 calsub bscswa /* switch acks */ 00247 149 sndack bldmsg otack,gopunt /* and acknowledge it */ 00252 150 setlcl nakcnt,0 /* start counting over */ 00255 151 clrlcf exflg1,nakksw /* previous msg not nak */ 00260 152 clrlcf exflg2,pollsw+autopl /* previous msg not poll */ 153 /* also, good msg stops auto polling */ 00263 154 goto sndmsg /* go send the ack just built */ 155 156 ************************************************************************ 157 * 158 * got bad reply to poll, send nak 159 * 160 ************************************************************************ 161 00265 162 nakpol meter2 m.cnt1,1 00270 163 dumpin /* throw away bad msg */ 00271 164 addlcl nakcnt,1 /* dont do this too often */ 00274 165 tstlcl nakcnt,10,manynk end of binary card 00000007 00300 166 sndnak bldmsg otnak,gopunt /* nak bad reply */ 00303 167 setlcf exflg1,nakksw /* last message was nak */ 00306 168 clrlcf exflg2,pollsw /* last message not poll */ 00311 169 goto sndmsg /* go send the nak */ 00313 170 manynk meter2 m.cnt4,1 assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 26 3270 polling and input 00316 171 setlcl ctlop,lstnak /* report error to multics */ 00321 172 calsub sndsta /* report status */ 00323 173 goto eotidl /* send an eot and idle */ 174 175 ************************************************************************ 176 * 177 * got enq reply, so repeat out last response */ 178 * 179 ************************************************************************ 180 00325 181 enqpol dumpin 00326 182 tstlcf exflg1,nakksw,sndnak 00332 183 tstlcf exflg2,pollsw,sndpol 00336 184 goto sndack 185 186 ************************************************************************ 187 * 188 * come here to send an eot to the 3270, and go back to the idle state 189 * 190 ************************************************************************ 191 00340 192 eotidl bldmsg oteot,gopunt 00343 193 holdot 00344 194 calsub bscwt end of binary card 00000008 00346 195 dmpout 00347 196 goto idle assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 27 3270 device selection and output 198 199 ************************************************************************ 200 * 201 * come here when output arrives 202 * 203 ************************************************************************ 204 00351 205 gosel setchr tiback,ack0 /* initialize ack */ 00353 206 clrlcf exflg2,pollok /* can't do polls now */ 00356 207 setlcf exflg2,selop /* mark it as select operation */ 00361 208 setlcl nakcnt,0 00364 209 setlcl bidcnt,0 00367 210 sndsel bldmsg otpoll,gopunt 00372 211 calasm bldpol,selad1 /* build select msg (looks like poll msg) */ 00376 212 bldmsg otetpd,gopunt 00401 213 holdot 00402 214 calsub bscwtr /* write/read subr in bsc_tables */ 00404 215 dmpout 216 00405 217 selwt setime 5 end of binary card 00000009 00407 218 calsub bscrd /* use bsc_tables subr to get response */ 00411 219 tstlcf exflg2,timout,pollto /* timeout, try again */ 220 221 ************************************************************************ 222 * 223 * look at response to select 224 * 225 ************************************************************************ 226 00415 227 inscan inrvi,tstwck 00420 228 goto gotrvi /* reverse interrupt */ 00422 229 tstwck inscan inwack,tstack 00425 230 goto selwck /* wack */ 00427 231 tstack inscan inack,pollto /* if not ack, unrecognizable */ 232 233 ************************************************************************ 234 * 235 * got an ack for the select, do some writing 236 * 237 ************************************************************************ 238 00432 239 calsub bscswa /* start with ack 1 */ 00434 240 dumpin /* don't need the ack */ 00435 241 goto chkout /* look at output message */ 242 243 ************************************************************************ 244 * 245 * reverse interrupt on select, we should poll now 246 * 247 ************************************************************************ assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 28 3270 device selection and output 248 00437 249 gotrvi dumpin 00440 250 calsub dmpall /* get rid of all of output message */ 00442 251 setlcl ctlop,lstrvi /* report rvi back */ 00445 252 calsub sndsta 00447 253 goto eotidl /* wait for poll order */ 254 255 ************************************************************************ 256 * 257 * wack in response to select, send eot, wait and try again 258 * 259 ************************************************************************ 260 00451 261 selwck meter2 m.cnt5,1 00454 262 dumpin end of binary card 00000010 00455 263 calsub dmpall 00457 264 setlcl ctlop,lstwck 00462 265 calsub sndsta 00464 266 goto eotidl /* go wait for next order */ 267 268 ************************************************************************ 269 * 270 * examine current output message before sending it 271 * 272 ************************************************************************ 273 00466 274 chkout calasm bsccko /* bsc_tables output-message checking rtn */ 00471 275 tstlcl result,resack,sendit /* normal message */ 00475 276 tstlcl result,resinc,getmor /* incomplete message, get the rest of it */ 00501 277 tstlcl result,resnul,outwt /* nothing there at all */ 00505 278 dmpout /* it's no good, remove it */ 00506 279 tstlcl result,reseot,endout /* normal termination, send eot */ 00512 280 calsub bscbad /* anything else is invalid */ 00514 281 goto outwt /* wait for more */ 00516 282 getmor signal sndout /* ask for more */ 00520 283 outwt setimv ttdtim 00522 284 wait sndttd,chkout,bsctst /* arrival of output will stir us */ end of binary card 00000011 00526 285 status 0,dsr,bshang /* so, alas, will lack of dsr */ 00532 286 endout setlcl ctlop,lstwrc /* report write complete */ 00535 287 calsub sndsta 00537 288 goto eotidl 289 290 ************************************************************************ 291 * 292 * ready to send complete output message 293 * 294 ************************************************************************ 295 00541 296 sendit meterm 1 /* count output message */ assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 29 3270 device selection and output 00543 297 holdot /* hang on to it until sent */ 00544 298 signal sndout /* ask for next one */ 00546 299 setlcl nakcnt,0 /* initialize counts */ 00551 300 setlcl ttdcnt,0 00554 301 setlcl enqcnt,0 00557 302 clrlcf exflg1,ttdsw 303 00562 304 sndagn calsub bscwtr /* write and read response */ 00564 305 sent setime 3 /* which should come within 3 seconds */ 00566 306 calsub bscrd /* go get it */ 00570 307 tstlcf exflg2,timout,ask /* didn't come, check up on it */ end of binary card 00000012 308 309 ************************************************************************ 310 * 311 * have a response, let's examine it 312 * 313 ************************************************************************ 314 00574 315 inscan innak,gotrs1 00577 316 goto gotnak /* nak, they didn't like it */ 00601 317 gotrs1 inscan inack,gotrs2 00604 318 goto gudout /* it was accepted */ 00606 319 gotrs2 inscan ineot,gotrs3 00611 320 goto repeot /* they said eot, something is messed up */ 00613 321 gotrs3 inscan inwack,ask /* if not wack, what is it? */ 322 323 ************************************************************************ 324 * 325 * wack in response to output message 326 * 327 ************************************************************************ 328 00616 329 dumpin /* throw away wack */ 00617 330 calsub dmpall 00621 331 meter2 m.cnt5,1 00624 332 setlcl ctlop,lstwkm /* report wack to msg */ 00627 333 calsub sndsta 00631 334 goto eotidl 335 336 ************************************************************************ 337 * 338 * good message acknowledged, send next one 339 * 340 ************************************************************************ 341 00633 342 gudout dumpin /* who needs ack? */ 00634 343 calsub bscswa /* switch acks */ 00636 344 dmpout 00637 345 goto chkout /* look at next message */ 346 assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 30 3270 device selection and output 347 ************************************************************************ 348 * 349 * output hasn't come yet, use ttd to let him know we're still here 350 * 351 ************************************************************************ 352 00641 353 sndttd tstlcv ttdcnt,ttdlmt,fakeot /* have we waited too long? */ end of binary card 00000013 00645 354 addlcl ttdcnt,1 00650 355 bldmsg otttd,gopunt /* send ttd message */ 00653 356 holdot 00654 357 calsub bscwtr 00656 358 dmpout 00657 359 setlcf exflg1,ttdsw /* so we'll understand nak */ 00662 360 goto sent /* wait for nak */ 361 362 * come here when we get the nak 363 00664 364 ttdnak clrlcf exflg1,ttdsw /* not ttd now */ 00667 365 goto chkout 366 367 ************************************************************************ 368 * 369 * our message got nak'ed 370 * 371 ************************************************************************ 372 00671 373 gotnak dumpin 00672 374 tstlcf exflg1,ttdsw,ttdnak /* if we were doing ttd, that's ok */ 00676 375 meter2 m.cnt2,1 00701 376 tstlcl nakcnt,3,nakerr /* drop it if too many */ 00705 377 addlcl nakcnt,1 /* count this one */ 00710 378 goto sndagn /* try again */ end of binary card 00000014 00712 379 nakerr calsub dmpall 00714 380 meter2 m.cnt6,1 00717 381 setlcl ctlop,lstnko 00722 382 calsub sndsta 00724 383 goto eotidl 384 385 ************************************************************************ 386 * 387 * got an eot response, something's wrong 388 * report it so he can try poll to get status 389 * 390 ************************************************************************ 391 00726 392 repeot dumpin 00727 393 calsub dmpall /* not likely to want output again */ 00731 394 setlcl ctlop,lsteot 00734 395 calsub sndsta assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 31 3270 device selection and output 00736 396 goto idle 397 398 ************************************************************************ 399 * 400 * last response didn't come or was unrecognizable 401 * send enq to get it repeated 402 * 403 ************************************************************************ 404 00740 405 ask meter2 m.cnt7,1 00743 406 dumpin 00744 407 tstlcl enqcnt,enqlmt,fakeot /* too many of these */ 00750 408 addlcl enqcnt,1 00753 409 bldmsg otenq,gopunt /* set up an enq */ 00756 410 holdot 00757 411 calsub bscwtr end of binary card 00000015 00761 412 dmpout 00762 413 goto sent /* wait for response to repeat */ 414 415 ************************************************************************ 416 * 417 * time to send eot message, either because we can't send any more 418 * output, or because it's done 419 * 420 ************************************************************************ 421 00764 422 fakeot setlcl ctlop,lstabo /* this is abnormal one */ 00767 423 dmpout 00770 424 calsub sndsta 00772 425 goto eotidl 426 427 ************************************************************************ 428 * 429 * subroutine to dump all pending output up to and including eot message 430 * 431 ************************************************************************ 432 00774 433 dmpall dmpout 00775 434 tstwrt dmpchk /* next message already here? */ 00777 435 wait 0,dmpchk,bsctst /* no, wait for it to arrive */ 01003 436 status 0,dsr,bshang /* die if phone goes */ 437 01007 438 dmpchk outscn ineot,dmpall /* is it eot message? */ 01012 439 dmpout /* yes, throw it away and we're done */ 01013 440 retsub assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 32 unsuccessful poll or select 442 443 ************************************************************************ 444 * 445 * time out waiting for poll /select reply */ 446 * 447 ************************************************************************ 448 01014 449 pollto meter2 m.cnt3,1 01017 450 dumpin 01020 451 bldmsg oteot,gopunt /* reset 3270 */ 01023 452 holdot 01024 453 calsub bscwtr 01026 454 dmpout end of binary card 00000016 01027 455 tstlcl bidlmt,0,pollt1 /* unmlimited retries */ 01033 456 addlcl bidcnt,1 01036 457 tstlcv bidcnt,bidlmt,badpol 01042 458 pollt1 tstlcf exflg2,selop,sndsel /* send select again */ 01046 459 goto sndpol /* send poll again */ 01050 460 badpol tstlcl exflg2,selop,badsel 01054 461 setlcl ctlop,lstbdf /* report poll failure */ 01057 462 calsub sndsta 01061 463 goto idle 01063 464 badsel calsub dmpall 01065 465 setlcl ctlop,lstslf /* report select error */ 01070 466 calsub sndsta 01072 467 goto idle 468 469 ************************************************************************ 470 * 471 * routine to report line status and stop polling 472 * 473 ************************************************************************ 474 01074 475 sndsta clrlcf exflg2,autopl+polpnd end of binary card 00000017 01077 476 linsta ctlop 01101 477 retsub assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 33 assembler language subroutines 479 ************************************************************************ 480 * 481 * routine to build a poll req by editing the poll address 482 * into the current output buffer before the enq it 483 * already has in it. 484 * 485 ************************************************************************ 486 01102 487 bldpol subr blp 01105 3 41 000 0 488 ldx3 0,3 get addr of arg 01106 4 10 035 1143 489 tsy a.a001-*,* =cvaddr, cvt to real address 01107 3333 00 0 490 cx3a 01110 0 37 034 1144 491 ora l.a001-* turn into char address 01111 4333 00 0 492 cax3 01112 3 07 200 0 493 lda 0,3,b.0 pick up count 01113 373 300 0 494 iacx3 0,b.1 skip over count 01114 1 03 012 0 495 ldx2 t.ocp,1 current buffer 01115 2 16 001 0 496 asa bf.tly,2 update tally with length of address 01116 6333 00 0 497 caq 01117 3332 00 0 498 cx2a 01120 773 002 0 499 iaa bf.dta address of data in buffer 01121 0 37 023 1144 500 ora l.a001-* make into character address 01122 0332 00 0 501 cax2 01123 2 07 200 0 502 lda 0,2,b.0 pick up enq 01124 0 17 016 1142 503 sta blpsv1-* save for a while 01125 573 000 0 504 iaq 0 to test the q 01126 0 74 007 1135 505 blp020 tze blp010-* no chars left in addr to copy 01127 3 07 200 0 506 lda 0,3,b.0 pick up addr char 01130 2 17 200 0 507 sta 0,2,b.0 copy into buffer 01131 273 300 0 508 iacx2 0,b.1 01132 373 300 0 509 iacx3 0,b.1 01133 573 777 0 510 iaq -1 01134 0 71 772 1126 511 tra blp020-* loop thru address 01135 0 07 005 1142 512 blp010 lda blpsv1-* retrieve the saved enq 01136 2 17 200 0 513 sta 0,2,b.0 add to end of address 01137 0 03 006 1145 514 ldx2 l.a002-* =0, means inline return 01140 515 return bldpol 516 01142 517 blpsv1 bss 1 518 end of binary card 00000018 01143 0 12000 3 519 a.a001 ind cvaddr 01144 2 00000 0 520 l.a001 ind 0,b.0 01145 000000 0 521 l.a002 oct 0 assm 01 09-28-82 16.897 ibm3270_tables -- tables for ibm 3270 terminals page 34 test_state handler 523 ************************************************************************ 524 * 525 * test state handler. most things are left to bsc handler 526 * 527 ************************************************************************ 528 01146 529 testst tstlcl ctlop,lctpol,rqpoll /* poll request handled here */ 01152 530 tstlcl ctlop,lctsta,stpaut /* stop auto polling */ 01156 531 waitm 01157 532 rqpoll clrlcf exflg2,autopl /* assume not auto-polling */ 01162 533 tstlcl ctlvl1,0,rqpol2 /* it isnt */ 01166 534 setlcf exflg2,autopl /* it is */ 01171 535 rqpol2 tstlcf exflg2,pollok,gopoll /* go start poll if ok now */ 01175 536 setlcf exflg2,polpnd /* otherwise, save for later */ 01200 537 waitm 01201 538 stpaut clrlcf exflg2,autopl /* auto polling will stop soon */ 01204 539 waitm 540 01205 541 gopunt punt 0 542 543 * 544 * limit for number of enq's we will send in succession 545 * 000003 546 enqlmt equ 3 547 end of binary card 00000019 548 end 1210 is the next available location. 355map version/assembly dates gmpa 770711/071177 gmpb 770711/071177 gmpc 770711/071177 there were no warning flags in the above assembly assm 01 09-28-82 16.900 ibm3270_tables -- tables for ibm 3270 terminals page 35 octal symbol references by sequence no. 460 ack0 41 41 105 205 1143 a.a001 519 489 519 740 ask 405 307 321 405 1000 autopl 41 41 132 152 475 532 534 538 1050 badpol 460 457 460 1063 badsel 464 460 464 2 bf.dta 40 40 499 1 bf.tly 40 40 496 777757 bidcnt 41 41 107 209 456 457 777760 bidlmt 41 41 455 457 2 b.0 493 502 506 507 513 520 3 b.1 494 508 509 1102 bldpol 487 109 211 487 515 1135 blp010 512 505 512 1126 blp020 505 505 511 1142 blpsv1 517 503 512 517 3 bscbad 32 280 4 bsccki 28 119 5 bsccko 29 274 1 bscrd 27 116 218 306 6 bscswa 30 148 239 343 7 bsctst 24 93 137 284 435 2 bscwt 25 194 10 bscwtr 26 113 214 304 357 411 453 11 bshang 31 94 138 285 436 1 cala.x 211 109 211 0 chk 70 51 52 53 54 55 56 57 61 62 63 64 65 66 67 68 70 466 chkout 274 241 274 284 345 365 62 chval 70 51 52 53 54 55 56 57 61 62 63 64 65 66 67 68 70 2 c.rcrq 36 36 37 40 c.rdtr 36 36 37 2 c.rrec 36 36 37 20000 c.rrqs 36 36 37 200 c.rsup 36 36 37 200 c.rtre 36 36 37 10 c.rxmt 36 36 37 1000 c.sbrk 36 36 37 1 c.scrq 36 36 37 20 c.sdtr 36 36 37 2000 c.smrk 36 36 37 1 c.srec 36 36 37 10000 c.srqs 36 36 37 100 c.ssup 36 36 37 400 c.stat 36 36 37 100 c.stre 36 36 37 4000 c.strm 36 36 37 4 c.sxmt 36 36 37 227 conpol 135 132 135 400000 ctlmsg 41 41 80 assm 01 09-28-82 16.900 ibm3270_tables -- tables for ibm 3270 terminals page 36 octal symbol references by sequence no. 777764 ctlop 41 41 171 251 264 286 332 381 394 422 461 465 476 529 530 777763 ctlvl1 41 41 533 12 cvaddr 33 519 20 dle 37 37 53 55 56 57 61 65 66 68 774 dmpall 433 250 263 330 379 393 433 438 464 1007 dmpchk 438 434 435 438 4 dsr 37 37 94 138 285 436 532 endout 286 279 286 463 enq 41 41 51 63 67 777766 enqcnt 41 41 301 407 408 3 enqlmt 546 407 546 325 enqpol 181 122 181 340 eotidl 192 173 192 253 266 288 334 383 425 377 epad 45 45 70 62 esyn 46 46 70 777745 exflg1 41 41 79 80 103 118 151 167 182 302 359 364 374 777744 exflg2 41 41 81 91 92 104 111 117 132 152 168 183 206 207 219 307 458 460 475 532 534 535 536 538 764 fakeot 422 353 407 422 516 getmor 282 276 282 121 gopoll 102 91 102 137 535 1205 gopunt 541 108 110 149 166 192 210 212 355 409 451 541 351 gosel 205 90 205 671 gotnak 373 316 373 601 gotrs1 317 315 317 606 gotrs2 319 317 319 613 gotrs3 321 319 321 437 gotrvi 249 228 249 633 gudout 342 318 342 0 i3270 17 17 19 100 idle 90 90 93 134 137 196 396 463 467 503 ignore 37 37 53 55 56 57 16 inack 53 53 231 317 14 ineot 52 52 319 438 22 innak 54 54 315 34 inrvi 57 57 227 30 inwack 56 56 229 321 10 lctpol 41 41 529 12 lctsta 41 41 530 1144 l.a001 520 491 500 520 1145 l.a002 521 514 521 11 lstabo 41 41 422 1 lstbdf 41 41 461 10 lsteot 41 41 394 4 lstnak 41 41 171 14 lstnko 41 41 381 3 lstrvi 41 41 251 12 lstslf 41 41 465 13 lstwck 41 41 264 7 lstwkm 41 41 332 6 lstwrc 41 41 286 assm 01 09-28-82 16.900 ibm3270_tables -- tables for ibm 3270 terminals page 37 octal symbol references by sequence no. 0 macwk1 487 487 515 313 manynk 170 165 170 501 match 37 37 51 52 53 54 55 56 57 36 m.cnt1 39 39 162 40 m.cnt2 39 39 375 42 m.cnt3 39 39 449 44 m.cnt4 39 39 170 46 m.cnt5 39 39 261 331 50 m.cnt6 39 39 380 52 m.cnt7 39 39 405 777770 nakcnt 41 41 106 150 164 165 208 299 376 377 712 nakerr 379 376 379 4 nakksw 41 41 79 103 151 167 182 265 nakpol 162 118 123 162 2 naksw 41 41 79 118 200000 needrv 41 41 79 40000 ntrsw 41 41 79 40 otack 61 61 149 44 otenq 63 63 69 409 46 oteot 64 64 192 451 60 otetpd 70 70 110 212 42 otnak 62 62 166 44 otpoll 69 69 108 210 54 otttd 67 67 355 520 outwt 283 277 281 283 777751 polad1 41 41 109 224 polend 133 131 133 216 poleot 131 120 131 242 pollgd 146 121 146 40 pollok 41 41 81 92 104 206 535 400 pollsw 41 41 111 152 168 183 1042 pollt1 458 455 458 1014 pollto 449 117 219 231 449 20 polpnd 41 41 81 91 104 475 536 726 repeot 392 320 392 4 resack 41 41 121 275 510 rescan 37 37 51 52 53 54 55 56 57 3 resenq 41 41 122 2 reseot 41 41 120 279 0 resinc 41 41 276 5 resnul 41 41 277 777765 result 41 41 120 121 122 275 276 277 279 1171 rqpol2 535 533 535 1157 rqpoll 532 529 532 466 rvi 41 41 57 68 100000 rvisw 41 41 79 103 777743 selad1 41 41 211 100 selop 41 41 104 207 458 460 451 selwck 261 230 261 541 sendit 296 275 296 564 sent 305 305 360 413 assm 01 09-28-82 16.900 ibm3270_tables -- tables for ibm 3270 terminals page 38 octal symbol references by sequence no. 514 seteom 37 37 61 62 63 64 65 66 67 68 200000 s.acr 36 36 37 400000 s.ads 36 36 37 400000 s.bdmk 36 36 37 200000 s.bmk 36 36 37 1000 s.brch 36 36 37 400 s.brk 36 36 37 1 s.cd 36 36 37 2 s.cts 36 36 37 100000 s.dlo 36 36 37 4 s.dsr 36 36 37 4000 s.exh 36 36 37 10000 s.fcse 36 36 37 40000 s.isd 36 36 37 40 s.mark 36 36 37 400000 s.pbyt 36 36 37 200 s.prex 36 36 37 10000 s.prty 36 36 37 40000 s.pwi 36 36 37 200000 s.rabt 36 36 37 100000 s.rbt 36 36 37 2000 s.ring 36 36 37 40000 s.rto 36 36 37 10 s.sprc 36 36 37 20 s.st 36 36 37 100 s.term 36 36 37 20000 s.xte 36 36 37 247 sndack 149 149 184 562 sndagn 304 304 378 155 sndmsg 112 112 154 169 300 sndnak 166 166 182 105 sndout 37 37 282 298 140 sndpol 108 108 183 459 367 sndsel 210 210 458 1074 sndsta 475 172 252 265 287 333 382 395 424 462 466 475 641 sndttd 353 284 353 64 st3270 79 22 79 1201 stpaut 538 530 538 2 stx 37 37 67 777746 testrt 41 41 82 1146 testst 529 82 529 462 tiback 41 41 53 61 105 205 465 tibeot 41 41 52 55 64 65 70 464 tibnak 41 41 54 62 4 timout 41 41 117 219 307 12 t.ocp 38 38 495 427 tstack 231 229 231 422 tstwck 229 227 229 777752 ttdcnt 41 41 300 353 354 777753 ttdlmt 41 41 353 664 ttdnak 364 364 374 assm 01 09-28-82 16.900 ibm3270_tables -- tables for ibm 3270 terminals page 39 octal symbol references by sequence no. 20000 ttdsw 41 41 79 302 359 364 374 777754 ttdtim 41 41 283 467 wack 41 41 56 66 200 wacksw 41 41 79 ** 47066 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