`SHADOWGh 3@3"B3UD3wF3w^?<NNO @:<E2<4<.daHQ QQHz?< NAO?<NAOHz(?< NAONuC( <01Y1Y1YQ NuC9D G D t L.A.P.D. BOOTSECTOR. PRESS SPACE!! PROG BY THE SHADOWE?\`  @`! #@o')+-/1 3@5`79;=?A C@E`GIKQS@Y_a c@e`gikmo/s@u`wy{} @` @ ` @ ` @ ` @ ` ɠ ` ׀ ٠  o @`/Aa  !Oa!!O%'-//35a9;ACAoGIKMOQ!SAUWY]_a!ceagimq!Ouawy{}/Oa/a/Ao!Aa!Aɡ!Aׁ١!A!Aa B b  !"!O!b!!!!!!""#B"%b"')"+"-"/#/#35b#7#9#;=#?$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_&a"&cB&eb&&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")B)`  @`! #@o')+-/1 3@5`79;=?A C@E`GIKQS@Y_a c@e`gikmo/s@u`wy{} @` @ ` @ ` @ ` @ ` ɠ ` ׀ ٠  o @`/Aa  !Oa!!O%'-//35a9;ACAoGIKMOQ!SAUWY]_a!ceagimq!Ouawy{}/Oa/a/Ao!Aa!Aɡ!Aׁ١!A!Aa B b  !"!O!b!!!!!!""#B"%b"')"+"-"/#/#35b#7#9#;=#?$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_&a"&cB&eb&&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")B)LAPD LC OTHERS 8|S RUBBISH EMUm|S [GOODY EMU=}S DESKTOP INFat TARI800EMUPECTRUMTFRf7ESKTOP INFEX_81 EMUFOOD EMU t UBBISH EMUt . |8 S.. |8 SZ80 9|S SPECCY I|S M. |: S.. |: SZ80SIM1 ARC ;|S hARC TTP B|S %ARCSHEL2PRG G|S HZ80SIM1.ASM+~xQx i'Mb2 ,8$$EP  :c $iR'R@1C4!$ A YsN6u؄F R긙s 2\GΛ3r´ &CxJWy>}Na-H'4n΀٦^@BH CSnj nS&]z8e~cf04hD͙OLR6 "\ZG7mV* a2l vD:i( :ONL L8d&9AT\Y_w^OQFTʍQaF AGpU1y %hLe_`[VZ'qe\j1'!$C 4,Ԑl(ـLyltIKQFOU)1 JVGrDyGN C 6b. PA^GBrQ0pK5՛h@Du١1psPGStF]啙_ҵh$\Jɑb=YfSA I2;VeTY oC 1A)(iE࡝Q&O@Q Uc<INaF[![C 3dc : brHERvVm q]vUt1ǹ>m \(1Y ͉9hKCB^{D<1~ J[ZPcptRr9DW֚ H W^%Q%Fjf>iv$ځ٩s%Ab.WKULѩRrޢ2puqa?qme%+&p\tXchS9wK;A$-IP3(LA`љz$:2ԡf>)Njҁ !A簆1JJ25JdeD]JQ4O !*Hrp8LOI R=_U` p< &ՀhBr0C[ 8-1]%2ޜ6~l/ u êƀTt%lMB[sT1tUu-Y7 CU?v`k;p"ȶ/NÕ M`)6][0 =*uc H[1s 3o#0ybprgwR|g0 $j\pZ׼A!E,U Q{X 9[(^lҨ* 0pKop]谉n(0e# AƤWԨI1>Ña0ڠO5l#$\ffL\n2ol"#Ȗu(U~I`B54{=bև93b'>pU5ҍvT6D AaPUZAHT#Ӎ.J+ 4.@ ͡BblF;ck^|xt L)P\ Fe#4(:z]-N1%ˁc1a, z/ݿxaUqXg.EW~tBGt:=H*xrEy %Fgpwǧ[ eJcP3ar!&^QEEgJmb%ցl EG'gU5C& u~,^ t':E6x3985ă>(-6}WG_RCd0Q.ep:[D#;4tW7(ЂM8),p4G98tb#T#d< 'wJG;c(IX"DpUp 'mXNU#@Og8'u*E0A&HS"19w'n;(1ЇL[O(wzhcRhJaHaWWpP'1x 8g 10xg륑a!IxD(=E+pI_BtH9 Dh"Ȓ?tC(6+FO pP|Q6 (TpqC yq-`/ ,(p(5 )\6XU5FUr6blBxy+aݘQ ɒg{8zfLi')w-ySh71%(`yhi/IgD{8$}.:ft3H.cBȖn٦7q)*Pqאw!RzwU/~ QW0gl`ooS҈gej5ж6Zꦡ9;분|oP|z:7 d_f;'V5S[^#5DK5$*8;0Z cDSxpGaYMw{D'cᔊ_23"%rKQ^{^Wȝjх;1ʲdY0PCZ7W2!_2d6HUic%BgHPe0'ӻ&h| duhuV[$0lg1n`X5'Qe|YSgbT#PEIuZqb)&d1tg0iBA+nZh;Q)@<{vam*vXmpP@8^JLOi#G0AHw?|.J}%QBks>npan^35T$yUI"2Y]dxjm/͐Sll p=H)s;y!NRʺ(ޯ:A`OA=tݐ*n÷RɄF3@0]qlG(#d%MRK'|T[xSS#x{#O?v%G0 Ob†}%^ /0n$<;^A\L@Sk|oBw(&n~>jd99Qμ1SW7ޥ9σ:Wlǩ_26K6lJ]h(R1da"L&6(A-"t:kA* _‘*]eʓr|C]w}"XUX d!9$*_=AGf֕ҖCpK]32{w_E_#`1g7d=A_p4&nȢTt@S<"e"rLz !M+Hn^H10$Z`ڭiꯨiIR)n8!$2"ᙡ30\$9vx%F^c<39B<3 ^+$)nȢab%!<$ saLdG uH(Fn0$x}rRd!XTdwg^P_b%הEHue.ڬOF#H>܎/<᫻~G5fQd<32GgJ\["4@S#wQw` !M!$~X d<ˡa$˃o%nȢ=3p+t30Z%B]JPz !M-Fn1$Z` nȢ(i꯸u|{vZ6l_ѵ-ǫ:~讯x}rRdwg ş*,j' oHڍR,nȢɩ(%auW=3pL4%;e0s=4pᬧBzZk%z»_M moܫKD#Î))u-ӄq#eDiWEUYޘywxT0/>>kȉl/+)-Ro1w!qbs'Co7Pc#b#S;40$uZyz]S;3 _;zb վ%#e @$RSR [k鑈ݞؖ]Nl-!D0&SPEviv.ڽN<2(PڞMOLr'RM7&O>H{yA9\92fyHa%4LMjDBԅrvc+qQx%WlnOkkwδKci!M@Ƴ<Ĝ- 8ZUȯmw+4|!M1a e0n3@Z30m4WͯmwOڭ:~*x}rRdwxT)7PZ͢x*΅~+PڍR_XwS_}*)EVɩ(s/|Ff~%HPF!F5jzZFY_L7UsVoV)Vϒ2"o~ep _sa"o*: -Uͨ~ok͌̒VjHݖ7=*mJoݝSδkH6bcԘT1oE%AVy{njڥon 8gT/FY~>.)#+/sHMün)]z*C'1^}*)EV~(5'VozT}锝C~=;ܦ(F c2AJN ?CIP;C'5(epbCu$bk>t.;:QfQ9JqZT6d>.Knr6; Bozoݑvoeӿ׾ p4>.Kq5; Bozoݑ:@,6L60)Cq  b8$t""|jSQ6ނ.Knr6; BozƫlpYf1{ Gb8W#"|loa Ĺ/k2׾ >.K2A'; Bozƫl0e6ނ.CKRwO)HfaWlpa@&:,#n{qRy CKRN5lYiNjm^kwδKcb8dZ9 1I4@>.e97O9ȏlpם{''''^GWxlpp<7M Pjؖ cD8kwδKcFV9%glpW:vL4v`*:օ޻J,y"_7BӾS;tXI({UͽvL4v`jE-@U_aBg`Rlpr0'͇7_~rcDV'+'M꯫ؖ߶ea$:xoSѸSrOp @{R[4f# 1IHc/Q0LNc2aV*bD,J9g5"Fr_!"FUSOᓷea$b#sv%&yu7@nu"n1g݃l YVFp;|.Xh'Ȃ9(H>moRZ(Vxc;2{.EX?(@,Vxӿm!ٻJ 0?Qw@J7pf69pT6bapxxLC]EHp75JTнYw@JC^$0Ei,w6r7P/9HC^$pVi$PNu$0E3prWeP/9HC^$0Ai,w\$0E3`Vi$S$0nFi,wh$0nEi,wifbn$0nJi,w6u$0nBoF;d$0nEoF k$0EFi,w2U$0EEi,w]P/9HC^drf&$0EAoFW7Yw@JC^LVi$S5Yw@JC^$`Vi$n0ocYw@J7pfFCGe#FGp75LCP/9H7pfFCmeP/9H7pfECm@ENu$pgf]$09@9mԁ!P/9H7pfECӓ4UP/9H7pfgFCh$pgd$09@9$pg$09@9ȡ$pgv$09@9 sKV$pg&$09@#$pgFC{k(P/9H7pfoCO/P/9H7pfLCmm$pgEC p$pg69@>IS5Yw@J7pfEC.4[*Cd)M@'|p0yTuMUf}3$p}Ww@zU0*OxT.@'GUw@z'`n0GEA[FcE2'SR4R(R0'RAG%1, x- :5Dʠ[Lj*J7,HE%2aSFz':Qbj*eYS>Cawasb'9{wIR2z"Vx]ǜwҽe"(ED@G"/w.@wZ80SIM2.ASMw:~ i'Md2I .)9d1$$EP  6aALIҤ O'->@irI@ 4m C R긙ʋ e#9ap}4e@4RV2etZ8tҰ FiA:hǤqsD7d^,{"Dy:fuvN*s) bax@$z~ f4iha IC'4gйu+g"TXfR C7 FM\a_UTWfF\cEGqV\qc5FsH'Go(4C ̱[ Uj$l!LM /аPC [r5GZqD W HP6Upqe CAE*Xa1 'A 7P GysAaG` >Z{Ǒƈ%^T,6Z`0Brt4I Fh)*_Ah8*ƄWqaBn 6lzGqنd\ BziO+8)&ڷlԁ+c H8 ۮj{ ʂua1  GAxֆҲn0G^v1" dQ,1cle's!Re )`cqnG^o g)ʊfCsuE)uVA11^`M@QtDǑm[=7O@plc,+35lM;P .WO`yzQ5U_ wm#o,9N,JPeVc=C焫xb1a9k.hUŃ@IA(PbWX<Ώ\AOȜ#.n5$\#7Agƀ'pj\C@&|㌀E(~&@) bcngYawhqZ8@M4Fwou \mmd ^ E/Y6ו wWdFLmpb8n}g`̼É; =MNR 5r7J{dSY`Q^=c*y I7G+f(yʓl/k9\gf4y3^le̟y>p|Vgs9L|g9pá^כaz}^ӲR^ˑ@&ʪ sW7w1ưxWs' 0 A{jo]o 8vۥw/|5-)[Cz1sЗ 4Bn-7g i0)Wx96P×{BBYeb1řIe8=(>ӛ՚0Y6*up..Iny6{[ةٗ93tBz!9I!Wڱ$C셋ʝg C1fWVOYjySci[9IKʚI93ɜl ҧ [26:Z3#^Ȋi7: q1i4Jٚ27g£zj 0ڥZ]J z Dz1ڢ5ʯ1dD@>j@ʧ:^KJMOZ*BV:4Åe!e h +%E1e* zK!z1B4"4 .{5RɳY IE0 cncpCj @#ūJK:/69D  /,C ҰYYlڸ?[10zYyɭZ|Kek!4 "2;L -[0  ۡŶ+g` {)ʻ+J`:拾 *+= 1K؅};=s;Y#WJ2n˥4B?esMWLdȩo&)˨[\S^K{jҩ"[l۫;;1㺭jr#I:81[z⛬ɼZy&5^؋;(jW, ƣ^H#Y P[ۯ{B˲ |-KKt(zܻ;'}\8jc.;KlſY̤q;+W ŭLibM ̠Q& ,<L f™ p_Û:h*+:;p8l`lDzOZW[qZ#xd}}C^ejCes1 ݄qubP&D cbw}kր--DÛۥ9@߸m:Zqk5% L6@\$\{,!SDʩڽ=p}Dk<@L<} Wą]{`k0\ݬ4dpO-Ñ%몕d}]J\ =ΣRLŚ/+h^dpˑ =%]}5қۜ2=+mGؽ[bMƴTih X<V!JK\|z{*ځ ʜ\%Պ0^ Z]V%ت.L)Mo[Y;ktN(S*LL_*롽a2RCa.E.d{KQ9bgnm#32pm,ŀa|ϭ.AOر o2106q?~Az-ڙެn?@^2o>O ?-=bSoz0!msN>Ю%dON︔ 3rZޣ$+StMK .'LP:MM5p{ٜzbD D&%CVNDLG&I@䍝G&V}pBI|Ke./O3P') GsN#/BoΩ豌YŜ:7{>˳ ?nS<莚 --U _=.OQ-+KȪ5[]a롎?9{/TrⱮʈi_@.o ݞ-d}J~)l=e4e0 ?6ae}3e.A: ?6B4v,W#^9P `#4 ak5eq1e>: ?6Bv,pɈQ+#^]P `#/(v,i_QX ?6aĎe喾6BUdTdZ=e"٘ ?k @v,=e4e0-As6Bzv,_7#^4 `#4NaHZf4 `#4ak5eq1e>:,As6B޺v,pɈ_+#^]4 `#48a5eى4 `#4aĎf喾6BBdTdci__&➍4 4RaAsO#^P 9 `#5@3a=g}3e.A:Q6R4v,#^99 `#5 ak5;gq1e>:Q6Rv,pɈs+#^]9 `#s"v,i_sX莛Q6R:v,@s%#oq?5PN,@My=?g"٘Qj Pv,=dK<::Q6bv`,pɈؘ+#^]] `#6@'a5iى] `#6SaĎi^20jUdTd&➍]v`,=?k4e0?6a =k}3e.A:?6bvαT#^9 `#6a k5;kq1e>:?6b޺v~Ɉس+#^] `#68a 훞5;kى `#6a Ď=k^20jBd TdΚ=?k"٘?k,Ra AJk喾6r4v ,}Z7{d:m#7a)dن<-压m#78a)5dB3e0m#7a)ĎdiT\獚m]3OŮ,_m6b)>E؍\獚m]3OŮ,_m6Q6bTKgP}ިVU _=NZ._❝eoƽ|n q?8pNI؍\獚m]3OŮ,_mG S)>\獚m]3OŮ,_m6"')> @ݨY}ިVU _=NZ._❝eoƽnp?'S5ŝ\獚m]3OŮ,_m[5`#8pQIA٠\߱Yn6Ů,_meL)Q 6zT}êJʞ\獚mJ[}֍N7ܢ شy{bop0s 6T}ñ/Jʞ\獚mJ[}֍N7ܢ شy{2o7| `#8I7k6]\獚mJ[}֍N7ܢ شy{op0s 6ޚT}sJʞ!\獚mJ[}֍N7ܢ شy{2oP~ `#88I76}egP}ިVdq`kԫ~-ڀMϞѮ|'f'͠)Q 6T}CJʞp/ڀgP}ިVdq`kԫ~-ڀMϞѮ|'m{ `#8BI7Tj\(߬:+egP}ިVdq`kԫ~-ڀMϞѮ|'m{ `#8RI7A:٘ٱgP}ިVdq`kԫ~-ڀMϞѮ|=e0Ú2qppԫ~-ڀMϞѮ|='Ú44Wpԫ~-ڀMϞѮ|=w' Ŏo#9pԫ~-ڀMϞѮ|= Ú4pԫ~-ڀMϞѮ|='0Út2gpԫ~-ڀMϞѮ|=g'=o#9SSpp @pԫ~-ڀMϞѮ|=m]S(1W5Rpԫ~-ڀMϞѮ|=[ 9ppԫ~-ڀMϞѮ|=7H6œ z4H-q`pOŮ,_mk#)Ki 9NSdEߴ[ڍwZ._❝eoƽql6œ 1H]-q`pOŮ,_m-AO< :HǮ=ǡ-q`pOŮ,_mwk#)Ki 98Sd]3[ڍwZ._❝eoƽq6œ ;HߗT[ڍwZ._❝eoƽql߶p?9BSdu/\(߬:+[ڍwZ._❝eoƽqa: i 9RSd)T[ڍwZ._❝eoƽrZ;R4nS* q?gʱ0V>Ȫwoi k>ben-M?w*abѾĢI2!9OxmOqCpNJ(/*_Oo_Wx\4=?KJ搰@en-M?w*abѾĢIZ[ڍ7ڍe,U[*_-@[O/;/x\4~f'i#B8:[|'CspkN)+\\獚m]3OŮ,_mgmkﷱW?k63W7ڍe,U[*_-@[O/;ßJ؈78b abK62z$zp1Iej_2!9O،78KJ搰1en-M?w*abѾ1I2!9O؎-J^߼'c]oi k>3en-M?w*abѾ1IZ[ڍ7ڍe,U[*_-@[O/;/x\4=yOqCWrk._en-M?}Nϱpß:_^ﱱ[ڍe,op0_2!9OF`#CBDݯ:|pٱgP}ިVdq`kԫ~-ڀMϞѮ|4lPmkﷱW?Q6;W7ڍe,U[*_-@[O/;/Ŀ1IR m6RXywJ,D10/*_0߯M/;/x\4y7 M<=D@CSk|Q'M搰D Jy._en-M?w*߆#/x\43`#DpNO0#\ؖ_Wi`r+2o`psbRr2q}58R-eq/'#/'35ѝcyoi kNt2W0*_Oo_}m{q11Z[ڍ7ڍe,U[*_-@[O/;/x\4~f' :i#DSPw@ߗ[|=!mkN(1!K 0N7ܢ شyN6Z[~Dl#pß:_^ﱱ[ڍe,op0_2!oĿ1Iػ58b ߆J~i#DGRpRD10/*_0߯M/;/x\4}{T±{۬jKJ搰4}en-M?w*߆RD1/x\4}$]dq`6BJ\ؖ_ϝmyҝ-^ѝ48KJ搰D}en-M?w*߆RD1߭Eϱpß:_^ﱱ[ڍe,op0_2!9Oط-J^G6œBS D_ϝMeq`pOŮ,_m^iﷱWOQ6{pß:_^ﱱ[ڍe,op0_2!oĿ1Iؿ3#6R4#KsĢIej_2!9O؞ߤSZ4:n=O|=?KJ搰E J4._en-M?w*#/x\4m|6RǧMڰﱱ_] opڰJ[|'3oi k^t2KS0*_Oo_}{q11Z[ڍ7ڍe,U[*_-@[O/;/x\4:g'0i#ESPw-ﱱ{D?ajyAD|/oeoƽ|\~El͸pß:_^ﱱ[ڍe,op0_2!oĿ1I6Rz$q1Iej_2!9Ogp?ENP+ۥ/x\4m}oi k^Q0*_Oo_}+eqI2!9Ox}p?EX}0n]{~RKJ搰E8C ._en-M?w*RD1߭Eϱpß:_^ﱱ[ڍe,op0_2!9O*2#<±?2۬̓229Gbe(z-H"1I4r@RV%")uHS(mP!4ZN"#I, (b|:sD?qEBXpSC' 0lB@4n΀ㆌY]@BH CSnj n`S"Uj8e~cf0.h2:yCl@=ڹoڔT0d78uY.'4tBTaa6Msb4¾Lo.8EiLeFl,7YtTtien06huBWuxVTe&ar$C puS(;`ll' /аPC  rD0SB䑑Q&)%aNU)1앤Vv4l7  vsSA{CA^G6y` ,F8!jE DV66`Tt@ŗ|+1(Goiq@jDB$(!poWeA A{"[Ap`*uQ^e`1[M@tF (5+nfoO@pQFd`;qn 5K1C} @1DS}{F۹D cKD<1 #oV2 8[ Q JFfa[ /i 1cq=2 so!a~f' > * s1 -tA\-$Z`VBdwtV'J5bvx ok(]4qSBQ68 bzkVBԀ%Tad~1%ne0$1'" 'CR@-!T ѫY`. $G-ANܰbLߣشgOve*7(Lŕ7PrLa`M'_l^p P,k[ VeMT oW0!'dAUY00I J)HtTP[2ǭn0ʅ +aI-}i$Bb=(JZ\yJg65) j4hQQgPR7DYjύ.t]0 GʂA,20׹ t`⥮uKnsϛ^7o} e~ǫWU lSuxL08&0w`JaB FՅuK&0~1 c -0a b77qQ#8Iv139` pHS,3 Tvc'+kQ;L&XYDHsb A3L#๾+aAВaL%'+#- (0QǍ> Q`Ća )X $M`A!1ShWpF`6IG+Aa/rR4ᾡ0 j!,h N/H$ GD?Ґ`CɆ3(+Zen"-6RlD GTO9nDs@Ϛ+4R; сб7J2 L`B&b Wkо%(zg:t=1 S}MԎV#21@s&_kE.#t` GS_{#I"A L[.P?zI:nZc/ x:4|us'g !'\kx2A_$݋~ Cp>o{ 1SGsʶ&\h+׫fwە}Ǧkhs=ot9: T-VAx;{gI->) >;Ѝ{<)0ן+23V_i|?~̧vl7jCuB rtIaK3MtAR'PUwuYQM~lhv7GSntd xwrwWw_+Xx~xx y3ywpz1Wzwz,gH8z'iLzwz'j m'J\ΧJ8|8|W-8W/{}@7}#7"w}}wwBH7g~$8_nxvgoW/"Ie3W{w~(t*Xt (_e8PgSQnauXZׁֈ&xv#xk:}3]zزEb{2&2aJh—ŧc h'(vX}ܡl}}u'~8~:,Bcb@Ler{Gv~1g̳\W7"I|!PB-؏Z{hC@%򠲨آɆy{IvYيƺ.]?]Wj2KJG2)\H<R<.[6Umnp0J:F\e`\ßx6M֘,{I!" *z0v2KZ80SIM4.ASM{~C' i'Mh2I  BI, qM@S4„) p B !P\ Ȥ9'M:ly#)u1 EH.d#9aL}D!;AD%SFU;>C' 0lvL7g@qC,Ӯw@ !BIcL[|IZ)F*[v2e 1#D 4hDOMN R6 LZG7mN`2lvD:i( :NJL L0d&91KT\Y_7^NQFSʍAa5h(׆eAVcǗtsfSEL0 5 ȗa֗t)j1&!C 3,(!UlD0SB䑑Q&)aNU)1DRѓ1Tb.O $Iu z "n0`Rhj`rCxbe$h. &r-h䌞dg ؉l!payBJa+adaGn<@pLUc ,LiT a{_rKۆ+c,ڂ0a3K,Ab0n1N<+ q̮x .c V^~,0'ƀaaL+J[g 0'0㦁h(.['rr,;w+ =6]<c{7}c| Wg= ~I~SRl83MXАcMѡҧcsnXh.ű1˶?}b |߹n탳cԮ>^3O?#l؎o法~Х.{?ٗ=+C%;4 @0{]3Owl!c%ł]׆1_9 tw&0/ @݅!{x° M|NVs=zOD=(YКgElM[.#Elq[^VRڝC]G1Xc#h>uۚ8!Ed#H@n+$y=gI#aH-8!<0qLz0Lsh,֋آIhpm@= 'y.5suc`"1 B X1sNT938 A#hDhE8'9qN8lĬC@YǺs֓y$n!_W1'|&QtDcSM[ n Lӈj5"({gSy"ayjzS8_mXQVֳLI2Ip`y2r2U'D֢VǐY Vj.)lRNc9}ю[,$(!$ kTs$1H`v9,$m P6'im[ @ 8 P Br Z,$.uU* wZSu$8BxoҖ]hI~ _񗾐;|8B |!\)0a &$0 E8wA`d{K ]yI^&0K!982S2dcL6 M`9ll3<ސ&F◌H& Za]B m˖ nל|_:br ez%: sGkW[jK!و|of"ۘ%ڞcºw4|)ϋ.BO]DؔvZE9[OK!pK6Dq&]"=$۲\h$l^o>SY1V׸lŠLtklmj>_ eͻ7wFn&Ayq-M d>в ΄Up n!f3)krMlNޜk!7YvtBw Sބak} 6KD  LGY i>-oùd_n>^E5ub<?vsA`z\ }ys``]<#CaXOzO:S]d~v޽Kz0t|tp_7˭7cfһկ{3/>g'g|kԷ<wz-xUG>iwUGW{ X{W5 GwU{XdvD94X{wϘٗyri—ywCyyX< 7ɘcO4dec7օOeF\d &|?xElEǏ y]t7_t-8F\6686^chtk&F&$9-Er 6F_e")r-G^U  _}5C9FGD}Y7gu4pf'HOwHH_IhH\V4O)DمhLHԖQgWcUI]yI|ėeI|y8/{ϡkIAYJ3鐩4bÚ-KAVF`䛏$0 _dwKƹd-LA`4oY DŽɆ$i7c6cͤLق:$& {4oٗMjM Nyti-HNv%N]EP9VQA u봡@_AJxNBnJP O. C0 TgPPvA7D]]O&mJ96P>J49t6tccp> ;f]lv~ц2#gRJ1e3 {՝*j?QN֩QKU;x?'QDjHzlJW"çS*2]vXZmgR9@uj ꥚:^1r'5 w.ucqB7qgnb /zyS  _*w֧]NASvT<21Š=qd 8*XGZbNp2EiSj5ߪPKCnz ۮP{;jEUsǬf9J)FEڡ]Zmu'D;;^:pJKOzVzA _ieyavRs마e\VqI cOjWN^Ehڶ>ئWڬvW -{y8m5ŭ^B****************** CLI AND.B #%11111011,FLAGS ;CLEAR INTERRUPT MASK RET 1 ******************************************* ********** CLV $B8`y@c^N6NWNNUNWNVNW4NV$NUNsl*O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN0 lHhN]X/,?,N\?<NPD?<A?<NAXNuNVB. nl:HlNkvXHl8NklXHlPNkbXHlrNkXXHlNkNXHlNkDXHlNk:XHlNk0XHl4Nk&XHlHNkXHlzNkXHlNkXHlNjXHlNjXHlNjXHl*NjXHlbNjXHlvNjXHlNjXHlNjXHlNjXHl.NjXHlFNjXHlrNjXHlNjXHlNj|XHlNjrXHlNjhXHl8Nj^XHl`NjTXHlNjJXHlNj@XHlNj6XHlNj,XHlDNj"XHlVNjXHl|NjXHlNjXHlNiXHl NiXHl:NiXHllNiXHlNiXHlNiXHlNiXHl(NiX nf\ n -h`H nH|Hg nH|hf(HlXNizXHlNNX?<NbTHlrNi\XR nfBgNMTHltNLX)@fHl|N0. n /NbXJ@g"0,g0. n /HlvN^PRlRn0.nm0.N^NuNVBnHl/.NLBP-@f0,g/.HlN]PRl` /. HnNaPBBnHnHn/.N F ,gP/,NNX-@`HnHnNaPJ@fP=|0.f0.g>0.ne0.nf*0.nb Bg/./,NN, /.NBX`zHnHnN`P @m`D/,HnNDP/./,/,N /,NNX-@/,HnN PJ@fF0.g*0,g/. HlN\P?</./,NM `N0.g"Bg/./,NM| /.NAVX``&0,g/. HlN\PPBg/./,NMF `*0.g/.NAX``0,g/. HlN\P/,NMPX-@|/,HnNBPHn/,/.N& Bg/./,NL /,HnNP?</./,NL /.N@XN^NuNV/BX/././,N7 BgB/.NI /,NJX-@|/,/.NP/./,/.N# Bg/./,NI /,/.N P?< n/(/,NIz /.N=TXHlN]XJ@g0,gHlHl dNXFPRlN^NuNV0.f Hl vNdXBn`0.ABPRn0.nm/. ?.N"f\?<N4~T`BnBn`80. n /HnN PJ@g=|0.A0`Rn0.nm0.g*?</./,NH 0,gHnHl NWrP`"/,HnN P/./,/,N. /,HnN PJ@fPB,/,HnN zP?<N4T0,g@Bn`00.A0f0. n /Hl NVPRlRn0.nmN^NuNV g@Hlx?<NPN\?. /.?<NNP A HH?N2TA HA HH|YgA HH|Nf`0<fA HH|Nf*Hn4Hl 8NNvP?< n/(/,N?f `Hl LHn4N9|²9|°N^NuNV0,°g,Bl°/.NX9@®0,® lh(H9@¬`0,f/.NzX=@=@ @f0<`0. lhA-H nf"=l®0. lhA-H?,¬NT`. n(H?NT n=h0. lhA-H n hf n(H9@¬?NT0,²g?,¬?,®NpXSl²9n®NN^NuNV/.NlX/. NbX` n n HHAgb n H|?gT n H|*g 0<` `:`R ng nH|.f`R n g n H|.f`:`RR ng nH|.fl n g n H|.fT ng nH|.fR n g n H|.fR `H n n HHAg, n H|?g n H|*g0<`&`0<``RR nf n f0<N^NuNVBn`v?<\0. n /N9\-@f:?</0. n /N9\-@f?<:0. n /N9\-@ .g .R2. n Rn0.nmN^NuNVB?<N+T)@h ,h)@d ,h)@`0,f0,g Hl dN4XHlNX ,gHn/,Hl rN` `HnHlxHl ~NJ Hl HnN"P-@fHnHl NPBlp <-@)@¨BlvN4/./.NPNP`R?.NT/.?.NT\/.NX=@ @fN-@/.NX-@`&B¨ <-@-@-@0,g Hl N3XBgB/.N$ n1lv n!l¨BlpN؆ ,¨n ,¨n ,¨n0,g .¨/Hl N3jP0,g Hl N3ZXHlNX|0<9@vH)@¨`/. ?.Nf\/.N&X=@ @f n1lv ,¨ n!@ n!@` .lv .ll0,g ./Hl N2P0,g Hl N2XHlNX| n!n`/. ?.N\/.NX=@ @f` .lT0,g ./Hl N2RP0,g Hl N2BXHlNvX|/. /.NpP n!@`0,g ./Hl N1P0,g Hl N1XHlN"X| n!n .g6BgB/.N" `/. ?.N\/.NDX=@ @f`<=G=G`.0A첚02.nAcRn0A첚0nRG Gm0.R@=@B.BG`80A첚=P0.2.Ad ng0A첚0|RG Gm.fh no$BG`0A첚00RG GmLN^NuNV?>. UGHǏ`0. S@??/.NPSG Gl>N^NuNVH>< RG<. n<0nn|0nl&0 n?(0 n?N`XJ@gRG0 n??NFXJ@g60 n02. n00 n0?.?/.N`PLN^NuNV0.A첚02. A첚Pc0<`F0.A첚02. A첚Pf$0.A천02. A천Po0<`0<N^NuNVH><` n=PSn 0. n0 n00. S@?Bg/.NP n=P0A첚A&H0RG n07n7n0.A첚02.A첚P60.A천?0.A천?N>X"0<A7@0. S@?Bg/.NP n n8 n9PLN^NuNV0.n o0.`0. N^NuNV?BG`0A찖BPRG Gm>N^NuNVH>. A첞><. A철< GfX FfR0. A찖00<2<nh=@0,n2. A쮔0 no0.A첞><.A철< Gl0R@D@`0,G> Fl0R@D@`0,F</.?N@\/.?N4\Rn0.Sn0.0.nm0<2.AHLN^NuNVBn=|0,nmD nf0.`0,2<n`n0,6.h9@0.l0.|` lo0,2<n`n0,n llfBl nf0<`0.|`>/.NX9@l @f9|l0,lA쮔9P0,lA찖9P`0N^NuNV/. N:X-@`/. ?.N\R/.NX=@ @f .N^NuNVHlHlxNP)@f$0.gHlxHlN#JP`HlxHlNtP0.g"HlHlNP)@fHlHlNLPN^NuNV ,g /,NX0.g/,NXHlHlN>P)@g?,?,/,NаP/,NX ,gb0,g@HlN'LXHlHlxN%PJ@gHlHlxHlNٸ HlHlN"nP`HlxN' XJ@gHlxHl*NيPHlxHlN%HPJ@gHlxHlHlJNf N^NuNV0.@|2.. HA|A쨊6@N^NuNVBgNzT?<B/,N /,NX-@BgB/,N `h/,NXЮoHnHlbN!PRl`R`>HnHlN!PHlNXHnB/,Nf J@gRl` HlN!RX/,HnNӎPJ@f ll HlN!.X`" lf HlN!X`?,HlN! \N^NuNV?<NT)@h ,h)@d ,h)@`Blv n)hrBlpNŬ,H|g|g`*`/. ?.N\/.NX=@ @f``|g`*`/. ?.N\/.NlX=@ @f`X`|g`4/.NX`/. ?.N\/.NX=@ @f``|g`2BgNT`/. ?.N>\/.NX=@ @f``|g`2BgNT`/. ?.N4\/.NX=@ @f``|g`2?<NbT`/. ?.N\/.N|X=@ @f`l`|g``/. /.NdP`R0,g nA/HlNDPHlN:XRl?< n/(/.N& /,hNlX0<`B``/,hNXX0,v nhg"0,g nA/Hl&NPRl0<`0<N^NuNV. H??,vNX9@v/. . H?Nզ\N^NuNV0,p|g`2. H| @f9|p`/. . H9@?N\`N`|g`B. g`/. ?,Nt\S. f`/. ?<N^\Blp`?,pHlHNH\``N^NuNV ,rf0<`Sr/.NX?NTN^NuNV/.NX//.NX" AAN^NuNV9|c/.NX9@ lm lm HlfNԾX9|9|Bn`6/.NX2.A줄0/.NxX2.A줄1@Rn0.lmN^NuNVBn`zRl0, @o@/.N X9@l @f0<`Bl0<ll2.A줄A=P`,0,l@9@l=@0<n2.A줄A=P nl~0.R@D@=@ nf0<`0.=@0.N^NuNV?.NT nn0<`?.?<>NX9@2g0<`0<N^NuNV nam nzn 0.| ``0.N^NuNVHl/.NPJ@g`Hl/.NPJ@gNHl/.N~PJ@g\=@0.N^NuNV?.?<LNXN^NuNV/ A&H`0+ |g/ N*X A"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ NhTJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ NP?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NXP'@&Bk0<LN^NuNV/ &n0+ |fk@ 0+ |`g0<`&Bk`R0+ |g A̐A잀A &'@`*0+H/NzX&'@ fk `k g-K?<?+ B?<BN n!@& k f HlN~X0+ |g0<`0+?/?+ NP7@Sk0+ @l kfk `k@ Bk0<` SRH|&_N^NuNV/ &n Bk0+ |fk@ 0+ |@g0<` `R0+ |g A̐A잀A &'@`*0+H/NNX&'@ fk `k g0+ |g SR k `<0+ |g2k SR . H| g kl . H|`T/ N,XJ@g k@ 0<`<0+ |gBk. H|`"` 0+S@7@k . SRH|&_N^NuNV/ &n 0+ |f f0<`Rk. S SH&_N^NuNV nSh0( @m n R @H|` /.N*XN^NuNV n Sh0( @m. n "R AH|`/. . H?N\N^NuNV fBC`&SCdTC0|g0|gԼdRC`|CHBC0|@HB LN^NuNVNVH n " n $&JjFFJjFFLN^@hNuNVH n"n $0(H@6C|g.0)H@:E|gE|BB0<まef bRAQ$0P`HNVH n$0(H@6C|gd"n .0)H@:E|gD|E(HD*HE20HGHBBB8:BGBBЇӄЂӅJg$0P`B`NVH"n 0<9@fQ`NVH"n Blf n,0(H@8D|fB.0)H@:E|fB2$60Enfl8,:.6$0Jg0Eg|n0@gDԇ0,fQ fBB`HSCdTC0|g0|gԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.AB PNPLN^/W DhNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @)P^)hb-l^-lbBEG>O|g|JGn|m` REHlx/ NRPO`SEHlx/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`b .6.HЃR$@ nH|0fRZ"` R"H|9n nH|0f$n R&@fSE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`F ,>$@ f*A$H`0* |f` A"Ҽm A"Ҽm <`B>Bj Bn+H|+f =|j H|wf?./.N\>j `hH|afB0<n?/.N \\> @f?./.N|\>?<B?NPj `0.n?/.N \>j Gf Bj <`05G Bj <$%@?<B?* NTP%@5l L N^NuNV)n>/.NX/. /.NLPN^NuNVH&n>. <`N nSh0( @m n R @H|` /.NX=@ @f 0FH ` 0.SF Fn no0.`0<LN^NuNVH>. <`,/. nRH?N \ @f 0FH `SF Fn no0.`0<LN^NuNV/ &n/ N*XJ@g0<` k ?./. ?+ NP'@0<&_N^NuNV/ &n +"Ё"+&_N^NuNVH0&n$K`0.H| f`HSn 0. @o: nSh0( @m n R @H|` /.N:X=@ @fB nf f <` L N^NuNV`H0BnBnBB9| nRH|=@ .&@$@BG`TH| g(H| gH| gH| g H| f0.f0.gBnB` `H|"f< nfBn`*0.f 0.f=|0,RlA` `"`H|'f: nfBn`*0.f 0.f=|0,RlA` `'`r0.fj0.fd=|H|f. R @H|>f T-@=|` R-@Bn`0,RlA`  R0RG0nmB .g,A H1| A H1|HlHl/.N@ .g2A H1| Hl0.gA `A //.N 0,R@H/?<HN\)@><`0A` 2 l RG0lm l 0, lBL N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuNV nl <`?.?./. ?<BN8 -@ m .`?<?.B?<BN -@?<?.B?<BN -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BNx ]|9@2g <` `Bl2 . N^NuNVH0><2.|SA¼0?N T&@f <` $@5G \/NX ,4L N^NuNVH0><2.\ASA¼A ,4$@ fA8 $@)@4)@8Bl<&R0+Ge*0+Gf$`0k0+7G)J4 \`, 4f?NT&@ f <` $@ &@`L N^NuNVH0 .]&@$l4` m n l`$R o l 2+Ёf R0(k R&`& 2*Ёf 0+j$`$)J4L N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`60.A0f"0.A00.A0 ` Rn nLmN^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^NuNVHl/.N PJ@f =|`Hl/.N PJ@f =|`Hl/.N PJ@f=|`f0. |g0/.N XJ@g0<``Bg/.?<NLX0. |?/.?<=N4P=@9@2 @l0<`0. | ??.N~X0.N^Nu)I)J)_NA"l$l/,NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NX 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp`FSn0.A P m0.A0| |A`0.A0|0 SR0.fLN^NuNVH&n n f=| )n^)nbHlHl^?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0ljo0,j`0> Gl0<`0?HnHnHnN BF`0RFA SRSGSn0g nl` SR0Sn nl0. g SR.` SR0RnSn 0. g nm`" Go0RFAH`0<0 SRSG0. Sn J@f`` SR0. g SR.><`0RGA SR0. Sn J@f SRE?.Hl/N: /NXHѓLN^NuNVBn`"0. n PHC|0=@ nR n PH|0m n PH|9o0.N^NuNVH0&n -n @$PX`R` nRg H|%fH|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN$X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NV 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @)P^)hb/,b/,^Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f` nR .o .R-@f nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlNPN^NuNVHn /.N&PN^NuNV`/. nRH?N\ nfN^NuNV nf:0,lf0<9@9@`?<NT=@ nf*0,g Sl?<?<NX?<D?<NX` n f00,RlA윦 ?< ?<NX?< ?<NX`v nf ?<NT nf20.2,RlA윦?< ?<NfX?< ?<NXX`*0.2,RlA윦?.?<N4X0<fA윦윢H|f0<`0,RlA윦H`` nf?<NT``0. `Rg HGfg ` <`LN^NuNVH0&n>. $|`HGf$KRf `L N^NuNV/.?<AN\9@2g0<``0<N^NuNV`4 nH| f?< ?<NX nRH??<NX0. Sn J@fN^NuNV` nRH??<N`X0. Sn J@fN^NuNV` nRH??<N2X0. Sn J@fN^NuNVH0&n $KA-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.NTJ@f`H| f |o@ H-@/./.?.?<@N\ 9@2Hg0<`0,2n/./<?.?<@N& 9@2 @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N 9@2Hg0<`0,2nBl20.L N^Nu9|9|9|9|9|9|9|9|9|CA r"A v"A z"A ~"A "A "A "A "A "A "A "A "9|C222222222C2222222?22A`)H\9|9|¾C쨊2222@2222A2222A222ā2@22 2 2A222΁2@2 22ˁ2 @22 22A2222A222ځ2@222߁2@2222A222Ձ2@2222A2222A222Ё2@220212A232222@262227@225242A2<222=@22?2>2A22:2;2A292228@2(222)@22+2*2A22.2/2A2-222,@22$2%2A2'222&@2"222#@22!2 2A22`2a2A2c222b@2f222g@22e2d2A2l222m@22o2n2A22j2k2A2i222h@2x222y@22{2z2A22~22A2}222|@22t2u2A2w222v@2r222s@22q2p2A2P222Q@22S2R2A22V2W2A2U222T@22\2]2A2_222^@2Z222[@22Y2X2A22H2I2A2K222J@2N222O@22M2L2A2D222E@22G2F2A22B2C2A2A222@@C"2"2 2"2"2"22"2"2"22"2x9|)lx)l|)lt)ll)lp9|jCBA"A"A"A$"A*"A"A ")|>)|49|9|Nu(C) COPYRIGHT 1985,86 by System Enhancement Associates; ALL RIGHTS RESERVED Please refer all inquiries to: System Enhancement Associates 21 New Street, Wayne NJ 07470 You may copy and distribute this program freely, provided that: 1) No fee is charged for such copying and distribution, and 2) It is distributed ONLY in its original, unmodified state. If you like this program, and find it of use, then your contribution will be appreciated. You may not use this product in a commercial environment or a governmental organization without paying a license fee of $35. Site licenses and commercial distribution licenses are available. A program disk and printed documentation are available for $50. If you fail to abide by the terms of this license, then your conscience will haunt you for the rest of your life. ARC - Archive utility, 5.12 - Atari ST Usage: ARC {amufdxerplvtc}[bswnh][g] [ . . .] Where: a = add files to archive m = move files to archive u = update files in archive f = freshen files in archive d = delete files from archive x,e = extract files from archive r = run one file with arguments from archive p = copy files from archive to standard output l = list files in archive v = verbose listing of files in archive t = test archive integrity c = convert entry to new packing method b = retain backup copy of archive s = suppress compression (store only) w = suppress warning messages n = suppress notes and comments h = hold screen before returning to Desktop g = Encrypt/decrypt archive entry Atari ST version developed by Harvey Johnson press any key to continue ARCTEMPTEMP.ARC.$$$.BAKAMUFDXEPLVTCRCannot mix %c and %c %c is an unknown command I have nothing to do! I don't know how to do %c yet! press any key to continue =*.*No files match: %s No files were added. Duplicate filenames: %s %sCannot unsave %s brCannot read file: %s Updating file: %-12s Adding file: %-12s Adding file: %-12s %s\ARCTEMP.CVTARCTEMP.CVTFile not found: %s bw+Unable to create temporary file %s Converting file: %-12s reading,Cannot unsave %s You must tell me which files to delete! Deleting file: %s File not found: %s \\File not found: %s Extracting file: %s brWARNING: File %s already exists! Overwrite it (y/n)? %s not extracted. bwCannot create %s brAn entry in %s has a bad header. %s is not an archive %d bytes skipped. Invalid header in archive %sI don't know how to handle file %s in archive %s I think you need a newer version of ARC. Write fail (disk full?) press any key to continue Name Length Storage SF Size now Date Time CRC ============ ======== ======== ==== ======== ========= ====== ==== ==== ======== ==== ======== Total %6ld %8ld %3d%% %8ld File not found: %s JanFebMarAprMayJunJulAugSepOctNovDec%-12s %8ld -- Packed SqueezedcrunchedCrunchedUnknown! %3d%% %8ld %2d %3s %02d %2d:%02d%c %04x File packed with %d bits, I can only handle %d Stack overflow analyzing, ARCTEMP.CRNARCTEMP.CRNbw+Unable to create temporary file %s (%ld) storing, (%ld) packing, (%ld) squeezing, (%ld) crunching, Cannot delete temporary file %s done. Bug - bad ncr state .RSCbrTemporary file %s already exists bw+Unable to create temporary file %s Extracting file: %s .*File not found: %s I have nothing to do! Cannot delete temporary file %s .TTP.PRG.TOSbrTemporary file %s already exists bw+Unable to create temporary file %s Invoking file: %s%s Cannot delete temporary file %s brCreating new archive: %s Cannot read archive: %s bwCannot create archive copy: %s brCannot rename %s to %s Keeping backup archive: %s Cannot delete old archive: %s Cannot rename %s to %s Archive truncated in file %s Testing file: %-12s okay No errors detected One error detected %d errors detected I don't know how to unpack file %s I think you need a newer version of ARC WARNING: File %s fails CRC check Bad NCR unpacking state (%d) File has an invalid decode tree CON:AUX:PRT:@$??rawCON:AUX:PRT:%d TLNuB45h@A }3TLNuB45h@A }3TLNuB4F45h@A }3VLNuB4F4D5h@A`~ *O.|@*m - ЭЭм// Bg?<JNA ?<NNT3jJ@f*|za"`?<NNT#P?<NAT<Ad$  ::e::%Bg/<?<GNAP |(|f*|z?Jg Q |zQ |zQ#8:<# ^3aQB9 yjf Xy (`Ry (*|(|nz gR` M fQ #\"¼ AU"f#X3haaj(|*|&:<Q(|:<#$`#da yf0 then lprint chr$(code) 50 ?"Ready." 60 lprint chr$(inp(1)); 70 print chr$(inp(1)); 71 goto 60 The printer server is very simple. All you need is a printer conected to the PARALLEL printer port and another computer connected up via RS232. All you do is turn on your printer, turn on you computers, load up ST Basic,load up the PRINTSER.BAS program in the RS232 folder and run the program. You can then start transmitting from your other computer.(In my case a spectrum.) If you happen to have a spectrum and a interface one then this is what you should do: FORMAT"t";300 OPEN #3;"t" then you can LPRINT and LLIST but it is not possible to COPY BUT see the SPECPORT.BAS program as it does the same thing. ERIGHT$(RNDRENUMBERSTEPSAVESGNSINSQRSPCSTR$STRING$(SOUNDSTOPTANTHENTOTAB(TRACETIMECTRUEUNTILUSRVDUVALVPOSWIDTHPAGEPTRTIMELOMEMHIMEMxGj3oŸFʕxр|AmI/v&9¸1$ڶ*0o]LX*}}/VrĈzD#/}Ў¿10 clear:fullw 2:clearw 2: gotoxy 0,0 20 ?" ##################################################################### 30 ?" # # 40 ?" # Spectrum to ST Picture File Converter # 50 ?" # ------------------------------------- # 60 ?" # Written 1988 by N.E-D. (N.Ekins-Daukes) Belgium. # 70 ?" # ---------------------------------------------------------------- # 80 ?" # Edtrad Computers Public Domain # 90 ?" # --------------------------------- # 100 ?" ##################################################################### 110 input"Do you want to save the converted file. 1=yes. 2=no.";l 120 if l<>1 then goto 190 130 input "Destination - Filename (*=Stop Program) ";s$ 140 if s$="*" then end 150 goto 190 160 savepic:sm=peek(&h44e)*65536+abs(peek(&h450)) 170 bsave s$,sm,32000 180 return 190 ?" Start spectrum up when you hear the tone." 200 for n=1 to 200:next n 210 clearw 2:? chr$(7) 220 x=150:y=100 230 k=inp(1) 240 if k=49 then linef x,y,x,y:x=x+1:goto 230 250 if k=51 then y=y+1:x=150:goto 230 260 if k=48 then x=x+1:goto 230 270 if k=101 then goto 290 280 goto 230 290 if l=1 then gosub savepic 300 for n=1 to 900:next n 310 goto 10  63< 47 = DL; 3(< : 7 8; W ߗ L ưr~LL ɤ LLNo =*[# m ɋ  W : ϐ߂7Q8l7   ݕ A , 1 " ' L This program Ports SCREEN$ files from the spectrum to your ST computer.(I will warn you now that it is a lengthy process. ie half an hour). The St has to be connected via RS232 to a Spectrum with an interface 1 and at least one microdrive.(You may be able to modify my program so that it works with your equipment.) To port a program you need the below pogram in your spectrum and the SPECPORT.BAS program in you ST. Run the ST program first. It will ask you if you want to save the picture when it has been ported. if you press 1(YES) then it will ask you for the file name.(I think I ought to confess to a minor problem now. I can't get my ST to save in Degas format. I can only save in Dr Doodle format. {If your wondering what Dr Doodle, It is a VERY simple drawing program.} You can convert from Doodle to Degas using a utility that may be in your Public Domain Library. If you have a screen saver you could take a screen shot of the picture as the program is pausing at the end of the program and edit the picture with your art package.) After that it will sound the bell indicating that it is ready. You must have set beforehand the Baud rate. 9600 I find is a bit too fast for the spectrum to cope with. 4800 Baud works well, so I recomend that you use this. (Note: the faster the baud the more chance there is for garbled data if you have not made the link up cable well.) Type this in on your SPECTRUM -------- 1 REM Spectrum to ST picture Porter. Edtrad 1988. VER 1.1 3 REM This program is to be used on a SPECTRUM with a Interface1 and a RS232 link to an ST computer. 4 CLEAR # 5 INPUT "Baud rate.(9600-300)";baud: FORMAT "t";baud: OPEN #3;"t" 6 INPUT "Name of Picture to port.";n$: LOAD *"m";1;n$SCREEN$ 40 REM Send the screen. 50 FOR n=175 TO 0 STEP -1 60 FOR h=0 TO 255 70 IF POINT (h,n)=1 THEN LPRINT 1: GO TO 100 80 LPRINT 0 100 NEXT h 110 LPRINT 3 120 NEXT n 121 REM Tell ST to stop listining. 130 LPRINT "e" 140 CLS #: PRINT "I have Finished!!": BEEP 10,20: BEEP 10,-20 9997 STOP 9998 REM Save progam by typing goto 9999. 9999 SAVE "Specport": ERASE "m";1;"Specport": SAVE *"m";1;"Specport" LINE 1: VER IFY *"m";1;"Specport" To run this press R on your spectrum and type in the baud rate that you have set the ST to. Then type in the name of the picture file. It will look on drive one for the file and load it if it exists. As soon as it has loaded the picture, it will start transmitting. At the end it sends a message to the ST telling it that it has finnished and the spectrum will make a noise to draw attention to the fact that it has finnished. There is a Demonstration picture (Mono) of what can be done with this porter on the welcome package. *+7e**8e++`+),- *7ȥ+7`Subscript ɍȱ )Q * Q +10 fullw 2:clearw 2:gotoxy 0,0 20 ?" Spectrum ASCII file saver." 30 ?" Edtrad Computers 1988." 40 ?:?:?:?:input" Destination file name :";n$ 50 ?:?:?"start spectrum 1-2 seconds" 60 ?" after the tone." 70 ? chr$(7) 80 ? " To save hold down Control and G on ST. The type LLIST" 81 ?" on spectrum. Then type close on ST." 85 open"O",#1,n$ 90 x=inp(1) 100 if x=254 then close #1:end 110 f$=chr$(x) 120 print#1,f$; 130 goto 90 ?&@8=*H>+H?,@- @?h>h=hh`' Q  ~ Lb Q B' ~ N';);.);=0>1?2 @3A4`jE;*`LG0 B0-I-8**ȱ++ȱ,,ȱI-*+,e(` BЪ7696:: ȱ96 ܽ7(`    r !'` k ** @ k Y**0 ` 9** @ B?<`>: *+,-@`= >  ِװ ͪ= 𿰼 This program is very simular to the PRINTSER.BAS program but insted of outputing to the printer it goes to the disk. To use the program load up ST BASIC and load and run the SPECSAVE.BAS program.You will be asked for the destination name. This is the name of the ASCII file that it will save. You can then start transmitting the data. I suggest that you use 300 or 1200 Baud because the ST may be too slow to recive all the spectrums data in time.When the spectrum has come to the end of its data and the ST Disk drive light is off hold down control and press G. Then send some more data(It can be anything). The ST will then exit into basic. YOU MUST TYPE CLOSE and press return ,because otherwise the St won't save all the file and will do horrible things to your data file. 87 108 M N'B 0Ʉf1f2f3f4f501ɠ8F IN8873I0 8+IȘ#70 f. f0I fN @N. f87 To connect up your spectrum to your ST you must have a Interface 1.(If you have a simular RS232 device this MIGHT work but I would check with somebody experienced first.) You will find that your ZX Interface one has a joystick like connector on it. And your ST has a enlarged version of this. You must get a plug and socket for these. So your shopping list will look somthing like this. 1. 9 pin male D type connector(Joystick Type) 1. 25 pin female D type connector 1. 9 pin connector housing(Opt *) 1. 25 pin connector housing(Opt *) As long as you need 6 way screened cable * These items are not essential for the computers to communicate but will stop the wires from touching. Use them if your link is to be used for some time or you may run into trouble. Screening is the metal shielding around a cable. it is often found in audio cable. Your cable must be screened or else you data will be garbled. Do not use ribbon cable for this reason. Look on page 49 of your interface 1 manual and you will find that there is a diagram of the Spectrum port.If you look on page 76 at the Modem diagram you will find a diagram of the ST RS232 port. These diagrams are as if you are looking into the ST, so take this into concideration when making your cable. Heres the wiring diagram: Zx Interface 1 Atari ST 2-----------------------------------------------2 3-----------------------------------------------3 4-----------------------------------------------20(4) 5-----------------------------------------------8(5) 7-----------------------------------------------7 The connections in brackets are for NEW TOS rom ST's. So if you have the new tos 4 goes to 4 and 5 goes to 5. You must also link 20 and 8 on the ST.Set the handshaking to RTS/CTS. If you have a OLD Tos rom on your ST you must connect 4 to 20 and 5 to 8. You must also link 4 to 5 on you ST.Set the handshaking to XON/XOFF. NOTE: Only one of the above applies to you so do'nt do half of one and half of the other by mistake! You can find out which tos you have by clicking Desk on the desktop menu. If it says copyright 1986/1987 then you have the new version. If 1985 then you have the old. Good soldering is important. Do'nt rush the job because it will just garble the data or not work at all. Check that there are no short circuits before connecting it. General Notes. -------------- The ST has a buffer in which it stores the data. This buffer needs to be emptied if you stopped the computer while data was being sent because it will be full next time you come to input data. It can be emptied by selecting the VT52 emulator on the DESK menu. If you have a diffrent 2nd computer then DO NOT try these connections but write too LEE COOKE who supplied me with the wiring diagram for the above linkup. I would like to thank Lee for helping me with this link. His address is: 117, Limbrick Lane, Goring-By-Sea, Worthing, West Sussex, BN12 6AQ, ENGLAND. Set the ST up to 8 bits, 1 stop bit and no parity. The spectrum has this fixed so it is the ST who has to adapt. As mentioned the spectrum's best baud rates are 1200 and 300 although it can transmit higher with relative safety, reciving is not very good even at 300 baud! You can obtain the wire etc from your local electronic store such as Tandy.If you ca'nt find a shop then get a Maplin catalog from WH Smiths or write to: Maplin Electronics P.O.Box 3 Rayleigh Essex SS6 2BR England and ask for information. ` JJJEj& &&&&` LꮠL 㒩*+L Lخ 6` )b,a V ˽*66` )@,? V . |m S[.. |m SAPPLE o|S \BBC_6502 z|S CBM64 |S . |o S\.. |o S[APPLE BAS p|S ]2APPLE LES t|S jAPPLE PRG w|S qVGfABASICp!v#0F1Z1111111282l2l2l2lANIWAHLDADRJALTNEULXLYXYLXTHENKFLAG1FLAG2ANZZEILK1K2K1THENKDFLAG3DIFDELTFLAGMAXMINFORIK1TOK2HIGHLOWFLAG4FLAG5X1X2X3X0U1T1Z1CRAZNFZAHLAENDZDD1IALTNEUNAMMODADRBBAICSTDKDLESENFERTIGSTARTWEITERSUCHETRAGERAUSNOCHEINSLOSREINAPPSPEDRUBEAARBEITNICHTLENGLEGCR1FERTCR2CR3NOABBRABLENLEZEITAPPLEFIRSTEINLESENUMFDRUCKEN SPEICHERNUMFORMSPEICHERZEILEREINFINALDProgramm zur bertragung von Text-Dateien vom Apple II auf Atari R.Henke, 21.01.1988   T*rr0 !rr0 !rr0 FB()=eingelesene Bytes,C()=Umformung+Ausgabe r8*@`` FFilter fr Steuerzeichen fr 1st Word B891,142,92,153,93,154,123,132,124,148,125,129,126,158 A4 OEG`F  OEGF 6Q@ F Einlesen der Sonderzeichen-ASCII-Codes O|FF OlF YFf)!RDaten-Empfangs-Programm|zur bertragung von|Apple II - Textfiles|zum Atari via V24!!O.K.!F ",F Datum und Uhrzeit setzen V |F  :EF Flag=1 => Binrfile wurde von Atari-Disc gelesen B, F (eher fr Testzwecke, oder zur Nachbearbeitung)  Q,JF4,F Byteweises Einlesen ber V24-Schnittstelle  F |F 6EF  Anzahl der zu bearbeitenden Bytes des Files DEF Flag1 : =1, wenn Apple-Writer Formatzeichen entfernt (.PM1) @EF 2 : =1, wenn Sonderzeichen fr 1st-Word umdefiniert BEF 3 : =1, wenn die Anzahl der Zeichen/Zeile bearbeitet 1&!EF 4 : =1, wenn ausgedruckt e("EF 5 : =1, wenn abgespeichert  .,F  Umformen der Apple Writer II - Files e 2,F Weiteres Umformen fr Atari - Text-Files e (, Fr Begrenzung auf x Zeichen/Zeile B &,F Ausdrucken auf Schirm/Drucker  , F Abspeichern  *, Fg Mglichkeit der Weiterbearbeitung SJF4-F nochmaliges berarbeiten der Original-Daten  F SJF-F neue Daten einlesen  F qF +FYF("Zeit setzen: (=Default-Values)F=FE~F1. Datum: Default = "~Fg,FEFtE8F@E;@ .?@@ .=@ F/Fr eine einfachere ,2. Uhrzeit: Default = "FZeiteingabe. ,F&E00000000F&Umstricken auf das DE;@ :?@@ :?@``@ FOriginal-Format k!FF Eingegeben: "~" um "8F.F+F Datum/Zeit - Eingabe EFz: Neu "F( U6 JFnderung nur, wenn eine `EF "Eingabe erfolgte  F.F LDiese Prozedur dient dem Einlesen von bereits einmal bertragenen und als HOriginal-bertragung abgespeicherten Apple-Files von der Atari-Disc. NZum einen dient dies fr Testzwecke (Schnelleres Einlesen als ein erneutes Nbertragen vom Apple), zum anderen der Nachbearbeitung einmal bertragener Files. g + F6)!File von Atari-Diskette lesen!! ja |nein!F Z>JF$f\*.*! !F Wildcard, Pfad=0 n& WJF "ABBRUCH" angeklickt d-F. F&EF Flag setzen, da File gelesen d,7I!M!F wie das geht, steht im Buch!! #EsM FD(E#)QxFg bertragungsdauer (keine RAM-Disc, nicht s> E #F kompiliert (davon ca. 1msec je Punkt-Plot) nD!&! !'Fd Grafische Lauf-Kontrolle wie unten c EF E&&F"BY!  "#" Bytes werden in ca. "%( " sec. eingelesen:FEF"Z4rM F File-Ende antesten  ! F E  F4F6EqM F  Byteweises Einlesen, da bei Strings nach u6 EF einem Komma abgebrochen wird, und Sonder- 0Y^F Zeichen (<32) gar nicht 'rberkommen o8MF F|FF.F HDieser Teil ist das Kernstck des Programmes, hier erfolgt die Daten- 2bertragung vom Apple zum Atari via V24 (RS232)  +F@)!(V24-Schnittstelle|fertig zum|bertragen?!! ja |nein!F [$JFF F07i!M!aux:F aux: = serielle Schnittstelle 4Ea F Dies sind die ersten beiden vom Apple zu r4 Ea F bertragenden Bytes => Treiberprogramm!! r4E Fe ja,ja, die 8 Bit des Apple... .Y!  "" Bytes werden bertragen:FlT)!;Stimmt diese Zahl mit der|auf dem Apple angezeigten|berein!! ja |nein!F \JFF)!3bertragung wird| abgebrochen| |Zurck zum Editor!!O.K.!F8MFF F: E F Delta x fr grafische "Lauf-Kontrolle" wH!,! !.F  Umrahmende Box, in der der Zeiger luft  EF Startwert in x > E--Fw dito in y, 173=10*16+13, 10=y-Wert des Textes ^XEGF Ea F Byte-weises Einlesen c  EF6 ! F Punkt in der Box setzen, entspricht Zeiger s6 E  F an die Lnge angepates Delta-x addieren s ]FF0Ea F Das letzte, bertragungsbedingte 8MF.F HEntfernen der Apple-Writer Steuerzeichen im Text (z.B. ".PM+3" etc.) n*sowie einfgen von nach einem DWegen der mglichen Dauer (bis zu 31000 Zeichen untersuchen) wird 0das Laufen des Programmes grafisch angezeigt. F################################################################## tF# ACHTUNG: Steuerzeichen, die als "CONTROL..." eingebettet sind, # tF# werden hier nicht entfernt!! (Kommen bei mir auch nicht vor, # tF# bei Bedarf mte diese Prozedur entsprechend erweitert werden, # F# und zwar bei der Abfrage "If B(Alt+1)=46.... Selber machen!! # F################################################################## t +FP)!7Apple Writer II|Texte bearbeiten|(.LM30 entfernen etc.)!! ja |nein!F e JF0Y!@ "" Bytes werden berarbeitet:Fe*EF Zhlt die Abstze &EF Startwert der Original-Daten EF Ziel-Laufvariable  E FB!L! !NF Grafische Lauf-Kontrolle wie oben  EF EMMF|Fr ! F E  F4F bJFs Ende erreicht -F F4F, E F? bertragen in "Ziel"-Array e2 d PJF auf ein "RETURN" gestoen .EF im Atari-File das Line-Feed ein- o, E Fa fgen (macht Apple nicht) 4*FL d 8 8JF erstes Zeichen der Zeile ist ein ,EF Punkt => Steuerzeichen wie ".FJ" r|FF4F dJFs-F F6 d\ PJF Suchen des nchsten RETURN's h-F F&EF  Steuerbefehl berspringen .EF  eins der zwei CR+LF berspringen n-F F F-F|FEF" Flag setzen (s.o.) e EFl" durch LF's neue Lnge  F.F FAustauschen der Sonderzeichen ,,,,,,? fr Atari-Text-Dateien tDWegen der mglichen Dauer (bis zu 31000 Zeichen untersuchen) wird :auch hier das Laufen des Programmes grafisch angezeigt.  +Fa`)!GSteuerzeichen fr die|Weiterbearbeitung unter|z.B. 1st Word austauschen!! ja |nein!F hJF8 fJF Falls die Apple-Writer Steuerzeichen noch 4,FD nicht entfernt wurden, werden die Original- , F Daten zum neuen Ziel-Array bertragen ,Y!` "" Bytes werden gefiltert:F E FB!l! !nF Grafische Lauf-Kontrolle wie oben  EF EmmFh~EGF ! F E  FL ht# 4 <  tJF Sonderzeichen nur im -2hpEG`F interessanten ASCII-Bereich * hf @ JFe prfen (dauert!) -$ E@ FJ Filter bzw. Maske  F hF@ F gF@EF' Flag setzen  F.F Begrenzung der Zeilenlnge N(sonst sehen sowohl Ausdruck als auch Ergebnisfile eigenartig aus, da nach B max. 160 Zeichen ein Line Feed erfolgt, auch mitten im Wort!) uLEs werden CR's und LF's eingefgt, also bei Erreichen einer vorgegebenen hNZeilenlnge also ein Absatz erzeugt. Dieser mu bei der Weiterverarbeitung @unter 1st-Word oder Signum eventuell wieder entfernt werden. r + F EF\)!CBegrenzung der Anzahl von|Zeichen je Zeile|(1st Word - Formatieren)!! ja |nein!Fi tJF,F# bertragung, s.o. 0EF % Default-Wert fr Zeichen/Zeile gEFF% Maximalwert ,E FF& Minimalwert (darunter wird iREKoben ^^^ steht die|aktuelle Zeilenlnge| |Gewnschte Zeilenlnge (<150)F E + | - | O.K.F|F 2Y! "Fe aktuellen Wert ber der 0)!!! !F  Alert-Box anzeigen; nderung e$ llJF ber Alert-Box (+/-) n@E# ## # ## Ft Kleiner Scherz r-F F8Y! " F Lschen (sieht doof aus) eEA  BytesF. m.JF Falls schon formatiert, sollen 4EA*  AbstzeF hier Abstze statt Bytes als n F' Anzeige dienen (Y! "" werden formatiert:F1 E F B!! !F  Grafische Lauf-Kontrolle wie oben  EF EF,EF K1 = Start eines Blockes (ab ) u0EF K2 = Ende eines Blockes (bis zum ) e(EF KD = bertragungs-Laufvariable m$EF Flag, ob Datenende erreicht .,EF Zhler fr nichtformatierbare Zeilen l4Y ! "Nicht formatierbare Zeilen : FY! "-F|F  ! F E  F4F4F2 E FD bertragung in neues "Ziel"-Array B op PJF Neuer Blockbeginn bei Erreichen von u EF  FEF Blocklnge B p JF  Alles i.o., falls Blocklnge < Zeilenlnge u*-F bzw. Textende noch nicht erreicht  F"E# F = 1 bei Textende e8 s>JF  nun geht das Umformen los (Lnge>Zeile) ,-EF- neuer Zhler fr's 'Runterzhlen |F@ q- JF Suchen nach letztem Blank vor dem c5-FF (natrlich rckwrts) 4 q^-JFl bis Blank gefunden, oder Lnge<2 o-F* qF- falls Zeile nicht formatierbar: &EF  Zeile unbearbeitet lassen, 4,FF Zhler erhhen und t0Y! ",Fi ausdrucken, und dann n-F weiter im Haupttext  F F0E-F Anzahl der "berschssigen" Zeichen E-FF Hauptzhler sowie 4EF "Neu"-Zhler bis zum Blank zurcksetzen , E  Fr Plot-Zhler natrlich auch 8 EPFE RETURN + LINE FEED ( und im ( E FE Zielarray einfgen <EF24F Statt Blank -> CR, sowie ein Zeichen mehr  F|F8 sJF nchster Block, wenn Textende noch nicht -F erreicht h FE!`F4I ! F bertragen ins eigentliche "Ziel"-Array EF Flag setzen $EFl Durch LF's neue Textlnge  F.F :Ausdrucken der Daten, wahlweise auf Schirm oder Drucker  +FF")! Ausdrucken!! ja |nein!F vJF(,F mglicherweise bertragen, s.u. YFEF& starker Trick, gelle: * ECon:Fk Die Ausgabe-Unit wird ber iB)! Auf Drucker!! ja |nein!F den OPEN-Befehl gewhlt. So . uJF kann das lstige Unterscheiden N"EF$ zwischen PRINT und LPRINT  EPrn:Fc entfallen! d F 7O!M! FuEGF&M!B "F Byteweises Ausdrucken uFFF8MF!EF F.F NFalls keine Bearbeitung der Original-Daten unternommen wurde, erfolgt hier Ndie bertragung in das zum Speichern und Drucken vorgesehene "Ziel"-Array. H(SWAP geht hier nicht, da die Originaldaten erhalten bleiben mssen.)  +F2 xJ!JF keine Bearbeitung erfolgt .Y! "" Bytes werden umsortiert:Fl, E F% grafische Lauf-Kontrolle r*!! !Fd wie oben r EF EFxEGF ! F E  F E F bertragung wF0EF neue = alte Anzahl von Bytes (Lnge) g F.F (Abspeichern von Daten auf Atari-Disc e + F&)!File speichern!! ja |nein!F zjJF,FF s.o. ef\*.*! APPLE.TXT!F, y$JFv es wurde ABBRUCH angeklickt -Fd na, denn nicht!  F EOF z  JFP)!7Datei existiert schon.| Eingelesene Werte | anhngen!! ja |nein!F yJF4 EAF So knnen mehrere Texte verbunden werden, . F die zusammen nicht in den Apple-Writer-  F RAM paten. 7 !M!FFzTEGF&EM! Ft Byteweises Abspeichern - z$FF8MF"EF|F F.F DAS WAR'S  + FEF0)!File nochmals|bearbeiten!! ja |nein!F {*JFT)!@Achtung:|Es wird mit den|original bertragenen|Daten gearbeitet!!!O.K.!FbEF-F F {"JFJ)!.ACHTUNG:|Sie haben die Daten|nicht gespeichert!! zurck|weiter!F {JF, F F F2)!Noch ein File| bertragen!! ja |nein!F {JFEF F|FT |XJFYF,Y! "Aktuelle Zeit: "~" um "8F4 F Tja, das war's dann wohl. Falls das Programm &.F gefllt, bitte 20,-- DM ... (!) Pdcb|dQ6zfknpsDZD{Ta*eUZt\wxj0WJzEPFE RETURN + LINE FEED ( und im ( E FE Zielarray einfgen <EF24F Statt Blank -> CR, sowie ein Zeichen mehr  F|F8 sJF nchster Block, wenn Textende noch nicht -F erreicht h FE!`F4I ! F bertragen ins ebertragung von Apple II - Textdateien zum Atari ber V24-Schnittstelle: Apple und Atari mssen ber die serielle Schnittstelle verbunden sein! Auf dem Apple mu ein Treiber-Programm gestartet werden, da z.B. so aussehen knnte (unter APPLESOFT-BASIC): Nr. Zeileninhalt Kommentar 10 ONERR GOTO 500 Fehlerbehandlung, s.u. 20 D$=CHR$(4) Steuerzeichen fr DOS-Operationen 30 HOME 40 PRINT "TEXT-DATEIEN ZUM ATARI UEBERTRAGEN:" 50 PRINT "('C1'=CATALOG,D1 ; Ansteuern beider Laufwerke, und 'C2'=CATALOG,D2)" Mglichkeit zum Wechseln 60 PRINT 70 INPUT "NAME = ?";F$ Filenamen eingeben (Typ "T" !) 80 IF LEN(F$) < 1 THEN 490 Abbruch, wenn nur gedrckt 90 IF F$ <> "C1" AND F$ <> "C2" kein "Catalog", kein Leerstring, THEN 130 also Start 100 PRINT D$;"CATALOG" + Disk-Inhaltsverzeichnis zeigen RIGHT$(F$,2) 110 PRINT 120 GOTO 40 Neuer Eingabe-Versuch 130 PRINT D$;"APPEND ";F$ Dient zum Test, ob File existiert; 140 PRINT D$;"CLOSE ";F$ "open" wrde ihn sonst kreieren. 150 PRINT D$;"OPEN ";F$ Falls File existiert: Start 160 PRINT D$;"READ ";F$ 170 E%=1 Immer Variablen statt Zahlen ! 180 S%=8191 Die Bytes werden ab HGR1 abgelegt; 190 N%=0 max. bis $9600 (vor DOS),= 31kByte 200 N%=N%+E% Schleife mit Zhlererhhung 210 GET B$ Byte einlesen 220 POKE S%+N%, ASC(B$) zwischenspeichern 225 A=FRE(0) **** s.u. **** 230 GOTO 200 weiterlesen; Stop ber Error-Routine 240 PRINT D$;"CLOSE" Einlesen fertig 250 A=INT( N% / 256 ) High-Byte der Byteanzahl (8 Bit!) 260 B=N% - 256*A Low-Byte 270 PRINT N%;" BYTES WERDEN Lnge bekanntgeben UEBERTRAGEN" 280 PRINT 290 PRINT "UEBERTRAGUNG ABBRECHEN Text fr Kontrolle (s. Prozedur) (J/N) " sowie s.Zeilen 320-350 300 PRINT D$;"PR#2" Slot der seriellen Schnittstelle 310 PRINT CHR$(A), CHR$(B) Lnge im 2-Byte-Format bertragen 320 L=PEEK(-16384) Speicherzelle der Tastatureingabe 330 IF L>127 THEN 360 Taste wurde gedrckt 340 T=PEEK(-16336) falls nicht: Akustisches Signal geben 350 GOTO 320 und weiter auf Antwort warten 360 POKE -16368,0 Tastatureingabe wieder freigeben 370 IF L=202 THEN 420 "J" wurde eingegeben => Abbruch 380 FOR I=1 TO N% Falls nicht: bertragung 390 PRINT CHR$( PEEK( S% + I )); Chr$() zum Byte-weisen bertragen 400 NEXT I 410 PRINT mu sein; letztes Zeichen somit 420 PRINT D$;"PR#0" zurck zum Terminal 430 PRINT 440 INPUT "NOCH EIN FILE Das Ganze natrlich beliebig oft UEBERTRAGEN (J/N) ? ";A$ 450 IF LEFT$(A$,1) <> "J" THEN 490 bertragung abgeschlossen 460 ONERR GOTO 500 Reaktivieren der Error-Routine (wurde 470 HOME durch File-Ende deaktiviert) 480 GOTO 40 Und nochmal von vorne 490 END 500 E=PEEK(222) Inhalt der Fehlermeldung 510 POKE 216,0 Fehler-Zeiger zurcksetzen 520 PRINT 530 IF E=6 THEN 570 kam aus Zeile 130, File nicht existent 540 IF E=5 THEN 240 kam aus Zeile 210, also EOF erreicht 550 PRINT "FEHLER ";E alle anderen Fehler 560 GOTO 490 570 PRINT "GIBT'S NICHT!" Falscher Dateiname eingegeben 580 ONERR GOTO 500 Reaktivieren, s.o. 590 GOTO 40 und nchsten Versuch starten Compilieren, z.B. mit dem TASC-Compiler bringt eine ganze Menge, vor allem luft das Laufwerk des Apple dann durch, statt nach jedem Sektor kurz zu stoppen, auer... : **** Der Befehl A=FRE(0) bedingt, da in der Variablenverwaltung auf- gerumt wird: Die Stringvariable B$ aus Zeile 210 wird unter Applesoft nmlich nicht berschrieben, sondern jedesmal neu eingerichtet. Das fhrt zu einem berlauf, wenn B$ zu oft auftaucht, wodurch die ber- tragung total durcheinandergert. Andererseits dauert gerade dieser Befehl Fre(0) recht lange, so da auch bei einem compilierten Programm (s.o.) das Laufwerk nach jedem Sektor kurz anhlt. Besteht also der Textfile aus nur wenigen Sektoren (z.B. 10), kann die Zeile 225 entfernt werden; das wrde den Einlesevorgang auf dem Apple wesentlich beschleunigen. Man sollte sich vielleicht 2 Programme auf dem Apple erzeugen und dann compilieren, eines mit, und eines ohne Zeile 225. Atari-seitig wird entweder unter GfA-Basic das Programm APPLE.BAS gestartet, oder gleich das bereits compilierte Programm APPLE.PRG, welches natrlich alles etwas beschleunigt. Die "procedure" ist dann wie folgt: - Auf beiden Rechnern die Programme starten - Atari-Programm bis zur Abfrage "V24-Schnittstelle fertig zum bertragen?" laufen lassen (einschlielich dem "O.K."-Klick!). - Apple Programm bis einschlielich der File-Abfrage durchlaufen lassen - Nachdem der Apple die Anzahl der Bytes angegeben hat, hlt er (in einer Endlosschleife, Zeilen 320-350) an. An dieser Stelle wurden die zwei Bytes bertragen, die die Lnge der zu bertragenden Bytes enthalten. Diese Anzahl wird auch auf dem Atari angezeigt, und es erscheint eine Alert-Box, in der diese Lnge besttigt werden soll. * Falls beide Lngen nicht bereinstimmen, wird durch Anklicken der "nein"-Box das Programm auf dem Atari gestoppt. Auf dem Apple mu dann noch ein "J" eingegeben werden, und auch dieses Programm wird gestoppt. * Falls beide Lngen doch bereinstimmen (dies sollte der Normalfall sein!), zunchst auf dem Atari die "ja"-Box anklicken, dann auf dem Apple irgendeine Taste (auer "J"!!) drcken, z.B. die Space-Taste. - Apple ist dann zunchst fertig. Falls kein anderer Textfile bertragen werden soll, drcken und ausschalten. - Datenfile auf dem Atari wie gewnscht weiterbearbeiten, drucken und/oder speichern. - Neue bertragung sinngem. (Die Kontrolle der Anzahl der zu bertragenden Bytes ist insofern sinn- voll, da auf der V24-Schnittstelle (auf der Apple-Karte oder auch im Atari-Buffer) noch alte Daten stehen knnen; der Atari erwartet dann eine falsche Anzahl von Bytes und "hngt sich auf", wie man so schn sagt.) Viel Spa damit, bei mir lief die bertragung gut! Rolf Henke, Blumenthalstr. 12, 2800 Bremen 1, d.25.01.1988 (Das ist die Adresse, an die die vielen Geldscheine geschickt werden sollen!!!) eben 580 ONERR GOTO 500 Reaktivieren, s.o. 590 GOTO 40 und nchsten Versuch starten Compilieren, z.B. mit dem TASC-Compiler bringt eine ganze Menge, vor allem luft das Laufwerk des Apple `SR` Efv*oM%6 m HPHUBg?<JNA(m)m -^:gS)@ -OK1PC#HNHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHN(ALNpHz2?< NA\pdAxr0XQ)K\NNt\\\JrBjNuHz?<&NN\NߺCAp$L Qp Nݦ9lrBlJpNNݦpMNݦ9@pdAr 0Q0tr N9lNupealp`NuaN,Hz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu pa4|a@:>< |a6RGk0Gg`a(0GVfA1G<ap??<?<NM\Nu??< NMXNu&8*:EENuHn& 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NtNu&8*JEgJBgJjBEB:HC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuN,pNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|@  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</N JFkSFk&aQN `Ha"FFaQL8N6.@JgtBn@Nupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNuNXJ@g,A,BBgHQ?<=NAP FJ@k??<>NAXtNutNuvN)@p `H@)@prtNAHplrtNB 2pNpNpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvNv`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNAl 2l 4HVNuAl 2l 4L VA0000000000prtN0<}Np& ?<NNC`&?<NNT"@ C <}N`N(* 9AJA)H@@[000][ˈNX Evz`* [g" ]g |g QSz` zQSpQ][ɈNX Dvx`* [g" ]g |g QSx` xQSpQ]Bp4NݦHNu*( INXA)H @depd ae zb QB DNXA\)H @ e` ae zb \gQBA BhNpZNݦA BP"`#|}NA"H0,tg"Hg \f`A\fS A ENpAR@H`2QNu"H2@N..0H@N..YdN,HAN,, NXtaoR6 .fJS@gFt ao>AA .f4S@g04<;ark(AjA AbAPjAdYA??<+NAX FNXta>k:Y6 :fRS@g*t;a(k$AA :fRS@g t;akIA??<-NAXNurxS@k0  bS@jrNu .g( :g"0  b DBb BdeS@jJANuSR@JANu2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NN"l`dpNAtrdJhk\QpaNH ld$l`"Hg0 k&@ S`g k#&@0+S@H3 Q&f)I`LNuApNBNf$N$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0NuNXJ@gpNu _0HpNB _0HpNBp"_0HqN2p"_0HqN2E ұeHHQ0)Np$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNWHNu Ihd*N$E$RR@H`2QˈNX ENu Ihd"*N$E8*$R`"QˈNX ENu2)A IJAfr4(Ae*RBBc0*SA?N$E$R`QˈNX ENup`(* 0(iN$E 4R`Q$D 4R`QˈNX DNX ENua NuNX IHPg"B  g &gNJBjt BNut`Rptr ae OgT Xgj HgSRB ae Fb$0k  c_  c b退`tSJBkNRB0 b b瀀`RB0 fрd`0H 0 0H@Nu?<,NATANnpNB?<*NATAN8p NB"H2X@N.:0H@?N.:AAN,Hpx$ ld$l`"Hg8" &Ak eѐ S`g"" k#&Aeё2+SAI3 Q&f)I`LNuNq Y Qf*d ЀЀ 2$4BBNu(HRp` HRpJQfpN:$_& Y Qf,d,փփAdRdRBABJk 0NN&N ~,Nq8DRzXEEg"7PNqR$HBJBgpNJgJigp`eetЂ`"ЀeЁdp`ЀeЀe"Ѕe$W.H@@/ l\N NL"2` NqR YEjrd0` SjN$_NDЀЀ 2$4BBN YQf "_Nq*eN&N *< NqbІSGfN$_NփփHRN: YQf "_&Nq*eN&N *<&NqbֆSGfN @  "002Nu" KC`e N`d \N l\Ӭ\ NupNd d3 d# d# # d# # # # d# # # # # # # # dB` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # QNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNu?k?<NM"UAf J@fH@NuDW?<NMXNuPj0,lf$J,nk l*fp?N*p N*9|nNA0,l2J,jk 0"fZRAR@ 0"g 0 f` 0 g 0,f9@lTll`BllA"H"g"A4`Q"AA 0! NuS@R@ 0 g 0,f9@lRll`R@ 0 fQj`<,*?Hj\F FfN`H FfN `RGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HN*LNu0,^2,`NzEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(NԼldeS@f lbfSl`9Ab9FdNupapqr`p`C l ", Ⲭ dfѬ SA 0! Nup"NNN\JfNup#`"rN4N"p`tdbDA0Hg<<R@f|0HN*JFk*HQ/??<?NAXfX ENuJkpNp`p`\F( &I.` ??<NMXJ[j E&DNuak NupNuakfpNupNtddA0oH?<?B?<BNA Jk.,?<?B?<BNA *kBg?/?<BNA JkNuNp`pJ@gHzZ?<&NN\NuB?< NA\Av ACLElp"Jg X\QC"C!/:@?< NA\NuLH!NuHx`(Hx`"Hx`Hx`Hx`Hx` Hx`Hx !4VxH A6@ Ni LHL|1R/:?< NApdK`HaJLxNNu)H9@Jp4NݦP'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8N  8fQ 8J,'gNupB <``L@ H)l26)z @W , Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C]fApNNNݐHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Fehler # ][Abbruch]\f.B &lX)K\)ld` lp ,BQjNup(N Division durch NullberlaufZahl nicht Integer|-2147483648 .. 2147483647Zahl nicht Byte|0 .. 255Zahl nicht Wort|0 .. 65535Quadratwurzel nur fr|positive ZahlenLogarithmen nur fr|Zahlen grer NullUnbekannter Fehler Speicher voll Funktion oder Befehl|noch nicht mglich String zu lang|max. 32767 Zeichen Kein GfA-BASIC V2.0 Programm Programm zu lang|Speicher voll|New Kein GfA-Basic Programm|File zu kurz|NewFeld zweimal dimensioniertFeld nicht dimensioniertFeld Index zu groDim Index zu groFalsche Anzahl IndizesProcedure nicht gefundenLabel nicht gefundenBei Open nur erlaubt:|"I"nput "O"utput "R"andom|"A"ppend "U"pdateFile schon geffnetFile # falschFile nicht geffnetFalsche Eingabe, keine ZahlFileende erreicht|EOFZu viele Punkte fr|Polyline/Polyfill|maximal 128Feld mu eindimensional seinAnzahl Punkte grer als FeldMerge - Kein ASCII-FileMerge - Zeile zu lang - Abbruch ==> Syntax nicht korrekt|Programmabbruch!Marke nicht definiert"Zuwenig Data#Data nicht numerisch$Syntaxfehler in Data|""paarweise verwenden%Diskette voll&Befehl im Direktmodus nicht mglich'Programmfehler|Kein Gosub mglich(Clear nicht mglich in|For-Next-Schleifen oder|Proceduren)Cont nicht mglich*Zuwenig Parameter+Ausdruck zu komplex,Funktion nicht definiert-Zuviele Parameter.Parameter falsch|mu Zahl sein/Parameter falsch|mu String sein0Open "R" - Satzlnge falsch1Zu viele "R"-Files (max. 10)2Kein "R"-File3Nur ein Field zu einem|Open "R" mglich4Fields grer als Satzlnge5Zu viele Fields (max. 19)6GET/PUT Field-String Lnge falsch7GET/PUT Satznummer falschFehlerhaftes Menu?Fehlerhaftes Reserve@Fehlerhafter PointerZFehler bei Local[Fehler bei For\Resume (next) nicht mglich|Fatal, For oder LocaldGFA-BASIC Version 2.02| Copyright 1986/1987|GFA Systemtechnik GmbHf2 Bomben - Bus Error|Vielleicht Peek oder Poke falschg3 Bomben - Adress error|Ungerade Wort-Adresse!|Bei Dpoke, Dpeek, Lpoke|oder Lpeek?h4 Bomben - Illegal Instruktion|Ausfhrung eines ungltigen|68000-Maschinenbefehlsi5 Bomben - Divide by Zero|Division durch Null in|68000-Maschinensprachej6 Bomben - CHK-Exeption|68000-Interrupt durch CHK-Befehlk7 Bomben - TRAPV-Exeption|68000-Interrupt durch TRAPV-Befehll8 Bomben - Privilege Violation|68000-Interrupt durch Ausfhrung|eines priviligierten Befehlsm9 Bomben - Trace Exeption|68000-Trace-InterruptAllgemeiner FehlerDrive not Ready|ZeitberschreitungUnbekannter BefehlCRC Fehler|Disk-Prfsumme falschBad Request|Ungltiger BefehlSeek Error|Spur nicht gefundenUnknown Media|Falscher BootsektorSektor nicht gefundenKein PapierSchreibfehlerLesefehlerAllgemeiner Fehler 12Diskette schreibgeschtztDiskette wurde gewechseltUnbekanntes GertBad Sektor (Verify)Andere Diskette einlegenUngltige FunktionsnummerDatei nicht gefundenPfadname nicht gefundenZuviele Dateien offenZugriff nicht mglichUngltiges HandleSpeicher vollUngltige SpeicherblockadresseUngltige LaufwerksbezeichnungKeine weiteren DateienGEMDOS-Bereichsfehler|Seek falsch?Interner GEMDOS FehlerKein BinrprogrammfileSpeicherblockfehler"l`Yd&-KNN"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`& $Y8gHRDD*D%H8#$c2g# HRDD%H` <yC\Nv <yCnNv <yCzNvNHxpCt~NxNA 0 <r$<A NNA$ 0 <r$<A$NNA$N"/A N"/NCt~NrNN`NqNqNN`NqNqNNVNHxNRDaten-Empfangs-Programm|zur bertragung von|Apple II - Textfiles|zum Atari via V24HPNO.K.r"_ NANNA5N NBmNA7N NA퀜N&&<x*<NJBfN4BNA:&N NCAf 0NBm^NBmdNBmNBmNBmNA=XN NAA4N NADJN NAKN NAO(N NAQ4N NA퀜N&&<x*<N|JBfN4NN4BNA퀜N&&<x*<N|JBfN5NN3NNݐNNݐNNVNN=Default-Values)N$NNC&NNNBC8NNHm8p"_N~HPp.N2"_NHPHm8pr"_N"_NHPp.N2"_NHPHm8p"_N"_NC8NNNN00000000"_NC>NNHm>p"_N~HPp:N2"_NHPHm>pr"_N"_NHPp:N2"_NHPHm>pr"_N"_NC>NNHm>A&"_NtNNNNNNNNNNݐNHxNFile von Atari-Diskette lesenHPN ja |neinr"_ NANNAN&&<x*<NJBfN:NN\*.*HPp N2HPAD""_NdNHmDA "_NtJBfN8PNN:NA퀜 0NpIN2HPADr"_NvNpNANNAN&&<Q8<*<NH <r$<L8NAN:NAN&&<x*< NA6N:N <LrNB <N"<NTNAB 0NAH &0NNNN>NAZ 0NC0Af 0NNNNݐNHxNGSteuerzeichen fr die|Weiterbearbeitung unter|z.B. 1st Word austauschen4HPN ja |nein4r"_ NANNAN&&<x*<N|JBfND@NAZN&&<x*<NJBfNBNAMN NNHPN Bytes"_NCNNAZN&zNJBfNG`NAN&N>HPN Abstze"_NCNNN* t& \ &*,4$6 $.H4 . 2 *"8 &  :& <& $ J:$ $ >& ,h& H&j&b& J&B3*8 *&*<R4\8.P&d`tT<<:J.&t*NA퀖N&A퀄NNA퀄N:NA6N&A퀖NNnABNNABN:NA퀄N"/ <r$<CzN6NA퀄N&&<x*<NN&/ <r$<CzN6NCxAr 0NA퀄NNA퀜N&&<x*<NJBfNKNNHlNprNLNCzAnNNA퀊 0NC퀄Af 0. |{ S.. |{ S[6502 ASM ||S 6502 DOC |S 6502 TTP |S !BASIC BBC |S @ TTL 6502 EMULATOR BY TIM TITCHMARSH V1.0 ********************************************************* * * 6502 EMULATOR BY TIM TITCHMARSH * * JUNE 1987 * * HOPEFULLY IT WILL EMULATE ALL OF THE 6502 INSTRUCTIONS * AND AT A LATER DATE ALSO THE `NEWER` ADDITIONS * * * * * 6502 FLAGS * * * FLAG BIT * * C 0 * Z 1 * I 2 * D 3 * B 4 * * V 6 * N 7 * * * * * * 68000 REGISTER USAGE AND NAMES USED * * * * D0 * D1 {TEMP} * D2 {CONDITION CODES} FLAGS * D3 {REGISTER A} A * D4 {REGISTER X} X * D5 {REGISTER Y} Y * D6 {TEMP} * D7 {TEMP} * A0 * A1 * A2 * A3 {TABLE OF FLAGS} * A4 {PROGRAM COUNTER} PRC (CANT USE PC AS USED BY SYSTEM) * A5 {64K PAGE OFFSET} OFF * A6 {STACK POINTER} STK (CANT USE SP AS USED BY SYSTEM) * A7 PAGE * DEFINE 6502 FLAG BIT POSITION EQUATES CB EQU 0 ZB EQU 1 IB EQU 2 DB EQU 3 BB EQU 4 VB EQU 6 NB EQU 7 * DEFINE 6502 FLAG EQUATES C EQU 1 V EQU 64 Z EQU 2 N EQU 128 * DEFINE 68000 X FLAG XX EQU 16 ;CANT USE X AGAIN AS ALREADY DEFINED * REDEFINE 6800 REGISTER SO THEY LOOK LIKE 6502 ONES FLAGS EQUR D2 ;CCR FOR 6502 A EQUR D3 ;6502 REG A X EQUR D4 ;6502 REG X Y EQUR D5 ;6502 REG Y PRC EQUR A4 ; PROGRAM COUNTER OFF EQUR A5 ;GIVES A 64K PAGE OFFSET VALUE STK EQUR A6 ;USED AS 6502 SP (LSB ONLY FOR 6502) * OK SO LETS DEFINE SOME USEFUL MACROS * SETFLAGS WILL UTILISE THE 68000 FLAGS SET BY THE INTRUCTION * PRECEDING IT AND WILL MODIFY THE 6502 FLAGS REGISTER (D2) * TO EMULATE THE CORRECT OPERATION. AS MOST OF THE 6502 * INSTRUCTIONS EFFECT THE FLAGS IN A SIMILAR MANNER TO THE 68000 * THIS ISNT TO BAD A JOB TO PERFORM, IT WORKS FOR MOST OF THE * INSTRUCTIONS. SETFLAGS MACRO MOVE SR,D1 ;ONLY INTERESTED IN THE CCR PART(PRIVILIGED ON THE 68010) ANDI.W #\1>>4+\2<<1+\3>>5+\4,D1 ;MASK IN N,Z,V,C EFFECTED FLAGS ONLY ANDI.B #255-(\1+\2+\3+\4),FLAGS ;CLEAR FLAGS EFFECTED BY INSTRUCTION OR.B 0(A3,D1.W),FLAGS ;OR IN FLAG CHANGES (VALUES TAKEN FROM FLAGTABLE) ENDM * MACRO TEST1 WILL CHECK TO SEE IF CARRY IS SET OR NOT AS THERE IS NO * ADC OR SBC INSTRUCTION ON THE 6800 AND WILL ADD 1 TO COMPENSATE * IT WILL ALSO CHECK TO SEE IF WE ARE IN DECIMAL MODE AND IF SO WILL * CARRY OUT ABCD INSTRUCTIONS TEST1 MACRO MOVE.W #%00000100,D0 ;SET Z FLAG POSITION IN D0 BTST #CB,FLAGS BEQ.S 3$ ;NO CARRY TO ADD MOVE.W #%00010100,D0 ;68000 EXTEND BIT PLUS SET ZERO BIT 3$ BTST #DB,FLAGS BNE.S 2$ ;IN DECIMAL MODE ENDM * SAME AS ABOVE BUT FOR SBC OPCODES WHERE WE SUB THE CARRY INSTEAD * OF ADDING IT TEST2 MACRO MOVE.W #%00010100,D0 ;XBIT PLUS ZERO BIT SET BTST #CB,FLAGS BEQ.S 3$ MOVE.W #%00000100,D0 ;ONLY SET ZERO READY FOR ADDX 3$ BTST #DB,FLAGS BNE.S 2$ ;IN DECIMAL MODE ENDM * THE FOLLOWING MACROS CREATE THE ADDRESSING MODES USED BY THE 6502 * WHERE ITS WORTH THE EFFORT TO DO SO. * D6 OR D7 ARE USED TO POINT TO THE MEMORY LOCATION WE ARE INTERESTED IN * WHICH WE ACCESS BY ADDING IN THE VALUE 'OFF' WHICH IS IN FACT * ADDRESS 0 AS REGUARDS THE 6502 ZEROPAGE MACRO CLR.L D6 MOVE.B 1(PRC,OFF.L),D6 ;PICK UP ZEROPAGE OFFSET ENDM ZEROPAGEX MACRO ZEROPAGE ; ZEROPAGE OFFSET ADD.B X,D6 ;ADD IN X OFFSET ENDM ABS MACRO CLR.L D6 MOVE.B 2(PRC,OFF.L),D6 ;PICK UP MSB OF ADDRESS ASL.W #8,D6 ;MOVE INTO MSB POSITION MOVE.B 1(PRC,OFF.L),D6 ;PICK UP LSB OF ADDRESS ENDM ABSX MACRO ABS ;ABSOLUTE ADDRESS ADD.W X,D6 ;ADD IN X OFFSET ENDM ABSY MACRO ABS ;ABSOLUTE ADDRESS ADD.W Y,D6 ;ADD IN Y OFFSET ENDM INDIRECTX MACRO CLR.L D7 ZEROPAGEX ;PICK UP ZEROPAGE + X OFFSET IN D6 MOVE.B 1(OFF,D6.L),D7 ;PICK UP MSB OF ADDRESS ASL.W #8,D7 ;MOVE UP TO MSB POSITION MOVE.B 0(OFF,D6.L),D7 ;PICK UP LSB OF ADDRESS ENDM INDIRECTY MACRO CLR.L D7 ZEROPAGE ;PICK UP ZEROPAGE OFFSET IN D6 MOVE.B 1(OFF,D6.L),D7 ;PICK UP MSB OF ADDRESS ASL.W #8,D7 ;MOVE INTO MSB POSITION MOVE.B 0(OFF,D6.L),D7 ;PICK UP LSB OF ADDRESS ADD.W Y,D7 ;ADD IN Y OFFSET ENDM * THIS NEXT MACRO ADDS THE APPROPRIATE AMOUNT TO THE 6502 PC * AND THEN DOES A RTS RET MACRO ADDQ.W #\1,PRC ;ADD IN THE ARGUMENT TO THE 6502 PC RTS ENDM * THIS ONE SAVES TYPING SOME OF THE ASL CODE ASL_ MACRO MOVE.B 0(OFF,D6.L),D7 ;BYTE TO BE SHIFTED AS CANT SHIFT BYTE IN MEMORY ASL.B #1,D7 ;SHIFT IT SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;PUT SHIFTED BYTE INTO MEMORY (AFTER FLAG CHANGES) ENDM * THIS ONE SAVES TYPING SOME OF THE LSR CODE LSR_ MACRO MOVE.B 0(OFF,D6.L),D7 ;BYTE TO BE SHIFTED AS CANT SHIFT BYTE IN MEMORY LSR.B #1,D7 ;SHIFT IT SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;PUT SHIFTED BYTE INTO MEMORY (AFTER FLAG CHANGES) ENDM * BRANCH MACROS, ONLY THE CONDITION CHANGES SO MAKE THEM PARAMETERS BRANCH MACRO ADDQ.W #2,PRC ;UPDATE PC TO POINT TO NEXT INSTRUCTION BTST #\1,FLAGS ;CHECK RELEVANT BIT \2.S 1$ ;WILL BE BEQ OR BNE CLR.L D6 MOVE.B -1(PRC,OFF.L),D6 ;PICK UP BRANCH OFFSET EXT.W D6 ;EXTEND TO GIVE FWD AND BACKWARD BRANCHES ADD.W D6,PRC ;NEW PC VALUE 1$ RTS ENDM ************************************************************ * * CODE STARTS HERE FOLKS * ************************************************************ START MOVE.L 4(SP),A0 ;BASE PAGE START MOVE.L A0,A6 ;SAVE BASE PAGE MOVE.L $C(A0),D0 ;LENGTH OF PROG AREA ADD.L $14(A0),D0 ;LENGTH OF DATA AREA ADD.L $1C(A0),D0 ;LENGTH OF BSS AREA ADD.L #$100,D0 ;ADD IN BASE PAGE LENGTH MOVE.L D0,-(SP) ;LENGTH OF AREA TO BE RESERVED MOVE.L A0,-(SP) ;START OF CODE CLR.W -(SP) ;HAS TO BE THERE MOVE.W #$4A,-(SP) ;RESERVE MEMORY TRAP #1 LEA 12(SP),SP ;TIDY STACK MOVE.L #$10000,-(SP) ;ASK FOR 64K MOVE.W #$48,(SP) TRAP #1 ADDQ.L #6,SP TST.L D0 BPL.S OK ;NO ERROR MOVE.L #NOROOMTEXT,-(SP) MOVE.W #9,-(SP) ;PRINT ERROR STRING TRAP #1 ADDQ.L #6,SP CLR.L D0 1$ SUBQ.L #1,D0 BNE.S 1$ ;WAIT A BIT BEFORE EXIT CLR.W -(SP) TRAP #1 ;EXIT BACK TO DESKTOP NOROOMTEXT DC.B 13,10,10,"******* OUT OF MEMORY!! TERMINATING ******",0 CNOP 0,2 BSS ZERO6502 DS.L 1 SAVESSP DS.L 1 TEXT OK MOVE.L D0,ZERO6502 ;SAVE START ADDRESS OF 6502 ADDRESS 0 * LOAD CODE FROM DISK LEA 129(A6),A6 ;POINTER TO COMMAND TAIL,SHOULD BE A VALID FILENAME MOVE.L A6,D6 MOVE.L ZERO6502,D7 ADD.L #$8000,D7 ;WHERE THE CODE IS GOING BSR.S LDISK ;LOAD PROG FROM DISK BRA CONT ;CONTINUE WITH PROGRAM LDISK MOVE.W #2,-(SP) ;R/W ENABLE MOVE.L D6,-(SP) ;FILENAME MOVE.W #$3D,-(SP) TRAP #1 ;OPEN FILE ADDQ.L #8,SP ;TIDY STACK TST.W D0 BMI.S 1$ ;ERROR MOVE.L D7,-(SP) ;WHERE THE CODE IS GOING MOVE.L #$4000,-(SP) ;LENGTH OF CODE MOVE.W D0,-(SP) ;HANDLE PASSED FROM 'OPEN FILE' MOVE.W #$3F,-(SP) ;READ FILE TRAP #1 ADD.L #12,SP ;TIDY STACK TST.L D0 BPL.S 2$ ;NO ERROR 1$ MOVE.L #FERROR,-(SP) MOVE.W #9,-(SP) TRAP #1 ;PRINT FILE ERROR STRING ADDQ.L #6,SP BRA EXIT ;LEAVE 2$ RTS FERROR DC.B 13,10,10,"******* FILE ERROR- TERMINATING ******",0 CNOP 0,2 TITLE DC.B " 6502 EMULATOR BY TIM TITCHMARSH 1987",13,10,10,0 CNOP 0,2 * NOW SET UP SCREEN BEFORE WE START CONT MOVE.W #4,-(SP) TRAP #14 ;GET SCREEN RES ADDQ.L #2,SP ;TIDY STACK MOVE.W D0,RES ;SAVE RES MOVE.W #2,D1 ;OUTPUT DEVICE MOVE.W #ESC,D0 BSR OUTCHAR ;ESC CODE MOVE.W #"v",D0 BSR OUTCHAR ;SET LINE OVERFLOW ON MOVE.W #ESC,D0 BSR OUTCHAR MOVE.W #"c",D0 ;BACKGROUND COLOUR BSR OUTCHAR MOVE.W #1,D0 BSR OUTCHAR ;PAPER BLACK MOVE.W #ESC,D0 BSR OUTCHAR MOVE.W #"b",D0 BSR OUTCHAR ;SET INK MOVE.W #0,D0 BSR OUTCHAR ;INK WHITE MOVE.W #ESC,D0 BSR OUTCHAR MOVE.W #"E",D0 BSR OUTCHAR ;CLS MOVE.W #ESC,D0 BSR OUTCHAR MOVE.W #"e",D0 BSR OUTCHAR ;TURN ON CURSOR MOVE.L #TITLE,-(SP) MOVE.W #9,-(SP) TRAP #1 ;PRINT TITLE ADDQ.L #6,SP * NOW SET REGISTERS MOVEQ.L #1,A ;BBC BASIC REQUIRES A TO HOLD 1 ON CALLING $8000 MOVEQ.L #0,X MOVEQ.L #0,Y MOVEQ.L #0,FLAGS MOVE.L #$8000,PRC ;PC= START OF CODE MOVE.L ZERO6502,OFF ;OFF = ZERO6502 USED AS BASE POINTER (ADDRESS 0 FOR 6502) MOVE.L #FLAGTAB,A3 ;FLAGTABLE (16 BYTES LONG) MOVE.L ZERO6502,STK ADD.L #$1FF,STK ;STK = TOP OF PAGE1 IN 6502 * NOW START EMULATING THE CODE EMULATE LEA JMPTAB,A0 SUB.L D0,D0 ;CLEAR D0 MOVE.B 0(PRC,OFF.L),D0 ;PICK UP OP CODE ASL.W #2,D0 ;TIMES 4 ADD.L D0,A0 ;ADD IN OFFSET MOVE.L (A0),A0 JSR (A0) ;SERVICE IT BRA.S EMULATE EXIT MOVE.L ZERO6502,-(SP) ;START OF MEMORY REQUESTED MOVE.W #$49,-(SP) TRAP #1 ;FREE MEMORY ADDQ.L #6,SP CLR.W -(SP) TRAP #1 ;BACK TO DESKTOP * FLAGTAB HOLDS THE 6502 EQUIVALENT OF THE 68000 FLAGS ARRANGED * IN A TABLE * NVXXXXZC DATA FLAGTAB DC.B %00000000 DC.B %00000001 DC.B %01000000 DC.B %01000001 DC.B %00000010 DC.B %00000011 DC.B %01000010 DC.B %01000011 DC.B %10000000 DC.B %10000001 DC.B %11000000 DC.B %11000001 DC.B %10000010 DC.B %10000011 DC.B %11000010 DC.B %11000011 * JUMP TABLE FOR EVERY 6502 INSTRUCTION EACH ENTRY IS 4 BYTES LONG * UNUSED OPCODES ARE DIRECTED TO A 'NOTUSED' ROUTINE JMPTAB DC.L BRK 0 DC.L ORAIX 1 DC.L NU 2 DC.L NU 3 DC.L NU 4 DC.L ORZ 5 DC.L ASLZ 6 DC.L NU 7 DC.L PHP 8 DC.L ORAI 9 DC.L ASLAC 0A DC.L NU 0B DC.L NU 0C DC.L ORA 0D DC.L ASLA OE DC.L NU OF DC.L BPLL 10 DC.L ORAIY 11 DC.L NU 12 DC.L NU 13 DC.L NU 14 DC.L ORZX 15 DC.L ASLZX 16 DC.L NU 17 DC.L CLC 18 DC.L ORAAY 19 DC.L NU 1A DC.L NU 1B DC.L NU 1C DC.L ORAX 1D DC.L ASLAX 1E DC.L NU 1F DC.L JSRR 20 DC.L ANDIX 21 DC.L NU 22 DC.L NU 23 DC.L BITZ 24 DC.L ANDZ 25 DC.L ROLZ 26 DC.L NU 27 DC.L PLP 28 DC.L ANDII 29 DC.L ROLAC 2A DC.L NU 2B DC.L BITA 2C DC.L ANDA 2D DC.L ROLA 2E DC.L NU 2F DC.L BMII 30 DC.L ANDIY 31 DC.L NU 32 DC.L NU 33 DC.L NU 34 DC.L ANDZX 35 DC.L ROLZX 36 DC.L NU 37 DC.L SEC 38 DC.L ANDAY 39 DC.L NU 3A DC.L NU 3B DC.L NU 3C DC.L ANDAX 3D DC.L ROLAX 3E DC.L NU 3F DC.L RTI 40 DC.L EORIX 41 DC.L NU 42 DC.L NU 43 DC.L NU 44 DC.L EORZ 45 DC.L LSRZ 46 DC.L NU 47 DC.L PHA 48 DC.L EORII 49 DC.L LSRAC 4A DC.L NU 4B DC.L JMPA 4C DC.L EORA 4D DC.L LSRA 4E DC.L NU 4F DC.L BVCC 50 DC.L EORIY 51 DC.L NU 52 DC.L NU 53 DC.L NU 54 DC.L EORZX 55 DC.L LSRZX 56 DC.L NU 57 DC.L CLI 58 DC.L EORAY 59 DC.L NU 5A DC.L NU 5B DC.L NU 5C DC.L EORAX 5D DC.L LSRAX 5E DC.L NU 5F DC.L RTSS 60 DC.L 61 DC.L NU 62 DC.L NU 63 DC.L NU 64 DC.L ADCZ 65 DC.L RORZ 66 DC.L NU 67 DC.L PLA 68 DC.L ADCI 69 DC.L RORAC 6A DC.L NU 6B DC.L JMPI 6C DC.L ADCA 6D DC.L RORA 6E DC.L NU 6F DC.L BVSS 70 DC.L ADCIY 71 DC.L NU 72 DC.L NU 73 DC.L NU 74 DC.L ADCZX 75 DC.L RORZX 76 DC.L NU 77 DC.L SEI 78 DC.L ADCAY 79 DC.L NU 7A DC.L NU 7B DC.L NU 7C DC.L ADCAX 7D DC.L RORAX 7E DC.L NU 7F DC.L NU 80 DC.L STAIX 81 DC.L NU 82 DC.L NU 83 DC.L STYZ 84 DC.L STAZ 85 DC.L STXZ 86 DC.L NU 87 DC.L DEY 88 DC.L NU 89 DC.L TXA 8A DC.L NU 8B DC.L STYA 8C DC.L STAA 8D DC.L STXA 8E DC.L NU 8F DC.L BCCC 90 DC.L STAIY 91 DC.L NU 92 DC.L NU 93 DC.L STYZX 94 DC.L STAZX 95 DC.L STXZY 96 DC.L NU 97 DC.L TYA 98 DC.L STAAY 99 DC.L TXS 9A DC.L NU 9B DC.L NU 9C DC.L STAAX 9D DC.L NU 9E DC.L NU 9F DC.L LDYI A0 DC.L LDAIX A1 DC.L LDXI A2 DC.L NU A3 DC.L LDYZ A4 DC.L LDAZ A5 DC.L LDXZ A6 DC.L NU A7 DC.L TAY A8 DC.L LDAI A9 DC.L TAX AA DC.L NU AB DC.L LDYA AC DC.L LDAA AD DC.L LDXA AE DC.L NU AF DC.L BCSS B0 DC.L LDAIY B1 DC.L NU B2 DC.L NU B3 DC.L LDYZX B4 DC.L LDAZX B5 DC.L LDXZY B6 DC.L NU B7 DC.L CLV B8 DC.L LDAAY B9 DC.L TSX BA DC.L NU BB DC.L LDYAX BC DC.L LDAAX BD DC.L LDXAY BE DC.L NU BF DC.L CPYI C0 DC.L CMPIX C1 DC.L NU C2 DC.L NU C3 DC.L CPYZ C4 DC.L CMPZ C5 DC.L DECZ C6 DC.L NU C7 DC.L INY C8 DC.L CMPII C9 DC.L DEX CA DC.L NU CB DC.L CPYA CC DC.L CMPAA CD DC.L DECA CE DC.L NU CF DC.L BNEE D0 DC.L CMPIY D1 DC.L NU D2 DC.L NU D3 DC.L NU D4 DC.L CMPZX D5 DC.L DECZX D6 DC.L NU D7 DC.L CLD D8 DC.L CMPAY D9 DC.L NU DA DC.L NU DB DC.L NU DC DC.L CMPAX DD DC.L DECAX DE DC.L NU DF DC.L CPXI EO DC.L SBCIX E1 DC.L NU E2 DC.L NU E3 DC.L CPXZ E4 DC.L SBCZ E5 DC.L INCZ E6 DC.L NU E7 DC.L INX E8 DC.L SBCI E9 DC.L NOPP EA DC.L NU EB DC.L CPXA EC DC.L SBCA ED DC.L INCA EE DC.L NU EF DC.L BEQQ FO DC.L SBCIY F1 DC.L NU F2 DC.L NU F3 DC.L NU F4 DC.L SBCZX F5 DC.L INCZX F6 DC.L NU F7 DC.L SED F8 DC.L SBCAY F9 DC.L NU FA DC.L NU FB DC.L NU FC DC.L SBCAX FD DC.L INCAX FE DC.L NU FF PAGE ;PRINT NEW PAGE TEXT ;CODE SECTION ********** NOTUSED ********************** * * ALL OF THE UNUSED OPCODES ARE SENT HERE FOR NOW * AND THE PC IS INCREMENTED ONCE. SHOULD NEVER GET HERE * IF THE PROGRAM IS CORRECT NU RET 1 ******************************************* *********** ADC IMMEDIATE $69 *********** ADCI TEST1 MOVE.B 1(PRC,OFF.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ;SET ZERO AND MAYBE X BITS ADDX.B D1,A ;CAN ONLY USE DATA REGISTERS SETFLAGS N,Z,V,C RET 2 2$ MOVE.B 1(PRC,OFF.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ;SET ZERO AND MAYBE X BITS ABCD.B D1,A ;CAN ONLY USE DATA REGISTERS SETFLAGS 0,Z,0,C ;CANT FULLY EMULATE FLAGS HERE RET 2 ******************************************* ********** ADC ZEROPAGE $65 ************ ADCZ TEST1 ZEROPAGE MOVE.B 0(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ADDX.B D1,A SETFLAGS N,Z,V,C RET 2 2$ ZEROPAGE MOVE.B 1(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ;SET ZERO AND MAYBE X BITS ABCD.B D1,A ;CAN ONLY USE DATA REGISTERS SETFLAGS 0,Z,0,C ;CANT FULLY EMULATE FLAGS HERE RET 2 ******************************************* ********** ADC ZEROPAGE,X $75 ********** ADCZX TEST1 ZEROPAGEX MOVE.B 0(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ADDX.B D1,A SETFLAGS N,Z,V,C RET 2 2$ ZEROPAGEX MOVE.B 1(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ;SET ZERO AND MAYBE X BITS ABCD.B D1,A ;CAN ONLY USE DATA REGISTERS SETFLAGS 0,Z,0,C ;CANT FULLY EMULATE FLAGS HERE RET 2 ******************************************* ********** ADC ABSOLUTE $6D ************ ADCA TEST1 ABS MOVE.B 0(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ADDX.B D1,A SETFLAGS N,Z,V,C RET 3 2$ ABS MOVE.B 1(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ;SET ZERO AND MAYBE X BITS ABCD.B D1,A ;CAN ONLY USE DATA REGISTERS SETFLAGS 0,Z,0,C ;CANT FULLY EMULATE FLAGS HERE RET 3 ******************************************* ********** ADC ABSOLUTE,X $7D ********** ADCAX TEST1 ABSX MOVE.B 0(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ADDX.B D1,A SETFLAGS N,Z,V,C RET 3 2$ ABSX MOVE.B 1(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ;SET ZERO AND MAYBE X BITS ABCD.B D1,A ;CAN ONLY USE DATA REGISTERS SETFLAGS 0,Z,0,C ;CANT FULLY EMULATE FLAGS HERE RET 3 ******************************************* ********** ADC ABSOLUTE,Y $79 ********** ADCAY TEST1 ABSY MOVE.B 0(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ADDX.B D1,A SETFLAGS N,Z,V,C RET 3 2$ ABSY MOVE.B 1(OFF,D6.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ;SET ZERO AND MAYBE X BITS ABCD.B D1,A ;CAN ONLY USE DATA REGISTERS SETFLAGS 0,Z,0,C ;CANT FULLY EMULATE FLAGS HERE RET 3 ******************************************* ********** ADC (INDIRECT ,X) $61 ******* ADCIX TEST1 INDIRECTX MOVE.B 0(OFF,D7.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ADDX.B D1,A SETFLAGS N,Z,V,C RET 2 2$ INDIRECTX MOVE.B 1(OFF,D7.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ;SET ZERO AND MAYBE X BITS ABCD.B D1,A ;CAN ONLY USE DATA REGISTERS SETFLAGS 0,Z,0,C ;CANT FULLY EMULATE FLAGS HERE RET 2 ******************************************* ********** ADC (INDIRECT ),Y $71 ******* ADCIY TEST1 INDIRECTY MOVE.B 0(OFF,D7.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ADDX.B D1,A SETFLAGS N,Z,V,C RET 2 2$ INDIRECTY MOVE.B 1(OFF,D7.L),D1 ;DATA TO BE ADDED MOVE.W D0,CCR ;SET ZERO AND MAYBE X BITS ABCD.B D1,A ;CAN ONLY USE DATA REGISTERS SETFLAGS 0,Z,0,C ;CANT FULLY EMULATE FLAGS HERE RET 2 ******************************************* *********** AND IMMEDIATE $29 *********** ANDII AND.B 1(PRC,OFF.L),A ;AND IN DATA SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** AND ZEROPAGE $25 ************ ANDZ ZEROPAGE AND.B 0(OFF,D6.L),A ;AND IN VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** AND ZEROPAGE,X $35 ********** ANDZX ZEROPAGEX AND.B 0(OFF,D6.L),A ;AND IN VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** AND ABSOLUTE $2D ************ ANDA ABS AND.B 0(OFF,D6.L),A ;AND IN DATA SETFLAGS N,Z,0,0 RET 3 ******************************************* ********** AND ABSOLUTE,X $3D ********** ANDAX ABSX AND.B 0(OFF,D6.L),A ;AND IN VALUE SETFLAGS N,Z,0,0 RET 3 ******************************************* ********** AND ABSOLUTE,Y $39 ********** ANDAY ABSY AND.B 0(OFF,D6.L),A ;AND IN VALUE SETFLAGS N,Z,0,0 RET 3 ******************************************* ********** AND (INDIRECT ,X) $21 ******* ANDIX INDIRECTX AND.B 0(OFF,D7.L),A ;AND IN DATA SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** AND (INDIRECT ),Y $31 ******** ANDIY INDIRECTY AND.B 0(OFF,D7.L),A ;AND IN VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************** *********** CMP IMMEDIATE $C9 ************ CMPII CMP.B 1(PRC,OFF.L),A ;CMP DATA SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 ACTION RET 2 ******************************************** ********** CMP ZEROPAGE $C5 ************* CMPZ ZEROPAGE CMP.B 0(OFF,D6.L),A ;CMP VALUE SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 2 ******************************************** ********** CMP ZEROPAGE,X $D5 *********** CMPZX ZEROPAGEX CMP.B 0(OFF,D6.L),A ;CMP VALUE SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 2 ******************************************** ********** CMP ABSOLUTE $CD ************* CMPAA ABS CMP.B 0(OFF,D6.L),A ;CMP DATA SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 3 ******************************************** ********** CMP ABSOLUTE,X $DD *********** CMPAX ABSX CMP.B 0(OFF,D6.L),A ;CMP VALUE SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 3 ******************************************** ********** CMP ABSOLUTE,Y $D9 *********** CMPAY ABSY CMP.B 0(OFF,D6.L),A ;CMP VALUE SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 3 ******************************************** ********** CMP (INDIRECT ,X) $C1 ******** CMPIX INDIRECTX CMP.B 0(OFF,D7.L),A ;CMP DATA SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 2 ******************************************** ********** CMP (INDIRECT ),Y $D1 ******** CMPIY INDIRECTY CMP.B 0(OFF,D7.L),A ;CMP VALUE SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 2 ******************************************** *********** EOR IMMEDIATE $49 ************ EORII MOVE.B 1(PRC,OFF.L),D6 ;PICK UP DATA EOR.B D6,A ;EOR BYTE ;CAN ONLY EOR TO A DATA REG SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** EOR ZEROPAGE $45 ************* EORZ ZEROPAGE MOVE.B 0(OFF,D6.L),D6 EOR.B D6,A ;EOR BYTE SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** EOR ZEROPAGE,X $55 *********** EORZX ZEROPAGEX MOVE.B 0(OFF,D6.L),D6 ;PICK UP BYTE EOR.B D6,A ;EOR BYTE SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** EOR ABSOLUTE $4D ************* EORA ABS MOVE.B 0(OFF,D6.L),D6 EOR.B D6,A ;EOR BYTE SETFLAGS N,Z,0,0 RET 3 ******************************************** ********** EOR ABSOLUTE,X $5D *********** EORAX ABSX MOVE.B 0(OFF,D6.L),D6 EOR.B D6,A ;EOR BYTE SETFLAGS N,Z,0,0 RET 3 ******************************************** ********** EOR ABSOLUTE,Y $59 *********** EORAY ABSY MOVE.B 0(OFF,D6.L),D6 EOR.B D6,A SETFLAGS N,Z,0,0 RET 3 ******************************************** ********** EOR (INDIRECT ,X) $41 ******** EORIX INDIRECTX MOVE.B 0(OFF,D7.L),D6 EOR.B D6,A ;EOR IN DATA SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** EOR (INDIRECT ),Y $51 ******** EORIY INDIRECTY MOVE.B 0(OFF,D7.L),D6 EOR.B D6,A ;EOR IN VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************** *********** LDA IMMEDIATE $A9 *********** LDAI MOVE.B 1(PRC,OFF.L),A ;LDA IN DATA SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** LDA ZEROPAGE $A5 ************* LDAZ ZEROPAGE MOVE.B 0(OFF,D6.L),A ;LDA IN VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** LDA ZEROPAGE,X $B5 *********** LDAZX ZEROPAGEX MOVE.B 0(OFF,D6.L),A ;LDA WITH VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** LDA ABSOLUTE $AD ************* LDAA ABS MOVE.B 0(OFF,D6.L),A ;LDA WITH DATA SETFLAGS N,Z,0,0 RET 3 ******************************************** ********** LDA ABSOLUTE,X $BD *********** LDAAX ABSX MOVE.B 0(OFF,D6.L),A ;LDA WITH VALUE SETFLAGS N,Z,0,0 RET 3 ******************************************** ********** LDA ABSOLUTE,Y $B9 *********** LDAAY ABSY MOVE.B 0(OFF,D6.L),A ;LDA WITH VALUE SETFLAGS N,Z,0,0 RET 3 ******************************************** ********** LDA (INDIRECT ,X) $A1 ******** LDAIX INDIRECTX MOVE.B 0(OFF,D7.L),A ;LDA WITH DATA SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** LDA (INDIRECT ),Y $B1 ******** LDAIY INDIRECTY MOVE.B 0(OFF,D7.L),A ;LDA WITH VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************** *********** ORA IMMEDIATE $9 ************* ORAI OR.B 1(PRC,OFF.L),A ;OR IN DATA SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** OR ZEROPAGE $5 *************** ORZ ZEROPAGE OR.B 0(OFF,D6.L),A ;OR IN VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** OR ZEROPAGE,X $15 ************ ORZX ZEROPAGEX OR.B 0(OFF,D6.L),A ;OR IN VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** OR ABSOLUTE $D *************** ORA ABS OR.B 0(OFF,D6.L),A ;OR IN DATA SETFLAGS N,Z,0,0 RET 3 ******************************************** ********** OR ABSOLUTE,X $1D ************ ORAX ABSX OR.B 0(OFF,D6.L),A ;ORA IN VALUE SETFLAGS N,Z,0,0 RET 3 ******************************************** ********** ORA ABSOLUTE,Y $19 *********** ORAAY ABSY OR.B 0(OFF,D6.L),A ;ORA IN VALUE SETFLAGS N,Z,0,0 RET 3 ******************************************** ********** ORA (INDIRECT ,X) $1 ********* ORAIX INDIRECTX OR.B 0(OFF,D7.L),A ;ORA IN DATA SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** ORA (INDIRECT ),Y $11 ******** ORAIY INDIRECTY OR.B 0(OFF,D7.L),A ;ORA IN VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************** *********** SBC IMMEDIATE $E9 ************ SBCI TEST2 MOVE.B 1(PRC,OFF.L),D1 ;DATA TO BE SUB MOVE.W D0,CCR SUBX.B D1,A SETFLAGS N,Z,V,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 2$ MOVE.B 1(PRC,OFF.L),D1 ;DATA TO BE SUB MOVE.W D0,CCR SBCD D1,A SETFLAGS 0,Z,0,C ;CANT SET FLAGS PROPERLY EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 ******************************************** ********** SBC ZEROPAGE $E5 ************* SBCZ TEST2 ZEROPAGE MOVE.B 0(OFF,D6.L),D1 MOVE.W D0,CCR SUBX.B D1,A SETFLAGS N,Z,V,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 2$ ZEROPAGE MOVE.B 0(OFF,D6.L),D1 MOVE.W D0,CCR SBCD D1,A SETFLAGS 0,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 ******************************************** ********** SBC ZEROPAGE,X $F5 *********** SBCZX TEST2 ZEROPAGEX MOVE.B 0(OFF,D6.L),D1 ;SUB VALUE MOVE.W D0,CCR SUBX.B D1,A SETFLAGS N,Z,V,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 2$ ZEROPAGEX MOVE.B 0(OFF,D6.L),D1 MOVE.W D0,CCR SBCD D1,A SETFLAGS 0,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 ******************************************** ********** SBC ABSOLUTE $ED ************* SBCA TEST2 ABS MOVE.B 0(OFF,D6.L),D1 MOVE.W D0,CCR SUBX.B D1,A SETFLAGS N,Z,V,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 3 2$ ABS MOVE.B 0(OFF,D6.L),D1 MOVE.W D0,CCR SBCD D1,A SETFLAGS 0,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 3 ******************************************** ********** SBC ABSOLUTE,X $FD *********** SBCAX TEST2 ABSX MOVE.B 0(OFF,D6.L),D1 ;SUB VALUE MOVE.W D0,CCR SUBX.B D1,A SETFLAGS N,Z,V,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 3 2$ ABSX MOVE.B 0(OFF,D6.L),D1 MOVE.W D0,CCR SBCD D1,A SETFLAGS 0,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 3 ******************************************** ********** SBC ABSOLUTE,Y $F9 *********** SBCAY TEST2 ABSY MOVE.B 0(OFF,D6.L),D1 ; VALUE MOVE.W D0,CCR SUBX.B D1,A SETFLAGS N,Z,V,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 3 2$ ABSY MOVE.B 0(OFF,D6.L),D1 MOVE.W D0,CCR SBCD D1,A SETFLAGS 0,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 3 ******************************************** ********** SBC (INDIRECT ,X) $E1 ******** SBCIX TEST2 INDIRECTX MOVE.B 0(OFF,D7.L),D1 ;SUB DATA MOVE.W D0,CCR SUBX.B D1,A SETFLAGS N,Z,V,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 2$ INDIRECTX MOVE.B 0(OFF,D7.L),D1 MOVE.W D0,CCR SBCD D1,A SETFLAGS 0,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 ******************************************** ********** SBC (INDIRECT ),Y $F1 ******** SBCIY TEST2 INDIRECTY MOVE.B 0(OFF,D7.L),D1 ;SUB VALUE MOVE.W D0,CCR SUBX.B D1,A SETFLAGS N,Z,V,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 2$ INDIRECTY MOVE.B 0(OFF,D7.L),D1 MOVE.W D0,CCR SBCD D1,A SETFLAGS 0,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 RET 2 ******************************************** ********** STA ZEROPAGE $85 ************* STAZ ZEROPAGE MOVE.B A,0(OFF,D6.L) ;STORE A RET 2 ******************************************** ********** STA ZEROPAGE,X $95 *********** STAZX ZEROPAGEX MOVE.B A,0(OFF,D6.L) ;STORE A RET 2 ******************************************** ********** STA ABSOLUTE $8D ************* STAA ABS MOVE.B A,0(OFF,D6.L) ;STORE A RET 3 ******************************************** ********** STA ABSOLUTE,X $9D *********** STAAX ABSX MOVE.B A,0(OFF,D6.L) ;STORE A RET 3 ******************************************** ********** STA ABSOLUTE,Y $99 *********** STAAY ABSY MOVE.B A,0(OFF,D6.L) ;STORE A RET 3 ******************************************** ********** STA (INDIRECT ,X) $81 ******** STAIX INDIRECTX MOVE.B A,0(OFF,D7.L) ;STORE A RET 2 ******************************************** ********** STA (INDIRECT ),Y $91 ******** STAIY INDIRECTY MOVE.B A,0(OFF,D7.L) ;STORE A RET 2 ******************************************** *********** ASL ACCUMULATOR $0A ********* ASLAC ASL.B #1,A ;ASL A SETFLAGS N,Z,0,C RET 1 ******************************************* ********** ASL ZEROPAGE $6 ************* ASLZ ZEROPAGE ASL_ RET 2 ******************************************* ********** ASL ZEROPAGE,X $16 ********** ASLZX ZEROPAGEX ASL_ RET 2 ******************************************* ********** ASL ABSOLUTE $E ************* ASLA ABS ASL_ RET 3 ******************************************* ********** ASL ABSOLUTE,X $1E ********** ASLAX ABSX ASL_ RET 3 ******************************************* ********** BIT ZEROPAGE $24 ************ BITZ ZEROPAGE MOVE.B 0(OFF,D6.L),D6 ;VALUE IN D6 MOVE.B A,D7 ;SAVE A AS WE DONT CORRUPT IT WITH THE 'AND' AND.B D6,A ;AND TO EFFECT ZERO FLAG BNE.S 1$ BSET #ZB,FLAGS ;SET ZEROFLAG BRA.S 2$ 1$ BCLR #ZB,FLAGS ;CLEAR ZERO 2$ AND.B #N+V,D6 ;MASK IN N AND V BITS AND.B #$3F,FLAGS ;MASK OUT N AND V FLAGS OR.B D6,FLAGS ;COPY BIT 6 AND BIT 7 OF DATA INTO N AND V FLAGS MOVE.B D7,A ;RESTORE A RET 2 ******************************************* ********** BIT ABSOLUTE $2C *********** BITA ABS MOVE.B 0(OFF,D6.L),D6 ;DATA IN D6 MOVE.B A,D7 ;SAVE A AS WE DONT WANT TO CORRUPT AND.B D6,A ;AND TO EFFECT ZERO FLAG BNE.S 1$ BSET #ZB,FLAGS ;SET ZEROFLAG BRA.S 2$ 1$ BCLR #ZB,FLAGS ;CLEAR ZERO 2$ AND.B #N+V,D6 ;MASK IN N AND V FLAGS AND.B #$3F,FLAGS ;MASK OUT N AND V FLAGS OR.B D6,FLAGS ;COPY BIT 6 AND BIT 7 OF DATA INTO N AND V FLAGS MOVE.B D7,A ;RESTORE A RET 3 ******************************************* ********** BRK 0 *********************** * CONFIGURED AT THE MOMENT TO HANDLE BBC BREAK EFFECTS BRK MOVE.L PRC,D6 ROR.W #8,D6 MOVE.B D6,(STK) ;PUSH PCH SUBQ.W #1,STK ;DEC SP ROR.W #8,D6 ;MOVE DOWN MSB MOVE.B D6,(STK) ;PUSH PCL SUBQ.W #1,STK ;DEC SP MOVE.B FLAGS,(STK) ;PUSH FLAGS SUBQ.W #1,STK ADDQ.W #1,D6 ;POINT TO BYTE AFTER BRK MOVE.B D6,$FD(OFF) ;PUT ADDRESS OF BYTE AFTER BRK INTO $FD,$FE ROR.W #8,D6 ;MOVE DOWN MSB INTO LSB MOVE.B D6,$FE(OFF) ;STORE IN MSB ADDQ.W #2,PRC ;ON THE BBC THE BRK IS TAKEN AS A TWO BYTE INSTRUCTION MOVE.B $203(OFF),D6 ;PICK UP MSB OF BREAK VECTOR ASL.W #8,D6 ;MOVE UP TO MSB MOVE.B $202(OFF),D6 ;PICK UP LSB OF VECTOR MOVE.L D6,PRC ;PRC NOW POINTS TO BREAK ROUTINE RTS ******************************************* ********** CLC $18 ********************* CLC AND.B #%11111110,FLAGS ;CLEAR CARRY RET 1 ******************************************* ********** CLD $D8 ********************* CLD AND.B #%11110111,FLAGS ;CLEAR DECIMAL RET 1 ******************************************* ********** CLI $58 ********************* CLI AND.B #%11111011,FLAGS ;CLEAR INTERRUPT MASK RET 1 ******************************************* ********** CLV $B8 ********************* CLV AND.B #%10111111,FLAGS ;CLEAR V FLAG RET 1 ******************************************* *********** CPX IMMEDIATE $EO *********** CPXI CMP.B 1(PRC,OFF.L),X ;CMP DATA SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 ACTION RET 2 ******************************************* ********** CPX ZEROPAGE $E4 ************ CPXZ ZEROPAGE CMP.B 0(OFF,D6.L),X ;CMP VALUE SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 2 ******************************************* ********** CPX ABSOLUTE $EC ************ CPXA ABS CMP.B 0(OFF,D6.L),X ;CMP DATA SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 3 ******************************************* *********** CPY IMMEDIATE $CO *********** CPYI CMP.B 1(PRC,OFF.L),Y ;CMP DATA SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY AS OPPOSITE TO 68000 ACTION RET 2 ******************************************* ********** CPY ZEROPAGE $C4 ************ CPYZ ZEROPAGE CMP.B 0(OFF,D6.L),Y ;CMP VALUE SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 2 ******************************************* ********** CPY ABSOLUTE $CC ************ CPYA ABS CMP.B 0(OFF,D6.L),Y ;CMP DATA SETFLAGS N,Z,0,C EOR.B #C,FLAGS ;TOGGLE CARRY RET 3 ******************************************* ********** DEC ZEROPAGE $C6 ************ DECZ ZEROPAGE SUBQ.B #1,0(OFF,D6.L) ;DEC BYTE SETFLAGS N,Z,0,0 RET 2 ******************************************** ********** DEC ZEROPAGE,X $D6 *********** DECZX ZEROPAGEX SUBQ.B #1,0(OFF,D6.L) ;DEC BYTE SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** DEC ABSOLUTE $CE ************ DECA ABS SUBQ.B #1,0(OFF,D6.L) ;DEC BYTE SETFLAGS N,Z,0,0 RET 3 ******************************************* ********** DEC ABSOLUTE,X $DE ********** DECAX ABSX SUBQ.B #1,0(OFF,D6.L) ;DEC BYTE SETFLAGS N,Z,0,0 RET 3 ******************************************* ********** INC ZEROPAGE $E6 ************ INCZ ZEROPAGE ADDQ.B #1,0(OFF,D6.L) ;INC BYTE SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** INC ZEROPAGE,X $F6 ********** INCZX ZEROPAGEX ADDQ.B #1,0(OFF,D6.L) ;INC BYTE SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** INC ABSOLUTE $EE ************ INCA ABS ADDQ.B #1,0(OFF,D6.L) ;INC BYTE SETFLAGS N,Z,0,0 RET 3 ******************************************* ********** INC ABSOLUTE,X $FE ********** INCAX ABSX ADDQ.B #1,0(OFF,D6.L) ;INC BYTE SETFLAGS N,Z,0,0 RET 3 ******************************************* ********** DEX $CA ********************* DEX SUBQ.B #1,X DEC X SETFLAGS N,Z,0,0 RET 1 ******************************************* ********* DEY $88 ********************** DEY SUBQ.B #1,Y ;DEC Y SETFLAGS N,Z,0,0 RET 1 ******************************************* ********** INX $E8 ********************* INX ADDQ.B #1,X INC X SETFLAGS N,Z,0,0 RET 1 ******************************************* ********* INY $C8 ********************** INY ADDQ.B #1,Y ;INC Y SETFLAGS N,Z,0,0 RET 1 ******************************************* *********** LDX IMMEDIATE $A2 ********** LDXI MOVE.B 1(PRC,OFF.L),X ;LDX WITH DATA SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** LDX ZEROPAGE $A6 ************ LDXZ ZEROPAGE MOVE.B 0(OFF,D6.L),X ;LDX WITH VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** LDX ZEROPAGE,Y $B6 ********** LDXZY ZEROPAGE ADD.B Y,D6 MOVE.B 0(OFF,D6.L),X ;LDX WITH VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** LDX ABSOLUTE $AE ************ LDXA ABS MOVE.B 0(OFF,D6.L),X ;LDX WITH DATA SETFLAGS N,Z,0,0 RET 3 ******************************************* ********** LDX ABSOLUTE,Y $BE ********** LDXAY ABS ADD.W Y,D6 MOVE.B 0(OFF,D6.L),X ;LDX WITH VALUE SETFLAGS N,Z,0,0 RET 3 ******************************************* *********** LDY IMMEDIATE $A0 ********** LDYI MOVE.B 1(PRC,OFF.L),Y ;LDY WITH DATA SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** LDY ZEROPAGE $A4 ************ LDYZ ZEROPAGE MOVE.B 0(OFF,D6.L),Y ;LDY WITH VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** LDY ZEROPAGE,X $B4 ********** LDYZX ZEROPAGEX MOVE.B 0(OFF,D6.L),Y ;LDY WITH VALUE SETFLAGS N,Z,0,0 RET 2 ******************************************* ********** LDY ABSOLUTE $AC ************ LDYA ABS MOVE.B 0(OFF,D6.L),Y ;LDY WITH DATA SETFLAGS N,Z,0,0 RET 3 ******************************************* ********** LDY ABSOLUTE,X $BC ********** LDYAX ABSX MOVE.B 0(OFF,D6.L),Y ;LDY WITH VALUE SETFLAGS N,Z,0,0 RET 3 ******************************************* *********** LSR ACCUMULATOR $4A ********* LSRAC LSR.B #1,A ;LSR A SETFLAGS N,Z,0,C RET 1 ******************************************* ********** LSR ZEROPAGE $46 ************ LSRZ ZEROPAGE LSR_ RET 2 ******************************************* ********** LSR ZEROPAGE,X $56 *********** LSRZX ZEROPAGEX LSR_ RET 2 ******************************************* ********** LSR ABSOLUTE $4E ************ LSRA ABS LSR_ RET 3 ******************************************* ********** LSR ABSOLUTE,X $5E ********** LSRAX ZEROPAGEX LSR_ RET 3 ******************************************* ********** NOP $EA ********************** NOPP RET 1 ;DO NOTHING ******************************************* ********** PHA $48 ********************* PHA MOVE.B A,(STK) ;PUSH A ONTO STACK SUBQ.W #1,STK ;DEC SP RET 1 ******************************************* ********** PHP $8 ********************** PHP MOVE.B FLAGS,(STK) ;PUSH FLAGS ONTO STACK SUBQ.W #1,STK ;DEC SP RET 1 ******************************************* ********** PLA $68 ********************* PLA ADDQ.W #1,STK ;INC SP MOVE.B (STK),A ;PULL A SETFLAGS N,Z,0,0 RET 1 ******************************************* ********** PLP $28 ********************* PLP ADDQ.W #1,STK ;INC SP MOVE.B (STK),FLAGS ;PULL FLAGS RET 1 ******************************************* *********** ROL ACCUMULATOR $2A ********* ROLAC BTST #CB,FLAGS ;CHECK FOR CARRY SET BEQ.S 2$ OR.B #XX,CCR ;SET THE X BIT SO THAT WE CAN EMULATE ROL THRO CARRY ROXL.B #1,A ;DO A ROL BRA.S 1$ 2$ ASL.B #1,A ;ASL A AS NO CARRY TO MOVE IN 1$ SETFLAGS N,Z,0,C RET 1 ******************************************* ********** ROL ZEROPAGE $26 ************ ROLZ ZEROPAGE MOVE.B 0(OFF,D6.L),D7 ;PICK UP BYTE TO BE ROTATED BTST #CB,FLAGS BEQ.S 2$ OR.B #XX,CCR ;SET X FLAG ROXL.B #1,D7 BRA.S 1$ 2$ ASL.B #1,D7 ;ASL BYTE 1$ SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;STORE BACK ASL BYTE IN MEMORY(AFTER FLAGS SET) RET 2 ******************************************* ********** ROL ZEROPAGE,X $36 *********** ROLZX ZEROPAGEX MOVE.B 0(OFF,D6.L),D7 ;PICK UP BYTE TO BE ROTATED BTST #CB,FLAGS ;CHECK FOR CARRY BEQ.S 2$ OR.B #XX,CCR ROXL.B #1,D7 BRA.S 1$ 2$ ASL.B #1,D7 1$ SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;STORE BACK ASL BYTE IN MEMORY RET 2 ******************************************* ********** ROL ABSOLUTE $2E ************ ROLA ABS MOVE.B 0(OFF,D6.L),D7 ;PICK UP BYTE TO BE ROTATED BTST #CB,FLAGS BEQ.S 2$ OR.B #XX,CCR ROXL.B #1,D7 BRA.S 1$ 2$ ASL.B #1,D7 1$ SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;STORE BACK BYTE RET 3 ******************************************* ********** ROL ABSOLUTE,X $3E ********** ROLAX ABSX MOVE.B 0(OFF,D6.L),D7 ;BYTE TO BE ROTATED BTST #CB,FLAGS ;CHECK CARRY BEQ.S 2$ OR.B #XX,CCR ;SET X FLAG ROXL.B #1,D7 BRA.S 1$ 2$ ASL.B #1,D7 1$ SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;STORE BACK BYTE RET 3 ******************************************* *********** ROR ACCUMULATOR $6A ********* RORAC BTST #CB,FLAGS ;CHECK FOR CARRY SET BEQ.S 2$ OR.B #XX,CCR ;SET THE X BIT SO THAT WE CAN EMULATE ROR THRO CARRY ROXR.B #1,A ;DO A ROR BRA.S 1$ 2$ LSR.B #1,A ;LSR A AS NO CARRY TO MOVE IN 1$ SETFLAGS N,Z,0,C RET 1 ******************************************* ********** ROR ZEROPAGE $66 ************ RORZ ZEROPAGE MOVE.B 0(OFF,D6.L),D7 ;PICK UP BYTE TO BE SHIFTED BTST #CB,FLAGS BEQ.S 2$ OR.B #XX,CCR ;SET X FLAG ROXR.B #1,D7 BRA.S 1$ 2$ LSR.B #1,D7 ;ROTATE BYTE 1$ SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;STORE BACK LSR BYTE IN MEMORY(AFTER FLAGS SET) RET 2 ******************************************* ********** ROR ZEROPAGE,X $76 *********** RORZX ZEROPAGEX MOVE.B 0(OFF,D6.L),D7 ;PICK UP BYTE TO BE ROR BTST #CB,FLAGS ;CHECK FOR CARRY BEQ.S 2$ OR.B #XX,CCR ROXR.B #1,D7 BRA.S 1$ 2$ LSR.B #1,D7 1$ SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;STORE BACK LSR BYTE IN MEMORY RET 2 ******************************************* ********** ROR ABSOLUTE $6E ************ RORA ABS MOVE.B 0(OFF,D6.L),D7 ;PICK UP BYTE TO BE ROR BTST #CB,FLAGS BEQ.S 2$ OR.B #XX,CCR ROXR.B #1,D7 BRA.S 1$ 2$ LSR.B #1,D7 1$ SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;STORE BACK BYTE RET 3 ******************************************* ********** ROR ABSOLUTE,X $7E ********** RORAX ABSX MOVE.B 0(OFF,D6.L),D7 ;BYTE TO BE ROR BTST #CB,FLAGS ;CHECK CARRY BEQ.S 2$ OR.B #XX,CCR ;SET X FLAG ROXR.B #1,D7 BRA.S 1$ 2$ LSR.B #1,D7 1$ SETFLAGS N,Z,0,C MOVE.B D7,0(OFF,D6.L) ;PUT BACK BYTE RET 3 ******************************************* ********** RTI $40 ********************* RTI SUB.L D6,D6 ADDQ.W #1,STK ;INC SP MOVE.B (STK),FLAGS ;PULL FLAGS ADDQ.W #1,STK ;INC SP MOVE.B (STK),D6 ;POP PC LSB ASL.W #8,D6 ;MOVE UP LSB ADDQ.W #1,STK ;INC SP MOVE.B (STK),D6 ;PICK UP PC MSB ROR.W #8,D6 ;MOVE LSB/MSB INTO CORRECT POSITIONS MOVE.L D6,PRC RTS ******************************************* ********** RTS $60 ********************** RTSS SUB.L D6,D6 ADDQ.W #1,STK ;INC SP MOVE.B (STK),D6 ;PULL PC LSB ASL.W #8,D6 ;MOVE UP LSB ADDQ.W #1,STK ;INC SP MOVE.B (STK),D6 ;PICK UP MSB ROR.W #8,D6 ;PUT MSB/LSB IN CORRECT POSITIONS ADDQ.W #1,D6 ;POINT TO NEXT INSTRUCTION MOVE.L D6,PRC RTS ******************************************* ********** SEC $38 ********************* SEC OR.B #%00000001,FLAGS ;SET CARRY RET 1 ******************************************* ********** SED $F8 ********************* SED OR.B #%00001000,FLAGS ;SET DECIMAL RET 1 ******************************************* ********** SEI $78 ******************** SEI OR.B #%00000100,FLAGS ;SET INT FLAG RET 1 ******************************************* ********** STX ZEROPAGE $86 ************ STXZ ZEROPAGE MOVE.B X,0(OFF,D6.L) ;STORE X RET 2 ******************************************* ********** STX ZEROPAGE,Y $96 ********** STXZY ZEROPAGE ADD.B Y,D6 ;ADD IN INDEX Y OFFSET MOVE.B X,0(OFF,D6.L) ;STORE X RET 2 ******************************************* ********** STX ABSOLUTE $8E ************ STXA ABS MOVE.B X,0(OFF,D6.L) ;STORE X RET 3 ******************************************* ********** STY ZEROPAGE $84 ************ STYZ ZEROPAGE MOVE.B Y,0(OFF,D6.L) ;STORE Y RET 2 ******************************************* ********** STY ZEROPAGE,X $94 ********** STYZX ZEROPAGEX MOVE.B Y,0(OFF,D6.L) ;STORE Y RET 2 ******************************************* ********** STY ABSOLUTE $CE ************ STYA ABS MOVE.B Y,0(OFF,D6.L) ;STORE Y RET 3 ******************************************* ********** TAX $AA ********************* TAX MOVE.B A,X SETFLAGS N,Z,0,0 RET 1 ******************************************* ********** TAY $A8 ********************* TAY MOVE.B A,Y SETFLAGS N,Z,0,0 RET 1 ******************************************* ********** TYA $98 ********************* TYA MOVE.B Y,A SETFLAGS N,Z,0,0 RET 1 ******************************************* ********** TSX $BA ********************* TSX MOVE.W STK,D6 ;MUST BE A WORD MOVE MOVE.B D6,X ;BUT WE ARE ONLT INTERESTED IN THE BYTE PART SETFLAGS N,Z,0,0 RET 1 ******************************************* ********** TXA $8A ********************* TXA MOVE.B X,A SETFLAGS N,Z,0,0 RET 1 ******************************************* ********** TXS $9A ********************* TXS MOVE.L STK,D6 MOVE.B X,D6 ;6502 STACK IS 8 BITS RESIDING AT PAGE 2 MOVE.L D6,STK ;UPDATE STACK RET 1 ******************************************* ********** BCC $90 ********************** BCCC BRANCH CB,BNE ******************************************* ********** BCS $B0 ********************** BCSS BRANCH CB,BEQ ******************************************* ********** BEQ $F0 ********************* BEQQ BRANCH ZB,BEQ ******************************************* ********** BNE $D0 ********************** BNEE BRANCH ZB,BNE ******************************************* ********** BMI $30 ********************** BMII BRANCH NB,BEQ ******************************************* ********** BPL $10 ********************** BPLL BRANCH NB,BNE ******************************************* ********** BVC $50 ********************** BVCC BRANCH VB,BNE ******************************************* ********** BVS $70 ********************** BVSS BRANCH VB,BEQ ******************************************* ********** JMP ABSOLUTE $4C *********** JMPA SUB.L D6,D6 MOVE.B 2(PRC,OFF.L),D6 ;PICK UP MSB ASL.W #8,D6 ;MOVE MSB UP MOVE.B 1(PRC,OFF.L),D6 ;PICK UP LSB MOVE.L D6,PRC ;PC= JUMP ADDRESS BSR OSCALL ;ARE WE JUMPING TO AN OS ROUTINE THAT WE CAN SERVICE? BEQ.S 1$ ;NOT AN OS CALL IF RETURN WITH ZERO SET JMP RTSS 1$ RTS ******************************************* ********** JMP INDIRECT $6C ************ JMPI SUB.L D7,D7 ;CLEAR D7 SUB.L D6,D6 ;CLEAR D6 MOVE.B 2(PRC,OFF.L),D6 ;PICK UP MSB ASL.W #8,D6 MOVE.B 1(PRC,OFF.L),D6 ;PICK UP LSB CMP.W #$20E,D6 BNE.S 2$ ;NOT THE VECTOR ADDRESS FOR OSWRCH MOVE.L #$FFEE,PRC ;POINT TO OSWRCH BRA.S 3$ 2$ MOVE.B 1(OFF,D6.L),D7 ;PICK UP MSB OF JUMP ADDRESS ASL.W #8,D7 MOVE.B 0(OFF,D6.L),D7 ;PICK UP LSB OF JUMP ADDRESS MOVE.L D7,PRC PC= JUMP ADDRESS 3$ BSR.S OSCALL ;IS IT A OS ADDRESS ? BEQ.S 1$ ;NOT AN OS CALL JMP RTSS ;RETURN FROM ROUTINE 1$ RTS ******************************************* ********** JSR $20 *********************** JSRR SUB.L D6,D6 ADDQ.W #2,PRC ;PC POINTS TO NEXT INSTRUCTION -1 MOVE.W PRC,D6 ;TRANSFER TO D6 AS WE ARE WORKING IN BYTES ROR.W #8,D6 ;MOVE DOWN MSB MOVE.B D6,(STK) ;PUSH PC MSB ROR.W #8,D6 ;MOVE UP MSB SUBQ.W #1,STK ;DEC SP MOVE.B D6,(STK) ;PUSH PC LSB SUBQ.W #1,STK ;DEC SP MOVE.B 0(PRC,OFF.L),D6 ;PICK UP JSR ADDRESS MSB ASL.W #8,D6 ;MOVE UP TO MSB MOVE.B -1(PRC,OFF.L),D6 ;D6 NOW = SUB ROUTINE ADDRESS MOVE.L D6,PRC PC=SUB ROUTINE ADDRESS BSR.S OSCALL ;IS IT A OS CALL? BEQ.S 1$ ;NO OS CALL JMP RTSS ;DO A RTS FROM ROUTINE 1$ RTS ******************************************* * OSCALL EMULATES THE BBC OPERATING SYSTEM ****************************************** LF EQU 10 CR EQU 13 ESC EQU 27 DEL EQU 127 OSCALL MOVE.L PRC,D1 ;PICK UP PC CMP.W #$FFB9,D1 BLT.S NOTOS ;NOT AN OS CALL BEQ OSRDRM ;READ A BYTE FROM SIDEWAYS ROM CMP.W #$FFF4,D1 BEQ OSBYTE ;OSBYTE CALL CMP.W #$FFF1,D1 BEQ OSWORD ;OSWORD CALL CMP.W #$FFEE,D1 BEQ OSWRCH ;WRITE CHAR TO CURRENT STREAM CMP.W #$FFE0,D1 BEQ OSRDCH ;READ CHAR FROM CURRENT STREAM CMP.W #$FFE7,D1 BEQ OSNEWL ;DO A CRLF CMP.W #$FFE3,D1 BEQ OSASCI ;WRITE CHAR IF NOT CRLF ELSE CRLF CMP.W #$FFCB,D1 BEQ NVWRCH ;NON VECTORED WRITE CHAR CMP.W #$FFC8,D1 BEQ NVRDCH ;NON VECTORED READ CHAR MOVEQ #1,D0 ;SET FLAG TO ENSURE THAT A RTSS IS CARRIED OUT RTS NOTOS SUB.L D0,D0 ;CLEAR FLAG TO ENSURE THAT A RTSS IS NOT PERFORMED RTS ******************************************** * OSWRCH WRITES A CHAR IN A TO THE CURRENT STREAM SELECTED. * THE VALUE HELD IN $27C(OFF) IS THE FLAG BYTE THAT HOLDS THE STREAM * FLAGS AS FOLLOWS: * BIT 0 ENABLE RS232 * BIT 1 DISABLE VDU DRIVER * BIT 3 ENABLE PRINTER * * A 1 IN A BIT POSITION SELECTS THAT OPTION * THE ASCII VALUES BELOW 32 ARE CONVERTED TO THOSE OF THE BBC WHERE POSSIBLE * ELSE THEY ARE IGNORED. THE NEW VALUE IS FOUND IN A LOOK UP TABLE. EACH * ENTRY CONSISTS OF TWO BYTES, THE FIRST IS THE CONTROL CODE AND THE SECOND * IS THE NUMBER OF PARAMETERS THAT THE C CODE NEEDS, CAN BE ZERO. OSWRCH MOVEM.L D0-D4/A0-A2,-(SP) ;SAVE REG CLR.L D4 MOVE.W PCOUNT,D0 ;PICK UP PARAMETER COUNT BNE PARM ;YES ITS A PARAM CLR.L CCJUMP ;ZERO OUT JUMP VECTOR FOR THE CONTROL CODE ROUTINE MOVE.B A,D4 ;SAVE A IN D4 CMP.B #" ",D4 BCC PCHAR ;NOT A CONTROL CODE MOVE.L #CCTAB,A0 ;NEW CONTROL CODE TABLE SUB.L D2,D2 MOVE.B D4,D2 ;PICK UP CONTROL CODE NUMBER ADD.W D2,D2 ;DOUBLE OFFSET MOVE.B 1(A0,D2.W),D4 ;PICK UP PARAM COUNT MOVE.W D4,PCOUNT ;SAVE IT MOVE.B 0(A0,D2.W),D4 ;PICK UP NEW C CODE BEQ EX1 ;CANT PROCESS IF ZERO CMP.B #9,D4 BEQ MR1 ;CURSOR RIGHT 1 PLACE CMP.B #12,D4 BEQ CLS ;CLS CMP.B #17,D4 BEQ INK ;SET THE INK COLOUR TO PARAMETER THAT FOLLOWS CMP.B #$1E,D4 BEQ HOME ;HOME CURSOR CMP.B #2,D4 BEQ PON ;ENABLE THE PRINTER CMP.B #3,D4 BEQ POFF ;DISABLE THE PRINTER CMP.B #$1F,D4 BEQ TAB ;TAB CURSOR SET BY NEXT 2 PARAMETERS PCHAR MOVE.W D4,D0 ;CHAR TO BE OUPUT IN D0 AND #$7F,D0 ;CONVERT TO ASCII ONLY BSR.S OUTCHAR ;PRINT CHAR BRA.S EX1 PON BSET #3,$27C(OFF) ;SET PRINTER ENABLE BRA.S EX1 POFF BCLR #3,$27C(OFF) ;TURN OFF PRINTER BRA.S EX1 PARM SUBQ.W #1,PCOUNT ;DEC PARAMETER COUNT MOVE.L CCJUMP,D0 ;PUT INTO DATA REG TO EFFECT FLAGS BEQ.S EX1 ;CANT SERVICE THIS C CODE ALTHOUGH ITS GOT PARAMETERS MOVE.L D0,A0 JSR (A0) ;ELSE SERVICE THE ROUTINE BRA.S EX1 OUTCHAR MOVEM.L D1/D4,-(SP) ;SAVE REG MOVE.B $27C(OFF),D4 ;PICK UP STREAM SELECT BYTE BTST #0,D4 BEQ.S 1$ ;RS232 OFF MOVE.W #1,D1 ;DEVICE NUMBER TO DRIVE 232 BSR.S BCONOUT ;WRITE CHAR 1$ BTST #1,D4 BNE.S 2$ ;VDU OFF MOVE.W #2,D1 ;DEVICE NUMBER TO DRIVE VDU BSR.S BCONOUT ;WRITE CHAR 2$ BTST #3,D4 BEQ.S 3$ ;PRINTER OFF MOVE.W #0,D1 ;DEVICE NUMBER TO DRIVE PRINTER BSR.S BCONOUT ;WRITE CHAR TO PRINTER 3$ MOVEM.L (SP)+,D1/D4 RTS BCONOUT MOVEM.L D0-D4/A2,-(SP) MOVE.W D0,-(SP) ;CHAR TO BE PRINTED MOVE.W D1,-(SP) ;DEVICE CODE MOVE.W #3,-(SP) ;BCONOUT CODE TRAP #13 ADDQ.L #6,SP ;TIDY STACK MOVEM.L (SP)+,D0-D4/A2 RTS EX1 MOVEM.L (SP)+,D0-D4/A0-A2 MOVEQ.L #1,D0 ;FLAG RTSS RTS MR1 MOVE.W #ESC,D0 BSR OUTCHAR ;OUTPUT ESC MOVE.W #"C",D0 ;CURSOR RIGHT BSR.S OUTCHAR BRA.S EX1 CLS MOVE.W #ESC,D0 ; BSR.S OUTCHAR ;OUTPUT ESC MOVE.W #"E",D0 BSR.S OUTCHAR ;CLS BRA.S EX1 HOME MOVE.W #ESC,D0 BSR.S OUTCHAR ;OUTPUT ESC MOVE.W #"H",D0 BSR.S OUTCHAR ;HOME CURSOR BRA.S EX1 INK MOVE.L #INKREENT,CCJUMP ;SET REENTRY VECTOR BRA EX1 INKREENT MOVE.W RES,D0 ;PICK UP SCREEN RESOLUTION CMP.W #2,D0 BNE.S 2$ ;NOT HIGH RES RTS ;DONT CHANGE INK IN HIGH RES 2$ MOVE.W #ESC,D0 BSR OUTCHAR MOVE.B #"b",D0 ;SET INK TST.B A BPL 3$ ;BIT 7 SET IF PAPER TO BE SET MOVE.B #"c",D0 ;SET PAPER 3$ BSR OUTCHAR MOVE.B A,D0 AND #$7F,D0 BSR OUTCHAR ;SET COLOUR RTS TAB MOVE.L #TABREENT,CCJUMP ;REENTRY VECTOR MOVE.W #ESC,D0 ;ESC CODE BSR OUTCHAR MOVE.W #"Y",D0 BSR OUTCHAR ;TAB CURSOR BRA EX1 TABREENT MOVE.W PCOUNT,D0 BEQ 1$ ;MUST BE Y POS IN A IF LAST PARAMTER MOVE.B A,XPOS ;ELSE MUST BE X POS SO SAVE RTS 1$ MOVE.B A,D0 ADD.B #32,D0 ;ADD 32 OFFSET AS ATARI REQUIRES IT BSR OUTCHAR MOVE.B XPOS,D0 ADD.B #32,D0 ;AGAIN ADD OFFSET BSR OUTCHAR RTS CCJUMP DC.L 0 ;REENTRY VECTOR PCOUNT DC.W 0 ;PARAMETER COUNT RES DC.W 0 ;RESOLUTION STORE XPOS DC.B 0 ;TEMP X POS YPOS DC.B 0 ;TEMP Y POS ************* CONTROL CODE TABLE**************8 * FIRST BYTE IS CONTROL CODE * SECOND BYTE IS PARAMETER COUNT CCTAB DC.B 0,0 ;0 NU DC.B 0,1 ;1 NU DC.B 2,0 ;2 PRINTER ON DC.B 3,0 ;3 PRINTER OFF DC.B 0,0 ;4 NU DC.B 0,0 ;5 NU DC.B 0,0 ;6 NU DC.B 7,0 ;7 BELL DC.B 8,0 ;8 BS DC.B 9,0 ;9 CURSOR RIGHT DC.B 10,0 ;10 LF DC.B 11,0 ;11 CURSOR UP DC.B 12,0 ;12 CLS DC.B 13,0 ;13 CR DC.B 0,0 ;14 NU DC.B 0,0 ;15 NU DC.B 0,0 ;16 NU DC.B 17,1 ;17 INK DC.B 0,2 ;18 NU DC.B 0,0 ;19 NU DC.B 0,0 ;20 NU DC.B 0,0 ;21 NU DC.B 0,1 ;22 NU DC.B 0,9 ;23 NU DC.B 0,8 ;24 NU DC.B 0,5 ;25 NU DC.B 0,0 ;26 NU DC.B 27,1 ;27 ESC DC.B 0,4 ;28 NU DC.B 0,4 ;29 NU DC.B 30,0 ;30 HOME CURSOR DC.B 31,2 ;31 TAB *************************************** * OSRDCH READS CHAR INTO A FROM CURRENT STREAM * IN THIS CASE ONLY THE VDU FOR NOW CNOP 0,2 ;ALIGN TO EVEN ADDRESS OSRDCH BSR.S RDCH MOVEQ #1,D0 ;SET RTSS FLAG RTS RDCH MOVEM.L D2/A0-A2,-(SP) ;SAVE REG MOVE.W #2,-(SP) ;READ FROM KEYBOARD MOVE.W #2,-(SP) ;CONIN TRAP #13 ADDQ.L #4,SP ;TIDY STACK MOVEM.L (SP)+,D2/A0-A2 ;POP REG MOVE.B D0,A ;PUT BYTE INTO A CMP.B #ESC,D0 BEQ.S 1$ ;ESC CODE AND.B #%11111110,FLAGS ;CLEAR CARRY MEANING A GOOD READ RTS 1$ OR.B #%00000001,FLAGS ;TELL OS ESC PRESSED RTS ************************************ * OSNEWL DOES A CRLF OSNEWL BSR.S NEWL MOVEQ #1,D0 ;FLAG RTSS RTS NEWL MOVE.B #LF,A ;DO A LF BSR OSWRCH MOVE.B #CR,A ;DO A CR BSR OSWRCH RTS ************************************ * OSASCI DOES A CRLF IF A=13 ELSE PRINTS CHAR OSASCI BSR.S ASCI MOVEQ #1,D0 ;FLAG RTS RTS ASCI CMP.B #CR,A ;IS IT A CR? BEQ.S NEWL ;YES BRA OSWRCH ;ELSE JUST PRINT IT *********************************** * OSRDRM READS A BYTE FROM SIDEWAYS ROM * LOCATIONS $F6 $F7 HOLD ADDRESS * RETURN WITH BYTE IN A OSRDRM BSR.S RDRM MOVEQ #1,D0 ;FLAG RTSS RTS RDRM MOVE.B Y,D0 ;Y=ROM NUMBER BEQ.S 1$ ;WE ARE WORKING IN ROM 0 SO GIVE GOOD READ ELSE GIVE $FF MOVE.B #$FF,A ;GIVE A DEFAULT VALUE RTS 1$ SUB.L D0,D0 MOVE.W $F6(OFF),D0 ;PICK UP ADDRESS ROL.W #8,D0 ;CONVERT TO 6502 FORMAT MOVE.B 0(OFF,D0.L),A ;PICK UP BYTE RTS **************************************** * OSBYTE CALLS ARE WITH THE CALL NUMBER IN A AND ANY * PARAMETERS IN X AND Y ,ONLY A SELECTION ARE IMPLEMENTED AT THE MO OSBYTE BSR.S BYTE MOVEQ #1,D0 ;FLAG RTSS RTS BYTE CMP.B #3,A BEQ OB3 ;SET O/P STREAM CMP.B #$13,A BEQ OB13 ;WAIT FOR SYNC CMP.B #$79,A BEQ OB79 ;K/B SCAN CMP.B #$81,A BEQ OB81 ;READ KEY WITH TIME LIMIT CMP.B #$83,A BEQ OB83 ;OSHWM CMP.B #$84,A BEQ OB84 ;HIMEM CMP.B #$7E,A BEQ OB7E ;ACK ESC CMP.B #$86,A BEQ OB86 ;FETCH VPOS,XPOS CMP.B #$8E,A BEQ OB8E ;ENTER LANGUAGE ROM CMP.B #$76,A BEQ OB76 ;CHECK FOR CNTL RTS ;CANT SERVICE ANY MORE AT PRESENT SO LEAVE **************************************** * SET OUTPUT STREAM OB3 MOVE.B $27C(OFF),X ; OLD STATUS IN X MOVE.B A,$27C(OFF) ;INSERT NEW STATUS RTS **************************************** * WAIT FOR SYNC OB13 MOVEM.L D0-D2/A0-A2,-(SP) ;SAVE REG MOVE.W #37,-(SP) TRAP #14 ;WAIT FOR SYNC ADDQ.L #2,SP MOVEM.L (SP)+,D0-D2/A0-A2 ;POP REG RTS *************************************** * READ CHAR BUT DONT WAIT FOR IT OB81 SUB.L D7,D7 4$ MOVE.W #$FF,-(SP) ;READ K/B MOVE.W #6,-(SP) TRAP #1 ;FETCH KEY ADDQ.L #4,SP OR.B D0,D7 ;OR IN KEY PRESS BNE.S 5$ ;KEY PRESSED SUBQ.B #1,Y ;LOOP FOR Y TIMES BNE.S 4$ 5$ MOVE.B D7,D0 CMP.B #ESC,D0 BEQ.S 1$ ;ESC PRESSED TST.W D0 BEQ.S 2$ ;NO KEY PRESSED MOVE.B D0,X ;KEY IN X SUB.L Y,Y ;CLEAR Y,MEANS CHAR READ,NOT ESC AND.B #%11111110,FLAGS ;CLEAR C RTS 1$ MOVE.B D0,Y ;ESC IN Y 3$ OR.B #$00000001,FLAGS ;SET CARRY RTS 2$ MOVE.B #$FF,Y ;NO KEY PRESSED BRA.S 3$ **************************************** * FETCH OSHWM SET TO $E00 ON BASIC BBC MACHINE OB83 MOVE.B #$0E,Y ;MSB IN Y MOVE.B #$0,X ;LSB IN X RTS *************************************** * FETCH HIMEM SET TO $7C00 ON MODE 7 BBC OB84 MOVE.B #$7C,Y ;MSB IN Y MOVE.B #0,X ;LSB IN X RTS *************************************** * ENTER LANGUAGE ROM, PUT COPYRIGHT MESSAGE POINTER IN $FD * MAKE A=1 OB8E SUB.L D0,D0 MOVE.B $8007+ZERO6502,D0 ;PICK UP COPYRIGHT OFFSET FROM START OF ROM ADD.W #$8000,D0 ;D0 POINTS TO MESSAGE MOVE.B D0,$FD(OFF) ;STORE IN $FD ROR.W #8,D0 ;MOVE DOWN MSB MOVE.B D0,$FE(OFF) ;STORE IN $FE MOVE.B #1,A ;A=1 MOVE.B #3,(STK) ;LSB OF ENTRY ADDRESS SUBQ.W #1,STK ;DEC SP MOVE.B #$80,(STK) ;MSB OF ENTRY ADDRESS SUBQ.W #1,STK ;DEC SP RTS *************************************** * GET POS VPOS ,CANT SERVICE YET SO GIVE DEFAULT VALUES OB86 MOVE.B #10,X ;XPOS MOVE.B #10,Y ;YPOS RTS *************************************** * KEY SCAN ONLY INTERESTED IN SHIFT AT MOMENT OB79 MOVE.W D2,-(SP) ;SAVE D2 MOVE.W #-1,-(SP) ;GET STATUS OF KEYS MOVE.W #11,-(SP) TRAP #13 ADDQ.L #4,SP AND.B #3,D0 ;MASK OUT SHIFT KEYS BEQ.S 1$ ;NOT PRESSED 2$ MOVE.W (SP)+,D2 ;RESTORE D2 RTS 1$ EOR.B #$80,X ;RESET BIT 7 OF X,THUS TELLING OS KEY PRESSED BRA.S 2$ *************************************** * GET CNTL STATUS OB76 MOVE.W D2,-(SP) ;SAVE D2 MOVE.W #-1,-(SP) ;GET K/B STATUS MOVE.W #11,-(SP) TRAP #13 ADDQ.L #4,SP AND.B #%00000100,D0 ;MASK IN CONTROL KEY BNE.S 1$ ;KEY PRESSED AND.B #%01111111,X ;RESET BIT 7 IE NO CNTL 2$ MOVE.W (SP)+,D2 ;POP D2 RTS 1$ OR.B #%10000000,X ;SET BIT 7 OF X IE CNTL PRESSED BRA.S 2$ *************************************** * ACK ESC PRESSED OB7E MOVE.B #$FF,X ;ACK ESC RTS *************************************** OSWORD CMP.B #0,A BNE 1$ ;CANT SERVICE IT YET SUB.L D6,D6 ;CLEAR D6 MOVE.B Y,D6 ;Y=MSB OF PARAMETER BLOCK ADDRESS ASL.W #8,D6 ;MOVE UP MSB MOVE.B X,D6 ;X=LSB OF PARAMETER BLOCK ADDRESS MOVE.L D6,A2 ;A2 POINTS TO PARAMTER BLOCK MOVE.B 1(OFF,A2.L),D6 ;PICK UP MSB OF BUFFER ADDRESS ASL.W #8,D6 ;MOVE UP TO MSB MOVE.B 0(OFF,A2.L),D6 ;PICK UP LSB OF BUFFER ADDRESS MOVE.L D6,A1 ;A1 POINTS TO BUFFER ADDRESS SUB.L Y,Y ;Y=LINE LENGTH 2$ BSR OSRDCH ;PICK UP CHAR FROM KEYBOARD IN A CMP.B #3,A ;CONTROL C? BEQ EXIT ;YES SO BACK TO DESKTOP CMP.B #ESC,A BEQ.S 1$ ;ESC PRESSED CMP.B #DEL,A ;CHECK FOR DELETE BNE.S 3$ ;NOT A DELETE TST.B Y ;CHECK LINE LENGTH NOT ZERO BEQ.S 2$ ;IF IT IS DONT DELETE CHAR AS BUFFER IS EMPTY MOVE.W #8,A BSR OSWRCH ;BACK SPACE MOVE.W #" ",A BSR OSWRCH ;DELETE CHAR MOVE.W #8,A BSR OSWRCH ;BACK SPACE SUBQ.B #1,Y ;DEC LINE LENGTH SUBQ.L #1,A1 ;DEC BUFFER BRA.S 2$ 3$ CMP.B 2(OFF,A2.L),Y ;CHECK TO SEE IF BUFFER FULL BNE.S 4$ ;IF EQUAL RING BELL AND LOOP BACK AND WAIT FOR ESC OR DEL MOVE.W #7,A BSR OSWRCH ;SOUND BELL BRA.S 2$ 4$ BSR OSASCI ;PRINT CHAR MOVE.B A,0(OFF,A1.L) ;STORE CHAR IN BUFFER ADDQ.B #1,Y ;INC BUFFER LENGTH ADDQ.L #1,A1 ;INC BUFFER CMP.B #CR,A BNE.S 2$ ;LOOP BACK IF NOT CR IE END OF LINE 1$ MOVEQ #1,D0 ;SET RTSS FLAG RTS ;6502 CARRY SET IF LINE TERMINATED BY A ESC *************************************** NVWRCH JMP OSWRCH *************************************** NVRDCH JMP OSRDCH *************************************** * OSCLI NOT YET SERVICED OSCLI MOVEQ #1,D0 ;FLAG RTSS RTS *************************************** END T[ڍwZ. 6502 Emulator By Tim Titchmarsh June 1987 To run: double click on 6502.TTP and enter the filename of the language or utility you wish to run ie A:BASIC.BBC. Of course the program must have been downloaded to the ST and saved as a file of max length 16k. The emulator will work with all of the opcodes of the older 6502s. The newer versions (as used in the BBC master series etc) use the unused opcodes. These new opcodes are not covered but it should be a simple job to insert them into the code as spaces for them have been left in the jump table. At present they are directed to a return statement. The emulator works by applying 68000 instructions that match closest to the 6502 ones. The flags are stored in a data register that is updated by indexing the value from a look up table. The A,X,Y registers are implemented in data registers and the PC,SP are implemented in the address registers. The 68000 registers have been redefined to read the 6502 equivalents. If your assembler does not support this assembler directive (EQUR) then you will have to globally change them back to 68000 values using your text editor. The page zero for the 6502 is used as the reference for all memory addressing modes ie using address register indirect addressing with index. Talking of addressing modes, the 6502 ones are implemented as macros to save a lot of typing, if you havn't got a macro assembler why not ?. The assembler used for this little lot is the METACOMCO macro assembler, therfore a few explanations may be in order: TEXT defines the start of a program section of codes BSS defines a section of uninitialised data DATA defines a section initialised data TTL sets the program title to be printed at the top each page CNOP is a conditional nop used to align to an even address your assembler may use the EVEN command. MACRO and ENDM are the start and end macro definition commands respectively with the \n character used to substitute in the nth arguement. Most of the 6502 instructions work perfectly (not all). If the 6502 is to work in decimal mode then you may notice some side effects when adding or subtracting as the 6502 flags are set differently to the 68000 ABCD or SBCD. Hopefullt wont cause you to much trouble. The break instruction is set up to work in the same way as the BBC micro which reads it as a two byte instruction, the second byte being the error code. The jump and jsr intructions are also intercepted to cater for the BBC osbyte and osword calls. Feel free to change them if you wish. Turning to the BBC (ugh!). I've made a stab at writing some osbyte and osword call handlers such as writing to the screen reading a char etc but they are by no means complete. The best book on the subject is the "Advanced User Guide" by Bray Dickens and Holmes. Have a look at the listing to see whats been covered; the code is documented so should be not to bad to follow (or is it ?). To return to the desktop is only possible using CONTROL C when in input mode else reset. Before I forget you need a copy of the BBC Basic rom (16k) in a file on your disk to run Basic the same goes for other languages although I make no claims for them working in any way (although I've had some success with a few of them). The more they conform to the correct OS calls the better chance they have of running. _2!oĿ1Iؿ3#6R4#KsĢIej_2!9O؞ߤSZ4:n=O|=?KJ搰E J4._en-M?w*#/x\4m|6RǧMڰﱱ_] opڰJ[|'3oi k^t2KS0*_Oo_}{q11Z[ڍ7ڍe,U[*_-@[O/;/x\4:g'0i#ESPw-ﱱ{D?ajyAD|/oeoƽ|\~El͸pß:_^ﱱ[ڍe,op0_2!oĿ1I6Rz$q1I` l o,H ( ШШ//Bg?<JNAO /<>HNA\JjH/<R?< NA\BSfBgNA ******* OUT OF MEMORY!! TERMINATING ******#TM,.9Ta`?</?<=NAPJ@k//<@??<?NA Jj/<?< NA\`(Nu ******* FILE ERROR- TERMINATING ****** 6502 EMULATOR BY TIM TITCHMARSH 1987 ?<NNT32<0<al0<vad0<a\0<caT0<aL0<aD0<ba<0<a40<a,0<Ea$0<a0<ea/< ?< NA\vxzt(|*yT&|\,yTAl4@ PN`/9T?<INA\BgNARLNu0<g0<f4D@A<3TLNu4D@A3TLNu0<g0<f B45hD@A<3TLNuB45hD@A3TLNu0<g0<f"B45hD@A<3TLNuB45hD@A3TLNu0<g0<f&B4F45hD@A<3VLNuB4F45hD@A3VLNu0<g0<f(B4F4D5hD@A<3VLNuB4F4D5hD@A3VLNu0<g0<f(B4F4E5hD@A<3VLNuB4F4E5hD@A3VLNu0<g0<f.BB45hG5h5xD@A<3TLNuBB45hG5h5xD@A3TLNu0<g0<f.BB45hG5hE5xD@A<3TLNuBB45hG5hE5xD@A3TLNu4@A }3TLNuB45h@A }3TLNuB45h@A }3TLNuB4F45h@A }3VLNuB4F4D5h@A }3VLNuB4F4E5h@A }3VLNuBB45hG5h5x@A }3TLNuBB45hG5hE5x@A }3TLNu4@A |3 TLNuB45h@A |3 TLNuB45h@A |3 TLNuB4F45h@A |3 VLNuB4F4D5h@A |3 VLNuB4F4E5h@A |3 VLNuBB45hG5h5x@A |3 TLNuBB45hG5hE5x@A |3 TLNu4@A }3TLNuB45h@A }3TLNuB45h@A }3TLNuB4F45h@A }3VLNuB4F4D5h@A }3VLNuB4F4E5h@A }3VLNuBB45hG5h5x@A }3TLNuBB45hG5hE5x@A }3TLNu4@A }3TLNuB45h@A }3TLNuB45h@A }3TLNuB4F45h@A }3VLNuB4F4D5h@A }3VLNuB4F4E5h@A }3VLNuBB45hG5h5x@A }3TLNuBB45hG5hE5x@A }3TLNu4@A }3TLNuB45h@A }3TLNuB45h@A }3TLNuB4F45h@A }3VLNuB4F4D5h@A }3VLNuB4F4E5h@A }3VLNuBB45hG5h5x@A }3TLNuBB45hG5hE5x@A }3TLNu0<g0<f4D@A<3 TLNu4D@A3 TLNu0<g0<f$B45hD@A<3 TLNuB45hD@A3 TLNu0<g0<f&B45hD@A<3 TLNuB45hD@A3 TLNu0<g0<f*B4F45hD@A<3 VLNuB4F45hD@A3 VLNu0<g0<f,B4F4D5hD@A<3 VLNuB4F4D5hD@A3 VLNu0<g0<f,B4F4E5hD@A<3 VLNuB4F4E5hD@A3 VLNu0<g0<f2BB45hG5h5xD@A<3 TLNuBB45hG5h5xD@A3 TLNu0<g0<f2BB45hG5hE5xD@A<3 TLNuBB45hG5hE5xD@A3 TLNuB4hTLNuB4hTLNuB4F4hVLNuB4F4DhVLNuB4F4EhVLNuBB45hG5hxTLNuBB45hG5hExTLNu@A |3RLNuB45h@A |3hTLNuB45h@A |3hTLNuB4F45h@A |3hVLNuB4F4D5h@A |3hVLNuB45hf`?TLNuB4F45hf`?VLNu, ^SN^SNSNRFF^FTL-F-(FNuRLNuRLNuRLNuRLNu4@A |3 TLNuB45h@A |3 TLNuB4F45h@A |3 VLNu4@A |3 TLNuB45h@A |3 TLNuB4F45h@A |3 VLNuB4S5h@A }3TLNuB4S5h@A }3TLNuB4F4S5h@A }3VLNuB4F4DS5h@A }3VLNuB4R5h@A }3TLNuB4R5h@A }3TLNuB4F4R5h@A }3VLNuB4F4DR5h@A }3VLNuS@A }3RLNuS@A }3RLNuR@A }3RLNuR@A }3RLNu4@A }3TLNuB45h@A }3TLNuB45h@A }3TLNuB4F45h@A }3VLNuB4F4E5h@A }3VLNu4@A }3TLNuB45h@A }3TLNuB45h@A }3TLNuB4F45h@A }3VLNuB4F4D5h@A }3VLNu @A |3RLNuB45h@A |3hTLNuB45h@A |3hTLNuB4F45h@A |3hVLNuB45h@A |3hVLNuRLNuSNRLNuSNRLNuRN@A }3RLNuRNRLNug<`@A |3RLNuB45hg<`@A |3hTLNuB45hg<`@A |3hTLNuB4F45hg<`@A |3hVLNuB4F4D5hg<`@A |3hVLNug<` @A |3RLNuB45hg<`@A |3hTLNuB45hg<`@A |3hTLNuB4F45hg<`@A |3hVLNuB4F4D5hg<`@A |3hVLNuRNRNFRN^(FNuRNFRN^RF(FNuRLNuRLNuRLNuB4hTLNuB4hTLNuB4F4hVLNuB4hTLNuB4hTLNuB4F4hVLNu@A }3RLNu@A }3RLNu@A }3RLNu<@A }3RLNu@A }3RLNu,,FRLNuTLf B4HNuTLg B4HNuTLg B4HNuTLf B4HNuTLg B4HNuTLf B4HNuTLf B4HNuTLg B4HNu4F4(FadgNJNu4F4 Ff(|` 5hG5h(Ga0gNNuTL< ^^SNSN4F4(FagNNu" AmHg Ag Ag Ag2 Ag AgB AgR Ag2 Ag.pNuNuHB09fB  dX |ڔB0 30 g  g  g g g g g g0@a&`l|`d|`\Sy 9gN @N`HHH-|g2<af2<ag2<aLNuH ???<NM\LNuLpNu0<a0<Ca`0<a0<Ea`0<a0<Ha`#R`09 @fNu0<af<bJj<caT@aJNu#0<a60<Ya.`r09g Nu a9 aNu  apNuH ?<?<NMXL gNuNuapNu< a< aNuapNu  g`apNug<Nu0-X5NuapNu gL gN yg gP g g ~g g gv vgNu-|C|NuH?<%NNTLNu?<?<NAXfSf gJ@gNuNu<`<<Nu<|<Nu9[@@X@<SNSNNu< < Nu??r$rL$^    , P 8 l Nj V `4 ц2#gRJ1e3 {՝*j?QN֩QKU;x?'QDjHzlJW"çS*2]vXZmgR9@uj ꥚:^1r'5 w.ucqB7qgnb /zyS  _*w֧]NASvT<21Š=qd 8*XGZbNp2EiSj5ߪPKCnz ۮP{;jEUsǬf9J)FEڡ]Zmu'D;;^:pJKOzVzA _ieyavRs마e\VqI cOjWN^Ehڶ>ئWڬvW -{y8m5ŭ^B``BASIC(C)1982 Acorn  ʆ# ʎ%  A RWXL݊ANDABSACSADVALASCASNATNAUTOBGETBPUTCOLOURCALLCHAINCHR$CLEARCLOSECLGCLSCOSCOUNTDATA DEGDEFDELETEDIVDIMDRAWENDPROCENDENVELOPEELSEEVALERLERROREOFEORERREXPEXTFORFALSEFNGOTOGET$GETGOSUBGCOLHIMEMCINPUTIFINKEY$INKEYINTINSTR(LISTLINELOADLOMEMCLOCALLEFT$(LENLETLOGLNMID$(MODEMODMOVENEXTNEWNOTOLDONOFFOROPENINOPENOUTOPENUPOSCLIPRINTPAGECPTRCPIPLOTPOINT(PROC POSRETURNREPEATREPORTREADREM RUNRADRESTORERIGHT$(RNDRENUMBERSTEPSAVESGNSINSQRSPCSTR$STRING$(SOUNDSTOPTANTHENTOTAB(TRACETIMECTRUEUNTILUSRVDUVALVPOSWIDTHPAGEPTRTIMELOMEMHIMEMxGj3oŸFʕxр|AmI/v&9¸1$ڶ*0o]LX*}}/VrĈzD#/}Ў¿K89x!cs AClr4r5 %%9AAAAJJLLLPPRSSS > 0L2II% )*00NNN>XʈHh(@`8x0Pp!AaF&f L (L( ] m (J`i?8 E7 b968 %? e: b8 e X XLV :  % ȱ : Y : L L ZX :' ' =:d `\\. 0*  &=&>:=P>L*"ɀɂɄ ȱ AĄ)H@79(A8<=:;(6")$9:@A<=`"@ !*@+A%(JOut of range*L+0ߘ0) # / !+Byte6h (7 ! ) , , Y, X )Index ! , , X Y /L 2+L/+- A ! , , XL 2.21 #Lņ !L53 $ ( !L+ , , ! )L 9]=I)H7/ #hLņ !h7 ,L5 )7 ,L5L !h7 , )7 ,+L̆L8% !*(L+   ` / 2)i)` BW DSL*H !) DhL+L(H h( 'He79e8:h7ȱ97 `)=>ȱ7:602)H>= &>0! &>0e==e>=*0>he==>Hh8` |7i98i:79> @7=)? @7=)=>)JJ=JJIT7 D D D`{_[A:0`.`778` D7`;<7  D& K 6AG" K" `:;<,*;A`. 63< 47 = DL; 3(< : 7 8; W ߗ L ưr~LL ɤ LLNo =*[# m ɋ  W : ϐ߂7Q8l7   ݕ A , 1 " ' L ' LL*Type mismatch 꽥,ɀ{*6U,-6iH*q*Eq*E-8*eiHh*-*,*6**-*,,6` **`No room9ɀ':79ȱ7:97Lܽ ȱ7 797ȱ7ȱ797ȘL H ,> ) h' 0 * 0٢l 0̥6 Ľ h L %L : ɋ8 # L  ef : ɋ~,; pHH )hh  ߞ86  e6 X6L,*H V  h VLj ݒ )ڥ* % 㒤* e % `   'Ɋɉ8` p"8` Missing " Xȱ "Ȅ"Я W W ( L   ," Օ*ȥ*ȥ+ȥ,L R LLC J`dl*L* ߗ , ߗ W*9+: - { "9*:+L خ ߗ خ , ߗ+X*T LW;<87` i9 o 700;ȱ7;8e;; 7 8 Ы ;i;< ϿFailed at ȱ +ȱ *  %ȱ7e778` i*H #  Q hHe**+LL A? ݒ "-,0*e+eԥ*+,-@' 'L Bad e 78? Y($% ?7(Lߐ9 iг  1?HH خ !+),-В "h*ȥ+ȘH 1 ,)L'hh?@ 6e**+87e*+e4-7e78788 ,LL/ space* +,-`? F@f? e*e+*&+?@*+`L' 뒥*+L 뒥*+ / 뒥+L W ߗ ɇ ! W*!+" L W W 뒢*. L )L 0 ` 'LL 0L    RL*C & ,0 خ'  ,LL LW No Not Bad !*H ڒ R LړH ! WLړH ! W -)ои*  (h VLH L !*H ) ڒ R h 7 8 V+ L+ : ɋ ! V ,;L*l7 7 :;;5:<ȱ:=ȱ: 9!Ȱȱ:79ȱ: e:*;i+`=<:ȱ<;ȱ< 9ЭȰȱ<7С9ȱ<Иe<*=i+`7 7 :;: ::;::ȑ91ȱ79`ȑ8e :L`70@ : _[`{` 1 ɕ ,! $I?8`H L 㒥+,8`$ range   Ȅ @[ *+ȱ% ,(f,e7ʆ87A 0:[_{ڈ/$g%,ȱ79(L i!?`8``HȄ , +H*H he**he++h,`9 ߖLaȄ9,7( i,8`9, ߖ,8`Array i,H*H+H*u خ- ݒ,̢9 =+=e==>=* e==>`Division by zero' -H q ' h8E-7 q9 =>?@-*+, A9&:&;&<&9&:&;&<&=&>&?&@8=*H>+H?,@- @?h>h=hh`' Q  ~ Lb Q B' ~ N';);.);=0>1?2 @3A4`jE;*`LG0 B0-I-8**ȱ++ȱ,,ȱI-*+,e(` BЪ7696:: ȱ96 ܽ7(`    r !'` k ** @ k Y**0 ` 9** @ B?<`>: *+,-@`= >  ِװ ͪ= 𿰼 String too long j7e6ڪH6ʈ ˽h67 ѝ+-h`08 Ν/0Le**ȱe++ȱe,,ȱe--i@L Q ѝ'0 ~ 'О' Q L0' Ν088**ȱ++ȱ,,ȱ-Lw Q ѝ'0 ~ L' Q ~ ФL Q L, Q ' ~ V'LԝL0ߥ-,֨E+0 '0-,ЬХE+0-H q9 D hE-7 q?@F:f9e*e+?e,?@e-@*&+&,&-9:ׄ=>7= V( 'LԝL< */ !&` Q ' ~ ' 8L &9&:&;&<$79L H h^` Q 0ɇC  ~ J  KL J  } ~  Ѫ VЛ ܘ 䣢*H)?hJJJJ??? ii0 f`-. f0ɁN ILў7  8N6I$00 ڡд70LfL Ʉ1ɠ MILў5' N87eI0R8  87 108 M N'B 0Ʉf1f2f3f4f501ɠ8F IN8873I0 8+IȘ#70 f. f0I fN @N. f8760.Ȅ6I*E fI - f8I R7 I0 fLf`1JJJJ d1)1L8 i H dh 0;6;6`5 ڡ`12345HI.:/0ۅ5ȱ.HDHE5:8/41HIצHI e55432м1и @eIIIH/ ڡ&0/. I0  I MI \8`2-)1̥5*4+3,@8` KI8`ȱ-+ȱ:"/Jȱ:/ ȅCJ eJ eC`J``5eB54eA43e@32e?21e>1`H41H2H3H5 &4&3&2&1 &4&3&2&1e55e44he33he22he15&4&3&2*1h`12345. `.0/`0i0/  B B xf1f2f3f4f50/`.;/<0=1>2?3@4A5B` F>f?f@fAfB`800/ ?  ? B B B >1?2@3A4B5* >?1@2A3B4* 2*1e5543 21L `5/- .*4+3,2-10L.0/`H h.8.10102345ե010!21324354580/ݤ105&4&3&2&10/KAK@K?K;B`qvlKL0Kȥ.).1).K2ȑK3ȑK4ȑK` K4K3K2K.K05/.234. 1` 1-2,3+4*` L0 S ڡ2\0ɠTə&i0@A?@>?4>3423121F1f2f3f4f>f?f@fA0мLl;<=>?@AB`.844332211`00JLڡ 4J 褩01E..JLJ lL4 321` l Ll L~ N ;.1?2@3A4B5` ~ N L\ ڡ̠80=w7%H)8JJJAB@A?@>?>h)NF>f?f@fAfB>8=0%H)8JJJ453423121h)F1f2f3f4f5=0.E;I1>2?3@4A 5BL*8B55A44@33?22>11;.LL85B54A43@32?21>1L` ڡ NL0e=/0/0B0.E;. F>f?f@fAfBF&E&D&C x`  5ɀ L|Too big4 45/./012345` 1Ȅ0` : ڡ  7`L өJH J ֤hJ 禩` ڡ Nʥ.E;.80=/8i0/ 1>2? 3@4A4A43@32?21>18&F&E&D&C4&3&2&1к1>2? 3@4A4A43@32?21>18&54&3&2&15F4E3D2C1LY-ve root ڡ*0 0Ji@0J lK qK 0J`{ qvlKL` ڡ Log range S;>Ȅ=01ɵ舊H0 { s V V h8 nKL V `^[ت1rz8 y|*?4zc7?MN MHMNMKNL MiMKNiNL H` ڨL' ڡF. L ڡ L U ` ڡ F. .`0Ɂ 6 H L L~0s S=>; Z Ѫ` Yg6Wx߀ʚnށ lR}bW/mc8, өJL өJ) L~FJ é V ФL Vr LѪ0ɘ_ U N.;=  4J3218051. l  } H V L V LLAccuracy lostY^KL`cowzaIڢ{5e. +7EUUW| 0ɇ1. `Exp range ڪ KL J  V`頪 `-TX [S !c  ʊIH hH h 8H VL%` 㒦* L ݒ V *H+H h-h,* .03Lخ Lخ Lخ ڡ0 Y0-,+* -LĬLخ@` i hKL V` m 0` *+,h-ة@`L 66  HHHȄ78;Ȅ U ) ܽhhh'` g6HHH -+  {Ls  { 'L# . ( >?@A Ǥ 磩@`L 6Lخ L  *+,-@` 㒢*I*@` )д, )Ц*),L V ˽**ʆ-e7e88-!6i+ ܽ6 7*Lخ ܽ*+78L 0$-03 ڡ 0 ڡ.I.` 08**++,,--@` " ,L᭢ȱ ȝ""ʆ6`L -"+ Ɏư6L? .&Q(6 ݕ L, {`() @ALNo such variable ))`Missing )*+,-0#: 7   &*&+&,&-׊@`Bad HEX* @`LLC L 6P*+,-@`LخLꮥL V -0),+*LE Q i ~   "@` D@`( *+,-@` ./50 1 Y` JJJEj& &&&&` LꮠL 㒩*+L Lخ 6` )b,a V ˽*66` )@,? V ˽68**6*` 6`LL ),  ݒ*H*) , V ˽h6,68,****6` ~H h7 ` ߞ`L ݒ V 꽤6**6*6`6`Lh h No such /  0ޠȱ  e Ȅ e <=<79ȱ< & m 픢 1 ȥ  9LBad call'e .Ƚ'H H H He78 [9 [L* ȱ* H (M HHH hhhh ? ?h h h he'`HHH Z hhhh,H+H*HH ,)1H (' ) '- hH ,) hhMNMh h Arguments h*h+h,0!-م'7 D' ~ L L-и ˽ !MåNHL,7 D , (07 VL,0T*-*,***+@`*Lꮈ*4*3*2*.*05/.234. 1`*6*8*767`+*I 6` 㒥*L¯ 87 * B 7 8 B 0 B B7 8` ų 3  : ~ (L:" at line ";:: !*H+HH ڒh R*=+> ! *HH ڒh R*D h77 L ! R*#LL ) 9#' 䣠*79+ȑ7,ȑ7-ȑ7`'0 07ȥ.).1).7ȥ27ȥ37ȥ47`7ɀDq89:ȱ87 Ș8e88980 X:`HJJJJ Ph) ii0 L( E H# %hl% 0 e X`  L *Lȱ O;< خ ߗ *+( ,  , ߗ*1+2 W o p= >  % m +ȱ *Ȅ *1+2L #M w; w< w "EMM" X$Mɍ 뗄  L7;;;<<< Ы No ɕ &7L*&*+,8&!Can't Match *+~*}*7ȱ*}*8ȱ*}*9ȱ*}*7878899789]] wL&8& ,>L T&iKL *7+8 鴥&'iKL _0L" variable#Too many s$No ۰ A &֥789 ɸZ ݒ&*+ , -  خ Ɉ ݒ &*+,- &  i&L ) &iKL Ɉ )  &iKL L7 W%  %0%Too many s&No W%% L W  => L W3L ɇ m  L}' syntax Ʌ  Ȅ يH+,-B*> 2:.ɋ*, h wLҸ : L h ɋ ( range L ߗ   +)+ p`)No such lineLL* L  M ,MH ޥ hM M '(' 6  Lڹ'0  *0 l LڹhhL #Ɇ fMFMN NM(fM,; MHNH hNhM $MpN$M? X 6MfM$Mp , ȄN( 4 LZ' !LZ=> : ɋ  U W=>L ,L P L@ P ' eiL  ,IE ,: 0ȱȱ e*Out of +No Ȅ`  L $*+,-$LLݸ,Too many s$ m  $L X789 :;Ȣ7 L8 ` pN=7=>8>7e7787 8870 L] `87`; -< ;r;Ȅ??9: 78 o space97:8e9:=>8+=ȥ*=ȥ?= Vȱ;= ` W  L  :`$&%`8 .0ȥ.).1).ȥ2ȥ3ȥ4`KiLi` 08 .-,+*`6 .66`6 8e#`-,+*i`7i``L*+,-`e==>` ݾ=7 Ȉ ȱ0  e` Ͽ Bad program L786 ` Ҿ LL  LL Ҿ9: ;<` oEF#=>B ݾ?@CDGHA7 L bL bL H  h* L8**H *h @` H I h* L Lخ@H  h LخL R* L    # 㒤*`-Missing #h7h8 Kl7 W % LRoger. | S.. | S[C64_SWS TOS |S ^lEMULATORMOD |S *`hSpNgH[3][Modula-2 Run Time Error : | | #][OK]Modula-2/ST (c) Copyright TDI Software Ltd. 1985. The team : Chris 'how tacky' Hall, Paul 'where's the cursor' Curtis, and Phil 'boot you @#$%' Camp !!. _b ШNYN"pNGNuNV*x ڄ=E*P-E@-M-VNh-H:. Eg :. Ef-n*.P-ENH:. Ef Nh-hN2:. Ef BBN:. E e Nh-PN-n Ih$8B,)n9n)n )n)n)n|.n 9h /@>,VNhYN`NsN^NuNVBn ncN:.EIBtP ndRn`I* -EI* -EI* -EI* -EI* -Ez-E=| Bn=|BnBn <I* "NB=|4=|=|=|Bn=|(mI* -E <I* "NB=|Bn=|BnBn <I* "NBpL?NAN^NuNV/-+NIGz+WBn:.IJ4PgRn`=yh$:. E d:.I0PN(z0x8.  HDE:.IPRnz0x8. HDE:.IPRnI2GzWBn:.I8.nGP@Rn:.IJ4Pg`N+_N^Nu OAbrpNGNurpNGNV-|*.f *. drpNG-n nBBB!.B"H$!.!.@ .PPB! 4"n "N^NuNFNuF'/NNn-/=-/H"Q ,IL?/^>/^Nf,oNsNENuF'/NNn-/=-/H"Q G*- =/^Nf,oNs/NNn-/=/-/H _"h$",HL?/^>/^Nf,oNsF'SSfWWNsSf>NsSfF NsSfNqNsSf NNsNhBBB!<B*H$C! ` <L?NAN`WNs*x b "T@NGNuNNuNVH|".$. &(*HDHEHABBمCمHABBBCHBHCԃԄ-A -BL>N^NuNVHx". $.bBCh8BAHA62HC6BAHA`B6HCBAHA8<㑲eRCQ-C -ALN^NuNVH".$. &(*,BHDHEHABهCهHABBBCHBHCԃԄHEJjJj-A -BLN^Nu |Jj DaD NuJ jD ND DNuNNVH(. ,. dF<gBEVBBGVB0G|b.f ؆dRE`kgb|HDkSEjؼdREBJfBEJEnB`|mpN-D LN^Nu |oNNVH(. ,..HD:|glM||HF>|gXO||G|~mF H@HFB@H@2Ё"HAHFЁHD؀kSEؼdREJEk|m pNB` -D LN^NuNVH(. ,..BGg^<BEgV<✚G|HF⌈0BDHD8 H@∀HDkSEؼdREJEk|m pNB` -D LN^NuNVH . $j ļfB".$j ļfBLN^NuNVH .$ļfBJLN^NuNVH .g*2<bH@|bQAU-@LN^NuNVH .j g` BA<☒|lB`|DAlpN⨰b-@LN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuNVpNN^NuF'pNNsF'pNNsF'pNNsF'pNNsF'pNNsF'pNNsF'pNNsNVN^NuNV/??<NMN^NuNqNqNq O h*#h ( ШШ//??<JNA *< z rN *< rN *< rN *< rN *< rN *<$ r'N *<n r&N *< r%N #h pNG?<1Hy8N \?<BHykN \?<"HyN \NNV0.?NA*-E N^NuNV0.?0. ?NA*-E N^NuNV ./ . /0.?0.?NA*-EN^NuNV ./ . / ./0.?0.?NA*-EN^NuNV ./0. ?NA*-EN^NuNV0.? . /0.?NA*-EN^NuNV0.?0. ? . /0.?NA*-EN^NuNVBBgN T-_N^NuNVB?<N T*(nN^NuNVB?<N T-_*.(n *.x(nN^NuNVB?<z.?N X-_N^NuNVB?<N T*(nN^NuNVB?<z.?N X-_N^NuNVB?<z.?N X-_N^NuNVJ.fB?<?<N X*(n N(n B?<BgN X*EN^NuNVB?<N T*(nN^NuNVB?<N T-_*.(n *.x(nN^NuNVB?<N T*(nN^NuNVB?< (n* /N r\-_N^NuNVB?< (n* /N r\-_N^NuNVB?< N TJf B.N^NuN |N^NuNVB?<?. N X(n(N^NuNVB?<N TJf B.N^NuN |N^NuNVB?<N TJf B.N^NuN |N^NuNVB?<N TJf B.N^NuN |N^NuNVB?<N TJf B.N^NuN |N^NuNVB?<N T*(n8N^NuNVB?</.N r\-_N^NuNVB?<*N T*(n8N^NuNVB?<+?.N X-_N^NuNVB?<,N T*(n8N^NuNVB?<-?.N X-_N^NuNVB?</N T(n(N^NuNVB?<0N T*(n8N^NuNVB?<1/. ?.N P-_N^NuNVB?<6(n * /?.N P-_N^NuNVB?<9(n* /N r\Jf|N^NuN B.N^NuNVB?<:(n* /N r\Jf|N^NuN B.N^NuNVB?<;(n* /N r\Jf|N^NuN B.N^NuNVB?<<(n* /?. N P*(n8N^NuNVB?<=(n* /?. N P*(n8N^NuNVB?<>?.N XJf| N^NuN B. N^NuNVB?<??.(n //.N O (n (N^NuNVB?<@?.(n //.N O (n (N^NuNVB?<A(n* /N r\Jf|N^NuN B.N^NuNVB?<B/.?.z. ?N O (n(N^NuNVJ. f*B?<C(n* /?<(n?N O -_N*B?<C(n* /Bg(n?N O *(n8N^NuNVB?<G(n * /?.N P-_N^NuNVB?<H/. N r\(n(N^NuNVB?<I/.N r\Jf| N^NuN B. N^NuNVB?<JBg/. /.N O Jf|N^NuN B.N^NuNVB?<Kz.?(n* /(n* /(n * /N DO*(n8N^NuNVB?<LN TJf| N^NuN B. N^NuNVB?<N(n* /?. N P*(n8N^NuNVB?<ON T*(n8N^NuNVB?<VBg(n* /(n* /N O -_N^NuNVJ.f&B?<WI * /?.BgN O -_N&B?<WI * /?.?<N O -_N^NuN NVN^Ncon:prn:aux:pNNV:. EdB.N^NuBn ncN@:.(n8.&n3@4Pf:.(nJ4PfB.N^Nu ndRn`|N^Nup0NNVBn:.Ժnb*:.(nJ4Pg:.(n8.GP@Rn`:.IB4P(nBT(n9|/ B'?<)Hn?<Hy$N4O (_JgB,N/ B'?<)Hn?<Hy)N4O (_Jg |N/ B'?<)Hn?<Hy.N4O (_Jg |N|J. fV/ ?<)HnBgHlNO (_/ B?,<HlNO (_/ B?,B'HnNO (_NB/ ?<)Hn?<HlNO (_Jll/ ?<)HnBgHlNO (_Jll&n6B,N^NupNNV(nBT(n , fB'(n ?,NTJf(n8N^NupNNV-n=|:. ?0.WcN"(n(nNTR0.WdRn`TN^NupNNV nCp Qz. Nz:. -E?.Hn/.NO N*/< b?. /.N>O NN 4P0 N^Nup NNV n Cp QHn?<(n* /NO N^Nup NNV n Cp QHn?<(n* /NO N^Nup NNV n Cp QHn?<(n* /NO N^NupNNV n Cp Q/<?.<HnNO Hn(nHTN:P/<?.<HnNO N^NupNNV n Cp Q/<?.<HnNO Hn(nHTNtP/<?.<HnNO N^NupNNV n Cp Q/<?.<HnNO Hn(nHTNP/<?.<HnNO N^Nup NNV n Cp QB?.<(nHTNO N^Nup NNV n Cp Q/.?.B'HnNO N^NupNNV nCp Q. f4B?.<HnNO *.ez`zE N^NuN B. N^NuNpNNVN^NpNNV.  e. ~b| N^NuN B. N^NupNpNNVJ.e . c . f| N^NuN B. N^NupNpNNVB'.NTJfB'.NRTJg| N^NuN B. N^NupNNpNNVN^N%ReadCardReadIntegerReadRealReadOctReadHexReadWordReadAdrcon:p NNV n Cp QHn.N\N^NupNNVHyhh.N\N^Nup NNV nCp QHn< N8H\Hn< N8H\N^NupNNVHyh^N8XN^Nup NNV nCp QBn:. ?0.WcN@:.(nJ4Pf TN^NuNHn:.(n4PN8H\0.WdRn`TN^NupNNVHyhh:. ?(nHTN8O N^Nup NNV n Cp Q?. ?.?<dHyhvN%VO Hn?<dHyhvN8O N^NupNNVHyhh?. ?.N9PN^Nup NNV n Cp Q?. ?.?<dHyhvN%O Hn?<dHyhvN8O N^NupNNVHyhh?. ?.N:PN^Nup NNV nCp Q/. ?. ?.?<dHyhvN&0OHn?<dHyhvN8O N^NupNNVHyhh/. ?. ?.N:O N^Nup NNV n Cp Q?. ?.?<dHyhvN+O Hn?<dHyhvN8O N^NupNNVHyhh?. ?.N;PN^Nup NNV n Cp Q?. ?.?<dHyhvN+O Hn?<dHyhvN8O N^NupNNVHyhh?. ?.N;PN^Nup NNV nCp Q/. ?.?<dHyhvN,BO Hn?<dHyhvN8O N^NupNNVHyhh/. ?.N<O N^Nup NNV nCp Q/. ?.?<dHyhvN,zO Hn?<dHyhvN8O N^NupNNVHyhh/. ?.N$PN^Nup NNV nCp Q|N^NupNNVh_N^Nup NNV nCp QHnHnN=zP.  g`N^NupNNVHyh^N>XN^NupNNV nCp QBn:. ?0.WcN`HnHnN=zP.  g .  f:.(nB4PHnN>XTN^Nu:.(nP0.WdRn`TN^NupNNVHyh^:. ?(nHTN?.O N^Nup NNV n Cp QHn?<dHyhvN?.O ?<dHyhvHyh(nHTN,OJ9hfHn?<Hy8NHO J9hf`N^NupNNVHyh^(nHTN?PN^Nup NNV n Cp QHn?<dHyhvN?.O ?<dHyhvHyh(nHTN.&OJ9hfHn?< Hy8 NHO J9hf`N^NupNNVHyh^(nHTN@PN^Nup NNV n Cp QHn?<dHyhvN?.O ?<dHyhvHyh(nHTN.~OJ9hfHn?<Hy8NHO J9hf`N^NupNNVHyh^(nHTNAXN^NupNNVHyhh:.?(n HT?.NFNO N^Nup NNV nCp QHn:.?(n HTN8O N^NupNNVHnN>X.  f`.  f$N?N8:. ?(nHTN9n\N0.  fN8:. ?(nHTN9n\NN>N^NupNNVHnN>X.  f`. f|N^NuNN>B.N^NupNNV3htN^Nup NNVHn:.?(nHT. (nHTNO(nJTmfJ. f2Hyh^(nHTN\P(nJTmIGh^z6QN0Hyhh(nHTN\P(nJTmIGhhz6QN^Nup NNV nCp QpNN^NuN7pNNVI8CGhzWHyh^?<HyhB'HyhrNOHyhh?<Hyh<HyhrNOBgNGVTN^NJpNNVJ9hg(nhB9hN(nHTN\X(nhN^NupNNVJ9hg(nhB9hN0B'NJg(nHTN\X(nhN(nBN^NupNNVhN^NupNNV.N @TN^NupNNV< N @T< N @TN^NupNNVBn:.n b0:.K (nJ4Pg:.K (n4PN @TRn`N^NuNH8pNNVB9hN^NMtpNNV<NIlT.NIlTN^NupXNNV nCpPQ?<PHnN9n\Bn<jNJT=|:.?0.WcN<_NIlT0.WdRn`T<kNJT?<NLTHnNHXB'.NTJgP:.ndF.NIlT:.KP(n P:.SE8.Ef <DNJT:.RE=ENV. fJJncD:.nf <CNJT<DNJT<_NIlT<DNJT:.SE=E.  gN2BgNLTz8.IP(n @=n:.SE?0.WcN< NIlT0.WdRn`TN^NupNNV:. EdF:. EPd 24 THEN Cy := 24; Scroll64; END; Crsat(Hmy64+Cy,Hmx64+Cx); END CR64; PROCEDURE Home64; BEGIN Cx := 0; Cy := 0; Crsat(Hmy64+Cy,Hmx64+Cx); END Home64; PROCEDURE INS64; VAR i:CARDINAL; BEGIN FOR i := 39 TO Cx+1 BY -1 DO Scr[Cy][i]:=Scr[Cy][i-1]; END; Scr[Cy][Cx] := " "; UpdLine; END INS64; PROCEDURE DEL64; VAR i:CARDINAL; BEGIN IF Cx > 0 THEN FOR i := Cx TO 39 DO Scr[Cy][i-1]:=Scr[Cy][i] END; Scr[Cy][39] := " "; Cx := Cx - 1; UpdLine; END; Crsat(Hmy64+Cy,Hmx64+Cx); END DEL64; PROCEDURE OutChr64(C,S:CHAR); VAR d : CARDINAL; BEGIN IF CharIsPrintable(C) THEN IF C="|" THEN RevFlag := 1- RevFlag; Reverse(RevFlag); ELSE Scr[Cy][Cx] := C; Crsat(Hmy64+Cy,Hmx64+Cx); Write(C); Cx := Cx +1; IF Cx > 39 THEN CR64; END; Crsat(Hmy64+Cy,Hmx64+Cx); END; ELSE CASE C OF 15C : CR64 | DEL : DEL64 | ELSE CASE S OF Cup : IF Cy > 0 THEN Cy := Cy-1; Crsat(Hmy64+Cy,Hmx64+Cx); END; | Cdn : IF Cy < 24 THEN Cy := Cy+1; Crsat(Hmy64+Cy,Hmx64+Cx); ELSE Scroll64; END; | Clf : IF Cx > 0 THEN Cx := Cx -1; ELSE IF Cy > 0 THEN Cy := Cy-1; Cx := 39; END; END; Crsat(Hmy64+Cy,Hmx64+Cx); | Crt : IF Cx < 39 THEN Cx := Cx+1; ELSE Cy := Cy+1; Cx := 0; IF Cy=25 THEN Cy := 24; Scroll64; END; END; Crsat(Hmy64+Cy,Hmx64+Cx); | Ins : INS64; | Hme : Home64; | Und : Clr64; ELSE ; END; END; END; END OutChr64; PROCEDURE Scroll64; VAR i : CARDINAL; BEGIN FOR i := 1 TO 24 DO Scr[i-1] := Scr[i]; END; Scr[24] := Spaces40; Cursor(0); Crsat(24,Hmx64); Write(12C); WriteString(Spaces40); Crsat(Hmy64+Cy,Hmx64+Cx); Cursor(1); END Scroll64; PROCEDURE Reset64; BEGIN Cls(1); Reverse(1); RevFlag := 1; Clr64; BASNEW; CR64; PrintLn(" **** Commodore 64 BASIC V2 **** "); CR64; PrintLn(" 64 K RAM SYSTEM 38911 BASIC BYTES FREE"); CR64; PrintLn("READY."); END Reset64; PROCEDURE BASNEW; VAR i : CARDINAL; BEGIN FOR i:=0 TO LastBasicLine DO Mem[i][0] := GetTerminator(); END; END BASNEW; PROCEDURE CutBlanks(VAR Source,T:Strngs); VAR i,s,e : INTEGER; Target:Strngs; BEGIN s := 0; e := Length(Source)-1; IF e >= 0 THEN WHILE (s < 39) AND (Source[s]=" ") DO s := s + 1; END; WHILE (e >=0) AND (Source[e]=" ") DO e := e - 1; END; FOR i := s TO e DO Target[i-s] := Source[i]; END; IF e >= s THEN Target[e-s+1] := GetTerminator(); ELSE Target[0] := GetTerminator(); END; END; T := Target; END CutBlanks; PROCEDURE Store(VAR S:Strngs); (* S MUST start with digit ! *) VAR P,Line : CARDINAL; BEGIN Line := 0; P:=0; IF S[0] IN Charset {"0".."9"} THEN WHILE (S[P] IN Charset {"0".."9"}) AND (Line <= LastBasicLine) DO Line := Line*10+ORD(S[P])-ORD("0"); P := P + 1; END; IF Line <= LastBasicLine THEN Mem[Line] := S; IF P = Length(S) THEN Mem[Line][0] := GetTerminator(); END; ELSE PrintLn("?Out of memory error."); END; END; END Store; PROCEDURE PBASNEW(VAR Arg : Strngs) : BOOLEAN; BEGIN BASNEW; RETURN(TRUE); END PBASNEW; PROCEDURE LIST(VAR Arg : Strngs) : BOOLEAN; VAR i,from,to : CARDINAL; flag : BOOLEAN; BEGIN Cursor(0); FOR i := 0 TO LastBasicLine DO IF Length(Mem[i]) > 0 THEN PrintLn(Mem[i]); END; END; Cursor(1); RETURN(TRUE); END LIST; PROCEDURE LOAD(Arg : Strngs):BOOLEAN; VAR Name,F64,Line : Strings; a,e,l,i,j:CARDINAL; Err:INTEGER; BEGIN l:=Length(Arg); IF Arg[0]<>42C THEN RETURN(FALSE); END; IF Arg[l-1] <> "8" THEN PrintLn("?DEVICE NOT PRESENT ERROR."); RETURN(TRUE); END; e := l; WHILE Arg[e]<>42C DO e := e -1; END; IF e<2 THEN RETURN(FALSE); END; Copy(Arg,1,e-1,F64); Print("Searching for "); Print(F64); CR64; IF F64[0]="$" THEN F64 := "DIR"; END; Concat("\1541\",F64,Name); OpenStream(d1541,Name,READ,Err); IF Err<>0 THEN PrintLn("?FILE NOT FOUND ERROR."); CloseStream(d1541,Err); RETURN(TRUE); ELSE BASNEW; PrintLn("LOADING"); WHILE NOT EOS(d1541) DO REadString(d1541,Line); Line[40] := GetTerminator(); CutBlanks(Line,Line); Store(Line); END; CloseStream(d1541,Err); RETURN(TRUE); END; END LOAD; PROCEDURE RUN(Rest:Strngs):BOOLEAN; VAR line10 : Strngs; where : CARDINAL; BEGIN line10 := Mem[10]; IF Pos(line10,"TEST",0,where) THEN DOTEST; RETURN(TRUE); END; IF Pos(line10,"SYS",0,where) THEN DOSYS; RETURN(TRUE); END; PrintLn("SYNTAX ERROR IN 10"); RETURN(TRUE); END RUN; PROCEDURE DOTEST; VAR I:INTEGER; BEGIN FOR I:=1 TO 100 DO WriteInt(I,8); WriteInt(I*I,8); CR64; END; PrintLn("YEAH,IT WORKS !!"); CR64; END DOTEST; PROCEDURE Dprint(S : Strngs); VAR i :LONGCARD; BEGIN PrintLn(S); FOR i:=1 TO 200000 DO ; END; END Dprint; PROCEDURE DOSYS; BEGIN EMUL520 := TRUE; Clr64; PrintLn("*** C64 - GEM ***"); PrintLn("Installation procedure ..."); Dprint("Memory Bit-compression :"); Dprint("128 K RAM check ok."); Dprint("256 K RAM check ok."); Dprint("512 K RAM check ok."); Dprint("1024 K (1MB) RAM check ok."); CR64; Dprint("Clock speed up : 1MHz"); Dprint(" 2MHz"); Dprint(" 3MHz"); Dprint(" 4MHz"); Dprint(" 8MHz"); Dprint(" 16MHz"); Dprint("*** Ram response too slow ***"); Dprint("Clock switched back to 8 MHz"); Dprint("----------------------------"); Dprint("Horizontal video freq. :"); Dprint("doubled.Video shifter-enable:"); Cls(0); Reverse(0); WriteString("Done.8 MHz clock gated to processor input now"); WriteLn; WriteString("*** Error : Harddisk simulator cannot be activated ***"); WriteLn; WriteString(" CBM 1541 drive is (physically) required for this."); WriteLn; WriteString(" Hit the SPACE key on your C64 to start the simulated "); WriteLn; WriteString(" GEM (C) (TM) Desktop routines "); Wait(" "); Cls(0); END DOSYS; (* brrr *) PROCEDURE BASIC64; VAR Cmd : Strngs; BEGIN IF Length(CmdLine)>0 THEN CutBlanks(CmdLine,Cmd); END; IF Cmd[0] IN Charset {"0".."9"} THEN Store(Cmd); ELSE IF Length(Cmd) > 0 THEN Cursor(0); IF NOT EXEC(Cmd) THEN PrintLn("?SYNTAX ERROR."); END; PrintLn("READY."); Cursor(1); END; END; END BASIC64; PROCEDURE EXEC(VAR S:Strngs):BOOLEAN; VAR L,Cmd,Rest : Strngs; Flag : BOOLEAN; i,a,e : CARDINAL; BEGIN L := S; (* Find end of command *) IF Length(L)=0 THEN RETURN(TRUE); ELSE WHILE L[0] = ":" DO Delete(L,0,1); END; (* IGNORE ":" *) e := 0; WHILE L[e] IN Charset {"A".."Z"} DO e := e + 1; END; IF e=0 THEN RETURN(FALSE); END; Copy(L,0,e,Cmd); Copy(L,e,Length(L)-e,Rest); CutBlanks(Rest,Rest); Flag := FALSE; IF (Compare("LIST",Cmd)=Equal) THEN Flag:=LIST(Rest); END; IF (Compare("NEW",Cmd)=Equal) THEN Flag:=PBASNEW(Rest); END; IF (Compare("LOAD",Cmd)=Equal) THEN Flag:=LOAD(Rest); END; IF (Compare("RUN",Cmd)=Equal) THEN Flag:=RUN(Rest); END; RETURN(Flag); END; END EXEC; BEGIN EMUL520 := FALSE; InitStringModule; SetDTA(ADR(MyBuf)); Reset64; REPEAT C := 377C; RawScanIn(C,S); IF C=15C THEN CmdLine := Scr[Cy]; END; OutChr64(C,S); IF C=15C THEN BASIC64; END; UNTIL (C=3C) OR EMUL520; Cursor(0); END Emulator. nxNPJ@fB,/,HnxNP?<N;FT0.gNBn`>0. n /NbXJ@g"0,g0. n /HlvN^PRlRn0.nm0.N^NuNVBnHl/.NLBP-@f0,g/.HlN]PRl` /. HnNaPBBnHnHn/.N F ,gP/,NNX-@`HnHnNaPJ@fP=|0.f0.g>0.ne0.nf*0.nb Bg/./,NN, /.NBX`zHnHnN`P @m`D/,HnNDP/./,/,N /,NNX-@/,HnN PJ@fF0.g*0,g/. HlN\P?</./,NM `N0.. }= S .. }= SZX81 A}S ATARI 800}S . }B S .. }B S 3D_LABYR81 C}S ANIMALS 81 E}S ARTILLER81 H}S  ASSDEMO181 K}S ASSDEMO281 M}S *ASSEMBLE81 P}S BIORHYTH81 S}S # BRICKOUT81 V}S & CAR_RACE81 X}S )CASTLES 81 [}S +rCOSMIC 81 `}S 1<DISASSEM81 b}S 4 GALACTIC81 e}S 7hGASMODEL81 h}S =GHOSTDRV81 k}S ?GRANDPRX81 m}S BUHAMURABI81 p}S EHANGMAN 81 s}S LIRRGARTE81 v}S PJUMP 81 y}S VKAMEL 81 |}S [ KONG 81 }S dLIFEGAME81 }S kLUNA 81 }S oMILLION 81 }S s!MISSILE 81 }S |NIGHTDRV81 }S 6PACMAN 81 }S 5PANZER 81 }S t QUADRGL 81 }S = OOSSSSSS]@K7O !@vb * @!  #6###6#6# #6>!dw#>2dB!d5:do:dGgoc"d~ DwDM_W:d( `i#f%8ç( `i+f%8:d ( ! f%8˧( ! f%8!dszʸA0:dʸAA:d_|*d8%8C(4!d4*d)$:S(+5!d5*d,)$(8K(44!d4*d),[( 55!d5*d$),* @#B!p@B:do:dGgocf%0!d4@*2@M|("DM>!)00= |怰B0#R"2@"dA,B|2dA ,B|2dc R#:B+)<* @6+66+6* @6#66#6* @* @6+6 6+6* @6#6"6#6* @6+* @6#* @6+* @6#* @!6* @!6!!B*B2d*d[2d[4d~2ed~2hd~2kd~2nd*d[6d[4d~2fd~2id~2ld~2od*d~2gd~2jd~2md~2pd* @! #6# :ed >D@BurBD͸BuͤB:ed :hd :gd(eB:fd >aYB͋BaBͮB:fd :id :gd(B:gd E:hd >@B7rB͸B7ͤB:hd :kd :jd( B:id >YBL͋BBLͮB:id :ld :jd( B:jd (F:kd >@BrB͸BͤB:kd :nd :md(B:ld >YB͋BBͮB:ld :od :md(B:md ZF:nd >@BrB͸BͤB:od >YB͋BBͮB:pd ÌFþFEBvͮB:ed eB:fd B>GB8ͮB:hd  B:id  B+G B ͮB:kd B:ld BGBͮB:nd 7B:od <BG* @86#6#6#66#6#6#66#6#6#66#6#6#6:nd(7B:od(<BG:md * @6#6:jd * @ 6#6:gd * @b6#6G*d~((6y(yDO!BH*B}(++######"B*B}(##++++++"B:%@ :&@͕G͕GG, :&@ |G͕GG *d[4d~("dTGBH2  *d[d~v( +v( R!00 }(R hGXx(Yy( R8* @6#64~& 6+4#tG:fd( ͕GtGTG:gd(*d[4d"dtGTG:ed |GtGTG|G* @`m!`m[ @v)1&'>7.39-v'>-89&22$$v,*3*7&9*"!~v8&;*8(7$"~v14&)8(7$" !~v):7&9.43$ v51&>$ ~v 841;*$!"~v ~Hvvv :,*3*7&9*v"=~~@!~pv">~~@~ v4== ~`= ~` ~`= ~`v4>>~ >~0~ >~0v>= >= v :8&;*8(7v5$~Z>~=v(!"~H55!"~!"~v !"~H5!"~v#5$~Z>~=v$(!"~H55!"~!"~v%!"~H5!"~v(,# ~ ~j~@ ~v2v3v4= 9-*2&?*.8<&.9.3,>4:  9>5*551&>8841;* v56 v6 751&>6  5 841;*6  8 v77!~Tv<5~~ v=" $~D~v>V~0~ v?" $~D~v@:7vA*751&>~%~ vB77841;*~~@ vCA "#~vDA "$~vFvG 8-4<2&?* vH6 vI 6 6  > vJ6 ~ 3 $~ vK :14&)8(7vL>= >= vMA ##~vNA #$~vPvQ  2&?* vR6 vS 6 6  > vT6 ~ 3 !~vZ !~pvdvevnvo (%$'>-89&22  97>+.3)9-*-.))*3,41)  &8&(1:*9-*).89&3(*9-*(-*89.8).851&>*):8*9-*0*>8  .<&1043  /9:731*+9  09:737.,-9  29:7374:3)  (7*&9*&1&'>7.39- vp6 vq 6 6  > v6 ~ 3 vv '>*'>* vvvvvvvvvvvvvvvvvvvvvvvvvv nRH?N\0.SnJ@fBln0,g0<2< 9A`S@9@Bl`$Rl l f9l`0<6,`S@9@`H0,n^@H=@HѬx lno&`/. nRH?N\0.SnJ@fBlnN^NuNVA-H ln0,l¾l 0,Zlo0,Zlo$Rl l f9lIIMMNHNN]@7H (!v &3.2&18vv>574,7&29-&91*&738&'4:9;&7.4:8&3.2&18+7429-*:8*7v v . ~v / ~v &3.2&11*&73.3,,&2* v(# -&;*>4:*;*751&>*)'*+47* v*. v,. 3 ~Hv2 .3897:(9.438 v4Q >4:<.119-.304+&3&3.2&1.<.1197>,:*88<-&9&3.2&1>4:&7*9-.30.3,4+ v6] .<.11)49-.8'>&80.3,>4:&8*7.*84+6:*89.438&'4:9>4:7&3.2&1<-.(->4:7*8543) v8X *.9-*7>*834.)4,:*88<-&9>4:7&3.2&1.8.<.11&80>4:&+*<6:*89.4389-&9 v:* 9.2*.<.11034<<-&9>4:7&3.2&1.8 v5*32*+47,*9<-&9.-&;*1*&73*):534<3443*-&89&:,-92*&3>9-.3,>*9 v>. v@. 3 ~HvF0+  )4*8.91.;*.39-*<&9*7+74,2448* vP (39~vR1&89~vdvf (:7~vn 3:2(:7vp "~vr 3 + ./vx3 ~ ~Hv79597+ /~v<73,597+ /v+ ./~  v/ v/ > / 3  ~v 57*;(:7v/  > (:779597v/  3 (:7<73,597v ~\v &  &*.4: v& .89-*&3.2&1>4:7*9-.30.3,4+& v;~!~ v& ;+ .~ 3 v;v + .~/  v. v. > . 3 ~Tv.  > ~Hv< &117.,-9.,.;*:5<-&9&3.2&1<-*7*>4:9-.30.3,4+ v& vS 51*&8*9>5*&6:*89.439-&9  <4:1)).89.3,:.8-'*9<**3& &  & 3 ~v6 v"6 6   6 6 6 ~v; <-&9<4:1)9-*(477*(9&38<*7& &  '*>*834 v. v. > . 3  ~rv(39(39~v1&891&89~v1&89! ~~~Hv 3:257*;v "~v 41)7+ /~v 41)<+ /v//  > + /~/1&89~41) 6 6 1&89(:7v$.  3 6 6 (:71&89v,+ + 6  &  v6! .034<34< (39 &3.2&18 v@ !~zvv0~~@v .,49.97.,-9 v0v 8-&11.8&;*9-*2 v. v.  3 !~v 89&799&5*7*(47)*7 v ~Hvv &3.2&1 v ~pv <&3951&>&,&.3 v. v.  > ~HvvX .~vb3~3:2vl ..~vv+ . "~v3v /.~v+ / #~/v //~v ""~%v ..~v //~vvvvvvvvvvvvvvvvvvvvvvvvvvv>33 &8::@n(@coX95973,597*@@ 1)1)S+.8-F&24*'&V.8.9;*7>82&11K)4*8.91.;*.39-*<&9*7+74,2448*.8.9,7**3+.8-.8.91&7,*(&9)4*8.9-&;*+4:71*,8 '.7).8.9&3.(*2*&1+47(&98 24:8*':9)4*89-**&71>'.7)(&9(-.9 <472)4*8.9'&70)4,)4*8.91.0*2:)5.,.8.9;*7>82&11&24*'&" `/. ?.N\/.NDX=@ @f`(-?<*78(-0*vv')"%"~!"~"%#~v !~zv v6~ ~ == v-~ @~v.-~~v 1~.v)~ -. ~`.~1 v1v.v8@!~v(;8!~ @~v2~!~p  v<#;8~~!~p  v>#;8~~!~p  v@#;8~~"~  vB$;8~~"~  v88v ~(~ 0&343.*7 v8~& v8~' v  v~( ~@ <.30*1 v5-.v%5-.~5-.%~4!~Mv?B5-.$~4v~( ~@ ,*8(-< v;v#;~ ;~~\v6~(~ v;8;8;8@v,;=;?8;8~v1 ;>;?v6 9~v@8~=$~;=9vB8~=!!~\;=9vD!=~="~|!~vF> ~9;>9vH> ~#~9vJ> ~, ~,vLG)~ ~,>~=~~"~4vT=>vV=>vX99!~v^ ~ vh> ~,>~vm #!~;vr >%~vw==~vz!= ~=#~X ~Hv|.~!~ v} >= = v~ >= v >= v.v !~v~ = v.~!~ v$~=~ v%~=~ v$~=~ v%~=~ v.v~%~ 34(-2&1 v+ v+ ~ / "~v ~ v& ~@v' ~@v$~ &79.11*7.* v$~ v`   <.3)89.11*    1*.(-9*7<.3)  3&(-7*(-98    89&70*7<.3)  3&(-1.308 vP ).*<.3)89&*70*&*3)*798.(-  <&*-7*3)*.3*885.*18.3).*8*3'*7*.(-*3 v3 <*7.890&343.*7+:*7;47)*7':0:).89&3 v & v :3)+:*7-.39*7':0:).89&3 v' vvX>~~(vb/>~ vl>vq !~Hvv>~~(v/>~ v>v>~~(v(>~ '>*'>*'>*'>*'>*'>* v>v !~Hvvvvvvvvvvvvvvvvvvvvvvvvvvv\R/.NX=@ @f .N^NuNVHlHlxNP)@f$0.gHlxHlN#JP`HlxHlNtP0.g"HlHlNP)@fHlHlNLPN^NuNV ,g /,NX0.g/,NXHlHlN>P)@g?,?,/,NаP/,NX ,gb0,g@HlN'LXHlHlxN%PJ@gHlHlxHlNٸ HlHlN"nP`HlxN' XJ@gHlxHl*NيPHlxHlN%HPJ@gHlxHlHlJNf N^NuNV0.@|2.. HA|A쨊6@N^NuNVBgNzT?<B/,N /,NX-@BgB/,N `h/,NXЮoHnHlbN!PRl`R`>HnHlN!PHlNXHnB/,Nf J@gRl` HlN!RX/,HnNӎPJ@f ll HlN!.X`" lf HlN!X`?,HlN! \N^NuNV?<NT)@h ,h)@d ,h)@`Blv n)hrBlpNŬ,H|g|g`*`/. ?.N\/.NX=@ @f``|gAADDDDD]@7A !@v&88*2'1*7)*24v 47,!v )+.1* (v'*,.3v(1)-1)+.1*.3(-1v21)(?*.1*3v< 1445vF1)'85&19*3vP 1445vZ1)-1 & vd .3(-1vn)/3?1445vx .3(-1v)*((v/73?1445v7*9v*3)vvvvvvvvvvvvvvvvvvvvvvvvvvN~PJ@g\=@0.N^NuNV?.?<LNXN^NuNV/ A&H`0+ |g/ N*X A"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ NhTJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ NP?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NXP'@&Bk0<LN^NuNV/ &n0+ |fk@ 0+ |`g0<`&Bk`R0+ |g A̐A잀A &'@`*0+H/NzX&'@ fk `k g-K?<?+ B?<BN n!@& k f HlN~X0+ |g0<`0+?/?+ NP7@Sk0+ @l kfk `k@ Bk0<` SRH|&_N^NuNV/ &n Bk0+ |fk@ 0+ |@g0<` `R0+ |g A̐A잀AAA2D3D>D?D?D]@7A !@v &88*2'1*7)*24v'.1).3;*79.*7*3v j47,!'*,.31)-1"%".3(-11)(1)'71-1((+77-1.3(-1)/3?$.3(-1)*((/73? 7*9vvvvvvvvvvvvvvvvvvvvvvvvvvgԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.AB PNPLN^/W DhNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @)P^)hb-l^-lbBEG>O|g|JGn|m` REHlx/ NRPO`SEHlx/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`b .6.HЃR$@ nH|0fRZ"` R"H|9n nH|0f$n R&@fSE .6.HЃ @B n0L N^NuNVH0&n BnH|bf=| RH|rgH|wgH|ag <`F ,>$@ f*A$H`0* |f` A"Ҽm A"Ҽm <`B>Bj Bn+H|+f =|j H|wf?./.N\>j `hH|afB0<n?/.N \\> @f?./.N|oKpKNNNKNN]@7Kn܍ k!@v 4$'>(-?<*78(-0*v5 *@"!}@u _w(z( Lw >+ +"Lw(z >u<# [R++s#r*"@* * @ "*@"!6*@""6~v:( *#""6~Lw(qz( ((cͦ|h|y()z(!D}"!6!""ͦ{( :s B|{x2͏|:O* "*Aw#"!5 v*"@* * @#w>u<*[RDM!}@u _w(z( Lw "*":wrx(`i""" :w Fwrx CLw(z ͕y*~"#*#*u ~#("( ~2@#~2@###~(y# #":w"((ǹ(&T]#~8&8"R}+V#^#!(8= DM8 = ޯџFww"Yw "CɯGK~G#~ЀO#*"x(!6:w( 2Fw[ͧx(:w (͏ww:(!BDM:w H Fw!x:w ((DM*~ #~ (O#~#" ~*+#~(8@0((  "#N#FFw(] GO:=x[ͧxx`iKBM @ ͎x(*"rx(!7A x!!qC *D *:= x"rx!CEm{Fy{Gb{H{I/{J<{KA{Lz[ͧx [y*"rx(q#p#6~"*~#u  :[ͧx [y*s#r#6~"*~&8#~((( 8@8>~#":wz":w] 'K[#>u<(/~ (CS#"x *q#"*#"*# y *#  ~8 @0 #("x=͞z<2*~#":wzx(#:w (Fwx!!q:w#"{͞z(z>!w{~2͞z(:Oz!y(>k͞zx>yx>ǡy*~#"2˿G*:wx@y#"*"ͅ{!~ (*~#"0G:w(]!4!: > >w#: 8 R86#6#:O(:w#:w:w#:O( :w#:W(:w_[s#r:O!| F:2Ow#yw#*[zU|{U|[#u w* :GU|#>8*"@ :;@0:%@< * @T]! @ (08 (08  "*2: '/7?@v@ABJCKDEMFV^GWgoO_'.9E71(77(717781&87&81.&8717*8E8*9E&))&&)(&8:'8:'&8'(&&3)=4747(57*95457**=/5L1)85/5G/54:9@.3&@*=85*=)*-)*(&11G5:8-(&11&))&&)(&8:'8:'&8'(&&3)=4747(578934*=&+&+)/3?)/3?/7/7/73?/7?/73(/7(1)J&))L1)'(1)&'(1))*1)&)*1)C1)LC1)C1)&C.3()*(.3()*(1)I71(77(7177)&(58(((1)I-&1.3I(4:9I(8'(-1&)(-11)C1)JC3*7*97*9.2.2.21).1)&77711)(5.34:91)(5.34:91).(5..3.49.1))(5).3)49)1)71)&255*54(3(?3?&&1-*)('8585)*'(&+&+)*'(-1.=.> d')*+47,'*,*3)&88*2'1>(4251*9*34*77478v!u"@@4 v &88*2'1* v/ ?=$&88*2'1*7,*1&)*3  9&89*)7:*(0*3 vA "~@v%$#~vvvvvvvvvvvvvvvvvvvvvvvvvv$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NV 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @)P^)hb/,b/,^Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .~HHKLK@KK]@7@ !@v '.47->9-2: v?  v .~@v  ,*':7989&, v !~zv+,+v( )&9:2)*89&,*8 v2 !~zv< )9++,vA)9~ ~ vFvH? vP '.47->9-2:8 vR +:*7 vZ<++#~`#~`v_~H~2IN C N6T] x Æ@* @K "$N6! 6 "7A";A#"/A"@AK @v '7.(04: v(-?<*78(-0*%$vv 1.991*'7.(04:9 v + :8*0*>8"#(439741'&924;*2*39 v" >4:-&;*!'&118 v$! 9>5*.3;*78.43>4:<&3951&> v& '&1143*9.2*'4:3(.3, v' '&110**58'4:3(.3, v(8v*+"#"~ ~@ ~8~v,*"##~!~ #~X8~v2 *39*71*;*1% v4A !~Pv6A ! ~Xv8A  A % !~Pv:1Av<*"#~~ 1~@~v>vF$ vH7~~ vJ! ~`  vL7vN$  vP)"# !~vR" $~D~vTG~0~ 1*;*1 1~0 '&11 ~( '7.(08 vV" $~D~vd'~!~ vf)# ~9'$~`vn,8)~~ @~~vp("!"~8!"~8!"~vr"!#~ 8!"~vx~@~vz~B~v|7@!~v~$~D~%~>7v~F!!~7v(&11"!!~v'vD$~~@ <&39 ~@ 51&>&,&.3 ~0~@vA > !~HvA 3 !~vvvvvvvvvvvvvvvvvvvvvvvvvvvNo files were added. Duplicate filenames: %s %sCannot unsave %s brCannot read file: %s Updating file: %-12s Adding file: %-12s Adding file: %-12s %s\ARCTEMP.CVTARCTEMP.CVTFile not found: %s bw+Unable to create temporary file %s Converting file: %-12s reading,Cannot unsave %s You must tell me which files to delete! Deleting file: %s File not found: %s \\File not found: %s Extracting file: %s brWARNING: File %s already exists! Overwrite it (y/n)? %s not extracted. bwCannot create %s brAn entry in %s has a bad header. %s is not an archive %d bCCFFFFFF]@7C M!@v@* @!  #6#6 #6 # * @/ "du "d# "d!"d>@2 dx2d*d~< 6+w! dN*d | "d* @ T] s*d++~ # ~ ͎AE *d+"d6######6*d6#"d#####6*d:dGW #_ +~(##~(++++>@2 d"d6.: d(=!dN <<2 dG x @*2@M|("DM>!)00= |怰B0#R"2@vꨦ(-?<*78(-0*vv -  v$ v6~(~ v(" $~D~v*$ v,$ (281 v21"!!~v<'8!" ~H!"~!"!~H v>2. 8~@8~8~8v@. - - . vF3~ ~ - vP %%%~yvZ ~pvvvvvvvvvvvvvvvvvvvvvvvvvvCR unpacking state (%d) File has an invalid decode tree CON:AUX:PRT:@$??rawCON:AUX:PRT:%d aRbRzUU{UHN{U{U]@7INb ;\+!@v O/4-3<44)<*)3*8':7><*892.)1&3)8v -.~v 1*~ v 1~v8(47*~v'&118#~`v %~ vv ~zv v &#~`v 3%~ ~(v -+~~ 3"~!~pv3~ +v+v3v+~#~v3!~T"~|v3+v3v+v3~%~v 3~v3vv?@~@!~Hv :%~vv(v3+~"~|v4 +~v5+v63~~v78+~~0~ 3~B~pv83"~+v9+v:3v; :$~v<?@!~ ~8v=~~@v>v?vFvGvHj!~ ~  ~(~ vI+~ ~ vJ3~@#~`vK-3!~ + ~(3~p+ vL3vM+vN :$~vO?@"~@~(vPvQvdvevf6~(~ vg+~ ~ ~vh*3~(@~ !~ ~vi 3+ vj3vk+vli$~~@ %~ ~`  ~  ~` ~( ~` vm :$~vn ?#~XvovpvvvX~ ~  ~(~ v+~0~(v+~0 v+v :"~@v?@!~ ~ vvvv1*v~~ 8(47*(&891*'&118 ~~ 8(47*8(47*~$~1~!~H #~`'&118'&118#~`v_:?    :~?~  :~?~  :~@?~  vH%~~ ~ ~  ~(~ v*~~ &3,1*4+*1*;&9.43 v*v s~ ~  * !~4  * !~4%~~  * !~4 * !~4v #*$~ *~ ~v*~~ 85**)4+(&3343'&11 v8v$5~~ v)-~~ *1*;&9.43 * 85**) 8v. ~~ 57*88+ v8A + $~vB+~ ~~vL/+~ v+v=8B*$~4v>8B*$~4v+~>"~v 4~z# =>+"~++v=+!#~2  ~/v 4"~@ ~ ~%v#~z# ==+"~@4~v*("%$~!"~"%%~v(~ ~/v#~z# ==+"~@4~v(+vx'&118'&118~vz=+!#~2  ~0@v}74"~@ ~ ~z# ==+"~@4~v%($~(%~1*1*~pv($~(%~:?   :~?  :~? :? :~? :~? :~@?   v"($~(%~11~v,($~(%~8(47*8(47*!!~v1*"~ ~;v'&118~~zv!($~(%~~|v+~!~Hv+vv ~zv8(47*-.-.8(47*vA~~ 34(&3343'&1181*+97*51&>  -.8(47* -.vA ~{@vA 7 ~@vv (&891* vv v +~~(v + <*11)43* v +v c~~   ~~   ~~  ~@~   v c$~~  %~~  ~ ~ ~(~  v R~0~ 8(47* 8(47* -. v 8(47*-.-.8(47*v -.v $ v  ~{@v#(v#-v#2~~ 9-*(&891*84+(&72&.3  :8.3,>4:797:89>(&3343>4:2:89)*8974>&119-*(&891*88:774:3).3,9-*(.9>4+(&72&.3+.789*39*79-*&3,1*4+9-*(&33439-*85**)4+9-*'&11&19-4:,-9-*(&891*8&55*&7.381.,-91>).++*7*39548.9.438*&(-,&2*.9<.11&1<&>8'*5488.'1*-.99-*29-*&3,1*4+*1*;&9.432:89'*,7*&9*79-&3*=(**).3,$)*,7**8.9.85488.'1*8-449&'&114++9-*8(7**3&-.,-&3,1*-.9&(&891*439-*'&118)*8(*39 v#<)~(#~` 57*883*<1.3* v#FA$~l%~ v#Pv#ZvvvvvvvvvvvvvvvvvvvvvvvvvvT_ruI {>IC zk +,o&O❴6/=o?.)*&RP`]~CT_ru@뾿w/?o~C )bڰ͒!&Oo[n.Ikc$G2@(&`q&v礮&\*K!LhlOno/^o=z8=o8jLq쎞Y{:#dhƢ p%BL_j,o&O❴6/=ooDhlOno/^oD`>뾿w/?oD_jk5q:o&O❴6/=ooDhlOno/^oD/?oD_j͒!&Oo[n.Ikc$ )cb* 'jb;{NjS%BmT_< mW Z~A\ !)00= |怰B0#R"2@M* @A ##6z 4 {>W* Nx((++~v6#6" N#6#6 6+6##~v6+6" N+6+6 6#6:)N(N:(N(#* @>+6##~v(+6# >2)N* @ >#6++~v(#6+ >2)N>2)N:(N/2(N* @ >#[*NRA6!wR>2'Nv!*4NQB"4N*6NQB"6N*8NQB"8N:2=N T]~(8͂@>8#(+#('+++(!+(+(+(###( #( !=N5bk:2'N( 66&:@* @#",N6#6#6#~vB6 6#6#6#6*,N#",N*,Nw#w#w!-Nw*.N|@= !&N> xدw* NBB4*"N~. 6:&N ""N~ 6.6 6!&N6(((B*$N+!.N5*$N>&46+v;!"C"C* ! N6#* @" N!"$N!"*N!":N>2&N> 2/NC #w -.8(47*8(47** N6+6##6 6:/N(==2/N* @ 6#####   ͹@!"(N> 2.N>20N@BB!0N5 !.N~C!'N~ *AͼA͐B> 20N͎D!0N5 *$N+++C #(0*$NC~+x x(rC* @# ~?w# v .3;&)*7 v%$'>(-2?<*78(-0*v 8(-<.*7.,0*.9% v=v"#~$~~ =v #!#~vvvvvvvvvvvvvvvvvvvvvvvvvvq ` $̂]=o? P`\q"c*Ra &Q):#ұsN!kn|ѣSLa0ҡ?bܽ6xc%pXp5qa*MF U  ˣ} * P"Rl,mŠ p} V"^fУxLUNQdp1(b)Q sf &tr#(7=IŮ;8pϫ_ *Rv> qVqK4;zSLa5Ҥlzˣv>A0LzSLa6Ҥlzˣvv?L0PhjNد~*X}`0]lվJ<4DzοׂM߃@j={-،m>ͯ1ڙ-:=ͯ}Y0-{ ˭ۢͰm-4+}4ݶJXݠ?6/U!;@jz)4"k ;=o?#0*ҡ/п_禎&Oo[n.IkcS '*_禎&O&okZn.Ikc"SLaDʡZ *<0sfbr#Qa*> b+ J=>F|v>cS"SLaEʡ\l+l J=>F|vv?L0c*PS|d0,,@ڭ/k@O2L$Ob#4GGJKJ~GJJ]@7G !!@v"'()*-1&'()*&+853??3((545*520>7G 0P7Y0b7j#0r*7z$$$$$$$$((((((((,1IOy,6Iy,1ISy,9I\y,1Idy,2* @"*+"*#">2*#"~2:8H8d~!  :0 :  :! yz(=ր!y{3`( *#"~2:! z@|:G(ʖx!z|O ~ʖo&"*|v}v* ":9*F2x#"A~T~h~ʞ~~~~ ".͋> ͋*#"~v}*##~v"+~v}*#"~#OG |v}v}:!1-o(!=.g(!>.|͋}͋́~}>͋́~>. *:0+#">͋~v>͋}:ʤ~!yO ~͋}::Gͭ!yO ~͋#~͋}:͋}:!y:8v}* "*#KBE*~v͋#*! "*#"!5+}W͋z͋*w#"!"}:3)+89&9*2*3ʞ~v! y!@ }!D!y"@v ).8&88*2'1* v(-?<*78(-0*%$v 57*88&3>0*> vA #~`v$!~vvvvvvvvvvvvvvvvvvvvvvvvvva+п<Ԭm`Lc:Epm̡I*-m#OA?/Y0!Io1 z5q)zJl: J=>F|v/>/]́mo1 z5q)zJlm J=>F|v/>L",`5ʡ\l+lFq݆OЫ#cȷ`L>R@O0N:QQ-UqUNqUqU]@7N 2v!@v7'>(-?<*78(-0*/:3$v* @ "d"d"d"d"d"d"d* @1"d7" df"d"d " d! " d!"d"d"d:(d!($%"d>('2)d!F""d* @"$ds"&d[B?DC( DtEDE>E[BnD?DC( DDE͈E*d"d*dR "d!*d"d*dR "d>E[BnD?DC( DDE͝E>E[BnD?DC( * @+"d>2 dDtE͝E͈EE[BnD?DC8+F :(d>2('2d>2 d*d"d[BnDͳDCD͈EEF,&1&(9.(&vEx8;*d~ 3:d= >w+"d>2d*d##~(ͤC6 6   !*d|(~6 "d>>2d*d[d~ x( *&dR(! *$dR(!*dww#w#w+w+w*d "d*d!66#6#6+6+6mF*d| xO #*dD"d>w2d~( 2dͤC:dw*dN:d:dG >mF> > 6+"dx<2dvTT]~. >* d,D>* d+,Dk >* d+,D*d#~ S6"dJ= >* d++,D: >* d+,D>* d++,D!((ʗF >(:dF0w w+>111* @##~+w. >06~6.(6!## *d: dO: dG!~(4 #>(: d(EE !~6w +* @>+6+~v(6##*d!R~w# ~Rw#vEU:d*dw 6Kd*dB( *dB( B !! ! w"d>=>ɒ8sEU:dKd*dB( *dB( J !! w! "dE:)d*d66.E:dͫE~(+6E:dͫE64: dO}G0*d!+*2@M|("DM>!)00= |怰B0#R"2@2d*d6*dKdwB( !*dKdwB* @+K"d! (wC"d* d~(6#66#6* @# ~?w#   *dr#r r#r#r+ r#rYFYF> *dN* d" d* dr#  YFYF> >* d+++,Dvv  '&991*89&7,&1&(9.(& vb >4:(&324;*>4:78-.5<.9-0*>8"#8-449.3,.8)43*'>'42'8&7*)7455*)<.9-% v 8(47*9&'1* v( 74(0*9!598  . v* *3*7,>!598  v, '&8*598  = v. (>143!598   v0 2*9*47  4 v2 (*397&174'49   v4  v6 598   v8   v<#~@~  1*;*1 v>1 Av@1  1  "~xvB1  "~pvF!" ~HP1   vH&  ~x1 vP8 #~`"~@vR3~#~`vT8 3 vV3vX18"%"~!"~"%#~#!~;vZ" $~D~vd~~& vn~@~@8 #~`vp3~"~@vrD!~p3~@3~@#~`~03~@8 3vt3vxA ~pv1"!#~zv~8%~v1#~ v 1#~ v&1!"~ v3~"~@v8 #~`383v3v$8 "~@8 #~`#~*v3~"~@v8 #~`8 33v1"~@3~~v8 18 1~v1v8 38 #~`vA #~*vA #~,v ~Hv!!~  v3~ ~v83$~"~@v ~8  v 8 v 8  v 8  v3v'?   v~ ~? vK~@~ -4<+&7(&3>4:.3;&)*9-* $~ (>143*25.7* v"~~? v#$~!~  57*88&0*> v" ,&1&(9.( v,A ~v6v@ !~ vvvvvvvvvvvvvv-4<+&7(&3>4:.3;&)*9-*vv(>143*25.7*vvvv57*88&0*>94(439vvvvvvK P ki9.H@ F !" Q_ <1(z5q)z_Ob`Sy.8c:PpzS̛4Ҥlzˣ<`CƍSy p0żY*MFa+п<`Syc:zS̛9*MFa+п<`SyAIp0żi*MFa+п<`II]*k ͒!&Oo[n.Ikc:#0żɿ@ rߦ: r({ow"x6_禎&O&&OVOm#0*O&O&&OVPn.Ikc:#0ż)ɿ@ rߦ: r({ow1!_禎&O&&OVOm#0*O&O&&OVPn.Ikc:Pp92ż9o1 z5q)zJЫ#cz]jv[>P`X>/2żIo1 z5q)zJЫ#cȷ`Sy>Sy"S̛ʡBBE'FE F F F]@7Bq Xء!@v 갮v"! * @ #6##66 #  #6* @d>4 +}|ZA>> y >!d"d*d^#V#~#"d!d6(O!@2d NyGbk ~(!d5=A4( ZA>64[d:d+r+s*2@M|("DM>!)00= |怰B0#R"2@v,*8(-<.3).,0*.9""#v( &942* 4 v2'*<*,:3,"! %v<(-?<*78(-0*$$vd.~~ vf 444 vh.vj vl~$~ vn""#~~@v1"! %~Jv.~~Hv 4 v.vA ~^v""#~~v ~vvvvvvvvvvvvvvvvvvvvvvvvvvsRPƋeX ءQaRQG雉ZA%v[Eµ H=0T?tvɟRd'Gw`DLz1|f%o2 FeEF{ B$gFʼnA"PB&HGPD h} *^d@P'|0ඦ} =S'• =іPycqŅZEv1 2YX%Bn:f ,BaB)6d4 -yXg9u1F\ #^`B>TlaZd/ҎW槻oFb[VqOi7Cb_ ~h7 TvĴm;|@@{5HL^OO|3/Ol`cg?|-ddl= aP!)O֞G*XyP, g^y Va QPت%V%QC@°1bx DDHDHHHH]@7Dq 7!@v>*2@M|("DM>!)00= |怰B0#R"2@H>~ *d6+>( >.6"dE#>} *d6#>(>.+* @ >. #6!>>(6.ͪA*dt| }DM* @^+4> 6Cd @̓@}O* @% 6.v'?  v 4,-489)7.;*7%$'>-89&22vv" &3+&3,8,*8(-<.3).,0*.9 v;v '*8(-1*:3.,:3, v&v!"~H~v$!"~H~ ~0;v"#!~&~ v""# ~!"~&~ vv.~~(v ? v!%..~(.~@ v".v$$~ ~` v&~  ~` v(A8~ ~#~`"%"~!"~"%#~v*~ "~@"~v," ~ ~` v.# ~` ~`  v2(!"~H88!"~!"~v4!"~H8!"~v<1""~vF/!"~H!"~!"~H# ~.vK !~zvP ~8vvvvvvvvvvvvvvvvvvvvvvvvvvʡ"j% 'ʢ)j9!3*-ʡ9ڡ+4٣kP4VFlFY5jm93b?z8!=g 'p%>Vg%Ju$wQG>X!qg$AXRg3z+d#ey9CQFsoc,#s&P2u&T:"")dx+B6]+`&x(+0)`cC1Ы*0*~ڬPlxoڧ%V}e"s3r`PqDb j94Ѩ#:$J*f>f1 *Ji⪬**91 Jêꫴ#pIm`c:{ "갡*ZqDG4>C;[ ]eAo#[p`!)i|##mŪZ g1Y>3lF3y VcT1uAM Re bPѭAo!巨8 L&(|Ep%i{FҊa{#|1kxи|[+nOȒWcr{ź4ອ깕KA5Oepk {GK}{{{ ۸>HỽK}k[3лx%Epw5{0`BZ8 c=f1]&I7pѾoSO/CʫӛG0@[}#La C Sw|g 1q0YZ+ЬtK='0'&`W3Y|E_clfSp жzDpRܲH'%!ݢtrcr=J,jPwU M #ɳ6g<Ɲ\{ʓn6`ɂW=#IJ0R5Jyg O,BDEEE]HH^HiHjHjH]@7DEx !@v b*2@M|("DM>!)00= |怰B0#R"2@HI *d6+>6"dY *d6#>6"dʹA3dKd "dQ *d"dA *d"d *d#"d* @ > #6!> 6>̓@}_*d>v( (6 6"d*d Kd @* @+4>6v ,7&3)57.=vv 8(-<.*7.,0*.9 v " v!" ~H~v?!"!~H ~vP1""~vU8~!~HvV8vY<?vZ %~vvvvvvvvvvvvvvvvvvvvvvvvvvO`E1:(*GE+*Gr l@$f'RGLZ,rM*  j# ժHR>XOa'?Rg;b Lbb]-s#2*wa~!L,*@#Db,/f;v`/:PSVPrSP)c`P@,1&@K. 7aT2GOwL#qKTQ)?_0A@J:P)1_(Rq$.A@:j.,%l cG(pL~*G XO#%)a3!F#>0KasBHPks`b:Pq$. 1C\,*G!7*GGb@rM**G!MKvJGb@r(*GGb@rM**GGb@#0&*GfT[aGb@r{8rM*  m0kPq$. *G,(*G`Qhu!)GOwLhA9CO#%znzV⎁^|GOwLhR)+O#%Uz[?|8 O#%Uz[/b6aT45(pL~3d=RR'@[?Gk+zrY``f;v 2ÁL IGb@R+Te. 7*G,IW. 7*GлT|.`IG;:B:LhTq$.`A:+Pq$.`A:+Pd tA rYf;v 2&\-Z]"vU2WWZ[Z@ZZ]@7@iҍ u!@v -&22:7&' vv '?  v'0! ~ v0'$$~{h},{v(&-  #~O4֠v2-& #~$0v<&)$#$~.(vF1 $~ vd~~@ v'~@#~` (7*&9.;*(425:9.3, v#!~  2477.894<33*</*78*> vF~ :*'*797&,*3.3?=$$'&8.( #~` ;43+7&307*-*7 v4 v 2~0~ .3).*8*285.*1.89*8)*.3* vRE &:+,&'*/&-7*1&3,&18 ~ 04*3.,-&22:7&'.)&8&39.0* v! 8:2*7.8(-*7*.(-?:7*,.*7*3 v#%"~@ 97&:89):).7)&8?: vG?   v ~;vA / %%%~v )~v 5~v ?~v 5%!~>v8$~/v-~;v*-8vL >~@vM&->!~vN .!~ vO 6~v4 )~vfvg" -&22:7&'.1&88).7'*7.(-9*3 vh ??~vp# .2/&-7* ? )*.3*77*,.*7:3, vz# 89&7'*3 ) 2*38(-*3-:3,*78 v!. 2*38(-*3<:7)*33*:.3).* v 89&)9&:+,*3422*3 v55.v6~~`v55~v *.3*+:7(-9'&7*8*:(-*).* v" -&*1+9*&11*7*.3<4-3*789&7' v # <.7-&'*3/*9?9 5 *.3<4-3*7 v  ).*89&)9'*8.9?93:3 &-&v . -&1&3)<.7-&'*3574-& v I&)> 0,0473,**739*97&99*3 ~ -&'*3 '0* 0,,*+7*88*3 v (8 ):-&89)&-*7 '08 0, ~ ?:7;*7+:*,:3, v ?~0$"~`v (~ @v >(#~v 0= 1&3)<.7)2.9 &)> 0,574-& ~ ,*-&3)*19 v 1? v ,#~~1 1 #~~v <.*;.*1-&<.1189):0&:+*3 v 6v 2*76v 6-&6v 6~$!~v >68~N@v #~]v ~Hv 6~%%~Tpv &&6v 88>6v (~v ~zv G,#~~1 1 #~~v H :3)<.*;.*1-&;*70&:+*3 v R6v S2*76v T6-&6v U6~$!~v \6&!~Zv f #~av p  ~Tv &&6v 88>6v (~v,#~~1 1 #~~v3 <.*;.*10,<.1189):)*.3*2;410?:*88*3,*'*3 v6v2*76v60'6v6~$!~vh68 ~`vr #~]v| ~ v886v (~v/,#~~1 1 #~~v0! <.*;.*1-&<.1189):*.38&**3 v:)v;2*7)v<)-&)v=)~!~vD)~$!~vb)& !~ vl #~avv ~ v)~8 !!~0v #~]v ~ v)~ 5!~`v#~~1 1 #~~2*7 -&&'*7):-&893:7 5~ 2*38(-*3+:*7).*+*1)&7'*.9 ~ &184 v\ ~ v88)~v $~zv>(v-)>v *~vZ $~zvd$(~(~!~%v *8(v 88*-v $~zv+.(~ &85~H~v(6~ v,$6~ ~@~v|5(~@v)5(v) !~ffff5!"~/v%5?~5)~H5?v5(v )))v !~`vv` ~~ )~@ v v0 %%~v#~~1 1 #~~2*7 &'*7'*)*30*)4(- ~ -&22:7&'.):-&893:7 '08~ 0,,*97*.)*&184 vv #~~1 1 #~~2*7 -&&'*7'*)*30*)4(- ~ -&22:7&'.).7,*-4*7*33:7 ~&-& -&1&3)&184 v4v@(@!~ ~vJv!4v!>D  v!?v!\5 -&22:7&'..(-0&333.(-99:3<&8):;*71&3,89 v!f$ 3.22).7*.3*3&3)*7*3;*7<&19*7 v!gv!z %%~v!v! v! v! v! v! v! $~Hv!v!C .3)*.3*77*,.*7:3,8?*.9;43/&-7*389&7'*3):7(-8(-3.991.(- v!8~H5~H 574?*39)*7'*;4*100*7:3, v!5 -:3,*78)-.38,*8&29 )~ 2*38(-*3 v!1&5v!@ ?:'*,.33)*.3*77*,.*7:3,0&2*3&:+/*)*32*38(-*3  #-& v" /*9?98.3)*8 v"&-1  #~$ 34(- v" &-1 -& v"$ 5745*7843 v"V $~Hv"_v"`5~!"!~0v"1#~`!"!~0v"5~ % ~v"1%~% ~v"5~@%"~v#1~ %"~v#(]?  *.3*5-&39&89.8(-*&298+:*-7:3,0&71)*7,7488*-&*99**83.(-9'*88*72&(-*304*33*3 v#)##~`!~  v#*!~   v#+!~   v#,!~   v#-!~   v# %%~v$ )*.3*8(-<*7+&*11.,*&298+:*-7:3,7.*(-93&(-3*74:3).<&3)*28(-7*(01.(-*3).*7*89'*;4*10*7:3,?.99*79;47)*.3*3*398(-1:*88*3 v$*#~`!~  v$"!~  v$"!~  v$"!~  v$"!~  v$"!~  v$"!~  v%X %%~v% )*.3*&298+:*-7:3,-&*99**9<&8'*88*78*.304*33*3<&7&'*784389,&3?*797&*,1.(- @$~L5~ 2*38(-*3<:*38(-*3)*.3*394) v&v&$ v&v& ;*78:(-89):*834(-2&1 v& ~;v'A / %!~mv'v'- ;43).7-&'*.(-3.(-98&3)*7*8*7<&79*9 v'? v' %%%~ vvvvvvvvvvvvvvvvvvvvvvvvvvo=d|sN8ϙͳKoU]f\D J%v[e"5lɣ APJFɯ -CGyua~9b-RǾyM^N-#7^Jݢ{z^s%5߀]/bW9i+4p<2@VӿQNT;Zu[mGnGJNN@NN]@7@ "~!@v -&3,2& v$ vA ~0vA  ~@vv(v28   v48 v6.~#~v8  %~h  v:.v<8 v> ~~@ v@= < @~H~vB.~%~vD#~`~.  vF= .~ #"~vH.vJ#~`~@  vL1.vN = = 1vP? 1vR +~vT 3~vZ!~ ~@ ;*78:(- vd 33~vn~ ~03vx> vz>  & >  ? ~\v|> ~~v 7~v .~1v> = .!~v 7~v#~`.~> v ? .> v.v7 ~Hv.!~p~@>  <&73.(-98 v!~p%~h  v ++~v~ +%~>v~@"~  v!~p  v ~Hv. ~~0v.#~  v.v ~Hv ~#~  v ~Hv ~$~ v!~ #~  v ~Hv% ~!~H  !~H  v ~Hv"~@!~H 4 v ~Hv%#~`!~H  !~H  v ~Hv#~`"~P v ~Hv%~!~H vA~0~( 8477> ~( 8.* ~( -&*3,*3 v" !~zv,> = #~*v6#~`~@= v@? = v.!~p~@>  <&77.(-9., v!~p%~h  v? = ~Hv2~0~( '7&;4 ~( ,*7*99*9 v)#~~@ 34(-*.385.*1(-*3 vA !~vA !~vA / ~ v A 3 !~vvvvvvvvvvvvvvvvvvvvvvvvvvvd (425:9*78.3(1&.7423.':86:&)7&96:*7:1&39857&>)48*8(-:7<411*9473&)42.0748045).&2&39).&548.9.;(&88*99*'&3&3*'&19-&8&72.3:9*'&3,040-&3).0&504-1*35499-&8*3+:88&721*:(-9*-.*7&7(-.*-.30*'*.37.3);.*-+.8(-*78.2:19&38.3+43.*9*55.(-0:-89&11)425+&++,&1455)412*98(-89*&7.31&(0&++*'&8.(5&8(&15.3,:.3'&(04'89'&)*<&33*+7:*-1.3,&78*3&1-485.9&1?>&30&1.&5+*12:8?>57*88*&&1*58.143+:309.435&72*8&397.(-.3*24340*19*1*;.8.4324-.0&3*7<.33*94:&2*.8*3'*11*;:*89*55)*(0*,&:3*797.42*7(*)*8*774707&;&99*0&;.&7&:94'&-32&7,&7.3*&5+*18.3*41.;*34*11&>4:91&;*3)*1+*1.=3&8+:*-7*33&;.,&9.43+1.5+14589&:)&2289.(-574'*89*34,7&5-<.*)*-45+<*,,*3488*<&992*9*75*7.80452&33*6:.3,&7)*74'*&5489745-&3,*1-&0*3&)2.7&11&+439&.3*1&)*3).*'2&72*1&)*9400&9&9.55+*-1*79.39*3+&889*1*+439.504-17&'.).;.)*3)*8(-2&773.25479*:7*=5148.43*1*+&398*,*1>&(-9.25*7+*098*2.04143459.2&1e 0 j7Fkw  X]O1/(O1/(O1/(LQ8e뿡z{~_S7xBNr&1bA0z7jJ2=zө-]zz!]Pz7j2աzW$]Pz7[@=z7[`Fաza-]Pz7[6 ]Pz7ZJ2= z7[=ep!zө=ep!zW]_wbz7[@a=RRUDUIBUU]@7JBF̍ q' !@v* @!  #6###6#6# #6>!dw#>2d B!d5:do:dGgoc"d~ DwDM_W:d( `i#f%8ç( `i+f%8:d ( ! f%8˧( ! f%8!dszʰA0:dʰAA:d_|*d8%8C(4!d4*d)$:S(+5!d5*d,)$(8K(44!d4*d),[( 55!d5*d$),* @#B!pü@ B:do:dGgocf%0!d4ü@*2@M|("DM>!)00= |怰B0#R"2@"dA$B|2dA $B|2dc R#2B+)2'41.8.*79:3)04*3*38.(-2.9)*39&89*3./0:3)2'*<*,*3&'*7;478.(-9<*33)*7)7&(-*?:89&70,*7*.?9<.7)0&33*7:*'*7*.3*<&3))*8.77,&79*38857.3,*3 vP'%~~ 84118148,*-*3 vU-2  2.=!2.=!!2.= vZ& v\& ~ / %~0vdvn .77,&79*3)*8)7&(-*38 vx8~zv2!~v9!~v.77,&79*3"! ~vL.~!~vV6!"!~H .v` 2.6!"~6#~~vj.v-~~ )*7.77,&79*3.89+*79., v0~~ v,0~ v0v =~v>@~ ~v"~>~=~  v-=~=~v->~>~v<>@~ ~v~<>~p  v 8=!~pv8><>v6=~8=~v6>~8>~v& Av&  !~;v #~Zv8==8>>$~zv&  0 ~zv&  / !~@v&  . ~;v&  2 !~Zv !~;v )=~v )>~v.==!~p>~v2 ~zv+=~=~v+>~>~v.~~v +=+=)=v +>+>)>v->~-= v+>~+=  v -=+=v->+>v.v==)=v>>)>v =!~p><>"~;vH !~;v )=~v )>~v #.==!~p>~~v 2 ~ v ~|v )=~v )>~v .==!~p>~v )2.=~!~ ~@v ~|v )=~v )>~v .==!~p>~v )2.=~!~ ~`v ~|v'0~>~~>~v0~= v0v 88~v !~;v'0~>~~>~v0~=~ v0v 88~v" !~;vh0~=~~=vj~>~0 vl0vr 88~v !~;v0~=~~=v~>~0 v0v 88~v !~;vp3~~ 8.*-&'*3,*<433*35:309* 8v %~ vX=8=#!~ZvY>8>#!~\PvZ=8=#~]v[>8>#!~_pv]8=!~p#!~\Pv^198=!~p8>~%~#~[v_.=8=!~p8>~v`2 #!~\Pvb )=~vd )>~vl7=~8=~vn7>~8>~vo.~~vp 7=7=)=vq 7>7>)>vr6>~6= vv7>~7= v}6=7=v~6>7>v.v 8=8=)=v 8>8>)>vA98=!~p8>~98=!~p8>~~vv8>~ #~]v198=!~p8>~%~#"~\v?28=!~p8>~~!~#~]v )=~v )>~v #~[`v8=~#!~_pv198=!~p8>~%~#~^0v%.=8=!~p8>~~v2 #!~_pv )=~v )>~v #~[`v8>~#!~Zv198=!~p8>~%~#"~_vH28=!~p8>~!~p~!~#!~Zv )=~v )>~v #~[`v@4~~ )*7)7&(-*-&98.*,*+7*88*3 v#(!$~$~ v#)"~ $~ v#*#%~#~` 3*:*885.*1 v#2& v#4& ~ / %~0v#<& ~ / %~0v#F5~~ &19*81&'>7.39- v#P& v#R~<>~p v#Z& ~ / ~v#d ~Hv#v# 9-&98&11+4108 vvvvvvvvvvvvvvvvvvvvvvvvvvzsѢLP_JQrO[_n%duoo%S_r/O13n_{/,.1,y!HT6BYO_Asz7uyG>?z>FjnWAC z7>^A]Ҟ6z7TJ/z7TJz7TJW$z7TJ3pE(zM@8 z7TJ4(zM+1=o[Z*<[iZ3qIpJǾ)1FQ1<p#iZ3qIp}y0:FP1<p;iZc[7@aӲV1<pp#iZj[A 6-K iFZ<p8?b6U[0Jn0ió/!iZUi[A@ 6-KkFPóA@#iZ6PZ7Jj0:ó7*!iZe[J aOO S(G S:E S S]@7;ET <Ȩ!@v/:25v -~ v /~ v -~ v 5~v ?~v =~ vv $ v v $ v v $ v +~v&~#~vv ~x v&vv$ vv$ v16"%"~!"~"%#~ ~v(//?v-66?~v./-?~v2A ? 66~v3A  66~v4?~"~pv5!/~ / ~`"~pv7,6# ~@~ v8),$~l,$~,,~ v9 ,#~Xv< +~v=6$~~zv>6!~~Hv?6!~!~v@$6#~X?~~zvA 6"~vB+6vF ~ vd 55~vf -~vi5=~Hvn ?~vx "~|v ?~v --~v " ~v==~ v2~~ v4~ ~ v -~ v ?~v ~ v /:2 v% ~ /:25-89&22 vv? /:25.89*.385.*1'*.)*28.*,*,*3)*3(425:9*785.*1*3 v v Q 8.*04*33*3.-7*35:309)*78.(-&:942&9.8(-;434'*33&(-:39*3'*<*,9 v8 2.9?3&(-1.308:3)2.93&(-7*(-9889*:*73 vvD 84'&1)8.*.7,*3)<.*)*37&3)'*7:*-7*3.89)&885.*1'**3)*9 vvZ )*7(425:9*7'*,.339)&333&(-)*7-.,-8(47*1.89*;43&11*.3*2.9*.3*23*:*385.*1 v!)~(~ 3*<1.3*)7:*(0*3 v"4 v#v&~  /:25 v+v0~ :2.-3*3)&81*'*38(-<*7?:2&(-*3*7?*:,9)*7(425:9*7.3)*72.99*)*8'.1)8(-.72*8?:+&*11.,3*:*5:09* v5v:k <*338.*;434'*3:*'*7).*8*5:309*+&-7*3<*7)*3).*8*,*14*8(-9:3).-3*35&88.*793.(-98 v<v?d 84119*38.*).*8*&'*7;43:39*34)*7)*78*.9*0422*3)'*7:*-7*3.89)&885.*1'**3)*9 v@vA vD)~(~ 3*<1.3*)7:*(0*3 vE4 vFvI~  /:25 vKvN{ +:*7/*)*35:309)*38.*):7(-:*'*7+&-7*314*8(-*3*7-&19*38.**.3*35:3092*-7&:+.-7*25:309*04394 vOvP| ;42'4)*304*33*38.*3:7<.*)*7&:+89*.,*3<*338.*&:+1&3)*3).*8*789*.3<.7)&38(-1.*88*3),*14*8(-9 vQvRs <*338.*&11*5:09*&',*-419-&'*3<.7)).*5:09*:3)).*'4)*37*.-**73*:*79 vSvTQ vU)~(~ 3*<1.3*)7:*(0*3 vV4 vWvX~  /:25 v]vb ;*78:(-*38.*3:324*,1.(-89;.*1*5:309*?:*77*.(-*35:309*,:9#5:309*'.8-*7.,*8-4*(-89*7,*'3.8 vgvl/ ?:289&79*3)*885.*1*89&89*)7:*(0*3 vv6 ~`~ vw$ ;.*1*5:309*;.*1,1:*(0 vx$ v ~zv ~vv&~~0vv$ v&vv $ 8.*-&'*3 5 5:309**77*.(-9 v&~~ vv$ v$&v*~ ~~v 5-**v*~ ~@v,~ *~~v-,-,~v,v-*~5v4&~!~ v9v>$  vH&vMvR$ -.,-8(47* v\vf$  v,~%~vv6  ,  -,~   v,vv9  -~ ~   v&~!~ vv$  v&v ~@vvvvvvvvvvvvvvvvvvvvvvvvvv.|^Lbѭ'A@Wp@)* XvI{ۙ;q<nd9='`Q*.d a =,./t)LqASϡ ;)M ~qe؂4hS'ϙ `1DmiP8MRn B ]]`'X`@``]@7@z N-!v 0&2* v54" #~jv ~  v!~  (7*&9.;*(425:9.3, v~@ 2477.894<3/*78*> vd&"~@!~  7*,*13,*+&*11., vn ~j`vx54!!~vA 3 ~ vv~@~ ,:9*3247,*31*.)*72:88.(-).72.99*.1*3)&88):).(-.32.99*3)*7<:*89*,4'.'*+.3)*89):-&89&'*73:734(-02<*,;47).7 v^~ ~ :3&3,*3*-2*7<*.8*.89*.389&22-*.88-:3,7.,*75>,2&**3-.39*7).7-*7 v #~/v54!!~vv3 +41,*3)*0422&3)4889*-*3).7  ?:7;*7+:*,:3, v ~Hv54!!~v ~;vH *.3,&'*;43?*.,9).7).*24*,1.(-*30422&3)4834(-*.32&1 v $~Hv54!!~vv> ):0&3389"2&1&:8)*.3*2<&88*7;477&997.30*3)&33 v"8 84119*89):/*)4(-8(-1*:3.,89*.3*4&8*&:+8:(-*3 v,J <*33):-.1+*+.3)*89"  )&33'*042289):,1&*8*7  <&88*7)&?: v6O 84119*89):3&(-).*8*20422&3)4&11*7).3,80*.3*-.1+*'*0422*3)&33 v@<~ ~ ;.*1,1:*(0):<.789*834*9.,-&'*3 vD $~HvE54!!~vFvGvJ# ):'.892.99*3.3)*7<:*89*&3 vKvL *.3*74&8* vO ~zvT(%%~G~@vY 4&~v^ ??~v_?~"~4v`va# <&73:3, vbvcvd" 2*7089):*.,*391.(-,&73.(-9 vevf )&8):):789-&892*38(- vgvh 97.30*3)1.(-<&8 vi?~"~Kvr 55~v|=$~@!~ v6~% ~kv5 ~ #~kv ((=v(( "~fvv$~~ ).*5>,2&**3-&'*3).(-,*+&3,*3  ~`~ :*'7.,*38.-71.*'1.3,8*88*3.89 #~~@ 2*38(-*38:55* vF$~~P 2.9 %~ ~ 0&2*1*.31&,* v !"~Cvv! ).*5>,2&**38.3) (( 02 vv -.39*7).7 vvv ):'.89.38,*8&29 ( 02 vv ;47<&*798,*0422*3 vvvv# )*.30422&3)4.3+472&9.43 v ~j`v54!!~v>Avv$ v>~!~zv ~;v #~kv>~$~Ov>~"~v>~@"$~*v> ~#"~>v>!~ #%~Ev&9~ @v09~~v:v;-$~~ /*2&3)-&9).7,*-41+*3 v<8 <&*-7*3)):'*<:89148<&789  ,1&8<&88*72*-7 v=_$~~ <.7)&30*3)*2*)1*385*3)*7*8-&*99*7:-.,*9<&82*-78*.304*33*3 vD 8$~vN ? ~vX  ~*vb ++~vl+$~%~vu 545~vv $$~\vw 545545v=~ @v((=vvv)4& )*.30&2*11.*'9).*8*38(-7.99 v  ~*v ++~@v+#~`%~v 545~v $$~\v 545545v=~~ @v((=vvv4& ~*v$ )*.30&2*13&*-*798.(-)*7*.3 vv# +&(-*38(-&11,*8(-<.3).,0*.9*8 vv$ +*-1*33:734(-*9<&!28*( vv  ~*vvv )*.30&2*1)&309).7 v +~v !~/vv3!~ ~ )*.30&2*1-&934(-07&+9+:*7 v,#~`+ 9&,*):-&8934(- 8 ,1&8 v  <&88*7.3)*.3*2;477&9): v%$ 0&338934(- ? 0422&3)484-3* v* <&88*79&*9.,*3 v4 $~pv> 88~vH8~ ~0@vJvKvL%~ vM8~@$"~WvRvSvT! 8.*-2&11.*'*7?:4'):*.3* vUvV 4&8*+.3)*89 v\ ? ~vf $~pvp&~H@vz&!~ ~ vvD *.3.28&3);*789*(09*7<.1)*7'*7'*789&22-&9).(-,*+&3,*3 vi~ ~ ,1:*(01.(-*7<*.8*<.11)*7?:89&*3).,*8(-*.(-.-7*14*8*,*1)+47)*7:3,'*?&-1*3 v6~ ~ &'*7-:*9*).(-;47)*35>,2&**3 v ~Hv54!!~vv, ):-&893:3?<*.:39*70422&3)48?:7<&-1 v&~ ~ #+1:(-9;*78:(- v 6~v $<&79*3&:+).*?&-1:3, v%~ ~ <&8<&*-189): v ~j`v54!!~vA $ "~v=@~ v=!~  ~vv@!~p~ -*7?1.(-*3,1:*(0<:38(-):'.89*390422*3 v545 ~*v 6~vvvV!~p~ ):'.89'*.)*.3*2+1:(-9;*78:(-1*.)*794*)1.(-;*7<:3)*9<47)*3 v  ~0@v$=~H@v.=~~ vBvCvDL~ ~ )*78(-*.(--&9)*.314*8*,*1)'*?&-19):'.89+7*. vG545 ~*vH 6~vIvLvO )*7?:89&*3).,*8(-*.(-8&22*19,*7&)*+:*7).(-  ):2:889).(-34(-*.3<*3.,  ,*):1)*3  -4++*391.(-).*5>,2&**3&:(- vV  ~*v`&!~H@vj&~ ~vtvuvv$ ):-&89*.3*4&8**77*.(-9-:77& vwvxvy$ )*.30&2*1+:*119)*.3*3;477&9 vzv{! &:+:3)+7.889,*2:*91.(-*.3 v|v} 5&&7+*.,*3 v~ 4&~v ? ~v 8"~@vvvv ):&19*70&794++*10455 vvv$ ):-&89)*.3&72*80&2*1?:94)* vv ,*7.99*3 v  ~0@vvQ!~ ~ ):-&89,*<433*3).7?:*-7*38411*.3+*89,*,*'*3<*7)*3 vk!~p~ <.*&:8,:9:39*77.(-9*9*3  07*.8*3;*71&:9*9<411*3).*  5>,2&**3&:(-*78(-*.3*3 v !"~Cv=~H@v=!~ !~(vvv ):'.89.3*.3*38&3)89:72 vv ,*7&9*3;.*1,1:*(0 v=!~ @v="~ @v ="=!~%v((=!v ~&@v(((=!v2v4$ )*.3*3*:*548.9.43.89 ( 02 v5v6 ;42&:8,&3,85:309*39+*739 v<vF=~H@vP=!~ vZ((~vdvevf# )*.30&2*1-&98.(-)*3-4*(0*7 vgvh" ;*71*9?9?:2,1:*(0<&7*3).* vivj 5>,2&**3,*7&)*+:8807&30 vxv:~ @vvv$ ):'.89.3)*7<:*89*,*8947'*3 vvv:~ "~6v" ).*3&9.43&1*0&2*1;*7*.3.,:3, vv <4-39)*.3*2'*,7&*'3.8 vv 3.(-9'*. v !"~Cv:~@ %~:@v! )*.304*75*7<:7)*;43,*.*73 vv" :3).25479.*79*357&*7.*-:3)*3 vv ,*+7*88*3 v !"~Cv:!~ !~>v# )*7?:89&*3).,*8(-*.(-'*3:9?9 vv" )*.3*-&:93:3&18,*1)'4*78* v !"~Cv:#~`!!~Av 2*38(-*32.93.*)7.,*2 vv! .39*11.,*3?6:49.*39*384119*3 vv$ 8.(-&:8)*7<:*89*-*7&:8-&19*3 v !"~Cv 97:9-&*-3*84119*3+1.*,*3 vv 3.(-9&:+0&2*1*37*.9*3 vv"v, 3*:*885.*13*:*80&2*1 v6 ~j`v754!!~v9A 3 "!~N@v@vT ~ v^v_v`" ):&72*7.77*7):-&89/&)&8 vavb 97.30*3;*7,*88*3 vh  ~0@vrvt)~ ~  vw'~@~ 2:99*784*-3(-*3 vy) ~`~  v|v ? ~v 8"~@v (~v (~v 6~v +~v 5~vv v ~ $~ 0422&3)48 v (~@~ .(-<.1197.30*3 v  -&1'*07&+9;47&:8 v  ;411*07&+9;47&:8 v  3&(-97:-* v  !1&,*57:*+*3 v "-.1+* v vvvvvvvvvvvvvvvvvvvvvvvvvv&3 .HrFA\XM7kހP"Gm7d@(oV1 2dZ*c,@ȁFL̡2έ㦌d'Q1 3`V8Mӯ Dis 4sr9{@m2>|*U1Ǡ4kc63oޠHbBHҘA)f#{I!-8~ ^*sX^bQ wanYyWz_%|^!B_XF!pmXoyi|GFwUf>vgXo̧[nBxXUs@,hFi![ HƖ $Ƃmұgw8FqہlQ'nZ[by lq{^vF7JwUc o ˜lԱm( m,Rae*gxVhe1TqajWvꫢ]%\eL*ǡuKZERh_ G(QUoP+{1X$gp Y[ 1\!WUYmaNjƺ ˮQZ}U{*_a`eݱGi\TlbhZ& 9Ѫmɺʡ iY BpTWteRnf~^Vunj5a7ddEɌin}e\zr-ewQvWRgB|ywp 6icS1yFATgk^%\ru}Me}c%E&.F/ 5Wc (-7.8945-?<*78(-0*v  4                                                                                                       v6666666444444444v,ꩩv!t>!V^(4^5V{8 z0* @ " @*t "t!@8c>v>2t ~  >#F  > > ># >v:t=2tf 9  !i"t##>wwT* @"t>2t!q" @ x v:t!D ~> >w#wtͲE:t!t2t( ~DwEDͲEE(w# Et~# !d:t#= vq cdd eeg hh xhpiij jjkkllsmQn UnBn?okobphp Vpnqqq }qVrbrerBshsttv:t:t*t"tgĸD*ttF*tFF= FF*t ~  "tFF= FF*G>w#ɗw#w#6#w#(w# t*t~# !E~v#^#V#*ttFF:t !C = T]*tFv *u "u*u+>u< ### +++~pG#~qO#V6 fEr+q+p6*t> (# "u!t ~( ('(2#|G:4@GdbjDMIGGQG|GIG!QG|G2IG!QGdIGQGv F !"()/01789@AHNOUV\]^defmnu{|}~v I*t"t!t?:tGĸD!t~(5:&@2t_!t~_I>0V 0(HN(DG2tx v f(˖! v(˖:t8x(͸D!t6ÊI:t :t ;K 7> 2t͸D> G!tF( >`2tx=2t!t6 @:tg !͸D:t_( !t5 ˟2t!t6_(6:t_wC( :t (;{w:t82:t !t  ˮ*t ~v( ##~++v("t:to(!t>w!Gv q:u2u!b"u2u*u^{#V#ʵJG~(x >4õJ#~(JKu _! ~(8 :u B˻ <!OG {~q0 >2u ~B(v !!~R ,>2 u ~R: u( = 2 u<2 uB< : uI++~## R~ :4@I ~( ( >DMtR*u8:u=2u6#6#q#p#w>###"u!u5ŸI:t=:t:!u2!u!u:u4!b~#(####+#dq#p#6#6#6>v N51&>51&>*7*t K FH!"u!t?tEJ͓I͓I*u+|  w#vt:t:t2t!t6fE!*t"t͸D!G!t4͜K:tg(:t!t:t_:t(!tk ##~ 6*tA ~ ! ~#### ~  ~( ((8 #>0!ts:t_V )!t~#  ~(8 #>0*t:t!( ~#    >0!t*~#6(4( !t~sW(9S 5*t:t_:t!( k(#+~ 6 > "uG:t_(2t×Gv!t ~( 4(( 6#!"u~(5*ty~(4(((R (N# "u:t !"u~6:t4_ !tG[u!b~# ~(####+w#w*u6!tG:#u=(:5@!#u6!t"$u:t=(*$u >w# "$u*$u6#6 #fE+6+6 v!tZw#!"tDG!bPw#!"u* @} "t!%@~< K!"4@!&u>02'u:#u=mFFHtEJ͓I͜KL:'uGfE͓ImMLZK:'uGfE:tOjN_UN>qN!t6*t"t!GqNqN!%@~<  fE~<(*t" @v"~@ vR >4:-&;*,497*1*&8*>4:7  ,.71+7.*3)2.885.,,>(7&?>  043,-&874''*) v(= .347)*7)49-.8>4:2:89  (1.2'&':.1).3,!!2-.,- v2X :3+479:3&9*1>>4:-&;*431>  2.3:9*89.2*:39.19-*<-41*  ':.1).3,':738)4<3 v<$ 9&0*(&7*4+9-*7411.3,'&77*18 vFO >4:<.11,*9&'43:84+598*&(-8*(43)8>4:'7*&09-*9.2*1.2.9 vP 8(47*9&'1* vZ6   !598   !598    598 598 v\3 '7.),*  !598  '&77*1  598 v^ ~zvdvn"~@ vx :8*9-*+4114<.3,0*>8 va "  (1.2')4<3  #  &8(*3)  $  ,4'&(0<&7)8  %  24;*+47<&7)    /:25 v: >4:-&;*+.,:7*8&3*=97&>4:&(-.*;*598 v -4<2&3>51&>*78 v51v"51~51"~@"~ v -8~v851v+51v5~51v+5~@v5v751vv,"~@ v6 +.,:7*8 v@~@~ 8(47*8 vJ%~~ -.8(47* vT 5~v%%%~jL75~v%~(5$~`v0%%~~vI9!"~!"~" "~h!"~" #~j!~Hv'8%%# ~j,!"~%%#!~j.v07575~v)'~H~}L$!~49v'~'~v0+5+5~v 8485v08585'v 85858v084* ~@85* ~@+5+5~v+~ ~v/"~@ ~+v9++5~@/ 6 /  / /~  v&9++5~@/ / / /~ v0+v:$~~ 51&>*7 5vDH$~%~ ,49 8 598 %~ 9.2*<&8 9 8*( vN%~ vX*0~ %~ '43:8 ' 598 vb!~05%~5  85vl85-8"!~"vv5-5v -885v%~%~-8v.~51v+.#~/v.v $~Hv 55~v5515~v+5~#~/v.~~v A .v ~Hv v%51~%~av* <.33*7.851&>*7 5-v4 -*,49 -8 598 v>vH 9-*49-*78,49 vMvR5~51v\55-5  85 598 vf5vpv#51~ >4:,49 -8 598 v 9-&98&11+4108 vvvvvvvvvvvvvvvvvvvvvvvvvv)[Fz2F)tOO2F)u'oճ!rT4A*U 2F)7t׉2F)[@G{G!c5p'׉FY$,`ζ2F){{m),}R7rӸ[RJCi}9[|iБEa{2a{1渗UT}' P)I]'R K K"N"N#NB#N#N]@7Bn܍ S!@v  A~  #AS@* @J̈́@̈́@̈́@̈́@#̈́@̈́@̈́@̈́@y  (7~[@S@* @Z{ z AS@* @3~< 6+w* @l[@>(7>w#S@* @|{ z HA !AA  # y2A !A+H!!!!!v ~ vv 1.+ v.~"~v܇%~#~`.  #~`.!!~.~."~@#~,.#~`   ~@  ~#~`.  v.vo~"~@   ~@  %~"~@   ~@  ~ "~@  ~@ v ~~0 ,*3*7&9.43 v ~ ~` v 2~v (~v E)  $%%%&%'%(%(&('$)%)&)')()$,%,&,',(,$-$.&-$0%0&0'0(0$1$2&1&2(1(2 v".~) ~v$5) .$~`) .~$~`$~4v&.v(G!~p%~ <.*)*7-41:3, #~%~ 24):8<*(-8*1 v* #~(v4)  vf2 ~v 8~vA~ v ?$~v 0$~v ?0  v(Av("~ v(!~T ~ v?0$~4v 8~v#) ) ?$~`0$~`v "~ v($~l!~@v?0 8v("%~ ~(v8?$!~"~?(~(!~ v@0!~<"~0(~@(~@#!~pv ?0  v 8~v "~ v `v b".~~p@!~Hv e?~@@"~v j0$~@"~v o?0$~4v t#) ) ?$~`0$~`v y.v A!~@v "! ~v (Av (("#%!~6!~v 2."#%!~6v 3.#~(v 4/~~xv 6("#%"~8/!!~"~#v 8/v :#~(~  &:8,*8947'*3 v < #~(v >/~~@v @./"~$`v BI~(~  89&'.1 /~/ *75*7.4)* /~v D #~(v F/v )Av ()#~(v .~@$~v .$~ v .v >~ ~` ~($~ v (!~H##~)v ("~p#~*v (~@v )!~H#%~)v 2~2v ~@v )"~p~@v .~) ~v 5) .$~`) .~$~`$~4v .v !~@vvvvvvvvvvvvvvvvvvvvvvvvvv3X.@Apm,LN`x(Sr4Ua5VVKlqQ,F,0S)n0xi@qQ.By)+hF.By)+63sPb.+ 01c0ZyPQm 4:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:Tq` ,qQQ*:TKKN9ONNNN]@,7Kn܍ &!@v 1:3&v -8(~vv2'=  v4'>  v6'?   v<0)+"%"~~!"~"%#~vv= v7~!~ v> v7v7~!~pv? v7v= v-@%~v8~~pv--@%~-v7"~@"~@-v 78 v7v8v"3~~ 1:3&77*8(:* v$3~~ v&1~@~@ -8(v(9~ ~  ~` $~` v,8~~p~v.-~~v0H ~@!~ -"~@8-!~P%#~B@!~v2-v48v6" $~D~v89~0~=  vv )~v 8(~v 7(~v%%~~ %~h v 78~v 88!~pv&  v 7888& v7878~v78 ~A ! ~vA ? 8888~vA  8888~v& )+~7888v!&   &  !$~v&.~~ v( 7888  v* 7888 v,.v- ))~v. 7888& v0 !~@vD 7888 2 vN078%~88~P88#~!~vX 7888& vZ 88!~pv\ 7888 2 vb7(~"~vl.~7( ~`vn-.~@.~Pvp%~-.  vr%~-.& vt.vu " ~ vv!.#~X7("~~vx-.#~.$~`vz%~-.  v|%~-.& v~.v7(7(~v%~!~p < v.~~pv~ !~p  v~ !~p v.v~ !~p v 7888& v7878~vA ? 8888~vA  8888~v)78$~A ? A  7878~v& )+~7888v#&  & & 2 !!~ v 7888 2 vA ' #$~Cv-78"~@~v' )+~-88v'  4 '  #!~;v -88 . v -88' v-v #$~Cv.~!~ v -88 = v -88 v.v-~ -88  v-~ -88 v8(8(~'  v~@%~8(v #78~88!~p#~/v8(8(!~ v~@%~8(v7(~@ !~av)~"~;v8(-8(-8(8(v*)~#~~@ ,&2*4;*7 v ~Hv#~~@  v 8(~v !~vv ~ vp.~~@vz1%~@"~@~p@~ v1%~@"~@~p@~ 4 v.v !~zvvvvvvvvvvvvvvvvvvvvvvvvvv1rฑ05d舧R)cL "E`tPv ;fӨB"JbH&SC"@[BA v v(# ~~ 3&2*51*&8* v2vd 4~vp ? ~vr2 "~vt 8%~vv 6"~vx.~ ~v8.!~v.v& v & ~ & & ~ v&  &  2734'4)> v& vv 40 &   v 9-.8.8>4:73*<1.+* vv+2  /&3+*'2&7&572&>/:3/:1&:,8*54(934;)*( v@!~~\v 43&'.,+&72 v ~fv .3&82&1194<3 v9@~@~vL 43 2 ~@9~~@9 @$~`~ %$ v&  .8'473 v >4:75&7*398&7*;*7> v@!~~v 7.(- v"2@!~@~@v, ~%v6 5447 v@2@@~~zvJ9@~@~vT>%%$~y@~ v^J 43 2 ~@9~~@9 9~  > >4:1*&;* vh -42*<.9- 2  vr>>@~@~v| "$~*v/~~Pv-/~@/~@*~"$~*v ~zvv)$~`@~v$2~@@~~@v2 2~2 )  >vv->%$~w#~ @!~!~zvvN >4:&7*)*&)(4:1)399*11  (4:1)>4:&99-*&,*4+ >%$~w  v ~ v2~! ~v.#~}\(>%2v22.v; 9-*.39*7*8943>4:714&3  .8 . >4:-&;* 2  vv6~P@~v&66~! ~v066~v:$~H~H6vDvN >4:34<-&;* 2  vX4~!~;vb/~" ~ vl22*(>%vv0 >4:7*&73.3,8*=5*38*81*&;*>4:<.9- 2  v>%@"~@!~ v>>>%v/v #~kv /4'8:'vv >4:,49&3*</4'&8& v!#~1~p@!~ v 9*&(-*7 v*@ ~z#~v $!~Tv 1&<>*7 v *@ ~@$~@v $!~Tv (425:9*7574,7&22*7 v *@!~@~@v $!~Tv  ':8  )7.;*7 v**@~z"~zv4 $!~Tv> +449'&1151&>*7 vH"*@~CP~CPvR%(*~@@@!~@v\ >4:*&73 * &>*&7 vf0 >4:&)/:89>4:7*=5*38*8  94 ( &>*&7 vpv: >4:,4941&8;*,&894,&2'1*-4<2:(-)4>4:'*9 v8v8*!~CP%$~ev >4:,499-*0.(0 v !$~v 8v8~%%~wvv@#~3333%#~rv 8@8v -&-&>4:1489 8v %$!~v@v8@@8v >4:<43 8v228v !$~vB >4:&7*4++*7*)&(4.3574'&'1><479- )4>4:':>.9 v? vv;#@*!~CP~v? > !~@v22~CP;#v! 9-*;&1:*4+9-*(4.3.8 ;#v$ !$~vL9 >4:&7*8*7.4:81>8.(0  (4:1)399*11(4:1)>4: vV >4:-&;* v`"~ @~ ~@@vj7 9-*&8.4).85*58.&  7*,.43&1>->5349.(+1:4- vt $~v~ (425:9*7.9.8 v $~v8 .3+*(9.4:8+&9&1>7*  4((:7.3,(-743.('&)'7*&9- v:@~z!~zv22:v! -*&19-*=5*38*8(4898>4: :v !$~v+@~CPv ($+~+~@v@ >4:7,7&3)+&9-*7,74;*78/:89  ).*)-*1*+9>4: + ':9 v +:3*7&1*=5*38*8&7* ($v 22($+v !$~v*~%~av 3*<8+742>4:7'488 vv"~#~p@~@v1@~;~v#**1v(% >4:,49& 1 )*(7*&8*.35&> v2 %~-v< >4:7*+.7*)-& vA *~vF(( ~vP !$~vZ7"@!~@~v_**7"vd >4:,49&7&.8*4+ 7"  vn >4:34<*&73 *  vs !$~vx5 9-*)4(9478&>8>4:3**)&  ;&(&9.43)4>4:,4 v? vv;@~z~zv?  3  #~7v ,44)9-*;&(&9.43(4898 ;v  $~9v7 >4:/:89-&)&3*7;4:8'7*&0)4<32*).(&1(4898 ;v22;v !$~v4~!~;v ~zvv.~ ~v98.@~H~H~8.~@v.v?  v'=   v$ 894(03&2*57.(*8-&7*8 v= v/ .'2.3(7*).'1* %~? !~H? v; '&)2&(-.3*8 8~!~H? 8!~ v= v! :88:8*1*88څ !~H? v; 89.30>89**1 8~!~H? 8"~@v= v, 3(734(&8- %~? !~H? v<  %~? 8~@!~H? 8#~`v= v% 9<&949&1<7*(0 !~H? vD &.71.3*8 %~? 8 ~!~H? 8$~v$  v 8%~~~v3%~~ ':>8*11 +**349 v? v? ' ? 8 !$~Ev7%~~ 894(034 v8v#8~8 ~! ~@v %~%~ 6:&39.9> v ?  8 !"~Cv 8v 8 ~88 ~88v 4~v22888~Hv !~?@v88v8!v8!8 ~8!"~C@v@$~L"~Kv" 8 ~88 ~88!v$22888!~Hv& !~?@v,088!~ 8"~@8#~`8$~v.v18~"~v6 4~v; "~v@ 3*<8+1&8- vJ* &9473&)4-&8/:89-.99-*-42*4+ & vT " ~Mv^vc; &3&.751&3*-&8/:89(7&8-*)  .3949-*-42*4+ &   vh)$@!~CP~vr22)$v|' )&2&,*8-&;*'**3*89.2&9*)  )$v !$~v 4->4:/:89,49 v#>%$~w!!~\#!~Zv@ ~L# ~Yv (&3(*7 v #"~\v &-*&79&99&(0 v #"~\v 1*:0*2.& v2@!~@~zv222v 2*).(&1'.118&7* 2v@!~ #~kv !$~v >4:/:89-&)&(&7&((.)*39 v2@~;~zv6#@!~@~Hv& 2*).(&1(4898&7* 2v+ 7*5&.78(4898 6#v0 2226#v: !$~vl*~~zvv *~@@!~@v5 >4:&7*4++*7*)&349-*7/4'  +47 * &>*&7 v <4:1)>4:1.0*24431.,-9 v? vv?  3 !$~v"%!~s~ @~@v **~v !$~v +7424;*7<470>4:,*9 v # ~Yv  ~'v 7@~@!~@v227v3 >4:7-42*-&8'**374''*)4+  ,44)8<479- 7v !$~v44~ ~/v>@#~3333 ~/vH' @ ~vR9 894(02&70*9(7&8-  *&(-4+>4:7 8 8-&7*84+ v\$ 894(0.8<479- '  >4:2:89 vf- 8*11&114+9-*2+47&949&1  4+ 8' vp 228' vz 4~v !$~vv >4:-&) 2  v4~~v8%~~v !~;v]228~8!~ 8~8"~@8~@8#~`8 ~8$~v # <.9-894(0;&1:*>4:-&;*  2v 2~#~ v 2!*!~t$ ~v $2*"~t$ ~@v . &  <43 v 3 >4:&7*&2.11.43&.7* v 8  ~v B >4:14:8> v G# 34<>4:75447+&2.1>-&8945&> v L 4++>4:7)*'98 v V  ~v ` '&) &   v j  ~v t (148* &   v y 2&>'*1.+* v ~v 9-&30851&>.3,2.11.43&.7* v &   vvvvvvvvvvvvvvvvvvvvvvvvvv A  $68%<,- @$ A  **********CHANCE**********$C68<,--+68<,-8<,%8,/ 9 @C A . *********ATARZEE**********8 -8,"AB 68<,- AL68<,-@PV @`NE-%@ $+!@,&+"@,$@&@$+!@,N(8<,j! -(8<,-!(8<,t -(8<,~"Ap'-@ '(ӠΠT:,Ap Ap********GAME OVER********$ 6-6-- 68,-$ 8NNQQQQQQ]@7N&L ˹.?!@v!e"e"e"e>2e* @B "e "e "eͻ\@T@d@l@A+~v5A#5AA#~v5A+5AA!B[eR@ 5AA! [eR AB5A"e*e~(6:ew5A! [eR4AB"e~2e6*e*%@L B* @>+6#*eKe (Ce͕A*eKe (Ce͕A*eKe (Ce͕A(b(>(]r"BB(r#r#B(r B(r##B(r B(r#r#Br6+B(6 B6 ##B(6 66~v>:i4B=2i*ee~(*ee~( *ee~(*e}|!e|}PB2lk*xi[zi{OzG(2}i2iy(2|i2~iy(D_x(DW8 2~i{ZW2iK9:wiGyO8 O:|io:}ig :~io:igDM>(8>)0*@ ~_00G!eF /8w:{i >{(>>!kwi"i+++++~4IBCC*i:k(&:k( :k(:k(:i:k(!k 6#͏C>!)00= |怰B0#R"2@!eˆ*iBwiIB5 !e!i4*i#"i*i++~?($( ((I(((* @ 6#6#6 ~6 6#6#6#6#~6 6C:iC 2iC!e?>8>* @ w!i6>`2i>:i2ͨ@BA[A:i?G= >>Cͨ@CfDͨ@D[A:i?G= >* @ :i2i :i2iD66#v82.88.1*(422&3)'>2&79.3?<*78(-0*$v v $~zv%~%~ %~ ~( %~ %~ ~( %~ vA ~|vvR8"~Kbv\!&   v.~& v 88~v 8& .v.v 8~v&"~K v'"~K"v"~KL&v "~KN'v $""~KT&v 8"#~KV'v L"~K\&v `"~K^'v 1"! ~v 1#!~v ~~v .~$~v $ v .v 8#~S,~@#~S,#~S,~@v ,5:309*# ~S !"~#!~S"v ~0!~p5:309*v ()+"%"~!"~"%#~v 89&*)9*~v '  v .)+"%~-@)+#%~Fv .$~l' ' .v *.v 4 . ~v 6 *~zv 8 .$~v : *~zv < .~@v > *~zv @ .~0v B *~zv D ."~Pv F *~zv H .~pv J *~zv \."!~%"~@v f' . !~@v k "~av p.v z !~@v~8."!~ v5:309*5:309*~v$~0!~p5:309*v.v ' . v9~(.~@ ~0.~@  v5:309*5:309*~ v89&*)9*89&*)9*~v.~ ~`v.v~0!~p5:309*vv &'+~v89&*)9*~~zv~(~' v!#!~S"5:309*!"~v+# ~S 5:309*!"~#!~S"v~0!~p5:309*v %~ v@&3+&3,vD" $~D~vEvJ# ~S ~vK#!~S"~vU 897&-1*3 ! vV897vW# ~S4897!~ vX ,*8(-<.3).,0*.9 vY,vZ",~,~ $ ~zv["#~S,~L~ ,v^v#' %%%$~8v#(.#"~W#"!~Wv#- .~v#<.v#F"~K8~v#K" $~D~v#O&'+~zv#P6~(~  v#R6~0~  v#T$ v#V6~ ~  v' ~zv' &'+~v' %~ v$~zvvvvvvvvvvvvvvvvvvvvvvvvvv *%%* LES ELLINGHAM *%%* Written for PAGE 6 *%%* First Published jointly by *%%* PAGE 6 - ENGLAND *%%* and * %%* ACE NEWSLETTER - U.S.A. * %%******************************* A** DELAY SUBROUTINE **-@ $** UP-DATE SCORE ETC ** !6-6-%#,6-P:,'@  ,6-(I-@ )( P:, ;-@)I( -' A2@w$;$$** CHECK FOR COLLISIONS ETC **< 6-6-&A%D&D>GD?GC?G?G]@7Cq օ!@v _               * ʹB* @# ˾##  + @< }  *6dhs!hes!e[6ds>?y>(8>)0*4d ~00G/8w!d/> w#:%@W  o  !d.#~+w#O:0dw:1d=21d.B>. - ,:2dg"0d*2@M|("DM>!)00= |怰B0#R"2@!sg"4d:3d2:d&d_ oV&@'ƂoN#~2;dz28dz29d:8dO::dG8ͧA::dG:9dOͧA*:d,}2:d&ȼ * @# ~?w# * @6# "4d!?~_8>@O>?O.gܧA - yO#>?0!@d4>+~d>2Ad8AA BA͎A`B͚A,CFC!3d5~ 6v 3.,-9)7.;* v(-?<*78(-0*%$vv#%!~vvvvvvvvvvvvvvvvvvvvvvvvvv-@6(@ Šq !6-v3-@@3(@>>>>>>>><<<<<<<<{,-@@,(@SCORE ,-@@,(@HI-SC N+Q+Q+Q>QM>Q>Q]@ 7Mn܍ !@v|F S -5 ?  VZlyY5M{bgkrt{  $TV^`uw!(,9@BIy}* @# 6## * @$6# w#^#V#F* @w##^* @6#!@>YA >YA > YA>YA >YA >4YA!@jAjAjA#A6A* @###NAuAͫAvaͻM >E >} d >\ >:B !R ! +#[B* @[ @R} ..BMB.B2B~( (VB$MB:B.B2B~( (VB>2BMBMB6~2B64[ @R"B:B2Bv[B* @2B :B" :B :B  :B~ VB :B>2B\C:BB.BB:BB.BBxB.BBB:Bw~2B:Bw[ @R"B:B2Bv8C zCCDD       :C= *C~2C#~#"C2C>:4@0 <2C>!C5 67D!DC!R| }!0!gh*B_D"D*C_D"D:C( :DG:D8>>:DG:D8>>2C>!CC:CD7DyDKD!CB\E!BC!Cv!C~( (RC#  ((w + 5CE  #2Kd ȋ:B!cE(###~G* @~< >w+w2* @#~ƀw##   = A>E* @NA>E+6va!BC# (   + >2E9FCCCDC!C64MG!C6#6 !{TG!CB5C!BC[C!{R| }(   !C6#6#6##/F:CG6!C!xE~w>́E2C* @[C.B~>2C!{_D"D*C_D"D!D:D8>F>F!D:D8>F>F[Cz { >2C >/GF/G|Dv* @F~## !C~>2aG!C#~+ ~ ͽG G##~ 6~#6##~ * @F~ 6## * @####~!G~6+4F* @+6:4@!$HF0((F!eE##~* @bw>v ad!VH~(5>́H#~(5>́H#~ 62+6 !CwE:B( :H YH!H6#6d>́H>H> 2xE!H5~G:H>́H>H>2H!CwjBJE͗G:B~E:B * @:$HG+:BƀwG%HbG:aG+J:EJ* @{~ 6  ͐H  ͻeHv {CCCDb!fIC8BEaGHEdddddPddPKKF2222 ( (:I2$H!eEG##G~2IVH!I####>H~!BIw!NIwv ͨE!I~(4AIͥIHA>2I!G6#6IͥIH* @ * @ 8(#* @A!C^#V####~* @w* @{6 6#64!B^#V* @6ͥIE:E;D>E!G5(F* @++6IE͆JH* @^NA,&2*4;*7\J>ECJv %~v vL 5-.1.5-&7<44)<.9-&)*7.;&9.43  4+9-*,&2*<*&11034<&3)14;* vU$~  $~  $~  v~0~  ~  ~  ~  ~  ~  ~  ~  v.~ "~P$~vj~0. . . . . . . .  v.v" $~D~v~ ~ &?32 #~` 57*881.3* v 5&(2& vA$~l~xv A$~l~v!vv5-.1.5-&7<44)<.9-&)*7.;&9.43vv4+9-*,&2*<*&11034<&3)14;*vvvvvvvvvvvvvvvvvvv&?32vv57*88 3*<1.3* vP * ACE NEWSLETTER - U.S.A. *10 REM *******************************11 GOTO 100019 REM ** DELAY SUBROUTINE **20 FOR D=1 TO DL:NEXT D:RETURN 29 REM ** UP-DATE SCORE ETC **30 IF SC>CSC THEN CSC=SC:SCORE=CSC+BSC35 STR=INT(SC)/3:IF STR<0 THEN STR=040 POSITION 20,0:? " ";INT(STR);" ":POSITION 29,0:? " ";SCORE;45 IF STR<=0 THEN POP :GOTO 60050 POKE 77,0:RETURN 59 REM ** CHECK FOR COLLISIONS ETC **60 M=Z2:M2=Z2-Z65 IF PEEK(M+M2)=3 THEN 15070 IF PEEK(M+M2)=4 OR PEEK(M+M2)=5 OR PEEK(M+M2)=7 THEN 9575 POKE M,0:POKE M+M2,480 SOUND 1,10,8,6:SOUND 1,0,0,0:RETURN 95 FOR I=0 TO 7:M2=MPOS(I)105 IF PEEK(M+M2)=0 THEN POP :GOTO 75110 NEXT I115 POKE Z,0:POKE M,6:GOSUB 815120 BUGS=BUGS-1:SC=SC+cJdJ|MI}MC}M}M]@e7Cjԍ G!@vx*d[d6O̾AWA*d[d~ :dw 0C͑B_ 7*d[d66"d~ :dw 0C͑Bg *d| *d[d"dSdx*d[d6gA_B*d[d~ :dw 0CrBW 8*d[d66"d~ :dw 0CrBO * d| *d[d" dSd  êB[d:d(>>2d6BSd[d:d(>>2dTBSd[d:d(>>2d6BSd[d:d(>>2dTBSd{ !  !{ !!  * @4~& 6+* @4~& 6+*d|(/[d~ 6~( !"d(rB6"d3[d~ 6~( !" d(͑B6" dÂ@* d| (v65&3?*78(-1&(-9%$;43-89&22v 5&3?*78(-1&(- vv $ v ?~~ v  ~x v ?v" $~D~v?~~@v$ v?v-~0"~@  ~(  v'6"%"~!"~"%#~v/56 ~~@ ~`~@v 7~v056~p~@ ~`~@v 7~v 8~v 8~v 5:~v 5:~v ?~0v ?~0v '8~v! '8~v" 8~v###$~l8v$#$~8v%"$~V~ v&"$~X~ v(*!"~H55!"~!"~v)!"~H5!"~v**!" ~H77!"~!"~v+'!"!~H 7!"~!"~v,*!"~H55!"~!"~v-!"~H5!"~v.*!""~H 77!"~!"~v/!"#~H7!"~v0?!"$~H!"~Hv1 ?~v2?v3*!" ~H??!"~!"~v4!"!~H?!"~v5*!""~H ??!"~!"~v6!"#~H"?!"~v7?!"$~H$!"~H*v8 ?~v9?v<5!#~v= 57?vA5!$~vB 57?vF?~~@vG&~@?#~` !~H vH'"~@?~@ ~  vI("~?~@ ~  vJ'%~?#~` !~H vK?vP*"! ~vQ$*!"~#~~%~4vS"~ !~  85.*1*7 vU %!~>v\"~ !~  85.*1*7 v_ -&9;*7147*3 vdA ~HveA ~Jvf !~ vvvvvvvvvvvvvvvvvvvvvvvvvv1550 FOR I=1 TO 5:READ A:POKE SCREEN+885+I,A:NEXT I1560 DATA 44,37,54,37,441570 POKE SCREEN+892,LV+161600 REM 1610 RESTORE 1620:FOR I=1 TO 24:READ A:POKE SCREEN+A,5:NEXT I1620 DATA 361,362,363,441,442,443,98,100,138,140,178,180,476,477,478,556,557,558,740,742,780,782,820,8221630 FOR I=1 TO LV*6+61640 X=SCREEN+INT(RND(0)*799)+401650 IF PEEK(X)=5 THEN 16401660 POKE X,3:NEXT I1700 FOR I=1 TO LV*31710 X=SCREEN+INT(RND(0)*799)+401720 IF PEEK(X)=5 OR PEEK(X)=4 THEN 17101730 POKE X,4:NEXT I1740 Z=SCREEN+500+I:IF PEEK(Z)<>0 THEN I=I+1:GOTO 17401745 POKE Z,61750 X=SCREEN+INT(RND(0)*799)+401760 IF PEEK(X)=5 OR PEEK(X)=4 OR PEEK(X)=3 THEN,I-IEL MFLaLbLbL]@ 7,I \!@v6:&)7&9.8(-*,1*.(-:3,v,,9 ~zv576!~@vL ?~@vV 3~@vv 76~v +:309.43>&='=( v" '.99*04*++.?.*39*3*.3,*'*3 v ?&*-1*73*33*7 v.~~@v#~.  v6 v 86 ~0v86 6 ~v6  !~ v1~6 v 6 1   ~v*!6 1  6 1 % !~ v41v>? 6 vH3   vR ~ v\? 6 1~vf6 6 1~vp1~6 vz!6 1  6 1 % !~ v1v3 6 v3  3   v?? v 8??v33 v+?~.~3~!~ v,,9v?.?v3.3v576vv.vv e73~3~@?~?~3~3~@ ~?~?~@v 77!~v 7~ ~Pv 7~$~Mv <7v ! ).*'*.)*314*8:3,*38.3) v %76<<!~7*~_[v 76"~Ev ?3~?~v !3~?~3~v ,,9v 576v &,3~?~3~3~@v 0  7  3v N !~Q`v X&?3~3~@?~v b-3~?~3~3~@v v??,,9v H =8 v R576v \y? ~3~3~3~?~?~@3~3~3~@?~?~v fB3 ~3~3~3~@?~?~v p,,9v z  >8 v 576v & v ~zv??v33v 6?3v5?63!~v5 ~ v?3v35v ~{@v??3v333vv 76 = v?v3~  3v76vv !~@vvvvvvvvvvvvvvvvvvvvvvvvvv(AY@4<-@@"@ * 6-F:, "@@B+"@6-%@,"@6-&@-"@6- @P. A6-A/!A6-A05-@('-@@2+ 5 @B2-@@((3+(( YOU ENTERED THE FOLLOWING MONTH:+(4(, ((5 (IF THIS IS CORRECT, THEN6(PRESS THE START KEY.(7&&(IF IT IS INCORRECT, THEN PRESS8(THE OPTION KEY.9 6-F:, "@@W:#"@ A # @`;.@@$@. @< (}AY'AA9A @KAAN(`@@r@@9AR@ @b=/,($| | | | | | | |/$>/(/($?,,($| |@,,($A,,($|SUN |MON |TUE |WED |THR |FRI SAURER 81 }S  SIMPLEX 81 }S @ TENNIS 81 }S ( TRAP 81 }S  UMZINGEL81 }S  VERSTAER81 }S WILDWEST81 }S ZX81 DOC }S  ZX81 EXE }S bZX81 PRG }S ZX_GT 81 }S  FFIXBIBII]@7BB| 9!@v*dHA(I(#@Kd6+> A  Cd͠A#6"dKd6#> A( Cd+6"d* @ > %#6!> 6>>(6 oÃ@*2@M|("DM>!)00= |怰B0#R"2@]˻˳˫* @" { # +66# C* @ 4>& 6+4>& 6+4!d~=(w#~+wA*d d< > * d  * d*d"dv  8&:7*77*,* v -89&22%$v vv 8(-<.*7.,0*.9% v!"~H5!"~v?!"~H~v@!"~H~vA!" ~H~vB!"!~H ~vF!"$~H~vG!"%~H~vH<6!~ ~!~ vI(!""~H <<!"~!"~vJ!"#~H<!"~vK(!"~H<<!"~!"~vL!"~H<!"~vM<<~ vN(!"~H<<!"~!"~vO!"~H<!"~vP <<%~vQ(!" ~H<<!"~!"~vR!"!~H<!"~vZ1"!!~v\'~ $~ v]$~ 34(-*.385.*1 v^$~ v_: v`: 3 ~ vcvvvvvvvvvvvvvvvvvvvvvvvvvv@i"0Ak 46-@l A"m!' (@! An9 6.D:B:, @/67B:,%@,.9 A%o((67B:,%@,.7@<@,qNAR'-@&@ /(<@NAR@u9 6-A:," A)!A /(>:AS,9 A%v67B:,%@,..w6-&Ax67B:,%@,.=:,y<-@@<("DELETING MONTH... z<-@@ <(" {/H0HHKnLIKSKTKTK]@b7/Hs A!@v@ #2&=.2.*7:3,88>89*2.33472&1+472vv!~~  8.251*= vd+-*789*11*3*.3*8'*7*(-3:3,88(-*2&8vn)~@~ ,*'*38.*'.99**.3 vx &3?&-1)*7;&7.&'1*3 v&;v &3?&-1)*7'*).3,:3,*3 v&'v ,&;&'v&,&'~v'&'~v(&'~v6&'~v2~&'v&&;22~v2v0*.397&,*3)*704*++.?.*39*3:3))*704389&39*3v2~&'vv ~@~2 9*?*.1* vv3~&;v & 3  v&32v&32v3vv ( v (2v(2v2vv" ?.*1,1*.(-:3, v'v,3~&;v6 & 3  v;&3&'~v@&3&'~vJ3vOvT '.99*<&79*3.(-7*(-3* vV !~vXvZv^ 1~,vh$&1&'~~ ~Hvr1v ~zv&:8<&-1*.3*785&19*v02&1&'~v81v11~,v&1&'~02 !~av02&1&'~v81v1v').;.8.43)*704389&39*3:3)*.397&,*3v ?~v2~&'v&82~!%~v62(2&82v&&:8<&-1)*7?*.1*v0?~6262!%~v: 6262vD?2vN2vX62~"!~"vbvl *39&79:3,8+&11 vvv+.=.*7:3,)*804*++.?.*39*3v 0+&8?v;).;.8.43&11*704*++.?.*39*3:3)04389&39*3:3)*.397&,*3v 1~,v&1?&1?0+v1v(?(?0+v '&*6:.;&1*3?:2+472:3,:3)3472.*7:3,v*2~&'~v42?$$~\v> 0&82vH 1~,vR&12&12&1?0v\1vf(2(2(?0vp2v+&'&*3)*7:3,)*785&19*)*7'&8.8;&7.&'1*3v8&;'?8v !~/v&'1*8*3)*7<*79*vv )*72&=.2&1*?.*1<*79.89 vv~P(&'~vv *7<.7)*77*.(-9+:*7 v v3~&;v1~&'v$'13 = 3  (1v.1v83vvvvvvvvvvvvvvvvvvvvvvvvvv@-(--@@-( DISK DIRECTORY --@@-(8-@@! A0.@8 A@9-@HH0KRK1K:K;K;K]@7Hx |ڒ!@vrIx2(NO *$N ~ 6"$N! 6!(NF *$N! ~ 6*$N6 "$N!(N^ *&N ~ 6"&N! 6!(Nf *&N! ~ 6*&N6 "&NbkK N K"N ~ !C"N C"N IC N:(NO K"Ny! C"NC"N:(NG K"Ny C"N!C"N IC N:(N_ K"Ny! C"NC"N:(Ng K"Ny C"N!C"NbkK N K"N ~v >6>T] x Æ@v v(45>7.,-9(-?<*78(-0*v v 8(-<.*7.,0*.9% vA ~0v. Av.  ~8v.   .  % ~0v$"$#~~ . ~vv $ v"6~(~  v$v(')"%"~!"~"%#~v28)~%v4( ~H8!"~8!"~v6!~J8!"~v8 8~v:8~~v<88~xv>("~L8!"~8!"~v@#~N8!"~vB 8!~ vD8~!~ vF 5~vP)# ~9$~`vR)# ~9 ~`vT)# ~:$~`vZ<@!~v_ "~ vd<~@~vf#5<~5<~~vh!5<~%~~pvn-)# ~: ~<$~`5<~vs "~ vx!)# ~:!~ <!#~vz!)# !~:@!~ <!"~v"%~$~ 3*:*885.*1 v ~HvA  ~vA 3 ~Hv,~0 ~ ,1*.(-*8(-<.*7.,0*.9 vA  ~vA  ~vA 3 ~pv~P!~ vv~@~<~v~B<~v8@!~v"~D~%~>8v~F8v88)~~ @~~x%~h~~(vp ~>vq~ ~,>vr "~|>vs"~| ~,>vt>vx=~ ~ vz2~ @~~p@~  v|=v=~~ v2~ @~~p@~ v=v =~v >~0v')"%"~!"~"%#~v 5~v=("~x@~v>( ~(@~v=>v=(=>(>!~zv,A . ~ v.> ~( ~Hv0=>v2 >>~v4 $~>v@A 0  ~*vB="~x ~HvD=>vF ==~vH $~>vTA 2 "~4vV>~ ~HvX=>vZ >>~v\ $~>vhA / ~Hvj=~ ~Hvl=>vn ==~v|O)~ ~,>~=~~$~"~v~Q)~ ~,>~=~~!~%~Cv 55~v~!~p5v=>v=(>(v=(=(==(v>(>(>>(vQ)~ ~,>(~=(~~$~#~/v=(>(v ~Hv.~%~v=>v=>v=>v.v5~~ 8(-3&55).(-;*7147*334(-2&1 v!? v0 #!~;vX> ~,>~v]==~vb.~%~vd >= ve >= vf >=  vg >=  vl.v5~~ +&11,7:'*;*7147*334(-2&1 v? v #!~;v>( ~,>(~v=(=(~v.~%~v >(=( v >(=( = v >(=( v.v $~4v~(~? v~($~ 0&*8* 5v A $~Hv%A $!~I@v*A / !~Hv4v>>~~0v@? vB>vH$~ $~ vR !~zv\vvvvvvvvvvvvvvvvvvvvvvvvvv i i< ֬0) ҄1ҵ) i$`ҠL/) I1`JIiąym1yi1Ɗ`HȍЩЩXЩ(h@((   ,@pppppB,2ppppppppA2`abcdefg`abchijklcjmnopqrsptuspqrspvwxpyzsp{|s#/-054).'󀀀"9-!2+02)#%Q:/-")%3P:/-")%30%%$pppD5F8A3FFIBIAII]@7A B~ Fc!@vE:2?.3,*1:3,-89&22%$2&8(-.3*3(4)*74:9.3*H>o*d[dÂAQ("d6"d*d[dI(" d6"d8 @> >  >޻ >߻ > >" >! "!> > >޻ >߻ > ">" !>!  v  :2?.3,*1:3 v *~v +~vv 8(-<.*7.,0*.9% v>v"""$~T$~~ >vv$ v&~~ v ~x v&v$ v&@~ "~@v'@~ !~ v (@~ "~@v!)"~P@~ v#&'"~v$ () v(/6~"%"~!"~"%#~v)56&~'v*<6(~)v-(!"~H55!"~!"~v.!"~H5!"~v/(!""~H <<!"~!"~v0!"#~H<!"~v2!"~H!!~v3!"~H!!~v4!" ~H~v5!"!~H ~v7!"$~H~v8!"%~H~v9!"~H~v:!"~H~v<1""~vAvF7!" ~H!"~!"!~H ~$~ vG7!"~H!"~!"~H~#~vH %~4vI# )*785.*1*72.9.898.*,*7 vJvK ++~vL *889*-9 *  +vM&~~pvN&vO $~vP# )*785.*1*72.9.898.*,*7 vQvR **~vS #"~vZ *3)89&3) *  +v_ ~0vvvvvvvvvvvvvvvvvvvvvvvvvvwill allow one to patch object files so that they may run. ************************************** Notes on using the emulator in the U.K. The biggest problem has been that the American ST keyboard is different with the result that in the original emulator the double quote (") does not appear where it should. PAGE 6 reader Laurence Myers has however come up with a fix on the colour version so that the emulator on this disk is suitable for the UK. The problem still remains in the mono version however which means that KKNNNNNN]@7K !@v ꗀvvv" 97&38.8947;*789&*70*789:+* v(%"~@#~ :' v)B#~  #~ 77( #~  v*!~P .34:9 v+#~  v,~P ( v-!~p  !~p ( #~  #~ 7 #~  #~ 7*(* #~  v. ~P  v2$ v4 9 #~`v69 v< & ~vA $~HvF%~( ~ vH& vP7~$~ 97&38.8947  ~$~9 vZ&&  3 353 "~@%~h  v\&&  5 535 "~@%~h  vd3472"~vn,~( ~ vp;:vr~~ ; ;:vx-~( ~ vz'v|~@~ ' 'v.~( ~ v:'v ~~ :' :' ; v.~( ~ v.(v !~ ~ .( .( 2& v.(.(*~wnv/~( ~ v+:v "~@~ +: +: -? v/~( ~ v:'*v!#~`~ :'* :'* ; v/~( ~ v7(;:%~.(v7*$~ffff.(v .'.('v%7:':'*$~ffff~0.'v"7:'*$~ffff~ .'v7~%~.'v!7.3777777777v(<~~B+:v ((<7.3v" ((<7(v,(*'~H7v6:.3:'"~ffff;:v@%~~vJ=7vL3472vN 7 3*~wn 04-2 vT=7vV3472vX 7 3*~wn 04-2 v^=7(v`3472vb 7( 3 4-2 vh=7*vj3472vl 7* 3 4-2 vr=(*"~t$vt3472vv ( 3 :+ v|=(*"~t$v~3472v ( 3 :+ v=(**"~t$v3472v (* 3 :+ vv 7.3 7.3 4-2 v 74:9 7( 4-2 v :.3 v:.3*~z 2; v+~( ~ v& v&~(~ v &  / v * ~@vvX 3472<*79*vb *~vl)=*vv)~ ""~%v**~ v "~v/~~@v ).*/)v).~#~/v/v 3*/*vv 7*.-**v* *~Pv4*~~v5*~~v6*~@!~@v7* ~$~ffffv8*!~ ~ v9*"~@#~,v:*#~`~S333v;*$~%~yv<*%~ #~fffv=*~ !"~3333v>*~0"$~Yv?*~@$~333v@*~P~ vHvvvvvvvvvvvvvvvvvvvvvvvvvv *8(` *<(`H****)h)` )`yɀɁ *+IL*ɂ I@L*Ƀ@пɄ IL*Ʌ𮥀@a { L*.)œ Т` +ɛ  Ȅɛ ) ) )Ąe悥 )`豁ɛJJ N:N N C N N]@7 Cn܍ !@v yͻ"d*d|(DdKd6G 1 "d~  !d5(*d6(( :M<&2M!d6*d|(DdK d6O 1 "d~  !d5(*d6(( :M<&2M!d6*dU 2\ .:d((:d ">2d*d6"d:d=2d*dO 6!dˆ*dm 2\ .:d((:d ">2d*d6"d:d=2d*dO 6!dˎ!d~# !"d*d6 #*d6 #*dM L "T Cdu l  d C d*dM lL 1*dc ~ ] "d 6+6! 6#6 6 6 6+6*dT 0*d ~ %! "da 6#6 6 6 6+6 6#6*du ll 1*dc ~ ] "d 6+6! 6#6 +6 6 6#6*dd 0*d ~ %! "de 6+6 6 6 6#6 6+6:d :d x Ã@v <.1)<*8 v(-?<*78(-0*%$v ()+"%"~!"~"%#~v8)+#~9v(!"~H8!"~8!"~v!"~H8!"~v88#~v (!"~H8!"~8!"~v"!"~H8!"~v(!"!~H ~v*!"#~H~v28)+# ~9v4("!$~8!"~8!"~v5"!$%~"!$~v6"!$~8!"~v7"!%~"!$~v< 88!~ v>(""!#~"8!"~8!"~v?""" ~0""!#~"v@""!$~$8!"~vA"""!~2""!$~$vF88!~pvH(!""~H 8!"~8!"~vJ!"#~H"8!"~vP88~ vR(!"$~H$8!"~8!"~vT!"%~H&8!"~vZ!"~H("~@v\!"~H*"~@v^!" ~H~vd'?  vn? vp.~~ vr( ~@  ~x vt.vv? vx" $~D~vz5~0~   v|6~8~ v~" $~D~vA~ !~   !~  !~  !~   vE~ !~H !~H  "~P  !~H  v8"!!~v88!"~8!"~v*<8~8 ~8 ~`v8!"~H~v7~@8 v)+# ~9!"~v)+#%~8!#~vx!~p~ 7~ ~~ < ,&2* #~~ 7~ ~@~ < /4* vA ~Hv= Av=  ~Jvv= 3 ~ vvvvvvvvvvvvvvvvvvvvvvvvvvthere are landin9o:launchinmust be put icoursillegathey are: iis stored ifiring order ithfailursuccesdisk file errorD:BOX.DAT/I//0001u1J2R2Z2i2x2V-```````````````````````````````` N E U E D I M E N S I O N E N A U F I H R E M A T A R I ST ------------> DER SINCLAIR ZX81-EMULATOR <------------ SO URTEILT DIE FACHPRESSE: SPITZE. SUPER. VOLLE POWER. ECHT TOLL. OLL. Das im ZX81-Emulator enthaltene ZX81-ROM unterliegt einem Copyright. Ansonsten ist das Emulator-Programm Public Domain. Tastaturbelegung: Shift ZX81 Shift-Tastaturbelegung Alternate Atari ST Shift-Tastaturbelegung Help Hilfsbildschirm ZX81-Tastatur Undo Emulator-Kontrolle Die Demo-Programme werden mit LOAD "" oder LOAD "name" geladen. Anleitung Demo-Programme: ZX GT ===== Ist ein schneller BASIC-Compiler, der allerdings auf Integer-Arithmetik beschrnkt ist. Er wird mit LET L=USR 17389 aufgerufen, wenn der Code in REM-Zeile 2 geschrieben werden soll, sonst LET L=USR 17381. Ausgefhrt wird das compilierte Programm dann mit LET L=USR 18823. Disassembler DISASSEM ===================== Vor Laden Reset ausfhren. Der Disassembler befindet sich dann oberhalb RAMTOP und ist vor NEW geschtzt. Er wird mit LET L=USR 32032 aufgerufen, die Startadresse wird in 32704/32705 gePOKEd. Assembler ASSEMBLE ================== Der Assembler befindet sich in den oberen 2,6 kByte des 16K-Speichers und ist vor NEW geschtzt. Er versteht die Standard Zilog Mnemonics. Sie werden wie ein BASIC-Programm in REM-Zeilen eingegeben. Innerhalb einer Zeile knnen mehrere Assemblerbefehle stehen, wenn sie durch ein Semikolon ge- trennt sind. Der Assembler unterscheidet zwischen Konstanten und Labels. Sie bestehen aus Buchstaben und Ziffern (Leerzeichen ignoriert), das erste Zeichen mu ein Buchstabe sein, die Lnge ist beliebig. Labels werden durch einen Doppelpunkt hinter dem Label gekennzeichnet. Als Operatoren sind "", $, +, -, >, und < erlaubt. > und < stehen hinter einem numerischen Wert und bilden das hherwertige bzw. niederwertige Byte. Pseudo-Befehle: ORG adr1,adr2 Das Programm wird ab der Adresse adr1 in den Speicher ge- schrieben. Es wird dabei so assembliert, als ob es bei der Adresse adr2 stnde. Fehlt adr2, wird adr2=adr1 angenommen. BEGIN Zeigt den Beginn des Assembler-Programms an. END Zeigt das Ende des Assembler-Programms an. DEF Bindet die folgende durch Leerzeichen getrennte Liste von Ausdrcken in das Assembler-Programm ein. = Weist einer Konstanmten einen 16bit-Wert zu. * Die folgenden Zeichen werden als Kommentar aufgefat. Fehlermeldungen: 1 Kein Programm oder kein BEGIN 2 Syntax Error oder Bereichsberschreitung 3 relativer Sprung zu weit 4 Konstante zweimal definiert 5 Label zweimal definiert 6 Fehler in einer DEF-Anweisung Der Assembler wird mit dem Befehl PRINT USR 30195 gestartet. Mit PRINT USR 30113 kann zum Lschen des Quellprogramms die momentane Zeile bis zu der Zeile mit dem END-Befehl verlngert werden. -+ + L", J)+͉+L0L0PLAYER 2 WINS:0q &L0 0 &+ B'L0 TO 0 &+ B'L 1L0PLAYER 1 WINS:0 &L0 0ܩ &+ B'L0 TO 0 &+ B'L11"PUSH JOYSTICK BUTTON TO PLAY AGAIN1 }& \*LS1 \*LS1L81L,``,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""``\*o$|B?< NA/@ L&JY(JY,|@: gtae `6xva|fb4`ahd6adda`eraBRB`aNex6<aPf6DV6a"J!Q`f Nuxrtf BQ2RAISAfNurtf BQNua6t`v `<w@?Gj|D%JLGj Hd|MB??SOQ<mYnX1&,qǜ %FBh&B)B7*|;LHraqZ'`$D+z"_N5NZ]g oUA`BBuAB /NeZp`( O xDI2mU}JE;{ j$'%0( XC@ .d ;e"v7!#ON,ILC2Jb0? p[P/ N32!5L4<@KoT2aUQNu#B|ľxwj1 >, ̓'N<p9Vn$?nYfjJjXIX& d (=8! d-I*BB2% J/Dݿ1?f?ǗB,Xf m efX=,g6Z=t jԱk`D8fpLpcBg<&(ERh0HƋ!B2$/?MO 6`gBNq$LQ\Sae`?|/ >NAXO5Z #j1`BƪZ#800]"kx2Y~pQ-zlvApǩBCp8Jgf0_`40&e MdD&A`  e0g 0` u.XnJJCH.b8  .n`J&f4Z92P9lF(Bθ/0jOoT1B!J`vZgtH $HVf !Ϟp>(.86{a$I !TgfSIRIo:B(  5XDsUI:Bg/qGNAPOJkM$JfSH\1* C.8D1B^Bf4TZZ}`!"yψT"EHZT4cߞ] 1[fe4#Dia` QdfػEQfT`.fJOg>vNÐZ3,O"Z0HNBNPu7O!؉BzOm4B Jj feU $&e2?Tjz7N*N$ N b r  ( 8 H V f x `  . F f  ( D ^ x 0Pp6Nf|\,\D\^\z\\\\\\:PjBT 2Fr 0Bn $JpDVt6F\t&4Ld"4r(HZr_y갤$^_( N S1;iG\!S!,0H"e"#AQ#E$$q D[& J'6SgmIl ٯl1N:IJ69%Jc1I:43W0%$'I&N$S$Ӊ'՛f8)E Mx>TA%.:̩ԝ0?Ml8j׎8Tp£֣*F^z$>\| $Bbx, \x %2Njg(g R d x  , > P b t 3  . B X j ~ 30DXj~32DXl ]K2DXn...... 2FZnp 2HZn 4HpZn "4H\p"4H^p"6J^pyıkIıkIıkIdk+E&䧆{L4bI8*ēbI,*V&)$8 *؜LIx,Ix,Ix,I,I8,I3%س<^#!%8^#!$r88$ĐIa!ŢRV&3b %XLuU$26)E$9gI+(ĢԚqLZqLZqLZYLZkJGdZk6xb%l'q ŜKXN 8&Y,Ua;b3 cQAa;I4%ĸQn#_yNddKO(JHc|J'$Q$$`yDr[̒@u?Q}!Hk$$y$r[̒G?$$Q$$`yDr[̒C?Q=/4I%I%'I%$^S(KAeIyH9- 'I%$SJr$$I$<9,佢B6,qW"HI" #S`d,*Q\iЧQR1Zˆ$$~Q$$I!a1ĕ,:;x`cpxزPnlHQ"j` %'67z^H7M^1z^H$9('lAJ#q9_/0b9We;$MM&$2,ODJ(d0ܘD1$8\j:z:9t-c! D&O>DVOneq(*3'X"x͊pDm58"x$&BXbH)!zah4B b$M:Eql7'hVI9C + < FyA"?MđO8͌pY<Bc>)#{㲘Å["" !0X>S (nP>&oGpV!{tV}x&8"h<&VDDєH: u0v>j8 0( 3f  B(Pg!|i#a{rd^#E^3e^{|fm28`8Dfl/ d.BF0CF֧c+ |+.=TC Qr+!ACBΨ,\[<FhfvjPa.Z#d!6*`z LHei=a* Q3QOTgA`f'P!T'cܲYb4FZ2hŞ^/MNA\O%H<+D%xPO^r aB MmDl M_:o,MnL8N8kHWjH\h?' }}e 3߄^/\j"j$y^jE td9>2F04n 6BBQm2j TLc!_MB?tpDJ4b<rBHTaV8ymoF'H0zfxNhp.fpEghte`, vdXu+N`0/ o `f,>r0JJYgTIJQfUHf"0`NiNaPO#ǚ"U:NsL!tFr(N3籄/`j6G|)dg"?8Ujf14!JyjFycg|igpėpq`$D58PԒ(_DEBxXWblf8qg/n'OL7`HJhgA< jpL1wsBXЗ$xNKÉyjBvŘpw(T XAjp#X5BP9j`j(!,0b48\/:вhF"мBò&=,2+(%"`IXI(bIb ,㐼ȡ^xg(Z")Lpً&J8 gdf`h!^$b&*!.2b6f:fƸlrPJ`2r`*r`"r:`r #(`r0` r 8`rY8HYIҳ.hdBD( g^DI@7LIĎ5!.~kCn!^5Ba8 EQ^hY04SM*X14Qt=L1 ĹĵOF&Ar &ZB%'BUeRA8Af'f 1蝽J;j( 2fz'P~i=RNFhe~,f#K^/"ad<<@\CXSjg H»s$ZO>g/ ԫ;L`Nsa.up_! ). Efe2B( lfE(!f赉/XIbbI1/XNgÉg*pxh`dTFfbbf$I4x 4WPWW efFȵ`>JXg3_3OgoZLdbB9JD8fJ$Qdaf^veYDW ug S!.L! –pʢ"3*g {6f ﹤`/8fE`'^ECTr)gg,/j;spBpJ_h޲/8 h ~e,&?<ONTOm2dD2d8X~0h6{Ex$C*b($_Z>"#aTByUDF;0FĈFƈFȉ"l$#nK&3x <09)QxR,pxj:Jhp.S0vX SvXEt*ڷI uSTHq"uf\pxTe +eDB`2Q"K$YjD)0<Ȑ`AtCdB2<CDS']`0`p0TIRAce&|>.Overwr>A2$IQu4n !E,4 D}6 L1|%4\ax8NLim@PቢXiI6m`Hu`,4#D1Hh:,4%kmu?ru)m!eȽv{m}bGNow:Yi&isoftw*Ars&fro exceptRheRTlud'&Opart.ZXu8u1tEMULATR[GO%X81(PANIC3-ica"'tocibyCh.Zw%schkeAmSteinfeld 4D-4714Ca\penbergn Vsr~tͿEŧ&b+'+lv"XC1،cb.-;Tv"(C؍#Gb(Ŏ4Ga4Aas'DK6#%z&3z5zz  [ܙM-= \-1? e< {A,S*"an9 ?a&rHb;4Ƽ+Z&4^a?cm{<,`x f00R~~ |ty|v,clE} `ϠfŘ p4Xbj@49/Sh1G1u"q3h8j1' ?!)by?;vXDx}_{xE0WMðjI7Q]*-UqWvS?PbfMSƢSh1Z)8W'q]R$ҵ>DZEZziMqHIHHM1HO'88dt"8fq?x1Ch_0O$]tƞ'3A |I"qx1e"L`U;3 {:'J4CDNJ%y+QFUAPQ7@0`0/l#p+êP^!p@ ȃ8-#C'tg:J=*=FnRm0gAGU)A]q<?xyO zDŽzXrSF.??hMܤ;**JOq:+MzcC"sF°bn^oqÝxÈ EOsnu{`31Vv10/-23'urwtspq  y x xxxBA ㇓wxx & );&.9&8*(&9186 ,&'5 *m(Z-73s @^9-*5*1'8948++&,48(741@]4)Z.P+4(9,4P8:5:4&1.80 -&:83*= 4057/AM7:8&;7& :35P14(1*&7*9:7(4573.30*>5Ô~sT0>˶X*+>P|+F7g"4nƵ"%x6B:JX ^~ 7!'?F{QPw>˖8_>$͒)9N(S( yD<>͵#+O>݀!W8/o|gxl8E2P(qj;~vo58F†O.)zQ M1^<7ȟON+0r r\ͨ& |L0I8(}bk&zy+#04! PLq{8\V0?0z( G bk KY `i>?6@+W1#05("A*I+6>++"y>GVT]ʳt" 6z"&Z\Z/[ e"k(0>aq5J7hj87R!#70 ~#! H철]TY#v_v#J 6f$:0(<2"GY-/~7#] Ƀ"7!;)dF(pK%Kͽ0=,S{֘'8</8p! ~gdV0/-_@ {& YF,>x_!}Ŧf7|і<5(y֫($,~ٝTav8 ~#*(6X+w͓<+fzF! ZrШUͦ̀rW-n,%~[>\!ʺ 7*\,xoNUى l0b[:.2yfXЫ>w!G-`W("ܦqAS,b#͘ ͭ C>c!0iR1L͎()Zy=uZ8^{Z*GVs+r/2/?gi" EoU( SvEYms`EQ #z`SƜTFn+>*~ #ʹ(X((]a>h.K Ѐ:+^K7~#W(&`.78 H-.=!}q_7ɰ{ <8B=((D/oQgW ~!(>v(0* zS} usIxY(̧W.wg/59!I )O:\o&qsq,8u8ٸ!<ڲ_ F:Z 0g0z8WNy#v($' &oOzVg|R0z[(W>L!\6vW+VW}Z1'>8 "5ZGF>]283C9 !Q>"O`>v+#+70Abk#"7bu F9U# 0xp8دѽ9h(8?C0G~#(.w+?DM s* > $^0 %r+s##=\!}v \~#~+[8o( ?%%x#~0 MD, ϙ!ŀ<:,7M8<: *,}~ T]+Ujqe x/Gy/O Min_;KH> z! pTüPx`i&5a}ω_FHoi+xKh(t]k=W3~N >±jO4oD -[ x Sw((|K >v $ SFK9vN^(>]8_- Y C6`>n+ G>(>))08~00pG :0 /#񰋲 GŴG YQOJ/ڭ7F"! ͛ ~4:* #T]-Iu_B+7REm+D-Z;LE RZMjG : M}ʹ . @ jP m 0Ēl|6* lb S 8e2+U#i6 ,s ͼ 6Y(n(~oQ xgEOLy8;O!) lL~# O 0 ! N ߹ɸ%Sk :~rv@ ̒*0 z͗6-0\< 5wXC. "Ա&_V@zz%Ey< " x<~(63+  p)45aB!+j ]< !ZR۩ `&LZF.˰*Q]u/ra\K x7%~(#F4Zo~.XzgZ44p7%Z4zn! *+dlNT0" ")]Iz~8 DÚ*#,I'́[L 8,!$6r.X|>(svE~W2ͣ!-,<}NwEy87 +w+6"07rD`$;#R-65>;>2'߸K7/(K+070wAv.^4eC2ְw B+(s4^z^AͻQĽzBO;/nGp (]Q̣@5"."2(aI ц>~xÞÈ(]J8(00)8B&8>K, ̧:8N 뢄2B#6^~#rL~#\[.\RWkQ c_*;8`0 8 ְ8 0 O!L Fzp8,c/ (G74 {6!n{ y_\?3O38(8Y  xMҚ @O+ `( ) ˱^AƏyO4~(*`W8-#(¾j(#~(\>w4s2Яv( K.8-Fe0pT]#K-HB 0#ҍ/xȁ+ J bP]>`*qW/ ş*닭+wg+5 +F+N+V+^+~%͞š ͦ ˱ͧ 8͜ ` !}q.&1$͖(+yh&8)DMNw Dp#wbk6 p+=+͞ C#xC #QK#"Q"",*6T#6v#B" V!]"*n[] IB?б0,{r[8 !2i*6]+4]Hpv&?؀1)!fۢ$6xawAN65! 0#p#q+x )|4}> _"-03A: ` 0Hܖw/'//.fGO1CYJ֑?x8$<8YHlW{(ab0xq_"Q4jy͊7g 6 Z='44~?xo0W$048G4!,k76 #.O #(B~k#~'"w(K6ZGn2JD_Y+=({u(HF\Cn>*(BO8>xN 0 Ox(yjIG"|2 >a>~~66Nj~b AO7+~Mwyw#yN0#N#FWTxV#^(Z3!0G-P ЅH].i](^X;GqjO0xAiLwhar J|o0>88}д({?{T_z/00سʮWٯl754#+ wg8Zxb!@04E!ZS\p=??0h<8\wx~>;(٢8w8.#w+)W z٥r5(0 AW4(#&px3w#q#@r#s*ָD+GA8(+.( G>'w +1LJIڢ4/rLU bI>nv[F7#+ZQcEx2P"|S=~#W`Z%roz08T8] o#&^l#V!K :øDᨙ%UW24O ~P?WP>@_%Gt$b=OOx l|UI!bkЎ-*<oNq#Gp͠--8'(ͤ1v :w˾#~+547#+ FP!W~>~D_#+@6 #6 70xL=03rѨW L3|x+ (?p; 8  #+4 K>L 1:"1*w8+ k * զ9+!X" YU*M6v*.\NS(* RDM"97xé !5nR^{(/WR#T-$p}6N -6,h[{8<;)$}c6Xefxe7`2!$/~X:~4W80 (80Dwqc ~6)^8VL73󇖞01Xr -02+ PVڥY0\po ږ1\C6~^n#50"n.$--35q 2{5'U5ц\ 8c# #]~VN~8{-2r/i,A7UX9[6ucB 66s]ca "~-u%!-$ 4}"4Ü[#-, 3G4H_LM "f UЧ"x0>(> >hOOC'E1:PrvRyϭG6>12_i5luF_IEbatiۂOx;BDxP#Dr~fS NT~B>>IIDHpH9?BfZbF ?xDߩ+<RJP"||jDBZ$B$$BD(D~/~]svb2,#50*>P0?,?,8%>>Q9W}ž!T!I60bi]GMH3V< ً6v=NEO,Ԁ3QB02 4Z!"#$SR9`@]6 TtNsrq.$ENmEMфILmqI01234DCB2e_t."dRcbarsQP#$S'!GTW;]O m)z TC$D NF@FXgI28AU19ExSD% |(:?&!P/F4B^v 0%H L1JTbh #(b xbf!09U 2p/#q)/j`xbh\)XQ Gx*28QcD4g?M1<1| DИb#&E|b&./I$Cq$ Q :qDET%FE=EmulatorIy:Sp|Q;|gSEFM.'WDZQTԂ4zzX}-|Pf ~c>|/4m|,^,^wY-Gc4Wegye@F?w<$'V?4 GIEbl9]BUyG՚u< zʏ  ã额|1[$%QA" àGQ DbM,R"K*!D)})_ Tm8Xh뢜91\Xϧ2*l%#,,O<F91)Q{Ϣ1 RϮt`N>H# b>>!1"?U%'h4ob} JP5(9i$l=$t}V}|>} K؛"@ 'DX78c }<#G>IF:|OU--?Ui3b1Hy???IfNjMp]^]I>=ϫ]RcGQphbz7gG!}>> 9`-`1ps$"s><< #DxG>ef}6:O?M ('iE>N?_0:>M?Ud]Q M%OGD00l}tC z>H>"`KQh":ŧ4<<y'I>zXMN'"2B?>ˡFt<'?<>Fu^]A(~|#b]-CiiZGuDuPQM>yԺEk_kZrk4]4?TEn?1jjF}T E5Q77}~FU܄Naݜtv:u>kk^C3wwY(-ˊ*[VJ>QSh{ݭϟNv΄i|^3Pmdd]JJwhZOITG]|@B㺴{LG#&d]슪Ź4T䟡Lu4CB-3>$*Ǹl#Lb}0N':eQ CbGvϮ/R>!σI#>H( *:1*F-="kb cI. G<-#>!-/>Q0f MY`IIMY;Ϯ3qSaN>b>!u6$ndI.LN!/> IF{)sJkDbK)؏k*$͑i'OkORtK۟]G$X00%аKO$؜X3BD&A؟K&} m,t;餘u`Kg0$Ϭ,蔝ϡ~~>H/>Iƕ>1:-]Ch-ZLϯ||d^}tiMz}4|#h}n>llH>MG&Eb8Eava3ϯp>">ff  }ןA$O2&N؎Wt0/|-*cc>o`|OC /N'6#MdCSNOK-դŁ -cc``u}COk Iކ$EA6O L2}% V4yD7P|#O 8zJXX|71%^oU1U]Ħ]Q5}_$PQ}TAj8Z_|h]4~! '֢K>4i}FW}DdԺU$y~B2~}?$}E}!.^tqwtxnn@1=.QZ_CQ1g@Zᄰz=Wie=h9QpCX-ۺA0cP|51?th UG>H-B'z}4} h?d <~"`MF}>Wb:Ẉ)geG.є}T Q>4?TxxAF]oj 2CIRp>j" G]{{ wY2E |nt(4?=J01J0A~{);XGSW EUc{|]-G =RfV'ĸQG͝tʡy9ˡX> {*En|? uJ-=ICꁢL}T 8J>=}$譐aZs-EQA$-"ء1N},pGD<> ]I߈Zq>1}T-JUxA%f}4 EGIU DCdB-]>-J $_~$ TtJ_Q&_ɖNi3ds>z_'I+eu|23l"gA#}$b*A1:%Cp~}|]>H9$3u|a,Nyc?>$t薉?>35wI.00:%Ny?tKMA.?l88@RO?t[-ЌCXCW#EyP ~);P}?AE$AP>,Ϥ*C} ?h~[~}|E}>HVgFN}t5Qh}tZw-h}z? OO``c$H>-*?dỊ$dzA4I*V??`ܻ T}|k3}|O0Yh}l|j->>E} -|?-G@^}>U- .x$=h_A^-  Q_ S'i| 0M~?3e>e3뤷7:&ZN{;Tb:莪z#މүUt*yȾRPDoMO'WW a]>!OC.{кZZ_>ӔoJuu  F|Q>}U$#|MF>7>Bz4L*jA6 _1Ξ4mm/V}ڷ(>ςҨwwjBΏnB5G*}t#TMV1J[Q>?} > (ol FÆthg 3LB1]A7AF/b9tmmI|#$x ?4CNӏ$J>CƵ{?ZIACGƲcD6QCQ-Pq0($>"-֏~ j^^_UCVRX1"/.7CԆE."DوPx#AAw?J!v# p6{ d\}tEP` }0llنRP2Z rNC'I@Y!K0]X|'>yHtϬ>>Q. tZi}ȹ'ĊgĸR D},kY9 CL cOd`2dE9+LY=cϐI!&UOؕROY'DbhK)1&AG$*K eM6FOzK 'ppDgI..Dϧ>-J$I\]E-*]Jϯ BװGq@vM`E$ yA!Ȉ"CY?>ppH>H<C$W 23ff~4}a Ϡ~~R-u|~Dϧ^}|#|R= >0C G:H -h^DZ0- !BHz"м=Tj6vNj;i=M]+Ih zagP%E+but|FhO#"b0:hD:(,N?3m&O2f}z:  ??ۢ~1GufE]:`p>]DP|5X$XB_R~'wbw㚒U)i}sMG4QZ>M)Um]Ϡ.(b]-+VIѰ4}c*O v4\/M ,4b¦ T.2 :% , 6 ((2>$  \"  0( r*M :$ ߣF"1 ɀ&4I LXҴz6xj(x< 5R!H(%7m4 6F g&"[#      P. 0fb= O N .L  ?J 050$aqonN`POPIk L0 L 0 !LLld  L de !L*JbX| ɀɁ ILɂɃ@ЩɄОɅ L&|@a{ |L ML4`TʆTL\TTͿUU0RSULUUSRL deej cmTVl`cR!UR s U`HxHzHyJNAO OnA>a.Hz4?< NA\HzT/Hz8HyKNAOA&aBgNAHP?<&NN\Nu#!tNu!Nu#~fNh`A P?f##/| y~NJokTH&|#prY  @ Afa*#HA2aTLL <NrY3RA AfNua K $K(|@: gta~e `6xvazf`4`afd4abda^eraBRB`aLex6<aNf4DT8mNuv`"a.etrf BQ2gXRAASAa>6a"J!Q`f Nuxrtf BQ2RAISAfNurtf BQNua6t`v `Y -POMPEY PACKER 1.6ZX81.EXE\  4XdYe(djedddeejLcTQQ " ci(cQLIILLLLLL]@7Iq !@vIRNI J꿽vvô@#AWAOAÅA×AëA!BÜBB9CzCWCøCόկ!B|(>!BA'A0A0dA0 A0@ A Ad A A A!BR>R8<!B|/g}/o#* @! #!B "@>!29@>2:@ͻ| ͻ$ ͻ}(Bʲ@B(D$Mͽ~"4@*4@|OA(J{!90)>+BG>(0>)0A~00G :0@A/86>ByOůhg))HG G K @ #"@>2:@>!29@::@(:v(*@0r*@w#"@:9@=29@~v J::@=2:@#"@>!29@8*@~v(#* @ 6OA(((?() !'+} #A* ix!B C8 ˷5B?!G!0!B~#(~ !B#?!B-Bϊ{()C|8KB#))yx0|g}o(yxByOxGxAD|A|G|A[2@c.zRR_PR0#"2@˼!Iͣ #>vq#6#q#p#6#w#w#!WA !Bv()))O!By8O 8>!BA*{@w#"{@OA) >v!Bʹ@&oʹ@>uI!DHxIIDYI D D>{I"p@[@!r@ E*p@6#6h#"y@h"{@!}@D###"@DED̖HH(I+E@EGGI̶GH]HlH̒HF̟GʖGUE(̤G D DEv I6D>hIYIϛMG!_IéGV#^"#@" @ESIE E[{@ E[r@R8"r@s#r#^#V#*@#EB*r@R#>DE*HEEëG>v( ~(hIDEv(w ((L(tPG!SIͩGO>{I*{@{I*@#~hI ({I"@q#>ͫG>ͫG!kIͩG7GG!CMͮG!ͩGDE((!EͩG*@+"@MG>}{I!hIͩG>vhI@D&Ky@&o DEEd *I>{I&DED=FE| !ͮG! EéG>"ëGMG>{IDE(Pv(LMG( #gx !DMͮG~F>!i`ͫG(DF!bIͩGF!nI>{I(F!ͮG!RͮGF>{I>{I MG!~oͮG!&îG MG!FéGF`iGDEAD!\IͩG>&!oëG@G!rIéG MG!|ͮG>!zGëGDMGMGDE>{IMG>{IDEDE(@0 &ԂG܏GuGF=F!zG/|/g}/o#Ed?I>*ëG*H>! DK{@!* !VI>{I}{I|{I7GG!sDDEEDE7G>#{I!SͮGͮG>"##ͫG[{@ EDEE>*ͫG!#"ͮGͮG##>{I>[ͫG>!RͫG>EͫG!DE~( bI&DDO *@"@!uIͩGDEE8F>7GG!KEͮG>>{I{I>2!0@ͫG!eIéG>>*!4@ͫG>"!2@êG((0R7R7R7?7Gg.>ͮG!HͩG* @#EE>ͫGDED!HéG!;@˶!IéG!;@N#F #: @: @DE?DMGMG!KͮG!@ͮG!) îG*I>{I!EͩG!îGÈ@Ë@Î@Ñ@Ô@×@Ú@Ý@à@ã@æ@é@ì@ï@@vvvvvvvvvvvvvvvvvvvvvvvvv8`Ū߱08§REŧDATINPUԷCOLO,LISENTEҺLEԎI̦FONEXԷGOTϷGO TϷGOSU·TRAиBYŸCONYCOCLOSŸCLҸDEYDI͸ENĸNEOPELOASAV:STATUCNOTCPOINXI\OVPOKPRINԸRAREARESTORŸRETUR RUθSTOиPOGEԴPUԷGRAPHICVPLOVPOSITIOθDOVDRAWTTSETCOLOܦLOCATRSOUNLPRINԸCSAVŸCLOAĺ*ERROR- STOPPED+,%5&6(xĜ#%&$' !"*) +8,<Dȧ?+:ԧ,+:,+:,Ч#+7,</01 2!3"4E"-".|"-ɻ#ޅEE| +9S,#+;,Û΢|ijڢڢ@ACB=><GOTGOSUTSTETHEΣ<. } S.. } S HIDE_M }S ATARZEE1BAS }S "BUGS BAS }S BUGS LST }S cCALENDARBAS }S .MAZEWAR OBJ }S READ ME }S mROBOX OBJ }S SNAILS OBJ }S SPEDEM BAS }S VECTRON OBJ }S _ATARI FNT }S _ATARI FP }S _ATARI OSB ~S _BASICB CTA ~S ( _FASTCHPFPX ~S 1_NEWELL OSX ~S 4_STXMONOTOX ~S <_XFORMERTOS ~S g*. } S.. } S_BASICB CTA }S  EخȊ z zȩȩ E [ bМ Qک] 򅟅 Ģ ۤ򄨱ɛ$0L Ģ ۩ T Ģ 5ɛȑ @膔7 Ģɛ ĢɛК  ܩ8IȢ z Щ $P) 8孨客 $ L` L`L^ ܩ Щ L` ؐ0 A0Ԅ ĢLĢ 0$ LYU LY8eHeHL H H hhHH`hhLۡLѽʆLۡ 0 ҰşLۡ` `@  LhhHHL `LLL ۥųޢ T#iŰ DD Ģ`8` ۥ 裰% ᢥ0 裐 ې$$ 8`$ (ȩ@҅ҥ򄬥 T M L~8򨢄 zӤ򈦬ʽʈ򈱗  z池$PƬ0 LĢL,A[`8` ۥ ؐ` ĢȢԑ` ۤ"̩ Ģ Ģɛ " ĢL3嫤`毦򤪱%).Q h(ei8`Ū߱08§REŧDATINPUԷCOLO,LISENTEҺLEԎI̦FONEXԷGOTϷGO TϷGOSU·TRAиBYŸCONYCOCLOSŸCLҸDEYDI͸ENĸNEOPELOASAV:STATUCNOTCPOINXI\OVPOKPRINԸRAREARESTORŸRETUR RUθSTOиPOGEԴPUԷGRAPHICVPLOVPOSITIOθDOVDRAWTTSETCOLOܦLOCATRSOUNLPRINԸCSAVŸCLOAĺ*ERROR- STOPPED+,%5&6(xĜ#%&$' !"*) +8,<Dȧ?+:ԧ,+:,+:,Ч#+7,</01 2!3"4E"-".|"-ɻ#ޅEE| +9S,#+;,Û΢|ijڢڢ@ACB=><GOTGOSUTSTETHEΣ<<>ުNOOANĨ<<>STRCHRUSASVALEADATCOPEESIRNFREXLOCLOSQSGABINPADDLSTICPTRISTRI8ee L08ueeeee褢 ƚƜ`8IȄ墅8夕奕墅褢`朱`  6ğȱȄ ~La HH`0 Щ LLL]š Š` ܩ ЩLei``` ELq El `=Īٷw|ԶԶѷש巴!e l. gɨ aL6 Eƨ إ󅕥 gL a" a Ư" L8 > c=Š) 죰 L樤ħ`hh` >L ڪ H # q Ԡ Dکթ@  Ԡ hH qhıȑıȑĦʊȑ` ͫՅԅ hhL^ ` 𵤨 >>< H & h  ` 0` q ˽L½    0 `LP  Lն` LP y gLh 0L[  0 ܩ Щ 0L ׫ԅՅ` ૥# ԅ ͫƳ ( >`(Lض Ȅ` z > ąŅ`őŐ  H h` zLzĦ``Ƶ`Ƣ౐``䉐䈐`)iiТLE`湩 0éL y7 oԩ 0 gՈ y [L` إ󅕥Lg AT LINE ૥H ׫ H ׫heԨh` . ૥ Hҩ ׫hHԝ ׫ H ׫hheԝ` ׫ԅUՅV ૥ԅT` ׫ԅ` ȍ JK )L ׫i)I ػLS: ȢL8)@e`H J*K+h LGHFH`L ׺L` ׺`H +h `@H ׺hH    ?}i}(i L fh`LP   ׺ 8倝偝   󥃅  LHΆ󢻆h ػ `C: КH hKJ LQ L H hHH ڪ } hKhJ  QL )L + L1& $LM 3 NL1 ͫ ԝL՝M ͫ ԝN%б ׫ԦL Q   L1   N Fɀ 7LɈ [L4] LS + C` ͫ`IHEDBLVHH hh L  ``r `YDAER ԅՅ֦󅗄`` > ˽ $ "   򤲈ȱ`   L &L8`$)ԩe (ې`)8@0+̪Յ)e)e ݦ `F ݢϠ `ڢ ڰ @ݢ F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%@)@0)%ԅԢ ޢ ڰ9 @ݰ. ڰ" fڥԅԥ ɠ (`8`0?i (۩ ݢ `ڢ ڢ ݢ (ۢ `ڢl ڥ fƢ ݥ#8@ji@)j `3=3:&A(,*< 1- (>:%A(,.-@2 < A04; -(>:,'6-$+"@!,%'1 AP; A@>D8<,2A,-@0 :2D A H! @` AP! A@RwwApApApApApApA A A 0AAA`A\""************1 - 6***********f168<,--8,"168<,-8<,%p  @ A z##*****3 OR FOUR OF A KIND*****968<,-6-'% -568<,-8<,%8,9 ( -8, @( A & 68<,- @& A ""*********FULL HOUSE********* 6-6-" -8," " A  8,"6- 8,"6- . *68<,-@%$ @. A "68<,- @" A ""**********STRAIGHTS*********B 6-6-'6-+&,$%-.8, 46-8 B A@2 6-%"68%<,-( @2 A  $68%<,- @$ A  **********CHANCE**********$C68<,--+68<,-8<,%8,/ 9 @C A . *********ATARZEE**********8 -8,"AB 68<,- AL68<,-@PV @`NE-%@ $+!@,&+"@,$@&@$+!@,N(8<,j! -(8<,-!(8<,t -(8<,~"Ap'-@ '(ӠΠT:,Ap Ap********GAME OVER********$ 6-6-- 68,-$ 8<,8,A! 6-%!8<,!8,A@ A N-668%,-8,*68%,-8,N67+%,$&<+%,$,.7$&<$, = 6-6.7$&<$,"-/7<,0 3 = A6 6-%"-&(67<,., 6 A 768,-8@<, 68,-167$&<$,.76-  6-6-%A+@+ D:ATARZEE.DAT:-(8,+(7$&<$,/ 4:6-(/+ -(!-/(2 -6.7$&<$,<3 -7<,4 %67<,.-) 3 A`F P* -%(-%*(-8<,ZU2$@0/2AU&$@0=-@ A K2U2d  A`n"+ -"( record scoresx -( 2 --%.(7$&<$,8,2 " -8," " AP-@@P " -%( @`"  A` A?A!-@@"?(@--@P !A*T:,"-$+-@P !A+ Ap[[;A,;@`,;,;@@,9,9,9,9<,;,;A,9,9,pp6.f006.&| | | |(67,. 67@`,. (67,.[+ARAC6-F:A`,%F:Aa,$AV%K%S%[%0 -(CLAYTON WALNUM'S$-0(S --$%*(7@<A,A-AU6@K2O S 6 2-AU6A $+P:',"',"# 22AU&# ,# 22#A 6X@-@!F(©RIGHT (C) 1986 BY ANALOG COMPUTINGT-AX @j+AYAR1A@P?-@"G%K X(>:A%,jAY@4J6 A-0(# OF PLAYERS 6-T )!A^ -h, A@-%((#'S NAME,r!67$&<$&+&B:,,,.! |$-@"$( ONE SECOND...& A& D:ATARZEE.DATA -68,-"367$&<$,.7 A B' --68<,-6# ' T --68<,-)68<,-468<,-8 < B6-H6-N6-T6-Y++6-F:A`,%AV$F:Aa,%;&@d%C%K%Y%A4KARA'A 9A@"KAA$#-" A6%$ LL72,138,72,169,12,162,0,141,10,212,141,23,208,142,24,208,104,170,104,64-AA-BBA4 -4(&  --( 4 -4(& | |> - (->(& 7 -(Ones----------`#-7(Twos----------`7 -(Threes--------`#-7(Fours---------`7 -(Fives---------`#-7(Sixes---------`&-@( SUBTOTAL:0E-@!$(3 of a kind----`0-@!E(4 of a kind----`:E-@!$(Full house-----`0-@!E(Small straight-`De-@!$(Large straight-`0-@!E(Chance---------`Q-@!e(ATARZEE-------`N7 -(:-&(:,-7(:X2 --%$$(7$&<$,( 2 A`b(67,. 67A,. (67,.l!! D:ATARZEE.DATv: -68,-$(8,6(7$&<$,:  AD:ATARZEE1.BASN)NN`N)N)N)NnNN)N@NN)N)N)NN NdN)NN8N)N)N)NNpN N)NNN)N)N)N@N)N)NZNN)N)N)NBN&NN NPNN)N)NN(N N)N)N)N$NNIN)N)N)NNN)N(NNN(6N:A%,+-@@ A(@LEVEL c2AU@@2@AT@@5'-AU#A' ?#6-A @ # A DG6-++AU=AG A`W** END OF GAME ROUTINE **Xf -AU6@D2AU&@@X-@@\ bf b%-@@! A% l6 +@-@6(@ Šq !6-v3-@@3(@>>>>>>>><<<<<<<<{,-@@,(@SCORE ,-@@,(@HI-SC 3-@@3(@>>>>>>>><<<<<<<<C-@@C(@ press to play againAF:@ , F:B2y,@AUo +A1AU=6-@I6-U6-a!@o6-&@ A` ** SOUNDS ETC ***<-@682$@@< /i-@6@2AP&$@@D f2i$4J%2G2@J$** ADD NEW KILLER BUG **''6-%P:H:,$A,%@@F:,A @*@'@ *$** TITLES ** +@6-@[-@@@+-;(@=G-@W(@=[ -@@#-@2(@F-&@@U(@ i-@&@x(@-@ &@(@  @ 6-A @ %-@ @%(@g  AR-@ @%(@7-@@R(@ les ellingham# A6-AP# @ 2-@@2(@ level 6-@@6(@press to play$HF:B2y,"@" A06-%@<!@ H6-@&"-@@"(@) F:B2y,"@AP836-F:A,'AF:A,3AB6-AP @ L A`** INITIALISE **9@,9@,'6-@6-@'6-@(-@@"$68,-( ++0,0,0,0,41,-39,1,0,39,-41,-1,0,40,-40(-@"$68,-( 1,-1,39,-39,40,-40,41,-41$N AF:A,&@*+<ANAU A%W6-6-'6-36-A6-$@W6-$@%@!AV'AV! A A@%%6-F:@,%AV$F:@,E A @0)@;@ E A** DRAW SCREEN **)-@@@y%%@) G-@A9@@-%@C%%@9@G )-A@Ay%%@)   #A`/-@@"+%A%/ 44,37,54,37,44"%A%@@J7 #A !-@@$%"3%@7 Tdd361,362,363,441,442,443,98,100,138,140,178,180,476,477,478,556,557,558,740,742,780,782,820,822^!!-@$@%@h''6-%P:H:,$A,%@@rF:,"@A@|@ -@$@''6-%P:H:,$A,%@@''F:,"@)F:,"@A@ :6-%A%"F:,06-%@: A@@''6-%P:H:,$A,%@@44F:,"@)F:,"@)F:,"@AP@$* NEW DISPLAY LIST *AY%%6-F:A`,%AV$F:Aa,+%@@p+%@@Q-@@'%%@) =%@(@Q%@)@e1%@0F:A`,1%@1F:Aa,AY@4$ * CHANGE CHARACTER SET * #A%0 $$6-+F:A,%@,$AV P;@2,$-@@2("667<,.>:,: P6-?:C:,<BsD<, ??104,104,133,204,104,133,203,104,133,206,104,133,205,162,4 FF160,0,177,203,145,205,136,208,249,230,204,230,206,202,208,240,96 #A% ""6@$ ;-@"-%$@%1 ; A%` 6,0,20,65,213,81,213,60,20 $$4,130,40,170,170,170,40,40,130 ##3,60,255,255,169,40,40,40,170 7,65,20,85,85,85,20,20,65# -1 D:BUGS.BAS,g,~,|||Ag9|L zN9lĀ GfH@@gp`H@@g`H0,gP9|`$0,Ā lH|@g 0,Ā lBRlĀ ,6,ĀƼЃ @H|Ag lĀfL zNH@ G?@9@HAɴ)Hɰ0@ fnH?<BgN X9lĀ`$0,Ā lH|@g 0,Ā l1 REM *******************************2 REM * BUGS *3 REM * by *4 REM * LES ELLINGHAM *5 REM * Written for PAGE 6 *6 REM * First Published jointly by *7 REM * PAGE 6 - ENGLAND *8 REM * and *9 REM * ACE NEWSLETTER - U.S.A. *10 REM *******************************11 GOTO 100019 REM ** DELAY SUBROUTINE **20 FOR D=1 TO DL:NEXT D:RETURN 29 REM ** UP-DATE SCORE ETC **30 IF SC>CSC THEN CSC=SC:SCORE=CSC+BSC35 STR=INT(SC)/3:IF STR<0 THEN STR=040 POSITION 20,0:? " ";INT(STR);" ":POSITION 29,0:? " ";SCORE;45 IF STR<=0 THEN POP :GOTO 60050 POKE 77,0:RETURN 59 REM ** CHECK FOR COLLISIONS ETC **60 M=Z2:M2=Z2-Z65 IF PEEK(M+M2)=3 THEN 15070 IF PEEK(M+M2)=4 OR PEEK(M+M2)=5 OR PEEK(M+M2)=7 THEN 9575 POKE M,0:POKE M+M2,480 SOUND 1,10,8,6:SOUND 1,0,0,0:RETURN 95 FOR I=0 TO 7:M2=MPOS(I)105 IF PEEK(M+M2)=0 THEN POP :GOTO 75110 NEXT I115 POKE Z,0:POKE M,6:GOSUB 815120 BUGS=BUGS-1:SC=SC+10:SCORE=SCORE+2:CSC=CSC+2:POKE 20,0:POKE 19,0:IF BUGS<=0 THEN POP :GOTO 500125 M=0:M2=0:GOSUB 30130 RETURN 150 POKE M+M2,4:BUGS=BUGS+1:TS=TS-1:SC=SC-((LV*6+6)-TS)*4:GOSUB 30:GOTO 60199 REM ** MAIN GAME ROUTINE **200 S=STICK(0):IF S=15 THEN Z2=Z+MPOS(INT(RND(0)*8)):FOR D=1 TO 72-LV*8:NEXT D:GOTO 215210 Z2=Z+ST(S)215 IF PEEK(Z2)=5 THEN 200220 IF PEEK(Z2)=3 THEN GOSUB 150225 IF PEEK(Z2)=4 THEN GOSUB 60230 IF PEEK(Z2)=7 THEN GOTO 600235 IF PEEK(19)>3 THEN GOSUB 900240 FOR D=1 TO 45-LV*5:NEXT D245 POKE Z,0:Z=Z2:POKE Z,6250 SOUND 0,12,10,4:SOUND 0,0,0,0255 GOTO 200499 REM ** LEVELS AND BONUSES **500 IF SC9 THEN LV=9560 ? #6;CHR$(125):POSITION 6,9:? #6;"LEVEL ";LV:SOUND 0,255,10,8:SOUND 1,254,10,8565 FOR I=0 TO 255:POKE 708,I:NEXT I575 DL=500:GOSUB 20:GOSUB 820580 BONUS=0:GRAPHICS 0:POKE 755,0:POKE 710,0:GOTO 1260599 REM ** END OF GAME ROUTINE **600 FOR I=255 TO 0 STEP -5:SOUND 0,255-I,10,8:FOR D=1 TO 5:NEXT D:POKE Z,I:NEXT I610 FOR I=1 TO 3:GOSUB 815:NEXT I620 GRAPHICS 18:POSITION 5,0:? #6;"Š"625 IF SCORE>HI THEN HI=SCORE630 POSITION 2,2:? #6;">>>>>>>><<<<<<<<"635 POSITION 5,4:? #6;"SCORE ";SCORE640 POSITION 5,6:? #6;"HI-SC ";HI645 POSITION 2,8:? #6;">>>>>>>><<<<<<<<"650 POSITION 3,10:? #6;"press to play again"655 POKE 711,PEEK(20)660 IF PEEK(53279)<>6 THEN 655665 GRAPHICS 0:POKE 710,0:POKE 755,0:SC=10:CSC=0:BSC=0:IF LV>1 THEN LV=LV-1670 GOTO 1260800 REM ** SOUNDS ETC **810 FOR S=14 TO 0 STEP -V:SOUND 0,S*10,12,S:NEXT S815 FOR S=14 TO 0 STEP -V:SOUND 0,150-S*10,12,S:NEXT S:SOUND 0,0,0,0:RETURN 820 SOUND 0,0,0,0:SOUND 1,0,0,0:RETURN 899 REM ** ADD NEW KILLER BUG **900 X=SCREEN+INT(RND(0)*799)+40910 IF PEEK(X)<>0 THEN 900920 POKE X,7930 POKE 19,0:POKE 20,0:RETURN 1000 REM ** TITLES **1005 GRAPHICS 18:V=11010 FOR I=1 TO 17 STEP 2:POSITION I,0:? #6;"=":POSITION I,11:? #6;"=":NEXT I1020 FOR I=1 TO 8:POSITION I,2:? #6;"":POSITION I-1,2:? #6;" ":POSITION 19-I,2:? #6;"":POSITION 20-I,2:? #6;" "1025 GOSUB 80:NEXT I1029 DL=500:GOSUB 201030 POSITION 9,2:? #6;"g"1035 GOSUB 8101040 POSITION 9,5:? #6;"":POSITION 4,7:? #6;"les ellingham"1045 GOSUB 1200:DL=750:GOSUB 201050 POSITION 2,5:? #6;" level ";LV1055 POSITION 1,7:? #6;"press to play"1060 IF PEEK(53279)=5 THEN GOSUB 815:LV=LV+1:IF LV>9 THEN LV=11062 POSITION 15,5:? #6;LV1065 IF PEEK(53279)=6 THEN 12501080 P=PEEK(708):POKE 708,PEEK(710):POKE 710,P1090 DL=250:GOSUB 201100 GOTO 10601200 REM ** INITIALISE **1210 DIM ST(14),MPOS(7)1215 LV=1:SC=10:V=11220 FOR I=1 TO 14:READ A:ST(I)=A:NEXT I1225 DATA 0,0,0,0,41,-39,1,0,39,-41,-1,0,40,-401230 FOR I=0 TO 7:READ A:MPOS(I)=A:NEXT I1235 DATA 1,-1,39,-39,40,-40,41,-411245 RETURN 1250 POKE 106,PEEK(106)-5:GRAPHICS 0:POKE 710,0:POKE 755,01255 GOSUB 25001260 M=0:M2=0:Z=0:Z2=0:BUGS=LV*3:TS=LV*6+61265 POKE 756,CS/256:GOSUB 20001270 POKE 710,101275 SCREEN=PEEK(88)+256*PEEK(89)1280 GOSUB 1500:GOSUB 30:POKE 19,0:POKE 20,0:GOTO 2001499 REM ** DRAW SCREEN **1500 FOR I=40 TO 79:POKE SCREEN+I,5:NEXT I1510 FOR I=80 TO 839 STEP 40:POKE SCREEN+I,5:POKE SCREEN+I+39,5:NEXT I1520 FOR I=840 TO 879:POKE SCREEN+I,5:NEXT I1545 RESTORE 15601550 FOR I=1 TO 5:READ A:POKE SCREEN+885+I,A:NEXT I1560 DATA 44,37,54,37,441570 POKE SCREEN+892,LV+161600 REM 1610 RESTORE 1620:FOR I=1 TO 24:READ A:POKE SCREEN+A,5:NEXT I1620 DATA 361,362,363,441,442,443,98,100,138,140,178,180,476,477,478,556,557,558,740,742,780,782,820,8221630 FOR I=1 TO LV*6+61640 X=SCREEN+INT(RND(0)*799)+401650 IF PEEK(X)=5 THEN 16401660 POKE X,3:NEXT I1700 FOR I=1 TO LV*31710 X=SCREEN+INT(RND(0)*799)+401720 IF PEEK(X)=5 OR PEEK(X)=4 THEN 17101730 POKE X,4:NEXT I1740 Z=SCREEN+500+I:IF PEEK(Z)<>0 THEN I=I+1:GOTO 17401745 POKE Z,61750 X=SCREEN+INT(RND(0)*799)+401760 IF PEEK(X)=5 OR PEEK(X)=4 OR PEEK(X)=3 THEN 17501770 POKE X,71790 RETURN 2000 REM * NEW DISPLAY LIST *2005 POKE 559,02010 DL=PEEK(560)+256*PEEK(561)2020 POKE DL+3,70:POKE DL+6,62030 FOR I=7 TO 27:POKE DL+I,4:NEXT I:POKE DL+28,6:POKE DL+29,652040 POKE DL+30,PEEK(560):POKE DL+31,PEEK(561)2045 POKE 559,342050 RETURN 2500 REM * CHANGE CHARACTER SET *2505 RESTORE 25302515 CS=(PEEK(106)+1)*2562520 DIM MC$(32):FOR I=1 TO 32:READ A:MC$(I,I)=CHR$(A):NEXT I:A=USR(ADR(MC$),57344,CS)2530 DATA 104,104,133,204,104,133,203,104,133,206,104,133,205,162,42535 DATA 160,0,177,203,145,205,136,208,249,230,204,230,206,202,208,240,962550 RESTORE 25802560 READ A:IF A=-1 THEN RETURN 2570 FOR J=0 TO 7:READ B:POKE CS+A*8+J,B:NEXT J:GOTO 25602580 DATA 6,0,20,65,213,81,213,60,202585 DATA 4,130,40,170,170,170,40,40,1302590 DATA 3,60,255,255,169,40,40,40,1702592 DATA 7,65,20,85,85,85,20,20,652595 DATA -1A??<?N =@ ,6.ƼЃ6.ƼЃS @P nl|`\ nf|`L l((H l($HA@$ l()H l(%HA@% l|(V/h/FASTAMONTHDFBLKYDDAYCLNULLMMSTERROMOVBOPC25C6C25CONSOKENUDAYEAMDPSCHOICDCOROFYASCSAVAD  !"#$%&'()*+,-./;@9,;@v,;@,;@,;@,;@ ,;@,;@,;AE,;A,;@,;@1,5 #A0!-@@9%"167,.>:,5 %6.%6-A@N&;@9,;Ab,;A,:-@@9>"J67,.>:,N 絷?6-AU6-@d'6-AV36-B2y?6-Ad= 6._67Ab,._+67@,.16.76.=6.[+AY%AA7AAIA @[AR@c-@@'@@9@@9c(% --(%̠ǠҠ --(% --(%Ǡ砠 0-(%0( $$( $$( | A JANUARY G JULY |$$( | B FEBRUARY H AUGUST |$$( | C MARCH I SEPTEMBER |$$( | D APRIL J OCTOBER |$$( | E MAY K NOVEMBER |$$( | F JUNE L DECEMBER |$$( A($( ŠԠȠ6AY@4A@5@@K:*)@5@/6-&@d/ @)!@@"#A%"6-$7 6--@@(+6-A76-@%#( ENTER YEAR BELOW (#(&q%(USE Π TO INCREASE YEAR((J(USE Ԡ TO DECREASE YEARM(n(PRESS Ԡ TO SELECT YEARq('(( (( |Һ1985|)@( (AY@4<-@@"@ * 6-F:, "@@B+"@6-%@,"@6-&@-"@6- @P. A6-A/!A6-A05-@('-@@2+ 5 @B2-@@((3+(( YOU ENTERED THE FOLLOWING MONTH:+(4(, ((5 (IF THIS IS CORRECT, THEN6(PRESS THE START KEY.(7&&(IF IT IS INCORRECT, THEN PRESS8(THE OPTION KEY.9 6-F:, "@@W:#"@ A # @`;.@@$@. @< (}AY'AA9A @KAAN(`@@r@@9AR@ @b=/,($| | | | | | | |/$>/(/($?,,($| |@,,($A,,($|SUN |MON |TUE |WED |THR |FRI |SAT |BX-@@@($J @aT @aX F,,($G#( | | |#( | | |H( I6-+@@&B:,,'@J-@(K/-@@(+-@3@/(L AMAY@4PF:,@@Z A6 A^A6-@%@$%6-@A-@@!@h-@@7@m"@6-o!@ 6-&@r - (s$7<,4-%@$(*v!@ 6-%@w " $x6-%@  $ A@@"%-@"%(( OPTION WINDOW /(/(  AP6-@6-@ 6-F:, "@A "@AO"@6-%@+6-%@7!@C6-@O6-@O"@6-&@+6-&@7 @C6-@O6-@-@#@(2-@#2(7+@$,&@<@$, A 6-6"@#-@@(, 6 @"@A"@A #"@ A# @}@@'-@@B(V-@@ b-@}( 4 -@@!4(*-@@ *(Please enter the*-@@*(date you wish to.-@@"(examine..ARm A1-@@-( ~~~:@LAR@U6-A:,m @)!A1t-@@ t(Z   B-@@*( Ӡ66-@B6-@6.7A$&A,-@@g-@%@ 8(7@ $&@<@ $,< N@@`@@2g(o@(@@K:46-@@6-@F6.\-%@%@ hARo($)@$"AUAU"@'A"A&A`!!!AU* A`A@!!!@'* @2A@!!!A$* A(A@!ASA@)6-%@"@2)6-@!@ 6-@   6-U-%@%@ %"AU1(>:,=6-@K67<,.>:,U A@167<,.>:,"AS167<,.>:@, (>:, A@έנ&&67@ $&@<@ $,.)6-%@!@)6-@&&6.7@ $&@<@ $,%6-@6-AU% APŠ6-&@% @6-@% A@3 (_)67%@<%@,._3 A@ A @&&67@ $&@<@ $,. 467<,.  A767<,.367A$&A<A$,.7 %@%@@(@##67@<@,.>:@,<$6-?:C:,<@:AS,9 A%v67B:,%@,..w6-&Ax67B:,%@,.=:,y<-@@<("DELETING MONTH... z<-@@ <(" {5 A@&@3@2"@5%| A @E( /(ӠE( E(GO TO NEW MONTH/( E(DELETE A MONTH E( /(DISK DIRECTORY E( E(EXIT WINDOW /( E(UU6.KӠϠϠנŠȠˠ٠Ԡנjj6.`APPOINTMENTS GO TO NEW MONTHDELETE A MONTH GG67B:,%@,./DISK DIRECTORY EXIT WINDOW $ŠȠ@ 6.D: 67B:,%@,.QB:, @(67B:,%@,..G67B:,%@,.=:&A,Q A >67@<@,..>67@<@,.=:&A,$ A $@@@##67@<@,.>:@,$$6-?:C:,<@:@,2 6. 67,. %67@,.2(@F 6._67Ab,._+67@,.8(@C@F$RAR@'@@99-@@"R( SELECT=PRINT OUT2-@@#2(OPTION=SAVE START=EXIT 6-F:, "@A B"@$&@' A& @ԠԠ2@ A 2@@P:5-@B:,(7<,4>:@,567<,.  ''(@**********************''(@* APPOINTMENTS *''(@**********************2(@'(@ ,2(@=-@A@ 9(@7<%@,= 2(@2(@**********************@1-@@"1( 2-@@#2(OPERATION COMPLETE. !-@A !' A @ŠӠƠȠ6-&A#A%-@" T #AP-@"# F"@*'@"P:'@,T6-%@$3,6,6,2,4,7,2,5,1,3,6,14,7,7,3,5,1,3,6,2,4,7,25,1,1,4,6,2,4,7,3,5,1,36,3,3,6,1,4,6,2,5,7,3,51,4,4,7,2,5,7,3,6,1,4,62,5,5,1,3,6,1,4,7,2,5,73,6,6,2,4,7,2,5,1,3,6,14,1,1,4,6,2,4,7,3,5,1,36,2,2,5,7,3,5,1,4,6,2,47,3,3,6,1,4,6,2,5,7,3,51,4,4,7,2,5,7,3,6,1,4,62,6,6,2,4,7,2,5,1,3,6,14,7,7,3,5,1,3,6,2,4,7,25,1,1,4,6,2,4,7,3,5,1,36,2,2,5,7,3,5,1,4,6,2,4))31,28,31,30,31,30,31,31,30,31,30,31%%6-F:@,%F:@,$AV6-&A$6-?:C:,<<<A ,$6-?:C:,<<<A ,$ˠ٠+@+@@D:*.*--@@-(--@@-( DISK DIRECTORY --@@-(8-@@! A0.@8 A@9-@%@5(7@<@, 9 @/-@%@/($-@%@$( /-@%@/(&-@@#&( PRESS STARTF:,@A5 A  @//7@<@,4 FREE SECTORSA00 AB-A:7@<@,,!@0$'6-&@ $ (}7"(THERE IS NOT A FILE FOR 7(ON THIS DISK!!!(= RE-ENTER DATA!!(Ԡ= CREATE NEW FILE 6-F:,"@$="@'@(@3@= @ A  EE104,104,104,10,10,10,10,170,169,7,157,66,3,104,157,69,3,104,157 GG68,3,104,157,73,3,104,157,72,3,32,86,228,132,212,160,0,132,213,96 SS104,104,133,215,104,133,214,104,133,217,104,133,216,104,133,218,104,170,160,0& MM177,214,145,216,200,208,4,230,215,230,217,202,208,242,198,218,16,238,96ҠŠR+A@p+A @=@@O@@9R(&6-F:A,&"ApA@$(AN ERROR HAS OCCURRED!!($(i"AbO(;THERE IS NOT ENOUGH ROOM ON THE DISK TO CREATE A FILE FOR R(U(X(f( RUNib"AD_(KTHERE IS NO DISK IN DRIVE #1, OR THE DISK HAS A WRITE-PROTECT NOTCH ON IT.b/,(ERROR - >:AU, RUN/YV(4THE FILE FOR THAT MONTH IS NOT ON THIS DISKETTE.>:AU, RUNY'JANUARY,31'FEBRUARY,29'MARCH,31'APRIL,30' MAY,31' JUNE,30' JULY,31'AUGUST,31'SEPTEMBER,30'OCTOBER,31'NOVEMBER,30'DECEMBER,31 D:CALENDARvvvvvvvvvv"AN"A"A"A"A"A"A"A"A"A"A"A"A8"A"A"AT"A"A"A"A"A"A"A"Ab"A"A"A"A>"A"A"AZ"A "A"A"A"A"A"A"Ah"AD"A"A"AD"A"A"A`"A"A"A"A^"A"A"A"An"AJ"A2"A"AJ"A"A"Af"A"A"A 5(V<( 0XX 0XX ?30<~ffff~~~`f~~f~`ll~ ~`~f~~`~ff~~ ~f~ff~~f~f~6lI,ҶK,ҶK6lI +<^[^UU(~(~~(~~(|6@fu  8n<~<~<<<<~~~<<~ȆX(*4yzyzҍ8ԩ>/Ѝҩo @ԩL1@ԩ021$<=>?ҍҍҍ҅ 􅜩23 N&ƆƇƈS2),ҍҥ)  -L%֨ I -y1 ;)3dLy&L%`.T)I33mz3ɥ#P3z3z3UQz3 m3ɥΎ3 N&L%( \.` N&z3)3)eƉ / /Z3 5慑ꩆ8O8 Z5 ( r5 (Е /䍐 3ۥ (031ԭ. )L%91y888"ڐ 8Ƌ0I8i8L0' )ҍҍҍҭ (L0' )ҍҍҍҦ1i8慹5 / u 0ʼnᦎ /*4$ i < i0ХiƊ٩)Ɗ ƌL%拢ȥ БȩБii慥Ō`)bL\)&!! *)e! *)e!)L-*֨ L-* -L-*L,xIL-*w191w1 &0 91w1M &0 .L-* -L-*)b . &0(ĥ ȩ ̴1iޅ1 /L+Ɇĥ 1L+ąL*0L+ 0^ȵ)ys1ĵyi1ą u iޅ1i h.yq1Đ̊ ̙ҩƙL+) / 0$)ȱ) 6̥ĥL+Ɇ4 1!ą 0 0 0 / 1ئL+ G0)L,)L+ i@i  90 98 Č뵬)0""Č i i<$Č֨ )  iҵ8jI'i֬ . ҵ) 0)L,Lf, I iҵ iҩFV $1 ?02ɛɞ*1I5 G08m1i1)  i1iƏȵ)F $1ȑƏȵ ҵ)L,) A ̵̍) INX0,Ng@ l( lH(HCg(2< l(| l(|A?NTNH`P..||W||Ag`BEHn/<?,?<?N l`..|A|A..|A|A ,μЇ/02¼ fffffff~`~~fl0fF68of;x88xf<~lll| ~`~>|`~ff~~80~f~fffff~ffff<cccwcff<``lxlf8~ffff~fff~~ff~``~ff~~f```~`~~~ffff~fff<cc>6f<)Ј ) ) )>)?)@)A)ݩ`Hh`$%&'`}ɛ Lm*~ 0* I*)*`};<=􅋅` *H I*h  m*` ƌ`:i 授e` 7 ; ;i i ` *8(` *<(`H****)h)` )`yɀɁ *+IL*ɂ I@L*Ƀ@пɄ IL*Ʌ𮥀@a { L*.)œ Т` +ɛ  Ȅɛ ) ) )Ąe悥 )`豁ɛ`) )i +,9,9,)L+> )ʆ *ɛ9) ~ *L,`{؅A[i ?ǝ *мƇL)ة$4 i@Х i:+ $<ƒI$暥30" 0">(" }0"0"" ">" }""Lb,-B晦:F(ИIF(Р "ȩ" "L_HH@(Ѝ ԽC(Ѝ hh@yzyz )故 =/l, \, \9- B) ԩ )Ѝ Ѝ ЩD8曠x%&-.آ3i3D3 b+ ) ,ɛ  b+L.43 5 b+L.L.ȹ30) .L.,:,: 2ɛL/ LZ.膝430/ȹ30)ɛM .L. .L.p:*5p:./ɛ p:p:ɛp: b+` V:/W:/ L.15 b+<5 b+D5 b+G5 b+J5 b+M5 b+`5 b+`N:N: 2s4 b+4 b+4 b+4 b+5 b+5 b+`L25 b+` 2`5 b+ ,440 à4 b+`/0ȹ40)ݦ4:4: 2ՠ4 b+`8 b+ )敥*L8 b+ ~0 0/Щ@ԩ*_ \b \ 0Lb088 b+Ҡ8 b+ ~0Lb0 )8 b+8 b+`0`5 b+` 2`͠4 b+` f:0g:0 9:9: 2L.014 b+),:p: (1 : b+ J1 U1),:p:,: 2`٠4 b+ (10ѩ U1`H J1h JB:E"DK V` B V` B:E,D$HI V J1` 2`8 b+ ,15 b+`381 4L14= )0 ) 0 ) ) ,128轪8ɛ Ѣ2ɛ7>:>: 2L2F:F:L2Р8 b+`ĝL1>:>: 2L2F:F:L92Ǡ5 b+`Z6 b+`7 b+O7 b+`7 b+7 b+`8 b+`O:`y8 b+ ,Ƚs4񩌠8 b+O:`8 b+8`),:e8 023i ( (`Q:Q: 2P:4y8 b+ ,Ƚ48 b+`P: 28 b+U5 b+ )_5 b+ )5{ u3 35 u3 35 u3 35 u3 3`0 )) ) )` ,ݮ5 R: 2`Terminal Activated^\o\gj_ph34`ib\bg\pi^kg\m`omd`qnojmrmdono\^o\kkmjbm\mjh(di_43no_m`b\di_-no_m`b]di_2+no_m`b^amj/.,-c\godi_4.no_m`b\di_,no_m`b]di_.-no_m`b^amj-,./c\go\i\gjb0 1 1 0 0 1 #(- origiantarelandinlaunchinstatu #no such45 not  storing retrieving 0 0 0 0 0 00 0 0 7 d 4b 0 e f 1 c4 0 9 2 a e command-error library s origin   status control1. open 2. close 3. neutralgyro controhydro-lift valvrb42 valvfraber switc2131 operationwhich ?56 was sent from  to warn earth that it is on a   with a .  has sensors to gar . when  returns to  we will alter   of  and avoid a . is  fourth planet from  star grindl in a parallel universe.  has 2 moons and a gravitational force 67of 70. it has a diameter of 17,000 .  is 98 million from grindl.the  . commands. d,st lt is used to end ming.  is stored in3 registers: reg a,regc.  distance from  star is put in rega. mooity  regc.   4312.   . com 78  d,fro,halt. halt is usedegc.  distanoon data  reg gravhe   rev fer to rom-b.all systems are functioning except  and  auto ming were disrupted during a magnetic storm.password? denied allowed done1. 2.  ?!)15robox 89..your mission was a congratulations...game compliments ofBarry Kolbe and Bryan SchappelH9L9P9]9b9g9n9w9}9999999999999:: :tapdat..data lost.readroboantarecollisioaccesprograconsists of an 8 stemilemeteothere are landin9o:launchinmust be put icoursillegathey are: iis stored ifiring order ithfailursuccesdisk file errorD:BOX.DAT/I//0001u1J2R2Z2i2x2V-````````````````````````````````B$W1 (c)1983 Action Computer Services  B JKIHiDiELV`L{$ {$ BLV`#L$$l L$ &` Fj`8冨凪` %EӅӥ %`ʆǪƩ Ɛee` %ƦʆǢ &Ɛeǐ B% B%L % %'&&&8儨児祂*L %&&*ń8&&L % %`hihiHHȱȱL$c !#3`L$JJJJ`H $h`Hȩh $L/& $L/& c$L/& k$L/& q$H8`HhHh &L/& BHI V䅠L/& L& {$L/&Ԇ ؠPIPP` 'P k$L/& +'L& 'L0' D'L&H- &8塪墨hLD' ]'L& d'L& 'ȹP`텠8堨塪 '芨Oȩ-`PP &P棩 Ѥģ0-ģ6000:,80H & &ehe&eģ0ʥ 8堅塅`$ &&*i0:0i &Ʀ`¢ 护°ڱ%ȱ%E &L(担CS &L(I ]'L(H X(L( +'L( &B V /&NLMȑ` MLN%B VL/&S:@)E:E)H & H)I) S& &h)0IC)D)LS&[\ZUVT` ~)C)D)` )L' x)L& ~)L&) ` )L' d%` 0d $ҥ `2)2ҩ`p`0)9?*`@0)ӈJJJJ)`Ѕ`ȱ`` s*ȥ`HhƣĢ`ƥĤ`Ѣ *`ȱѢĦ`膡``ťƤe8夰L+ Ƥ8`ŦeѠe桊L+,L+ ,mm L+++ C*)L+`+ C*)L+``,L+++ C*)L+`+ C*)L,``L,++ J) )O )O ) ) )++Ln,SCORE,f }&L,PLAYER 1PLAYER 2,x }&L, %U%U%E++, ((+(+w+(+++++++ )++ )+2+͙++Lr-+͒+L^-8+ + )+Ȍ+͗++LX-++L>-+L-+i2++i+L- +L- ++ +L- ++++͛++LM0M+)+)L .2͝++L .++ d% %++ +++L2.+L2.+++ +++LW.+LW.++++m++8+++++ )++L.++ ) +++L.+L.+++ +++L.+L.++++m++8+++++ )++L/++ )+L/+L/+͒+L/+)8+ )+Ȍ++v/+w/v/͗+w/+L/) ++Le/+i+L./L90+L/+L/L60+L/++L/++͒+L60+L/8+ )+L/8+ )8+ )+Ȍ+͗++L00++L0+L/LM0+i++i+L-+ + L", J)+͉+L0L0PLAYER 2 WINS:0q &L0 0 &+ B'L0 TO 0 &+ B'L 1L0PLAYER 1 WINS:0 &L0 0ܩ &+ B'L0 TO 0 &+ B'L11"PUSH JOYSTICK BUTTON TO PLAY AGAIN1 }& \*LS1 \*LS1L81L,``,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""dePeLOOCCHANOLDILINDCOHORVERTCR1SILAPOATIMELAXYLESOKX1Y1PZLLL  !"#$%&'()* ANTIC MAGAZINE VOL. 1 #4++SPEED DEMON USES A JOYSTICK IN PORT 1==THERE ARE TWO SKILL LEVELS '1' (BEGINNER) AND '2' (PRO)(33INPUTTING THE SKILL LEVEL WILL BEGIN THE RACE2WATCH OUT FOR OIL SPILLS<3 LAPS CONSTITUTES A RACEF00PRESS THE START BUTTON TO START A NEW RACEZ((SPEED DEMON BY JOHN MAGDZIARZ 1982d+@%@n1-@@1(@JOHN MAGDZIARZx+-@@+(@PRESENTS/-@@/(@ SPEED DEMON!-@A I-@@1(@PLEASE WAIT...E-@AI  A-@@ $= +AY=SHUT OFF SCREEN TEMPORARILYD#@@K:DOPEN KEYBOARD FOR DIRECT INPUTC6-F:A,&A&@CROOM FOR NEW CHARACTER SETK-F:A,%@&AVKGIVE NEW LOCATION OF CHARACTER SET6-$AV-A#;%F:BsD%,;COPY CHARACTER SET FROM ROM TO RAM -@@ "##6-+%@%@d,$@A-@"APOKE DATA FOR ALTERED CHARACTER SET" %% ,! !DATA FOR NEW CHARACTERS6''1,136,136,255,255,255,255,136,136@##2,60,60,190,190,60,60,190,190J##3,34,34,191,191,191,191,34,34T##4,190,190,60,60,190,190,60,60^9,0,0,20,20,20,20,0,0h$$10,204,204,51,51,204,204,51,51r""11,255,85,255,170,60,20,60,0|""12,0,60,20,60,170,255,85,255##13,8,42,168,42,170,170,168,40+ +AV+AY:%6-F:A`,%F:Aa,$AV:ALTER DISPLAY LIST%@@h)-@@#%%@) %@(@>-@">SET SCREEN COLORS, REGISTERS 0-4A% 26,0,198,72,63(>:A%,3;@@,;@0,;@,8AY"(>:A%,,#AP86-@/-@@9+67<,.>:@,/ -@@0@367<,.>:@,W67%@<%@,.>:@),{67%@<%@,.>:@0, @DRAW PLAYFIELD4-@@!"'-0(7<,4 &QQ0,0,1,39,28,3,1,9,3,6,1,20,25,6,1,8,0,9,1,19,3,12,1,13,15,15,1,22,0,18,1,3904-@@'!"'-0(7<,4 :DATA FOR PLAYFIELDD990,0,1,30,0,10,1,22,3,1,1,1,3,3,1,12,6,3,1,9,9,1,1,9N??13,3,1,9,17,1,1,12,21,3,1,9,25,1,1,28,25,11,1,6,29,9,1,18X6632,7,1,18,36,4,1,6,35,6,1,21,36,13,1,6,38,1,1,30b8838,11,1,24,19,10,1,6,15,13,1,6,12,14,1,12,9,13,1,9l556,14,1,12,3,13,1,9,22,7,1,6,21,9,1,12,22,13,1,6v.-@@.(| DRIVER |TIME|LAP| -@@  ( .-@@!.(|PLAYER #1| 0 | 0 | -@@" ( -@$@(>:A$,>:@),>:@0,>:A$,>:@),>:@0,>:A$,>:@),>:@0,>:A$,8-@&@ 8(>:@, SPEED >:@,8-@&@!8(>:@, DEMON >:@",A-@$@"(>:@,4-@$@A(>:@,n-@@-67<,.>:%A2,1 >6-6@J6-V6-b6-n6-@B-@#@*(7@<@,66-@#B6-@9AY@4'AR@9B2y%%2Ap@@3-@&@&( WHAT LEVEL?3)@%"@I6-@E% A6-@ !!@*@PAP%-@&@%(  * A4 -@@6@2-@#@!6(X2@@@@l-@Ap 2 Ap >-@#@!( H%%2@@@R?@ '@?RESET REAL TIME CLOCK\START OF GAME ROUTINEf?-@@!"(F:@,?F:@,!@Ap F:B2y,"@Az"@Ap"@AL6-R:,F"@)"@)"@)"@)"@ L6- 6-READ JOYSTICK__&@A `A pA A AAA0A@ A  Ap Ap-6-%@6-#6-@- Ap Ap ApY6-&@6-#6-@Y+"@$)"@%,*+"@)"@,Ap Ap- 6-6-%@#6-@- AP# 6-6-&@#6-@U?+"@)"@,*++"@$,*+"@)"@,,K6-@U A @$CHECK COLLISIONS.* 1-*@$6-*6-8'"@-( !6-'6-B@2ApLMOVE CARV. -( -(7<,$. AP` 6-6-6-ju%"@$*+"@)"@,36-%@U2@@P@@_ Apq-@ @!u(t%%2@~Q"@-( =2G AQ A@ A0 Ap%%6-P:H:,$@%@,J -@6@<2@AF ApJ J-@%-@@+-4(7<,@6-@J Ap&  6--&(7<, A !!OIL SLICK PLACEMENT ROUTINE6-P:H:,$%@,"@ A`$- 1"@2-*(>:@,-$ -*@$$ I-@&@ $( GAME OVER!6-@%@!I( B2y&6-F:B2y,&@A( A2$<CAR TURNING SOUNDF%2@@@G2@@ @@[-@@_ 2@2@P$ D4:SPEDEM.BASsssssssssssssgJlgH?NTL zhNJlĆgH0<l|",ĤҼ ALNuJlĆgXH0,g 0<`0<2,g 2<`2<A2,g 2<`2<A",ĤҼ ALNu0,|@9@J@f6H@ @g.H?<?< ?<?<NPBgBgBg?<NPL zNJlĆg(H?<N74T,<|H÷,>|,:|CH",ĤҼ ALNuJlĆg808 @ GNu zNHA>=|?<N6TJgTBn,>||g,>|??<N6X`?< ?<N6X?< ?<N6X|:`|:0.SnJ@fL,:@< <` 6<@< <` HB,:@< <`HB<A>NL,:@< <`HB< GC6<(g`JB((4< <f<f:< G4<(@(A@jAFDF@((ԱAkFDCk000 @ Ԕ<<j0 B@&MDV97NDDK&&L&M&N& + 5J&&&© M2 -L*J&˜ ' 5&0& M2&& $+L*& & M2 H-ƅ& & M2 H- 1- *`RUNTIME ERROR AT LINE &&L*, ,L&` '' &L&PROGRAM STOPPED&&Ńł ȱ`iL 'HH Z*L/ * . M2 + Q. . @. M2 @. ' M2 + @. 'hhL@.ʥ`HHhh`8L'u`Huh` L*L' L*L' ) .. ( .. ' * @.L* ) .. ' :, ( .. ' + ' * ' + M2 :, @. *L* ) ' ' :, ( .. ' + ' * ' + M2 :, .. /( @. *L* ' Z* Q.L/` ) * ..L.. ) . .. + ' .. ' :,L' ) ' :, ' .. + 'L'K&L&M& ) M2 M2,M&eK&iL&`M&8LV& .. Q.M&`ʔȱȱȱ Z*Șe惠 惨65*66* L*jem#6m$6 ..вHHhh```L*ʱ` +⅄* &JL&J *HHl JLw TO BOOT FOR DOS TO RERUNp B V8,` 3+ȱL*&&8#6$68凅刐SJj)ee`ффiiLL+8LL+ LV&uuuL*8` ,L*iL*豂Hȱh`p ,L*,H, BHI, 5 ?-N&h`8` :,L, :,#` :,0 :,0L, :,0` :,0L,L,`޵` `Ȕ`ʔ惥u`, BHI DEH 5 ?-HyN&N&hL* , ?-N&`,JJJJ`-,- +- -0 -L* t-L*` -H t-h 0 -`L,8 0ƅ`66&L-HH` B VhH)Kh)0 IJD-EB 5hL*S:,L*TUVL* -`,,L, ?-N&8ɰɅ ,`ʱȱȱ`ȵȵL*L* Q. @. @.ʥ @. .. Q. @.L3 Q. .. . . Z*uȱuȱu * Z* ..0 j,L3 ȱL* ~,L.ʵ`eeLV&HHhh`ؐHH Z*L/ *HH . .6 +i i .i i @.hh @. @. 'hh @.`HH Z*% *HH `2LQ/ Z* Q. LV& .6 + .. +` Z* Q.ޠ .. `2 +L/ L0H, B Vh`ҩ2ҵ ҵ  *L*H,BHI 5,h,LM2,DuEu *,IHKJBH 5h *L* -,H`B 5h`00LM2L*L* +`H *hLM21HZH eHHƆeiH Q.lꦆ M2Օ`0  L,`8`1-1- R- M201LM2101`K2 * Q.J2L2 M29 Ɔ채+K-J2L7280L2 .9K22K2LV& L2, Y2 . Y2 Y2 +, M2 +ƆеJ2 +`ʕ`66`HHH66666uuuhhhL* +愵 ' + 'I M2 380/66&&&`uuu` 3 3Ј 3 * +` 4B3C3 .A3B3A3B3C3 LV&ȥC3iA3B3 4`L$+3B3 3`LV&C38A3ƅ3 ȱC3A3B3` 3L33L3H 4 G3h`1+ %  88L 4 * *` * *`  * *` 4$' 4"0 40 4L, {4L, t4L,LM2LM25 M2 Q. .5555`H,? ,,HI5D55E5B 5H5h` VLV&5` 45 M2555 M2L5 45LV&55, 555 M258e555 M2K2L1  'L*hh iL* 5LD3 5L$+5B3&&ȱ0 6L5 6#6$6&& L5&&`i`K&&L&M&` 3+ȱ&&%8e慱HȱhױM&iK&iL&L*, BH Vh M2L*,&BH 5hN M2 *L M2ML*,%BNLMH 5hL*)*Z*w***`2`2+:,2+,,,j,Y,~,c,r,S,*$++++,,,1-.H----.`..0////D331000 1)&0001K0k04444{4t40&K'G(m(()0)])5555$155}1g153%636&6661V9V9V9V9 l9p9w9(w929<9F:PL:Z:d:n:x:;K;N;N;;;;;*<_<<<<==M="~=,=6=@>JK>TK>^>h>r>|#?-?-?S?S????&@@@@@@AA5AxAAAAA&A0A5.B:BB<~B>B?B@CDCE CICNCXCbCgClCvD{DDDMD8l980**xM88"8( (8 8 9(( 99 9$9%   :T*+ 2L..C(S[: 9O:$ 2O:%2#8   99*9  L..*29b*89$*9 98*#99b*89$*9  9%8*&9x)9(L..,9xx L..(8  8 (9$9%(%(  "Ҡž-)9_<9$9%,9xx  L..9$% &'  ",,,,,,,,,,,,,,,,,,/929 59((`)9M=* 229$9%2~="-9$9%9*+,9xxL..(/9        29        /9# 29 59((` rL..f>89 Z>$( 2 29$9% Z>$( 2 29$9%( ( Z>%2+ Z>$(2 29$9%( Z>%2+ "%"" + " " =========" 1" 2? " !;9 "  " " Ϡ٠5@>9)@$RO:$A91,91, 2  2{@D9o@$o@%22O:%)@%L..  #9XY99#9 &9 MApp-!#>&#&>,!#&>#'>9"%Ҡ TARGETS LEFT: Ҡ#9 &9 J9  A 9 # A8  A(A(9*2L..+j  ""-------"MBBppby:"Ƞ " COMPILED BY: "堠"  "PRESS TRIGGER...G9jM9.hhhhhhh`. 9JP9X  0``0<~ۙ~<<~~<<~~<. 9 XJCN+CS9 C$ y2" ======== 2C%MDpp+MD262,90,58,90,54,90,48,110,48,110,54,90,58,90,62,150&ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ@Hl lĤ(/H|gX ,Ĥм2,¼Ё)@ ,м)@ ,м)@ ,м)@ ,м)@`T ,Ĥм2,¼Ё)@ ,м)@ ,м)@ ,м)@ ,м)@Bn`40<2.A02.A02.A0Rn nmBlL znNH@@>G9G@H=l@0.A0,>|Ag*,>2.A|00,g ?.NTL zfffffff>`<|fl0fF68of;p88pf< 80 0 ~~`0 0```nf>ff~fff~~f<flxxlf`````~cwkccfv~~nf8pp8?ww<~~~<x`x`~<~~<0~0 ~ <~~<<>f>``|ff|<```<>ff>>ff>|``|fff8<<``lxlf8<fkc|ffffff>|f```>`<|~ffff>fff<ck>6f< x~ 0~<~~<~x|nf8x8N|XHlN|XHlN|XHlN|XHlN|XHlN|XHlN|XHl N|XHlN|XHlN|XHl JN|XHlN|XHl vN|XHlN|XHl N|XHlN|XHl N|XHlN|XHl N|XHlN|XHlN|XHl \N|XHlN|XHl N|XHlN|XHlN|X0,ĊlĈfHl N|X`"0,ĈfHl N|X` Hl N|XHlN|XHlN|XHl N|XHl 8N|XHlN|XHlN|XHl `N|XN?<?< ?<BgNP?<?< ?<?<NrP?<?<NXNdBgBg?<N\NBgBgBgBgN@PBgBgBg?<N0PBgBgBg?<N PN?,Ą/E0uذLܩ :ܩLܢ8LܥI8ՕLܥE> 8@8e08 ܥ)0 LڥJJJJ0 L bץL D`8` 8i@0 LNۢՕ 8ؐ ٠8ؐ е bL ۤȄ` `80 `H ې.+-h8` ې . ېh`ՠ66666&`ڢ.`)q` D`ʈe` ԕ` 8JJJJ ܵ) . ` 0` .0ʽ` ۥ)`8`E)F)`ԅ ( ۥ) 4 D`ߠߠyʈ``` ݦ - ڰ(ii fڰ  0````ԕ` ڰԅ)8@0&j ٥ԅX ݢ `ک M @ ڥ#ji@0 ڥ ݢ (`8`==W3>Tvb>2b'?h`06?2'A?%C4Vu?f'70P@U??CBH@ ݦ fڢ ݢ ݦ `ڢ (`8`ԅ8@ ) (ۢf ޢ ک r @ݢ ڢl f ݩեIi $ԅ fڥ (`@"wf?P?IWQpIG?9 Wa9cU? 0d? 9`?BXGB?7?()q?D>DIh8E?hyx? )D?@ (1V?wD3331??xS442Ph(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W D*NuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @A)X )X$A $BEG>O|g|JGn|m` REHl:/ NRPO`SEHl:/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`d .6.HЃR$@ nH|0fRZ"H|9o R"` nH|0f$n R&@g`SE .6.HЃ @B n0L N^NuNVH$.". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BNx -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <3=3``nf>ff~<ө<ө2A`B`L7 6(ҩmi:; < =:2i4354 ?6L 6 j u? ,p? j ?0070Lt _B0`?>2i435< 0>A!CE000Ɋ?0`0 1;:2 ҅1L: _`H232435; 1 ҩ;  hh@2 e1i1L; :)h@1890 <ӥL9`0`Hҍ 00) 08 109hh@ Ҡ2e1i1232435ޥ<<Щ82m43m 5`.̍ҩ  0 4ӭ j kL 0x 4ӭ j u  0<L `-2 ` Ҡҍ2ҩ% L1-2 2ҍ ҩ% ҩ(ҢAҬ`ҍ`%Ң`jj)?j)` k `    8 8 }imJJJ 8)i 8}}`|08|`i`Lx%) Ԥ   aXL )0 Ԥ  ̭ҭҩҭ2ҩU2ȑ212i23i3X` _<Ӎө0XL &'x \X`CT eu$F`1F!@WS   Y`S mF! mȱȱ򈈌 ```}~S  Y0 ` ` ɛ`  Y` ޠ`@S@ ``W+N(DS  `Nݩ̍`+>*) 9`? X0$4Ӡ@* \*=L` X0̍ҩҩ` h4ө \**=`?03==`R 0= L?`==` =``0<`=  0 L2@iЩР@ i  `%H$H` `#@R>  Y`UW `P0C@ESK }ATARI COMPUTER - MEMO PADBOOT ERRORE:xDxآ ? w(r s DR'S% X  <ర  9BDE J VL%  ) D )l )ll 0L*HH`lllI Ii`Нԝ`T67  , < L n e k)J` ) ~`S S`    K`@BC  iiA   KЮK l ~ `BiCill DE BH V`KLzR S` ) `J>K } KJ  `l)j@`+)*)*W/Lҩd{j`WiLQjeE( !o)?gjjj)g ! odXeY z udedhei A fW -*)' j ` B  efffQQ W]j8  O Q Y X Q @ p p d0e1p dehdie1 0 LH h`*) R" //L! 2 L4 Gd-FoJ` } L!ɛ 0L! L!TZ****)) GFo L-PI1dPd` ]W I LL` k4TlUm Lɛ cq LP lTmUkk L0 L 0 !LLld  L de !L*JbX| ɀɁ ILɂɃ@ЩɄОɅ L&|@a{ |L ML4`TʆTL\TTͿUU0RSULUUSRL deej cmTVl`cR!UR s UST   L UR 4 c %LcLcL } cH hc }H }hLD λ0TL GdheicH hcTͿ hڠh h L8 {RU Gdhi(feiigT N L QTT8 #ix(  RU G L ` L0+dL0d8dee dL`THUHVH Tfgf &gQg &g &geQfgmgW0f&gL~U0 FVjnLeffg8nfedd^geee_ohVhUhT`}cUVUWݍ S`VW0cQ }& 0Lw 4Tix %} L} VTW${T& }ɛ8 lΝ8ﭝTL8ptpquq`W 'SSWT*( VVU L` Lhh{ L4]^`H)nhJJJ`...` n` nI=`Tix %n8`W****))`eGd'fPhfPdeidhfi(fg` "iy( 0TTix(LRU G'd` XdYe(djedddeejLcTQQ " ci(cQLceUc` cHlTmUk{T USkL9 kcRT kcR USTkhc ` QlRm`cRT cR GS8RdL`-`T`T` L4 THTh{I{`Ў `{WRU`XdYe`"`获T`UaVbyz8`Zv yvIiv8a[wb\xzwIwxIxwxspZTw訥xu wvv~tHuJhjp~LBpevpqqupt TeyT zrewrsexsu'rt$zUUV VUV z / TH hT  L  8~~0LL4 4d //__aaaa ''OOAAAA ((PP@PPP 00``0 @ (ʔFy}~02- m7@ ` @`lj;k+*opui-=vcbxz436521, .nm/reytwq907~8<>fhdgsaLJ:K\^OPUI_|VCBXZ$#&%"![ ]NM?REYTWQ()'@}FHDGSA {   ` }  ɟ IM0+h@%Ax"A"A"A"A|"A^"A"A"AT"A$"A"A"A"A"Ap"AL"A$"A"A"A"Ad"AR"Av"AR"A("A"A"At"A "A"A~"A*"A:"A("A"A"A"A"AX"A."A"A"Az"A&"A"A"A0"A"A."A"A"A"A"A"A4"A"A"A"A,"A"A"A6"A"A"A"A"A"A"A"An"A "A"A"A2"A"A"A<"A"A"A"A"A"A"A"At"A\"A"A"A8"A"A"A"A"A"A"A"A"A"A"A"Ab"AP"A"A"A"A"AH"A"A"A"Ap"A"A"A"A"A"AV"AJ"9|9|9|9|9|9|9||CT222"232D2U2f2w22 202A2P2S2d2u22 202B2S2T2T2e222202C2T2T2e22222D2U2U2f2222242E2V2f2222&262F2W2g222%2&2F2W2g2g2EخȊ z zȩȩ E [ bМ Qک] 򅟅 Ģ ۤ򄨱ɛ$0L Ģ ۩ T Ģ 5ɛȑ @膔7 Ģɛ ĢɛК  ܩ8IȢ z Щ $P) 8孨客 $ L` L`L^ ܩ Щ L` ؐ0 A0Ԅ ĢLĢ 0$ LYU LY8eHeHL H H hhHH`hhLۡLѽʆLۡ 0 ҰşLۡ` `@  LhhHHL `LLL ۥųޢ T#iŰ DD Ģ`8` ۥ 裰% ᢥ0 裐 ې$$ 8`$ (ȩ@҅ҥ򄬥 T M L~8򨢄 zӤ򈦬ʽʈ򈱗  z池$PƬ0 LĢL,A[`8` ۥ ؐ` ĢȢԑ` ۤ"̩ Ģ Ģɛ " ĢL3嫤`毦򤪱%).Q h(ei8`Ū߱08§REŧDATINPUԷCOLO,LISENTEҺLEԎI̦FONEXԷGOTϷGO TϷGOSU·TRAиBYŸCONYCOCLOSŸCLҸDEYDI͸ENĸNEOPELOASAV:STATUCNOTCPOINXI\OVPOKPRINԸRAREARESTORŸRETUR RUθSTOиPOGEԴPUԷGRAPHICVPLOVPOSITIOθDOVDRAWTTSETCOLOܦLOCATRSOUNLPRINԸCSAVŸCLOAĺ*ERROR- STOPPED+,%5&6(xĜ#%&$' !"*) +8,<Dȧ?+:ԧ,+:,+:,Ч#+7,</01 2!3"4E"-".|"-ɻ#ޅEE| +9S,#+;,Û΢|ijڢڢ@ACB=><GOTGOSUTSTETHEΣ<<>ުNOOANĨ<<>STRCHRUSASVALEADATCOPEESIRNFREXLOCLOSQSGABINPADDLSTICPTRISTRI8ee L08ueeeee褢 ƚƜ`8IȄ墅8夕奕墅褢`朱`  6ğȱȄ ~La HH`0 Щ LLL]š Š` ܩ ЩLei``` ELq El `=Īٷw|ԶԶѷש巴!e l. gɨ aL6 Eƨ إ󅕥 gL a" a Ư" L8 > c=Š) 죰 L樤ħ`hh` >L ڪ H # q Ԡ Dکթ@  Ԡ hH qhıȑıȑĦʊȑ` ͫՅԅ hhL^ ` 𵤨 >>< H & h  ` 0` q ˽L½    0 `LP  Lն` LP y gLh 0L[  0 ܩ Щ 0L ׫ԅՅ` ૥# ԅ ͫƳ ( >`(Lض Ȅ` z > ąŅ`őŐ  H h` zLzĦ``Ƶ`Ƣ౐``䉐䈐`)iiТLE`湩 0éL y7 oԩ 0 gՈ y [L` إ󅕥Lg AT LINE ૥H ׫ H ׫heԨh` . ૥ Hҩ ׫hHԝ ׫ H ׫hheԝ` ׫ԅUՅV ૥ԅT` ׫ԅ` ȍ JK )L ׫i)I ػLS: ȢL8)@e`H J*K+h LGHFH`L ׺L` ׺`H +h `@H ׺hH    ?}i}(i L fh`LP   ׺ 8倝偝   󥃅  LHΆ󢻆h ػ `C: КH hKJ LQ L H hHH ڪ } hKhJ  QL )L + L1& $LM 3 NL1 ͫ ԝL՝M ͫ ԝN%б ׫ԦL Q   L1   N Fɀ 7LɈ [L4] LS + C` ͫ`IHEDBLVHH hh L  ``r `YDAER ԅՅ֦󅗄`` > ˽ $ "   򤲈ȱ`   L &L8`$)ԩe (ې`)8@0+̪Յ)e)e ݦ `F ݢϠ `ڢ ڰ @ݢ F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%@)@0)%ԅԢ ޢ ڰ9 @ݰ. ڰ" fڥԅԥ ɠ (`8`0?i (۩ ݢ `ڢ ڢ ݢ (ۢ `ڢl ڥ fƢ ݥ#8@ji@)j `/NX0,gD lĤ( lĤH(HCg*2< lĤ(| lĤ(|A?NTN`\..||W||Ag`BEHn/<?,Ď?<?N l`..|A|A..|A|A ,ĤμЇ/02¼R/?,Ď?<?N lHlNX`0,g??HlNPHlNX0,g\ lĤ( lĤH(HCgB2< lĤ(| lĤ(|A?NtT< lĤ@ lĤ@N`?,Ď?<>NXNxLN^NuNV?><`?d8ԕIؠ7`ە1IiE0yʈ0niհdڥEԠ``&`I))8iE040 uʈiԐԕեE*`80 ʈL`<68?e ۵ԕڕڅ cԊEEhh*08``LC ݥ8i@ ۵ԕբ 8Lܥم؅٥ׅإօץՅքզJJJJ fܦ) fȥإЄL; `80 ` ې>.+- .,0"8` ېȄ`Ԡ66666`:`Lٔ0ȵߵ޵ݵܵ۰٘ eeߵe޵eݵeܵiۈٔۨ0Lۨuu٥uإuץu֥uՈ` 'Oc?'N?Jf tصJJJJ mص) m0 tة0̀  . 0.``` x݅` x݅ b` " ڰ b fڐ`i`ԝ````ԕ`ߢ ڰ F ٥8ԅLCieȅ ԩf fڥ)?%ߢl ݥ f `ڠ ڠޢ @ -ݩ ; ` (۠ߢl f fڥ b F ߢ e?` | fڠ - `L%@p8f@i 1&@4@ g@Y!3'@"wf } ۢ?1FffffوԠߢ ڠߢr 8ݢ -ݩ C ( " b fڢ ե8 f fڥ b `?PE@i@g5`@04VD?8@0% ?CBH@>DIh8E?hyx? )D?@ (1V?wD3331??xS489ABCDEF ST XFORMER v 1.1 DOS MENU A. DIRECTORY B. RUN CART. L. BINARY LOAD M. RUN AT ADDR. P. 6502 MONITOR Q. Quit to Desktop pCommand Summary for the 6502 Monitorq Syntax: ( all numbers are in hex ) ssss - starting address eeee - ending address dddd - destination address nn - an 8 bit value [optional parameters are shown in brackets] : ssss nn [nn [nn [nn ...]]] - change memory starting from ssss B - coldstart the Atari 800 D ssss [eeee] - display memory from ssss [to eeee] G ssss - start emulating at ssss H nn - nn is non-zero for hardcopy I [mask] - dIr of files on the disk L ssss [eeee] - disassemble from ssss [to eeee] M ssss eeee dddd - move memory block from ssss to dddd R[X] file - read binary file [and execute] S [ssss] - single step at [ssss] or pc T [ssss] - trace at [ssss] or pc V - view emulated screen display W ssss eeee file - write binary file f3=32i435< 0>A!CE000Ɋ?0`0 1;:2 ҅1L: _`H232435; 1 ҩ;  hh@2 e1i1L; :)h@1890 <ӥL9`0`Hҍ 00) 08 109hh@ Ҡ2e1i1232435ޥ<<Щ82m43m 5`. L  0 4ӭ j kL 0x 4ӭ j u  0<L `-2 ` Ҡҍ2ҩ% L1-2 2ҍ ҩ% ҩ(ҢAҬ`ҍ`%Ң`jj)?j)` k `ҭ`,l`H, h)`Lh Dl ,L<,L9hIh8``Lx%) Ԥ   aXL )0 Ԥ ̭ҭҩҭ2ҩU2ȑ212i23i3X` _<Ӎө0XL &'x \X`CT eu$F``1F!@WS   Y`S mF! mȱȱ򈈌 ```}~S  Y0 ` ` ɛ`  Y` ޠ`@S@ ``W+N(DS  `Nݩ̍_+>*) 9`? X0$4Ӡ@* \*=L` X0 Lҩ` h4ө \**=`/?03==`R 0= L?`?==` =`O`0<`=  0 L2@iЩР@ i  `%H$H` `#@R>  Y`UW `P0D@ESK `?Ў `{WRU`BOOT ERRORE:xDxآ ? w(r s DR'S% X  ర  BDE J VL%  D )l )ll >L#-`ll I Ii`Нԝҝ`T67  , < L n e k)J` ) ~`S S`    K`@BC  iiA   KЮK l ~ `BiCill DE BHLV ) `J>K } KJ  `l)j@`dj`+)*)*W {/Lҩ`WULQje%( !o)?g jjj)g ! odXeY z ededhei A fW  -*)' j ` B efff5Q W& ]j8  Q @ Q Y X Q @ pd0e1p dehdie1 0 LH h`*) R" //L! 2 L4 Gd-FoJ` } L!ɛ 0L! L!TZ****)) GFo L-PI1dPd` ]W I LL` k4TlUm Lɛ cq LP lTmUkk L0 L 0 !LLld )  L de !L*JbX| ɀɁ ILɂɃ@ЩɄОɅ L&|@a{ |L ) ML4`TʆTLTTTͿUU0RSULUUSRL deej cmTVl`cR!UR k UST   L UR 4 c %LcLcL } cH hc }H }hLD λ0TL GdheicH hcTͿ hڠh ` L8 {RU Gdhi(feiigT N L QTT8 #ix(  RU G L ` L0+dL0d8dee dL`THUHVH Tfgf &gQg &g &geQfgmgWu0f&gL~U0 FVjnLeffg8nfedd^geee_ohVhUhT`}cUVUW݅ S`VW0cQ }& 0Lw 4Tix %} L} VTW${T& }ɛ8 lΝ8ﭝTL8ptpquq`W 'SSWT*( VVU L` Lhh{ L4]^`H)nhJJJ`...` n` nI=`Tix %n8`W****))`eGd'fPhfPdeidhfi(fg` "iy( 0TTix(LRU G'd` (djedddeejݩcTQQ " ci(cQLceUc` cHlTmUk{T USkL1 kcRT kcR USTkhc ` QlRm`cRT cR GS8RdL`T`T` L4 THTh{I{`KLzRLSXdYe`"`获T`UaVbyz8`Zv yvIiv8a[wb\xzwIwxIxwxspZTw訥xu wvv~tHuJhjp~L"pevpqqupt TeyT zrewrsexsu'rt$zUUV VUV z / TH hT  L 8~~0LpL4 4dd //__aaaa a ''OOAAAA A  ((PP@PPP(( 00`` 0 @ (ʐFy}~02- m7lj;k+*opui-=vcbxz436521, .nm/reytwq907~8<>fhdgsaLJ:K\^OPUI_|VCBXZ$#&%"![ ]NM?REYTWQ()'@}FHDGSA {   ` }  ɟ I M+h@@ ` @`5fullw 2:clearw 2:gotoxy 0,0 20 ?" Spectrum ASCII file saver." 30 ?" Edtrad Computers 1988." 40 ?:?:?:?:input" Destination file name :";n$ 50 ?:?:?"start spectrum 1-2 seconds" 60 ?" after the tone." 70 ? chr$(7) 80 ? " To save hold down Control and G on ST. The type LLIST" 81 ?" on spectrum. Then type close on ST." 85 open"O",#1,n$ 90 x=inp(1) 100 if x=254 then close #1:end 110 f$=chr$(x) 120 print#1,f$; 130 goto 90 ` bDNN:NSN$TNTNNN&NXNWNLbN&NJN%fN#NT0N$TN$hN^N^N"N^@N\N"N^NZNNZN:N[(N\NHNNN NNNN%NThNNNNNrNhNTNVNO*N&N$TN)N)NjN)NNJN)NNN)NPLN)N4NNN)N)NN"N)N)N)NXNNNN)N)NNtN)N)N2TNN)NN2N)N`N1NN1:N0N0*N)N*N)N)N8NN'NbNNN$N)N&NNTN)NNN)NN(NNNFN)NPNN)NNN(NNN)N)NNNFN)NN N)NZN'NNNN)N2NN)NNtNN)N'NNN)N)N)N)N`bBG`hBG`\> GH<<<<<@ LS zNЂ@< < zN@<< zN*>TJ`*>TJ`f H zTNR zLNBG G(>C`BG`BG` zN*>CTJ`f*>BTJ`V*>BTJ`BU> G: REE?_*:$E zNBG G(>`2BG G`^BG`.BG`R> GH<<<<<L zPN@< < zTJ`*>TJ`*>TJ`g H zNR zNBG G(>C`NBG`RBG` zN*>CTJ` *>BTJ`*>BTJ`> G(:($E(V zdNBG G(>`BG`BG`> GS z2N@< < zN @<< zN*:$E zN*>TJ`*>TJ`\f H zNR zNBG G(>C`RBG`VBG`( zN*>CTJ`$*>BTJ`*>BTJ`> G(:(TRE$E zFNBG G(>` BG`,BG`BG`*BG`LR> G@< < zND@<< zND@<< zND@<< zN*:> G(:$E zN*>TJ`V*>TJ`t*>TJ`g H zPNR zHNBG G(>C` BG G(>C`$BG`BG`BG`> zN*>CTJ`*>CTJ`*>BTJ`*>BTJ`*>BTJ`BG G(>`BG G zNBG G zxNBG G zjNS@< < zVN@< < zBN*>TJ`*>TJ`*>TJ`f H zNR zNBG G(>C`hBG G zNBG G zNBG G zN@< < zN*>CTJ` zN*>BTJ`@< < zjNBG G(>`h@< < zBNBG G@< < z(NBG G@< < zNBG G@< < zN@< < zN@< < zN@< < zN*>TJ`*>TJ`*>TJ`g H z|NR ztNBG G(>C`rBG`BG`lBG` z8N*>CTJ`:@< < zN*>BTJ`^*>BTJ`*>CTJ``BG G(> G`^BG G`BG G`FBG`R@< < zN`$S@< < zxN*>TJ G`F*>TJ G`*>TJ`4f H z4NR z,NBG G(>C G`BG G`BG`C zN*>CTJ G`r*>BTJ G`^*>BTJ``lBG G(>`BG G(>`BG G`8BG`BG`BG`TJ G`*>TJ`*>TJ`>*>TJ`g H zNR zNBG G(>C`BG G(>C`BG`BG`BG`D@C z^N*>CTJ`~*>CTJ`*>BTJ`^*>BTJ`*>BTJ`N^NuNVH>.. ,",μ҇ A|¼Ё",μ҇R A|¼Ё&@LN^NuNVH>.. ,",μ҇ A|¼Ё",μ҇R A|¼ЁR&@LN^NuNVH?<?<@NX?<?0|g|0|g| 0|g|00|g|0|g|0| g| 0|@g|00|g|0A0RF FmBF`80(2At00P2A002AT0RF FmBlĀ`0,ĀRlĀA0 lĀeBlĀ`0,ĀRlĀ lB0,Āf l|/0,g"9|Ā`0,Ā lRlĀ lĀe0,g"9|Ā`0,Ā lRlĀ lĀe9|Ā`0,Ā lRlĀ lĀe9|Ā`0,Ā lRlĀ lĀe9|Ā`0,Ā lRlĀ lĀe l|0 l|19|Ā`0,Ā lRlĀ l Āc l|o l| l| l| l| 9| LN^NuNVA! N "Hz!?<&N6\N!0<9@9@9@N^NuNVN JN"\Hz!?<&N6\N^NuNV@@@AŰ pNHAJ,rgAC" l<B(Mj AM(<ANBOATCĄC E@G6<B@0024Q?g`0.|<",Ҽ A``|Wg` ,м @|``|Dg` LBl<$ GBP:<% GJg2]> GF: E?_ABC><$ G(:$E zNH@ G zNH@ GP|@~H0,g,~,|||Ag9|L zN9lĀ GfH@@gp`H@@g`H0,gP9|`$0,Ā lH|@g 0,Ā lBRlĀ ,6,ĀƼЃ @H|Ag lĀfL zNH@ G?@9@HAɴ)Hɰ0@ fnH?<BgN X9lĀ`$0,Ā lH|@g 0,Ā lBRlĀ ,6,ĀƼЃ @H|Ag lĀfN|BlL`0H0,g lg ?<BgNXNP9|NZL z4NH@ G@9@ z NH@ G@~9GĀH0,Ā```|g|g|g|g`N ,6,ĀƼЃR @P.H|?.H@?,~|?0,Ā|H?NP`p`|g|g|g|g`P ,6,ĀƼЃS @P,~||?,~|@?.H?0,Ā|H?NP```&L z"NH@ GgHNnL zNH@ GgJlgH?N\TL zNJlgH0<l|",Ҽ ALNuJlgLH0,g0<`0<2,g2<`2<A2,g2<`2<A",Ҽ ALNu0,|@9@J@f6H@ @g.H?<?< ?<?<NPBgBgBg?<NPL zNJlg4H?<N-T,||H÷,~|,z|CH",Ҽ ALNuJlg808 @ GNu zNHA~=|?<N-fTJgLBn,~||g,~|??<N-< GC6<(g`B((4< <f<f:< G4<(@(A@jAFDF@((ԱAkFDCk000 @ Ԕ<<j0 B@@ Ԕ<fhDd4hhhh|(<@ԱkFF`FdFDF@((ԱkHFD0 00@ jkx0 B@@ Fe`:<ڵ$E zN:<ٺ$E zN zNN^NuNVH>.<. 2A0@@H ,мTЁ&@` <&&&&&&&&&&(0SFJ@fLN^NuNVH>.<. ,&@:<BF&&&&QLN^NuNVH0&n>. <.:.0,g`NAG>BDDDDC0G$lTYPYYY@YYY0RF|fL N^NuNVH0>. <.:.0,g`v`l nRH|DDD ,2A6HЃHІмT&@AA$HZPZZZ@ZZR0<@@RF0SEJ@fL N^NuNVH&n>. <.:.0,g`???/ N LN^NuNVH0&n>. <.:.0,g`nAG>BDDDDC0G$lTYPQYQ@YQY0QYQ YpQYQ`QRF|fL N^NuNVH0>. <.:.0,g`x`nBD n-H|@DDD ,2A6HЃ2AHЁмT&@0|AA$H J67XP7X7X7X@7X7X7P0RF0SEJ@fL N^NuNVH0>. <.:.0,g``BD n-H|@DDD ,2A6HЃ2AHЁмT&@0|AA$H0|g" J67X7X@7X7X7X 7X7P`` JBSBkBk@BkBkBk BkBk`0| g$ J7XP7X7X7X07X7Xp7X7P`" JBkPBkBkBk0BkBkpBkBkRF0SEJ@fL N^NuNVH0&n>. <.:.0,g`H`:H ,2A6HЃ2AHЁмT$@0|g0<`0<@@@@0|@g0<`0<@@@P@00| g0<`0<@@A@@0|g0<`0<@@@Q@10|g0<`0<@@B@@0|g0<`0<@@@R@20|g0<`0<@@C@@0|g0<`0<@@@S@3RF0SEJ@fL N^NuNVH0&n>. <.:.0,g`` ,2A6HЃ2AHЁмT$@Bg"<gggggggA$%AP%A%A|0SEJ@f`L N^NuNVH0&n>. <.:.0,g`` ,2A6HЃ2AHЁмT$@BABBg2<gBgAgBgAgBgAgB45BP5A5B|0SEJ@flL N^NuNVH&n>. <.:.0,g`$???/ N" ??RG0?/ N LN^NuNVH0&n>. <.:.0,g`F`<H ,2At2HЁ2HЁмT$@0|A4RF0SEJ@fL N^NuNVH0&n>. <.:.0,g`L ,2A6HЃHІмT$@0SEJ@g$AU0@AD0HD@PRQL N^NuNVH&n>. <.:.0,g`???/ N LN^NuNVH0&n>. <.:. ,2A6HЃHІмT$@0SEJ@gQL N^NuNVH0A -H=|BnBE?<BgN^X n0 ,6,ƼЃ&@H| GpgS l@H|O>| DoP0|@gL|" R A|AA=@ R l@ R l@0nf=|0 lɰ?Bg? ,6.ƼЃ/0An PN < lɰ<SF0. lA$Hf|AQ0ng\ ng =D n00A40 n1@0 lɰ0 n1@ nBh n1n n1E2 lɰ2 n0(A1@0 lɰ0n0A4P`R Df?<0RE?NLX`:0@R@??N:X ng ng Bn nBP0@R@@ GAg Em. El0<ȐE??NX n0BlL N^NuNVH>.A &H`n Fgd02+ A:2+AdR8ȼ=D8+n?<0H@?? ,μЇ/0An PN 0< @fLN^NuNVH0A &H`4 Sf `(>+SG0+ lA$H AfB*Q Sf9| L N^NuNVH ,",Ҽ A|¼Ё&@BG`NH0A0F@A0A02A00A0F@2A0RG Gm0,g9|LN^NuNV,||=@0.H=@0<Dn l|2<En l|A=@0<Jn lP|Bn`Rn0. @o`T ,2.Rn¼Ё @H|:fBn ,2.Rn¼Ё @P0.RnAj nl.H| o .H|[mSn0.AjB.H|fFBgHl?<NXBgHl?<=NP=@`6.H|gBgHlj?<=NP=@`BgHlj?< l($R($H|f lR(% l((S((H|f lS()| no .H|f`0.f4|` ,6.ƼЃ/0./0.A??<?N =@ ,6.ƼЃ6.ƼЃS @P nl|`\ nf|`L l((H l($HA@$ l()H l(%HA@% l|( lB()| lnLnzn~N^NuNV,||=@0.H=@0.A??<>N*X0.A0| lnLnzN^NuNVH>.<. :.0HH@>|n |0<GG?0@??<N\0<GG?0@??<N\0<G???<Nn\?<Bg?<N^\H80gX0. | @ f0AbP0A\P`.0AVP0AhP?<0. @??<N\`0AbP0AVP?<??<N\LN^NuNV?<?<?<NM\Gz6?<"NNT @Gd&G!K?<?<?<NM\Nu/ CD"_Nu?<?<?<NM\?<"NNT @!z?<?<?<NM\Nu(zA l"HR(fR(MR(fR(J(Bf:F@@@xJ@zW@@@@@:F@@@y@{3B3BW@@@@@2<0(g@|n@0QACʰ".zNuN^NuNVA |V)P |T=PBlBn`, l f lC =n9|`XRn0.nmN^NuNV lBN^NuNV/ ?<"NT&@G Av C&`nH瀈 zdN(zTA( fBl`@ Af9|`2 fBl`& Bf9|` fBl` Cf9|LNu&_N^NuNV/ ?<"NNT&@G A&&_N^NuNVNbN4?<N&T)@ ,ܐ)@ ,ܐ)@ ,䐼м)@?<NT9@ lgHl4?<Nb\BgNTBgHl^?<=NP=@ @lHlf?<N2\BgNT ,м]//<?.?<?N m ,м] @H|gHl?<N\BgNBT?.?<>NDXBgHl?<=N4P=@ @lHl?<N\BgNT ,м]//<?.?<?N m ,м] @H|gHl?<N@\BgNT?.?<>NXBgHl6?<=NP=@ @lHlNXBgHl?<=NP=@ @mb ,м]//< ?.?<?N m ,м] @H|gHl?<N&\BgNT`9|?.?<>NXBgHl?<=NzP=@ @mb ,м]//< ?.?<?NN m ,м] @H|gHl?<N\BgNT`9|?.?<>NXN9|P?</N >X9@Bg0<`0<N^NuNV?.?<LN XN^NuNV/ A&H`0+ |g/ N*X A"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+N XBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ N @P?/+?+ NP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NP'@&Bk0<LN^NuNV/ &n0+ |fk@ 0+ |`g0<`&Bk`R0+ |g AΐA콂A &'@`*0+H/N X&'@ fk `k g-K?<?+ B?<BN  n!@& k f HlN~X0+ |g0<`0+?/?+ NP7@Sk0+ @l kfk `k@ Bk0<` SRH|&_N^NuNV/ &n Bk0+ |fk@ 0+ |@g0<` `R0+ |g AΐA콂A &'@`*0+H/NZX&'@ fk `k g0+ |g SR k `<0+ |g2k SR . H| g kl . H|`T/ N,XJ@g k@ 0<`<0+ |gBk. H|`"` 0+S@7@k . SRH|&_N^NuNV n Sh0( @m. n "R AH|`/. . H?N\N^NuNV fBC`&SCdTC0|g0|gԼdRC`|CHBC0|@HB LN^NuNVNVH n " n $&JjFFJjFFLN^@jNuNVH n"n $0(H@6C|g.0)H@:E|gE|BB0<まef bRAQ$0P`HNVH n$0(H@6C|gd"n .0)H@:E|gD|E(HD*HE20HGHBBB8:BGBBЇӄЂӅJg$0P`B`NVH"n 0<9@hQ`NVH"n Blh n,0(H@8D|fB.0)H@:E|fB2$60Enfl8,:.6$0Jg0Eg|n0@gDԇ0,hQ fBB`HSCdTC0|g0|gԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.AD PNPLN^/W DjNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @)P`)hd-l`-ldBEG>O|g|JGn|m` REHlz/ NRPO`SEHlz/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`b .6.HЃR$@ nH|0fRZ"` R"H|9n nH|0f$n R&@fSE .6.HЃ @B n0L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BNx -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@Bg <` `BlB . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^Nu)I)J )_NM"l$l /,Nu)I)J )_NN"l$l /,Nu)I)J )_NA"l$l /,NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NlX 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp`FSn0.A P m0.A0| |A`0.A0|0 SR0.fLN^NuNVH&n n f=| )n`)ndHl RHl`?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0llo0,l`0> Gl0<`0?HnHnHnNBF`0RFA SRSGSn0g nl` SR0Sn nl0. g SR.` SR0RnSn 0. g nm`" Go0RFAH`0<0 SRSG0. Sn J@f`` SR0. g SR.><`0RGA SR0. Sn J@f SRE?.Hl Z/N: /N^XHѓLN^NuNVBn`"0. n PHC|0=@ nR n PH|0m n PH|9o0.N^NuNVH0&n -n @$PX`R` nRg H|%fH|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN$X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NV 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @)P`)hd/,d/,`Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f` nR .o .R-@f nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlNPN^NuNVHn /.N&PN^NuNV`/. nRH?N\ nfN^NuNV nf:0,lf0<9@9@`?<NT=@ nf*0,g Sl?<?<NX?<D?<NX` n f00,RlA컶 ?< ?<NX?< ?<NX`v nf ?<NT nf20.2,RlA컶?< ?<NfX?< ?<NXX`*0.2,RlA컶?.?<N4X0<fA컶컲H|f0<`0,RlA컶H`` nf?<NT``0.-K`0SGJ@g f .`L N^NuNVH0&n$K`Rf `L N^NuNV`4 nH| f?< ?<N X nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNVH0&n $KA ^-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.NTJ@f`H| f |o@ H-@/./.?.?<@N 9@BHg0<`0,Bn/./<?.?<@N 9@B @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N( 9@BHg0<`0,BnBlB0.L N^NuC"BRK"ORA"???"???"???"ORA"ASL"???"PHP"ORA"ASL "???"???"ORA"ASL"???"BPL "ORA"???"???"???"ORA"ASL"???"CLC"ORA "???"???"???"ORA"ASL"???"JSR"AND"???"???"BIT"AND"ROL"???"PLP"AND"ROL "???"BIT"AND"ROL"???"BMI "AND"???"???"???"AND"ROL"???"SEC"AND "???"???"???"AND"ROL"???"RTI"EOR"LSR "???"JMP"EOR"LSR"???"PHA"EOR"LSR "???"JMP"EOR"LSR"???"BVC "EOR"???"???"???"EOR"LSR"???"CLI"EOR "???"???"???"EOR"LSR"???"RTS"ADC"???"???"???"ADC"ROR"???"PLA"ADC"ROR "???"JMP "ADC"ROR"???"BVS "ADC"???"???"???"ADC"ROR"???"SEI"ADC "???"???"???"ADC"ROR"???"???"STA"???"???"STY"STA"STX"???"DEY"???"TXA"???"STY"STA"STX"???"BCC "STA"???"???"STY"STA"STX"???"TYA"STA "TXS"???"???"STA"???"???"LDY"LDA"LDX"???"LDY"LDA"LDX"???"TAY"LDA"TAX"???"LDY"LDA"LDX"???"BCS "LDA"???"???"LDY"LDA"LDX"???"CLV"LDA "TSX"???"LDY"LDA"LDX "???"CPY"CMP"???"???"CPY"CMP"DEC"???"INY"CMP"DEX"???"CPY"CMP"DEC"???"BNE "CMP"???"???"???"CMP"DEC"???"CLD"CMP "???"???"???"CMP"DEC"???"CPX"SBC"???"???"CPX"SBC"INC"???"INX"SBC"NOP"???"CPX"SBC"INC"???"BEQ "SBC"???"???"???"SBC"INC"???"SED"SBC "???"???"???"SBC"INC"???CA"A"A"Ah"AJ"A "A"A"A"AN"A""A"A"A"A\"A"A"A"An"AP"A&"A"A"A"AT"A"A"A"A"Ab"A"A"A"At"AV"A,"A"A"A"AZ"A"A"A"A"Ah"A"A"Ar"Az"A\"A2"A"A"A"A`"A$"A"A"A"An"A "A"Ax"A*"Ab"A8"A"A"A"Af"A*"A"A"A"At"A&"A"A~"A0"A"A>"A"A"A"Al"A0"A"A"A"A|"A,"A"A"A6"A"A"A"A"A"Ar"A6"A"A"A"A"A^"A"A"A<"A"A"Ap"A"A"Ax"A<"A"A"A"A"Ad"A@"A"AB"A"A"Av"AL"A"A~"AB"A "A"A"A"Aj"AF"A("AH"A"A"A|"AR"A4"A"AH"A"A"A"A"Ap"AL"A."A "A"A"A"AX"A:"A("A4"A"A"A"Az"A2"A"A"AN"A"A"A"A"A"A"A"A"A"A"A"A8"A"A"AT"A"A"A"A"A"A"A"Ab"A"A"A"A>"A"A"AZ"A "A"A"A"A"A"A"Ah"AD"A"A"AD"A"A"A`"A"A"A"A^"A"A"A"An"AJ"A2"A"AJ"A"A"Af"A"A"A"Ad"A@"A"A"At"AP"A8"A&"AP"A"A"Al"A"A"A"Aj"AF"A."A"Az"AV"A>"A,"A "CA"A"A"Ah"AJ"A "A"A"A"AN"A""A"A"A"A\"A"A"A"An"AP"A&"A"A"A"AT"A"A"A"A"Ab"A"A"A"At"AV"A,"A"A"A"AZ"A"A"A"A"Ah"A"A"Ar"Az"A\"A2"A"A"A"A`"A$"A"A"A"An"A "A"Ax"A*"Ab"A8"A"A"A"Af"A*"A"A"A"At"A&"A"A~"A0"A"A>"A"A"A"Al"A0"A"A"A"A|"A,"A"A"A6"A"A"A"A"A"Ar"A6"A"A"A"A"A"A"A"A<"A"A"Ap"A"A"Ax"A<"A"A"A"A"Ad"A"A"AB"A"A"Av"AL"A"A~"AB"A "A"A"A"Aj"AF"A("AH"A"A"A|"AR"A4"A"AH"A"A"A"A"Ap"AL"A."A "A"A"A"AX"A:"A("A4"A"A"A"Az"A2"A"A"AN"A"A"A"A"A"A"A"A"A"A"A"A8"A"A"AT"A"A"A"A"A"A"A"Ab"A"A"A"A>"A"A"AZ"A "A"A"A"A"A"A"Ah"AD"A"A"AD"A"A"A`"A"A"A"A^"A"A"A"An"AJ"A2"A"A"A"A"Af"A"A"A"Ad"A"A"A"At"A"A8"A&"AP"A"A"Al"A"A"A"Aj"AF"A"A"Az"AV"A"A,"A "9|9|9|9|9|9|9||CT222"232D2U2f2w22 202A2P2S2d2u22 202B2S2T2T2e222202C2T2T2e22222D2U2U2f2222242E2V2f2222&262F2W2g222%2&2F2W2g2g2222&2F2W2g2g222262F2W2g2g22#242E2f2f2w2w2"222C2C2T2e2v2v2 202@2B2S2d2u2v2 202B2R2c2s2t2u2 20222B2S2c2d2u22 222@2C2T2d2uC42222 222222222222Cɴ2222222 2 222 2 2 222222 2 2 2 22222222 2 2 222(2(2(2(222 2 2222(2(2(222(2(2(2(222 2 2222(2(2(CŰAR"AH"A6"AR"A~"AZ"A"AT"A "AR"AR"AR"AR"AR"AB"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"Al"A"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"A"A"A"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"AR"9|ŮCnAv"AX"A:"A"A"A"A"AV"A"A"A""A"A"A "A"A"Ch222Cb222 C\222CV222CR  A )HN|9|9|9|CĄ2222W222222222222W 9|PC"2"2 2"2"2"22"2"2"22"2x9|)l ,z)l 0~)l 4v)l 8n)l XHlN4XHl6N*XHlpN XHlRNXHlN XHlNXHl NXHlDNXHllNXHlNXHlNXHlNXHl4NXHlfNXHlNXHlNXHlNXHl"NXN^NuNV. H??<?<NN\,g$Bg?<NNXJg. H?Bg?<NN\?<?<NNX g$?<?<NNXH| f?<?<NNXN^NuNVH&n` H?NhTfLN^NuNVBl`?<?<NNX-@ .@,H|am,H|zn, ,H| m,,H|_n ,H?NT0,RlA,H|f loHl8NDXSl lf:,H|f. .@,H|GfNt,H|bfN`80,Ұng$,H| g,H| g ,H|f`0<fHlRNXABBlN^NuNV`RlA@H| f 0,аlmN^NuNV`RlA@H|0m$,H|9o ,H|Am ,H|Fo 0,аlmN^NuNVB.B.N`D.|@@,H|0m,H|9n ,H|0` ,H|7.Rl0,аllRA@H|0m ,H|9o,H|Am$,H|Fn.|R.||mb.|N^NuNVBnBnN`@0.@=@,H|0m,H|9n ,H|0` ,H|7nRlA@H|0m ,H|9o,H|Am,H|Fn0.Rn @ex0.N^NuNV`DN" ,6,ĂƼЃ @P.|A-P .=@?,ĂNT?< NT0.|g| g`HlNX``|Rg`fAH|Xf 9|NRl`BlNN0,аlf`?<HlAA/N AA/NX`j`|Hg` 0.@`V`|Vg`JNA HSh0( @mA H R @H|` HlNDXN`?<N6T``0.g?</NX0,Ng@ l( lH(HCg(2< l(| l(|A?NTNH`P..||W||Ag`BEHn/<?,?<?N l`..|A|A..|A|A ,μЇ/02¼R/?,?<?N lHlNX`0,Pg??HlNPHlNX0,NgX l( lH(HCg@2< l(| l(|A?NT< l@ l@N `?,?<>NXNLN^NuNVH0&n$n `f L N^NuNVH. &n <.`0SFJ@f LN^NuNV=| `$0,Ă6.h| lNH?NTYn nlHlNZXN^NuNV0.HH lNH?NT0.H| lNH?NT0.H| lNH?N~T0.| lNH?NdTN^NuNV ,6.ƼЃ @P.|@ lNH?N*T.|| lNH?N TN^NuNV. |@ lNH?NT. || lNH?NTN^NuNV?.SG&&&&&&&&&&&&&&&&&&&&QL N^NuNV?<NT-@Bn`T0<ǐn??<?<N\?<?< 0<Ґn??<NP?< .м//.NT Rn nm?<?< ?<BgNP?<?< ?< ?<NPN^NuNVH0&nfA"&H?</ ?<NNP>?</NT$@`x?<Hn?< NBPA-H nH|.gB nH|/g2 nH|_g"Bn*H|g|*` nR2.RnA nl ng nH|.f=|` n2.RnAR nf *м|/ <}/N X=@0<02.HdA@0<02.H H HAA@0<02.H HAA@0. g"|Hn/<?. ?<@N `B.HnNXHlRNX?<ONT> GlBgHl?<6NP,,/,, /N,/,,/N, м/ </N X=@ nn nl=|0<02.HdA@0<02.H H HAA@0<02.H HAA@HnHl&NP0. g"|Hn/<?. ?<@N `"B.HnNXHlRNXHlRNXL N^Nu_.DIR_.DIR0123456789ABCDEF ST XFORMER v 1.1 DOS MENU A. DIRECTORY B. RUN CART. L. BINARY LOAD M. RUN AT ADDR. P. 6502 MONITOR Q. Quit to Desktop pCommand Summary for the 6502 Monitorq Syntax: ( all numbers are in hex ) ssss - starting address eeee - ending address dddd - destination address nn - an 8 bit value [optional parameters are shown in brackets] : ssss nn [nn [nn [nn ...]]] - change memory starting from ssss B - coldstart the Atari 800 D ssss [eeee] - display memory from ssss [to eeee] G ssss - start emulating at ssss H nn - nn is non-zero for hardcopy I [mask] - dIr of files on the disk L ssss [eeee] - disassemble from ssss [to eeee] M ssss eeee dddd - move memory block from ssss to dddd R[X] file - read binary file [and execute] S [ssss] - single step at [ssss] or pc T [ssss] - trace at [ssss] or pc V - view emulated screen display W ssss eeee file - write binary file from ssss to dddd X - exit to menu  #$ $ $,X $,Y ($,X) ($),Y $ $,X $,Y A $ ($ PC=A= X= Y= S= P= SELECT ITEM OR pRETURNq FOR MENUDIRECTORY MASK: LOAD FILE: RUN AT ADDRESS: 6502 Monitor > () () .binWriting...Write errorWrite error.binFILE NOT FOUNDREAD ERRORNOT BINARY FILEREAD ERRORSEGMENT START: %4x END: %4x READ ERRORREAD ERRORSEGMENT START: %4x END: %4x : *.* FREE SECTORS[0][ Works only | in mono. ][ SORRY! ]_*.OSB[0][ _*.OSB file | missing! ][ Read docs! ][0][ _*.OSB file | invalid! ][ Read docs! ]_*.FNT[0][ _*.FNT file | missing! ][ Read docs! ][0][ _*.OSB file | invalid! ][ Read docs! ]_*.FP[0][ _*.FP file | missing! ][ Read docs! ][0][ _*.OSB file | invalid! ][ Read docs! ]_*.CTA[0][ cart B | invalid! ][ Read docs! ]_*.CTB[0][ cart A | invalid! ][ Read docs! ] ** Documentation in ST LOG magazine, Sep and Oct 87 ** pST XFORMER v1.11M Atari 800 simulator by Darek Mihockaq A somewhat monochrome version. Some modes not supported. ST XFORMER II in early 88 with PM/G support and extra speed! OS and BASIC (c) 1978,1979 by Atari Corp., all rights reserved. Used with permission. Fastchip by Charles Marslett & alternate OS used with permission: (c) Newell Industries, 602 E. HWY 78, Wylie, TX 75098 Designed and programmed by Darek Mihocka. (73657,2714 DAREKM) Additional programming by Ignac A. Kolenko Jr. & Barry Green. Report bugs and improvements to DAREKM on GEnie. Thanks to Carmine Caccioppoli, John Nagy, George and Jim Adamson. Development hardware supplied by: Xanth F/X, 14100 NE 20th #105, Bellevue, WA 98007 pNO CARTRIDGE PRESENT 48K RAMq p8K CARTRIDGE PRESENT 40K RAMq p16K CARTRIDGE PRESENT 32K RAMq Alt=BREAK F4=caps F5=inverse F7..F9=START SELECT OPTION F10=RESET pPress any key to power up the Atari 800 in monochrome...q@$??CON:AUX:PRT:%d EBvͮB:ed eB:fd B>GB8ͮB:hd  B:id  B+G B ͮB:kd B:ld BGBͮB:nd 7B:od <BG* @86#6#6#66#6#6#66#6#6#66#6#6#6:nd(7B:od(<BG:md * @6#6:jd * @ 6#6:gd * @b6#6G*d~((6y(yDO!BH*B}(++######"B*B}(##++++++"B:%@ :&@͕G͕GG, :&@ |G͕GG *d[4d~("dTGBH2  *` DNN_N&N`\N FNZNNd"NXN)NWDN+ NJZN(@N%xN`N&N' NjNjN$NjvN+ NhN$N+ N+ NjTN+ NNNg,NKNN+ NNUjN&NnNpNzNPNRN(^N`NN[$NNNNNN[N)N&PN,N,NN,NNN,N(NN,N\N,NNNN,N,NNN,N,N,NdvNRNNvN,N,NDNN,N,N9VN6N,NbN8N,NN8>N"N7N7zN6N,NN,N,NNN*pNN`NNN,N)N6NN,N\NN,NxN*N~NNN,NNHN,NNdN*N~NbN,N,NXNNN,NNrN,N+ NgN*NNnNFN,NNN,N@NNfN,N+ N*N^NN,N,N,N,NN4N,N,N,N+ N5N*NNNNN,N0NNN(N,N,NN"N1NzNNN,NNN,N,NN8N0dNlN,N,N,N,N,NNN/N+N,NNNzN N.N,N,NHNN`N.NXN,N4NpN-hNNN,N$N-NNN,N$N,N^NN,NvNNNTN,NNhNN>NN,NNNZN,NN4N,NJNN,N,N,NNVN,NN@N,N,N,NNDNN,N*NN,N,N,NFNN N,NNN N,N,N,NN,N,NNFN,N,N,NNNN NNN,NNNTNNN *O*m - ЭЭм!"ҍ¼.A// Bg?<JNA m"m -So Q m -SBQ(m)M*mN^ lHhNHX/,?,NB\?<NK?<A?<NAXNuNVHBBBBBBBB,4<<<<<,>,<,:8<,8:,BC.J,2gC6A. CgC lĤ&lĠ.ڈ$EB@@@ qNA>B<C:D89JB9H@<<<<<@ F4L`3pjRlĆa G@< < zN3pjRlĆal G@< < z^N3pjRlĆaH G@< < z8N3pjRlĆa" GR@< < zN3pjRlĆa GS@< < zN3pjRlĆa G@< < zN3pjRlĆa G@< < zN3pjRlĆa G@< < zN3pgBlĆH@H@`h G zfN3pgBlĆH@H@`J G zHN3pgBlĆH@H@`, G z*N3pjRlĆa GD@<< zN3pjRlĆa GD@<< zN3pjRlĆa G DƓ@< < zN3pjRlĆa G Dƃ@< < zjNH@H@@< <H@H@ zFNH@H@@< <H@H@ z"NH@H@@< <H@H@ zN3pjRlĆa GD@<< zN3pjRlĆa GD@<< zN3pjRlĆa G@<< zN3pjRlĆal G@<< zZN3pjRlĆaDJ@<<<@< z"NЌ<`BG G(>`bBG`hBG`\> GH<<<<<@ LS zNЂ@< < zN@<< zN*>TJ`*>TJ`f H zTNR zLNBG G(>C`BG`BG` zN*>CTJ`f*>BTJ`V*>BTJ`BU> G: REE?_*:$E zNBG G(>`2BG G`^BG`.BG`R> GH<<<<<L zPN@< < zTJ`*>TJ`*>TJ`g H zNR zNBG G(>C`NBG`RBG` zN*>CTJ` *>BTJ`*>BTJ`> G(:($E(V zdNBG G(>`BG`BG`> GS z2N@< < zN @<< zN*:$E zN*>TJ`*>TJ`\f H zNR zNBG G(>C`RBG`VBG`( zN*>CTJ`$*>BTJ`*>BTJ`> G(:(TRE$E zFNBG G(>` BG`,BG`BG`*BG`LR> G@< < zND@<< zND@<< zND@<< zN*:> G(:$E zN*>TJ`V*>TJ`t*>TJ`g H zPNR zHNBG G(>C` BG G(>C`$BG`BG`BG`> zN*>CTJ`*>CTJ`*>BTJ`*>BTJ`*>BTJ`BG G(>`BG G zNBG G zxNBG G zjNS@< < zVN@< < zBN*>TJ`*>TJ`*>TJ`f H zNR zNBG G(>C`hBG G zNBG G zNBG G zN@< < zN*>CTJ` zN*>BTJ`@< < zjNBG G(>`h@< < zBNBG G@< < z(NBG G@< < zNBG G@< < zN@< < zN@< < zN@< < zN*>TJ`*>TJ`*>TJ`g H z|NR ztNBG G(>C`rBG`BG`lBG` z8N*>CTJ`:@< < zN*>BTJ`^*>BTJ`*>CTJ``BG G(> G`^BG G`BG G`FBG`R@< < zN`$S@< < zxN*>TJ G`F*>TJ G`*>TJ`4f H z4NR z,NBG G(>C G`BG G`BG`C zN*>CTJ G`r*>BTJ G`^*>BTJ``lBG G(>`BG G(>`BG G`8BG`BG`BG`TJ G`*>TJ`*>TJ`>*>TJ`g H zNR zNBG G(>C`BG G(>C`BG`BG`BG`D@C z^N*>CTJ`~*>CTJ`*>BTJ`^*>BTJ`*>BTJ`N^NuNVH>.. ,Ĥ",Ĥμ҇ A|¼Ё",Ĥμ҇R A|¼Ё&@LN^NuNVH>.. ,Ĥ",Ĥμ҇ A|¼Ё",Ĥμ҇R A|¼ЁR&@LN^NuNVH?<?<@NX?<?0|g|0|g| 0|g|00|g|0|g|0| g| 0|@g|00|g|0A0RF FmxBF`:0(2At00P2A002AT0RF FmBl@`0,@Rl@A0 l@eBl@`0,@Rl@ lĠB0,@f lĠ|/0,Ċg(9|@`0,@ lĠRl@ l@e0,Ĉg(9|@`0,@ lĠRl@ l@e9|@`0,@ lĠRl@ l@e9|@`0,@ lĠRl@ l@e9|@`0,@ lĠRl@ l@e lĠ|0 lĠ|19|@`0,@ lĠRl@ l @c9|@`0,@ lĠRl@ l@c9|@`0,@ lĠRl@ l@c lĠ|o lĠ| lĠ| lĠ|! lĠ|" lĠ|# lĠ|' lĠ|/ lĠ| lĠ| lĠ| 9| LN^NuNVA) N(Hz)?<&NB\N*X0<9@9@9@N^NuNVN(N*Hz*&?<&NA\N^NuNV@@@AŰ pNHAJ,2gAC" lĤ<B(Mj AM(<ANBOATCDC E@G6<B@0024Q?g` 0.|<",ĤҼ A``|Wg` ,Ĥм @|``|Dg`&LBl<$ GBP:<% GJg2]> GF: E?_ABC><$ G(:$E z`NH@ G zTNH@ GP<@>H0,g,>,<||Ag9|L zN9l@ GfH@@g|`H@@gjH0,gZ9|`(0,@ lĠH|@g0,@ lĠBRl@ ,Ĥ6,@ƼЃ @H|Ag l@fL zvNH@ G?@9@HAɴ)Hɰ0@ fzH?<BgNX9l@`(0,@ lĠH|@g0,@ lĠBRl@ ,Ĥ6,@ƼЃ @H|Ag l@fNBlL`6H0,g lg?<BgNXN\9|N>L zNH@ G@>9G@H,>|??,@NXL znNH@ G@>9G@H,>|??,@NTXL z>NH@ G@9@H=|` lĤH??.NpXRn no0,g9|L zNH@ G@>9G@H0,@` ``2|g*`|g`|g`|g`T ,Ĥ6,@ƼЃR @P.H|?.H@?,>|?0,@|H?NdP``2|g*`|g`|g`|g`V ,Ĥ6,@ƼЃS @P,>||?,>|@?.H?0,@|H?NP` ``L zNH@ GgHNL zNH@ GgJlgH?NTL zhNJlĆgH0<l|",ĤҼ ALNuJlĆgXH0,g 0<`0<2,g 2<`2<A2,g 2<`2<A",ĤҼ ALNu0,|@9@J@f6H@ @g.H?<?< ?<?<NPBgBgBg?<NPL zNJlĆg(H?<N74T,<|H÷,>|,:|CH",ĤҼ ALNuJlĆg808 @ GNu zNHA>=|?<N6TJgTBn,>||g,>|??<N6X`?< ?<N6X?< ?<N6X|:`|:0.SnJ@fL,:@< <` 6<@< <` HB,:@< <`HB<A>NL,:@< <`HB< GC6<(g`JB((4< <f<f:< G4<(@(A@jAFDF@((ԱAkFDCk000 @ Ԕ<<j0 B@@ Ԕ<fhDd8hhhh|(<@ԱkFF`TFdFDF@((ԱkNFD0 00@ jkr0 B@@ Fe`:<ڵ$E zBN:<ٺ$E z6N z0NN^NuNVH>.<. 2A0@@H ,ĘЁ&@:EFF` <&&&&0SEJ@fLN^NuNVH>.<. ,Ę2At2HЁ&@:E2AA` X <&0SEJ@fLN^NuNVH0&n>. <.:.0,g`ATG>8<DDD DC0@2AAAAG$lĘ<@Y@Y@@BY@Y@Y @"Y@Y`@bRF|fL N^NuNVH0>. <.:.0,g`` nRH|DDD ,Ę2AT6HЃ2|HЁ2|AHЁ&@06<@AA$H<@b@@"@@@B@@@@ZZ@ZZZ ZR`<@@RF0SEJ@fLL N^NuNVH0&n>. <.:.0,g``xH|DDD ,Ę2AT6HЃ2|HЁ2|AHЁ$@AA-H"n4<AU0@AD0HD@EQRF0SEJ@fL N^NuNVH0&n>. <.:.0,g``H|DDD ,Ę2AT6HЃ2|HЁ2|AHЁ$@AA-H"n4<AU0@A@D0HD@@E@QRF0SEJ@fzL N^NuNVH0>. <.:.0,g`h`ZBD n-H|@DDD ,Ę2A2HЁ2AHЁ&@0|AA$H0|g& J67X7X@7X7X7X 7X7P`` BSBkBk@BkBkBk BkBk`0|g( J7X7X7XB7X7X7X"7X7Pb`"BkBkBkBBkBkBk"BkBkb0|g( J7X7X7XD7X7X7X$7X7Pd`"BkBkBkDBkBkBk$BkBkdBkBkBkFBkBkBk&BkBkfRF0SEJ@fL N^NuNVH0>. <.:.0,g``BD n-H|@DDD ,Ę2A2HЁ2AHЁ&@0|AA$H0|gf0|AA$H07@607@7@@07@ 7@07@`7@07@7@07@7@@07@ 7@07@ `7@`BBkBkBk@BkBkBk BkBk`BkBkBk@BkBkBk BkBk `0|gh0|AA$H07@7@07@7@B07@"7@07@b7@07@7@07@7@B07@"7@07@ b7@`BBkBkBkBBkBkBk"BkBkbBkBkBkBBkBkBk"BkBk b0|gh0|AA$H07@7@07@7@D07@$7@07@d7@07@7@07@7@D07@$7@07@ d7@`BBkBkBkDBkBkBk$BkBkdBkBkBkDBkBkBk$BkBk dBkBkBkFBkBkBk&BkBkfBkBkBkFBkBkBk&BkBk fRF0SEJ@f^L N^NuNVH0&n>. <.:.0,g``H ,Ę2At2HЁ2AHЁ$@0@|An %@`%@%@ %@%@%@@%@$0|An %@h%@%@(%@%@%@H%@%@RF0SEJ@fpL N^NuNVH0&n>. <.:.0,g`` ,Ę2At2HЁ2AHЁ$@BB BBBDBLBBBg"<ggg%A%A%AH%ABg"<ggg$%A%A@%A|0SEJ@f.L N^NuNVH0&n>. <.:.0,g`` ,Ę2At2HЁ2AHЁ$@BB BBBDBLBBBg"<ggggggg$%A%A@%A|0SEJ@f@L N^NuNVH&n>. <.:.0,g`&???/ N" ??RG0?/ N LN^NuNVH0&n>. <.:.0,g`J`<H ,Ę2A2HЁ2AHЁ$@0|A4BRRF0SEJ@fL N^NuNVH0&n>. <.:.0,g`f`X ,Ę2AT6HЃ2|HЁ2|AHЁ$@AU0@A@D0HD@@|0SEJ@fL N^NuNVH0&n>. <.:.0,g`^`P ,Ę2AT6HЃ2|HЁ2|AHЁ$@AU0@AD0HD@|0SEJ@fL N^NuNVH0&n>. <.:.0,g` ,Ę2AT6HЃ2|HЁ2|AHЁ$@BB*B*B*g\gg|g|g|gg*g*g*|0SEJ@fZ`V`H ,Ę2AT6HЃ2|HЁ2|AHЁ$@F@0<@B*B*|0SEJ@fL N^NuNVH0A -H=|BnBE0,f?<BgNfX n0 ,Ĥ6,ƼЃ&@H| GpgS Ĥ lĠ@H|O>| DoZ0|@gP|" R A|AA=@ RĤ lĠ@ RĤ lĠ@0nf=|0 lɰ?Bg? ,Ĥ6.ƼЃ/0A. PN < lɰ<SF0. lĠA$Hf|AQ0ng` ng  =D n00A40 n1@0 lɰ0 n1@ nBh n1n n1E2 lɰ2 n0(A1@0 lɰ0n0A4P`\ Df?<0RE?NRX`@0@R@??N>X ng ng  Bn nBP0@R@@ GAg Em El0<ȐE??NX n0BlL N^NuNVH>.A &H`t Fgh02+ A:2+AdT8ȼ=D8+n?<0H@?? ,ĤμЇ/0A. PN 0< @fLN^NuNVH0A &H`: Sf `*>+SG0+ lĠA$H AfB*Q Sf9| L N^NuNV?AT.2. |¼ށ G> nf |@0` <@2.|A¼Ё @0>N^NuNVH>.<. A&H|0,`. Gf 0` Gc02 K@=``|g`02 K@@`x`|@g`, Gf|BE` 0RFRE Em`B`|g`. Gf|BE` 0|RE Em` ``DLN^NuNVH ,Ĥ",ĤҼ A|¼Ё&@BG`PH0A0F@A0A02A00A0F@2A0RG Gm0,g9|LN^NuNV,<|=@0.H=@0<Dn lĤ|2<En lĤ|A=@0<Jn lĤP|Bn`Rn0. @o`l ,Ĥ2.Rn¼Ё @H|:fBn ,Ĥ2.Rn¼Ё @P0.RnAj nl.H| o.H|[mSn0.AjB.H|fJBgHl?<NXBgHl?<=NP=@`<.H|gBgHlj?<=NpP=@`BgHlj?<,<|=@0.H=@ lĤ($| lĤ(%|A=@ lĤ((| lĤ()|A=@|0.Az0|g` ,Ĥ6.ƼЃ/0./0.A??<@N0 =@ nl |`N lĤ(( lĤ($HHA@$ lĤ() lĤ(%HHA@% lĤ|( lĤB()| lĤnLn:N^NuNV,<|=@0.H=@ lĤ($| lĤ(%|A=@ lĤ((| lĤ()|A=@ nf=||0.Az0|g` lĤ("H|g 0<`0<=@0.g` ,Ĥ6.ƼЃ//<0.A??<?N =@ ,Ĥ2.Rn¼Ё @P nl |`X nf |`D lĤ($R($H|f lĤR(% lĤ((S((H|f lĤS()| no.H|f`0.f$|` ,Ĥ6.ƼЃ/0./0.A??<?N =@ ,Ĥ6.ƼЃ6.ƼЃS @P nl |`b nf |`N lĤ(( lĤ($HHA@$ lĤ() lĤ(%HHA@% lĤ|( lĤB()| lĤnLn:n>N^NuNV,<|=@0.H=@0.A??<>NX0.A0| lĤnLn:N^NuNVH>.<. :.0HH@>|n |0<GG?0@??<N\\0<GG?0@??<NB\0<G???<N.\?<Bg?<N\80g`0. | @ f0A"P0AP`00AP0A(P?<0. @??<N\`0A"P0AP?<??<N\LN^NuNV?<?<?<NM\Gz6?<"NNT @Gd&G!K?<?<?<NM\Nu/ CD"_Nu?<?<?<NM\?<"NNT @!z?<?<?<NM\Nu(zA lĤ"HR(fR(MR(fR(J(Bf:F@@@xJ@zW@@@@@:F@@@y@{3B3BW@@@@@2<0(g@|n@0QAքCt".zNuN^NuNVA |V)P |T=PBlBn`2 l f lC =n9|`XRn0.nmN^NuNV lBN^NuNV/ ?<"NT&@G A C&`zH瀈 znN(zJA( fBl`J Af 9|`: fBl`, Bf 9|` fBl` Cf9|LNu&_N^NuNV/ ?<"NT&@G A&&_N^NuNVH0>.0|g 0<`0<=@0|g 0<`0<=@0A=P ,Ę&@8A8 D*o& Dn0A м $@:|E`H@ Gg@Hl lĤ(/H|gX ,Ĥм2,¼Ё)@ ,м)@ ,м)@ ,м)@ ,м)@`T ,Ĥм2,¼Ё)@ ,м)@ ,м)@ ,м)@ ,м)@Bn`40<2.A02.A02.A0Rn nmBlL znNH@@>G9G@H=l@0.A0,>|Ag*,>2.A|00,g ?.NTL zNL N^NuNVNNpN?<NT)@Ĝ ,Ĝ)@Ę ,Ĝ)@Ĥ ,Ĥм)@Ġ?<N^T9@Ą lĄfHl4?<N\BgNfTBgHl^?<=NFP=@ @lHlf?<N\BgN4T ,Ĥм]//<?.?<?N m ,Ĥм] @H|gHl?<Nl\BgNT?.?<>NXBgHl?<=NP=@ @lHl?<N,\BgNT ,Ĥм]//<?.?<?Nd m ,Ĥм] @H|gHl?<N\BgN8T?.?<>NXBgHl6?<=N P=@ @lHlN|XBgHl?<=NlP=@ @mj ,Ĥм]//< ?.?<?N> m ,Ĥм] @H|gHl?<N\BgNT`9|Ċ?.?<>NXBgHl?<=NP=@ @mj ,Ĥм]//< ?.?<?N m ,Ĥм] @H|gHl?<N\BgNT`9|Ĉ?.?<>NXXN29|?</N X9@g0<`0<N^NuNV?.?<LN XN^NuNV/ A콎&H`0+ |g/ N*X A콎"Ҽm?.NT&_N^NuNV/ &n/ NDXJ@g0<`00+ |g /+N XBk ?+ N,TJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gL0+ |f0<`l0+ |g?<B?+ N P?/+?+ NNP @f0<`6k -K k o?<B?+ NP n!@&Bk0<LN^NuNV/ &n0+ |fk@ 0+ |`g0<` fT0+ |g A콎ABA &'@`*0+H/N pX&'@ fk `k `-K?<?+ B?<BN  n!@& k f HlNX0+ |g0<`0+?/?+ NP7@Sk0+ @l kfk `k@ Bk0<` SRH|&_N^NuNV/ &n 0+ |fk@ 0+ |@g0<` fT0+ |g A콎ABA &'@`*0+H/NHX&'@ fk `k `0+ |g SR k `<0+ |g2k SR . H| g kl . H|`T/ NBXJ@g k@ 0<`<0+ |gBk. H|`"` 0+S@7@k . SRH|&_N^NuNV n Sh0( @m. n "R AH|`/. . H?N\N^NuNV fBC`&SCdTC0|g0|gԼdRC`|CHBC0|@HB LN^NuNVNVH n " n $&JjFFJjFFLN^@*NuNVH n"n $0(H@6C|g.0)H@:E|gE|BB0<まef bRAQ$0P`HNVH n$0(H@6C|gd"n .0)H@:E|gD|E(HD*HE20HGHBBB8:BGBBЇӄЂӅJg$0P`B`NVH"n 0<9@(Q`NVH"n Bl( n,0(H@8D|fB.0)H@:E|fB2$60Enfl8,:.6$0Jg0Eg|n0@gDԇ0,(Q fBB`HSCdTC0|g0|gԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.A PNPLN^/W D*NuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @A)X )X$A $BEG>O|g|JGn|m` REHl:/ NRPO`SEHl:/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`d .6.HЃR$@ nH|0fRZ"H|9o R"` nH|0f$n R&@g`SE .6.HЃ @B n0L N^NuNVH$.". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV/BnJlRnDJ lRnD 0. -@0.n0. nngD -n N^.JNuN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN -@?<?.B?<BNx -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@g <` `Bl . N^NuNV/.?<HN\N^NuNV/.?<IN\N^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^Nu)I)J)_NM"l$l/,Nu)I)J)_NN"l$l/,Nu)I)J)_NA"l$l/,NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NxX 2.RnA0 Gf .`( Gf .` ./0H/N* X-@ .fp0.gHSn0.A P m0.A0| |A`0.A0|0 SR`LN^NuNVH&n n f=| A)X )X$Hl Hl ?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0l,o0,,`0> Gl0<`0?HnHnHnNBF0g" nm0RFA SRSGSn` nm SR0Sn`0. g SR.0. g nl SR0RnSn `0. Sn J@g$ Go0RFAH`0<0 SRSG``` SR0. g SR.><0. Sn J@g0RGA SR` SRE?.Hl /N: /NBXHѓLN^NuNVBn n PH|0m4 n PH|9n$0. n PHC|0=@ nR`0.N^NuNVH0&n -n @$PXgVgH|%g nR`H|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN"X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NT 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @A)X )X$/,$/, Hn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f .n nR` .R-@` nB .L N^NuNV/. HnNhP=@/.HnN8P0.N^NuNVHnHlNPN^NuNVHn /.N&PN^NuNV ng/. nRH?N\`N^NuNV nf:0,tlrf0<9@r9@t0<g?<N T=@ nf*0,tg Slt?<?<NX?<D?<NX` n f00,tRltAv ?< ?<NX?< ?<NX`r nf ?<NT nf20.2,tRltAv?< ?<NbX?< ?<NTX`&0.2,tRltAv?.?<N0X`AvrH|f0<`0,rRlrAvH`` nf?<NT``0.-K0SGJ@gg` .L N^NuNVH0&n$K`Rf L N^NuNV0. Sn J@g6 nH| f?< ?<N$X nRH??<N X`N^NuNV0. Sn J@g nRH??<NX`N^NuNV0. Sn J@g nRH??<NX`N^NuNVH0&n $KA -H nf?./ N4\=n`H nf?./ N`\=n`* nf?./ Np\=n` -KBn?.NTJ@f ndH| f |o@ H-@/./.?.?<@N 9@Hg0<`0,n/./<?.?<@N 9@ @g0<`hRnR -@`R``` 6.ƼЃ$@ H-@/./.?.?<@NL =@9@Hg0<`Bl0.L N^NuC"BRK"ORA"???"???"???"ORA"ASL"???"PHP"ORA"ASL "???"???"ORA"ASL"???"BPL "ORA"???"???"???"ORA"ASL"???"CLC"ORA "???"???"???"ORA"ASL"???"JSR"AND"???"???"BIT"AND"ROL"???"PLP"AND"ROL "???"BIT"AND"ROL"???"BMI "AND"???"???"???"AND"ROL"???"SEC"AND "???"???"???"AND"ROL"???"RTI"EOR"LSR "???"JMP"EOR"LSR"???"PHA"EOR"LSR "???"JMP"EOR"LSR"???"BVC "EOR"???"???"???"EOR"LSR"???"CLI"EOR "???"???"???"EOR"LSR"???"RTS"ADC"???"???"???"ADC"ROR"???"PLA"ADC"ROR "???"JMP "ADC"ROR"???"BVS "ADC"???"???"???"ADC"ROR"???"SEI"ADC "???"???"???"ADC"ROR"???"???"STA"???"???"STY"STA"STX"???"DEY"???"TXA"???"STY"STA"STX"???"BCC "STA"???"???"STY"STA"STX"???"TYA"STA "TXS"???"???"STA"???"???"LDY"LDA"LDX"???"LDY"LDA"LDX"???"TAY"LDA"TAX"???"LDY"LDA"LDX"???"BCS "LDA"???"???"LDY"LDA"LDX"???"CLV"LDA "TSX"???"LDY"LDA"LDX "???"CPY"CMP"???"???"CPY"CMP"DEC"???"INY"CMP"DEX"???"CPY"CMP"DEC"???"BNE "CMP"???"???"???"CMP"DEC"???"CLD"CMP "???"???"???"CMP"DEC"???"CPX"SBC"???"???"CPX"SBC"INC"???"INX"SBC"NOP"???"CPX"SBC"INC"???"BEQ "SBC"???"???"???"SBC"INC"???"SED"SBC "???"???"???"SBC"INC"???CA"A"A"A"A"Ab"A8"A"A"A"Ad"A@"A"A"A"AP"A"A"A"A"Ah"A>"A"A"A"AZ"AF"A"A"A"AV"A"A"A"A"An"AD"A"A"A"A`"A*"A""A"A"A\"A"A"A"A"At"AJ"A"A"A"Af"A0"A"A"A"Ab"A"A"AZ"A"Az"AP"A"A"A"Al"A6"A"A"A"Ah"A"A"A`"A"A"AV"A "A"A"Ar"A<"A "A"A"An"A"A"Af"A "A"A\"A&"A"A"Ax"AB"A"A"A"A"A"A"Al"A"A"A"A,"A"A"A~"AH"A"A"A"A"A"A"Ar"A"A"A"Av"A"A"A"AN"A"A"A"A"A"Aj"Ax"A"A"A"A|"A^"A"A"AT"A$"A"A"A"A"Ap"AL"A$"A"A"A"Ad"AR"Av"AR"A("A"A"At"A "A"A~"A*"A:"A("A"A"A"A"AX"A."A"A"Az"A&"A"A"A0"A"A."A"A"A"A"A"A4"A"A"A"A,"A"A"A6"A"A"A"A"A"A"A"An"A "A"A"A2"A"A"A<"A"A"A"A"A"A"A"At"A\"A"A"A8"A"A"AB"A"A"A"Aj"A"A"A"Az"Ab"AP"A"A>"A"A"AH"A"A"A"Ap"AX"A"A"A"Ah"AV"AJ"CA"A"A"A"A"Ab"A8"A"A"A"Ad"A@"A"A"A"AP"A"A"A"A"Ah"A>"A"A"A"AZ"AF"A"A"A"AV"A"A"A"A"An"AD"A"A"A"A`"A*"A""A"A"A\"A"A"A"A"At"AJ"A"A"A"Af"A0"A"A"A"Ab"A"A"AZ"A"Az"AP"A"A"A"Al"A6"A"A"A"Ah"A"A"A`"A"A"AV"A "A"A"Ar"A<"A "A"A"An"A"A"Af"A "A"A\"A2"A"A"Ax"A&"A"A"A"A"A"A"Al"A"A"A"A,"A,"A"A~"AH"A "A"A"A"A"A"Ar"A"A"A"Av"A"A"A"AN"A"A"A"A"A"Aj"Ax"A"A"A"A|"A^"A"A"AT"A$"A"A"A"A"Ap"AL"A$"A"A"A"Ad"AR"Av"AR"A("A"A"At"A "A"A~"A*"A:"A("A"A"A"A"AX"A."A"A"Az"A&"A"A"A0"A"A."A"A"A"A"A"A4"A"A"A"A,"A"A"A6"A"A"A"A"A"A"A"An"A "A"A"A2"A"A"A<"A"A"A"A"A"A"A"At"A\"A"A"A8"A"A"A"A"A"A"A"A"A"A"A"Ab"AP"A"A"A"A"AH"A"A"A"Ap"A"A"A"A"A"AV"AJ"9|9|9|9|9|9|9||CT222"232D2U2f2w22 202A2P2S2d2u22 202B2S2T2T2e222202C2T2T2e22222D2U2U2f2222242E2V2f2222&262F2W2g222%2&2F2W2g2g2222&2F2W2g2g222262F2W2g2g22#242E2f2f2w2w2"222C2C2T2e2v2v2 202@2B2S2d2u2v2 202B2R2c2s2t2u2 20222B2S2c2d2u22 222@2C2T2d2uC42222 222222222222Cɴ2222222 2 222 2 2 222222 2 2 2 22222222 2 2 222(2(2(2(222 2 2222(2(2(222(2(2(2(222 2 2222(2(2(CŰA"AT"A6"A"A"Af"AD"A`"A "A"A"A"A"A"AN"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"AB"AD"A"A"AN"A"A"A"AH"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"Ax"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A"A4"A"A>"A"A"A"A"A"A"A"A"A"A"A"A"A"9|ŮCn""""""""""""""""C.A"A"A|"A^"A:"A"A"A"AJ"A"AL"AF"A@"A4"A""A "C(222C"222 C222C222C  A )H|Ĩ9|Č9|Ċ9|ĈCD2222W222222222222W 9|C콎"2"2 2"2"2"22"2"2"22"2x9|)l :)l >)l 6)l .)l 29|,CA"A:"A("AL"AX"A"A0"9|t9|rNuNVBg/|?NTHlNX,<|?NTHlNX,:|?NxTHlNX,8|?N^THlNX,4|?NDTHlNX,4||g?<NNT` ?<.NT,4||@g?<VNT` ?<.NT,4||g?<BNT` ?<.NT,4||g?<DNT` ?<.NT,4||g?<INpT` ?<.NbT,4||g?<ZNHT` ?<.N:T,4||g?<CN T` ?<.NT?< NTN^NuNVBl@`0,@Rl@ lĤB l@e ,Ĥм @H",ĤҼ AHC9@B,4BgBgNnXNN^NuNV9nB,40<,8|S,8|A lĤ0<,8|S,8|A lĤpBgBgN XNTN^NuNVBgBg?<N\0. `|g`N`N8B?< N\-@ |/.?< N\)MN$B?< N\-@N/.?< N\N2*lB?< N\-@ |/.?< N\N 0,gNHlNXB,2``|g`0=lB|2?<NhT9nBBgBgNX`N`|g`>,4`?<BgNX0.SnJ@g,4||g``Bg?<?<N\N^NuNVNNHlNBXHlN8XHlN.XHlN$XBg?<?<N\?<?<NZX_=@?.NhTHlNX0.`N` `|Ag`*Hl NX?<NNTBgHlľNv\``|Bg` 9|B,4BgBgNX``|Lg`.HlN`X?<NNT9|HlľN6X`v`|Mg`6Hl(N(X?<NNHTN9@B,4BgBgNFX`6`|Pg`N*``|Qg` ````N^NuNVBn?</X?<NN^TN0,ĐRlĐAľP.H|Rg N=@.H`|g`|;g` ``|Xg`Rn`|`|Mg``9nBN=@N=@`2 ,Ĥ2.Rn¼Ё @",Ĥ4.Rnļ҂ A0.nc``|Cg`9nBN(=@N =@` ,Ĥ2.Rn¼Ё @",Ĥ4.Rnļ҂ AHHAglHlLNX0.S@?N THlPNX0.S@?N THlTNX0.S@?N nTHlZNX0.S@?N THlNX0.ncR`4`|:g`V9nBN`&Nn",Ĥ4,BRlBļ҂ A|NAľĐg0,ĐlĒm``|Dg`(9nBN=@0.nb0.|S@=@N TBn`0,Bnbr ,Ĥ6,BƼЃ @H|@ļ,ļH| m,ļH|n ,ļH`0<.AĪ0,BRlB?N T?< NT`AĪ Hl^NLXRn nmbBn`AĪH?NTRn nmHlN X0,Bnb lBb ``|Lg`$ lĒo9nB?<NbT`t`|Tg`. lĒo9nB,4?<?<NX`<`|Bg`N`$`|Gg` 9nB,4BgBgNX``|Sg`& lĒo9nB?<BgN\X``|.g`N``|Ig`.NhHlNXBgHlN \HlNX`z`|Wg`l9nBN=@0.nd`LN0,ĐlĒf`8?<HlbAľĒA/N. BgAľĐA/?<NX``|Rg`rAľĐH|Xf9|RlĐ`BlN0,ĐlĒf`?<HlAľĒA/N. AľĐA/NX``|Hg`0.@Ĩ`l`|Vg`XNlA콎 HSh0( @mA콎 H R @H|` HlNXNz``?<NT``0.gBg/NX0,gD lĤ( lĤH(HCg*2< lĤ(| lĤ(|A?NTN`\..||W||Ag`BEHn/<?,Ď?<?N l`..|A|A..|A|A ,ĤμЇ/02¼R/?,Ď?<?N lHlNX`0,g??HlNPHlNX0,g\ lĤ( lĤH(HCgB2< lĤ(| lĤ(|A?NtT< lĤ@ lĤ@N`?,Ď?<>NXNxLN^NuNV?><`?N^NuNV?><`0A???<N\0SGJ@f>N^NuNVH0&n$n `f `L N^NuNVH. &n <.`0SFJ@f `LN^NuNV=| `&0,B6.h| lH?NTYn nlHlNNXN^NuNV0.HH lH?NT0.H| lH?NT0.H| lH?NjT0.| lH?NPTN^NuNV ,Ĥ6.ƼЃ @P.|@ lH?NT.|| lH?NTN^NuNV. |@ lH?NT. || lH?NTN^NuNV?B?< N\-@||A>!hAX!p/.?< N\BlČN^NuNVH0&n$n >.SG&&&&&&&&&&&&&&&&&&&&QL N^NuNV?<NT-@Bn`V0<ǐn??<?<N\?<?< 0<Ґn??<NFP?< .м//.NR Rn nm?<?< ?<BgNFP?<?< ?< ?<NFPN^NuNVH0&nfA"&H?</ ?<NNP>?</NT$@`?<Hn?< N(PA-H nH|.gT nH|/gD nH|_g4Bn*H|g|*` nR2.RnA nl ng nH|.f=|` n2.RnAR nf *м|/ <}/N@ X=@0<02.HdA@0<02.H H HAA@0<02.H HAA@0. g&|Hn/<?. ?<@N `B.HnNߊXHlN߀X?<ONT> GlrBgHl?<6NP,,/,,/N,/,,/N, м/ </N@ X=@ nn nl=|0<02.HdA@0<02.H H HAA@0<02.H HAA@HnHl&NP0. g&|Hn/<?. ?<@N `$B.HnNvXHlNlXHlNbXL N^Nu_.DIR_.DIR0123456789ABCDEF ST XFORMER v 1.1 DOS MENU A. DIRECTORY B. RUN CART. L. BINARY LOAD M. RUN AT ADDR. P. 6502 MONITOR Q. Quit to Desktop pCommand Summary for the 6502 Monitorq Syntax: ( all numbers are in hex ) ssss - starting address eeee - ending address dddd - destination address nn - an 8 bit value [optional parameters are shown in brackets] : ssss nn [nn [nn [nn ...]]] - change memory starting from ssss B - coldstart the Atari 800 D ssss [eeee] - display memory from ssss [to eeee] G ssss - start emulating at ssss H nn - nn is non-zero for hardcopy I [mask] - dIr of files on the disk L ssss [eeee] - disassemble from ssss [to eeee] M ssss eeee dddd - move memory block from ssss to dddd R[X] file - read binary file [and execute] S [ssss] - single step at [ssss] or pc T [ssss] - trace at [ssss] or pc V - view emulated screen display W ssss eeee file - write binary file from ssss to dddd X - exit to menu  #$ $ $,X $,Y ($,X) ($),Y $ $,X $,Y A $ ($ PC=A= X= Y= S= P= SELECT ITEM OR pRETURNq FOR MENUDIRECTORY MASK: LOAD FILE: RUN AT ADDRESS: 6502 Monitor > () () .binWriting...Write errorWrite error.binFILE NOT FOUNDREAD ERRORNOT BINARY FILEREAD ERRORSEGMENT START: %4x END: %4x READ ERRORREAD ERRORSEGMENT START: %4x END: %4x : *.* FREE SECTORS[0][ Works only | in color ][ SORRY! ]_*.OSB[0][ _*.OSB file | missing! ][ Read docs! ][0][ _*.OSB file | invalid! ][ Read docs! ]_*.FNT[0][ _*.FNT file | missing! ][ Read docs! ][0][ _*.OSB file | invalid! ][ Read docs! ]_*.FP[0][ _*.FP file | missing! ][ Read docs! ][0][ _*.OSB file | invalid! ][ Read docs! ]_*.CTA[0][ cart B | invalid! ][ Read docs! ]_*.CTB[0][ cart A | invalid! ][ Read docs! ] ST LOG presents: ST XFORMER v1.11 Atari 800 simulator by Darek Mihocka OS and BASIC (c) 1978,1979 by Atari Corp., all rights reserved. Used with permission. Fastchip by Charles Marslett & alternate OS used with permission: (c) Newell Industries, 602 E. HWY 78, Wylie, TX 75098 Designed and programmed by Darek Mihocka. Additional programming by Ignac A. Kolenko Jr. & Barry Green. Report bugs and improvements to DAREKM on GEnie. Testing hardware supplied by Carmine Caccioppoli. Thanks to John Nagy, George and Jim Adamson for their help. Development hardware supplied by: Xanth F/X, 14100 NE 20th #105, Bellevue, WA 98007 NO CARTRIDGE PRESENT 48K RAM 8K CARTRIDGE PRESENT 40K RAM 16K CARTRIDGE PRESENT 32K RAM Alt=BREAK F4=caps F5=inverse F7..F9=START SELECT OPTION F10=RESET Press any key to power up the Atari 800...@$??CON:AUX:PRT:%d vvvvvv#a000000 #b000000 #c7770007000600070055200505552220770557075055507703111103 #d #E 3B 02 #W 00 00 00 02 50 0F 07 A:\*.*@ #W 00 00 0D 08 2A 0B 00 @ #W 00 00 0E 09 2A 0B 00 @ #W 00 00 0F 0A 2A 0B 00 @ #M 00 03 00 FF A FLOPPY DISK@ @ #T 07 03 02 FF TRASH@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @   v 4,-489)7.;*7%$'>-89&22vv" &3+&3,8,*8(-<.3).,0*.9 v;v '*8(-1*:3.,:3, v&v!"~H~v$!"~H~ ~0;v"#!~&~ v""# ~!"~&~ vv.~~(v ? v!%..~(.~@ v".v$$~ ~` v&~  ~` v(A8~ ~#~`"%"~!"~"%#~v*~ "~@"~v," ~