assm 01 12-22-82 14.179 g115_tables page 1 preface this program will be loaded mod 64 program break 3652 common length 0 v count bits 5 primary symdef entry g115 0 gstar 600 g15acu 626 secondary symdef entry .chain 100 block length symref 1 begin 2 cvabs 3 error 4 acutst 5 cvaddr 6 frebfh end of binary card 00000001 7 hungup 10 setbpt 11 stpchn end of binary card 00000002 assm 01 12-22-82 14.179 g115_tables page 2 1 * *********************************************************** 2 * * * 3 * * copyright, (c) honeywell information systems inc., 1982 * 4 * * * 5 * * copyright (c) 1972 by massachusetts institute of * 6 * * technology and honeywell information systems, inc. * 7 * * * 8 * *********************************************************** 9 10 lbl ,g115_tables assm 01 12-22-82 14.179 g115_tables page 3 14 pcc off 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 16 * 17 * 18 * g115_tables, g115 19 * 20 * control tables for running high-speed device obeying 21 * g115 protocol 22 * 23 * split off from control_tables by robert coren 4/29/76 24 * 25 * 26 * tables redone by joe nicholls and art beatie may-nov 1978 27 * the same general concepts were used, but the implementatio 28 * may be different. 29 * a number of redundencies have been built in to maintain a known 30 * state of things, such as reseting variable and dumpins. 31 * 32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 33 34 00000 35 g115 null 36 37 symdef g115 38 symdef gstar 39 symdef g15acu 40 41 symref begin 42 symref hungup 43 symref error 44 symref acutst 45 symref cvaddr 46 symref frebfh 47 symref setbpt 48 symref cvabs 49 00000 51 comreg assm 01 12-22-82 14.185 g115_tables page 4 system communications region ********************************** * system communication region * ********************************** 000640 .crldt set 416 date and time of binding 000644 .crbdt set 420 date and time of bootloading 000650 .crbuf set 424 starting address of buffer area 000651 .crmem set 425 last location of memory 000652 .crnbf set 426 number of buffers available 000653 .criom set 427 start of iom table 000654 .crnhs set 428 number of hsla's configured 000655 .crnls set 429 number of lsla's configured 000656 .crcon set 430 console enabled flag 000657 .crmod set 431 starting address of module chain 000660 .crnxa set 432 ptr to next avaliable buffer 000661 .crtra set 433 trace entry enable mask 000662 .crtrb set 434 base address of trace table 000663 .crtrc set 435 next available location in trace table 000664 .crreg set 436 disaster fault register storage location 000665 .crttb set 437 location of tib table 000666 .crtte set 438 location of end of tib table 000667 .crdly set 439 head of delay table chain 000670 .crver set 440 mcs version number, 4 chars 000672 .crbrk set 442 addr of breakpoint control table 000673 .crtsw set 443 if non-zero, tracing will cease 000674 .crnxs set 444 next free small block 000675 .crnbs set 445 number of buffers devoted to small space 000676 .crcct set 446 address of first cct descriptor assm 01 12-22-82 14.185 g115_tables page 5 system communications region 000677 .crskd set 447 address of scheduler data block 000700 .cretb set 448 list of echo-negotiation bit tables 000701 .crcpt set 449 address of cpu page table 000702 .crpte set 450 address of variable cpu page table entry 000703 .crtsz set 451 size of trace data buffer 000704 .crmet set 452 non-zero if metering enabled 000705 .crtdt set 453 address of tib for t&d executive channel 000706 .crbtm set 454 address of time meters for getbuf/frebuf 000707 .crnxe set 455 next available space in extended memory 000710 .crbpe set 456 buffer paging window table entry 000760 .crcpr set 496 copyright notice 00000 52 tib assm 01 12-22-82 14.185 g115_tables page 6 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 12-22-82 14.185 g115_tables page 7 terminal information block (tib) 000030 t.sfcm equ t.ftse pointer to sfcm for hsla lines 000031 t.bcnt equ t.ftse+1 counting temporary 000032 t.brkp equ t.bcnt+1 pointer to current break list 000033 t.pos equ t.brkp+1 current carriage position 000034 t.char equ t.pos+1 pending line control char (lsla only) 000034 t.ecch equ t.char address of current echo char (hsla only) 000035 t.cntr equ t.char+1 counter for control tables 000036 t.flg3 equ t.cntr+1 third word of flags 000037 t.dtp equ t.flg3+1 pointer to delay table for this line 000040 t.frmc equ t.dtp+1 framing chars (2 chars) 000041 t.dcpl equ t.frmc+1 number of buffers in dcp chain 000042 t.scll equ t.dcpl+1 screenline length left, for echo neg. 000043 t.sncc equ t.scll+1 echo negotiation sync ctr. 000044 t.entp equ t.sncc+1 echo negotiation break table ptr 000045 t.ifch equ t.entp+1 input flow control characters 000046 t.ofch equ t.ifch+1 output flow control characters 000047 t.omct equ t.ofch+1 output message count (for flow control) 000050 t.itim equ t.omct+1 time of last call to inproc (2 words) 000052 t.metr equ t.itim+2 address of metering area 000053 t.abf0 equ t.metr+1 absolute address of first permanent buffe 000054 t.abf1 equ t.abf0+1 absolute address of first permanent buffe 000055 t.leng equ t.abf1+1 length of a tib ******************************** * t.stat bits ******************************** 000001 tsfcd bool 000001 carrier detect assm 01 12-22-82 14.185 g115_tables page 8 terminal information block (tib) 000002 tsfcts bool 000002 clear to send 000004 tsfdsr bool 000004 data set ready 000010 tsfsrc bool 000010 supervisory receive 000020 tsfst bool 000020 store status 000040 tsfmrk bool 000040 send marker status 000100 tsftrm bool 000100 send terminate status 000200 tsfrcv bool 000200 receive mode 000400 tsfxmt bool 000400 transmit mode 001000 tsfbrk bool 001000 send line break 002000 tsfdtr bool 002000 data terminal ready 004000 tsfsxt bool 004000 supervisory transmit 004000 tsftre bool 004000 tally runout enable (hdlc) 010000 tsfrts bool 010000 request to send 020000 tsfcrq bool 020000 acu call request ******************************** * tib flags -- t.flg ******************************** 000001 tfwrit bool 000001 output chain present 000002 tfbel bool 000002 send bell as next echoed character 000004 tffdpx bool 000004 full duplex mode 000010 tfkybd bool 000010 keyboard addressed 000020 tfprtr bool 000020 printer addressed 000040 tfhang bool 000040 hangup this line 000100 tflisn bool 000100 answer the phone 000200 tfquit bool 000200 send nl on line break 000400 tfctrl bool 000400 do kybd/printer addressing assm 01 12-22-82 14.185 g115_tables page 9 terminal information block (tib) 001000 tflfec bool 001000 do lf echo on cr 002000 tfcrec bool 002000 do cr echo on lf 004000 tftbec bool 004000 do space echo on tab 010000 tfwabt bool 010000 do write abort 020000 tfauto bool 020000 this is hsla autobaud line 040000 tfeotx bool 040000 eot expected from 2741 100000 tfisus bool 100000 input suspended 200000 tfecpx bool 200000 echoplex mode 400000 tfosus bool 400000 output suspended ******************************** * second word of tib flags ******************************** 000001 tfxhld bool 000001 hold transmit on 000002 tfdild bool 000002 terminal is dialed up 000004 tfercv bool 000004 enter receive mode 000010 tfrabt bool 000010 do read abort 000020 tfacu bool 000020 do dial out 000040 tfifc bool 000040 input flow control mode 000100 tfofc bool 000100 output flow control mode 000200 tfupsf bool 000200 terminal is upshifted now 000400 tfrply bool 000400 replay mode 001000 tfrpon bool 001000 replay is occurring now 002000 tfplit bool 002000 polite mode 004000 tfblak bool 004000 asynchronous block acknowledgement 010000 tfcrcv bool 010000 'control' receive mode 020000 tfmrcv bool 020000 'message' receive mode assm 01 12-22-82 14.185 g115_tables page 10 terminal information block (tib) 040000 tffrmi bool 040000 frame mode 100000 tffip bool 100000 frame in progress 200000 tfsftr bool 200000 terminal is shifting device 400000 tfpfnl bool 400000 line is in prefixnl mode ********************************* * third word of tib flags ********************************* 000001 tfbkpt bool 000001 line is stopped at breakpoint 000002 tfitim bool 000002 timeout if input stops 000004 tfkpar bool 000004 keep parity bits 000010 tfecho bool 000010 echoing has priority over output (lsla) 000020 tfbral bool 000020 break on all characters 000040 tfsked bool 000040 input timeout routine scheduled 000100 tf8in bool 000100 don't strip input parity 000200 tf8out bool 000200 don't strip output parity 000400 tfoddp bool 000400 odd parity 001000 tfabf0 bool 001000 t.afb0 available 002000 tfsoip bool 002000 suspension of output in progress 004000 tforp bool 004000 output resume pending (waiting until tro) 010000 tfabf1 bool 010000 t.abf1 available 020000 tfmask bool 020000 channel has been masked for excessive int 040000 tfinq bool 040000 input is queued for the channel ********************************* * redefined tib flags in t.flg ********************************* assm 01 12-22-82 14.185 g115_tables page 11 terminal information block (tib) 000020 tfdlup equ tfprtr line is on dialup modem 00000 53 meters assm 01 12-22-82 14.185 g115_tables page 12 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 12-22-82 14.185 g115_tables page 13 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 12-22-82 14.185 g115_tables page 14 per-channel meters 000030 m.nom equ m.maxi+1 number of output messages 000032 m.oml equ m.nom+2 cumulative length of output 000034 m.mino equ m.oml+2 minimum length of output message 000035 m.maxo equ m.mino+1 maximum length of output message 000036 m.cnt1 equ m.maxo+1 first type of counter 000040 m.cnt2 equ m.cnt1+2 second type of counter 000042 m.cnt3 equ m.cnt2+2 third type of counter 000044 m.cnt4 equ m.cnt3+2 fourth type of counter 000046 m.cnt5 equ m.cnt4+2 fifth type of counter 000050 m.cnt6 equ m.cnt5+2 sixth type of counter 000052 m.cnt7 equ m.cnt6+2 seventh type of counter 000054 m.cnt8 equ m.cnt7+2 eighth type of counter 000056 m.synl equ m.cnt8+2 total length of synchronous meters 00000 54 csbits assm 01 12-22-82 14.185 g115_tables page 15 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 12-22-82 14.185 g115_tables page 16 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 12-22-82 14.185 g115_tables page 17 control and status bits 200000 s.bmk bool 200000 marker status (bsc) 200000 s.rabt bool 200000 receive abort (hdlc) 400000 s.bdmk bool 400000 delayed marker status (bsc) 400000 s.pbyt bool 400000 partial byte (hdlc) bits in common between standard status 000177 s.tib bool 000177 and tib status dataset status bits in standard status 000017 s.dss bool 000017 and tib status asynchronous configuration bits 000001 fg.icw bool 000001 icw (two send icw's) 000002 fg.lpr bool 000002 lateral parity receive 000004 fg.lps bool 000004 lateral parity send 000010 fg.lpo bool 000010 lateral parity odd 000020 fg.5bt bool 000020 5-bit character mode 000040 fg.6bt bool 000040 6-bit character mode 000100 fg.7bt bool 000100 7-bit character mode 000200 fg.8bt bool 000200 8-bit character mode 000400 fg.beb bool 000400 ebcdic mode (bsc) 000400 fg.itf bool 000400 interfame time fill (hdlc) 001000 fg.btr bool 001000 transparent mode (bsc) 002000 fg.cct bool 002000 enable cct 00000 55 tconst assm 01 12-22-82 14.185 g115_tables page 18 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 12-22-82 14.185 g115_tables page 19 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 12-22-82 14.185 g115_tables page 20 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 12-22-82 14.185 g115_tables page 21 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 00000 56 buffer assm 01 12-22-82 14.185 g115_tables page 22 buffer format 000000 bf.nxt equ 0 address of next buffer in chain 000001 bf.siz equ bf.nxt+1 size of buffer (bits0-2) 000001 bf.flg equ bf.nxt+1 flags (bits3-8) 000001 bf.tly equ bf.nxt+1 tally of buffer (bits9-17) 000002 bf.dta equ bf.siz+1 start of data 000040 bufsiz equ 32 buffer size 000074 bufnch equ bufsiz*2-4 number of data characters in a buffer 000050 bufmax equ 40 maximum number of input buffers 000012 bufpre equ 10 number of buffers to trigger pre-exhaust 000005 bufshf equ 5 number of bits shifted to divide by bufsi 000024 bufres equ 20 number of reserved buffers 700000 bufsmk bool 700000 mask to isolate bf.siz 077000 buffmk bool 077000 mask to isolate bf.flg 000777 buftmk bool 000777 mask to isolate bf.tly 000002 bufthr equ 2 threshold at which to send send_output 000400 bfmsiz equ 256 maximum buffer size in words ******************************** * buffer flags ******************************** 040000 bfflst bool 040000 last buffer in message 020000 bffbrk bool 020000 buffer contains break character 010000 bfftra bool 010000 throw away this buffer when done inputtin 004000 bffrpy bool 004000 buffer is last in replay chain 002000 bffctl bool 002000 buffer consists of keybd/prtr control 001000 bffhld bool 001000 hold output buffer until dmpout 00000 57 cctdef assm 01 12-22-82 14.185 g115_tables page 23 buffer format cct control bit definitions 000000 ct.ncs bool 000 normal char store 000001 ct.t1s bool 001 store and terminate on next 000002 ct.t2s bool 002 store and terminate after 2 chars 000003 ct.t0s bool 003 store and terminate 000004 ct.dmk bool 004 store and marker delayed 000005 ct.mk1 bool 005 store and marker on next 000006 ct.ign bool 006 ignore, no store 000007 ct.mrk bool 007 store and marker 000020 ct.sw bool 020 switch icws 000040 ct.syn bool 040 resync channel 000100 ct.tb1 bool 100 switch to table 1 000200 ct.tb2 bool 200 switch to table 2 000300 ct.tb3 bool 300 switch to table 3 000400 ct.tb4 bool 400 switch to table 4 000023 ct.eol equ ct.sw+ct.t0s eol for regular tty 000061 ct.grt equ ct.sw+ct.syn+ct.t1s for etx plus bcc char 000421 ct.etx equ ct.t1s+ct.sw+ct.tb4 000423 ct.nak equ ct.t0s+ct.sw+ct.tb4 000005 ct.itb equ ct.mk1 000204 ct.stx equ ct.tb2+ct.dmk 000207 ct.mtb equ ct.mrk+ct.tb2 ** following codes are for setcct opblock 000000 scc.dl equ 0 delete current cct 000001 scc.df equ 1 set to default cct based on modes 000002 scc.bs equ 2 reset to base of current cct 59 00000 60 base 64 00000 61 cct.3 null * cct for use with grts, terminate on etx + bcc 62 00000 000000 0 63 vfd 9/ct.ncs,9/ct.ncs * 000 001 00001 000061 0 64 vfd 9/ct.ncs,9/ct.grt * 002 etx 00002 000000 0 65 vfd 9/ct.ncs,9/ct.ncs * 004 005 00003 000000 0 66 vfd 9/ct.ncs,9/ct.ncs * 006 007 00004 000000 0 67 vfd 9/ct.ncs,9/ct.ncs * 010 011 00005 000000 0 68 vfd 9/ct.ncs,9/ct.ncs * 012 013 00006 000000 0 69 vfd 9/ct.ncs,9/ct.ncs * 014 015 00007 000000 0 70 vfd 9/ct.ncs,9/ct.ncs * 016 017 00010 000000 0 71 vfd 9/ct.ncs,9/ct.ncs * 020 021 00011 000000 0 72 vfd 9/ct.ncs,9/ct.ncs * 022 023 00012 000000 0 73 vfd 9/ct.ncs,9/ct.ncs * 024 025 00013 006061 0 74 vfd 9/ct.ign,9/ct.grt * syn etb 00014 000000 0 75 vfd 9/ct.ncs,9/ct.ncs * 030 031 00015 000000 0 76 vfd 9/ct.ncs,9/ct.ncs * 032 033 00016 000000 0 77 vfd 9/ct.ncs,9/ct.ncs * 034 035 00017 000000 0 78 vfd 9/ct.ncs,9/ct.ncs * 036 037 assm 01 12-22-82 14.185 g115_tables page 24 buffer format 79 00020 80 dup 1,48 00020 000000 0 81 vfd 9/ct.ncs,9/ct.ncs 00021 000000 0 vfd 9/ct.ncs,9/ct.ncs 00022 000000 0 vfd 9/ct.ncs,9/ct.ncs 00023 000000 0 vfd 9/ct.ncs,9/ct.ncs 00024 000000 0 vfd 9/ct.ncs,9/ct.ncs 00025 000000 0 vfd 9/ct.ncs,9/ct.ncs 00026 000000 0 vfd 9/ct.ncs,9/ct.ncs 00027 000000 0 vfd 9/ct.ncs,9/ct.ncs 00030 000000 0 vfd 9/ct.ncs,9/ct.ncs 00031 000000 0 vfd 9/ct.ncs,9/ct.ncs 00032 000000 0 vfd 9/ct.ncs,9/ct.ncs 00033 000000 0 vfd 9/ct.ncs,9/ct.ncs 00034 000000 0 vfd 9/ct.ncs,9/ct.ncs 00035 000000 0 vfd 9/ct.ncs,9/ct.ncs 00036 000000 0 vfd 9/ct.ncs,9/ct.ncs 00037 000000 0 vfd 9/ct.ncs,9/ct.ncs 00040 000000 0 vfd 9/ct.ncs,9/ct.ncs 00041 000000 0 vfd 9/ct.ncs,9/ct.ncs 00042 000000 0 vfd 9/ct.ncs,9/ct.ncs 00043 000000 0 vfd 9/ct.ncs,9/ct.ncs 00044 000000 0 vfd 9/ct.ncs,9/ct.ncs 00045 000000 0 vfd 9/ct.ncs,9/ct.ncs 00046 000000 0 vfd 9/ct.ncs,9/ct.ncs end of binary card 00000003 00047 000000 0 vfd 9/ct.ncs,9/ct.ncs 00050 000000 0 vfd 9/ct.ncs,9/ct.ncs 00051 000000 0 vfd 9/ct.ncs,9/ct.ncs 00052 000000 0 vfd 9/ct.ncs,9/ct.ncs 00053 000000 0 vfd 9/ct.ncs,9/ct.ncs 00054 000000 0 vfd 9/ct.ncs,9/ct.ncs 00055 000000 0 vfd 9/ct.ncs,9/ct.ncs 00056 000000 0 vfd 9/ct.ncs,9/ct.ncs 00057 000000 0 vfd 9/ct.ncs,9/ct.ncs 00060 000000 0 vfd 9/ct.ncs,9/ct.ncs 00061 000000 0 vfd 9/ct.ncs,9/ct.ncs 00062 000000 0 vfd 9/ct.ncs,9/ct.ncs 00063 000000 0 vfd 9/ct.ncs,9/ct.ncs 00064 000000 0 vfd 9/ct.ncs,9/ct.ncs 00065 000000 0 vfd 9/ct.ncs,9/ct.ncs 00066 000000 0 vfd 9/ct.ncs,9/ct.ncs 00067 000000 0 vfd 9/ct.ncs,9/ct.ncs 00070 000000 0 vfd 9/ct.ncs,9/ct.ncs 00071 000000 0 vfd 9/ct.ncs,9/ct.ncs 00072 000000 0 vfd 9/ct.ncs,9/ct.ncs 00073 000000 0 vfd 9/ct.ncs,9/ct.ncs 00074 000000 0 vfd 9/ct.ncs,9/ct.ncs 00075 000000 0 vfd 9/ct.ncs,9/ct.ncs 00076 000000 0 vfd 9/ct.ncs,9/ct.ncs 00077 000000 0 vfd 9/ct.ncs,9/ct.ncs assm 01 12-22-82 14.185 g115_tables page 25 buffer format 00100 82 start g115,,w3gesm0a1000 assm 01 12-22-82 14.185 g115_tables page 26 tib extension array definitions 00112 84 tibex incnt,char input char count 00112 85 tibex fctype,char function code type obtained 00112 86 tibex optype,char operation type of msg 00112 87 tibex acknak,char ack or nak char for msg 00112 88 tibex seqcde,char seq code to use in msg 00112 89 tibex prevsc,char previous seq code used 00112 90 tibex xmtsc,char xmited seq code 00112 91 tibex modtyp,char mode type we are in for gwrrd 00112 92 tibex scrchr,char storage for special control record char 00112 93 tibex tibchr,char place to stroe msg addr for comparision 00112 94 tibex rtnlbl,word label to return to for gotov 00112 95 tibex ctlop,word control word for line status new 00112 96 tibex ctlop1,word second control word for 36 bits 00112 97 tibex ctlop2,word some spare in tib 00112 98 tibex ctlop3,word make it even 4 words control 00112 99 tibex msgchk,word value of the check we did on the output message 00112 100 tibex outchn,word addr of last output buffer to check 00112 101 tibex bsyinc,word count for counting delay waits for 68/80 00112 102 tibex dlytim,word time to wait for response 00112 103 tibex gflags,word word of flags in tib extension 104 105 000001 106 trmchr bool 000001 flag that remote is finished inputing 000002 107 xnak bool 000002 internal to keep track of our naking 000004 108 rtntry bool 000004 tried to allocate buffer before, so give up 000010 109 early bool 000010 flag to say that we received our response before 001000 110 rmtcmp bool 001000 for multics to multics init assm 01 12-22-82 14.185 g115_tables page 27 g115 - defined values 112 /* defined modtyp test values */ 000001 113 actinp bool 1 active, input 000002 114 inact bool 2 inactive 000003 115 actot1 bool 3 active, output 1 000004 116 actot2 bool 4 active, output 2 000010 117 actot3 bool 10 mixed i/o mode 000007 118 inact1 bool 7 scr ($*$dis) received 000005 119 inact2 bool 5 rfd received 000006 120 inact3 bool 6 inactive, responding to a $*$out record 000011 121 inact4 bool 11 inactive, inprocess of terminating 000012 122 inact5 bool 12 we have output the terminate message 123 124 125 126 line status definitions for ctlop 000001 127 fspr bool 1 spare line status 000002 128 fbld bool 2 failure to build a message 000003 129 fxmit bool 3 failure to xmit msg n time in a row 000004 130 fsoh bool 4 failure to find soh chr in output msg 000005 131 fetx bool 5 failure to find ext chr at end of output msg 000006 132 fmod bool 6 bad mode in tib we will terminate and start over 000007 133 notimp bool 7 line control order not implemented in these table 000010 134 otpend bool 10 yes you have output pending 000011 135 discrd bool 11 portion of pending output was deleted before sent 000012 136 lngmsg bool 12 the assembled message was too long >324 character 137 138 139 line control definitions for ctlop 140 try to keep the same values as the bisinc tables 000003 141 lctrmt bool 3 set for remote mode 000005 142 lcttwr bool 5 see if output is pending 000006 143 lctrrt bool 6 set for host mode (reset remote mode) 144 145 146 147 148 /* defined fctype test values */ 000001 149 srvmes bool 1 service message 000002 150 scrmes bool 2 special contrl record 000003 151 infmes bool 3 information message 152 153 154 155 /* defined operation code test values */ 000000 156 opnorq bool 0 no request 000002 157 optdat bool 2 transmite data 000004 158 opwait bool 4 wait tosend output 159 160 161 162 /* defined instruction code test values */ assm 01 12-22-82 14.185 g115_tables page 28 g115 - defined values 000000 163 noinst bool 0 no instruction 000002 164 select bool 2 select 000003 165 termin bool 3 terminate 000004 166 rdyfd bool 4 ready for disconnect 000005 167 notrfd bool 5 not ready for disconnect 000006 168 disc bool 6 disconnect 169 170 171 172 /* defined format codes */ 000102 173 sm102 bool 102 upper case b 000103 174 sm103 bool 103 upper case c 000104 175 scr104 bool 104 upper case d 000105 176 scr105 bool 105 upper case e 000110 177 inf110 bool 110 upper case h 000111 178 inf111 bool 111 upper case i 000112 179 inf112 bool 112 upper case j 000113 180 inf113 bool 113 upper case k 000115 181 inf115 bool 115 upper case m 182 183 184 /* defined scan masks */ 000007 185 opmask bool 7 000070 186 ackmsk bool 70 187 188 189 190 /* defined output chars */ 000027 191 chr027 bool 027 end of transmission block etb 000036 192 chr036 bool 036 record separator 000040 193 chr040 bool 040 ascii blank and slew top 000044 194 chr044 bool 044 ascii dollar sign 000052 195 chr052 bool 052 ascii asterisk 000101 196 chr101 bool 101 one transmit seq code 000100 197 chr100 bool 100 address/identification code 000103 198 chr103 bool 103 terminate,ack 000102 199 chr102 bool 102 transmit data op,ack 000061 200 chr061 bool 061 scr - abort code 000010 201 chr010 bool 010 nak bit in operation code 000104 202 chr104 bool 104 ready for disconnect code 000105 203 chr105 bool 105 upper case e 000111 204 chr111 bool 111 upper case i 000112 205 chr112 bool 112 upper case j 000114 206 chr114 bool 114 upper case l and printer mc 000116 207 chr116 bool 116 upper case n and teleprinter mc 000117 208 chr117 bool 117 upper case o and printer mc 000123 209 chr123 bool 123 upper case s 000124 210 chr124 bool 124 upper case t 000125 211 chr125 bool 125 upper case u 000131 212 chr131 bool 131 upper case v assm 01 12-22-82 14.185 g115_tables page 29 g115 - defined values 214 gocase variable value and jump lists 00112 215 ginopt chstr (disc,rdyfd,select) 00114 216 ginout adrlst (gdis,grfd,gsel) end of binary card 00000004 217 218 00120 219 redop chstr (disc,rdyfd,termin,notrfd,select) 00123 220 redopj adrlst (gdis,grfd,gterm) 00127 221 srjmp adrlst (gdis,grfd1,gterm1,wrecnk) 00134 222 opotjm adrlst (gdis,grfd1,outtrm,wrecnk,gterm1) 223 00142 224 etxcmp chstr (actot2,actot3) 00144 225 etxjmp adrlst (getmor,getmor) 00147 226 wrjmp adrlst (output,output) 00152 227 sohjmp adrlst (gterm,gterm) 228 00155 229 otptfc chstr (srvmes,scrmes) 00157 230 otptfj adrlst (otckop,otcksc) 00162 231 redjmp adrlst (redsrv,scrrcv) 232 00165 233 wextmd chstr (actinp,inact,inact1,actot1,actot2,actot3,inact3,inact4,i 00165 234 etc nact2,inact5) end of binary card 00000005 00173 235 wextjp adrlst (gredin,gidle,gdis,outsrv,output,output,gterm,gterm,gdis 00173 236 etc ,endtrm) 00206 237 sctjmp adrlst (ginlop,gidle,gdis,gout,goodsc,goodsc,gterm1,endtr1,gdis, 00206 238 etc endtr1) 239 00221 240 fccmp chstr (sm102,sm103,scr104,scr105,inf110,inf111,inf112,inf113,in 00221 241 etc f115) 00226 242 fcjmp adrlst (fcsm,fcsm,fcscr,fcscr,fcinf,fcinf,fcinf,fcinf,fcinf) end of binary card 00000006 243 00240 244 opck chstr (select,termin) 00242 245 opjmp adrlst (gckret,gckret) 246 00245 248 scrcmp chstr (chr101,chr102,chr103,chr104,chr105,chr117) 00251 249 scrjmp adrlst (scra,scrqut,scrqut,scrd,scre,scro) 250 00260 251 norcmp chstr (inact1,inact2,inact3,inact4,inact5) 00263 252 norjmp adrlst (gdis,gdis,gterm1,endtr1,endtr1) 253 00271 254 trmcmp chstr (inact,inact5,inact4) 00273 255 trmjmp adrlst (gidle,endtrm) 00276 256 trmabt adrlst (gterm,endtr1,gterm1) 257 00302 258 msgcmp chstr (fsoh,fetx,lngmsg,discrd) end of binary card 00000007 00305 259 msgjmp adrlst (ftfsoh,ftfetx,flong,gwrdrd) 260 00312 261 otptoc chstr (opnorq,optdat) assm 01 12-22-82 14.185 g115_tables page 30 g115 - defined values 00314 262 otptoj adrlst (goodot,goodot) 263 00317 264 outopt chstr (noinst,disc,rdyfd) 00321 265 outopj adrlst (goutpt,gdis,grfd) 266 00325 267 msglcm chstr (actinp,actot3,inact3,inact4,inact5) 00330 268 msgljm adrlst (synbld,synbld,synbld,synbld,synbld) assm 01 12-22-82 14.185 g115_tables page 31 g115 - defined values 271 /* canned output messages */ 00336 272 tdomsg chstr (soh,inf110,null,chr100,chr102,chr100,stx,etx,seteom) 00343 273 tnkmsg chstr (soh,inf110,null,chr100,chr112,chr100,stx,etx,null,seteom 00343 274 etc ) 00351 275 synmsg chstr (syn,syn,syn,syn) end of binary card 00000008 00354 276 trmmsg chstr (soh,sm102,null,chr100,chr103,chr100,stx,etx,seteom) 00361 277 selmsg chstr (soh,sm102,null,chr100,chr102,chr100,stx,etx,seteom) 00366 278 rfdmsg chstr (soh,sm102,null,chr100,chr104,chr100,stx,etx,seteom) 00373 279 tdormt chstr (soh,sm102,null,chr100,chr100,chr100,stx,etx,seteom) 00400 280 tdack chstr (soh,inf110,null,chr100,chr100,chr100,stx,etx,seteom) 00405 281 wakmsg chstr (soh,inf110,null,chr100,chr104,chr100,stx,etx,seteom) 00412 282 dismsg chstr (soh,scr104,null,chr100,chr100,chr100,stx,chr116,chr104,c 00412 283 etc hr111,chr123,chr036,etx,seteom) end of binary card 00000009 00422 284 ndamsg chstr (soh,inf110,null,chr100,chr102,chr100,stx,chr116,chr116,c 00422 285 etc hr117,chr040,chr104,chr101,chr124,chr101,chr036,etx,seteo 00422 286 etc m) 00434 287 dlrout chstr (soh,scr104,null,chr100,chr100,chr100,stx,chr116,chr044,c 00434 288 etc hr052,chr044,chr117,chr125,chr124,chr036,etx,seteom) 289 290 291 292 /* outscn contrl lists */ 00445 293 octrl1 chstr (rescan,search,soh,ignore,ignore,replac,xmtsc) 00451 294 octrl2 chstr (rescan,search,soh,ignore,strlrc,search,etx,ignore,outlrc 00451 295 etc ,ignore,replac,null) 00460 296 octrl3 chstr (rescan,search,soh,ignore,ignore,ignore,ignore,setbit,chr 00460 297 etc 010) 00465 298 octrl4 chstr (rescan,search,soh,ignore,ignore,ignore,ignore,offbit,ack 00465 299 etc msk) end of binary card 00000010 00472 300 octrl5 chstr (rescan,search,soh,ignore,strlrc,search,chr027,ignore,out 00472 301 etc lrc,ignore,replac,null) 00501 302 octrl6 chstr (rescan,search,soh,ignore,strlrc,search,eot,ignore,outlrc 00501 303 etc ,ignore,replac,null) 304 305 306 307 /* inscan contrl lists */ 00510 308 adrscn chstr (rescan,search,soh,ignore,ignore,ignore,movchr,tibchr) 00515 309 fcscan chstr (movchr,fctype) 00517 310 ictrl1 chstr (rescan,search,stx,ignore,ignore,match,chr061) 00523 311 ictrl2 chstr (rescan,search,soh,ignore,strlrc,search,etx,ignore,cmplrc 00523 312 etc ,replac,null) 00531 313 ictrl4 chstr (ignore,movchr,seqcde,ignore,ignore,movmsk,optype,opmask, 00531 314 etc movmsk,acknak,ackmsk) 00537 315 ictrl6 chstr (search,stx,ignore,count,incnt,search,etx) end of binary card 00000011 00543 316 ictrl7 chstr (rescan,search,soh,ignore) 00546 317 ictrl9 chstr (rescan,search,stx,ignore,count,incnt,search,chr027) assm 01 12-22-82 14.185 g115_tables page 32 g115 - defined values 00553 318 icldlr chstr (rescan,search,stx,ignore,ignore,match,chr044,ignore,matc 00553 319 etc h,chr052,ignore,match,chr044,ignore,movchr,scrchr,ignore) 00564 320 iclabt chstr (match,chr102,ignore,match,chr124) 00567 321 iclout chstr (match,chr125,ignore,match,chr124) 00572 322 icldis chstr (match,chr111,ignore,match,chr123) 00575 323 iclend chstr (match,chr116,ignore,match,chr104) assm 01 12-22-82 14.185 new g115 tables page 33 g115 line initialization 00600 326 gstar tstflg tfacu,acutst must dial phone first 00604 327 tstflg tflisn,glisn see if 68/80 told us to listen end of binary card 00000012 00610 328 wait 0,0,begin if not wait for him to tell us 329 330 331 00614 332 glisn contrl sdtr+stat set our minimum leads needed 00616 333 wait 0,0,gntint wait for 115 or hangup order 334 we only need to see if modem is there, 335 we dont care if the phone rings or not since 336 dtr is set up before we look at the line 00622 337 status dsr,0,gonlin we have the terminal 00626 338 g15acu nullop return here after acu dials up 00627 339 gonlin tstflg tfdlup,setdpx cluge to set duplex until cmf is updated 00633 340 setflg tffdpx force that we are full duplex if not dialup 00636 341 contrl srts+stat full duplex 00640 342 wait 0,0,gntint wait for cd and cts 00644 343 status cd+cts,0,gtell have full duplex line 00650 344 setdpx clrflg tffdpx force that we are half duplex if dialup 00653 345 gtell getext ,errtib get tib extension end of binary card 00000013 00656 346 setcct cct.3 get default cct 00660 347 clrlcf gflags,trmchr+rmtcmp make sur 00663 348 setlcl dlytim,8 set delay to assume host timing 00666 349 calsub dmpall and no output 00670 350 signal dialup finally tell moma we are here 00672 351 setchr modtyp,inact we are doing nothing yet 00674 352 setflg tfmrcv only need space for one msg 00677 353 goto gidle go do our thing 354 355 00701 356 errtib goto ghangn cant do a thing without it 357 at this time the only other thing is to punt 358 but we dont want to take everybody with us assm 01 12-22-82 14.185 new g115 tables page 34 g115 idle loop 00703 360 gidle tstflg tfhang,ghang see if 68/80 told us to hangup 00707 361 setlcl bsyinc,0 just incase we fell out while stalling 00712 362 tstlcf gflags,trmchr,gottst if terminated, ok to output 00716 363 girec setflg tfcrcv only looking for a select msg 00721 364 contrl srec+rxmit set to receive mode 00723 365 setime 5 give 115 5 seconds to talk end of binary card 00000014 00725 366 wait gidle,gidle,gtest wait to see what happend first 00731 367 status brkchr,0,gin got something from 115 00735 368 status 0,dsr,ghang 115 went home early 00741 369 status parity,0,gipar ignor bad data here 00745 370 status exh,0,exhlim we ate too much 371 00751 372 gottst tstwrt gout got data to give out 00753 373 goto girec no so go check receive now 374 00755 375 gipar meter1 m.par,1 00760 376 stpchn whooo horse 00762 377 dumpin and throw the garbage out 00763 378 goto gidle assm 01 12-22-82 14.185 new g115 tables page 35 g115 input from remote routine 00765 380 gin contrl rrec+smark get out of rec mode 00767 381 wait 0,0,gtest 00773 382 status marker,0,ginset end of binary card 00000015 00777 383 status exh,0,exhlim 01003 384 status 0,dsr,ghang 385 01007 386 ginset calsub gckin see what we got 01011 387 cmpchr fctype,srvmes,ginput did we get a select msg 01014 388 ginbad dumpin no so forget it 01015 389 goto gidle 01017 390 ginput gocase optype,ginopt,ginout have something but what is it 01023 391 goto ginbad nothing that we want 392 01025 393 gsel dumpin throw out select msg 01026 394 setchr prevsc,seqcde save seq code we got 01030 395 goto rednda go ack select or do output 396 397 398 399 return here after remote responds 400 with next input 01032 401 gredin gocase fctype,otptfc,redjmp see what data was sent us 01036 402 cmpchr incnt,null,rednda if no chars dont give it to anybody 01041 403 ginlop calasm ckibsy see if dia has completed last input yet end of binary card 00000016 01044 404 tstflg tfhang,ghang are we going home now? 01050 405 tstlcl msgchk,1,gbusy if msgchk is one, dia has not finished 01054 406 tstlcl bsyinc,0,shipit if 0 have msg to send in 01060 407 dumpin else have not got new msg yet 01061 408 goto rednda and since channel was still in receive 409 should dump and not send in possible noise 01063 410 shipit meterm 0 record input message 01065 411 sendin give it to 68/80 01066 412 rednda setchr modtyp,actinp we are active input 01070 413 setlcl bsyinc,0 we are not stalling now 01073 414 clrlcf gflags,rtntry say first try 01076 415 setlcl rtnlbl,tdobld where to come for second try 01101 416 tdobld tstlcf gflags,rmtcmp,rmttdo if we are remote ack with no request msg 01105 417 bldmsg tdomsg,ftbld build xmit data msg 01110 418 goto gwrrd go output the msg end of binary card 00000017 419 01112 420 rmttdo cmpchr fctype,srvmes,rmtack if srv msg use srv msg no req as ack 01115 421 bldmsg tdack,ftbld else us info no req as ack 01120 422 goto gwrrd 423 01122 424 rmtack bldmsg tdormt,ftbld bld no req msg 01125 425 goto gwrrd 426 427 assm 01 12-22-82 14.185 new g115 tables page 36 g115 input from remote routine 01127 428 gbusy tstlcl bsyinc,0,bsysnd is this the first stall wait 01133 429 goto stalit if not, just go stall 01135 430 bsysnd meterm 0 01137 431 sendin if so move pending input to safe place from dumpi 01140 432 stalit meter2 m.cnt4,1 keep track of this 01143 433 tstlcf gflags,rmtcmp,rmtbsy if rmt we wak instead 01147 434 tstwrt gbusyo does mother have output? 01151 435 tstlcl bsyinc,12,bsyinp we waited 10 half seconds 01155 436 addlcl bsyinc,1 incr busy counter 01160 437 setime -500 give us a one half second to wait end of binary card 00000018 01162 438 wait ginlop,gbusyo,gtest wait and see what to do next 01166 439 status 0,dsr,ghang left us cold did he? 01172 440 status exh,0,exhlim dont allow data forced down our throat 441 01176 442 gbusyo cmpchr modtyp,actot3,gwrrd if still outputing just go do it 01201 443 setchr modtyp,actot3 output so say we are mixed io 01203 444 goto gwrrd go output 445 446 01205 447 bsyinp setlcl bsyinc,1 say we are still stalling 01210 448 setchr modtyp,actinp aviod confussion, this is an active input 01212 449 clrlcf gflags,rtntry say first try 01215 450 setlcl rtnlbl,tnklbl where to come for second try 01220 451 tnklbl bldmsg tnkmsg,ftbld nak last input as a stall since a wait 01223 452 goto gwrrd msg is not defined to the remote 453 01225 454 redsrv gocase optype,redop,redopj see what optype we have end of binary card 00000019 01231 455 dumpin not of interest 01232 456 goto rednda go try again 457 01234 458 rmtbsy setlcl bsyinc,1 we are stalling but who cares if were rmt 01237 459 clrlcf gflags,rtntry say first try 01242 460 setlcl rtnlbl,waklbl where to come for second try 01245 461 waklbl bldmsg wakmsg,ftbld send a wait msg 01250 462 goto gwrrd assm 01 12-22-82 14.185 new g115 tables page 37 output from main frame routine 01252 464 gout stpchn hold on boys our turn now 01254 465 dumpin throw it to the dogs 01255 466 clrlcf gflags,rtntry first time 01260 467 setlcl rtnlbl,selbld where to come for second try 01263 468 selbld bldmsg selmsg,ftbld try and get the line for us 01266 469 setchr modtyp,actot1 say we want the line 01270 470 goto gwrrd ship it! 471 472 473 come here after response to our select 01272 474 outsrv cmpchr fctype,srvmes,outopc if not service forget it unless multics to m 01275 475 tstlcf gflags,rmtcmp,cktdms if remote look for trans data msg end of binary card 00000020 01301 476 goto gout if not, try select again 477 01303 478 cktdms cmpchr fctype,infmes,outinf check for xmit data msg 01306 479 goto gout else try select again 480 01310 481 outinf dumpin if xmit data, input not dmped previously 01311 482 cmpchr optype,optdat,goutpt if xmit data, ok, if not bad 483 01314 484 outopc gocase optype,outopt,outopj see what type returned 01320 485 tstlcf gflags,rmtcmp,outrmt see if we are remote 01324 486 goto gout try again if not 01326 487 outrmt cmpchr optype,select,gsel if so we must give in 01331 488 goto gout else not what we expected 489 01333 490 goutpt meterm 1 count output message 01335 491 setchr modtyp,actot2 we are outputing data 01337 492 goto gwrrd 493 494 495 return point for outputing data 496 after we have the line from a select 01341 497 output gocase fctype,otptfc,otptfj see what function returned 01345 498 cmpchr incnt,null,outnch were any chars returned end of binary card 00000021 01350 499 dmpout get rid of the msg we sent 01351 500 goto ginlop assume that this is multics to multics 501 01353 502 outnch gocase optype,otptoc,otptoj if a norequest or trans data, good 01357 503 goto wrecnk if not bad 504 505 01361 506 otcksc dmpout clear our output msg first 01362 507 goto scrrcv go process special control record 508 01364 509 otckop gocase optype,redop,opotjm if so resync logical line 510 if terminate we want to send quit to 68/80 01370 511 goto wrecnk any other service msg is considered a nak 512 assm 01 12-22-82 14.185 new g115 tables page 38 output from main frame routine 513 01372 514 goodot dumpin throw out 115 return msg 01373 515 goodsc dmpout dump the output msg we are thru with it 01374 516 tstwrt morout more 68/80 output? 01376 517 cmpchr modtyp,actot3,ginlop if mixed io go back 01401 518 setimv dlytim give 7 secs to 01403 519 wait otck68,gwrrd,gtest wait for output from 68/80 01407 520 status 0,dsr,ghang 01413 521 status exh,0,exhlim watch for runaway channel end of binary card 00000022 01417 522 otck68 tstwrt gwrrd just made it for output, one last check 01421 523 tstlcf gflags,rmtcmp,rmtout are we remote 01425 524 goto gterm 01427 525 rmtout clrlcf gflags,rtntry 01432 526 setlcl rtnlbl,mulout 01435 527 mulout bldmsg dlrout,ftbld output the $*$out msg 01440 528 setchr modtyp,inact4 equal to a terminate 01442 529 goto gwrrd 530 01444 531 outtrm tstlcf gflags,rmtcmp,gterm1 if remote term means term 01450 532 goto scrqut else term means quit assm 01 12-22-82 14.185 new g115 tables page 39 g115 routine to write and then read the response 01452 534 morout meterm 1 meter next output message 01454 535 gwrrd calasm ckomsg go check the msg to output 01457 536 gocase msgchk,msgcmp,msgjmp see if msg was good or not 537 if we fall through it was good 01463 538 goto synlbl and go and the syn chars end of binary card 00000023 01465 539 gwrdrd dmpout dump the bad first part of the msg 01466 540 synlbl clrlcf gflags,rtntry first time 01471 541 setlcl rtnlbl,synbld where to come for second time 01474 542 clrflg tfcrcv reset for idle may have set it again 01477 543 gocase modtyp,msglcm,msgljm if inputing get bigger buffer 01503 544 setflg tfcrcv else only expect a control msg 01506 545 synbld bldmsg synmsg,ftbld add 4 syn chars to front of msg 01511 546 cmpchr modtyp,actinp,ckstal see if inputing 01514 547 goto notstl if not skip all this garbage 01516 548 ckstal tstlcl bsyinc,0,notstl see if stalling 01522 549 holdot save this for possible re-xmit 01523 550 goto wckdpx if so, send an erroneous msg so the level 6 will 551 send the msg again with a nak and we with 552 selectivly throw that msg away as a stall 553 since the host does not have a defined wait 01525 554 notstl scntr 0 init retry cntr to 0 01527 555 clrlcf gflags,xnak internal, first time always acking 01532 556 cmpchr xmtsc,chr101,seqcd2 deside on which seq cd to use end of binary card 00000024 01535 557 setchr xmtsc,chr101 use #1 01537 558 goto setsqc go set the seq code 01541 559 seqcd2 setchr xmtsc,chr102 have 1 so set it to #2 01543 560 setsqc outscn octrl1,ftfsoh place seq code 01546 561 clrlcf gflags,rtntry first time 01551 562 setlcl rtnlbl,setlrc where to come for second time 01554 563 setlrc outscn octrl2,lrcetx set lrc character 01557 564 holdot save output for rexmit if neccessary 01560 565 goto wckdpx do the output 01562 566 lrcetx outscn octrl5,ftbld no etx,try etb 01565 567 holdot save this for xmit again latter 01566 568 goto wckdpx go do our thing 569 01570 570 lrceot outscn octrl6,ftbld no etb, try eot, else give up 01573 571 holdot 572 573 01574 574 wckdpx clrlcf gflags,early looking for new response 01577 575 tstflg tffdpx,wfdpx see which duplex to output with end of binary card 00000025 01603 576 contrl srts+stat half duplex 01605 577 setime 1 wait for 1 sec 01607 578 wait ftxmit,0,gtest for line to turn around 01613 579 status 0,dsr,ghang 01617 580 status cts,0,wgotln we got the line 01623 581 status exh,0,exhlim watch for runaway channel assm 01 12-22-82 14.185 new g115 tables page 40 g115 routine to write and then read the response 582 01627 583 wgotln dcwlst set up the dcw list 01630 584 cmd sxmit+srec go into xmit mode and possible response 01631 585 output (outmsg) send data out 01633 586 cmd sterm+rxmit wait for msg to go out 01634 587 wait 0,0,gtest wait for status change 01640 588 status 0,dsr,ghang 01644 589 status brkchr,0,elyrsp fast wasn't he. 01650 590 status exh,0,exhlim watch for runaway channel end of binary card 00000026 01654 591 status 0,cts,wrlost lost line so try again 01660 592 status term,0,wgood output terminated properly 593 01664 594 wgood contrl rrts+stat ready ourselves for input 01666 595 tstlcf gflags,early,lintrn already have our response 01672 596 setimv dlytim wait 7 secs 01674 597 wait norsp,0,gtest for a response 01700 598 status 0,dsr,ghang 01704 599 status cd,0,lintrn turned line properly 01710 600 status exh,0,exhlim watch for runaway channel 601 602 01714 603 wfdpx dcwlst bld dcw list for full dplx line 01715 604 cmd sxmit+srec ready for output and input for full dpx 01716 605 output (outmsg) go do it end of binary card 00000027 01720 606 cmd sterm+rxmit ready for response 01721 607 wait 0,0,gtest wait for output tp finish 01725 608 status 0,dsr,ghang 01731 609 status brkchr,0,elyrsp fast son-of-a-gun 01735 610 status exh,0,exhlim watch for runaway channel 01741 611 status term,0,lintrn output finished properly 612 01745 613 elyrsp setlcf gflags,early note that we have our response already 01750 614 waitm go finish what we were doing 615 01751 616 lintrn cmpchr modtyp,inact4,trmchk if trminate msg, say we did it 01754 617 goto rspwat else just go wait for response 01756 618 trmchk setchr modtyp,inact5 say we sent it and dont do it again 01760 619 rspwat tstlcf gflags,early,wrecrp already have our response 01764 620 contrl stat see if anything interesting has happened 01766 621 setimv dlytim give us 7 secs end of binary card 00000028 01770 622 wait norsp,0,gtest wait for a response 01774 623 status 0,dsr,ghang 02000 624 status brkchr,0,wrecrp got a response 02004 625 status parity,0,gwrpar nak bad parity 02010 626 status exh,0,exhlim we ate too much go dmp it 627 02014 628 wrecrp contrl rrec+smark get out of rec mode 02016 629 wait 0,0,gtest wait for rec to be reset assm 01 12-22-82 14.185 new g115 tables page 41 g115 routine to write and then read the response 02022 630 status marker,0,recrst then continue 02026 631 status exh,0,exhlim 02032 632 status 0,dsr,ghang end of binary card 00000029 633 02036 634 recrst calsub gckin see what we got 02040 635 cmpchr fctype,null,wrnak error in response 02043 636 cmpchr incnt,null,wcknak no data in response 02046 637 cmpchr seqcde,prevsc,wckxnk same seq code 02051 638 goto wsvsc response ok save seq code 639 02053 640 wckxnk tstlcf gflags,xnak,wcknak see if we really already processed it 02057 641 dumpin yes, (data msg with same seq code) dont need it 02060 642 setchr incnt,null keep things consistant 643 02062 644 wcknak cmpchr acknak,nak,wrecnk got a nak 645 02065 646 wsvsc setchr prevsc,seqcde save the seq code 02067 647 cmpchr fctype,srvmes,wsvmes service msg 02072 648 cmpchr optype,opwait,wopwt need to wait 7 secs 02075 649 wrtok gocase modtyp,etxcmp,wrjmp output msg sent ok 02101 650 dmpout we dont need it any more 02102 651 gocase modtyp,wextmd,wextjp exit based on mode end of binary card 00000030 02106 652 goto badmod 653 654 02110 655 gwrpar meter1 m.par,1 02113 656 stpchn bad parity so throw it away 02115 657 dumpin 02116 658 goto wrnak and nak the msg 659 02120 660 wsvmes gocase modtyp,etxcmp,wrjmp if active output, let output decide what to d 02124 661 gocase optype,redop,srjmp see if srv msg needs processing 02130 662 goto wrtok message received ok 663 02132 664 wopwt dumpin throw away the wait message 02133 665 meter2 m.cnt4,1 02136 666 outscn octrl4,ftfsoh set ack in byte 02141 667 setimv dlytim set time for 7 secs 02143 668 wait wckdpx,0,gtest re-xmit after 7 secs 02147 669 status 0,dsr,ghang 02153 670 status exh,0,exhlim watch for runaway channel end of binary card 00000031 671 02157 672 wrecnk dumpin finished with input msg 02160 673 setchr incnt,null just to keep info consistant 02162 674 outscn octrl4,ftfsoh set ack in ic byte 02165 675 clrlcf gflags,xnak internal to say we are acking 02170 676 cmpchr modtyp,actinp,ckbyin in inputing, check some more 02173 677 goto wrlost keep triing until he says ok assm 01 12-22-82 14.185 new g115 tables page 42 g115 routine to write and then read the response 678 02175 679 ckbyin tstlcl bsyinc,0,wrlost if not busy bad msg 02201 680 dmpout cleanup the msg we forced out 02202 681 goto ginlop else things are backing up 682 02204 683 norsp meter2 m.cnt3,1 02207 684 gocase modtyp,norcmp,norjmp level 6 may or may not answer our msg 02213 685 goto wrlost get back to idle state 686 687 02215 688 wrnak outscn octrl3,ftfsoh set nak bit in ic byte 02220 689 setlcf gflags,xnak internal to say we are naking end of binary card 00000032 02223 690 wrlost meter2 m.cnt2,1 02226 691 acntr 1 bump retry counter 02230 692 tcntr 10,ftxmit too many xmition failures 02233 693 goto wckdpx go try again assm 01 12-22-82 14.185 new g115 tables page 43 routine to test orders from main frame 02235 695 gtest tstflg tfhang,ghang told to hangup 02241 696 tstflg tfwabt,gpgwrt write abort, purge output 02245 697 tstflg tfrabt,gpginp read abort,purge input 02251 698 linctl ctlop,tstret if no line control order just return 02254 699 tstlcl ctlop,lcttwr,gtstot see if output pending for him 02260 700 tstlcl ctlop,lctrmt,gtstrc are we to set remote mode 02264 701 tstlcl ctlop,lctrrt,gtstrr are we ro reset remote mode 02270 702 setlcl ctlop,notimp else line control order not implemented end of binary card 00000033 02273 703 setlcl ctlop1,0 set second 18 bits 02276 704 setlcl ctlop2,0 zero 3rd 18 bits 02301 705 setlcl ctlop3,0 zero 4th 18 bits 02304 706 linsta ctlop go tell 68/80 we have no response 02306 707 tstret waitm not interested in anything else 708 709 02307 710 gntint tstflg tfhang,ghangn hangup without tib ext 02313 711 waitm dont care 712 713 02314 714 gpgwrt stpchn hold on for a second 02316 715 calsub dmpall purge all output 02320 716 clrflg tfwabt reset this flag 02323 717 tstflg tfrabt,gpginp see if read abort also is set 02327 718 gocase modtyp,trmcmp,trmabt if teminating dont re-xmit 02333 719 goto gterm send terminate msg 720 721 02335 722 gpginp stpchn stop everything here also 02337 723 dumpin purge all input 02340 724 clrflg tfrabt reset this flag end of binary card 00000034 02343 725 gocase modtyp,trmcmp,trmabt if terminating dont re-xmit 02347 726 goto gterm 727 728 729 02351 730 gtstot tstwrt tstsot if pending output tell 68/80, he asked us 02353 731 setlcl ctlop,0 say we have no data 02356 732 goto gtstrt go return the info 02360 733 tstsot setlcl ctlop,otpend say we have output pending 02363 734 gtstrt setlcl ctlop1,0 set second 18 bits 02366 735 setlcl ctlop2,0 zero 3rd 18 bits 02371 736 setlcl ctlop3,0 zero 4th 18 bits 02374 737 linsta ctlop go tell 68/80 his answer 02376 738 waitm go back from where we came 739 02377 740 gtstrc setlcf gflags,rmtcmp+trmchr say to act as remote 02402 741 setlcl dlytim,6 set timer as if we are remote 02405 742 waitm 743 assm 01 12-22-82 14.185 new g115 tables page 44 routine to test orders from main frame 02406 744 gtstrr clrlcf gflags,rmtcmp say to act as host end of binary card 00000035 02411 745 setlcl dlytim,8 set timer as if host 02414 746 waitm assm 01 12-22-82 14.185 new g115 tables page 45 routines to give main frame a status indication 02415 748 ftbld tstlcf gflags,rtntry,bldfld see if we tried this before 02421 749 setime 1 if not wait 1 sec and try again 02423 750 wait bldwt,0,gtest 02427 751 status 0,dsr,ghang watch out 02433 752 bldwt setlcf gflags,rtntry say we tried this once 02436 753 gotov rtnlbl go try again 02440 754 bldfld meter2 m.cnt8,1 02443 755 setlcl ctlop,fbld failure to bld message for output 02446 756 setlcl ctlop1,0 zero second 18 bits 02451 757 setlcl ctlop2,0 zero 3rd 18 bits 02454 758 setlcl ctlop3,0 zero 4th 18 bits end of binary card 00000036 02457 759 linsta ctlop give this status to host 02461 760 goto ghang go hangup the line can do nothing 761 02463 762 ftxmit meter2 m.cnt5,1 02466 763 setlcl ctlop,fxmit unable to send good output 02471 764 setlcl ctlop1,0 zero second 18 bits 02474 765 setlcl ctlop2,0 zero 3rd 18 bits 02477 766 setlcl ctlop3,0 zero 4th 18 bits 02502 767 linsta ctlop give this status to host 02504 768 goto gterm1 cleanup and idle 769 02506 770 ftfsoh meter2 m.cnt6,1 02511 771 setlcl ctlop,fsoh failure to find soh on output msg 02514 772 setlcl ctlop1,0 zero second 18 bits 02517 773 setlcl ctlop2,0 zero 3rd 18 bits 02522 774 setlcl ctlop3,0 zero 4th 18 bits 02525 775 linsta ctlop tell 68/80 end of binary card 00000037 02527 776 dmpout get rid of bad msg 02530 777 gocase modtyp,etxcmp,sohjmp if from 68/80 his problem 02534 778 goto ghang else our problem 779 02536 780 ftfetx meter2 m.cnt6,1 02541 781 gocase modtyp,etxcmp,etxjmp if output from mother it is her problem 02545 782 setlcl ctlop,fetx failure to find ext in canned output msg 02550 783 setlcl ctlop1,0 0 second 18 02553 784 setlcl ctlop2,0 zero 3rd 18 bits 02556 785 setlcl ctlop3,0 zero 4th 18 bits 02561 786 linsta ctlop say we have a problem 02563 787 goto ghang so forget this whole bussiness 02565 788 getmor signal sndout ask for more data please 02567 789 setimv dlytim give 68/80 7 seconds to come up with something 02571 790 wait nomore,morout,gtest if not, dump and terminate end of binary card 00000038 02575 791 status 0,dsr,ghang watch out 02601 792 status exh,0,exhlim watch for runaway channel 02605 793 nomore calasm ckochn one last chance to see if sliped in before wait 02610 794 tstlcl outchn,0,gterm1 if 0 68/80 did not give more so dump it 02614 795 goto gwrrd else we got more so go try to output this assm 01 12-22-82 14.185 new g115 tables page 46 routines to give main frame a status indication 796 797 02616 798 badmod setlcl ctlop,fmod say we have a bad mode in tib 02621 799 setlcl ctlop1,0 zero second 18 bits 02624 800 setlcl ctlop2,0 zero 3rd 18 bits 02627 801 setlcl ctlop3,0 zero 4th 18 bits 02632 802 linsta ctlop tell host about our confussion 02634 803 calsub dmpall start with a clean slate 02636 804 dumpin also dump the input 02637 805 goto gterm 806 807 02641 808 flong meter2 m.cnt7,1 end of binary card 00000039 02644 809 setlcl ctlop,lngmsg message was too long 02647 810 setlcl ctlop1,0 zero 2nd 18 bits 02652 811 setlcl ctlop2,0 zero 3rd 18 bits 02655 812 setlcl ctlop3,0 zero 4th 18 bits 02660 813 linsta ctlop tell 68/80 02662 814 dmpout get rid of bad msg 02663 815 gocase modtyp,etxcmp,sohjmp if from 68/80 go terminate 02667 816 goto ghang else our problem so hangup assm 01 12-22-82 14.185 new g115 tables page 47 routines to end a dialog 02671 818 gterm1 dmpout if had no resp must dmp our msg 02672 819 gterm dumpin throw away the input 02673 820 gocase modtyp,trmcmp,trmjmp already terminated or "ing" 02677 821 setchr modtyp,inact4 end of input or output 02701 822 setlcf gflags,trmchr set the terminate flag 02704 823 clrlcf gflags,rtntry say first time 02707 824 setlcl rtnlbl,trmbld where to come for second try 02712 825 trmbld bldmsg trmmsg,ftbld set up terminate msg end of binary card 00000040 02715 826 goto gwrrd go output term msg 827 02717 828 endtr1 dmpout if no resp must dmp out output 02720 829 endtrm dumpin make sure we are clean 02721 830 setchr modtyp,inact say we are truely inactive 02723 831 goto gidle go rest for a while 832 833 834 02725 835 gdis stpchn received disconnect 02727 836 dumpin get rid of input if any 02730 837 calsub dmpall get rid of all output 02732 838 clrlcf gflags,trmchr lets reset things 02735 839 setchr modtyp,inact we are now inactive 02737 840 goto gidle go rest 841 842 843 02741 844 grfd1 dmpout dump out old msg we had sent 02742 845 grfd dumpin ready for disconnect 02743 846 clrlcf gflags,rtntry first time 02746 847 setlcl rtnlbl,rfdbld where to come for second try 02751 848 rfdbld bldmsg rfdmsg,ftbld generate rfd msg in response 02754 849 setchr modtyp,inact2 set this mode 02756 850 goto gwrrd go put the msg out assm 01 12-22-82 14.185 new g115 tables page 48 processing of special control records 02760 852 scrrcv cmpchr incnt,3,scrabt only 3 chars returned end of binary card 00000041 02763 853 goto scrmor if more or less further checking 02765 854 scrabt inscan ictrl1,passin abort msg? 02770 855 goto scrqut abort so go quit 02772 856 scrmor inscan icldlr,passin check for $*$ in this record 02775 857 gocase scrchr,scrcmp,scrjmp go check this special control record 03001 858 goto passin nothing we expected so give it to multics 859 03003 860 scra inscan iclabt,passin check for abort msg 03006 861 goto scrqut if so go quit 68/80 03010 862 scro inscan iclout,passin check for out msg 03013 863 setlcf gflags,trmchr yes so set terminate flag 03016 864 dumpin we are through with it 03017 865 tstwrt gterm if output, go do it now 03021 866 setime 5 give us 5 secs to 03023 867 wait noout,gterm,gtest wait for output 868 if no data send not data msg 03027 869 status 0,dsr,ghang self explanitory end of binary card 00000042 03033 870 status exh,0,exhlim watch for runaway channel 03037 871 noout setchr modtyp,inact3 waiting for response from no data 03041 872 clrlcf gflags,rtntry first time 03044 873 setlcl rtnlbl,bldnda where to come to try again 03047 874 bldnda bldmsg ndamsg,ftbld build no data msg 03052 875 goto gwrrd go output it 876 03054 877 scrd inscan icldis,passin check fr a disconnect msg 03057 878 setchr modtyp,inact1 we are in process of disconnecting 03061 879 dumpin get rid of old dis msg 03062 880 clrlcf gflags,rtntry first try 03065 881 setlcl rtnlbl,disbld where to come for second try 03070 882 disbld bldmsg dismsg,ftbld bld our own dis msg to the 115 03073 883 goto gwrrd go output our disconnect 884 03075 885 scre inscan iclend,passin check for an end msg end of binary card 00000043 03100 886 goto gterm if so go terminate 887 03102 888 exhlim meter2 m.exh,1 03105 889 stpchn hold everything, its too much 890 and start over again 03107 891 scrqut dumpin get rid of msg 03110 892 signal quit quit to 68/80 03112 893 calsub dmpall dump all the output 03114 894 goto gterm go terminate this dialog 895 03116 896 passin cmpchr incnt,null,scrrtn nothing to give 68/80 03121 897 cmpchr modtyp,actinp,scrrtn if actinp let input do the sendins 03124 898 sendin give it to the 68/80 03125 899 scrrtn gocase modtyp,wextmd,sctjmp go back assm 01 12-22-82 14.185 new g115 tables page 49 processing of special control records 03131 900 goto badmod bad data in tib assm 01 12-22-82 14.185 new g115 tables page 50 routine to hangup the line 03133 902 ghang retext release the tib extension 03134 903 ghangn contrl rxmit+rrec+rdtr+rrts lower all the contrl lines 03136 904 setime 5 wait 5 secs for modem to follow 03140 905 wait ghg,0,0 03144 906 status 0,dsr,ghg modem did its thing end of binary card 00000044 03150 907 ghg stpchn make sure all is stopped 03152 908 signal hangup tell momma he went home 03154 909 calsub dmpall purge all output buffers 03156 910 dumpin purge input buffer 03157 911 clrflg tfhang reset flag for next time 03162 912 goto hungup back to main contrl tables 913 thats all folks! assm 01 12-22-82 14.185 new g115 tables page 51 subroutine to insure all output is dumped 03164 915 dmpall dmpout throw output buffer away 03165 916 tstwrt dmpall still have some left 03167 917 retsub return to caller assm 01 12-22-82 14.185 new g115 tables page 52 subroutine to check for data remote sent to us 03170 919 gckin inscan ictrl2,gbadin check lrc on input 03173 920 calasm stpbcc go strip the bcc character from the buffer 03176 921 inscan ictrl7,gbadin find soh 03201 922 inscan fcscan,gbadin get the msg type to a tib addr 03204 923 gocase fctype,fccmp,fcjmp go to type of msg it is 03210 924 goto gbadin not a valid function code type 925 03212 926 fcsm setchr fctype,srvmes service msg 03214 927 goto gckcnt go check the rest end of binary card 00000045 03216 928 fcscr setchr fctype,scrmes special record msg 03220 929 goto gckcnt 03222 930 fcinf setchr fctype,infmes information msg 03224 931 gckcnt inscan ictrl4,gbadin save seq code, op type, and ack 03227 932 cmpchr acknak,null,setack see if we got ack in msg 03232 933 setchr acknak,nak no so say nak 03234 934 goto gack go get the cnt 03236 935 setack setchr acknak,ack yes we got an ack 03240 936 gack inscan ictrl6,gcketb count the chars we got 03243 937 goto gcksrv see if srv msg needs more checks 03245 938 gcketb inscan ictrl9,gbadin ck for etb if no etx 03250 939 gcksrv cmpchr fctype,srvmes,cksrv see if further checking required 03253 940 retsub no so go back 03254 941 cksrv gocase optype,opck,opjmp see if srvmes to be saved 03260 942 dumpin no so dump it 03261 943 gckret retsub return to caller 944 03262 945 gbadin dumpin get rid of bad msg 03263 946 setchr fctype,null say we got error end of binary card 00000046 03265 947 setchr optype,null same here 03267 948 setchr acknak,nak nak the msg 03271 949 meter2 m.cnt1,1 03274 950 retsub go back assm 01 12-22-82 14.185 new g115 tables page 53 subroutine to check for completion of dia input 952 * 953 * 954 * subroutine to check the dia input chain to see if one exists 955 * if it does, it is assumed that we are taking data faster than 956 * we can give it to the 68/80 and we must slow down by 957 * doing something else and checking again later. 958 * 959 * 03275 960 ckibsy subr cki,(x3) 03303 673 765 0 961 ila msgchk get tib addr of place to store result 03304 4333 00 0 962 cax3 move that tib addr to x3 03305 4 10 344 3651 963 tsy ckmcad-*,* call cvaddr to get real addr 03306 0 50 331 3637 964 stx3 ckmans-* save this addr to store status 03307 4 56 330 3637 965 stz ckmans-*,* init the status to 0 03310 1 20 026 0 966 szn t.dcp,1 set zero flag if no 68/80 input pending 03311 0 74 002 3313 967 tze ckirtn-* not busy so just return 03312 4 76 325 3637 968 aos ckmans-*,* else set it to one (fspr) 03313 969 ckirtn return ckibsy assm 01 12-22-82 14.185 new g115 tables page 54 subroutine to check for any addtional output 971 * 972 * 973 * subroutine to check to see if dia_man has appended any addtional 974 * output to our output chain since we last looked at it. dia_man will 975 * not notify us if he appended stuff to an already existing chain, so 976 * we have to check for the appending ourselves 977 * 978 * 03315 979 ckochn subr cko,(x3) 03323 673 764 0 980 ila outchn get tib addr of place to get buffer addr 03324 4333 00 0 981 cax3 move this tib addr to x3 03325 4 10 324 3651 982 tsy ckmcad-*,* convert tib addr to real addr 03326 0 50 312 3640 983 stx3 ckmout-* save addr of variable for later use 03327 4 07 311 3640 984 lda ckmout-*,* get buffer through indirect 03330 4 10 134 3464 985 tsy a.a001-*,* setbpt end of binary card 00000047 03331 4333 00 0 986 cax3 03332 3 07 000 0 987 lda bf.nxt,3 get addr of the next buffer in the output chain 03333 4 17 305 3640 988 sta ckmout-*,* if not 0 we have more output 03334 989 return ckochn assm 01 12-22-82 14.185 new g115 tables page 55 subroutine to adjust the buffer tally to not reflect the lrc 991 * 992 * 993 * subroutine to adjust the buffer tally to not reflect the lrc 994 * character in the tally of the buffer with the terminate 995 * character. 996 * 997 * 03336 998 stpbcc subr stp,(x3) strip block chaeck char 03344 0 56 262 3626 999 stz prvbuf-* 03345 0 56 262 3627 1000 stz prsbuf-* 03346 0 56 301 3647 1001 stz prschr-* 03347 1 07 005 0 1002 lda t.icp,1 get input chain 03350 0 74 104 3454 1003 tze stprtn-* if none, go back 03351 0 17 257 3630 1004 stpbuf sta prsabs-* save absolute address of buffer 03352 4 10 112 3464 1005 tsy a.a001-*,* setbpt 03353 4333 00 0 1006 cax3 03354 0 50 253 3627 1007 stx3 prsbuf-* save virtual addr of this input buffer 03355 3 07 001 0 1008 lda bf.flg,3 get flag word into a 03356 0 34 100 3456 1009 ana stpbrk-* and to get if brk char is here or not 03357 0 74 066 3445 1010 tze stpnxt-* if zero then use other buffer 03360 3 07 001 0 1011 lda bf.tly,3 get tally word into a 03361 0 34 267 3650 1012 ana tlymsk-* and separate character count 03362 0 74 072 3454 1013 tze stprtn-* must be error, forwe have term char here it said 03363 773 777 0 1014 iaa -1 char #1 is in 0 position 03364 0 17 263 3647 1015 sta prschr-* save the tally to add later 03365 0 34 073 3460 1016 ana stpodd-* see if even or odd 03366 0 74 005 3373 1017 tze stpevn-* it is even 03367 0 07 260 3647 1018 lda prschr-* get tally back 03370 0337 01 0 1019 ars 1 divide by 2 03371 0 37 066 3457 1020 ora stpbyt-* looking for odd byte since odd count 03372 0 71 004 3376 1021 tra stpdo-* go do the add 03373 0 07 254 3647 1022 stpevn lda prschr-* get tally back 03374 0337 01 0 1023 ars 1 divide by 2 03375 0 37 234 3631 1024 ora ckobyt-* looking for even byte 03376 0 17 251 3647 1025 stpdo sta prschr-* save for later use end of binary card 00000048 03377 3333 00 0 1026 cx3a move buffer addr to a 03400 773 002 0 1027 iaa bf.dta incr to get real data 03401 0 37 230 3631 1028 ora ckobyt-* set to byte addring 03402 4333 00 0 1029 cax3 set x3 to this char addr 03403 0 40 244 3647 1030 adcx3 prschr-* set x3 to the char pointed to by tally 03404 3 07 200 0 1031 lda 0,3,b.0 load a with this char 03405 0 64 040 3445 1032 tnz stpnxt-* either we were here already or lrc not checked 03406 0 41 221 3627 1033 ldx3 prsbuf-* get buffer back 03407 3 07 001 0 1034 lda bf.tly,3 get tally back to a 03410 773 777 0 1035 iaa -1 add -1 (substract 1) 03411 3 17 001 0 1036 sta bf.tly,3 and put it back decremented 03412 0 34 236 3650 1037 ana tlymsk-* just get the count 03413 0 64 032 3445 1038 tnz stpnxt-* go look at the next buff if not zero count 03414 3 47 000 0 1039 ldq bf.nxt,3 if zero must release it 03415 0 07 211 3626 1040 lda prvbuf-* get previous buffer assm 01 12-22-82 14.185 new g115 tables page 56 subroutine to adjust the buffer tally to not reflect the lrc 03416 0 74 036 3454 1041 tze stprtn-* error 03417 4 10 045 3464 1042 tsy a.a001-*,* setbpt 03420 4333 00 0 1043 cax3 03421 3 57 000 0 1044 stq bf.nxt,3 unthread the buffer we will free 03422 3 07 001 0 1045 lda bf.flg,3 get the flags for this buffer 03423 0 37 036 3461 1046 ora stplst-* say this is the real end of msg 03424 0 37 032 3456 1047 ora stpbrk-* say this is really where the break char is 03425 3 17 001 0 1048 sta bf.flg,3 put the modified flags back 03426 0 07 202 3630 1049 lda prsabs-* get back the buffer to be freed 03427 4 10 035 3464 1050 tsy a.a001-*,* setbpt 03430 4333 00 0 1051 cax3 03431 3 07 001 0 1052 lda bf.siz,3 get size code 03432 0337 17 0 1053 ars 15 get size code as interger 03433 773 001 0 1054 iaa 1 total # of 32 word groups 03434 0 17 026 3462 1055 sta stptly-* save num of icpl we need to subtract 03435 1 07 007 0 1056 lda t.icpl,1 get count of icp buffer lengths 03436 0 27 024 3462 1057 cmpa stptly-* just check to make sure 03437 0 75 015 3454 1058 tmi stprtn-* icpl less than number we calculated, error 03440 0 26 022 3462 1059 sba stptly-* substract out our buffer we are releasing 03441 1 17 007 0 1060 sta t.icpl,1 put back the correct tally 03442 0 07 166 3630 1061 lda prsabs-* get buffer address 03443 473 000 0 1062 ilq 0 tell frebuf to use size code 03444 4 10 017 3463 1063 tsy stpfre-*,* go free this buffer 03445 0 07 163 3630 1064 stpnxt lda prsabs-* get the old pres buff end of binary card 00000049 03446 0 17 160 3626 1065 sta prvbuf-* and store it as a previous buff 03447 4 10 015 3464 1066 tsy a.a001-*,* setbpt 03450 4333 00 0 1067 cax3 03451 3 07 000 0 1068 lda bf.nxt,3 get addr of next buffer 03452 0 74 002 3454 1069 tze stprtn-* no more so return 03453 0 71 676 3351 1070 tra stpbuf-* go try this buffer now 03454 1071 stprtn return stpbcc 1072 03456 020000 0 1073 stpbrk vfd o18/bffbrk break char flag 03457 3 00000 0 1074 stpbyt zero 0,b.1 odd byte addring 03460 000001 0 1075 stpodd vfd o18/1 looking at least significant bit (b17) 03461 040000 0 1076 stplst vfd o18/bfflst mask to set last buff in msg flag 03462 1077 stptly bss 1 total num of 32 word blocks in buffer 03463 0 06000 3 1078 stpfre ind frebfh to free a buffer 1079 03464 0 10000 3 1080 a.a001 ind setbpt 03465 0 02000 3 1081 a.a002 ind cvabs 03466 4 00710 0 1082 a.a003 ind .crbpe,* assm 01 12-22-82 14.185 new g115 tables page 57 subroutine to check an output msg 1084 * 1085 * possibilities are 1086 * good msg transmit 1087 * particle msg ask multics for more 1088 * particle msg(s) followed 1089 * by good msg throw away particle msgs 1090 * msg > 324 text chars throw away 1091 * invalid msg throw away 1092 * 1093 * subroutine to check for a valid output message 1094 * a status is stored in the tib extension depending on the 1095 * result of our check. 1096 * gocase is then used to decide what to do with the status 1097 * 1098 * 03467 1099 ckomsg subr ckm,(x3) 03475 673 765 0 1100 ila msgchk get tib addr of place to put our result 03476 4333 00 0 1101 cax3 move that tib addr to x3 03477 4 10 152 3651 1102 tsy ckmcad-*,* call cvaddr to get real addr 03500 0 50 137 3637 1103 stx3 ckmans-* save the addr to store our answer 03501 673 764 0 1104 ila outchn our last buffer addr 03502 4333 00 0 1105 cax3 move this tib addr to x3 03503 4 10 146 3651 1106 tsy ckmcad-*,* get real addr to that variable 03504 0 50 134 3640 1107 stx3 ckmout-* place real addr in word to use later 03505 4 56 132 3637 1108 stz ckmans-*,* init answer to 0 and place it 03506 1 07 012 0 1109 lda t.ocp,1 get output chain 03507 0 74 114 3623 1110 tze ckmrtn-* no output so just return 03510 0 56 135 3645 1111 stz ckmflg-* init our found flag to 0 03511 0 56 114 3625 1112 stz lstbuf-* init last buffer address 03512 0 56 114 3626 1113 stz prvbuf-* init prev last msg buffer end of binary card 00000050 03513 0 56 126 3641 1114 stz ckmcnt-* init character count of message 03514 4 10 750 3464 1115 ckmbuf tsy a.a001-*,* setbpt 03515 0 17 112 3627 1116 sta prsbuf-* save base of present buffer 03516 4333 00 0 1117 cax3 save this buffer addr in x3 03517 3 07 001 0 1118 lda bf.tly,3 get number of chars in this data buffer 03520 0 34 130 3650 1119 ana tlymsk-* tally is low 9 bits 03521 773 001 0 1120 iaa 1 set our buffer overflow number 03522 0 17 110 3632 1121 sta ckmmax-* save our over flow number 03523 0 56 110 3633 1122 stz buftly-* set number of characters we start with 03524 3333 00 0 1123 cx3a get base of buffer back to a 03525 773 002 0 1124 iaa bf.dta get to first character in buffer 03526 0 37 103 3631 1125 ora ckobyt-* get to the 0 byte 03527 4333 00 0 1126 cax3 get this real addr to x3 for use 03530 0 76 103 3633 1127 ckmget aos buftly-* have scanned up another one in buffer 03531 0 07 102 3633 1128 lda buftly-* get our buffer characters read 03532 0 27 100 3632 1129 cmpa ckmmax-* see if we should switch to next buffer now 03533 0 64 010 3543 1130 tnz ckmsbf-* use the same buffer 03534 0 41 073 3627 1131 ldx3 prsbuf-* get our present buffer 03535 3333 00 0 1132 cx3a convert to absolute address 03536 4 10 727 3465 1133 tsy a.a002-*,* cvabs assm 01 12-22-82 14.185 new g115 tables page 58 subroutine to check an output msg 03537 0 17 066 3625 1134 sta lstbuf-* save our present buffer for reference 03540 3 07 000 0 1135 lda bf.nxt,3 get next buffer addr 03541 0 64 753 3514 1136 tnz ckmbuf-* if not zero we have a next buffer 03542 0 71 050 3612 1137 tra ckmmor-* else we are at end of string 03543 0 76 076 3641 1138 ckmsbf aos ckmcnt-* incr our character count 03544 0 07 102 3646 1139 lda ckmlen-* load a with max msg length 03545 0 27 074 3641 1140 cmpa ckmcnt-* see if we are too long yet 03546 0 75 042 3610 1141 tmi ckmlng-* if so go notify 03547 3 07 200 0 1142 lda 0,3,b.0 get the character to check 03550 0 27 072 3642 1143 cmpa ckmetx-* see if we have an etx char 03551 0 74 046 3617 1144 tze ckmsta-* yes so msg is complete 03552 0 27 071 3643 1145 cmpa ckmetb-* see if we have an etb which is ok 03553 0 74 044 3617 1146 tze ckmsta-* yes so msg can be sent 03554 0 27 070 3644 1147 cmpa ckmeot-* see if eot char 03555 0 74 042 3617 1148 tze ckmsta-* yes so it is ok 03556 0 27 056 3634 1149 cmpa ckmsoh-* see if it is an soh char 03557 0 64 027 3606 1150 tnz ckmnxt-* no so go get the next char 03560 0 76 065 3645 1151 aos ckmflg-* say we found another soh char 03561 0 20 044 3625 1152 szn lstbuf-* see if first buffer we looked at end of binary card 00000051 03562 0 74 024 3606 1153 tze ckmnxt-* first so dont discard it. 03563 0 50 064 3647 1154 stx3 prschr-* save our present character location 03564 4 47 702 3466 1155 ldq a.a003-*,* (.crbpe,*) hold on to pte 03565 0 20 041 3626 1156 szn prvbuf-* see if we had a previous last msg 03566 0 74 004 3572 1157 tze ckmset-* if not, go set this one 03567 0 41 037 3626 1158 ldx3 prvbuf-* get that previous buffer 03570 0 07 045 3635 1159 lda bftlsn-* load a with the last buf not flag 03571 3 32 001 0 1160 ansa bf.flg,3 set the last flag to 0 03572 0 41 033 3625 1161 ckmset ldx3 lstbuf-* go get our lst buffer 03573 0 50 033 3626 1162 stx3 prvbuf-* say we set one here 03574 0 56 045 3641 1163 stz ckmcnt-* restart our msg char cnt here 03575 673 011 0 1164 ila discrd say we have to dump 03576 4 17 041 3637 1165 sta ckmans-*,* save this status 03577 3333 00 0 1166 cx3a convert buffer address to virtual 03600 4 10 664 3464 1167 tsy a.a001-*,* setbpt 03601 4333 00 0 1168 cax3 back to x3 03602 0 07 034 3636 1169 lda bftmsk-* load a with the last flag mask 03603 3 72 001 0 1170 orsa bf.flg,3 set the last flag 03604 0 41 043 3647 1171 ldx3 prschr-* go back to our present character 03605 4 57 661 3466 1172 stq a.a003-*,* (.crbpe,*) restore pte 03606 373 300 0 1173 ckmnxt iacx3 0,b.1 incr to the next character 03607 0 71 721 3530 1174 tra ckmget-* go get the next character 03610 673 012 0 1175 ckmlng ila lngmsg message was too long 03611 0 71 005 3616 1176 tra ckmwan-* see if it was a msg at all 03612 0 07 015 3627 1177 ckmmor lda prsbuf-* get the addr of our last good buffer 03613 4 10 652 3465 1178 tsy a.a002-*,* cvabs 03614 4 17 024 3640 1179 sta ckmout-*,* save this addr in our tib 03615 673 005 0 1180 ila fetx if we got here we didnt find an etx 03616 4 17 021 3637 1181 ckmwan sta ckmans-*,* place the answer we have so far 03617 0 20 026 3645 1182 ckmsta szn ckmflg-* see if we found at least one soh char 03620 0 64 003 3623 1183 tnz ckmrtn-* if we did skip next error msg assm 01 12-22-82 14.185 new g115 tables page 59 subroutine to check an output msg 03621 673 004 0 1184 ila fsoh say we failed to find soh char 03622 4 17 015 3637 1185 sta ckmans-*,* store our answer in the tib 03623 1186 ckmrtn return ckomsg return to the caller 1187 03625 1188 lstbuf bss 1 last buffer we looked at 03626 1189 prvbuf bss 1 previous buffer we set last buf flag in 03627 1190 prsbuf bss 1 virtual addr of the present buffer we are in 03630 1191 prsabs bss 1 absolute " " " " " " " " 03631 2 00000 0 1192 ckobyt zero 0,b.0 the first byte of the word 03632 1193 ckmmax bss 1 max number of chars + 1 we allowed in buff 03633 1194 buftly bss 1 char we are looking at in buffer end of binary card 00000052 03634 000001 0 1195 ckmsoh vfd o18/soh soh character mask 03635 737777 0 1196 bftlsn vfd o18//bfflst last buff zeroed mask 03636 040000 0 1197 bftmsk vfd o18/bfflst last buff mask 03637 1198 ckmans bss 1 final addr to store our response 03640 1199 ckmout bss 1 final addr to store last output buffer in 03641 1200 ckmcnt bss 1 character count of msg 03642 000003 0 1201 ckmetx vfd o18/etx etx character 03643 000027 0 1202 ckmetb vfd o18/chr027 etb character 03644 000004 0 1203 ckmeot vfd o18/eot eot character 03645 1204 ckmflg bss 1 flag that we had found atleast one soh char 03646 000514 0 1205 ckmlen dec 332 max length of msg plus header, plus etx 03647 1206 prschr bss 1 our present character location in buffer 03650 000777 0 1207 tlymsk vfd o18/buftmk mask to get tally count 03651 0 05000 3 1208 ckmcad ind cvaddr external subroutine to get real tib addr end of binary card 00000053 assm 01 12-22-82 14.185 new g115 tables page 60 subroutine to check an output msg 1210 end 3652 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 12-22-82 14.188 new g115 tables page 61 octal symbol references by sequence no. 6 ack 55 55 935 70 ackmsk 186 186 299 314 463 acknak 87 87 314 644 932 933 935 948 1 actinp 113 113 234 267 412 448 546 676 897 3 actot1 115 115 234 469 4 actot2 116 116 224 234 491 10 actot3 117 117 224 234 267 442 443 517 4 acutst 44 326 3464 a.a001 1080 985 1005 1042 1050 1066 1080 1115 1167 3465 a.a002 1081 1081 1133 1178 3466 a.a003 1082 1082 1155 1172 2616 badmod 798 652 798 900 1 begin 41 328 20000 bffbrk 56 56 1073 40000 bfflst 56 56 1076 1196 1197 2 bf.dta 56 56 1027 1124 1 bf.flg 56 56 1008 1045 1048 1160 1170 0 bf.nxt 56 56 987 1039 1044 1068 1135 1 bf.siz 56 56 1052 1 bf.tly 56 56 1011 1034 1036 1118 3635 bftlsn 1196 1159 1196 3636 bftmsk 1197 1169 1197 2 b.0 1031 1142 1192 3 b.1 1074 1173 2440 bldfld 754 748 754 3047 bldnda 874 873 874 2433 bldwt 752 750 752 1000 brkchr 55 55 367 589 609 624 777763 bsyinc 101 101 361 406 413 428 435 436 447 458 548 679 1205 bsyinp 447 435 447 1135 bsysnd 430 428 430 3633 buftly 1194 1122 1127 1128 1194 777 buftmk 56 56 1207 0 cct.3 61 61 346 1 cd 55 55 343 599 1 chk 323 215 219 224 229 234 241 244 248 251 254 258 261 264 267 272 274 275 276 277 278 279 280 281 283 286 288 293 295 297 299 301 303 308 309 310 312 314 315 316 317 319 320 321 322 323 10 chr010 201 201 297 27 chr027 191 191 301 317 1202 36 chr036 192 192 283 286 288 40 chr040 193 193 286 44 chr044 194 194 288 319 52 chr052 195 195 288 319 61 chr061 200 200 310 100 chr100 197 197 272 274 276 277 278 279 280 281 283 286 288 101 chr101 196 196 248 286 556 557 102 chr102 199 199 248 272 277 286 320 559 103 chr103 198 198 248 276 104 chr104 202 202 248 278 281 283 286 323 105 chr105 203 203 248 assm 01 12-22-82 14.188 new g115 tables page 62 octal symbol references by sequence no. 111 chr111 204 204 283 322 112 chr112 205 205 274 116 chr116 207 207 283 286 288 323 117 chr117 208 208 248 286 288 123 chr123 209 209 283 322 124 chr124 210 210 286 288 320 321 125 chr125 211 211 288 321 104 chval 323 215 219 224 229 234 241 244 248 251 254 258 261 264 267 272 274 275 276 277 278 279 280 281 283 286 288 293 295 297 299 301 303 308 309 310 312 314 315 316 317 319 320 321 322 323 2 c.rcrq 54 54 55 40 c.rdtr 54 54 55 2 c.rrec 54 54 55 20000 c.rrqs 54 54 55 200 c.rsup 54 54 55 200 c.rtre 54 54 55 10 c.rxmt 54 54 55 1000 c.sbrk 54 54 55 1 c.scrq 54 54 55 20 c.sdtr 54 54 55 2000 c.smrk 54 54 55 1 c.srec 54 54 55 10000 c.srqs 54 54 55 100 c.ssup 54 54 55 400 c.stat 54 54 55 100 c.stre 54 54 55 4000 c.strm 54 54 55 4 c.sxmt 54 54 55 2175 ckbyin 679 676 679 3275 ckibsy 960 403 960 969 3313 ckirtn 969 967 969 3637 ckmans 1198 964 965 968 1103 1108 1165 1181 1185 1198 3514 ckmbuf 1115 1115 1136 3651 ckmcad 1208 963 982 1102 1106 1208 3641 ckmcnt 1200 1114 1138 1140 1163 1200 3644 ckmeot 1203 1147 1203 3643 ckmetb 1202 1145 1202 3642 ckmetx 1201 1143 1201 3645 ckmflg 1204 1111 1151 1182 1204 3530 ckmget 1127 1127 1174 3646 ckmlen 1205 1139 1205 3610 ckmlng 1175 1141 1175 3632 ckmmax 1193 1121 1129 1193 3612 ckmmor 1177 1137 1177 3606 ckmnxt 1173 1150 1153 1173 3640 ckmout 1199 983 984 988 1107 1179 1199 3623 ckmrtn 1186 1110 1183 1186 3543 ckmsbf 1138 1130 1138 3572 ckmset 1161 1157 1161 3634 ckmsoh 1195 1149 1195 3617 ckmsta 1182 1144 1146 1148 1182 assm 01 12-22-82 14.188 new g115 tables page 63 octal symbol references by sequence no. 3616 ckmwan 1181 1176 1181 3631 ckobyt 1192 1024 1028 1125 1192 3315 ckochn 979 793 979 989 3467 ckomsg 1099 535 1099 1186 3254 cksrv 941 939 941 1516 ckstal 548 546 548 1303 cktdms 478 475 478 513 cmplrc 55 55 312 521 count 55 55 315 317 61 ct.grt 57 57 64 74 6 ct.ign 57 57 74 0 ct.ncs 57 57 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 81 777770 ctlop1 96 96 703 734 756 764 772 783 799 810 777767 ctlop2 97 97 704 735 757 765 773 784 800 811 777766 ctlop3 98 98 705 736 758 766 774 785 801 812 777771 ctlop 95 95 698 699 700 701 702 706 731 733 737 755 759 763 767 771 775 782 786 798 802 809 813 2 cts 55 55 343 580 591 2 cvabs 48 1081 5 cvaddr 45 1208 100 dialup 55 55 350 3070 disbld 882 881 882 6 disc 168 168 215 219 264 11 discrd 135 135 258 1164 412 dismsg 282 282 882 434 dlrout 287 287 527 777762 dlytim 102 102 348 518 596 621 667 741 745 789 3164 dmpall 915 349 715 803 837 893 909 915 916 4 dsr 55 55 337 368 384 439 520 579 588 598 608 623 632 669 751 791 869 906 10 early 109 109 574 595 613 619 1745 elyrsp 613 589 609 613 2717 endtr1 828 238 252 256 828 2720 endtrm 829 236 255 829 4 eot 55 55 303 1203 3 error 43 701 errtib 356 345 356 3 etx 55 55 272 274 276 277 278 279 280 281 283 286 288 295 312 315 1201 142 etxcmp 224 224 649 660 777 781 815 144 etxjmp 225 225 781 4000 exh 55 55 370 383 440 521 581 590 600 610 626 631 670 792 870 3102 exhlim 888 370 383 440 521 581 590 600 610 626 631 670 792 870 888 2 fbld 128 128 755 221 fccmp 240 240 923 3222 fcinf 930 242 930 226 fcjmp 242 242 923 515 fcscan 309 309 922 3216 fcscr 928 242 928 3212 fcsm 926 242 926 assm 01 12-22-82 14.188 new g115 tables page 64 octal symbol references by sequence no. 461 fctype 85 85 309 387 401 420 474 478 497 635 647 923 926 928 930 939 946 5 fetx 131 131 258 782 1180 2641 flong 808 259 808 6 fmod 132 132 798 6 frebfh 46 1078 4 fsoh 130 130 258 771 1184 2415 ftbld 748 417 421 424 451 461 468 527 545 566 570 748 825 848 874 882 2536 ftfetx 780 259 780 2506 ftfsoh 770 259 560 666 674 688 770 2463 ftxmit 762 578 692 762 3 fxmit 129 129 763 0 g115 35 35 37 82 626 g15acu 338 39 338 3240 gack 936 934 936 3262 gbadin 945 919 921 922 924 931 938 945 1127 gbusy 428 405 428 1176 gbusyo 442 434 438 442 3224 gckcnt 931 927 929 931 3245 gcketb 938 936 938 3170 gckin 919 386 634 919 3261 gckret 943 245 943 3250 gcksrv 939 937 939 2725 gdis 835 216 220 221 222 236 238 252 265 835 2565 getmor 788 225 788 777761 gflags 103 103 347 362 414 416 433 449 459 466 475 485 523 525 531 540 555 561 574 595 613 619 640 675 689 740 744 748 752 822 823 838 846 863 872 880 3133 ghang 902 360 368 384 404 439 520 579 588 598 608 623 632 669 695 751 760 778 787 791 816 869 902 3134 ghangn 903 356 710 903 3150 ghg 907 905 906 907 703 gidle 360 236 238 255 353 360 366 378 389 831 840 765 gin 380 367 380 1014 ginbad 388 388 391 1041 ginlop 403 238 403 438 500 517 681 112 ginopt 215 215 390 114 ginout 216 216 390 1017 ginput 390 387 390 1007 ginset 386 382 386 755 gipar 375 369 375 716 girec 363 363 373 614 glisn 332 327 332 2307 gntint 710 333 342 710 627 gonlin 339 337 339 1372 goodot 514 262 514 1373 goodsc 515 238 515 751 gottst 372 362 372 1252 gout 464 238 372 464 476 479 486 488 1333 goutpt 490 265 482 490 2335 gpginp 722 697 717 722 assm 01 12-22-82 14.188 new g115 tables page 65 octal symbol references by sequence no. 2314 gpgwrt 714 696 714 1032 gredin 401 236 401 2741 grfd1 844 221 222 844 2742 grfd 845 216 220 265 845 1025 gsel 393 216 393 487 600 gstar 326 38 326 653 gtell 345 343 345 2671 gterm1 818 221 222 238 252 256 531 768 794 818 2672 gterm 819 220 227 236 256 524 719 726 805 819 865 867 886 894 2235 gtest 695 366 381 438 519 578 587 597 607 622 629 668 695 750 790 867 2351 gtstot 730 699 730 2377 gtstrc 740 700 740 2406 gtstrr 744 701 744 2363 gtstrt 734 732 734 1465 gwrdrd 539 259 539 2110 gwrpar 655 625 655 1454 gwrrd 535 418 422 425 442 444 452 462 470 492 519 522 529 535 795 826 850 875 883 101 hangup 55 55 908 7 hungup 42 912 564 iclabt 320 320 860 572 icldis 322 322 877 553 icldlr 318 318 856 575 iclend 323 323 885 567 iclout 321 321 862 517 ictrl1 310 310 854 523 ictrl2 311 311 919 531 ictrl4 313 313 931 537 ictrl6 315 315 936 543 ictrl7 316 316 921 546 ictrl9 317 317 938 503 ignore 55 55 293 295 297 299 301 303 308 310 312 314 315 316 317 319 320 321 322 323 7 inact1 118 118 234 251 878 5 inact2 119 119 234 251 849 6 inact3 120 120 234 251 267 871 11 inact4 121 121 234 251 254 267 528 616 821 12 inact5 122 122 234 251 254 267 618 2 inact 114 114 234 254 351 830 839 460 incnt 84 84 315 317 402 498 636 642 673 852 896 110 inf110 177 177 241 272 274 280 281 286 111 inf111 178 178 241 112 inf112 179 179 241 113 inf113 180 180 241 115 inf115 181 181 241 3 infmes 151 151 478 930 710 .crbpe 51 51 1082 0 k 605 585 605 3 lctrmt 141 141 700 6 lctrrt 143 143 701 5 lcttwr 142 142 699 assm 01 12-22-82 14.188 new g115 tables page 66 octal symbol references by sequence no. 1751 lintrn 616 595 599 611 616 12 lngmsg 136 136 258 809 1175 1562 lrcetx 566 563 566 3625 lstbuf 1188 1112 1134 1152 1161 1188 1 macwk1 1099 960 969 979 989 998 1071 1099 1186 3 macwk2 1099 960 979 998 1099 40 marker 55 55 382 630 501 match 55 55 310 319 320 321 322 323 36 m.cnt1 53 53 949 40 m.cnt2 53 53 690 42 m.cnt3 53 53 683 44 m.cnt4 53 53 432 665 46 m.cnt5 53 53 762 50 m.cnt6 53 53 770 780 52 m.cnt7 53 53 808 54 m.cnt8 53 53 754 16 m.exh 53 53 888 11 m.par 53 53 375 655 467 modtyp 91 91 351 412 442 443 448 469 491 517 528 543 546 616 618 649 651 660 676 684 718 725 777 781 815 820 821 830 839 849 871 878 897 899 1452 morout 534 516 534 790 517 movchr 55 55 308 309 314 319 520 movmsk 55 55 314 777765 msgchk 99 99 405 536 961 1100 302 msgcmp 258 258 536 305 msgjmp 259 259 536 325 msglcm 267 267 543 330 msgljm 268 268 543 1435 mulout 527 526 527 25 nak 55 55 644 933 948 422 ndamsg 284 284 874 0 noinst 163 163 264 2605 nomore 793 790 793 3037 noout 871 867 871 260 norcmp 251 251 684 263 norjmp 252 252 684 2204 norsp 683 597 622 683 7 notimp 133 133 702 5 notrfd 167 167 219 1525 notstl 554 547 548 554 0 null 55 55 272 274 276 277 278 279 280 281 283 286 288 295 301 303 312 402 498 635 636 642 673 896 932 946 947 445 octrl1 293 293 560 451 octrl2 294 294 563 460 octrl3 296 296 688 465 octrl4 298 298 666 674 472 octrl5 300 300 566 501 octrl6 302 302 570 524 offbit 55 55 299 240 opck 244 244 941 assm 01 12-22-82 14.188 new g115 tables page 67 octal symbol references by sequence no. 242 opjmp 245 245 941 7 opmask 185 185 314 0 opnorq 156 156 261 134 opotjm 222 222 509 2 optdat 157 157 261 482 462 optype 86 86 314 390 454 482 484 487 502 509 648 661 941 947 4 opwait 158 158 648 1417 otck68 522 519 522 1364 otckop 509 230 509 1361 otcksc 506 230 506 10 otpend 134 134 733 155 otptfc 229 229 401 497 157 otptfj 230 230 497 312 otptoc 261 261 502 314 otptoj 262 262 502 777764 outchn 100 100 794 980 1104 1310 outinf 481 478 481 512 outlrc 55 55 295 301 303 403 outmsg 55 55 585 605 1353 outnch 502 498 502 1314 outopc 484 474 484 321 outopj 265 265 484 317 outopt 264 264 484 1341 output 497 226 236 497 1326 outrmt 487 485 487 1272 outsrv 474 236 474 1444 outtrm 531 222 531 10000 parity 55 55 369 625 3116 passin 896 854 856 858 860 862 877 885 896 465 prevsc 89 89 394 637 646 3630 prsabs 1191 1004 1049 1061 1064 1191 3627 prsbuf 1190 1000 1007 1033 1116 1131 1177 1190 3647 prschr 1206 1001 1015 1018 1022 1025 1030 1154 1171 1206 3626 prvbuf 1189 999 1040 1065 1113 1156 1158 1162 1189 113 quit 55 55 892 40 rdtr 55 55 903 4 rdyfd 166 166 215 219 264 2036 recrst 634 630 634 162 redjmp 231 231 401 1066 rednda 412 395 402 408 412 456 120 redop 219 219 454 509 661 123 redopj 220 220 454 1225 redsrv 454 231 454 515 replac 55 55 293 295 301 303 312 510 rescan 55 55 293 295 297 299 301 303 308 310 312 316 317 319 2751 rfdbld 848 847 848 366 rfdmsg 278 278 848 1122 rmtack 424 420 424 1234 rmtbsy 458 433 458 1000 rmtcmp 110 110 347 416 433 475 485 523 531 740 744 1427 rmtout 525 523 525 assm 01 12-22-82 14.188 new g115 tables page 68 octal symbol references by sequence no. 1112 rmttdo 420 416 420 2 rrec 55 55 380 628 903 20000 rrts 55 55 594 903 1760 rspwat 619 617 619 777772 rtnlbl 94 94 415 450 460 467 526 541 562 753 824 847 873 881 4 rtntry 108 108 414 449 459 466 525 540 561 748 752 823 846 872 880 10 rxmit 55 55 364 586 606 903 104 scr104 175 175 241 283 288 105 scr105 176 176 241 3003 scra 860 249 860 2765 scrabt 854 852 854 470 scrchr 92 92 319 857 245 scrcmp 248 248 857 3054 scrd 877 249 877 3075 scre 885 249 885 251 scrjmp 249 249 857 2 scrmes 150 150 229 928 2772 scrmor 856 853 856 3010 scro 862 249 862 3107 scrqut 891 249 532 855 861 891 2760 scrrcv 852 231 507 852 3125 scrrtn 899 896 897 899 206 sctjmp 237 237 899 20 sdtr 55 55 332 502 search 55 55 293 295 297 299 301 303 308 310 312 315 316 317 319 1263 selbld 468 467 468 2 select 164 164 215 219 244 487 361 selmsg 277 277 468 1541 seqcd2 559 556 559 464 seqcde 88 88 314 394 637 646 3236 setack 935 932 935 523 setbit 55 55 297 10 setbpt 47 1080 650 setdpx 344 339 344 514 seteom 55 55 272 274 276 277 278 279 280 281 283 286 288 1554 setlrc 563 562 563 1543 setsqc 560 558 560 1063 shipit 410 406 410 200000 s.acr 54 54 55 400000 s.ads 54 54 55 400000 s.bdmk 54 54 55 200000 s.bmk 54 54 55 1000 s.brch 54 54 55 400 s.brk 54 54 55 1 s.cd 54 54 55 2 s.cts 54 54 55 100000 s.dlo 54 54 55 4 s.dsr 54 54 55 4000 s.exh 54 54 55 10000 s.fcse 54 54 55 40000 s.isd 54 54 55 assm 01 12-22-82 14.188 new g115 tables page 69 octal symbol references by sequence no. 40 s.mark 54 54 55 400000 s.pbyt 54 54 55 200 s.prex 54 54 55 10000 s.prty 54 54 55 40000 s.pwi 54 54 55 200000 s.rabt 54 54 55 100000 s.rbt 54 54 55 2000 s.ring 54 54 55 40000 s.rto 54 54 55 10 s.sprc 54 54 55 20 s.st 54 54 55 100 s.term 54 54 55 20000 s.xte 54 54 55 102 sm102 173 173 241 276 277 278 279 103 sm103 174 174 241 2000 smark 55 55 380 628 105 sndout 55 55 788 1 soh 55 55 272 274 276 277 278 279 280 281 283 286 288 293 295 297 299 301 303 308 312 316 1195 152 sohjmp 227 227 777 815 1 srec 55 55 364 584 604 127 srjmp 221 221 661 10000 srts 55 55 341 576 1 srvmes 149 149 229 387 420 474 647 926 939 1140 stalit 432 429 432 400 stat 55 55 332 341 576 594 620 4000 sterm 55 55 586 606 3336 stpbcc 998 920 998 1071 3456 stpbrk 1073 1009 1047 1073 3351 stpbuf 1004 1004 1070 3457 stpbyt 1074 1020 1074 11 stpchn 376 464 656 714 722 835 889 907 3376 stpdo 1025 1021 1025 3373 stpevn 1022 1017 1022 3463 stpfre 1078 1063 1078 3461 stplst 1076 1046 1076 3445 stpnxt 1064 1010 1032 1038 1064 3460 stpodd 1075 1016 1075 3454 stprtn 1071 1003 1013 1041 1058 1069 1071 3462 stptly 1077 1055 1057 1059 1077 511 strlrc 55 55 295 301 303 312 2 stx 55 55 272 274 276 277 278 279 280 281 283 286 288 310 315 317 319 4 sxmit 55 55 584 604 26 syn 55 55 275 1506 synbld 545 268 541 545 1466 synlbl 540 538 540 351 synmsg 275 275 545 400 tdack 280 280 421 1101 tdobld 416 415 416 336 tdomsg 272 272 417 assm 01 12-22-82 14.188 new g115 tables page 70 octal symbol references by sequence no. 373 tdormt 279 279 424 100 term 55 55 592 611 3 termin 165 165 219 244 20 tfacu 52 52 326 10000 tfcrcv 52 52 363 542 544 20 tfdlup 52 52 339 4 tffdpx 52 52 340 344 575 40 tfhang 52 52 360 404 695 710 911 100 tflisn 52 52 327 20000 tfmrcv 52 52 352 10 tfrabt 52 52 697 717 724 10000 tfwabt 52 52 696 716 40 tfwrd1 911 326 327 339 340 344 352 360 363 404 542 544 575 695 696 697 710 716 717 724 911 0 tfwrd2 911 326 327 339 340 344 352 360 363 404 542 544 575 695 696 697 710 716 717 724 911 471 tibchr 93 93 308 17 tibx.1 103 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 0 tibx.2 93 84 85 86 87 88 89 90 91 92 93 1 tibx.3 103 94 95 96 97 98 99 100 101 102 103 17 tibxsz 103 84 86 88 90 92 94 95 96 97 98 99 100 101 102 103 345 26 t.dcp 52 52 966 5 t.icp 52 52 1002 7 t.icpl 52 52 1056 1060 12 t.ocp 52 52 1109 3650 tlymsk 1207 1012 1037 1119 1207 1220 tnklbl 451 450 451 343 tnkmsg 273 273 451 276 trmabt 256 256 718 725 2712 trmbld 825 824 825 1756 trmchk 618 616 618 1 trmchr 106 106 347 362 740 822 838 863 271 trmcmp 254 254 718 725 820 273 trmjmp 255 255 820 354 trmmsg 276 276 825 2306 tstret 707 698 707 2360 tstsot 733 730 733 1245 waklbl 461 460 461 405 wakmsg 281 281 461 1574 wckdpx 574 550 565 568 574 668 693 2062 wcknak 644 636 640 644 2053 wckxnk 640 637 640 173 wextjp 235 235 651 165 wextmd 233 233 651 899 1714 wfdpx 603 575 603 1664 wgood 594 592 594 1627 wgotln 583 580 583 2132 wopwt 664 648 664 2157 wrecnk 672 221 222 503 511 644 672 assm 01 12-22-82 14.188 new g115 tables page 71 octal symbol references by sequence no. 2014 wrecrp 628 619 624 628 147 wrjmp 226 226 649 660 2223 wrlost 690 591 677 679 685 690 2215 wrnak 688 635 658 688 2075 wrtok 649 649 662 2120 wsvmes 660 647 660 2065 wsvsc 646 638 646 300 x 605 585 605 466 xmtsc 90 90 293 556 557 559 2 xnak 107 107 555 640 675 689 ** 47638 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