assm 01 09-28-82 16.936 hasp_tables -- control tables for hasp protocol page 1 preface program break 1724 common length 0 v count bits 5 primary symdef entry sthasp 32 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 end of binary card 00000002 assm 01 09-28-82 16.936 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 09-28-82 16.936 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 * 40 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 41 42 symdef sthasp start of hasp tables 43 44 symref bsctst bisync test state handler 45 symref bscwt bisync write routine 46 symref bscwtr bisync write/read routine 47 symref bscrd bisync read routine 48 symref bsccki bisync check input routine 49 symref bsccko bisync check output routine 50 symref bshang bisync hangup routine 51 symref bscbad bisync report bad block routine 52 53 symref adbyte interpreter byte addressing rtn 54 symref cvaddr interpreter word addressing rtn 55 00000 56 hasp null 57 00000 58 start hasp,,w3hpsm0a0000 00012 60 tib assm 01 09-28-82 16.940 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 09-28-82 16.940 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.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.940 hasp_tables -- control tables for hasp protocol page 6 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.940 hasp_tables -- control tables for hasp protocol page 7 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.940 hasp_tables -- control tables for hasp protocol page 8 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 61 meters assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 9 system-wide meters 000720 .mdilc set 464 cumulative no. of channels dialed 000722 .mdilu set 466 updates of .mdilc 000724 .mspav set 468 cumulative space available 000726 .mspau set 470 updates of .mspav 000730 .mimbx set 472 cumulative number of mbxes in use 000732 .mimbu set 474 updates of .mimbx 000734 .mndil set 476 current no. of channels dialed 000735 .malof set 477 number of space allocation failures 000736 .mdias set 478 abnormal dia status 000737 .mpool set 479 total size of buffer pool (in words) 000740 .mbufa set 480 number of buffer allocations 000742 .mbfpa set 482 number of buffers pre-allocated 000744 .mupab set 484 used a pre-allocated buffer 000746 .mpanf set 486 no pre-allocated buffer available 000030 .mleng equ .mpanf+2-.mdilc length of system-wide meters assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 10 per-channel meters meters for all channels 000000 m.dql equ 0 cumulative length of dia request queue 000002 m.dqu equ m.dql+2 updates of m.dql 000004 m.nst equ m.dqu+2 cumulative no. of pending status 000006 m.nsu equ m.nst+2 updates of m.nst 000010 m.over equ m.nsu+2 output overlaps 000011 m.par equ m.over+1 parity errors 000012 m.ssqo equ m.par+1 software status queue overflows 000013 m.hsqo equ m.ssqo+1 hardware status queue overflows 000014 m.inaf equ m.hsqo+1 input allocation failures 000015 m.cql equ m.inaf+1 current length of dia request queue 000016 m.exh equ m.cql+1 exhaust status 000020 m.xte equ m.exh+2 software xte status 000022 m.leng equ m.xte+2 length of common meters (must be even) additional meters for asynchronous channels 000022 m.prex equ m.leng pre-exhaust status 000024 m.ebof equ m.prex+2 echo buffer overflows 000026 m.quit equ m.ebof+2 bell-quits 000030 m.asyl equ m.quit+2 total length of asynchronous meters (must be even) additional meters for synchronous channels 000022 m.nim equ m.leng number of input messages 000024 m.iml equ m.nim+2 cumulative length of input 000026 m.mini equ m.iml+2 minimum length of input message 000027 m.maxi equ m.mini+1 maximum length of input message assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 11 per-channel meters 000030 m.nom equ m.maxi+1 number of output messages 000032 m.oml equ m.nom+2 cumulative length of output 000034 m.mino equ m.oml+2 minimum length of output message 000035 m.maxo equ m.mino+1 maximum length of output message 000036 m.cnt1 equ m.maxo+1 first type of counter 000040 m.cnt2 equ m.cnt1+2 second type of counter 000042 m.cnt3 equ m.cnt2+2 third type of counter 000044 m.cnt4 equ m.cnt3+2 fourth type of counter 000046 m.cnt5 equ m.cnt4+2 fifth type of counter 000050 m.cnt6 equ m.cnt5+2 sixth type of counter 000052 m.cnt7 equ m.cnt6+2 seventh type of counter 000054 m.cnt8 equ m.cnt7+2 eighth type of counter 000056 m.synl equ m.cnt8+2 total length of synchronous meters 00012 62 csbits assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 12 control and status bits control bits 000001 c.srec bool 000001 set receive mode 000002 c.rrec bool 000002 reset receive mode 000004 c.sxmt bool 000004 set transmit mode 000010 c.rxmt bool 000010 reset transmit mode 000020 c.sdtr bool 000020 set data terminal ready 000040 c.rdtr bool 000040 reset data terminal ready 000100 c.ssup bool 000100 set supervisory transmit mode 000100 c.stre bool 000100 set tally runout enable (hdlc) 000200 c.rsup bool 000200 reset supervisory transmit mode 000200 c.rtre bool 000200 reset tally runout enable (hdlc) 000400 c.stat bool 000400 store status 001000 c.sbrk bool 001000 send line break 002000 c.smrk bool 002000 store marker status 004000 c.strm bool 004000 store terminate status 010000 c.srqs bool 010000 set request to send 020000 c.rrqs bool 020000 reset request to send 040000 c.pad bool 040000 unused 100000 c.cmd bool 100000 indicates cmd subop 400000 c.scmd bool 400000 indicates supplementary cmd subop the following must be used in the optional fields to the cmd (or contrl) macros in the control_tables 000001 c.scrq bool 000001 set call request 000002 c.rcrq bool 000002 reset call request assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 13 control and status bits status bits 000001 s.cd bool 000001 carrier detect 000002 s.cts bool 000002 clear to send 000004 s.dsr bool 000004 data set ready 000010 s.sprc bool 000010 supervisory receive mode 000020 s.st bool 000020 status requested 000040 s.mark bool 000040 marker status 000100 s.term bool 000100 terminate status 000200 s.prex bool 000200 pre-exhaust 000400 s.brk bool 000400 line break received 001000 s.brch bool 001000 break character received 002000 s.ring bool 002000 ring 004000 s.exh bool 004000 exhaust status 010000 s.prty bool 010000 parity error 010000 s.fcse bool 010000 frame check sequence error (hdlc) 020000 s.xte bool 020000 transfer timing error 040000 s.pwi bool 040000 acu power indicator 100000 s.dlo bool 100000 acu data line occupied 200000 s.acr bool 200000 acu abandon call and retry 400000 s.ads bool 400000 acu raised data set status the following four bits share the values of acu status but can never be misinterpreted. 040000 s.rto bool 040000 receive time out (bsc) 040000 s.isd bool 040000 idle state detect (hdlc) 100000 s.rbt bool 100000 receive block termination (bsc & hdlc) assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 14 control and status bits 200000 s.bmk bool 200000 marker status (bsc) 200000 s.rabt bool 200000 receive abort (hdlc) 400000 s.bdmk bool 400000 delayed marker status (bsc) 400000 s.pbyt bool 400000 partial byte (hdlc) bits in common between standard status 000177 s.tib bool 000177 and tib status dataset status bits in standard status 000017 s.dss bool 000017 and tib status asynchronous configuration bits 000001 fg.icw bool 000001 icw (two send icw's) 000002 fg.lpr bool 000002 lateral parity receive 000004 fg.lps bool 000004 lateral parity send 000010 fg.lpo bool 000010 lateral parity odd 000020 fg.5bt bool 000020 5-bit character mode 000040 fg.6bt bool 000040 6-bit character mode 000100 fg.7bt bool 000100 7-bit character mode 000200 fg.8bt bool 000200 8-bit character mode 000400 fg.beb bool 000400 ebcdic mode (bsc) 000400 fg.itf bool 000400 interfame time fill (hdlc) 001000 fg.btr bool 001000 transparent mode (bsc) 002000 fg.cct bool 002000 enable cct 00012 63 tconst assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 15 flag and control bit definitions 000001 gbf6up bool 000001 cs up global switch device types 000001 ttasci equ 1 ascii terminals, cdi, tty 33, 35, 37, etc 000002 tt1050 equ 2 ibm 1050 000003 tt2741 equ 3 ibm 2741, trendata, dura, etc. 000004 ttards equ 4 ards, tektronix 000005 ttsync equ 5 general sync devices 000006 ttg115 equ 6 remote computer interface, g115 000007 ttbsc equ 7 binary synchronous communications 000010 tt202c equ 8 ascii on 202c6 modem 000011 ttvip equ 9 vip terminal 000020 ttpvip equ 16 polled vip 000021 ttx25l equ 17 x.25 link access procedure (lap) 000023 ttcolt equ 19 colts (online t&d executive) signal types 000113 quit bool 113 dia cmd, break received 000100 dialup bool 100 dia cmd, accept new terminal 000101 hangup bool 101 dia cmd, disconnected line 000114 wrutim bool 114 dia cmd, wru timeout 000105 sndout bool 105 dia cmd, send output 000120 acupwi bool 120 dia cmd, no power to acu 000121 acudlo bool 121 dia cmd, data line occupied 000122 acuacr bool 122 dia cmd, dial out failed 000123 acung bool 123 dia cmd, request for acu is invalid control types 000001 srec equ c.srec set receive mode 000002 rrec equ c.rrec reset receive 000004 sxmit equ c.sxmt set xmit mode 000010 rxmit equ c.rxmt reset xmit 000020 sdtr equ c.sdtr set data terminal ready 000040 rdtr equ c.rdtr reset dtr 000100 ssup equ c.ssup set supervisory xmit 000200 rsup equ c.rsup reset supervisory xmit 000400 stat equ c.stat store status 001000 sbrk equ c.sbrk send line break 002000 smark equ c.smrk send marker status 004000 sterm equ c.strm send terminate status 010000 srts equ c.srqs set request to send 020000 rrts equ c.rrqs reset request to send 000001 scrq equ c.scrq set call request 000002 rcrq equ c.rcrq reset call request 000100 stroe equ c.stre set tally runout enable (hdlc) 000200 rtroe equ c.rtre reset tally runout enable (hdlc) assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 16 flag and control bit definitions status bits 000001 cd equ s.cd carrier detect 000002 cts equ s.cts clear to send 000004 dsr equ s.dsr data set ready 000010 suprec equ s.sprc supervisory receive 000020 st equ s.st status requested 000400 break equ s.brk line break received 001000 brkchr equ s.brch break char received 002000 ring equ s.ring ring 000100 term equ s.term terminate status 000040 marker equ s.mark marker status 004000 exh equ s.exh exhaust status 000200 prexh equ s.prex pre-exhaust status 010000 parity equ s.prty parity error 020000 xte equ s.xte transfer timing error 040000 pwi equ s.pwi power indicator on acu 100000 dlo equ s.dlo data line occupied (acu) 400000 ads equ s.ads dialed station has answered data set is in data mode (acu) 200000 acr equ s.acr abandon call and retry (acu) 040000 rcvto equ s.rto rcv time out 100000 bscrcv equ s.rbt bsc terminate 200000 bscmrk equ s.bmk bsc marker 400000 bscdmk equ s.bdmk bsc delayed marker 010000 fcserr equ s.fcse frame check sequence error (hdlc) 040000 idlesd equ s.isd idle state detect (hdlc) 100000 rcvtrm equ s.rbt receive terminate (hdlc) 200000 rcvabt equ s.rabt receive abort (hdlc) 400000 parbyt equ s.pbyt partial byte (hdlc) assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 17 flag and control bit definitions output types 000401 adprtr bool 401 insert printer addr string 000402 adkybd bool 402 insert keyboard addr string 000403 outmsg bool 403 insert output msg 000404 repeat bool 404 insert next char n times various characters matched and sent 000064 eoa bool 64 eoa from/to 2741/1050 000001 minus bool 1 minus char from 1050 000055 ibmnl bool 55 cr nl from/to 2741/1050 000075 ibmpad bool 75 2741/1050 pad character(idle) 000074 ibmeot bool 74 2741/1050 eot char 000174 eotshf bool 174 eot w/case shift 000035 ibmbs bool 35 backspace from 2741 000057 ibmtab bool 57 tab from 2741 000042 ibmsl bool 42 2741 slash 000024 ibm0 bool 24 2741 zero 000044 ibm9 bool 44 2741 nine 000076 ibmprf bool 76 2741 prefix code 000003 ibmpls bool 3 2741 plus sign 000034 ibmup bool 34 2741 upshift 000037 ibmdwn bool 37 2741 downshift 000012 nl bool 12 ascii new-line 000015 cr bool 15 ascii carriage return 000000 pad bool 0 ascii pad char 000020 dle bool 20 ascii data link escape 000004 eot bool 4 ascii end of transmission 000033 esc bool 33 ascii escape char 000014 ff bool 14 ascii form feed char 000011 tab bool 11 ascii tab char 000010 bs bool 10 ascii backspace 000040 space bool 40 ascii space 000005 awru bool 5 ascii "who are you?" 000000 null bool 0 nothing 000006 ack bool 6 ascii ack 000025 nak bool 25 ascii nak 000001 soh bool 1 ascii start of header 000026 syn bool 26 ascii syn character 000002 stx bool 2 ascii start of text char 000003 etx bool 3 ascii end of text char 000007 bel bool 007 ascii bell character 000150 h bool 150 ascii h (esc mtr on) 000154 l bool 154 ascii l (used by vip for ff) 000161 q bool 161 ascii q (used by vip for quit) 000100 atchar bool 100 ascii at sign (used to mark reset-read) 000777 nochar bool 777 used in cmt to match no character scan subop types assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 18 flag and control bit definitions 000501 match bool 501 match the char exactly 000502 search bool 502 search until match 000503 ignore bool 503 skip to next char, block check unchanged 000504 sbcc bool 504 start the bcc computation 000505 endchn bool 505 point to last character in chain 000506 cbcc bool 506 compare current with bcc char 000507 cmask bool 507 compare char with mask 000510 rescan bool 510 reset scan position to first char in chai 000511 strlrc bool 511 start lrc computation 000512 outlrc bool 512 insert lrc into chain 000513 cmplrc bool 513 compare lrc accumulation vs current char 000514 seteom bool 514 set last buffer in message flag ( for bld 000515 replac bool 515 replace current char 000516 cmplst bool 516 compare current vs list of chars for equa 000517 movchr bool 517 move current char to tib extension 000520 movmsk bool 520 movchr with masking of current char 000521 count bool 521 count number of chars scanned 000522 serch2 bool 522 search for one of two chars 000523 setbit bool 523 turn on bits in current char 000524 offbit bool 524 turn off bits in current char 000525 chktrm bool 525 check the sync termination char 000526 mvlst2 bool 526 move last two chars to tib ext 000527 nxtchr bool 527 update block check and skip to next char 00012 64 buffer assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol 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 65 bscdat assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol 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.940 hasp_tables -- control tables for hasp protocol 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.940 hasp_tables -- control tables for hasp protocol 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.940 hasp_tables -- control tables for hasp protocol 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 */ assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 24 hasp symbol definitions 68 69 /* input scan control strings */ 70 00012 71 inack chstr (rescan,match,dle,ignore,match,tiback) 00016 72 innak chstr (rescan,match,tibnak) 00020 73 ininit chstr (rescan,match,soh,ignore,match,enq) 74 75 /* output bldmsg control strings */ 76 00024 77 otack chstr (dle,tiback,seteom) 00026 78 otnak chstr (tibnak,seteom) 00030 79 otinit chstr (soh,enq,seteom) 80 81 /* definitions of fcs bits */ 82 000100 83 fcs1sb bool 100 /* system wait-a-bit */ 000040 84 fcs1nr bool 040 /* 1 = some device went not-ready */ 000020 85 fcs1rt bool 020 /* 1 = this is output being returned */ 000017 86 fcs1pr bool 017 /* printer wait-a-bits */ 87 000100 88 fcs2ty bool 100 /* tty wait-a-bit */ 000017 89 fcs2pn bool 017 /* punch wait-a-bits */ 90 000060 91 fcs2bt bool 060 /* contains block type set by cs */ 000020 92 fcs2ra bool 020 /* 01 = tell cs when block is sent */ 000060 93 fcs2sy bool 060 /* 11 = this is resync msg */ 94 017117 95 allon equ 512*fcs1pr+fcs2ty+fcs2pn /* "1" for all device wait-a-bits */ 96 /* includes fcs1 and fcs2 */ assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 25 hasp initialization 98 ********************************************************************** 99 * 100 * wait for multics to perform proper initialization 101 * by watching for the 'allow bid' line control order 102 * 103 ********************************************************************** 104 00032 105 sthasp setflg tfmrcv /* we are msg-receive device */ 00035 106 clrlcf exflg1,naksw+nakksw+wacksw+datrcv+cfgok+rflag 00040 107 clrlcf exflg1,ttdsw+ntrsw+rvisw+needrv+ctlmsg 00043 108 clrlcf exflg2,lookot+gotot+timout+polpnd+pollok+selop 00046 109 clrlcf exflg2,pollsw+autopl+outarv+dialos end of binary card 00000003 00051 110 setlcl testrt,testst /* establish our test-state handler */ 00054 111 setchr tiback,ack0 00056 112 setlcl wabmsk,0 /* init all wait-a-bits off */ 00061 113 setlcl wrpcnt,0 /* don't need any sync-blocks to get started */ 114 00064 115 tstlcf exflg1,alwbid,ini020 /* initialization already done? */ 00070 116 setlcl naklmt,10 /* set default values */ 00073 117 setlcl hcontm,30 00076 118 setlcl hrcvtm,3 00101 119 setlcl hxmttm,2 00104 120 wait 0,0,ini010 /* watch for line status */ 00110 121 status 0,dsr,bshang /* don't miss hangups */ 122 00114 123 ini010 tstflg tfhang,bshang /* forced hangup */ end of binary card 00000004 00120 124 linctl ctlop,bsctst /* see if line status */ 00123 125 tstlcl ctlop,lctabd,ini020 /* if so, see if allow bid */ 00127 126 goto bsctst /* no, let bsc test state handler do it */ 127 00131 128 ini020 setlcf exflg1,alwbid /* setup complete */ 00134 129 tstlcf exflg2,master,ini050 /* master */ assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 26 hasp initialization 131 ********************************************************************** 132 * 133 * slave device initialization (cpu) 134 * 135 ********************************************************************** 136 00140 137 tstlcl hcontm,0,ini030 /* no connect timeout requested */ 00144 138 setlcv temp1,hcontm /* connect time limit */ 00147 139 setlcv temp2,hrcvtm /* receive time limit for waiting for connect */ 00152 140 calasm calcbl /* divide to calculate retry count */ 00155 141 setlcv bidcnt,temp1 142 00160 143 ini030 setimv hrcvtm /* wait for initialization message */ 00162 144 contrl srec 00164 145 calsub bscrd end of binary card 00000005 00166 146 tstlcf exflg2,timout,ini040 /* no message in time... */ 147 00172 148 inscan ininit,ini040 /* initialization message? */ 00175 149 dumpin 00176 150 bldmsg otack,punt /* yes: acknowledge */ 00201 151 holdot 00202 152 calsub bscwtr 00204 153 dmpout 00205 154 setlcl ctlop,lsthin /* report hasp initialized */ 00210 155 setlcl ctlvl1,0 /* as a slave */ 00213 156 linsta ctlop 00215 157 goto slvidl 158 00217 159 ini040 dumpin /* discard any garbage */ 00220 160 tstlcl hcontm,0,ini030 /* no connect timeout: retry */ 00224 161 addlcl bidcnt,1 00227 162 tstlcl bidcnt,0,bshang /* too many tries: punt */ 00233 163 goto ini030 end of binary card 00000006 assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 27 hasp initialization 165 ********************************************************************** 166 * 167 * master device initialization (terminal) 168 * 169 ********************************************************************** 170 00235 171 ini050 tstlcl hcontm,0,ini060 /* no connect timeout requested */ 00241 172 setlcv temp1,hcontm /* connect time limit */ 00244 173 setlcv temp2,hrcvtm /* receive time limit for waiting for replies */ 00247 174 calasm calcbl /* divide to calculate retry count */ 00252 175 setlcv bidcnt,temp1 176 00255 177 ini060 bldmsg otinit,punt /* initialization msg */ 00260 178 holdot 00261 179 calsub bscwtr /* write it */ 00263 180 dmpout 181 00264 182 setimv hrcvtm 00266 183 calsub bscrd /* wait for reply */ 00270 184 tstlcf exflg2,timout,ini070 /* no response */ 185 00274 186 inscan inack,ini070 /* good response? */ 00277 187 dumpin 00300 188 setlcl ctlop,lsthin /* report hasp initialized */ 00303 189 setlcl ctlvl1,1 /* as a master */ end of binary card 00000007 00306 190 linsta ctlop 00310 191 goto mstidl 192 00312 193 ini070 dumpin /* throw away and try again */ 00313 194 tstlcl hcontm,0,ini060 /* no connect timeout so retry */ 00317 195 addlcl bidcnt,1 00322 196 tstlcl bidcnt,0,bshang /* too many tries */ 00326 197 goto ini060 assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 28 hasp idle state handlers 199 ********************************************************************** 200 * 201 * master channel idle state handler 202 * 203 ********************************************************************** 204 00330 205 mstidl calsub chkout /* see if output ready */ 00332 206 tstlcl result,resack,haspwr /* yes */ 00336 207 setimv hxmttm /* we ack every two seconds */ 208 00340 209 wait mst020,mst010,bsctst 00344 210 status 0,dsr,bshang 211 00350 212 mst010 dumpin /* just in case */ 00351 213 setlcf exflg2,outarv /* output arrived */ end of binary card 00000008 00354 214 calsub chkout /* examine it */ 00356 215 tstlcl result,resack,haspwr /* ready to go */ 00362 216 waitm 217 00363 218 mst020 dumpin /* nothing to write: send an ack */ 00364 219 setlcl nakcnt,0 00367 220 mst025 bldmsg otack,punt 00372 221 mst030 holdot 00373 222 calsub bscwtr /* write the ack */ 00375 223 dmpout 224 00376 225 setimv hrcvtm /* wait for reply */ 00400 226 calsub bscrd 00402 227 tstlcf exflg2,timout,mst035 /* timeout */ 00406 228 tstlcf exflg1,naksw,mst055 /* crc error */ 00412 229 inscan inack,mst040 /* is it an ack? */ 00415 230 dumpin /* yes: discard it ... */ 00416 231 meter2 m.cnt5,1 /* ... and count a trip through idle loop */ 00421 232 goto mstidl end of binary card 00000009 233 00423 234 mst035 meter2 m.cnt4,1 /* count timeout waiting for reply */ 00426 235 goto mst070 236 00430 237 mst040 inscan innak,mst050 /* was it a nak? */ 00433 238 meter2 m.cnt2,1 /* yes: count nak to our output ... */ 00436 239 dumpin 00437 240 addlcl nakcnt,1 00442 241 tstlcv nakcnt,naklmt,mst045 /* report nak limit to mcs? */ 00446 242 goto mst025 /* no: retry the ack */ 00450 243 mst045 setlcl ctlop,lstnak /* yes */ 00453 244 linsta ctlop 00455 245 goto mst025 /* retry the ack */ 246 00457 247 mst050 calasm bsccki /* detailed scan */ assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 29 hasp idle state handlers 00462 248 tstlcl result,resack,mst060 /* good */ 00466 249 tstlcl result,resntr,mst060 end of binary card 00000010 00472 250 mst055 meter2 m.cnt1,1 /* bad input: count nak we send */ 00475 251 goto mst070 252 00477 253 mst060 calsub chkdia /* be sure dia caught up */ 00501 254 tstlcf exflg2,dialos,mst065 /* no, must nak for breather */ 00505 255 calsub inproc /* ship good data */ 00507 256 calsub chkout /* anything more to write */ 00511 257 tstlcl result,resack,haspwr /* yes */ 00515 258 goto mst020 /* no, just ack */ 259 00517 260 mst065 meter2 m.cnt6,1 /* count inability to take input */ 261 00522 262 mst070 dumpin /* timeout or garbage */ 00523 263 addlcl nakcnt,1 00526 264 tstlcv nakcnt,naklmt,mst075 /* report nak limit to mcs? */ 00532 265 goto mst080 /* no: just send nak */ 00534 266 mst075 setlcl ctlop,lstnak /* yes */ 00537 267 linsta ctlop end of binary card 00000011 268 00541 269 mst080 bldmsg otnak,punt /* send nak */ 00544 270 goto mst030 assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 30 hasp idle state handlers 272 ********************************************************************** 273 * 274 * slave channel idle state handler 275 * 276 ********************************************************************** 277 00546 278 slvidl contrl srec 00550 279 slv005 setlcl nakcnt,0 00553 280 slv010 setimv hrcvtm 00555 281 calsub bscrd 00557 282 tstlcf exflg2,timout,slv040 /* timeout */ 00563 283 tstlcf exflg1,naksw,slv035 /* crc error */ 00567 284 inscan inack,slv020 /* ack? */ 00572 285 goto slv050 /* yes */ 286 00574 287 slv020 inscan innak,slv030 /* nak? */ 00577 288 dumpin /* yes: flush it ... */ 00600 289 meter2 m.cnt2,1 /* ... count nak to our output ... */ 00603 290 addlcl nakcnt,1 00606 291 tstlcv nakcnt,naklmt,slv025 /* ... report nak limit to mcs? ... */ end of binary card 00000012 00612 292 goto slv026 /* ... ... no */ 00614 293 slv025 setlcl ctlop,lstnak /* ... ... yes */ 00617 294 linsta ctlop 00621 295 slv026 bldmsg otack,punt /* ... resend the ack ... */ 00624 296 holdot 00625 297 calsub bscwtr 00627 298 dmpout 00630 299 goto slv010 /* ... and not a completed cycle */ 300 00632 301 slv030 calasm bsccki /* detailed scan */ 00635 302 tstlcl result,resack,slv080 /* good data */ 00641 303 tstlcl result,resntr,slv080 00645 304 slv035 meter2 m.cnt1,1 /* bad input: count nak we send */ 00650 305 goto slv041 306 00652 307 slv040 meter2 m.cnt3,1 /* count timeout waiting for input */ 00655 308 slv041 dumpin /* discard garbage */ end of binary card 00000013 00656 309 addlcl nakcnt,1 00661 310 tstlcv nakcnt,naklmt,slv045 /* report nak limit to mcs? */ 00665 311 goto slv046 /* no: just send nak */ 00667 312 slv045 setlcl ctlop,lstnak /* yes */ 00672 313 linsta ctlop 314 00674 315 slv046 bldmsg otnak,punt /* send nak */ 00677 316 holdot 00700 317 calsub bscwtr 00702 318 dmpout 00703 319 goto slv010 320 assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 31 hasp idle state handlers 00705 321 slv050 dumpin /* discard ack */ 00706 322 meter2 m.cnt5,1 /* one more time through idle loop */ 00711 323 slv060 calsub chkout /* see if something to send */ 00713 324 tstlcl result,resack,haspwr 325 00717 326 slv070 bldmsg otack,punt /* send ack */ 00722 327 holdot 00723 328 calsub bscwtr end of binary card 00000014 00725 329 dmpout 00726 330 goto slv005 331 00730 332 slv080 calsub chkdia /* be sure dia caught up */ 00732 333 tstlcf exflg2,dialos,slv081 /* no: nak to buy some time */ 00736 334 calsub inproc /* ship good data */ 00740 335 goto slv060 336 00742 337 slv081 meter2 m.cnt6,1 /* count inability to accept input */ 00745 338 goto slv041 assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 32 hasp output processing 340 ********************************************************************** 341 * 342 * hasp output processing: write the message and analyze the 343 * response; retransmit when necessary if naked 344 * 345 ********************************************************************** 346 00747 347 haspwr meterm 1 /* count the output message */ 00751 348 holdot /* to keep msg */ 00752 349 signal sndout /* start next */ 350 351 ********************************************************************** 352 * 353 * check the output block type: if the cs requests 354 * acknowledgement of transmission of this block, record its 355 * bcb for the line status sent when block is transmitted 356 * 357 ********************************************************************** 358 00754 359 clrlcf exflg2,csreqa /* assume cs doesn't care */ 00757 360 outscn outcra,wrt010 /* check for block type = 1 */ 361 /* block type 1: cs requests ack */ 00762 362 setlcf exflg2,csreqa 00765 363 outscn outgbn,punt /* pickup the bcb */ 00770 364 calasm setbno /* copy wrkch1 to hblkno */ 365 00773 366 wrt010 outscn outcbt,punt /* clear block type field */ end of binary card 00000015 367 368 ********************************************************************** 369 * 370 * transmit the block 371 * 372 ********************************************************************** 373 00776 374 setlcl nakcnt,0 /* count transmission failures */ 01001 375 wrt020 dumpin 01002 376 calsub bscwtr /* write the message */ 377 01004 378 setimv hrcvtm /* wait for rcv time limit */ 01006 379 calsub bscrd /* wait for input */ 380 381 ********************************************************************** 382 * 383 * analyze the response (if any) 384 * 385 ********************************************************************** 386 01010 387 tstlcf exflg2,timout,wrt080 /* no response */ 01014 388 tstlcf exflg1,naksw,wrt045 /* crc error */ 389 assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 33 hasp output processing 01020 390 inscan inack,wrt030 /* ack? */ 01023 391 goto wrt050 /* yes */ 392 01025 393 wrt030 inscan innak,wrt040 /* nak? */ 01030 394 dumpin /* yes: flush it ... */ 01031 395 meter2 m.cnt2,1 /* ... and count the nak to our msg */ 01034 396 addlcl nakcnt,1 01037 397 tstlcv nakcnt,naklmt,wrt035 /* report nak limit to mcs? */ end of binary card 00000016 01043 398 goto wrt020 /* no: retry transmission */ 01045 399 wrt035 setlcl ctlop,lstnak /* yes */ 01050 400 linsta ctlop 01052 401 goto wrt020 /* now retry transmission */ 402 01054 403 wrt040 calasm bsccki /* subject to further analysis */ 01057 404 tstlcl result,resack,wrt070 /* good message */ 01063 405 tstlcl result,resntr,wrt070 /* non-transparent ok too */ 01067 406 wrt045 meter2 m.cnt1,1 /* bad input: count nak we must send */ 01072 407 goto wrt081 408 409 ********************************************************************** 410 * 411 * response is an ack: message has been transmitted; inform 412 * the cs if needed and return to the idle loop 413 * 414 ********************************************************************** 415 01074 416 wrt050 dumpin /* discard ack */ 01075 417 wrt060 dmpout /* discard data */ 01076 418 tstlcf exflg2,csreqa,wrt061 /* does cs want to know? */ 01102 419 goto wrt065 /* no: return to idle loop */ 01104 420 wrt061 setlcl ctlop,lstwrc /* yes: report write completed */ 01107 421 setlcv ctlvl1,hblkno /*... and which block was written */ end of binary card 00000017 01112 422 linsta ctlop 01114 423 wrt065 tstlcf exflg2,master,mstidl /* if master mode */ 01120 424 goto slv060 425 426 ********************************************************************** 427 * 428 * response is a valid message: send it to multics 429 * 430 ********************************************************************** 431 01122 432 wrt070 calsub chkdia /* be sure to check dia first */ 01124 433 tstlcf exflg2,dialos,wrt071 01130 434 calsub inproc /* ship the input */ 01132 435 goto wrt060 436 01134 437 wrt071 meter2 m.cnt6,1 /* can't accept input now: nak it */ 01137 438 goto wrt081 assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 34 hasp output processing 439 440 ********************************************************************** 441 * 442 * response garbled or timeout: request restransmission 443 * 444 ********************************************************************** 445 01141 446 wrt080 meter2 m.cnt4,1 /* count timeout waiting for reply */ 01144 447 wrt081 dumpin /* discard bad input, if any */ 01145 448 addlcl nakcnt,1 01150 449 tstlcv nakcnt,naklmt,wrt085 /* report nak limit to mcs? */ 01154 450 goto wrt086 /* no */ 01156 451 wrt085 setlcl ctlop,lstnak /* yes */ end of binary card 00000018 01161 452 linsta ctlop 453 01163 454 wrt086 bldmsg otnak,punt /* prepare to write nak */ 01166 455 holdot 01167 456 calsub bscwtr 01171 457 dmpout 01172 458 setimv hrcvtm /* time limit for response */ 01174 459 calsub bscrd 460 01176 461 tstlcf exflg2,timout,wrt080 /* timeout: try again */ 01202 462 tstlcf exflg1,naksw,wrt105 /* crc error */ 01206 463 inscan inack,wrt090 /* ack? */ 01211 464 goto wrt020 /* yes */ 01213 465 wrt090 inscan innak,wrt100 /* nak? */ 01216 466 meter2 m.cnt2,1 /* yes: count original nak to our msg */ 01221 467 goto wrt020 468 01223 469 wrt100 calasm bsccki /* examine input */ 01226 470 tstlcl result,resack,wrt070 /* response now ok */ end of binary card 00000019 01232 471 tstlcl result,resntr,wrt070 01236 472 wrt105 meter2 m.cnt1,1 /* bad input: count our nak */ 01241 473 goto wrt081 474 01243 475 outcra chstr (rescan,search,stx,ignore,ignore,ignore,cmask,fcs2ra,fcs2 01243 476 etc bt) 01250 477 outgbn chstr (rescan,search,stx,ignore,movchr,wrkch1) 01254 478 outcbt chstr (rescan,search,stx,ignore,ignore,ignore,offbit,fcs2bt) assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 35 hasp input processing 480 ********************************************************************** 481 * 482 * scan input and update state of wait-a-bit bits 483 * 484 ********************************************************************** 485 01261 486 inproc inscan getfcs,inp020 /* extract fcs chars */ 01264 487 setlcv temp1,wabmsk /* make copy of current mask */ 488 01267 489 calasm wabchk /* analyze wait-a-bit stuff */ 490 01272 491 clrlcf exflg1,syswab /* clear system wait-a-bit */ 01275 492 tstlcl temp3,0,inp010 /* system wait-a-bit on? */ end of binary card 00000020 01301 493 setlcf exflg1,syswab /* yes: don't check individual devices */ 01304 494 goto inp020 495 01306 496 inp010 setlcv wabmsk,temp1 /* save new state of device wabs */ 01311 497 tstlcl temp2,0,inp020 /* any bits go off? */ 01315 498 inscan setnr,punt /* yes: flag msg as important ... */ 01320 499 addlcl wrpcnt,1 /* ... and expect another sync-block */ 500 01323 501 inp020 meterm 0 /* count the input ... */ 01325 502 sendin /* ... and hand it off to cs */ 01326 503 retsub 504 01327 505 getfcs chstr (rescan,search,stx,ignore,ignore,offbit,fcs1rt+fcs1nr,mov 01327 506 etc chr,wrkch1,ignore,movchr,wrkch2) 01336 507 setnr chstr (rescan,search,stx,ignore,ignore,setbit,fcs1nr) assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 36 subroutines 509 ********************************************************************** 510 * 511 * examine output to see if it is ready to write 512 * 513 ********************************************************************** 514 01342 515 chkout tstlcf exflg2,outarv,chk010 /* any arrivals since last time? */ end of binary card 00000021 01346 516 tstlcf exflg1,msgcmp,chk030 /* got something during wait-a-bit? */ 01352 517 goto chk050 /* no, nothing is ready to write */ 518 01354 519 chk010 clrlcf exflg2,outarv 01357 520 calasm bsccko /* perform output scan */ 01362 521 tstlcl result,resack,chk030 01366 522 tstlcl result,resntr,chk030 01372 523 tstlcl result,resinc,chk020 01376 524 tstlcl result,resnul,chk020 01402 525 calsub bscbad /* report bad block */ 01404 526 dmpout 01405 527 goto chk050 528 01407 529 chk020 signal sndout /* ask message be completed */ 01411 530 goto chk050 531 01413 532 chk030 clrlcf exflg1,msgcmp end of binary card 00000022 01416 533 tstlcl wrpcnt,0,chk035 /* returning output to cs? */ 01422 534 goto chk060 /* yes: check for sync-blocks */ 535 01424 536 chk035 tstlcf exflg1,syswab,chk040 /* must ignore during wait-a-bit */ 01430 537 setlcl result,resack /* good message */ 01433 538 retsub 01434 539 chk040 setlcf exflg1,msgcmp /* remember message arrived */ 540 01437 541 chk050 setlcl result,resinc /* incomplete message */ 01442 542 retsub 543 01443 544 chk060 calasm wrpchn /* turn output into input */ 01446 545 inscan setrt,chk070 /* turn on returned msg bit */ 01451 546 chk070 inscan chksnc,chk080 /* check for sync-block */ 01454 547 addlcl wrpcnt,-1 /* yes: need one less to start sending again */ 01457 548 chk080 signal sndout /* ask for more */ 01461 549 sendin 01462 550 goto chk050 end of binary card 00000023 551 01464 552 setrt chstr (rescan,search,stx,ignore,ignore,setbit,fcs1rt) 01470 553 chksnc chstr (rescan,search,stx,ignore,ignore,ignore,cmask,fcs2sy,fcs2 01470 554 etc bt) assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 37 subroutines 556 ********************************************************************** 557 * 558 * divide connect time by transmit repeat time to get 559 * initialization try count 560 * 561 ********************************************************************** 562 01475 563 calcbl subr clc 01500 0 07 220 1720 564 lda temp1-* 01501 0335 21 0 565 lrs 17 01502 0 21 217 1721 566 dvf temp2-* 01503 322 777 0 567 iera -1 /* complement */ 01504 773 001 0 568 iaa 1 01505 0 17 213 1720 569 sta temp1-* 01506 570 return calcbl 571 572 573 ********************************************************************** 574 * 575 * turn current output chain back into input 576 * 577 ********************************************************************** 578 01510 579 wrpchn subr wrp,(x2) 01516 1 20 005 0 580 szn t.icp,1 /* input chain is programming error */ 01517 0 74 002 1521 581 tze 2 01520 000000 0 582 oct 0 /* crash */ 01521 1 07 012 0 583 lda t.ocp,1 /* get output chain start */ 01522 1 17 005 0 584 sta t.icp,1 01523 1 56 012 0 585 stz t.ocp,1 01524 1 56 007 0 586 stz t.icpl,1 /* prepare to count length of chain */ 01525 1 03 005 0 587 ldx2 t.icp,1 01526 2 07 001 0 588 wrp010 lda bf.siz,2 /* get word with size */ 01527 0 34 017 1546 589 ana wrp030-* 01530 2337 17 0 590 arl 15 /* convert to buffers */ end of binary card 00000024 01531 773 001 0 591 iaa 1 01532 1 16 007 0 592 asa t.icpl,1 01533 2 20 000 0 593 szn bf.nxt,2 01534 0 74 003 1537 594 tze wrp020-* 01535 2 03 000 0 595 ldx2 bf.nxt,2 01536 0 71 770 1526 596 tra wrp010-* 01537 0 07 010 1547 597 wrp020 lda wrp040-* /* flag last buffer */ 01540 2 72 001 0 598 orsa bf.flg,2 01541 0 07 007 1550 599 lda wrp050-* 01542 2 32 001 0 600 ansa bf.flg,2 01543 1 13 006 0 601 stx2 t.ilst,1 01544 602 return wrpchn 603 01546 700000 0 604 wrp030 vfd o18/bufsmk 01547 020000 0 605 wrp040 vfd o18/bffbrk assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 38 subroutines 01550 737777 0 606 wrp050 vfd o18//bfflst assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 39 subroutines 608 ********************************************************************** 609 * 610 * analyze fcs chars to build new mask 611 * 612 * sets temp2 to 1 if some bits went off 613 * sets temp3 to 1 if system wait-a-bit on 614 * 615 ********************************************************************** 616 01551 617 wabchk subr wab 01554 0 56 145 1721 618 stz temp2-* 01555 0 56 145 1722 619 stz temp3-* 01556 0 07 023 1601 620 lda wab020-* /* get address of first work char */ 01557 4 10 023 1602 621 tsy wab030-*,* /* =adbyte */ 01560 000000 0 622 oct 0 /* impossible */ 01561 3 07 200 0 623 lda 0,3,b.0 /* get first fcs */ 01562 222 100 0 624 icana fcs1sb /* check for system bit */ 01563 0 74 002 1565 625 tze 2 /* off */ 01564 0 76 136 1722 626 aos temp3-* 01565 0336 11 0 627 als 9 /* align in left half */ 01566 3 37 300 0 628 ora 0,3,b.1 /* get second fcs */ 01567 0 34 011 1600 629 ana wab010-* /* isolate wait-a-bits */ 01570 6333 00 0 630 caq /* save copy of new mask */ 01571 322 777 0 631 iera -1 01572 0 34 126 1720 632 ana temp1-* /* 1's here means wait-a-bits went off */ 01573 0 74 002 1575 633 tze 2 /* no change */ 01574 0 76 125 1721 634 aos temp2-* 01575 0 57 123 1720 635 stq temp1-* /* new mask */ 01576 636 return wabchk 637 end of binary card 00000025 01600 017117 0 638 wab010 vfd o18/allon 01601 000467 0 639 wab020 vfd o18/wrkch1 01602 0 03000 3 640 wab030 ind adbyte assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 40 subroutines 642 ********************************************************************** 643 * 644 * copy the character in wrkch1 into the tib variable 645 * hblkno right justified 646 * 647 ********************************************************************** 648 01603 649 setbno subr sbn 01606 0 07 012 1620 650 lda sbn005-* /* byte address of interest */ 01607 4 10 012 1621 651 tsy sbn010-*,* /* =adbyte */ 01610 000000 0 652 oct 0 01611 3 47 200 0 653 ldq 0,3,b.0 /* get the character we want */ 01612 0 07 010 1622 654 lda sbn015-* /* tib extension addr */ 01613 4333 00 0 655 cax3 /* cvaddr needs addr in x3 */ 01614 4 10 007 1623 656 tsy sbn020-*,* /* =cvaddr */ 01615 3 57 000 0 657 stq 0,3 /* store the character */ 01616 658 return setbno 659 01620 000467 0 660 sbn005 vfd o18/wrkch1 01621 0 03000 3 661 sbn010 ind adbyte 01622 777742 0 662 sbn015 vfd o18/hblkno 01623 0 12000 3 663 sbn020 ind cvaddr assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 41 subroutines 665 ********************************************************************** 666 * 667 * routine to check dia for pending input not yet sent to 668 * mainframe. the assumption here is that if the dia is 669 * falling behind, maybe multics is slow, or is having a 670 * problem, and we better not send too much more input. 671 * since it is too hard to attempt hasp flow control from 672 * this level, input will be nakked until the dia can 673 * catch up. 674 * 675 ********************************************************************** 676 01624 677 chkdia clrlcf exflg2,dialos /* assume ok to send */ 01627 678 tstfld t.dcp,0,ckd030 /* all ok, return */ 01633 679 setime -100 /* first, wait .1 seconds */ 01635 680 wait ckd010,ckd040,bsctst 01641 681 status 0,dsr,bshang 682 01645 683 ckd010 tstfld t.dcp,0,ckd030 /* .1 wait worked */ end of binary card 00000026 01651 684 setime -500 /* wait a little longer */ 01653 685 wait ckd020,ckd040,bsctst 01657 686 status 0,dsr,bshang 687 01663 688 ckd020 tstfld t.dcp,0,ckd030 /* .5 wait worked */ 01667 689 setlcf exflg2,dialos /* can't wait forever: nak it */ 690 01672 691 ckd030 retsub 692 01673 693 ckd040 setlcf exflg2,outarv /* dont fail to notice output */ 01676 694 waitm assm 01 09-28-82 16.940 hasp_tables -- control tables for hasp protocol page 42 subroutines 696 ********************************************************************** 697 * 698 * test state handler 699 * 700 ********************************************************************** 701 01677 702 testst tstlcl ctlop,lcthtm,tst010 /* only hasp timers handled here */ 01703 703 waitm 01704 704 tst010 setlcv hcontm,ctlvl1 01707 705 setlcv hrcvtm,ctlvl2 01712 706 setlcv hxmttm,ctlvl3 01715 707 waitm 708 709 710 711 01716 712 punt punt 0 /* fnp crash on wierd errors */ end of binary card 00000027 713 714 715 01720 716 temp1 bss 1 01721 717 temp2 bss 1 01722 718 temp3 bss 1 719 end of binary card 00000028 720 end hasp 1724 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.943 hasp_tables -- control tables for hasp protocol page 43 octal symbol references by sequence no. 460 ack0 65 65 111 3 adbyte 53 640 661 17117 allon 95 95 638 1000 alwbid 65 65 115 128 1000 autopl 65 65 109 20000 bffbrk 64 64 605 40000 bfflst 64 64 606 1 bf.flg 64 64 598 600 0 bf.nxt 64 64 593 595 1 bf.siz 64 64 588 777757 bidcnt 65 65 141 161 162 175 195 196 2 b.0 623 653 3 b.1 628 4 bscbad 51 525 5 bsccki 48 247 301 403 469 6 bsccko 49 520 1 bscrd 47 145 183 226 281 379 459 7 bsctst 44 124 126 209 680 685 2 bscwt 45 10 bscwtr 46 152 179 222 297 317 328 376 456 11 bshang 50 121 123 162 196 210 681 686 700000 bufsmk 64 64 604 1475 calcbl 563 140 174 563 570 4000 cfgok 65 65 106 1354 chk010 519 515 519 1407 chk020 529 523 524 529 1413 chk030 532 516 521 522 532 1424 chk035 536 533 536 1434 chk040 539 536 539 1437 chk050 541 517 527 530 541 550 1443 chk060 544 534 544 1451 chk070 546 545 546 1457 chk080 548 546 548 1 chk 554 71 72 73 77 78 79 476 477 478 506 507 552 554 1624 chkdia 677 253 332 432 677 1342 chkout 515 205 214 256 323 515 1470 chksnc 553 546 553 60 chval 554 71 72 73 77 78 79 476 477 478 506 507 552 554 2 c.rcrq 62 62 63 40 c.rdtr 62 62 63 2 c.rrec 62 62 63 20000 c.rrqs 62 62 63 200 c.rsup 62 62 63 200 c.rtre 62 62 63 10 c.rxmt 62 62 63 1000 c.sbrk 62 62 63 1 c.scrq 62 62 63 20 c.sdtr 62 62 63 2000 c.smrk 62 62 63 1 c.srec 62 62 63 10000 c.srqs 62 62 63 assm 01 09-28-82 16.943 hasp_tables -- control tables for hasp protocol page 44 octal symbol references by sequence no. 100 c.ssup 62 62 63 400 c.stat 62 62 63 100 c.stre 62 62 63 4000 c.strm 62 62 63 4 c.sxmt 62 62 63 1645 ckd010 683 680 683 1663 ckd020 688 685 688 1672 ckd030 691 678 683 688 691 1673 ckd040 693 680 685 693 507 cmask 63 63 476 554 40000 csreqa 65 65 359 362 418 400000 ctlmsg 65 65 107 777764 ctlop 65 65 124 125 154 156 188 190 243 244 266 267 293 294 312 313 399 400 420 422 451 452 702 777763 ctlvl1 65 65 155 189 421 704 777762 ctlvl2 65 65 705 777761 ctlvl3 65 65 706 12 cvaddr 54 663 400 datrcv 65 65 106 20000 dialos 65 65 109 254 333 433 677 689 20 dle 63 63 71 77 4 dsr 63 63 121 210 681 686 463 enq 65 65 73 79 777745 exflg1 65 65 106 107 115 128 228 283 388 462 491 493 516 532 536 539 777744 exflg2 65 65 108 109 129 146 184 213 227 254 282 333 359 362 387 418 423 433 461 515 519 677 689 693 40 fcs1nr 84 84 506 507 17 fcs1pr 86 86 95 20 fcs1rt 85 85 506 552 100 fcs1sb 83 83 624 60 fcs2bt 91 91 476 478 554 17 fcs2pn 89 89 95 20 fcs2ra 92 92 476 60 fcs2sy 93 93 554 100 fcs2ty 88 88 95 1327 getfcs 505 486 505 2 gotot 65 65 108 0 hasp 56 56 58 747 haspwr 347 206 215 257 324 347 777742 hblkno 65 65 421 662 777760 hcontm 65 65 117 137 138 160 171 172 194 704 777752 hrcvtm 65 65 118 139 143 173 182 225 280 378 458 705 777754 hxmttm 65 65 119 207 706 503 ignore 63 63 71 73 476 477 478 506 507 552 554 12 inack 71 71 186 229 284 390 463 114 ini010 123 120 123 131 ini020 128 115 125 128 160 ini030 143 137 143 160 163 217 ini040 159 146 148 159 235 ini050 171 129 171 255 ini060 177 171 177 194 197 assm 01 09-28-82 16.943 hasp_tables -- control tables for hasp protocol page 45 octal symbol references by sequence no. 312 ini070 193 184 186 193 20 ininit 73 73 148 16 innak 72 72 237 287 393 465 1306 inp010 496 492 496 1323 inp020 501 486 494 497 501 1261 inproc 486 255 334 434 486 2 lctabd 65 65 125 16 lcthtm 65 65 702 1 lookot 65 65 108 15 lsthin 65 65 154 188 4 lstnak 65 65 243 266 293 312 399 451 6 lstwrc 65 65 420 0 macwk1 649 563 570 579 602 617 636 649 658 1 macwk2 649 563 579 617 649 4000 master 65 65 129 423 501 match 63 63 71 72 73 36 m.cnt1 61 61 250 304 406 472 40 m.cnt2 61 61 238 289 395 466 42 m.cnt3 61 61 307 44 m.cnt4 61 61 234 446 46 m.cnt5 61 61 231 322 50 m.cnt6 61 61 260 337 437 517 movchr 63 63 477 506 100000 msgcmp 65 65 516 532 539 350 mst010 212 209 212 363 mst020 218 209 218 258 367 mst025 220 220 242 245 372 mst030 221 221 270 423 mst035 234 227 234 430 mst040 237 229 237 450 mst045 243 241 243 457 mst050 247 237 247 472 mst055 250 228 250 477 mst060 253 248 249 253 517 mst065 260 254 260 522 mst070 262 235 251 262 534 mst075 266 264 266 541 mst080 269 265 269 330 mstidl 205 191 205 232 423 777770 nakcnt 65 65 219 240 241 263 264 279 290 291 309 310 374 396 397 448 449 4 nakksw 65 65 106 777767 naklmt 65 65 116 241 264 291 310 397 449 2 naksw 65 65 106 228 283 388 462 200000 needrv 65 65 107 40000 ntrsw 65 65 107 524 offbit 63 63 478 506 24 otack 77 77 150 220 295 326 30 otinit 79 79 177 26 otnak 78 78 269 315 454 10000 outarv 65 65 109 213 515 519 693 assm 01 09-28-82 16.943 hasp_tables -- control tables for hasp protocol page 46 octal symbol references by sequence no. 1254 outcbt 478 366 478 1243 outcra 475 360 475 1250 outgbn 477 363 477 40 pollok 65 65 108 400 pollsw 65 65 109 20 polpnd 65 65 108 1716 punt 712 150 177 220 269 295 315 326 363 366 454 498 712 4 resack 65 65 206 215 248 257 302 324 404 470 521 537 510 rescan 63 63 71 72 73 476 477 478 506 507 552 554 0 resinc 65 65 523 541 6 resntr 65 65 249 303 405 471 522 5 resnul 65 65 524 777765 result 65 65 206 215 248 249 257 302 303 324 404 405 470 471 521 522 523 524 537 541 10000 rflag 65 65 106 100000 rvisw 65 65 107 1620 sbn005 660 650 660 1621 sbn010 661 651 661 1622 sbn015 662 654 662 1623 sbn020 663 656 663 502 search 63 63 476 477 478 506 507 552 554 100 selop 65 65 108 523 setbit 63 63 507 552 1603 setbno 649 364 649 658 514 seteom 63 63 77 78 79 1336 setnr 507 498 507 1464 setrt 552 545 552 200000 s.acr 62 62 63 400000 s.ads 62 62 63 400000 s.bdmk 62 62 63 200000 s.bmk 62 62 63 1000 s.brch 62 62 63 400 s.brk 62 62 63 1 s.cd 62 62 63 2 s.cts 62 62 63 100000 s.dlo 62 62 63 4 s.dsr 62 62 63 4000 s.exh 62 62 63 10000 s.fcse 62 62 63 40000 s.isd 62 62 63 40 s.mark 62 62 63 400000 s.pbyt 62 62 63 200 s.prex 62 62 63 10000 s.prty 62 62 63 40000 s.pwi 62 62 63 200000 s.rabt 62 62 63 100000 s.rbt 62 62 63 2000 s.ring 62 62 63 40000 s.rto 62 62 63 10 s.sprc 62 62 63 20 s.st 62 62 63 assm 01 09-28-82 16.943 hasp_tables -- control tables for hasp protocol page 47 octal symbol references by sequence no. 100 s.term 62 62 63 20000 s.xte 62 62 63 550 slv005 279 279 330 553 slv010 280 280 299 319 574 slv020 287 284 287 614 slv025 293 291 293 621 slv026 295 292 295 632 slv030 301 287 301 645 slv035 304 283 304 652 slv040 307 282 307 655 slv041 308 305 308 338 667 slv045 312 310 312 674 slv046 315 311 315 705 slv050 321 285 321 711 slv060 323 323 335 424 730 slv080 332 302 303 332 742 slv081 337 333 337 546 slvidl 278 157 278 105 sndout 63 63 349 529 548 1 soh 63 63 73 79 1 srec 63 63 144 278 32 sthasp 105 42 105 2 stx 63 63 476 477 478 506 507 552 554 20000 syswab 65 65 491 493 536 1720 temp1 716 138 141 172 175 487 496 564 569 632 635 716 1721 temp2 717 139 173 497 566 618 634 717 1722 temp3 718 492 619 626 718 777746 testrt 65 65 110 1677 testst 702 110 702 40 tfhang 60 60 123 20000 tfmrcv 60 60 105 40 tfwrd1 123 105 123 0 tfwrd2 123 105 123 462 tiback 65 65 71 77 111 464 tibnak 65 65 72 78 4 timout 65 65 108 146 184 227 282 387 461 26 t.dcp 60 60 678 683 688 5 t.icp 60 60 580 584 587 7 t.icpl 60 60 586 592 6 t.ilst 60 60 601 12 t.ocp 60 60 583 585 1704 tst010 704 702 704 20000 ttdsw 65 65 107 1600 wab010 638 629 638 1601 wab020 639 620 639 1602 wab030 640 621 640 1551 wabchk 617 489 617 636 777743 wabmsk 65 65 112 487 496 200 wacksw 65 65 106 467 wrkch1 65 65 477 506 639 660 470 wrkch2 65 65 506 assm 01 09-28-82 16.943 hasp_tables -- control tables for hasp protocol page 48 octal symbol references by sequence no. 1526 wrp010 588 588 596 1537 wrp020 597 594 597 1546 wrp030 604 589 604 1547 wrp040 605 597 605 1550 wrp050 606 599 606 1510 wrpchn 579 544 579 602 777741 wrpcnt 65 65 113 499 533 547 773 wrt010 366 360 366 1001 wrt020 375 375 398 401 464 467 1025 wrt030 393 390 393 1045 wrt035 399 397 399 1054 wrt040 403 393 403 1067 wrt045 406 388 406 1074 wrt050 416 391 416 1075 wrt060 417 417 435 1104 wrt061 420 418 420 1114 wrt065 423 419 423 1122 wrt070 432 404 405 432 470 471 1134 wrt071 437 433 437 1141 wrt080 446 387 446 461 1144 wrt081 447 407 438 447 473 1156 wrt085 451 449 451 1163 wrt086 454 450 454 1213 wrt090 465 463 465 1223 wrt100 469 465 469 1236 wrt105 472 462 472 ** 47148 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