assm 01 04-18-84 09.705 hasp_tables -- control tables for hasp protocol page 1 preface program break 2114 common length 0 v count bits 5 primary symdef entry sthasp 37 secondary symdef entry .chain 0 block length symref 1 bscrd 2 bscwt 3 adbyte 4 bscbad 5 bsccki 6 bsccko 7 bsctst 10 bscwtr end of binary card 00000001 11 bshang 12 cvaddr 13 setbpt end of binary card 00000002 assm 01 04-18-84 09.705 hasp_tables -- control tables for hasp protocol page 2 1 *********************************************************** 2 * * 3 * * 4 * copyright, (c) honeywell information systems inc., 1981 * 5 * * 6 * * 7 *********************************************************** 8 9 lbl ,hasp_tables assm 01 04-18-84 09.705 hasp_tables -- control tables for hasp protocol page 3 12 pcc off 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 16 * 17 * hasp_tables 18 * 19 * these tables provide the special processing for a bisync 20 * line utilizing the hasp multi-leaving protocol 21 * 22 * created: september 1979 by larry johnson 23 * modified: november-december 1980 by g. palter to implement 24 * infinite initial connection timeout, properly report nak 25 * limit overflows to multics, and fix many minor bugs 26 * modified: 30 march 1981 by g. palter to fix bug in slave 27 * idle loop handling of naks 28 * modified: 9 april 1981 by g. palter to fix bug in slave 29 * idle loop reporting of nak limit overflow 30 * modified: july 1981 by g. palter to add metering and 31 * support for signon/runout processing and to remove the 32 * limitation in slave (cpu) initialization 33 * modified: 24 august 1981 by g. palter to make wraparounds 34 * nest by counting foreign devices going not ready and 35 * the corresponding sync-blocks from the cs 36 * modified: 28 december 1981 by g. palter to fix another 37 * case where the slave idle loop wasn't detecting 38 * too many sequential naks 39 * modified: june 1982 by robert coren for extended memory 40 * modified: february 1984 by g. palter to properly implement 41 * the system wait-a-bit and to insure that the "too many 42 * naks" line status get through to the cs 43 * 44 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 45 46 symdef sthasp start of hasp tables 47 48 symref bsctst bisync test state handler 49 symref bscwt bisync write routine 50 symref bscwtr bisync write/read routine 51 symref bscrd bisync read routine 52 symref bsccki bisync check input routine 53 symref bsccko bisync check output routine 54 symref bshang bisync hangup routine 55 symref bscbad bisync report bad block routine 56 57 symref setbpt 58 symref adbyte interpreter byte addressing rtn 59 symref cvaddr interpreter word addressing rtn 60 00000 61 hasp null 62 00000 63 start hasp,,c3hspm0b0000 00012 65 tib assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 4 terminal information block (tib) 000000 t.stat equ 0 holds current line status 000001 t.flg equ t.stat+1 flag word 000002 t.flg2 equ t.flg+1 second word of flags 000003 t.cur equ t.flg2+1 current address in control table 000004 t.line equ t.cur+1 10 bit line number 000005 t.icp equ t.line+1 first buffer in input chain 000006 t.ilst equ t.icp+1 last buffer in input chain 000007 t.icpl equ t.ilst+1 count of buffers in icp chain 000010 t.icch equ t.icpl+1 address of next input character 000011 t.elnk equ t.icch+1 link to tib extension 000011 t.rcp equ t.elnk replay chain pointer (share t.elnk) 000012 t.ocp equ t.elnk+1 addr of output chain from cs 000013 t.ocur equ t.ocp+1 addr of current output buffer 000014 t.olst equ t.ocur+1 addr of last buffer in output chain 000015 t.occh equ t.olst+1 addr of next output character 000016 t.ocnt equ t.occh+1 count of buffers in t.ocur 000017 t.type equ t.ocnt+1 line type 000020 t.time equ t.type+1 time at which next timeout will occur 000022 t.reta equ t.time+2 return address from calsub 000023 t.dcwa equ t.reta+1 addr of dcw list to 'execute' 000024 t.dcwl equ t.dcwa+1 length of dcw list 000025 t.echo equ t.dcwl+1 echo buffer address 000026 t.dcp equ t.echo+1 addr of message chain for cs 000027 t.dlst equ t.dcp+1 last buffer in messge chain for cs 000030 t.ftse equ t.dlst+1 first time slot entry in lsla table assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 5 terminal information block (tib) 000030 t.sfcm equ t.ftse pointer to sfcm for hsla lines 000031 t.bcnt equ t.ftse+1 counting temporary 000032 t.brkp equ t.bcnt+1 pointer to current break list 000033 t.pos equ t.brkp+1 current carriage position 000034 t.char equ t.pos+1 pending line control char (lsla only) 000034 t.ecch equ t.char address of current echo char (hsla only) 000035 t.cntr equ t.char+1 counter for control tables 000036 t.flg3 equ t.cntr+1 third word of flags 000037 t.dtp equ t.flg3+1 pointer to delay table for this line 000040 t.frmc equ t.dtp+1 framing chars (2 chars) 000041 t.dcpl equ t.frmc+1 number of buffers in dcp chain 000042 t.scll equ t.dcpl+1 screenline length left, for echo neg. 000043 t.sncc equ t.scll+1 echo negotiation sync ctr. 000044 t.entp equ t.sncc+1 echo negotiation break table ptr 000045 t.ifch equ t.entp+1 input flow control characters 000046 t.ofch equ t.ifch+1 output flow control characters 000047 t.omct equ t.ofch+1 output message count (for flow control) 000050 t.itim equ t.omct+1 time of last call to inproc (2 words) 000052 t.metr equ t.itim+2 address of metering area 000053 t.abf0 equ t.metr+1 absolute address of first permanent buffe 000054 t.abf1 equ t.abf0+1 absolute address of first permanent buffe 000055 t.leng equ t.abf1+1 length of a tib ******************************** * t.stat bits ******************************** assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 6 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 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 7 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 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 8 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 002000 tfsoip bool 002000 suspension of output in progress 004000 tforp bool 004000 output resume pending (waiting until tro) 010000 tfabf1 bool 010000 t.abf1 available 020000 tfmask bool 020000 channel has been masked for excessive int 040000 tfinq bool 040000 input is queued for the channel assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 9 terminal information block (tib) ********************************* * redefined tib flags in t.flg ********************************* 000020 tfdlup equ tfprtr line is on dialup modem 00012 66 meters assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 10 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 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 11 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 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 12 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 00012 67 csbits assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 13 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 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 14 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 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 15 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 00012 68 tconst assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 16 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 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 17 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 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 18 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 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 19 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 00012 69 buffer assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 20 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 70 bscdat assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 21 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 wrkch1,char /* temporary work character (hasp) */ 00012 tibex wrkch2,char /* temporary work character (hasp) */ 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 */ assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 22 bsc symbol definitions 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 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 /* output from cs arrived while busy (has 020000 dialos bool 020000 /* can't send input over dia now (hasp) * 040000 csreqa bool 040000 /* tell cs when current msg is sent (hasp 100000 lswabs bool 100000 /* local system wait-a-bit (hasp) */ 200000 fswabs bool 200000 /* foreign system wait-a-bit (hasp) */ 400000 fnrcba bool 400000 /* block arrived but foreign not ready (h 00012 tibex selad1,word 00012 tibex selad2,word 00012 tibex selad3,word /* hasp re-definitions */ 777753 hxmttm equ ttdtim /* hasp transmit time limit */ 777757 hcontm equ bidlmt /* hasp connect time limit */ 777751 hrcvtm equ ttdcnt /* hasp receive time limit */ 777742 wabmsk equ selad1 /* array of wait-a-bit masks */ 777741 hblkno equ selad2 /* bcb of block cs is interested in */ 777740 wrpcnt equ selad3 /* sync-blocks needed before xfer resumes assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 23 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 */ 000016 lsthfr equ 14 /* foreign system wait-a-bit reset (hasp) /* 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 */ assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 24 bsc symbol definitions 000005 lcttwr equ 5 /* test write status */ 000006 lct327 equ 6 /* set ibm3270 mode */ 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 */ assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 25 hasp symbol definitions 73 74 /* input scan control strings */ 75 00012 76 inack chstr (rescan,match,dle,ignore,match,tiback) 00016 77 innak chstr (rescan,match,tibnak) 00020 78 ininit chstr (rescan,match,soh,ignore,match,enq) 79 80 /* output bldmsg control strings */ 81 00024 82 otack chstr (dle,tiback,seteom) 00026 83 otnak chstr (tibnak,seteom) 00030 84 otinit chstr (soh,enq,seteom) 85 86 /* local system not-ready idle message */ 87 000220 88 libcb bool 220 /* bcb: ignore block count */ 000300 89 lifcs1 bool 300 /* fcs 1: system wait-a-bit */ 000200 90 lifcs2 bool 200 /* fcs 2: all devices not ready */ 00032 91 otsidl chstr (dle,stx,libcb,lifcs1,lifcs2,000,dle,etb,seteom) 92 93 /* definitions of fcs bits */ 94 000100 95 fcs1sb bool 100 /* system wait-a-bit */ 000040 96 fcs1nr bool 040 /* 1 = some device went not-ready */ 000020 97 fcs1rt bool 020 /* 1 = this is output being returned */ 000017 98 fcs1pr bool 017 /* printer wait-a-bits */ 99 000100 100 fcs2ty bool 100 /* tty wait-a-bit */ 000017 101 fcs2pn bool 017 /* punch wait-a-bits */ 102 000060 103 fcs2bt bool 060 /* contains block type set by cs */ 000020 104 fcs2ra bool 020 /* 01 = tell cs when block is sent */ 000060 105 fcs2sy bool 060 /* 11 = this is resync msg */ 106 017117 107 allon equ 512*fcs1pr+fcs2ty+fcs2pn /* "1" for all device wait-a-bits */ 108 /* includes fcs1 and fcs2 */ assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 26 hasp initialization 110 ********************************************************************** 111 * 112 * wait for multics to perform proper initialization 113 * by watching for the 'allow bid' line control order 114 * 115 ********************************************************************** 116 00037 117 sthasp setflg tfmrcv /* we are msg-receive device */ 00042 118 clrlcf exflg1,naksw+nakksw+wacksw+datrcv+cfgok+rflag 00045 119 clrlcf exflg1,ttdsw+ntrsw+rvisw+needrv+ctlmsg end of binary card 00000003 00050 120 clrlcf exflg2,lookot+gotot+timout+polpnd+pollok+selop 00053 121 clrlcf exflg2,pollsw+autopl+outarv+dialos+csreqa 00056 122 clrlcf exflg2,lswabs+fswabs+fnrcba 00061 123 setlcl testrt,testst /* establish our test-state handler */ 00064 124 setchr tiback,ack0 00066 125 setlcl wabmsk,0 /* init all wait-a-bits off */ 00071 126 setlcl wrpcnt,0 /* don't need any sync-blocks to get started */ 127 00074 128 tstlcf exflg1,alwbid,ini020 /* initialization already done? */ 00100 129 setlcl naklmt,10 /* set default values */ 00103 130 setlcl hcontm,30 00106 131 setlcl hrcvtm,3 00111 132 setlcl hxmttm,2 00114 133 wait 0,0,ini010 /* watch for line status */ end of binary card 00000004 00120 134 status 0,dsr,bshang /* don't miss hangups */ 135 00124 136 ini010 tstflg tfhang,bshang /* forced hangup */ 00130 137 linctl ctlop,bsctst /* see if line status */ 00133 138 tstlcl ctlop,lctabd,ini020 /* if so, see if allow bid */ 00137 139 goto bsctst /* no, let bsc test state handler do it */ 140 00141 141 ini020 setlcf exflg1,alwbid /* setup complete */ 00144 142 tstlcf exflg2,master,ini050 /* master */ assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 27 hasp initialization 144 ********************************************************************** 145 * 146 * slave device initialization (cpu) 147 * 148 ********************************************************************** 149 00150 150 tstlcl hcontm,0,ini030 /* no connect timeout requested */ 00154 151 setlcv temp1,hcontm /* connect time limit */ 00157 152 setlcv temp2,hrcvtm /* receive time limit for waiting for connect */ 00162 153 calasm calcbl /* divide to calculate retry count */ 00165 154 setlcv bidcnt,temp1 end of binary card 00000005 155 00170 156 ini030 setimv hrcvtm /* wait for initialization message */ 00172 157 contrl srec 00174 158 calsub bscrd 00176 159 tstlcf exflg2,timout,ini040 /* no message in time... */ 160 00202 161 inscan ininit,ini040 /* initialization message? */ 00205 162 dumpin 00206 163 bldmsg otack,punt /* yes: acknowledge */ 00211 164 holdot 00212 165 calsub bscwtr 00214 166 dmpout 00215 167 setlcl ctlop,lsthin /* report hasp initialized */ 00220 168 setlcl ctlvl1,0 /* as a slave */ 00223 169 linsta ctlop 00225 170 goto slv000 171 00227 172 ini040 dumpin /* discard any garbage */ 00230 173 tstlcl hcontm,0,ini030 /* no connect timeout: retry */ 00234 174 addlcl bidcnt,1 end of binary card 00000006 00237 175 tstlcl bidcnt,0,bshang /* too many tries: punt */ 00243 176 goto ini030 assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 28 hasp initialization 178 ********************************************************************** 179 * 180 * master device initialization (terminal) 181 * 182 ********************************************************************** 183 00245 184 ini050 tstlcl hcontm,0,ini060 /* no connect timeout requested */ 00251 185 setlcv temp1,hcontm /* connect time limit */ 00254 186 setlcv temp2,hrcvtm /* receive time limit for waiting for replies */ 00257 187 calasm calcbl /* divide to calculate retry count */ 00262 188 setlcv bidcnt,temp1 189 00265 190 ini060 bldmsg otinit,punt /* initialization msg */ 00270 191 holdot 00271 192 calsub bscwtr /* write it */ 00273 193 dmpout 194 00274 195 setimv hrcvtm 00276 196 calsub bscrd /* wait for reply */ 00300 197 tstlcf exflg2,timout,ini070 /* no response */ end of binary card 00000007 198 00304 199 inscan inack,ini070 /* good response? */ 00307 200 dumpin 00310 201 setlcl ctlop,lsthin /* report hasp initialized */ 00313 202 setlcl ctlvl1,1 /* as a master */ 00316 203 linsta ctlop 00320 204 goto mstidl 205 00322 206 ini070 dumpin /* throw away and try again */ 00323 207 tstlcl hcontm,0,ini060 /* no connect timeout so retry */ 00327 208 addlcl bidcnt,1 00332 209 tstlcl bidcnt,0,bshang /* too many tries */ 00336 210 goto ini060 assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 29 hasp idle state handlers 212 ********************************************************************** 213 * 214 * master channel idle state handler 215 * 216 ********************************************************************** 217 00340 218 mstidl calsub chkout /* see if output ready */ 00342 219 tstlcl result,resack,haspwr /* yes */ 00346 220 setimv hxmttm /* we ack every two seconds */ 221 00350 222 wait mst020,mst010,bsctst end of binary card 00000008 00354 223 status 0,dsr,bshang 224 00360 225 mst010 dumpin /* just in case */ 00361 226 setlcf exflg2,outarv /* output arrived */ 00364 227 calsub chkout /* examine it */ 00366 228 tstlcl result,resack,haspwr /* ready to go */ 00372 229 waitm 230 00373 231 mst020 dumpin /* nothing to write: send idle block */ 00374 232 setlcl nakcnt,0 00377 233 mst025 tstlcf exflg2,lswabs,mst026 00403 234 bldmsg otack,punt /* ... either an ack */ 00406 235 goto mst030 00410 236 mst026 bldmsg otsidl,punt /* ... or local not-ready */ 237 00413 238 mst030 holdot 00414 239 calsub bscwtr /* write the idle message */ 00416 240 dmpout 241 00417 242 setimv hrcvtm /* wait for reply */ 00421 243 calsub bscrd end of binary card 00000009 00423 244 tstlcf exflg2,timout,mst035 /* timeout */ 00427 245 tstlcf exflg1,naksw,mst055 /* crc error */ 00433 246 inscan inack,mst040 /* is it an ack? */ 247 /* foreign side sent an ack ... */ 00436 248 tstlcf exflg2,fswabs,mst031 /* ... was foreign not ready? */ 00442 249 goto mst032 /* ... ... no */ 00444 250 mst031 clrlcf exflg2,fswabs /* ... ... yes: ack resets not ready */ 00447 251 setlcl ctlop,lsthfr /* ... ... and we must inform cs */ 00452 252 linsta ctlop 00454 253 mst032 dumpin /* ... discard the ack ... */ 00455 254 meter2 m.cnt5,1 /* ... and count a trip through idle loop */ 00460 255 goto mstidl 256 00462 257 mst035 meter2 m.cnt4,1 /* count timeout waiting for reply */ 00465 258 goto mst070 259 assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 30 hasp idle state handlers 00467 260 mst040 inscan innak,mst050 /* was it a nak? */ end of binary card 00000010 00472 261 meter2 m.cnt2,1 /* yes: count nak to our output ... */ 00475 262 dumpin 00476 263 addlcl nakcnt,1 00501 264 tstlcv nakcnt,naklmt,mst045 /* report nak limit to mcs? */ 00505 265 goto mst025 /* no: retry the ack */ 00507 266 mst045 signal quit /* yes */ 00511 267 setlcl ctlop,lstnak 00514 268 linsta ctlop 00516 269 goto mst025 /* retry the ack */ 270 00520 271 mst050 calasm bsccki /* detailed scan */ 00523 272 tstlcl result,resack,mst060 /* good */ 00527 273 tstlcl result,resntr,mst060 00533 274 mst055 meter2 m.cnt1,1 /* bad input: count nak we send */ 00536 275 goto mst070 end of binary card 00000011 276 00540 277 mst060 calsub chkdia /* be sure dia caught up */ 00542 278 tstlcf exflg2,dialos,mst065 /* no, must nak for breather */ 00546 279 calsub inproc /* ship good data */ 00550 280 calsub chkout /* anything more to write */ 00552 281 tstlcl result,resack,haspwr /* yes */ 00556 282 goto mst020 /* no, just ack */ 283 00560 284 mst065 meter2 m.cnt6,1 /* count inability to take input */ 285 00563 286 mst070 dumpin /* timeout or garbage */ 00564 287 addlcl nakcnt,1 00567 288 tstlcv nakcnt,naklmt,mst075 /* report nak limit to mcs? */ 00573 289 goto mst080 /* no: just send nak */ 00575 290 mst075 signal quit /* yes */ 00577 291 setlcl ctlop,lstnak 00602 292 linsta ctlop 293 00604 294 mst080 bldmsg otnak,punt /* send nak */ end of binary card 00000012 00607 295 goto mst030 assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 31 hasp idle state handlers 297 ********************************************************************** 298 * 299 * slave channel idle state handler 300 * 301 ********************************************************************** 302 00611 303 slv000 contrl srec 00613 304 slv005 setlcl nakcnt,0 00616 305 slv010 setimv hrcvtm 00620 306 calsub bscrd 00622 307 tstlcf exflg2,timout,slv040 /* timeout */ 00626 308 tstlcf exflg1,naksw,slv035 /* crc error */ 00632 309 inscan inack,slv020 /* ack? */ 00635 310 goto slv050 /* yes */ 311 00637 312 slv020 inscan innak,slv030 /* nak? */ 00642 313 dumpin /* yes: flush it ... */ 00643 314 meter2 m.cnt2,1 /* ... count nak to our output ... */ 00646 315 addlcl nakcnt,1 00651 316 tstlcv nakcnt,naklmt,slv025 /* ... report nak limit to mcs? ... */ 00655 317 goto slv026 /* ... ... no */ end of binary card 00000013 00657 318 slv025 signal quit /* ... ... yes */ 00661 319 setlcl ctlop,lstnak 00664 320 linsta ctlop 00666 321 slv026 tstlcf exflg2,lswabs,slv027 /* ... resend the idle block */ 00672 322 bldmsg otack,punt /* ... ... which is an ack */ 00675 323 goto slv028 00677 324 slv027 bldmsg otsidl,punt /* ... ... or local not-ready */ 00702 325 slv028 holdot 00703 326 calsub bscwtr 00705 327 dmpout 00706 328 goto slv010 /* ... and not a completed cycle */ 329 00710 330 slv030 calasm bsccki /* detailed scan */ 00713 331 tstlcl result,resack,slv080 /* good data */ 00717 332 tstlcl result,resntr,slv080 00723 333 slv035 meter2 m.cnt1,1 /* bad input: count nak we send */ end of binary card 00000014 00726 334 goto slv041 335 00730 336 slv040 meter2 m.cnt3,1 /* count timeout waiting for input */ 00733 337 slv041 dumpin /* discard garbage */ 00734 338 addlcl nakcnt,1 00737 339 tstlcv nakcnt,naklmt,slv045 /* report nak limit to mcs? */ 00743 340 goto slv046 /* no: just send nak */ 00745 341 slv045 signal quit /* yes */ 00747 342 setlcl ctlop,lstnak 00752 343 linsta ctlop 344 assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 32 hasp idle state handlers 00754 345 slv046 bldmsg otnak,punt /* send nak */ 00757 346 holdot 00760 347 calsub bscwtr 00762 348 dmpout 00763 349 goto slv010 350 351 /* foreign side sent an ack ... */ 00765 352 slv050 tstlcf exflg2,fswabs,slv051 /* ... was foreign not ready? */ 00771 353 goto slv052 /* ... ... no */ 00773 354 slv051 clrlcf exflg2,fswabs /* ... ... yes: ack resets not ready */ end of binary card 00000015 00776 355 setlcl ctlop,lsthfr /* ... ... and we must inform cs */ 01001 356 linsta ctlop 01003 357 slv052 dumpin /* ... discard the ack ... */ 01004 358 meter2 m.cnt5,1 /* ... and count a trip through idle loop */ 359 01007 360 tstlcf exflg2,lswabs,slv053 /* are we not ready? */ 01013 361 goto slvidl /* ... no */ 01015 362 slv053 setimv hxmttm /* ... yes: give cs time to become ready */ 01017 363 wait slvidl,slv055,bsctst 01023 364 status 0,dsr,bshang 01027 365 slv055 setlcf exflg2,outarv /* ... ... output has arrived */ 01032 366 calsub chkout /* ... ... see if it is complete */ 01034 367 tstlcl result,resack,haspwr /* ... ... yes: send it */ 01040 368 waitm 369 370 /* control arrives here after processing input */ 01041 371 slvidl calsub chkout /* see if something to send */ end of binary card 00000016 01043 372 tstlcl result,resack,haspwr 373 01047 374 tstlcf exflg2,lswabs,slv061 /* no: send an idle block */ 01053 375 bldmsg otack,punt /* ... which is an ack */ 01056 376 goto slv062 01060 377 slv061 bldmsg otsidl,punt /* ... or local not-ready */ 01063 378 slv062 holdot 01064 379 calsub bscwtr 01066 380 dmpout 01067 381 goto slv005 382 01071 383 slv080 calsub chkdia /* be sure dia caught up */ 01073 384 tstlcf exflg2,dialos,slv081 /* no: nak to buy some time */ 01077 385 calsub inproc /* ship good data */ 01101 386 goto slvidl 387 01103 388 slv081 meter2 m.cnt6,1 /* count inability to accept input */ 01106 389 goto slv041 assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 33 hasp output processing 391 ********************************************************************** 392 * 393 * hasp output processing: write the message and analyze the 394 * response; retransmit when necessary if naked 395 * 396 ********************************************************************** 397 01110 398 haspwr meterm 1 /* count the output message */ end of binary card 00000017 01112 399 holdot /* to keep msg */ 01113 400 signal sndout /* start next */ 401 402 ********************************************************************** 403 * 404 * check the output block type: if the cs requests 405 * acknowledgement of transmission of this block, record its 406 * bcb for the line status sent when block is transmitted 407 * 408 ********************************************************************** 409 01115 410 clrlcf exflg2,csreqa /* assume cs doesn't care */ 01120 411 outscn outcra,wrt010 /* check for block type = 1 */ 412 /* block type 1: cs requests ack */ 01123 413 setlcf exflg2,csreqa 01126 414 outscn outgbn,punt /* pickup the bcb */ 01131 415 calasm setbno /* copy wrkch1 to hblkno */ 416 01134 417 wrt010 outscn outcbt,punt /* clear block type field */ 418 419 ********************************************************************** 420 * 421 * transmit the block 422 * 423 ********************************************************************** 424 01137 425 setlcl nakcnt,0 /* count transmission failures */ 01142 426 wrt020 dumpin 01143 427 calsub bscwtr /* write the message */ 428 01145 429 setimv hrcvtm /* wait for rcv time limit */ 01147 430 calsub bscrd /* wait for input */ 431 432 ********************************************************************** 433 * 434 * analyze the response (if any) 435 * 436 ********************************************************************** 437 01151 438 tstlcf exflg2,timout,wrt080 /* no response */ 01155 439 tstlcf exflg1,naksw,wrt045 /* crc error */ assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 34 hasp output processing end of binary card 00000018 440 01161 441 inscan inack,wrt030 /* ack? */ 01164 442 goto wrt050 /* yes */ 443 01166 444 wrt030 inscan innak,wrt040 /* nak? */ 01171 445 dumpin /* yes: flush it ... */ 01172 446 meter2 m.cnt2,1 /* ... and count the nak to our msg */ 01175 447 addlcl nakcnt,1 01200 448 tstlcv nakcnt,naklmt,wrt035 /* report nak limit to mcs? */ 01204 449 goto wrt020 /* no: retry transmission */ 01206 450 wrt035 signal quit /* yes */ 01210 451 setlcl ctlop,lstnak 01213 452 linsta ctlop 01215 453 goto wrt020 /* now retry transmission */ 454 01217 455 wrt040 calasm bsccki /* subject to further analysis */ 01222 456 tstlcl result,resack,wrt070 /* good message */ 01226 457 tstlcl result,resntr,wrt070 /* non-transparent ok too */ end of binary card 00000019 01232 458 wrt045 meter2 m.cnt1,1 /* bad input: count nak we must send */ 01235 459 goto wrt081 460 461 ********************************************************************** 462 * 463 * response is an ack: message has been transmitted; inform 464 * the cs if needed and return to the idle loop 465 * 466 ********************************************************************** 467 01237 468 wrt050 dumpin /* discard ack */ 01240 469 wrt060 dmpout /* discard data */ 01241 470 tstlcf exflg2,csreqa,wrt061 /* does cs want to know? */ 01245 471 goto wrt065 /* no: return to idle loop */ 01247 472 wrt061 setlcl ctlop,lstwrc /* yes: report write completed */ 01252 473 setlcv ctlvl1,hblkno /*... and which block was written */ 01255 474 linsta ctlop 01257 475 wrt065 tstlcf exflg2,master,mstidl /* if master mode */ 01263 476 goto slvidl 477 478 ********************************************************************** 479 * 480 * response is a valid message: send it to multics 481 * 482 ********************************************************************** 483 01265 484 wrt070 calsub chkdia /* be sure to check dia first */ 01267 485 tstlcf exflg2,dialos,wrt071 01273 486 calsub inproc /* ship the input */ 01275 487 goto wrt060 assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 35 hasp output processing end of binary card 00000020 488 01277 489 wrt071 meter2 m.cnt6,1 /* can't accept input now: nak it */ 01302 490 goto wrt081 491 492 ********************************************************************** 493 * 494 * response garbled or timeout: request restransmission 495 * 496 ********************************************************************** 497 01304 498 wrt080 meter2 m.cnt4,1 /* count timeout waiting for reply */ 01307 499 wrt081 dumpin /* discard bad input, if any */ 01310 500 addlcl nakcnt,1 01313 501 tstlcv nakcnt,naklmt,wrt085 /* report nak limit to mcs? */ 01317 502 goto wrt086 /* no */ 01321 503 wrt085 signal quit /* yes */ 01323 504 setlcl ctlop,lstnak 01326 505 linsta ctlop 506 01330 507 wrt086 bldmsg otnak,punt /* prepare to write nak */ 01333 508 holdot 01334 509 calsub bscwtr 01336 510 dmpout 01337 511 setimv hrcvtm /* time limit for response */ 01341 512 calsub bscrd 513 01343 514 tstlcf exflg2,timout,wrt080 /* timeout: try again */ end of binary card 00000021 01347 515 tstlcf exflg1,naksw,wrt105 /* crc error */ 01353 516 inscan inack,wrt090 /* ack? */ 01356 517 goto wrt020 /* yes */ 01360 518 wrt090 inscan innak,wrt100 /* nak? */ 01363 519 meter2 m.cnt2,1 /* yes: count original nak to our msg */ 01366 520 goto wrt020 521 01370 522 wrt100 calasm bsccki /* examine input */ 01373 523 tstlcl result,resack,wrt070 /* response now ok */ 01377 524 tstlcl result,resntr,wrt070 01403 525 wrt105 meter2 m.cnt1,1 /* bad input: count our nak */ 01406 526 goto wrt081 527 01410 528 outcra chstr (rescan,search,stx,ignore,ignore,ignore,cmask,fcs2ra,fcs2 01410 529 etc bt) end of binary card 00000022 01415 530 outgbn chstr (rescan,search,stx,ignore,movchr,wrkch1) 01421 531 outcbt chstr (rescan,search,stx,ignore,ignore,ignore,offbit,fcs2bt) assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 36 hasp input processing 533 ********************************************************************** 534 * 535 * scan input and update state of wait-a-bit bits 536 * 537 ********************************************************************** 538 01426 539 inproc inscan getfcs,inp020 /* extract fcs chars */ 01431 540 setlcv temp1,wabmsk /* make copy of current mask */ 541 01434 542 calasm wabchk /* analyze wait-a-bit stuff */ 543 01437 544 clrlcf exflg2,fswabs /* clear foreign system wait-a-bit */ 01442 545 tstlcl temp3,0,inp010 /* foreign system wait-a-bit on? */ 01446 546 setlcf exflg2,fswabs /* yes: don't check individual devices */ 01451 547 goto inp020 548 01453 549 inp010 setlcv wabmsk,temp1 /* save new state of device wabs */ 01456 550 tstlcl temp2,0,inp020 /* any bits go off? */ 01462 551 inscan setnr,punt /* yes: flag msg as important ... */ end of binary card 00000023 01465 552 addlcl wrpcnt,1 /* ... and expect another sync-block */ 553 01470 554 inp020 meterm 0 /* count the input ... */ 01472 555 sendin /* ... and hand it off to cs */ 01473 556 retsub 557 01474 558 getfcs chstr (rescan,search,stx,ignore,ignore,offbit,fcs1rt+fcs1nr,mov 01474 559 etc chr,wrkch1,ignore,movchr,wrkch2) 01503 560 setnr chstr (rescan,search,stx,ignore,ignore,setbit,fcs1nr) assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 37 subroutines 562 ********************************************************************** 563 * 564 * examine output to see if it is ready to write 565 * 566 ********************************************************************** 567 01507 568 chkout tstlcf exflg2,outarv,chk010 /* any arrivals since last time? */ 01513 569 tstlcf exflg2,fnrcba,chk030 /* ... while foreign not ready? */ 01517 570 goto chk050 /* no, nothing is ready to write */ 571 01521 572 chk010 clrlcf exflg2,outarv 01524 573 calasm bsccko /* perform output scan */ 01527 574 tstlcl result,resack,chk030 end of binary card 00000024 01533 575 tstlcl result,resntr,chk030 01537 576 tstlcl result,resinc,chk020 01543 577 tstlcl result,resnul,chk020 01547 578 calsub bscbad /* report bad block */ 01551 579 dmpout 01552 580 goto chk050 581 01554 582 chk020 signal sndout /* ask message be completed */ 01556 583 goto chk050 584 01560 585 chk030 clrlcf exflg2,fnrcba 01563 586 tstlcl wrpcnt,0,chk035 /* returning output to cs? */ 01567 587 goto chk060 /* yes: check for sync-blocks */ 588 01571 589 chk035 tstlcf exflg2,fswabs,chk040 /* ignore while foreign not ready */ 01575 590 clrlcf exflg2,lswabs /* copy local system wait-a-bit */ 01600 591 outscn getlsw,chk036 end of binary card 00000025 01603 592 setlcf exflg2,lswabs 01606 593 chk036 setlcl result,resack /* good message */ 01611 594 retsub 595 01612 596 chk040 setlcf exflg2,fnrcba /* remember there's data */ 01615 597 chk050 setlcl result,resinc /* incomplete message */ 01620 598 retsub 599 01621 600 chk060 calasm wrpchn /* turn output into input */ 01624 601 inscan setrt,chk070 /* turn on returned msg bit */ 01627 602 chk070 inscan chksnc,chk080 /* check for sync-block */ 01632 603 addlcl wrpcnt,-1 /* yes: need one less to start sending again */ 01635 604 chk080 signal sndout /* ask for more */ 01637 605 sendin 01640 606 goto chk050 607 01642 608 getlsw chstr (rescan,search,stx,ignore,ignore,cmask,fcs1sb,fcs1sb) 01647 609 setrt chstr (rescan,search,stx,ignore,ignore,setbit,fcs1rt) assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 38 subroutines end of binary card 00000026 01653 610 chksnc chstr (rescan,search,stx,ignore,ignore,ignore,cmask,fcs2sy,fcs2 01653 611 etc bt) assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 39 subroutines 613 ********************************************************************** 614 * 615 * divide connect time by transmit repeat time to get 616 * initialization try count 617 * 618 ********************************************************************** 619 01660 620 calcbl subr clc 01663 0 07 226 2111 621 lda temp1-* 01664 0335 21 0 622 lrs 17 01665 0 21 225 2112 623 dvf temp2-* 01666 322 777 0 624 iera -1 /* complement */ 01667 773 001 0 625 iaa 1 01670 0 17 221 2111 626 sta temp1-* 01671 627 return calcbl 628 629 630 ********************************************************************** 631 * 632 * turn current output chain back into input 633 * 634 ********************************************************************** 635 01673 636 wrpchn subr wrp,(x2) 01701 1 20 005 0 637 szn t.icp,1 /* input chain is programming error */ 01702 0 74 002 1704 638 tze 2 01703 000000 0 639 oct 0 /* crash */ 01704 1 07 012 0 640 lda t.ocp,1 /* get output chain start */ 01705 1 17 005 0 641 sta t.icp,1 01706 1 56 012 0 642 stz t.ocp,1 01707 1 56 007 0 643 stz t.icpl,1 /* prepare to count length of chain */ 01710 1 07 005 0 644 lda t.icp,1 01711 0 17 027 1740 645 wrp010 sta wrplst-* 01712 4 10 027 1741 646 tsy a.a001-*,* setbpt 01713 0332 00 0 647 cax2 01714 2 07 001 0 648 lda bf.siz,2 /* get word with size */ 01715 0 34 020 1735 649 ana wrp030-* end of binary card 00000027 01716 2337 17 0 650 arl 15 /* convert to buffers */ 01717 773 001 0 651 iaa 1 01720 1 16 007 0 652 asa t.icpl,1 01721 2 20 000 0 653 szn bf.nxt,2 01722 0 74 003 1725 654 tze wrp020-* 01723 2 07 000 0 655 lda bf.nxt,2 01724 0 71 765 1711 656 tra wrp010-* 01725 0 07 011 1736 657 wrp020 lda wrp040-* /* flag last buffer */ 01726 2 72 001 0 658 orsa bf.flg,2 01727 0 07 010 1737 659 lda wrp050-* 01730 2 32 001 0 660 ansa bf.flg,2 01731 0 07 007 1740 661 lda wrplst-* assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 40 subroutines 01732 1 17 006 0 662 sta t.ilst,1 01733 663 return wrpchn 664 01735 700000 0 665 wrp030 vfd o18/bufsmk 01736 020000 0 666 wrp040 vfd o18/bffbrk 01737 737777 0 667 wrp050 vfd o18//bfflst 01740 668 wrplst bss 1 669 01741 0 13000 3 670 a.a001 ind setbpt assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 41 subroutines 672 ********************************************************************** 673 * 674 * analyze fcs chars to build new mask 675 * 676 * sets temp2 to 1 if some bits went off 677 * sets temp3 to 1 if system wait-a-bit on 678 * 679 ********************************************************************** 680 01742 681 wabchk subr wab 01745 0 56 145 2112 682 stz temp2-* 01746 0 56 145 2113 683 stz temp3-* 01747 0 07 023 1772 684 lda wab020-* /* get address of first work char */ 01750 4 10 023 1773 685 tsy wab030-*,* /* =adbyte */ 01751 000000 0 686 oct 0 /* impossible */ 01752 3 07 200 0 687 lda 0,3,b.0 /* get first fcs */ 01753 222 100 0 688 icana fcs1sb /* check for system bit */ 01754 0 74 002 1756 689 tze 2 /* off */ 01755 0 76 136 2113 690 aos temp3-* 01756 0336 11 0 691 als 9 /* align in left half */ 01757 3 37 300 0 692 ora 0,3,b.1 /* get second fcs */ 01760 0 34 011 1771 693 ana wab010-* /* isolate wait-a-bits */ 01761 6333 00 0 694 caq /* save copy of new mask */ 01762 322 777 0 695 iera -1 01763 0 34 126 2111 696 ana temp1-* /* 1's here means wait-a-bits went off */ end of binary card 00000028 01764 0 74 002 1766 697 tze 2 /* no change */ 01765 0 76 125 2112 698 aos temp2-* 01766 0 57 123 2111 699 stq temp1-* /* new mask */ 01767 700 return wabchk 701 01771 017117 0 702 wab010 vfd o18/allon 01772 000471 0 703 wab020 vfd o18/wrkch1 01773 0 03000 3 704 wab030 ind adbyte assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 42 subroutines 706 ********************************************************************** 707 * 708 * copy the character in wrkch1 into the tib variable 709 * hblkno right justified 710 * 711 ********************************************************************** 712 01774 713 setbno subr sbn 01777 0 07 012 2011 714 lda sbn005-* /* byte address of interest */ 02000 4 10 012 2012 715 tsy sbn010-*,* /* =adbyte */ 02001 000000 0 716 oct 0 02002 3 47 200 0 717 ldq 0,3,b.0 /* get the character we want */ 02003 0 07 010 2013 718 lda sbn015-* /* tib extension addr */ 02004 4333 00 0 719 cax3 /* cvaddr needs addr in x3 */ 02005 4 10 007 2014 720 tsy sbn020-*,* /* =cvaddr */ 02006 3 57 000 0 721 stq 0,3 /* store the character */ 02007 722 return setbno 723 02011 000471 0 724 sbn005 vfd o18/wrkch1 02012 0 03000 3 725 sbn010 ind adbyte 02013 777741 0 726 sbn015 vfd o18/hblkno 02014 0 12000 3 727 sbn020 ind cvaddr assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 43 subroutines 729 ********************************************************************** 730 * 731 * routine to check dia for pending input not yet sent to 732 * mainframe. the assumption here is that if the dia is 733 * falling behind, maybe multics is slow, or is having a 734 * problem, and we better not send too much more input. 735 * since it is too hard to attempt hasp flow control from 736 * this level, input will be nakked until the dia can 737 * catch up. 738 * 739 ********************************************************************** 740 02015 741 chkdia clrlcf exflg2,dialos /* assume ok to send */ 02020 742 tstfld t.dcp,0,ckd030 /* all ok, return */ 02024 743 setime -100 /* first, wait .1 seconds */ 02026 744 wait ckd010,ckd040,bsctst 02032 745 status 0,dsr,bshang end of binary card 00000029 746 02036 747 ckd010 tstfld t.dcp,0,ckd030 /* .1 wait worked */ 02042 748 setime -500 /* wait a little longer */ 02044 749 wait ckd020,ckd040,bsctst 02050 750 status 0,dsr,bshang 751 02054 752 ckd020 tstfld t.dcp,0,ckd030 /* .5 wait worked */ 02060 753 setlcf exflg2,dialos /* can't wait forever: nak it */ 754 02063 755 ckd030 retsub 756 02064 757 ckd040 setlcf exflg2,outarv /* dont fail to notice output */ 02067 758 waitm assm 01 04-18-84 09.707 hasp_tables -- control tables for hasp protocol page 44 subroutines 760 ********************************************************************** 761 * 762 * test state handler 763 * 764 ********************************************************************** 765 02070 766 testst tstlcl ctlop,lcthtm,tst010 /* only hasp timers handled here */ 02074 767 waitm 02075 768 tst010 setlcv hcontm,ctlvl1 02100 769 setlcv hrcvtm,ctlvl2 end of binary card 00000030 02103 770 setlcv hxmttm,ctlvl3 02106 771 waitm 772 773 774 775 02107 776 punt punt 0 /* fnp crash on wierd errors */ 777 778 779 02111 780 temp1 bss 1 02112 781 temp2 bss 1 02113 782 temp3 bss 1 783 end of binary card 00000031 784 end hasp 2114 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 04-18-84 09.709 hasp_tables -- control tables for hasp protocol page 45 octal symbol references by sequence no. 460 ack0 70 70 124 3 adbyte 58 704 725 1741 a.a001 670 646 670 17117 allon 107 107 702 1000 alwbid 70 70 128 141 1000 autopl 70 70 121 20000 bffbrk 69 69 666 40000 bfflst 69 69 667 1 bf.flg 69 69 658 660 0 bf.nxt 69 69 653 655 1 bf.siz 69 69 648 777756 bidcnt 70 70 154 174 175 188 208 209 2 b.0 687 717 3 b.1 692 4 bscbad 55 578 5 bsccki 52 271 330 455 522 6 bsccko 53 573 1 bscrd 51 158 196 243 306 430 512 7 bsctst 48 137 139 222 363 744 749 2 bscwt 49 10 bscwtr 50 165 192 239 326 347 379 427 509 11 bshang 54 134 136 175 209 223 364 745 750 700000 bufsmk 69 69 665 1660 calcbl 620 153 187 620 627 4000 cfgok 70 70 118 1521 chk010 572 568 572 1554 chk020 582 576 577 582 1560 chk030 585 569 574 575 585 1571 chk035 589 586 589 1606 chk036 593 591 593 1612 chk040 596 589 596 1615 chk050 597 570 580 583 597 606 1621 chk060 600 587 600 1627 chk070 602 601 602 1635 chk080 604 602 604 1 chk 611 76 77 78 82 83 84 91 529 530 531 559 560 608 609 611 2015 chkdia 741 277 383 484 741 1507 chkout 568 218 227 280 366 371 568 1653 chksnc 610 602 610 60 chval 611 76 77 78 82 83 84 91 529 530 531 559 560 608 609 611 2 c.rcrq 67 67 68 40 c.rdtr 67 67 68 2 c.rrec 67 67 68 20000 c.rrqs 67 67 68 200 c.rsup 67 67 68 200 c.rtre 67 67 68 10 c.rxmt 67 67 68 1000 c.sbrk 67 67 68 1 c.scrq 67 67 68 20 c.sdtr 67 67 68 assm 01 04-18-84 09.709 hasp_tables -- control tables for hasp protocol page 46 octal symbol references by sequence no. 2000 c.smrk 67 67 68 1 c.srec 67 67 68 10000 c.srqs 67 67 68 100 c.ssup 67 67 68 400 c.stat 67 67 68 100 c.stre 67 67 68 4000 c.strm 67 67 68 4 c.sxmt 67 67 68 2036 ckd010 747 744 747 2054 ckd020 752 749 752 2063 ckd030 755 742 747 752 755 2064 ckd040 757 744 749 757 507 cmask 68 68 529 608 611 40000 csreqa 70 70 121 410 413 470 400000 ctlmsg 70 70 119 777763 ctlop 70 70 137 138 167 169 201 203 251 252 267 268 291 292 319 320 342 343 355 356 451 452 472 474 504 505 766 777762 ctlvl1 70 70 168 202 473 768 777761 ctlvl2 70 70 769 777760 ctlvl3 70 70 770 12 cvaddr 59 727 400 datrcv 70 70 118 20000 dialos 70 70 121 278 384 485 741 753 20 dle 68 68 76 82 91 4 dsr 68 68 134 223 364 745 750 463 enq 70 70 78 84 470 etb 70 70 91 777744 exflg1 70 70 118 119 128 141 245 308 439 515 777743 exflg2 70 70 120 121 122 142 159 197 226 233 244 248 250 278 307 321 352 354 360 365 374 384 410 413 438 470 475 485 514 544 546 568 569 572 585 589 590 592 596 741 753 757 40 fcs1nr 96 96 559 560 17 fcs1pr 98 98 107 20 fcs1rt 97 97 559 609 100 fcs1sb 95 95 608 688 60 fcs2bt 103 103 529 531 611 17 fcs2pn 101 101 107 20 fcs2ra 104 104 529 60 fcs2sy 105 105 611 100 fcs2ty 100 100 107 400000 fnrcba 70 70 122 569 585 596 200000 fswabs 70 70 122 248 250 352 354 544 546 589 1474 getfcs 558 539 558 1642 getlsw 608 591 608 2 gotot 70 70 120 0 hasp 61 61 63 1110 haspwr 398 219 228 281 367 372 398 777741 hblkno 70 70 473 726 777757 hcontm 70 70 130 150 151 173 184 185 207 768 777751 hrcvtm 70 70 131 152 156 186 195 242 305 429 511 769 assm 01 04-18-84 09.709 hasp_tables -- control tables for hasp protocol page 47 octal symbol references by sequence no. 777753 hxmttm 70 70 132 220 362 770 503 ignore 68 68 76 78 529 530 531 559 560 608 609 611 12 inack 76 76 199 246 309 441 516 124 ini010 136 133 136 141 ini020 141 128 138 141 170 ini030 156 150 156 173 176 227 ini040 172 159 161 172 245 ini050 184 142 184 265 ini060 190 184 190 207 210 322 ini070 206 197 199 206 20 ininit 78 78 161 16 innak 77 77 260 312 444 518 1453 inp010 549 545 549 1470 inp020 554 539 547 550 554 1426 inproc 539 279 385 486 539 2 lctabd 70 70 138 16 lcthtm 70 70 766 220 libcb 88 88 91 300 lifcs1 89 89 91 200 lifcs2 90 90 91 1 lookot 70 70 120 16 lsthfr 70 70 251 355 15 lsthin 70 70 167 201 4 lstnak 70 70 267 291 319 342 451 504 6 lstwrc 70 70 472 100000 lswabs 70 70 122 233 321 360 374 590 592 0 macwk1 713 620 627 636 663 681 700 713 722 1 macwk2 713 620 636 681 713 4000 master 70 70 142 475 501 match 68 68 76 77 78 36 m.cnt1 66 66 274 333 458 525 40 m.cnt2 66 66 261 314 446 519 42 m.cnt3 66 66 336 44 m.cnt4 66 66 257 498 46 m.cnt5 66 66 254 358 50 m.cnt6 66 66 284 388 489 517 movchr 68 68 530 559 360 mst010 225 222 225 373 mst020 231 222 231 282 377 mst025 233 233 265 269 410 mst026 236 233 236 413 mst030 238 235 238 295 444 mst031 250 248 250 454 mst032 253 249 253 462 mst035 257 244 257 467 mst040 260 246 260 507 mst045 266 264 266 520 mst050 271 260 271 533 mst055 274 245 274 540 mst060 277 272 273 277 assm 01 04-18-84 09.709 hasp_tables -- control tables for hasp protocol page 48 octal symbol references by sequence no. 560 mst065 284 278 284 563 mst070 286 258 275 286 575 mst075 290 288 290 604 mst080 294 289 294 340 mstidl 218 204 218 255 475 777767 nakcnt 70 70 232 263 264 287 288 304 315 316 338 339 425 447 448 500 501 4 nakksw 70 70 118 777766 naklmt 70 70 129 264 288 316 339 448 501 2 naksw 70 70 118 245 308 439 515 200000 needrv 70 70 119 40000 ntrsw 70 70 119 524 offbit 68 68 531 559 24 otack 82 82 163 234 322 375 30 otinit 84 84 190 26 otnak 83 83 294 345 507 32 otsidl 91 91 236 324 377 10000 outarv 70 70 121 226 365 568 572 757 1421 outcbt 531 417 531 1410 outcra 528 411 528 1415 outgbn 530 414 530 40 pollok 70 70 120 400 pollsw 70 70 121 20 polpnd 70 70 120 2107 punt 776 163 190 234 236 294 322 324 345 375 377 414 417 507 551 776 113 quit 68 68 266 290 318 341 450 503 4 resack 70 70 219 228 272 281 331 367 372 456 523 574 593 510 rescan 68 68 76 77 78 529 530 531 559 560 608 609 611 0 resinc 70 70 576 597 6 resntr 70 70 273 332 457 524 575 5 resnul 70 70 577 777764 result 70 70 219 228 272 273 281 331 332 367 372 456 457 523 524 574 575 576 577 593 597 10000 rflag 70 70 118 100000 rvisw 70 70 119 2011 sbn005 724 714 724 2012 sbn010 725 715 725 2013 sbn015 726 718 726 2014 sbn020 727 720 727 502 search 68 68 529 530 531 559 560 608 609 611 100 selop 70 70 120 523 setbit 68 68 560 609 1774 setbno 713 415 713 722 13 setbpt 57 670 514 seteom 68 68 82 83 84 91 1503 setnr 560 551 560 1647 setrt 609 601 609 200000 s.acr 67 67 68 400000 s.ads 67 67 68 400000 s.bdmk 67 67 68 assm 01 04-18-84 09.709 hasp_tables -- control tables for hasp protocol page 49 octal symbol references by sequence no. 200000 s.bmk 67 67 68 1000 s.brch 67 67 68 400 s.brk 67 67 68 1 s.cd 67 67 68 2 s.cts 67 67 68 100000 s.dlo 67 67 68 4 s.dsr 67 67 68 4000 s.exh 67 67 68 10000 s.fcse 67 67 68 40000 s.isd 67 67 68 40 s.mark 67 67 68 400000 s.pbyt 67 67 68 200 s.prex 67 67 68 10000 s.prty 67 67 68 40000 s.pwi 67 67 68 200000 s.rabt 67 67 68 100000 s.rbt 67 67 68 2000 s.ring 67 67 68 40000 s.rto 67 67 68 10 s.sprc 67 67 68 20 s.st 67 67 68 100 s.term 67 67 68 20000 s.xte 67 67 68 611 slv000 303 170 303 613 slv005 304 304 381 616 slv010 305 305 328 349 637 slv020 312 309 312 657 slv025 318 316 318 666 slv026 321 317 321 677 slv027 324 321 324 702 slv028 325 323 325 710 slv030 330 312 330 723 slv035 333 308 333 730 slv040 336 307 336 733 slv041 337 334 337 389 745 slv045 341 339 341 754 slv046 345 340 345 765 slv050 352 310 352 773 slv051 354 352 354 1003 slv052 357 353 357 1015 slv053 362 360 362 1027 slv055 365 363 365 1060 slv061 377 374 377 1063 slv062 378 376 378 1071 slv080 383 331 332 383 1103 slv081 388 384 388 1041 slvidl 371 361 363 371 386 476 105 sndout 68 68 400 582 604 1 soh 68 68 78 84 1 srec 68 68 157 303 assm 01 04-18-84 09.709 hasp_tables -- control tables for hasp protocol page 50 octal symbol references by sequence no. 37 sthasp 117 46 117 2 stx 68 68 91 529 530 531 559 560 608 609 611 2111 temp1 780 151 154 185 188 540 549 621 626 696 699 780 2112 temp2 781 152 186 550 623 682 698 781 2113 temp3 782 545 683 690 782 777745 testrt 70 70 123 2070 testst 766 123 766 40 tfhang 65 65 136 20000 tfmrcv 65 65 117 40 tfwrd1 136 117 136 0 tfwrd2 136 117 136 462 tiback 70 70 76 82 124 464 tibnak 70 70 77 83 4 timout 70 70 120 159 197 244 307 438 514 26 t.dcp 65 65 742 747 752 5 t.icp 65 65 637 641 644 7 t.icpl 65 65 643 652 6 t.ilst 65 65 662 12 t.ocp 65 65 640 642 2075 tst010 768 766 768 20000 ttdsw 70 70 119 1771 wab010 702 693 702 1772 wab020 703 684 703 1773 wab030 704 685 704 1742 wabchk 681 542 681 700 777742 wabmsk 70 70 125 540 549 200 wacksw 70 70 118 471 wrkch1 70 70 530 559 703 724 472 wrkch2 70 70 559 1711 wrp010 645 645 656 1725 wrp020 657 654 657 1735 wrp030 665 649 665 1736 wrp040 666 657 666 1737 wrp050 667 659 667 1673 wrpchn 636 600 636 663 777740 wrpcnt 70 70 126 552 586 603 1740 wrplst 668 645 661 668 1134 wrt010 417 411 417 1142 wrt020 426 426 449 453 517 520 1166 wrt030 444 441 444 1206 wrt035 450 448 450 1217 wrt040 455 444 455 1232 wrt045 458 439 458 1237 wrt050 468 442 468 1240 wrt060 469 469 487 1247 wrt061 472 470 472 1257 wrt065 475 471 475 1265 wrt070 484 456 457 484 523 524 1277 wrt071 489 485 489 1304 wrt080 498 438 498 514 assm 01 04-18-84 09.709 hasp_tables -- control tables for hasp protocol page 51 octal symbol references by sequence no. 1307 wrt081 499 459 490 499 526 1321 wrt085 503 501 503 1330 wrt086 507 502 507 1360 wrt090 518 516 518 1370 wrt100 522 518 522 1403 wrt105 525 515 525 47847 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