\d,WАtì"N|X=<%hIv `D(gA f+0) '(IJ#$\iK() QR#DST-U=V>W X'L liX`X%<`@c 8 =f8<NaHN =Hx(<k<9< < =iXl&,ߌ =DC4| r=DYϜ?8 8 r[type chksum x 8 8$ dtfHtn[1RdtfHtn $r[Hfi vecW˨  <T 4 [L 0 {0 ktP`22$,HHUDLpB0BL !"#$%& ' 4( P) l*W+ , - . /X0 1!2!03!L4!h5%6%7#D8#`9":";% <%(=%D>%`?%|@"HA"dB"CD# E#(F"G"H!I!J!K!L!M"N",O#P#Q$ R$(S$DT`\U$V$W/W̰ ʀd`bidʴxZLa|  Y Y ߌ 0 Pd`q08ZȜlYhp[Рz (xW tϘhX6X7  l >\cl l 7 p G XF|  FlKZ@ql \Q+ x<W44Dot,gؠ D 4 pH  HplAo8l~LɌ-,<0:0Eshape"/Kvalue[1Y0RvalueK00WD\ĸX DŽÈĤ  ȸ < tdl x4040xferH>]:rc9%1YxferHr"/xferH4W$~eiɨe K,U9 P( H| . 0 2d21 h(lL,T^]hX !h"D#h$%&D'()h*L+0,-8./0123w456T758|9T:;\<|=L>?T@AhBՄCՠDռEF|Gz$HIJ KLdMNOPQRPSTaUaV~ W}XnYnZ[\-]-<XLerror:)/KsuspendK%7Yrawrcvd"/KsuspensionK<W hfhLf m ep  Ԉ `vnj{L݀u0g,hD$ f!h"#($u%c&{'ٜ(S<)p*:0+L,H-P.(DWްiv<֤lkx lg8 wL ; _muHP yD4 ]:teExferHs"/xferH4DxW=@n<h4ܘHm0 D l , $ mP @|lvhLvTڈ>@DWendUy0_`p3x|_^ _, s p y <w`4\T[^ݸ_ !^4"ۨ#$rt%h&'m()(*+,-^0out>terminate shut it down0Wx |Ltt0 p 8 l4]:0ERxferHs[Lcr xferHfn"/xferH4d R !(,/23689:<0d,L ,( Lpp[dtfHqpp (<dtfH50>Ke K,Lfsize dtfHtn <T dtfH25>::KaplpluscK(.*8YLsysid"/K0 0 RK",KdtfHr Lfappend dtfHtnK T8 dtfHr Lfreplace dtfHtn,dtfHcnrs;dtfHi' 8tdtfHr[dtfHdlm,dtfHn,K[K,dtfHdlm,:dtfHshape",dtfHdlm,KcnK;Lio-0%1Y0RdtfHvalue',dtfHdlm,,dtfHvalue6tX: :0EdtfHshape"/KdtfHvalue[1Y0RdtfHvalueK X0 dtfHvar1>dtfHshape[RdtfHvalue e0<edtfHvar>dtfHvalue[dtfHn E<r.84 ]dtfHvar1 Lpp 8 TdtfHr[dtfHdlm,KLdefK,dtfHdlm,:RdtfHr",dtfHdlm,KcK,dtfHdlm,dtfHr [TH dtfHfcn>]:RdtfHr[Lvr dtfHn"UdtfH20 `HLDdtfH10>]:dtfHi%Lio-1RRdtfHnl"RdtfH50 ....LLT Kdtf...KL`H:3%Lnc KdtfHnfK"/KdtfHnl[dtfHnf dtfHnl ` ]dtfH10K `<LKs K,Lfsize dtfHtn <X Lerror::RdtfHcnrs"*1RRdtfHnl"/Kn .KXde3SdtfHqv[ 8 4 RKLio Lpw Lct Lrl Llx Lsa LalxLelxK , Lpp8d`dtfHdlm[K/K d L, [, , .48I`TkyTdtfH0>]::2%RRdtfHnl")0ERdtfHnl"R0 T`dtfHr;Lio--?@1U0,dtfHi'[0,@1UdtfHn_dtfHi ``;?)dtfHn[0SS/dtfHi[@1-:1UdtfHr"_@1UdtfHr[:dtfHnl%K K"/IRdtfHnl //`W0L ( \ | 4\]T4~p4hD]plu !l""^P#$(%|%}&'X()[)*`**+,H--d.//}0,0\0012X3(34\5H666 77H7,8889(::;<l<DXKfor additional information on tools and techniques for transferringKXKKXKthe #kermit& file transfer protocol is recommended for transferringK`XTKto other pcKKs, but the files are not readable by the unx apl.KTTKpc native files can be uploaded to the unx system and downloadedK0TKKTKof the programmerKKs manual for the pc. the unx system plays theKTXKsystem. documentation for that workspace can be found in chapter 6KhXLWrTpF\}l}]{ l  \  0 Lq 4G#& . :48/Lm n i8,s:type%KnK"/Kdata[Hfi dataK,1W1X Dl ,   D  tL0]:1EdtfHqv).%4YdtfHn"RdtfHvar 0   = 0]::256B@2Yx"*65536M-/@2Ux"R00Wt\´˜ | ͘ 0 ]:KLpp K(.*4YdtfHn"RdtfH20 0]0Hc , H(r[x, 256 256 N65536M-/x((4 (  3z;141'[KSK3 mr[Lfi vec $D ]:RdtfHr"UdtfH30 H$$hdtfH20>[dtfHn,K K $$ dtfHvalue[dtfHqpp $$ ]dtfH20 $$]:0ERdtfHnl"UdtfH5 $l function to take character vector of numbers :assumed ok" and convert to numbersT0 l@|W4u88@p@4P , t4LKprograms and data, see the workspace /usr/apl/welcome.KLDdtfH7>:KaplpluscK(.*8YLsysid"/K0 Lfresize dtfHtnKDr[@2Uxr[@2c3 ]:type%1"Rl10 $< dtfHcnrs[1UdtfHtn $`![ Z XWYU]|\ ~K:"P-,_./0123456789><#%&Qabcdefghijklmnopqrstuvwxyz;?')F{M}T*SDH=LAIBNGEC^$+JO(RV@M G-pc2unxtab 33file not found KtestK Lftie 1 ) )3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~׮ ߰ )<=>]^,+./0123456789([;:\_'*?~ -ABCDEFGHIJKLMNOPQRSTUVWXYZ{}$!많"`abcdefghijklmnopqrstuvwxyz@#%& unx2pctabz;94'[K)Kz;93'[K'Kz;92'[K?Kz;91'[K;Kz;63'[KQK0z;62'[K&KLz;61'[K%Khz;60'[K#Kz;59'[KKz;47'[K/K ]dtfH10 ]dtfH40, KK H ]dtfH40d KK  ]dtfH20dtfHi[Lio \0 d t f dtfHtn. stsc/7_83 \<spc dtfHr[:RdtfHnl"R0 <(|dtfHnl[K K,dtfHnl,K K (d  dtfHnl , dh  dtfHnl dtf dtfHtn t must derep, lff, rep.`T, s > ////T< b Lerror:T1YdtfHtnELfnums"/Kfile tie errorK<DHLerror::0ERdtfHnl"K K%1Y0RdtfHnl"/Kdomain errorKDT0 ]:2%RRdtfHnl"RdtfH0 _ theKTL dtfHnl[:TdtfHnl Lss K K"/dtfHnl ?LX؇G dtf _ d rringK<Xԇ8$dtfHi[:RdtfHi",dtfHn 8P dtfHnl[ 9 4 RKLio Lpp Lpw Lct Lrl Llx Lsa LalxLelxK PDHdtfH5>]:RdtfHcnrs"UdtfH7 itHX dtfHtn ,XX . m .ndX8Ї . 8$]:0ERdtfHnl"RdtfH0 $X@z;123'[K{KTz;95'[KFKmftopc  describe Ldmz;26'[K]Kz;28'[K|K4$ Lelx[KLerror :)?Ltcnl*Ldm"/LdmK 4pinitialize܇ (rc[KK respond LavIdata (cn[cn-1 Dcn[size;0' KK oNvsavedYLm<tt3Lm<tserhos2$]:errcnt^3"Rl40$40tied>]:KaplplusvK).%8YLsysid"Ul40 4\ $ xferH>terminate$     8msg[msg,K > K,Lfsize tn84xferHname[xferHname,Kderep xferHrK4 8h]:l50,l30,l20,l30,bomb,l30,l30";1Yr'R8]xferH$]:tnELfnums"/tied J$(drcvtfile tn 0 0 Rr Lfappend tn , ,l40>]:0%1Y0Rr[import"Rl80,t ]l100 ]out ]l404 4 ]outLxferH>sendmsg Kc .K@LD ]l100$l transmit messageu$v   $xferH>terminate$$ $< X,<explainDKt .KT@xmt nvr[rcv r[rc6,2Yrcvd r[rc7,2Yrcvd 0 c 0, h . rjb/8/1983,$rcvd[decode rcvd$D D r[rc4,1Yrcvd  P  (X K ( Lrr[S8=:Rx[,x"+6 r[encode xa 4\0 0 R0 0 0 0 0 0 Larbin K,K,x,K.Kex4T|[xfererrmsg __ r #&pTnrawssearchtomhstring z;45'[K-Kz;44'[K,K$$:r;1'%2"/Kr[@9K$   r[pctomf r $l]:K K%1Y0Rvec"/end$0xz;147'[KK capital a umlaut08z;65-I26'[KABCDEFGHIJKKLMNOPQRSTUVWXYZK8tz;13'[Ltcnl <  |]xferH$xferHs[repxferHvar$4HxferH>xferHrc[export xferHs40,out>terminate shut it down0]l15$ $ll60>]0(؇ ok, (,ć ,,$recd[mftopc Lfread tn,cn , l70>t[rte  ]l60r errcnt[errcnt-1 , ]0 , ,`h K, . , ,  `( Q($]:tnELfnums"/tied $  t done>terminate l2>KdoneK $]:0*1Y0Rans"/ok 4]:teExferHs"/xferH/4,`0 0 Rxmtrcv encode LavIans,z;34'[K"K  @ z;32'[K K( send error messageT($0 0 Rxmtrcv,s$8(z;193-I26'[KK8$ first synchronize$  _ lterminateDok>ans[ansTlp>ans[req( r r, 9/84((]:0&rc"/l50 send it(]xferHLio[0z;12'[Ltcff ]outLio[0]l15d]outxmererrmsg  $ 4 vvsapl Cc14<msg[msg,Ki K,Lfsize tn<$0msg>message rcvd X$D Lerror:0*Rrc"/Kmf_pc syncronization error K,rcDr[@1-l c/ _ __ thp/7_83ers l]:2&R,x"R038z;8'[Ltcbs0 make sure the file is tied 0@ 0 Lfresize tn K@P m import pc PTpLtcnl,Ka , K,:r",K.K omT8l80>]:rc9%1Yr"Rl90 8en4D initialize open communicationsti4Hmsg[Km > K,Lfnames;LfnumsItn<',LtcnlH0out>terminate shut it downnam0Xnl@l100>Km K,:Lfsize tn",K.K@@؇ some errors require no further explanation1@L$W&$$t$ L0 ]:(/:Lvr b" Lss string"/l2 0@TWC@ @4 prints name of functions found.4T(l90>Kt .K THsendmsg Ku KH< senderrmsg Kfile not tied on mainframeK < ,sendmsg msgxmtI04 Gstsc p __ c 19844  seglen[sl (Tnextsegnr[errcnt[Lio[0 (tz;35'[K#Kd 0l10>trans[:segnr=seglen"Uobj s00 simply tell pc weKre readyU00 errlim[:errlim,3";0' 0 Lio[0$rcvd[1 chksum rcvd$ z[unixHqav[ 0 0 RK K$P#& #import& #export&PWUdƴ)DDL%H 8  QRST-U=V >W X'H|cn[cn-1 'LP@ m export pc P]out < senderrmsg Kfile not tied on mainframeK <X4l90>Lerror:rtfe*rcvd;1'"/Kbad message received from pcK 3"d XXz;4'[K`K34d ]l20 display message and go on d4 z;145'[KHK  $]:0$1Yvec"/end Wx4θx  Ÿ h  $&<(]lp$]:tnELfnums"/tied $8lffH10Pz;143'[KDKlffHcn{Pdtied>msg[Km > K,Lfnames;LfnumsItn<',Ltcnl PXLelx[Ksenderrmsg :)?Ltcnl*Ldm"/Ldm ` LdmK notify pc of error2XWa=/0I3=1@;(.2@ 1 : ( .\ 8K 4 Lelx[KLerror :)?Ltcnl*Ldm"/LdmK 4( dt(LlffHdPinitialize4]:teExferHr"/xferHed4(\xferHvars[1UxferHvars((tl45>rc[export recd u( z;166'[KK z;167'[KK  z;224'[KAK  ez;226'[KIK fHz;229'[KK XLtcnl,Ka , K,:r",K.K .K XXxferH>Ka > K,:xfererrmsg xferHr",K.KX4 initialize get things started44 ]l40 ok, 4TPT m export pc.nlT4 initialize open communications 4Xd m import pc pc Xhp note> t must derep, dtf, rep", h$]:tnELfnums"/tied $]0:@xferH>]:0%1Y0RxferHr[import"/xferH.K@,$xferHvars[,K K,xferHvars(.,0err> 0 0 Rxmtrcv encode Mansct00̇ make sure the file is tiedfH700 make sure the file is tieddtf00, Lc00]:2*Lnc xferHvar"/xferHtd04 initialize get things started4X n segnr 256. i ..X8l100>exportend K 88l40> 0 0 Rxmtrcv encode r[ 4 0 0 4 1tn8XP m export pc.errordXX| K, . X\dxferH>sendmsg xferHfn,K .Krf error \4$xferH>xferHrc[export xferHs H48Dz;65-I26'[KabcdefghijklmnopqrstuvwxyzK 8( @1ULfread 1,1Ylim a (Xdtied>msg[Km > K,Lfnames;LfnumsItn<',Ltcnl pcYrcX(]:Trcvd;1'Esegnrs"R0 [(h r / . t h8xferHvar[:_Lio_xferHvarsIK K"YxferHvars8,|xferHs[mftopc rep xferHsd,8hl80>]:rc9%1Yr"Rl90 8,X K ,4$msg[msg,Kf > K,Lfsize tn44 ]l40 ok, 4@Xgivetfile tn K,Lfnames;LfnumsItn<',LtcnlH8z;242'[K^K   dtfH50dtfH40   dtfH30   dtfH25f  dtfH20   dtfHvar  dtfHfcn<givevarsKt .K,LtcnlTx[,:8R2"Nx0 8xferHfns[:1_Lio_xferHfnsIK K"UxferHfns8X܇Gdtfall __ d KX( ok, (0 message from other machine 0T  z;158'[KKH 8Ї n 8DxferHvars[1U:(/ 0 1 xferHvarsJ.*K K"/xferHvarsKdDd @dz;40'[K:K@ . '( IJ#$h@XdtfH0etfdz;146'[K=K@8sendmsg msg,Ltcnl let pc know whatKs going on@W  XnDL rcvd K L dtfHn   z;233'[KKlKz;232'[KK TdtfH5R z;151'[KKdz;234'[KK.DxferH>sendmsg xferHvar,K .K D dtfHi `8dtfHvalue/z;235'[KK @Dgivesfile tn]:rc9%1YxferHr"/xferH4,z;238'[KEK z;237'[KKD4]:0%1Y0RxferHrc[xferHvars[pctomf import"/xferHDDl20>obj[obj,2Urcvd Dz;236'[KGK rpz;239'[KCKL translates character vector from pc to equivalent on mfvaLtfqz;243'[K$KDLerror:TdtfallHtnELfnums"/Kdtfall file tie errorK/DdtfHrlD< get message from the pc using input _ get 6/84Dz;240'[KKHsendmsg Ku KH/78z;241'[KK0(recd[mftopc rep Lfread tn,cn 0D send a message to the pc informing it of an errorDX<0 0 Rxmtrcv encode 0 chksum btt,rtfe,LavImftopc emsgrom pcK X4 :Lnl 3"dtf dtfallHtn ,4$ $$d $P]0>lz;42'[KPK#< 8* '( I J#$e"<K;iz;252'[KVKHlmz;251'[KRKplffHshapeXdtfallHtnK,LxferHname,Kderep xferHrK0, rc[xmtrcv,s TWO8N<Nt8TTW[,bO\<V@VT4 function to syncronize mf with pc4X r > 0 _ , 1 _ , 2 _ X 0dtfHvar1,4p t 48 (8@Hl100>Km K,:Lfsize tn",K.K@]0@` 0 Lfresize tn K@XLerror Kerror on pc>K,Ltcnl,pctomf Lav;2Urcvd' if pc errorLXKKFhLhWDTtLhdl80> 0 0 Rxmtrcv encode 0 chksum btt,t tell Kem weKre done and gather our witsddVl25>]:l30,l40,l90";btr errsub t[256Mprevsegnr,nextsegnr' r rcvd dD 44  &'(  #$DD4]:0%1Y0RxferHrc[xferHfns[pctomf import"/xferH D dtf`ȇ rcvd . i `dtfHshape@ 40#%(+.@@sendmsg msg,Ltcnl let pc know whatKs going on@,@rcvvarsrcvd[xmtrcv encode trans bread cast upon the waters..... P$h]:@9%1Yans"/done$LtKt .KL$ $$psenderrmsg emsgKa > K,:xfererrmsg xferHr",K.Kd\(d| W_``8 p0cXo،|4]:teExferHr"/xferHxp4T$ function to append a message from the pc onto a variable theTXXl30>nextsegnr[1-prevsegnr[segnr[:prevsegnr,nextsegnr";tIrcvd;1'':" X<msg[msg,Ki > K,Lfsize tn<hpl50>Ltcnl,Kt K,:cn",K, K,:r", h< ]l20 letKs try again. pc counts errorsc<`6D note> t must derep, dtf, lff ` ]l1Th r obj requestwnT$lff l prevsegnr[@1 X Glff __ c XW]860IQ\=0lT$hf\ > TT 9( *d Q424lffH10>]:lffHcn%lffHsize;Lio-1'"R0 4X d request respond.XW|` 08  p  $H(,0( H!"#$%&<'(|TW-pT$P|h% 6W%Dp,Lhh t]:2&Rrcvd"R0 `dtfHqvar>dtfHtndtfHnlDxmt x]:0%Ra"R0  `getem]:rc8%1Yr"/msg message from other machine@8h 80 c r rcvd.0@ 80"$'*-@  0 ]l10 08 , 80v[derep rK , K@4dGstsc p __ c 1984l4(  ( rr[D6=:Rx[,x"+8 ,shape[Hfi:1-d;1'"Ud;2'YrR, xr[decode xsz[:Rrcvd[2Urcvd"S1UR04Lerror:0*1Y0RdtfHtn"/Kdomain errorK4(dtfHn[:=/dtfHi"RK K (0 errlim[:errlim,3";0' 0pz;37'[K%Klerrcnt[0 @getstuf4xferH>]:0%RxferHfns"/xferH/4xz;21'[KK, , ]xferH]xferH@xferHname[:_Lio_:1UxferHr"I1YxferHr"Y1UxferHrns@lffHr( rcvsfile tnexportend$$ $, syncronize with pc first,,lffHtn0 end of data to be exported0Lpp[16(rcvfnsdtfHn[:dtfHn*K K"/dtfHn 4@ ]:2 3 4 %Lnc dtfHn"/dtfHvar,dtfHfcn,dtfHqvar @@@G#& .@$ dtfHnl[dtfHiRdtfHn$d[K/K 0 0 RxmtrcvI0 ctl[1]ctl[0|Lio[0 xLio[0` XLio[0 ]l40 ]out,obj[Isegnr[errcnt[Lio[0 ,Lio[0 tc@|r[r,K< b > K,2Y1Uvec@\@@0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<>\z;0'[Ltcnulxmtasciicterminatercv ]lffH100:[lffHdisp,K K",KlffHdataK 0@(]:0 1 2 3 4 %Lnc KK"/new,end,add,end,end4@lz;7'[Ltcbel` F QURST-Z[6= >\W]IJX'`PDLerror Kerror on pc>K,Ltcnl,pctomf Lav;2Urcvd' if pc errorPP@:rtnd%rcvd;1'"/Kr[rc9 ` ]0K end of data< shut it downP0  segnr[segnr-1 $msg>message rcvd U$nvD,xmtrcvexpcols partD]:^/lim"Rl2 Xz;23'[KWKxz;25'[KUK rcvd[xmtrcvI0 ansgetem ]:0&1Yrcvd"R0 LXW n(\`1`L0z;39'[KKKK correct aplquoteQC0(Ї (D blktype .xDr[rc8,rcvd r[rc2,1Yrcvd+6 0 :btt%rcvd;0'"/K]0=ctl[2K0,ctl[blktype errsub segnrs,T܇ , .Txencode data[:1-d;3'"Ur |W0123h(t|4 , c n4describe` note> t must dtf, lff, rep.`(Ltype[:1-d;2'"Ud;3'Yr(8t n d 8   td[:r%1Yr"/IRr8 0 0H e .H\ s > //// \ Lr[rc3,1Yrcvd rr v[shapeRdata    @t t , @0 c e04ԇ , 4x[,:6R2"Nxz;125'[K}KH _ ascii . rjb/8/1983H (]:1*RLnc dtfHn"RdtfH20 ((dtfH40>dtfHi[dtfHi-1 (` d :0_255" x 64 , 7_83`xchksum$ h$8z;41'[K)Kdescribedecode)msloinitializemfpcorigpcmforig,l40>]:0%1Y0Rr[import"Rl80,   3 0D]:0%1Y0RxferHname"/xferH0$  =$xLio[0$]:rc8%1Yr"/msg other machine finished<0W$רe,tt҄d tulk  z p nH 08 \bpjE0d8W #|P?<?bh $ ( 8 |8Xh|8p8T`d$]:rc12%1Yvec"/bomb $$Hr[:T)?K K%r"/rqa$ b[Xa  ]l1$ll1> z[Y:S/R!v"Y!v $8l80>]:rc9%1Yr"Rl90 8\xferH>sendmsg Ku K,:@1UxferHname",K.KVp\(\ r r, 9/84 ((]xferHD]xferH`]xferH|]xferH r[pctomf rz;62'[K>Kz;63'[K?Kz;64'[K@Kz;91'[K[K$z;92'[K\K@z;93'[K]K\z;94'[K^Kxz;95'[K_Kz;96'[K`Kz;124'[K|K z;123'[K{K6z;125'[K}K z;126'[K~Kz z;128'[KK L[b  z;134'[KKz;133'[KKpcHqavdz[vtom v[\Dbomb>r[r,K. e >K,Ltc;1-Lio',Lav;1-3Uvec' 'DunixHqav  xx $ɍʎ@ % Ôwxyz{|}~Ğ#ABCDEFGHIJKLMNOPQRSTUVWXYZ"\]^_`abcdefghijklmnopqrstu[DZv`$prc104tied>]:KaplplusvK).%8YLsysid"Ul40 R4$|xferH>terminate$Pxfere7xferHxferH xferH2$r[importterminate shut it downr40xferHvar*$var[derep repvec$8 lffHr[Lfread lffHtn,lffHcn .8\dtied>msg[Km > K,Lfnames;LfnumsItn<',Ltcnl pc. pc.\|W'18 (z@5T8(DIO,@|g ]:0&1Yr"/l30 Dbomb>Lelx[KLdmK donKt send the error message backDr[Lav;r'e0H make sure the file is tiedHf0(l40>]:cn%size;1'"Rl100(HsxTxferH>Kt .KT z;254'[KMKz;253'[K@Kinitialize0 Hr0, 4-./01,,[,;Lio'szYrcvdec,msgok|cn[cn-1 4r[req K,Lfsize tn40 make sure the file is tied 0$4 $4l45> 0 0 R:derep r" Lfappend tn rc4$ -$<lgivenfile tnterminate z;14'[KXK'LKt .KL$  O $L s > ////dLinitialize, P, #i t c c n d t c s f t l t 2 nt r i b t i s n m p t c i t t m t e a t a p Lio[0 $8 lffHcn[:lffHsize[Lfsize lffHtn";Lio'H8 tz;127'[Ltcdel   xferH( h' 1((l40>]:cn%size;1'"Rl100 (X errlim : 3"K.KX shape[Rvaluerr 0(obj[Isegnr[errcnt[Lio[0(T r _ , :".K$TPD m export pc PHgivefns8l100>exportend K 8var0 sendsync syncronize with pcP0( (@4xferHname[:_Lio_:1UxferHr"I1YxferHr"Y1UxferHr.@(ć (,var[hostgetvarr[xmtrcv encode 1,segnr,0,1-segnr8Tz;7'[LtcbelxferHs(H K (LlffHdata[lffHshapeRlffHdata L,4]:Rmsg[xfererrmsg rc"Uend,repvecxferHfn(l40>]:cn%size;1'"Rl100((repvec[mftopc repvec(( rcvnfile tn]:r;1'*segnr"/l30(Tmsg[Kr > K,:Lfnames;LfnumsItn<'",Ltcnl",K.KTpcmfxferHvarsAlilrc1rc11Prtnd5 xferH< D 44  &'(  #$D0hostsendvar vartrans[0 chksum btr,256Msegnr .Terrcnt[0GLtKt .K(LinitializeLW#`L0Ї 0(W0J7` B,\Mx<*/P[ )( p 60 PD Pp . 9| t~(72(0out>terminate shut it down0erPl90>Kt .KupP(4l50>:r;1'%0"/Kr[objK$(@ 0 Lfresize tn @@r[d,d,:shape",d,KcnK;0%1Y0Rvalue',d,,value<@xferHz;60'[Kterminate shut it down0Lt ::1-1ElffHdisp Lss KLdefK"R0"RKK , L$ segnr[256Msegnr-1 $4;Zx > FX 8 p AlHP[,6<X]:0#1Yrcvd"/l30 error on receiving record<xferHfnsH<4Lerror:TlffHtnELfnums"/Klff file tie errorK<erc7|z;10'[LtclfxferHterminate z;5'[K!K3xferHrc2xferH0I<X senderrmsg Kfile not tied on mainframeK <X.K\ lff lffHtnexportend$`lffHd[:_Lio"-:lffHr%1YlffHr"/IRlffHr , 0,K.K`$]:tnELfnums"/tied $\btdbtedmfpcbtbLio[0X transmit/receive cycle for up to 1437 code values in range :0..255"& X [K,K,x,K.Kd D transmit message to pc using Larbin __ jgw 5aug85D  \ hLelx[KLdmK internal errors simply reported< Lerror pops out for other handlingh$Lsendsync~!/\,?[]();:' ,XxferH>xfererrmsg xferHrc,Hfi x[asciic;x' WNlMS|X@NLTX 0]:Rmsg[xfererrmsg repvec"Uok' 0(ok>repvec[pctomf repvec( 8 rc4xferHr\d s > //// pc.\z;6'[K[K262rc3\ searches unlocked functions in the workspace for a given string.,rc n\(z;48-I10'[K0123456789K(respond  bomb   l30  l15  send message btmbtdbtt  l25D0 0 Rxmtrcv encode 0 chksum btm,0,LavImftopc msgDsendmsgemsg  l70 eerrcnt 8obj88z;97-I26'[KabcdefghijklmnopqrstuvwxyzK8 \z;127'[Ltcdel  trans" ( r(,requestvaluedl15>]:l20,l30,l50";btd errsub segnr' , r rcvd lffdP؇ r respondPxfererrmsgd sendsync,H trans[:seglenDRtrans"Ytrans H<x]:Rtrans"Ul70 _ d<8l8rcvtfileout,l ]l25 get first request,$obj[obj,2ULav;r' $<l40>xmt encode 0 chksum btt,rte,Mr <@nextsegnr10prevsegnr25senderrmsg bomb>KbombedKRK z;27'[Ltcesc rtfe4 0 r[0 0 terminate0$ z;31'[KK,derep,T]:KK*1YxferHfns"/xferH,$ $4 4( r r, 9/84(؇ $lr[rcv]:0%1Y0RxferHr[import"/xferH @leszXX  T' h errlim : 3"d hx P n segnr 256. i P\dxferH>sendmsg Ku K,xferHvar,K.K\LpW-h HhL4lffHtypeDX<̇ b valueP<l90tcnotHgivetfileut0Lio[0 message  a 4( 4lrcvdP Lio[03nappendX$ when executed on aplPplus/unx, returns a translate table for XLmftopc]endLdater  end(]:0&xferHrc"/xferH((Ї (( (   size[Lfsize tn PdlffHdisp[:1-lffHd;Lio'"UlffHd;Lio-1'YlffHr KP0 Xt04܇Gstsc _ c 1984rr4@( begin serial port transfer process _ get 6/84@initialize(givesfileut8nread@ xferHs[mftopc:1YxferHs",xferHvar,K[K,1UxferHss@msg Km K,:Lfsize tn",K.K@l45Lnclose4xferH>]:0%RxferHvars"/xferHed4<8msg[msg,Ki > K,Lfsize tn<rcvdfilesg[< senderrmsg Kfile not tied on mainframeK Q<lz;36'[K$KvechtnO.rec|OrcrdcnO Pz;27'[Ltcesc seglen,@8sendmsg msg,Ltcnl let pc know whatKs going on@D   rcd0Tl45>rc[export recd send itn0 xfererrmsg xferHrc,0H]:KK*1YxferHvars"/xferH000n"Kl50:"l40Lio[0   K,xferHvarsLX(xferH>sendmsg Ku K,:@1UxferHname",K.K pcc Xhcwr(d r r, 9/84(r[asciicIrawrcvd[@1U0 0 0 0 @1 1024 13 Larbin KK+Lxr[rc1$ $4 :4segnrerrlimLrcvd[xmtrcv encode trans .....tLrep<]:0#1Yrcvd"/l40 error receiving recordKh<hl50>:rcvd;1'%rte"/Kr[obj ` ]0K _ hHKnative files between the pc and unix environments.K.HXlffHdata[:1-lffHd;Lio-3'"UlffHr , ond. XhxxferH>sendmsg Ku K,xferHfn,K.K. |hTd]:0%1Y0Rdata"/errcode test for numeric argument meaning error T( ignore first request$(, tell them we are finished,(xferHfns[1UxferHfnst[L(XLelx[Ksenderrmsg :)?Ltcnl*Ldm"/Ldm ` LdmK notify pc of errorXhl50>Ltcnl,Kt K,:cn",K, K,:r", `ohhlffHtype[:1-lffHd;Lio-2'"UlffHd;Lio-3'YlffHr , c n.h0 make sure the file is tiedgҀ0,|rc[export data]:KaplplusuK).%8YLsysid"Ul40 d4]xferH(drecd  tied  < : "K<Lio[0 Tdpl50>Ltcnl,Kt K,:cn",K, K,:r", d$givenfileutmsgblkmax8(z;97-I26'[KK8 @PxferHfns[1U:(/ 0 1 xferHfnsJ.*K K"/xferHfns@Wu]DHsryD4< senderrmsg Kfile not tied on mainframeK zt<tWpL{s0sXt0 ! ? 0(xferHfns[,K K,xferHfns(Derrcode>rc[xmtrcv:0 chksum bte,data",tc . Dctl8hgivefnsexportend K K8z;231'[KNK HT function to get a variable from the transmission lineH0l40>]:0%1Y0Rr[import"Rl80 t0 0errsubDbomb>Lelx[KLdmK donKt send the error message backD]xferH0z;33'[K!K7 0Hblktypeimport sendsyncdTmKaplPplus pc system and aplPplus unx system. apl workspaces canKTh:lffHtype%KnK"/KlffHdata[Lfi lffHdataK , hrcvnfileoutz;230'[KBK( r(0(Lerror:1#RRdtfHtn"/Krank errorK08 ]:4#RdtfHn"RdtfH20 K L_8 K,xferHfnsLr (]:3&@1YRdtfHnl"RdtfH10 ( dtfHqpp[Lpp Ur D function to put data into the transmission lineHDL returns a translate table for aplPplus/pc to aplPplus/unxLz;29'[K\KDexportendE, dtfHr[KK r,cnll1rlz;30'[KKfHv\)z8vtomff   Ldm`status e\<\~p^@h~}<}T~@y{hzy~Txxl\wl~kl8Tllil$l k mmj$ j jLj8v?#vvuhhxe{+LeDBebaaffD keftdbj$h(e\0daaab9b4ada8;aL8oo?42k\o`Aoad<|tDjdZ0}q4'X,Xhzp"pWX(WV, VV6UxMZZV1W\[lWx5W`%Y|YLјShDMM3M4VIVMdMLVxV`WHOW0VM|4Mp<`$k<J<<L'<V<)])*0eKd*YU8*T|*IULI$TiHPIQI8QHd+R QPPQ[l,=,,,h($3-/Dd(1hK8!/`D:}.p1 Ӝ7S:GB1(?:f(xKH(@= )(\5KxOLTa*H U@g.jClFE 7*ntuy|P^: