'=========================================================================== ' Subject: MEMORY OPERATIONS Date: 04-13-99 (18:56) ' Author: Nigel Traves Code: QB, PDS ' Origin: ian@ihalliwell.freeserve.co.uk Packet: MEMORY.ABC '=========================================================================== ' Assembly Memory Manipulation Routines DEFINT A-Z:DIM SHARED K,S,B&,Z&:V1 'Created by PostIt! 7.2 SUB V1:OPEN "O",1,"MEMORYOP.ZIP",4^6:Z&=11526:?STRING$(50,177); U"%up()%9%'%I-%ZB8FKW49\lU.%%%6X%%%0%%%%rj#rtw(%tuSgOnf).&>#\78NT U"ITiIvPJH[]$(N)ks8/YGOA*DX6lloBAVK4\9F8sJEJRg]7SG)f66H7RPSn>fOqvBSo-Gp$tG/NXr-f\*\b+ U"BeTuSWW64^f8;1<)N4^\KoSXt;r'Pz*58tYSBf'jV/=h7EP_d+_F[)'rVfT$L)z U"\$^cIe&Q=;#0J)f3\StrlaZSbNl5dENw_+4W&8;8)cr(e5U+,z9K-c#ruia-oyCc1582Sng6;()6.oBY;GdR_040pAF4(hj?KmQ U"3TSR'WVU>Z91Y3;9SNTs9P-ZMG=cBb7.pk+lDH9QbP$L6Q09GjX-Z]o11]6)jE]28t?\3=O)n$7gar U"1A9t9nM+MNZGPBFc]BU#^vM2*\Cbk.adBHHq?(KZ%G*7a^jhh^w- U"=3.d9HXmcsB'ZPZE\smxF9Uuxl/D\cpm#W&q'HME_<-V(xmbJi6:<4eOgip5SIoOBjqJzab;Y$_i?h2G+L_K72[vwBE5(Ku4sQP)Q^39>%G(# U"604e5&cLEO6#&ohrD[]>nB'A0=a7Q'kO4PJy/A29GgfBBWQ3Lh>sV;o3[T3$vjS U"enoA-13]/I:2Z5/p.d8E3Z)W#3d>Sijt7dYW78bPF^nuBbgEr'zaC$_^q]ca2QJ U"'[eCPk#,]3,3)2BRuq01m=^dM U"6Q#i:,Ke5X4?\a9Vx)_PvP]oP'q5KIK.^aAAIK#VWaLn6Ji77#6G\e.kt;A U"P^zn6%_V0)A+AH_3mF?V(i2tp4m6Wg2pq7C'ilXcO87W^='AV6\*E5nDe_HO;M/ U"7U0eUYnANs[xR#?X11.c?pke80RJk[K)2p;N[,tSH#pZ,$PdrF:q5btx_6Q6[z> U"jCnpSuuB0Xt-H$0jEfNgilndF>:nb%-e3dTR/*':u'O$p03'&Y6(N6#uU80wW,y U"2Y+t4smuFo+_W.KSDL*Y5JD(B:n2El?ntB^1Wm*Ixd.cD%[^dbdp=;u2\qB/sur U"MJi$l3\,R*5XdTs]io+T_ruHW:P0fpZ>[HHTDAGH:6dR%dTcD>f1h_Qd>*AT$fV U"LuPZlT47p,tqn]te$WYc8EXYcf*VFbc5fVFBjche1vl*kh5,NxQ U"'C6z9V)5eUbtZ\0VUT-m>9#KMvE-V/FhSf?x-T1^LFWWeQcy;LE0(UhA$M8VBGK U"tNLhyk;QY*z9k*Zq[6vWA%s5(a,^:sX'mld_rssc;9$wa\j_'7cOv#h#Zf4#k=v U"3KY+B86JV>K+16]97;al.pC-Mk$s_lwGI>h0fze79U<2n(i.d1kql)vbhe4QihM U"bLgEF7XJBe9EL=mL(vN0iZh.s[Vv?&rEqNr<=5,*i0FI3[8cL(F3o,?rQDxvZ). U".DuhsI,cTVdctFP[lH*QF+ZnrnUbK_PbH+8p%TcPqcFPbznp4:ZUfRDCtWp[HD< U"Q;XX+c0;CZJl\CrZWnKW U"dqX$$^\f44jKn5.n?3gu*6[dH>V.0bHeMzOVOU7MG98G9Cc[dF7=SZl<>'8gKhj U"Cai5$8WbN=$t[PW8Cz,ji/ZtmY1qpkfWg5:1Wc[?vD\O>WA8bZ_;F:q\+kaL>yb%N-::[Z7H&+w( U"JoeYauA>[\*PF\)Cl:x>Mfc2u,a)TA]5 U"H4O_l51:98^hgPGs4i]riZLI6Ps+2o2(*9J?3Gx'$Sf-k*I=VS.QX4c/kv6+WBf U"6Dz_7Y.y[tCNZ=.)).%yf1m\Ozpw_WP]ap&-DV&nkFFgpanstf.P9.\ss4P?;1s U",f2'FK#e5hHcodK)b\)k\P^4Q(5Jd$-w.'K5J=Glta0H;%vc&H1.^e\Ff$(xCs8 U"0I=xYIj>2+B(f=raiF)]]?.1>[CxtHe4IAclgl6MVDcT+52a(0&(OyPBci/\iZT U"R-4h9AYC*/yn&0G1j78o#sWPTI>;/:U/b?+uS?aASr$Q8_\U6u,fUtji,g8m-b U"$K]Ud=;bUKKTs_)oOSu>D;U[c3mLamba,Uj11%8jxB>.#:KEt=V\'2Se]5s1^;* U"3hOwS=AM'R[A(zvhHoe'pOM/7(yT;aExBmi3r.rGJuGo3Cb6o;1+Y7;o/X=gq[# U"t\BgFY=;N.[]Edr+Bk7 U"apW>Y:tci0^Jr#HVg^2,V1$Rm/W;V*1ct,TSfpkOjk).dqB'$DsT7sc'xup(%)9 U"%'[%-%2)BFK2Ga'uF%3%%x%I%%1%%%%r%jrtw&(tuS[qng^M)J?*WNhx](C&td& U"1,g?;a+>o57+/m]eIQ^s66'&(ke9n*2XxA]P[o[4[*QQ+$jSI=+K?ghug,?0TU5 U"lU.C3tr,^+DL7Eeh1Qg5p9NFGp$:T.'%I5&Co\M+P:=Cor[AUh#LQn'7ZbMA3ikc2/SgXSTZis'.+ U"RXF3I5J\J_PF#bqjM#b6$VXC*VpMF$tpr)ZQ;xCS,kLA>5Vm73P[[jEsvka\Prl U"pq^uqb_BT?XGUg-XiihjoR#&_bjjA.R*lVdY2=1ml7A4%=[<%9M1,Q0N79SAGa\ U"0%F(-t?m:I%Xbv1RpWsx;]mt;%-mth+3Q?[b)e,312/B5ga=XS%EAgqD1X8g,n% U"J4=#f2f<[E3sH)TRoi/;G&RT7;%*n[#/r%GFYQ*;ESUN)-4/kb)4uAOZHh7XfZ\ U"$hK]rE\Ex:WTz_1>e2Z)$_K]rD[1%%T(;fdKB4()>*<_2>LWxe6,5< U"vR?kJM>qA9V5L\bt)*)z*oIaJW],9[ndD6my6J'd&P,eripr].WKRt]FLaDYtc_ U"RwoxY9#BSA7H(_ROQYEwKVFa$tTp/.E6yx>RMAw:p#T#7IG.SNMF16F[q]^>(SGQZ..gUF89wDG*nN2[.?2v*RNww>:%U9.&3u/3C U"4?&yV1=YL8;/qE;K28oI,iF:Ia'8ZFB/Z9(O')1s^?<;Ng;Yoama_f6:fKoKGOp U"/+Thz2uboTSM66%Y4c8.r8MR\vO'Q U"8/Q39$&0LuMK1o\mF&YNa9^;^?L/9?]o-8dNkF9F:UmFB+P7t>:MP9F:5cFB%Zq U"fh7:ZBRBvAqM:C2:.yeNRApE:%HE:;&RE5kgVL9;WI>w[Mmbfsnmk*kdJA#dZcB U"biXr7w>b=i$guCEyw=,&:N:B4,#4rPFQ.4_/\wC%5bJD^vQIg[PxvrQBne60MG' U"BQ1q^Gx&%EF(tdmnyU)p5HL%?2h$mZLed$lDucCyeH/B$1>h]w^+wV+:Pg;CX]X U"=eoly&9;=G[_o1K(DldlU57VT]rVHBWaQ0_.;2v,\]78cE>i:G#%ZUKe.31[2e6#xD5Cg%VPZiXnVKM)ID;;&[;.FAU;-HA U"];-LAaRSC+[9T,&_Ta=/OWYEsQR6<5h8,.e;91%i'T98m;tuXuI]fz,n#&v<0uW:,3/^&3B$pnI>kB;_+O4 U"?'ZioAKF1-/T.B?T(LcXs9%BF$]U$3p:,$vJG;JM17*-A-+>QomLXfTiu>BZCv78A7TP71B2d/?SjCYa[c'RpW[6Gpgtp33w U"iyV/P1;DK/h8[bO8Guk&'YxRwk3c/eSZAH8Nf-RceuFX6wd(Xk3u6_3I2E;?_iT U"84*ud?L[x:uAIAj3\z,VD.pbNa(YH%F\)^1%b^8PZ7##yf9el04Y1Pi:-4o.:-N U"C60SiA8S2pZF5S)^5UOoxS)h0^F$U.i1V&Ziz:qU0k0'jSz(JSo8E(1UYc7%96s U"QEt8B#<12VW))6h?F.\u7e0YjM9I.fl44.>rAxX>Kw:2eettwf#cncY>\Qc,I6m U"7rv,q;/ZdVQTGwu.ox([8o)Mw^tAk&e2\4Rf)HWJNo=/*n23(;.J^;C3ci'6cBe U"f1FHv):Yud$/eLW/*pL9+hMF$v-9Vgp$Krw=c\-PAKJhm3';+h%D/+FO-'%QRDD U"%+yfZ%h446&BHDDeQ==C''**?KN(VUGf'C6^4O[G#Q2oklJs[_e#oGvYm(HcQt( U"Nyoa_sr/[Sz':rxOl79'xqLXzdnM,?LbtQdI$aO19=N[;R:qAE:^SEG4-]3k(7I U"Uae,1b2uJ^aC$48^gc]:e'*B60;$-ptqrWB*?C070M;;?B?U/h('l&JvM*PUjKB U"3aGb5>\/GJ?/J7L$2FXl(qxG(1CH$9rRB$[mc=W&#b#=$'mp#9?^L=0Y^Hip1el U"Rjv8\op4u\nges(9S)^wd>Kp3K#PkwMIGVW]sR7.Sb8^d.^vadC?R$XAwNGya%nq7*x,c U"r^U33QJ#Og$hve&:ahhgSYWME/U)Znj%vztN_F9na2FO)slZcUA)QIRYjE2'D/4d[1BADncypDYnH9(SOdrZM%ULn4L07wilFB U"0d=\7jm)Dl$lpG9.5o'2(0_Ljl4#T-C>Mq0KK&.PaxRj9 U"Zg8S:''FzYku&_,koT)Rk_XiusEJT4.gP5v27kG2W%vRWQ:&3,zObe^4m0P U"l1NcP9sWCAU$P%*47^l'6sa+q[U-DH%DQ7dR> U"SE.JdkMBf%s8]2+d;#08c,2R^v/^.TtVFo0w/$cOB:2s2+j?J;L'yZZo;'UJEpW U"Qggm]B]eYdN=p9\]8L:X%>tS7J:VZgQPbT37B,35PJrg]pe4qfAQ\sOI\666 U"1lrHOqf]q%D[8IwVb5LjN$T?$IKL=Fv2RupeK5Sv9:e>Hx>*H6MY6v8d+c/N1*( U"v^k79;),%;#qIm(80RDONOkHDr/q>r8w*P7nY(BztN(e%7U0 U"=M7c*Vnob9>$5(mG/$8>:[llf[mR[r2sm\[u&d[c.B,' U"5qmrSida0LeBC-CmH+r=m''mPOo2dQ-f?D[rhiK$lO%p,L\cuT1=Qg)UGp&PR]I1St+Aa^T[:Zsm#1HXHeBae_&I2mHHe U"Cu%O]Z>%1u9'&nYR7z'GaWHM&kmT23qKzb);56(B_YbRmYyRF?7p U"e]+1^H*t)Ec2H()ZgY#bvQt-=$^fU8L U"LwUa9wP9irt8xoBUYA#fxRc%'LYg+(%(4TU/f?4#mp?^AU$Z4A10V_b/dtZs#1/ U"b/=Tv2p-Q.'wDup%()9%%'%-%32BFK,35-a%2'%%%d-%%%1%%%%rjrt(w(tu%Sq U"xySTzB=]TU56a8YdiC0QmE][I\BApQGYA7uql6m_%[\_p/M=cndPe];A10-W/eW U"4l\-L+Lu1_5,OW]vZkX2aNJ$j..]LHc8.sPLAE0tEn*X/vrNnQjq U"z6vjhI3fHCdvLe\6ZJ32x.:Q%eGZK_ddR/:EXM0^,$ok U"Q,:K]C-F>ctV^5dtI292TD#k(N?v1aZ#WCnSgV>aQUJFTQ6a%%n2i3OljR9.q*a U"h;afZrjM'NQJ2Wyir1P^L(+eLUOb^mDaXa=$?jcB2U*+M;I=EQEdbo_\^p_d\w# U"YuM9roj5V]+KALNjZo$?ve\24ow%'up(%)9%'%%-%[%zlI/n&bYc#%%%o%)%%0% U"%%%x%mnky%xgSgRfx.b1fzQe:9Tp(fl,)VP\YRQ,+-QU%Bn?1PuWbeDPiS9=e?X U"ters9_GJHNAsXa6X66$?kSf]M5s)5h9=^q4%$o8G;1aqXU.%q'DDN;/08$l?yH6 U"Q<-;+4n0PrX7E1s4R[rFG4sjz3-v(T\vlABKjB'2]sO$NYvV4xQMKcvSk$9d[mUOH43,0fQjxZK9qui U"&h9,&4>TMoOyLv=eq(3$Z8M,Y3J3A(%up()% U"9%'%m-%H-[tI=63xMq%.%%.&%%%/%%%%kn%qqxg%Sgfx)<^f0AQe5T9h0tDNW4p U"ojEhDITUj:%7mR3kB46MP6KhvBpq,B2O1t56Q7p1H?E;,i[vju(03ch+7Pi0p\g U"FV&FNEx;N5F=/fQ1=NY,2h/8,kIFUfFYs\vJ5 U"hHSOvEc^'-V+:obgMAIN&YY$,f&rjq?DqL3+o^aIIznLq6bOLgj?]B5*5os%/>V U"Bc(;YR-VkAqc%Ti1gn_N-1P+Ff(8yK'J-.kNK,Nz5x#jmGGDJ6k8STt2Atb20G& U"E&$g<4sRK(Ft/7VDULLY]TL9qHY)49lKN+g62,k\3GTGei;36,PeDG&lh0))H+W U"1d9)_s;8xRJw.5gCth%10>AJlL-.dSop/H=wF6Nt1C.%CB\ym,^Vwxm^;T?F=S;&M2dZr:])_kLvZkcIC_PsYE3Z8?CL)SSWs(kCj0rRggexUo U"[vg)PFu7%L/cCc=oRNh8WV)tT/tbk,kj]'B/1ExB=)Ek2D:9*Kxf?CWewpwhJTi U"Pcu,&CKF*_dZACN*=w6XE%p89QMoJeamzmhAu\pZ-^D;DEC8(ctUdk+-DlRI^rE U"XgIg9GxT2P%NORttv*>Hu=Qd6WPbrbYD1S/D$\ntU/m%2sj.Y(V9zaJa(%up()%9%'%#-%l1[tI3;?$XI%.%%U&%%%0%. U"%%&f.ny%g%qSfx1rl_f,9bMR?JH/U'4O+i U"jUt.2#>;3&5t[mXi1+8&x2#G&_2tLX$'Mr<+/K]^0ltIh_=1H:\AU6A[WdJ/UYt U"Q>\*dIr4RN[dVB&9wsVt:r[YaTgzLtoipRXVF1+_[vDqVpkG2oqLk4?#P,B]LNy U"GrKjE2Zv%N\uVMVi^E[fO.gBIB7wr^+Me1fa_r:GYFTw0oT*6QKh>8itCcx3'>; U"ZpQw?0H3ubFe5fkub8F.dOPWZq\YW&se.';(cCu U"ay)KAtwsaud9:58)9idZhD,)ZHP*G=m-kAD>PpH0KgMV\O\\hIl=K35.i[VvSpv U"?+A;d1Dt3$,(bT-Tl=nMOVXUc5*;XmFcmk5;u:s2x[voNa#0rpN U"r)fN$'lh_3JknO?Ijkt]?q%&up(%)9%'%%-%7%jlI^;0Y:%#&%%B%(%%/%%%%x% U"mnky%xSfxjr&_J+ogfztRWa=j=g8=DgN&pIsvKb(s)$N<8:4o3IDf3aC4E*wo.2'dSDgWZJA U"GgYQPc&L3qgSQq.lc*GH/nG/26/?n4;c3Tzu+_%m#%%%%%'%%-%%%%h.tu(S[fxr U".J^v:RdU9TXF(r(LR_d9(?QLOcP8KPomz?D3*#%xK[yHn3rZMv[RYBe8FT6)Aur U"GF21^:e<)>0IWLaOxMIeP*td,yy,H+,+nq\L#rkwJz?CF[#-rui. U"LJ0u9\HfKdH_S+W2^uxAh4]]ke7DpI&yg6.:;tQ#b893QC-?&$AOL&-i-9&u=ZX U"j%ttkVoiSmsGQHj/tM(\[a/1Dv.$l5do;c[8oJ:(.1$/k:r;z[DoFZjqL]U]$ue U"(\\)%pbZ$iRF.l3%J6sLC*n#?LN6tQEhjgoXV*)TxqE>bXVrB,1j2u%p()9%%'% U"-U%O-)aIFz'&0#&%%%_*%%%.%%%%qtl%nhSfmxr&K3J9RUm9+YtLe-o&'$&_0Z4 U"SOz$=]vIji%420.ZRefdNXfV-Nb+:\,P.\95'8=^s^I9lm7QW7p3 U"Fs2ZGbC)VN*4#?[JW$lfDOMj-%>QBJ,BxebCi_*?LdJKo_SaE?aghEOST^gvi9B U"6/Ic2LI>MFdtjW*O=][;7/C/():AvBqPXb6CCEZzc6CoaZ^keZ4J[tRJ$Qx?GQW U"D/C&t.#U#N5]((3-%BzW$x')?%$+md?whoYUC-^Ux)aCGIMTua?Yyv/o//brt U"fVVl#ejZA6oKb%4up(%)9%'#%-%VDBFKg:\?-5#'%%G%+%%/%%%%g%nsxy%wSgf U"OxFc.,:TU9c>X(r:'L3XuG[)-3QRdV9OfK]IyQ$\W\;frK$O]7q_U%9X'tib3uv U"e8Y6-)VubB2JT2cwl9DBS-9XSOXBx81f0wWWCPQi9YkUv-8p\.\T#=*=us-TY9& U"SFKn+k=%kfvCw,Oqkv>*B=t+e?(>h=c3'0Ul6q*9DLJ(VG=tcdRGahPFK%I]DOP U"lCEQNdOFHxstkbOWC,W(?80:tF;+I^b,LIAAc U"n71O.pdOTx+rT>oH9ca+'lw^D>>dV#^<F0^-#&%%z%&% U"%/%%%%w%jfir%jSVxdyr_:,96n62(OqtF[V([)?CL)I;Z^z8(BfdHXXS=(CRP>:F9T=_PRA$Z>mRx_q U"h.Mo89r4KO\.jL,fY)s$erS$m?Jg U"jGGS'K7O)'UhjDsYmrJNniE5N?Utp/4V%Tup&%'9%9%%'%-L%ZBFaKW4\+lU.%% U"%6X%%%0%%%%%%%%%&%E%%%%%%%%%r%jrtw&(tuS%gnup%&'9%%9%'%R-%2BAFK2 U"a0'uF3%%%xI%%%1%%%%%%%%%%%%E%%%%*/%%%rjrt(w(tu%Sqng%up&'%9%9%%' U"%-%32BFK,35-a%2'%%%d-%%%1%%%%%%%%%&%E%.%%u=%%%rj#rtw(%tuSq%xyup U"%&'9%%9%'%%-%[z#lI/&=bYc%.%%o)%%%0%%%%%%%%%&%%E%%%'V?%%%xmnk%yx U"gS%gfxu%p&'9%%9%'[%-%H'-tI=Q6xMq#%%%.%&%%/%%%%%%%%%&%%E%%+%i#%% U"%knq%qxgS%gfxu%p&'9%%9%'[%-%g]-tI0WeNj5[&%%5%)%%.%%%%%%%%%&%%E% U"%+%3A%%%htu&(gSg%fxup%&'9%%9%'%R-%l0.tI$o+JmD&.%%<'%%%1%%%%%%%% U"%&%%E%%%%lC%%%ujjp%utpj%Sfxr%up&'%9%9%%'%-%(A0mI^'=xF%2&%%&5'%% U"%.%%%%%%%%%&%E%.%%_D%%%kn%qqxS%fxru%p&'9%%9%'%%-%l&1tI3u;$XI#%% U"%U%&%%0%%%%%%%%%&%%E%%+%=E%(%&fn(y%gq%Sfxr%up&'%9%9%%'%-%%OilIs U"vs(2'N%%%'.&%%%.%%%%%%%%%&%E%7%%6F%%%ut%wyxS%fxru%p&'9%%9%'%%-% U"7%jlI^;0Y:%#&%%B%(%%/%%%%%%%%%&%%E%%+%2G%%%xmn%kyxS%fxru%p&'9%% U"9%'#%-%6\2mI$f\2>m#%%%%%'%%-%%%%%%%%%&%%E%%+%ZH%%%htu&(Sfx%rup& U"%'9%9%%'%-U%O-)aIFz'&0#&%%%_*%%%.%%%%%%%%%&%E[%%%t%I%%q%tlnh%Sf U"xr%up&'%9%9%%'%-%2VBFKeg\?-%5'%%&G+%%%/%%%%%%%%%&%E%%%%bK%%%gn% U"sxyw%Sgfx%up&'%9%9%%'%-%3qCFKq1F0^%-&%%&z&%%%/%%%%%%%%%&%E%.%%D U"M%%%wj%firj%SVxy%up*+%%%%%%4%4%%p(%%&tN%%%%% END SUB V2 CLOSE:IF S=241AND B&=Z&THEN?" :) Ok!"ELSE?" :( Bad! SUB U(A$):FOR A=1TO LEN(A$):C=ASC(MID$(A$,A))-37:IF C<0THEN C=91+C*32 IF K<4THEN K=C+243ELSE?#1,CHR$(C+(K MOD 3)*86);:K=K\3:B&=B&+1 S=(S+C)AND 255:NEXT:LOCATE,1:?STRING$(B&*50\Z&,219);:END SUB