EXTENDED CPC DSK File Disk-Info CPCDiskXP v1.6(Track-Info  * K!`쇅o0$~#fo*9{3nsx!6&&AIrw}0=!(=! (=! ( =!(!^#V 4!( _N(Y *"9s31)![yS5";{2p!"72u2s2v!)K!`쇅o0$~#fo*9{3ezjo6!!> :> O:1y  !04 5 5 60 >^:@̓:E_ y > ::0 ͜  >#:3:0!/> :~$#d:02/*5N# ^ ^ 8x(:021͡x(#~d:1(!021͔!15 ( :/!005͔80 ̓#wdx p> :/*y(  : !q> 27*5~(~!#8 >2=>#+~w:*O|^#VSi#"L##"N##"P##R*T>ɯ*Nw#w*Pw#w<2m!"*#"*aR0(&:2 ;ͪ:mOͤ2mͤN!~#<|ͯ:=(>![J'Ͳ(*Ͳ(*<<"{"!{N#F*P^#V*N~#foyx0 *ZR+*Z8 yx8#*g"+DM*Ns#r*Ps#rR"-DM[iz(N!!\N:y G>O:x (O! ^#V?_"{|:\*{)= "}:]O:yo"{!:^2x:2w:2y:o O:y2:w2:*<=<:*<=!*F;}!F͓*a#*Ls#r ~! ˾`iͤ"!*R:o$ɯ2[*L{#z6r+s*[eR*R#[V* ( 6w ! &;LͪͯSJKJKR$y<_W888*X ~ ͱ w& N#Fy(*_B#2*go"F"H͠:p!*:p2**H;EK_888*X6# x [c*Xs#r*L6#6/("&>(:) #~$ =27C!Hyw#xw:^/GyO >2n!rq/(S(60D&:rOy($?(x ( ( N͞ # :27!n~0 w(|27j ͯl&6͓ͽPYy( ͱ0*_{z0BKͱ00>2~#+w#w+2722:ͱ& !T:0>#$T TATUNG/XtalDOS 1.31 (C) 1983 198!"hů;  COPYRIGHT (C) 1984, Xtal RESEARCH | > _2<<ͱyNo Fil 7ȷ!+#N8#z(##~ &G!()%A䇇!=:=2a{_͎~˿͖#(\ i!F#x(~pww! ";:=_:>!=(=~͎0͖| =_.:;<> !~Ʌo$&2;ø-!2>[S( /G:(:=p̈́#6S #~?  x. (#* 6?w(#6 IRRAISPOADAVEENSWOOSOCKNLOCKRIVE!N#~( #O~8( Xɯ21y_C y2=͸: 1͊ 2=&!!S~#foXGXl-:> g! ~0 0#Wx0Sx8JG ~ @# x&o'd }>B<0  <=0Öͱ͎*~ ( (͖#|?+-;K͸!6#~  6?#62F###^#VSD!"B!(6? :=_ͺ(͍x͠ ͎*B|k Size,[D|k Free,|k Tota:= =!o ~ ~##( [BSB~ : | ~> (>* >. :FG)æ͖~#͖-!"@ͺ!@4Fͱ͠+\ :A |_A >Y2AFY !\w w ~ ( | Unlock(Y/N)Y \Ϳ\<( | Erase!@+& ' ( S Sü (S [!&ͥ(<͎!?6!?~8 64!~͖=yRead Errom ,2ͺ(Q[T 4O .#"!,1 G!>~(p p,ͱ yFile Exist&%͎+l&ͦ| Block(sͥ(%! R8yMem Ful= m 2=i͸: :>(k=% 6C#6O#6M%ͱ*-!>~2>.~2,2<\!!~(#x2͎ \1i͸ͱ-: !>+Track-Info  *  '# ! #  8 w ~>2kÐ!751 !F6ͱp!w# 2C{!ɯ2kj!~<w( G:^!k(  !4~(!ͱ :l<(Bj( ͐͞Ù j>2o>2l͐!w8 !p2y:7 i(u͢|ç>Ù>>2o2l!͐0i 4?2q( _DMD| >!6Ù"{!:qO s#r:7u:o== 5y== .*RWw#ͪ*}"{s*{:]G# "{ͤs:y!w8w4!˾ :o ͧp!7~ =2y6ç2o!~~#~O~G#n,-. L2!y !x(/.:7<('!q##p͘:7< . (B.:7<(Ù>2}27jN! ~态O>G~G!~G}!ͯ!6#6#6&o_y#x#{8s+p+qͽ! oq#p#w*5$>2v>2s!~=2p0:*2t~2uw:)w~?( :?1ͱͽ*R[J ͯ:2(& ͽ :nÙ*H:*Ù*X*F*T"7:p :)Ù2)*5}/_|/*HW}_*F"H}o|g"F:s(!6:u( w:t2p:v( [5!$*;*7}D\À47;?CIFPMSVYϚϜyϞyϟyϠϡ϶ϷϸϷϹϺϻ1!"Ͽ:!>1#$:E0> H>`Iϛȯ=ɯ!!O:O2!"!"S!"0"1!GOϤj~8w!(^?W 2*go"F"H͠:p!*:p2**H;EK_888*X6# x [c*Xs#r*L6#6/("&>(:) #~$ =27C!Hyw#xw:^/GyO >2n!rq/(S(60D&:rOy($?(x ( ( N͞ # :27!n~0 w(|27j ͯl&6͓ͽPYy( ͱ0*_{z0BKͱ00>2~#+w#w+2722:ͱ& ! '# ! #  8 w ~>2kÐ!751 !F6ͱp!w# 2C{!ɯ2kj!~<w( G:^!k(  !4~(!ͱ :l<(Bj( ͐͞Ù j>2o>2l͐!w8 !p2y:7 i(u͢|ç>Ù>>2o2l!͐0i 4?2q( _DMD| >!6Ù"{!:qO s#r:7u:o== 5y== .*RWw#ͪ*}"{s*{:]G# "{ͤs:y!w8w4!˾ :o ͧp!7~ =2y6ç2o!~~#~O~G#n,-. L2!y !x(/.:7<('!q##p͘:7< . (B.:7<(Ù>2}27jN! ~态O>G~G!~G}!ͯ!6#6#6&o_y#x#{8s+p+qͽ! oq#p#w*5$>2v>2s!~=2p0:*2t~2uw:)w~?( :?1ͱͽ*R[J ͯ:2(& ͽ :nÙ*H:*Ù*X*F*T"7:p :)Ù2)*5}/_|/*HW}_*F"H}o|g"F:s(!6:u( w:t2p:v( [5!$*;*7}D\äu47;?CIFPMSVYϚϜyϞyϟyϠϡ϶ϷϸϷϹϺϻ1!"Ͽ:!ϛȯ=ɯ!!O!"!"S!"0"1!GOϤj~8w!(^?W Track-Info  *  -o-  #>=2 . y  (+(- >ͅ!6#~ր/>?w##~ ` ͕ 2|$!~6!": :q0 Ͳ!+"!"!>FͲ*ͅo&(%ͅ|0(00/00/0000:00:00P#S#O<'&'^'">'f'!>2^+V,OO>'n(6T]"O& "&!u+t,O6 #O~!w)~"w*w%6&w(w$w!w"w#&O>O>#~+: ~## [. #[k~#8 .(#~q#͏(_OO1"v!"|!&"&2o$2*+>2 "e+[R8͒ 4{! ̀X!̈́ ͗ >"|<( (L:/2>2 Not Enough Memory Bounds Error Break in|}*|0>2y#|( Ey+͗ ʹ #̈́ !"/!#"r"76T] *#z {6#*&| |ͬR|ͬ!z#z#|g}o|g}o|g}o{G){G<Ͷ:ͬ_o!>)8+/O|ei2>";ɯ:e!+|<#|> +Ͷ<Ͷ|Å|Ͱ +ͭ {GͰ |+DM!˺z>=##B = +|(}l?0#F8G Nq#!|> ( w#!V^R8<(0w###{ 0= 6!+j s#rww(, ", "#(w(4,((Sk6] #~0ͮ? >jͮ03)))o#~O(X(H(+ͮ 8  8 0))))o~ #!&(-(+(+ 0 0 )T]))_b O{y ( > y> yaiQY3}(!2!!!!~ #~ͻ > ̻ #ͦ ͣ _ !ͪ !#"kA S S 0+p#>2 >2 } <2  H ѷ((0 (G(B($( >ͻ wͻ # z("0 (0 x>ͻ > ͻ >ͻ +7w{̴ yGN#F+z()8 8 B^#VT T ͭ }0DGͭ yͰ Ͱ 0!Ä ̈́ > > ͻ > ! ͭ 6 5 8y406> >  ( P%!~<(8~ݖO! !~Fp0D݆I ~wI yɷG> > }=2&":}22}ʰ#ʭ#Ҵ#n#&>'~ &>'n&}( !=(++n&!VB( ++(+++N+^ s#r!X" z !~O#F @2 o >:w+6 {ZBASIC COMZBASIC COMA PYRAMID BASHOUSE BASZROSE BASSIEVE COMSORT BASSCIFN BASSHELL APPQUICK APPZBASIC HLP ZBASIC HLP!"#$%&'(ZBASIC HLP)TEST COM*TEST AS+PYRAM m,-./012ÕqyÊÏõî`È$W17xuxxxxx{:*&!!K Bõî`ÈZBASEIN COM$d:*&!AZBASEIN.COM ʢ͸$: ͜ݖ!~w!x2 -x2[2k{2i}2g., 8.'-y݆@w@Z. -o-  #>=2 . y  (+(- >ͅ!6#~ր/>?w##~ ` ͕Track-Info  *  zO yƐ'@'w+6 p)0>))) p#0!FO y( (#(>!wOG#N~(#n& 66#w+ {}! 6!~6 ~G#~ͻ . w M!{GVwj#q 6#s#r++ y<l=(#V+^~=O#äy  8 <8 GF# ( !i& !T]+64G!Nwi,a8{0_wɯRgo+ɯR!Rgo++R!##DMnf utx( `i4~# 4fo|gz{ $$`:ͤl͕>2|t>2F +F +F +F +R!Nz #.8:*7~(F~O8##~ # :0 :/0!SDM*r:_0 7*eR"r6 +x !"/.!*e[rR.8e"*r":O ڢ[eRڢ"rKBDM8(!*/#"/s. #*rRDM*/+"/Sr.ܑ8S*r:0_8!R86" !R(<8::DM(0bk_8Sr!N2T]_0Sr͖Sr'd AOOOOOOOO? }2&O_!"0####"y2b .*>} .*> (}2?KK͌bDMbPYF:R#++ Chx ?DM**ͥͥͥ 3: ?S"Ͷ>(3:û 3>*û *^V9^V9,,?*"*L"F'<<CC:2?͹!R}(,(29>22=2͝r >͝ ͝͝.WÀXO"!B"~ R>>+>#{z}|!!|ݾ8}ݾ0zݾ8{ݾ0>2R>2!}<2>{2<t*> *:R(:<e͹>e <> 2<2>2!2RͯͼkbYP?S"]T>)6>)6?"S{ƀ2}ƀ2TOVO7ƀͼ( BDM(/":ͯR)"vuBu+ x >%lgo&ƀOA8<_!my~ %+28>DJPV\bgmsx~!{2J}2K!! w+{ w++y ~ͬ ! +6!F#~-(+ u$ u* u. # 4u~ 4v u ~w:(~ ~n 6-:w#>w##6P!N#!~#G(5.0 (( 56 F#((( !n~ 60.~(o~+:(6 (6- ~(o ~(o* n ~ ß 2!Ä Error. ~EN#~ (, s+q}hs.8~.(#(# >0ow#7!  ^#V#!~G#~##N#T] #/^#V#'#/ƀw w##/^#V# y ! B9!9  +6! ! :||t t||!!  ,!$Ͷ$Ͷ !~#~ր0W R)T]))8/ͅ2ͅ!~66w#!~w!~##ր<?(G6#y ~wy !~ =2 . y  (+(- >ͅ!6#~ր/>?w##~ ` ͕͓(ƀ2ͅ!~6@|8$f,%|0f|%i|2/!"!>Fͅ:> 2|$!~6!": :q0 Ͳ!+"!"!>FͲ*ͅo&(%ͅ#XP@Eh@ThCd vbr`3/ /'((EE#S`(tq5&bIwW$piYWIfͥͅ$pyc&yHa12cQD XFhuRͅ|#i1GYS Ar2XehUC`%RTͅ!~26|ͯ$|8\$|ͯ|Ͳ$|8 >2|$|8 |Ͳ::2/!"!"2````$/>2`@͘`͕@:`0``/!":`(ͤͅ:`8``͕`͓A$/Ͷ|2"ͅ`$``͘*|(#<"0 ͕``͘`/:( /$:($`$͘$z͊ͅ: :$ͩ`@```!"!">2`k/` Br`!' 4 BP``p V2@!b#R%P'VͶMh&3G0B͠:͠ 2͠*Ͷ*"͝  w | ͝Ͷ͝ z( z/W{/_6#6!>P8#N#F#-'w:!w#6##6Track-Info  * #r!"H !,’;[P**R"P*D+"#*R#"*$NѷR"P**~+*D%R"P2;Q:+!'"BF+( *P&"P FbH> *+~,+,+)!#~(!8"+:ȷK+ !8 a8_͛+*+ "+É+^#V#+V+^s#r#*++"+͛+͉+( ~|;2;ø;#+(|}*+#^#V#"+É+͛+" Û+͛+*+~#(! #~ ("+ͼ,>(1!?W"+@X.O/O.O/(.OG.O.O(.O#w#{!?W"+# 2;*+#>"# "+>Q`i^#VSH#N#[*s#r#͛+"(,+(R-(N&(j.(FͲ!0A* [+6y,(#46((wS+#" ),(")͛+,()*+~(.(2E(.D(*#(&!("#, +* {(6#s#r#" ,)=,* 6#[ 5S ͉+,)[HM^#V3>@͛+*-+"-**~++>͉+"ʽ3ʽ3͉+Þ:!,Ғ;+"-**~++͛+!@#)C|; ͛+_.A!5)o0$q͛+,(-͛+|;.q(#0>?*-[*+"-S*͉+̛+-͉+CE *+:E"+?"(7C’;ڒ;".+!0!!L".!.![".!>2>" /S/+=o<+!:> +@ 3@!L@/@[*+o<͉+! >o<͘?!*.;@@[*+>@2>**~++ì+͛+!(C".[+* +,ʒ;+++{ʒ;"+*.|(,’;~+/@**~++͉+¬+3A!3@?*++’;+K+"+{’;͛+=5y 5+)5_++͛+(++[*+0[*+"+>@o<0 E8!;@>|?>?*++++"+z’;**###~++~+/@Û+/@[**++Fr+Ns++’;**~++Û+*++++"+z=’;**~++Û++[*++"+Û+*++++"+’;0~+>@!Q1A!E!!B 1r<@!!N!9ͮ1@,ͮ1͗+@͛+=ʛ+͛+! ͛+!r<͒+>o<͒+>o<͉+! ( !>1?͘?>@͛+! !<!K͛+(ͱ1͉+!H !@͉+1͛+r<͒+>o<͘?͛+! @![ 1!a 1!g ͛+͉+r<@É+Q8>Q8͡?!8@)͒+>o<͉+( ͡?!$@>o<͡?>!$@)!u @Cg3@>͒+COg3@;͡?y!8!0 !0!@>2D:E͛+A96C͉+(2E2D,C;3@>͒+o<͒+>o<͗+>+=8>͡??!c @͛+A0+}?|(? C }?|?͉+(͛+D("!GI ͛+!̀9+=>8?@!#Í9C+= C͉+=|;8<'8w o<+@>o<͡??@'>U<?3@![@!L@>8?3@!_ @͛+(Ͳ!8+@T8!##@> 3A;>͛+͉+" 'M;<;,3@*++"+Û+M;[***+r+s"*͛+N@2*͛+ >7S !@>BX(B|;2*ͽ8>?@ͽ8+@,Cچ;چ;͗+͛+! @#ʣ(͉+ 43@! C3@88! @͉+͛+! !+ 0!0 ͛+ ͛+!B@!v@ͱ1z@!r@ͮ1z@!!̈́ > û !!~> (>-#~րOg g(oo +>0S##y<< 0' >.y<( >0 y8A͢!(͢!# >m!6E#6+y(6-D#6/4 0:#w#6>0o >.0:?!ͮ" ,"͹!! s#r͹!!l6#ͮ""(, "4", +""(4"+, 6#ͮ""& 4[ ~#P% C[ N #~  > P% d:T%*6#wEp(#" =+"(3(0 (:o$[ ̈́%w#W#%W#%W#%8&>* | ,u%t&y#͸%:#G!y#'~ĸ%,ͬ 6 !T!" $."i#/#W#"&S ͬ 6.u,[ /!>ʹ#{2#}2T%=8 Ͱ#>8&&!<=(" T]@ "i#>.2T%!~2#w>2>z#&> "&:'K;}xy#&>0T$ :NT$ :]T$ :#T$ *#[$ d$ ",$d$ " >' > 1d$ "#d$DM ̈́% w# x %Ö́%}T$|T$̈́%ö́%g!}eͶy#$`iͶy#$Ͷy#n*F)N($`i#y$v$͆$ v$͐$͍$Ån"F!N$!=&^%V&>!jR 0 = BK!`iy#(&f%~&@%=Ou$ݾ" |ݾ!'e"t!q"'|ei)0>2W%>>>'&( 'n 2}%'v u'' 66>:T%$&(>'vu y<w$ e'4! 4"~&('F%'v(>f%e'%ͻ>>>>>2o$Ļ>>w'w$w!w"'"0&N$n+f,'~^%2o$:T%2p$ 6#0 6#-|o2&}!' 8> ( G#~0 6ͥ&!x'ͥ&>(!'͒!!'ͥ&F#4~ ont. or top? "*o$}&:2ʹ ]&ͪ !"o$!&̈́ 2 _SsCNo End of File Disk FullFile Not Found File Not Open Bad File NameBad File Number Write Only Read OnlyPositionDisk Error in File #00͛+"̛+͒+o!@͉+ ͛+,r<@͛+"̛+_C(!"O(!"R(!"I|;͛+"̛+͒+)!y#@͒+Q8͉+@m(oo<͡?!"͛+͉+#(r<)!#@Q8!>#@ABCDEFGHIJKLMNOPQRSTUVWXYZ+*$N++"|g:P"D6+"*"**"D#"#!5)6#!"**P#"*" "XF':+*('R"+~+" 2>2DP)>2;QV,l*͛+((((( (( ͛+" .,  ,,(,(" *+#~(" S*"+))4* w#=w2E#"8**"*~++*-"-* +"+!ù6:Z,( @X[2O.O4*Q-V,ʿ*>4͛+͉+(:(͞:!P,ҟ;͉+((+:>?**+6+6*X"H!"***+"*z+^#VM; o g~+sTrack-Info  * )5+=8 0U<o<8 ?**~++**#/@:E!E0~O**~++"z5q#q#(C; ͉+(͗+!q!0ED_;~O ("5 (?!y+@5 !y'@>88?!@8+@3@!L@![@7@!p @͛+(1! (4|;͛+Ͳ!|;0Xoo& 1r<+@ 1+}p;|p;}2E!o$͛+! !͛+#1r<7@>+?!v@z@!͛+(!!(Ͳ!*D0p;+3@!͛+|;@#[#R_;+zp;*g*R*"*D"D'Bp;*#"#͛+ ͛+ !͛+(+͛+!&3@>!͹3!&+@r<͉+!w (!s ;@**#**+~"*͹3͉+(**~++!#@ͯ7!#@@(%!6!31É+ͮ1!3@͉+!\ 1T7!(;(&o<͒+! ! ! @͛+͛+#ʎ(T7͛+͉+ͬ+! @;( , !| @͛+ !͍9 Q8>U<?!@ !n.0/͉+[0 " ͽ8C3@! @͉++²7͛+8! r<8! E8!!**+++"*͛+͉+ҩ;"ʽ8p8C;3@ 8͛+(  !>~q}9w_!8^#V@  2 >]&Q&E& ![+#("(w "8S+q~+3@›+͛+ 9͉++(,Q8͗+!R@͛+͉+ʰ3!$9Ҿ:T8! @29699O998|;! ! ,Q8͒+>o<͘?(,o<>͒+͛+n.0 T8͘?!  r<͘?! ͗+@͛++(o<×+! }9@,Q8>͒+o<>͉+!3@o<͗+͡?>! @+͛+#s({7" ͽ8+;͛+>C;3@! ͡?! @͛+#>({7! " ͽ8+;͛+! @C3@88!V@͉+͛+!j!0!͛+ ?>>ý3͛+!4@r!A<͒!!3<̈́ >bH*H!N<T!E<̈́ ʹ !Z,~(6JH@X[O*+@WR}2Q+IbH Error in Stmt 00 at Line 00000 ͛+͛+!>~qr<2>͛+͉+|;:|;ͤ~qc=!>w ɷ!(!@7*+͉+.=:(|,(t".,(L=(h)(d;(`88X(T(P(L(H!;=(D#Ͳ!870͛+(,Ͳ!8'D(#E(C8IE88͛+(͛+ "+y\#!.[^͛+(L=".,) Û+͉+͡=͉+) ͛=͘?? ͛=͘??͛=͘?@>͛+=͉+͋>E E+=͘?@>=͉++ =L?-=j?>͛+.>͉+* (>͘??/(\ (>͘??(>͘??>͛+O>͉+[(^I>͘?!M@>͛+͉+->+ʊ@"ʩCҩCIBA@.ʊ@Ͳ!Ҋ@&ʊ@(|;o<×+>͉+<|;_͛+<80 |;0>_͛+Wgk)ʹ+.ʊ@Ͳ!Ҋ@L>͋>!@!/@͋>!@>'>+#>>>>>> >>6?**w#"***+V+^+~!+~"*7@**+V+^+z"*͋>!@"? #?͘?e@͋>!@"? +?"*!R7@e@͘?j@͋>!@**+++~*(!>+~>6͛+ ͛+!Y@!J@+(\<͗+z@A!&!w!!C!S! K͋>(͛+>**w#s#r#"*>*>">>!>>y@s#ry@n&y@2y@~#foy@Mhy@y@RKis**Gw#"*͋>(V͉+& @!@*+~%(#(! #~(!8"+:!@!@**6#[5(S*+͉+%̛+3@EکC0'C3@!0!@C '@͋>!@V@3A;A:EDU;(J+~##88'\<(1>͒+͛+" ͽ8C;3@U<( !@͗+@͛+Ͳ!|;0,\<͗+Woo&@A!U!n$!͛+òA!,\<͒+>Q8>͒+Q8͡?>! ͗+òA,͛+( C3@͗+A}9!.òA>͹3?A\o<>!D!R͗+òA;0,ֻ|; |;!bBþ:A(BB(AAAAA0ABA?|;O`i))) B N#Y|;:>,Q(Q8 o<0E8/͗+G_^#V@I@|;7@\| r| rw mw m@\ ^@90>  |;*^'[|;wwz|;|;|;|;aad|; h h |yy$$v$$$$$$$$$$T8>͏>T8͡?E+òAG ##+_~|Ͳ!A[?a{?͛+IEDªD8,!E~g  C C7+## :D_;++\<D('+7@!@>͒+\<͡?De@z= >)?;@!I@>?z?;@!S @7@e@͗+ ڟ;K$NBҟ;OGw#a !Bp;"D+6>U;####[D{=G+|i;#+>%Ÿ;͉+(͗+6*DRp;"D+PY+!E6͛+# ͉+!ECچ;_˫!(^w# ͛+C8%(&ʆ;!( #($ Z͛+( !E~#^SD2Eo @`Copyright Zedcor.*+IE"+ɀpx!("[Io@`RsF!F̈́ ! x/!%F:++(5!"!3aSFR"FF**PSFR"FF͸%F>0F:NF:]F:#F*#ͿF*ͿF*XFK+ ͿF*ͿF**KXFB(ͿF F+| }F|F!3`~#F x P%1G>2o$8OEnter filename.COM Upper case only!: ???????????~(@ZH2G!G\ \Sƀo&kG>.ͻ kG| #~ Ļ 9HJHͰ#2!"!GeH+---------------------------------+ | ZBasic tm Basic Interpiler | | Version 3.03 January 14th 1986 | +---------------------------------+9H!X"?Q!"BQ>Q8PYMH{G*+"$N!"P"PX!UýM!T!T!!T22T%2+2S2Q2Q=2K!Z,~6JH!T:Ĵ ̈́ ʹ !bH"1=H!H  L,JR.(n(K(`/(5 !XV  I(HH +ڟHS(Ͳ!GNyJ Track-Info  * ܻ ~(ͻ ܀S8#~  4JUR~><ͻ ~( ͻ ̀S >>ͻ ~Swͻ # 6HyWRS ʾS( %(TͰ T+\S~8 #~+w#0y8 ~#^w{ wͻ #\SxR+T 4JyJ~*(+2Q#~!8 VH| ʹ >  2S VH ȯ2S>û 0!6 #6LIST:ILLIST5IDELETEMEDIT6RSAVENLOADbONEWAHRUNgMMERGEzOAPPENDlOQUITMEMPHELPCPRENUMxLFINDKAUTOKDIRGDELME6RL:IZBasic ReadyA.GariepyBad Line NumberAborted.TextMemoryObjectVariableEnd of Text! ONGOROLORLOTLSELSEANDOMEXTATANPUTIMEADETOTOUNFESTOREOSUBETURNEMTOPLSERONROFFEFSTREFINTEFSNGEFDBLILLWAPOUNDNDUTNPENOUTEATIOIRCLELOSEACHLGOCATEIDTHILLOXECORDALLODEPRINTEFOKERINTRITEONTILELAYENAMELEARHILEENDAGENDEXFINENSRRRORARPTRNSTROINTEMOTAYBEEEKPCSINGABORDOHENTEPNDRORODRACIXENALSCGNNTBSNPOSQRNDOGXPOSINANTNVIVBOUSEECOCOFSTR$KI$KB$HR$EX$CT$IN$NS$TR$NDEX$RRMSG$IME$ATE$NKEY$EFT$IGHT$ID$TRING$PACE$CASE$ End *VIVBOUSEECOCOFSTR$KI$KB$HR$EX$CT$IN$NS$TR$NDEX$ert=0) OR (X=156) THEN A$="No more than 152 characters allowed in each column sequence.":GOTO"BAD" 03093 ENDIF 03095 IF I>2 AND NIB THEN Pos(Ynow)=Pos(Ynow)+1 : GOTO 3200 03100 IF I>2 THEN 3200 03110 IF I=1 AND NIB THEN NIB=0 : GOTO 3200 03120 IF I=1 ! 9Hb !,\̈́ +EuGCXS(P[W !@W"BF!H" FuG!)]i[(*08=\O:y82!XO\!)]i[( 08\:o&]i[(082:#o&]i[KY$% }0:#2#!@(= "s):E>(o&^i[(20=(>#2E2AD!"BD!"XD2E>2AD!>"BD!"XD: OGGyo&0^i[(! 0 ҧY2 !O^̈́ | :).I( ==.S(=.D(.$}͕[ڒX(OI( S( D( $(ͻ Sͻ y2)S!^̈́ | :D͏[ڒX(!8 ͻ Y( N>(S>2Dʹ !^̈́ | :fK͏[ڒX(!8ͻ Y(N >>_2fK!^̈́ ^*g*i[(|("g*Z*i[("_*i[("_*i[("`*i[("=`*i[("!d_̈́ :Hͽ[(2H!E_̈́ :Hͽ[(2H!&_̈́ :Hͽ[(2H!_̈́ :Hͽ[(2H!_̈́ :Hͽ[(2HN[*i[("*)'R_i[('")ÒẌ́ o&ͪ[ͣ ڀX!6# }>Y >Nͻ !{`̈́ + 7ȷ| ͧ Ͱ ͗ ð o&ͪ[SrʀX !\ͦ ڒX( ^ͧ Ͱ }͗ ͣ 8( s# ADDRESS: !`!XO!a^#V#z +----------------------------------+ | ZBasic tm 3.03 BASIC Interpiler | | (c) 1985, Zedcor Inc. | | January 14th 1986 | |----------------------------------| | Tatung Einstein Vers[H%I!XDM+Q0| }M^#V͙Q͟Q4Jͭ#S U;P>2I>QҰ#PY`i##F###(JJ(C(4(0(, J(.(( :I==2I#(~:(,(:I==2I#BKͥQ:Q ~ͻ ##> >O> I>*Aͻ y7JJHI(((( JHI( :I<<2I#HI#~ (~"( ###~#~" 22~S > ͻ > ͻ #FSͭ y-(, :Qy GͰ fQZH+SʫM͎JMSH~ #!@Ws#r#6DM͒KCcK"XK >:4>(( (( Y͒K (:("(;Ͳ!8>4S++[+}|44 ( ͒K ,(ïJ͝K" ͝K? >' >(«J:K>ʝK͝K͝K" ëJ!'U #(K(#K x >(> 4UP*T]M>*̻ !T̈́  bHxyJ*ZH((# SsQS!" DM6ͨJ!" LM`i^#V#" L| !U2I+"H#~##===!8O F#  [H/I(("(<  ( (  (" UP:=2L[*RZH!XM(-#:8 :0[> _0ZHSs#r++ !XM(.A###(~< #^#Vz M`i###^#Vr+s!XM#^#V+++r+s## ^#V#Nz!X+Q8!X+Q0-`i~2dM#~2eM####~" [+#(ؾ " S+͛+7!~+(* 2+Sʽ)P%#O>2Z,JHO[.Oý)U;PZHKQͯMM*PRDMSP*$NR"P!@W^#V#NCNMCN ( <<(8 _RDMͯM!@W[PD_*P"4N^H,^H"P[N!RDM*4N[P*T(*( # +S#^#VbH͘JP)C*4*!DW"+2;2;͛+( :(͞:͉+-**[*RZH>?+AO% U #Q>Q0=ͥQ~((O#> (O> (O>(O!X~O(O#~G(Ox( #F~(O#>(O͸% 2o$ P%̈́%8ObH`&ͪ ô + 2Q*SPJO2K%#OUOJHkQSUOUO!"H!.O(F.O (w#wSͲ!0 [H͈JyJ̈́% (ȷ̈́%>2O!@W.Ow/O#.Ow/#.OwG.O#w:Z,(!EW6~" 44# MS~"S_A>2O@X/!ZBASIC.HLPsQ!8P,P[O!q!p"6$'.O( ͻ > ͻ + %QP!XTͰP!TͳP!TͳP!TR͗ Ͱ 2IP[ ([͙Q(SBQMC?Q!##w+## S-(,(fQ +sr!X"?Q!"BQN#F#~o0$x y!+Q"?Q*?Q[BQ+Q"+'M*+ZH3~"(Ͳ!ZH#+~Ͳ!80#bk)8 )8 8)8_ZHz~MZH`i^#V#SH>TF###~< #~#fo! # =R"( >(ϯ2Q#~"(  O !'U~#R ~ ~#~(fQZHMZHSH[H͙Q͟Q ~# G> SͲ!8 0_zW!gRˆRʰSʰS ʾS (B (>a8_LSS(BI\SD$SC?SXVSK($HSSARʹ JR>û ~(ͻ # !9S7S _>nteger,ingle or oubleTest Array Bounds .Convert to Upper case . SPECIAL Config. * See Appendix * Default CLEAR nnnn Memory SizeList Last Line .List 1st line .List Next Line .List Previous Line .Find next occurrence .Overlay Offset (See Appendix):R``>S`"`R``S"*`[`R`_:9))))29>2R`>2> ͏(> OrO OO!R<:<:ex Code) ? \`> *5$jP7~ +!y--@E *-14gg/!/!22AAXYY#Y#Y"U"MPWdEXX"X"7~ +!y--@E *-14gg/!/!22AAXYY>.Find next occurrence .Overlay Offset (See Appendix):R``>S`"`R``S"*`[`R`_:9))))29>2R`>2> ͏(> OrO OO!R<:<:ex Code) ? \`> *5$jP7~ +!y--@E *-14gg/!/!22AAXYY 'a***********************************'a** PYRAMID 3D GRAPHIC PYRAMID **'a** CREATED 07/05/84 BY A.G. **('a***********************************<&a A-Z : A,D,I,J,K : : "CALC.";F4a SP%(912),E%(6,3),V(4,3),SV%(4,2),S%(4,4),N(4,3)P,aRH=15 : D=4000 : AD=1 : CX%=400 : CY%=500Z,aS1=(.5) : C1=(.5) : S2=(.9) : C2=(.9)d-bCT=(.1) : ST=(.1) : SO=(-.1): CO=(-.1)nYbSP=(-.1): CP=(-.1)xwb 0, 0, 1.75wb 1, 0, 0wb -.2, 1, 0wb -.2,-1, 0 wb I=1 43b X,Y,Z : V(I,1)=X : V(I,2)=Y : V(I,3)=Z : c c 1,4,2,1 c 1,2,3,1 c 1,3,4,1 c 2,4,3,2 c I=1 4 c J=1 4 1c S%(I,J)Gc JJc IMc IR = 1 36" bc I=1 6, wcE%(I,3)=06c I@ c I=1 4JcU1=V(S%(I,2),1)-V(S%(I,1),1)TdU2=V(S%(I,2),2)-V(S%(I,1),2)^vdU3=V(S%(I,2),3)-V(S%(I,1),3)hdV1=V(S%(I,3),1)-V(S%(I,1),1)rBeV2=V(S%(I,3),2)-V(S%(I,1),2)|eV3=V(S%(I,3),3)-V(S%(I,1),3);fN(I,1)=U2*V3-V2*U3:N(I,2)=U3*V1-V3*U1:N(I,3)=U1*V2-V1*U2f I'fXE=RH*S2*C1 : YE=RH*S2*S1 : ZE=RH*C2agN%=1 gg I=1 4|gE2%=S%(I,1)3gWX=XE-V(E2%,1) : WY=YE-V(E2%,2) : WZ=ZE-V(E2%,3)'h N(I,1)*WX+N(I,2)*WY+N(I,3)*WZ > 0hE1%=S%(I,1) h J=2 4hE2%=S%(I,J) h K=1 N%2 i E%(K,1)=E2% E%(K,2)=E1% E%(K,3)=2 : &oi K+riE%(N%,1)=E1% : E%(N%,2)=E2% : E%(N%,3)=1 iN%=N%+1& iE1%=E2%0i J:iDi IN i I=1 6X i E%(I,3)bjJ=E%(I,1) : K=E%(I,2)l*;jSP%(AD )=SV%(J,1) : SP%(AD+1)=SV%(J,2)v*jSP%(AD+2)=SV%(K,1) : SP%(AD+3)=SV%(K,2)j jAD=AD+4j j I=1 4?jT1=CP*CT*V(I,1)-(ST*CP+SO*SP)*V(I,2)+(SO*ST*CP-SP*CO)*V(I,3))kT2=ST*V(I,1)+CO*CT*V(I,2)-SO*CT*V(I,3)BlT3=SP*CT*V(I,1)+(SO*CP-CO*ST*SP)*V(I,2)+(ST*SO*SP+CO*CP)*V(I,3)9mV(I,1)=T1 : V(I,2)=T2 : V(I,3)=T3 : X=T1 : Y=T2 : Z=T30n 3n 6nB::"*";Fn In I=1 48^nSP%(I+864)=SP%(I) |n I nAD=1 : M=M+1 : M > 15 M=0 n M*n -14!n R: 0 : AD=AD-24 : R>nX: AD=865 Ho *R oI=1 6\ o SP%(AD)f,-Track-Info  * h HIDDEN LINE ROUTINEh : XP=SX% : YP=SY%h : XQ=SX% : YQ=SY%h : XV=SX% : YV=SY% i : XH=SX% : YH=SY% &iV1=(XH-XV)*.5 : V2=(YH-YV)*.5tiU1=XP-XQ : U2=YP-YQiXT=XV+V1 : YT=YV+V2 i I=2 7";iVI=(0.+(U2*(XV-XQ)-U1*(YV-YQ))*(U2*(XT-XQ)-U1*(YT-YQ))),jV1=V1*.5 : V2=V2*.56jXT=XT+VI*V1 : YT=YT+VI*V2@kJk XV,YV XT,YTTLk^Mk VISABLE LINE ROUTINEh Mk I=1 N%rbk |ek I=1 SX%,SY%~k SX%,SY%k Ikk DATA FOR HOUSEkN%=11 : h(k -11,-20, 23, 6,-20, 9, 6,-20, 0(k 6, 32, 0, 0, 32, 0, 0, 32, 20(k 0, 0, 20, 0, 0, 13, 0, 32, 13k 6, 32, 9, 6,-20, 9kN%=2 : hk 6, 32, 0, 6, 32, 9kN%=2 : hk 6, 0, 0, 6, 0, 9kN%=3 : h(k 0, 32, 0, 0, 0, 0, 6, 0, 0kN%=5 : h&)k 0, 32, 0,-11.5,32, 0,-11.5,33.5,00k-11.5,33.5,33 ,-11.5,32,33:k : XP,YP XQ,YQDk -11.5,32,33, -11.5,32,0Nk 0,32,20, -14,32,31.5Xk bk -14,0,31.5 ,-14,32,31.5lk : XP,YP XQ,YQvl 0,0,20, -14,0,31.5l -11,-20,23, -11,0,23lN%=2 : h'l -11.5,33.5,0, -16.5,33.5,0'lN%=2 : h!0l -11.5,33.5,33, -16.5,33.5,330l : XP,YP XQ,YQ al -16.5,33.5,0, -16.5,33.5,33al -28,32,0, -16.5,32,0al dl -28,32,20, -14,32,33dlN%=2 : hml -28,32,20, -28,32,0ml pl 6,-20,9, 6,32,9 pl 0,0,0, 0,0,10 pl I=1 5 : t: : I #l 0,5,13.5, 0,14,13.5, 0,23,13.5*l 0,14,2, 0,23,24 l I=1 2 : t: : I>l 6,-11,0, 6,-1.5,0HlN%=4 : hRl 0,6,0, 0,6,6.5\l 0,9,6.5, 0,9,0flXpl IPzl IZl IRll WINDOWS SUBROUTINEl : SX%,SY%lY=Y+4 : : SX%,SY%lZ=Z+5.5: : SX%,SY%mY=Y-4 : : SX%,SY%CmZ=Z-5.5: : SX%,SY%hmY=Y+2 : : SX%,SY%mZ=Z+5.5: : SX%,SY%&mY=Y-2 : Z=Z-2.75 : : SX%,SY%mY=Y+4 : : SX%,SY%nn GARAGE DOOR ROUTINEn : SX%,SY%#nZ=Z+7 : : SX%,SY%$HnY=Y-7.5: : SX%,SY%.mnZ=Z-7 : : SX%,SY%8#nZ=Z+5 : Y=Y+1 : : SX%,SY%BnZ=Z+1 : : SX%,SY%LnY=Y+5.5: : SX%,SY%VoZ=Z-1 : : SX%,SY%`>oY=Y-5.5: : SX%,SY%jcotdo X,Y,Z :  SX%,SY%LnY=Y+5.5: : SX%,SY%VoZ=Z-1 : : SX%,SY%`>oY=Y-5.Z=Z+5.5: : SX%,SY%&mY=Y-2 : Z=Z-2.75 : : SX%,SY%mY=Y+4 : : SX%,SY%nn GARAGE DOOR ROUTINo SP%(AD),SP%(AD+1) SP%(AD+2),SP%(AD+3)ppoz poAD=AD+4zo}o~oXE=-X*S1+Y*C1oYE=-X*C1*C2-Y*S1*C2+Z*S2)pZE=-X*S2*C1-Y*S2*S1-Z*C2+RHpSV%(I,1)= D*XE/ZE+CX%pSV%(I,2)=-D*YE/ZE+CY%Bq+Y*C1oYE=-X*C1*C2-Y*S1*C2+Z*S2)pZE==T3 : X=T1 : Y=T2 : Z=T30n 3n 6nB::"*";Fn In I=1 48^nSP%(I+864)=SP%(I) |n I nAD=1 : M=M+1 : M > 15 M=0 n M*n -14!n R: 0 : AD=AD-24 : R>nX: AD=865 Ho *R oI=1 6\ o SP%(AD)f,- 8e >>>>>>>>>> 'HOUSE' DRAWS A 3'D HOUSE <<<<<<<<<<<<<<e 7e A-Z : I,J,K : ($eRH=100 : D=1000 : CX=320 : CY=5502f IR=75 150 25 : RH=IR<%f IZ=4 11 2 : TH=IZ*.1F#Yf IP=515 2 : : PH=IP*.1 : P*f@(0,0)"VIEW TH=";TH,"PH=";PH,"RH=";RH;ZfS1=(TH) : C1=(TH)dfS2=(PH) : C2=(PH)n g xg PERSPECTIVE PROGECTIONg t: READ X,Y,ZgXE=0-X*S1+Y*C1QgYE=0-X*C1*C2-Y*S1*C2+Z*S2gZE=0-X*S2*C1-Y*S2*S1-Z*C2+RHMhSX%=D*XE/ZE+CXhSY%=CY-D*YE/ZEhTrack-Info  *          00010 MODE 7 : REM************ NEW USR8/USR9 SIN/COS METHOD ****************** 00040 FOR R=0 TO 128 STEP 2 00050 Z#=USR9(3*R)*6.41E-3 : X1=USR9(R)*Z#+512 : Y1=USR8(R)*Z#+384 00060 B=R+42 : Z2#=USR9(3*B)*6.41E-3 00070 X2=USR9(B)*Z2#+512 : Y2=USR8(B)*Z2#+384 00080 PLOT X1,Y1 TO X2,Y2 00090 NEXT 00100 IF INKEY$="" THEN 100 01000 REM ***************** SLOW SIN/COS METHOD ************************** 01010 DEFDBL A-Z : MODE 7 01020 PI=3.1415 01030 FOR R=0 TO PI STEP PI/75 : TRONX 01040 Z=COS(3*R)*420 :X1=COS(R)*Z+512 :Y1=SIN(R)*Z+384 01050 B=R+PI/3 :Z2=COS(3*B)*420 01060 X2=COS(B)*Z2+512 :Y2=SIN(B)*Z2+384 01070 PLOT X1,Y1 TO X2,Y2 01080 NEXT 01090 IF INKEY$="" THEN 1090 02000 PRINT"NEW METHOD SIZE:";LINE 1000-LINE 10 02010 PRINT"OLD METHOD SIZE:";LINE 2000-LINE 1000 INT FN RadBrad(FN BradRad(10^FN Log10(I#))) 00055 NEXT IANS,DEGREES,BRADs **** 00035 DEF FN DegRad#******************** 01010 DEFDBL A-Z : MODE 7 01020 PI=3.1415 01030 FOR R=0 TO PI STEP PI/75 : TRONX 01040 Z=COS(3*R)*420 :00010 DEFINT A-Z : N=10 00020 DIM FLAGS(8191) 00030 TRONX : A$=RIGHT$(TIME$,2) : IF A$<>"00" THEN 30 00040 PRINT N;"ITERATIONS",,TIME$ 00050 FOR M=1 TO N 00060 COUNT=0 00070 FOR I=0 TO 8190 00080 FLAGS(I)=1 00090 NEXT I 00100 FOR I = 0 TO 8190 00110 IF FLAGS(I)=0 GOTO 190 00120 PRIME=I+I+3 00130 K=I+PRIME 00140 WHILE K <= 8190 00150 FLAGS(K) = 0 00160 K=K+PRIME 00170 WEND 00180 COUNT=COUNT+1 00190 NEXT I 00200 NEXT M 00210 PRINT COUNT,"PRIMES",TIME$ 00220 END RINT LP,RX%,LX%,ERROR:PRTrack-Info  *          #(x#) = SQR(x#*x#-1.) 00010 REM ******************* Other TRIG Functions ************ 00011 DEF FN Sec#(x#) = 1. \ COS(x#) 00012 DEF FN Csc#(x#) = 1. \ SIN(x#) 00013 DEF FN Cot#(x#) = 1. \ TAN(x#) 00014 REM ************** Inverse TRIG Functions *************** 00015 DEF FN ArcSin#(x#) = ATN( x# \ SQR( 1. - x# * x# ) ) 00016 DEF FN ArcCos#(x#) = Pid2# - FN ArcSin#(x#) 00017 DEF FN ArcCsc#(x#) = ATN(1\FN Sqrxx#(x#))+(x#<0) * Pi# 00018 DEF FN ArcSec#(x#) = ATN(FN Sqrxx#(x#))+(SGN(x#)-1.)*Pid2 00019 DEF FN ArcCot#(x#) = Pid2# - ATN(x#) 00020 REM ************* Hyperbolic TRIG Functions ************* 00021 DEF FN SinH#(x#) = (EXP(x#)-EXP(-x#)) >> 1. 00022 DEF FN CosH#(x#) = (EXP(x#)+EXP(-x#)) >> 1. 00023 DEF FN TanH#(x#) = 1.-2.*EXP(-x#)/(EXP(x#)+EXP(-x#)) 00024 DEF FN SecH#(x#) = 2./(EXP(x#)+EXP(-x#)) 00025 DEF FN CscH#(x#) = 2./(EXP(x#)-EXP(-x#)) 00026 DEF FN CtnH#(x#) = (EXP(x#)+EXP(-x#))\(EXP(x#)-EXP(-x#)) 00027 REM ********* Inverse Hyperbolic TRIG Functions ********* 00028 DEF FN AsinH#(x#)= LOG(x#+SQR(x#*x#+1.)) 00029 DEF FN AcosH#(x#)= LOG(x#+SQR(x#*x#-1.)) 00030 DEF FN AtanH#(x#)= LOG((1.+x#)\(1.-x#)) >> 1. 00031 DEF FN AsecH#(x#)= LOG((SQR(1.-x#*x#)+1.)\x#) 00032 DEF FN AcscH#(x#)= LOG((SGN(x#)*SQR(x#*x#+1.)+1.)\x#) 00033 DEF FN AcotH#(x#)= LOG((x#+1.)\(x#-1.)) >> 1. 00034 REM **** Angle Conversions for RADIANS,DEGREES,BRADs **** 00035 DEF FN DegRad#(x#) =x#*Pid4#\90. 00036 DEF FN RadDeg#(x#) =x#*90\Pid4# 00037 DEF FN DegBrad#(x#)=x#*Pid4#\64. 00038 DEF FN BradDeg#(x#)=x#*64.\Pid4# 00039 DEF FN BradRad#(x#)=x#*1.40625 : REM * 1.40625 = 90/64 * 00040 DEF FN RadBrad#(x#)=x#*64.\90. 00041 REM ***************** LOG base 10 *********************** 00042 DEF FN Log10#(x#)= LOG(x#)/Log10v# 00043 REM ************Test Routine For Accuracy *************** 00044 DEFDBL A-Z 00045 FOR I=.01 TO .76 STEP .25 00046 TRONX : PRINT"Should be:";I# 00047 PRINT FN ArcSin#(SIN(FN ArcCos#(COS(ATN(TAN(I#)))))) 00048 PRINT FN ArcCot#(FN Cot#(FN AcotH#(FN CtnH#(I#)))) 00049 PRINT FN AsecH#(FN SecH#(FN AcscH#(FN CscH#(I#)))) 00050 PRINT FN AtanH#(FN TanH#(FN ArcCot#(FN Cot#(I#)))) 00051 PRINT FN AcosH#(FN CosH#(FN ArcSec#(FN Sec#(I#)))) 00052 PRINT FN AsinH#(FN SinH#(FN ArcCsc#(FN Csc#(I#)))) 00053 PRINT FN DegRad(FN RadDeg(FN DegBrad(FN BradDeg(I#)))) 00054 PRINT FN RadBrad(FN BradRad(10^FN Log10(I#))) 00055 NEXT IANS,DEGREES,BRADs **** 00035 DEF FN DegRad#FN ArcSin#(SIN(FN ArcCos#(COS(ATN(TAN(I#)))))) 00048 PRINT FN ArcCot#(FN Cot#(FN AcotH#(FN CtnH#(I#)))) 00049 PRINT FN AsecH#(00010 REM ANY ARRAY TYPE MAY BE USED 00020 REM IF YOU WANT SA(500) TO BE A STRING ARRAY, USE DEFSTR S ON THIS LINE 00030 REM IF STRINGS ARE USED, SET THE LENGTH OF SA(500) WITH DEFLEN=30 OR WHATEVER 00040 DIM SA(500),L(30),R(30):REM L AND R ARE USED IN QUICK SORT ONLY 00050 NI = 500:REM CHANGE DIM 500 AND THIS 500 IF ARRAY SORT LARGER 00060 FOR X = 0 TO NI 00070 SA(X)=RND(1000):REM STORES RANDOM NUMBERS FOR SORTING 00080 REM:SA(X)=STRING$(RND(20),RND(60)+32) ONLY IF SA() IS A STRING ARRAY 00090 NEXT 00100 PRINT "START TIME: ";TIME$ 00110 GOSUB "QUICK SORT" :REM OR SHELL SORT 00120 PRINT "FINISH TIME: ";TIME$ 00130 FOR X=NI-10 TO NI 00140 PRINT SA(X):REM PRINT LAST 10 ELEMENTS TO MAKE SURE SORT WORKED 00150 NEXT 00160 END QUICK SORT ONLY 00050 NI = 500:REM CHANGE DIM 500 AND THIS 500 IF ARRAY SORT LARGER 00060 FOR X = 0 TO NI 00070 SA(X)=RND(1000):REM STORES RANDOM NUMBERS FOR SORTING 00080 REM:SA(X)=STRING$(RND(20),RND(60)+32) ONLY IF SA() IS A STRING ARRAY 00090 NEXT00001 REM ***************************************************** 00002 REM **** ZBasic 3.0 Scientific Functions 09/25/85 **** 00003 REM **** Accuracy up to 50 digits, DBL & SCI set=54 **** 00004 REM ***************************************************** 00005 REM ************ Constants used by Functions ************ 00006 Log10v# = LOG(10.) : e# = EXP(1.) 00007 Pid4# = ATN(1.) : Pid2# = Pid4# << 1 : Pi# = Pid2# << 1 00008 REM ********** Sub-function used by functions *********** 00009 DEF FN SqrxxTrack-Info  *          "SHELL SORT" Y=NI "Z1" Y = Y/2 IF Y = 0 THEN RETURN: REM SORT COMPLETE Z99=NI-Y FOR K9 = 1 TO Z99 I = K9 "X2" E2 = I+Y REM: IN LINE BELOW CHANGE <= TO >= FOR DESCENDING ORDER IF SA(I) <= SA(E2) THEN "X3" ELSE SWAP SA(I),SA(E2) I=I-Y IF I>0 THEN "X2" "X3" NEXT K9 GOTO "Z1" END DESCENDING ORDER IF SA(I) <= SA(E2) THEN "X3" ELSE SWAP SA(I),SA(E2) I=I-Y IF I>0 THEN ""QUICK SORT" L(1)=1:R(1)=NI:P2=1 DO LONGIF L(P2)>11 LONGIF J-Z>=6 SZ=SA(Z):SM=SA(M4) LONGIF SA<= SZ OR SA>=SM OR SA>=SZ OR SA<= SM LONGIF SZ>=SM OR SZ<= SA OR SZ<=SM OR SZ>=SA SWAP SA(M4),SA(J) XELSE SWAP SA(Z),SA(J) ENDIF SA = SA(J) ENDIF ENDIF WHILE Z= J OR SA>= SA(J) LONGIF Z= J OR SA>= SA(J) LONGIF Z will engage current line# for editing. FIND(#) or"str Finds text. #=line#s. "=str's. ;=next HELP (num) to scroll through info. (L)LIST (*,+) LIST prgm lines to screen. LLIST to printer. +=no line#'s, *=enhanc.(some) See WIDTH & PAGE LOAD(*) filename LOADs prgm. Erases old prgm. LOAD*=condenses MEM 00000 Text Bytes used w/text 00000 Memory Bytes remaining for text 00000 Object Bytes for obj.(only immed. after RUN!) 00000 Variable Bytes used for variables. NEW Erases program in mem. MERGE (*) filename MERGE program into program in memory. Overwrites text w/same line#. *=condense QUIT Exit ZBasic. Go back to DOS RENUM new, old, incr Renumbers program in memory. RUN Compile, execute RUN filename Comp from disk, exec RUN* Comp, save object to disk RUN* filename Comp from disk, save obj disk RUN+ Comp, exec CHAIN RUN+filename Comp from disk, Save CHAIN obj to disk More ... SAVE filename Save program tokenized SAVE*filename Save program in ASCII SAVE+filename Save program in ASCII, no line numbers ---- ZBasic HELP MENU ----- 10. Commands 60. Machine Language 20. Line Editor 70. Screen, Printer, Input 30. String$ 80. Statements 40. Graphics 90. Math 50. Disk Files 100. CPM80 2.2 & 3.0 Type HELP and ITEM NUMBER ABOVE PSTR$(var)="str const" Stores pointer of string constant READ PSTR$(var) Stores pointer of string data stmt RIGHT$(str$,len) Returns len char's from right of str$ SPACE$(expr) Returns expr spaces SPC(expr) same STR$(expr) expr to string VAL(str$) Value of str$ TIME$ hh:mm:ss UCASE$(str$) Returns uppercase str$ UNS$(expr) Returns unsigned integer STRING$(expr, char) Returns expr CHAR'S Track-Info  *          To engage the LINE EDITOR: EDIT line# or label or E line# or label or E to edit last line or to edit last line The ZBasic Editor uses the same keys with all versions of ZBasic! Learn one, learn 'em all! More ... --- EDIT KEYS --- To move the cursor: LEFT: n or or <--- RIGHT n or ---> L Lists complete line being edited. Puts cursor on 1st char A Undo (abort) changes, start edit over. n C Change n char's under cursr to key(s) n D Delete n char's under cursor. n is optional H Hack off line at cursor, enter Insert mode. I Insert mode. to exit insert mode. n K Delete char's to nth occurence of . default=1 n S Put cursor to nth occurence of . default=1 Exits I, K, S, C, H and X edit modes. Accept edit session. Abort session. (or ) ----END LINE EDIT HELP---- ---- STRING$ ---- Complex strings: Do not use complex strings in IF statements BAD: IF RIGHT$(A$)="S" ... GOOD: B$=RIGHT$(A$): IF B$="S"... ONE COMPLEX STRING PER STATEMENT BAD: A$=RIGHT$(LEFT$(C$,5),1) GOOD: A$=LEFT$(C$,5):A$=RIGHT$(A$,1) --IMPORTANT ZBasic Str$ INFO!-- ZBasic strings default to 255 char lengths. 256 bytes are used for every string encountered unless YOU define the lengths!!! Use: DEFLEN OR DIM TO DEFINE STRING LENGTH See INDEX$ for special string array. ASC(str$) Returns ASCII code of str$ BIN$(expr) Returns 16 bit binary# CHR$(expr) Returns ASCII string. CHR$(65)= "A" DATE$ Returns system date: mm/dd/yy HEX$(expr) Returns 4 digit Hexidecimal of expr. More ... -- SPECIAL INDEX$-- This is a special array for storing string information. Unlike other ZBasic strings, each element of this array uses only the amount of memory needed. ZBasic provides some VERY POWERFUL commands for INDEX$ More ... INDEX$(n)=str$ Assigns value str$=INDEX$(n) Assigns str$ value INDEX$D(n) Deletes element n INDEX$I(n)=str$ Inserts str$ at element n x=INDEX$(str$,n) Find str$ in INDEX$ (n=opt strt) x=elmnt# or -1 if not fnd More ... INKEY$ Returns the last key pressed...on the fly Examples: DO: I$=INKEY$ : UNTIL LEN(I$)---> Waits for a key to be pressed IF INKEY$="S" THEN STOP -------> Stops program if you press "S" INSTR(pos, str$1, str$2) Find str$2 in str$1 from position pos returns pos# if found. Zero if not. LEN(str$) Returns number of char's in str$ including spaces. LEFT$(str$,len) Returns len char's from left side of str$ X$=MID$(str$,pos,len) X$=portion of str$ from pos w/len length MID$(str$,pos,len)=X$ str$=len char's of X$ at str$ position pos OCT$(expr) OCTAL equiv. of expr MKB$(expr) Stores BCD number into condensed string format MKI$(expr) Stores integer number into cond. string format CVB(str$) Converts str$ made with MKB$ into a BCD number CVI(str$) Converts str$ made with MKI$ into an integer number ---------- For more HELP with Strings type: HELP 8 ------- Track-Info  * ---DISK FILES--- ZBasic file commands are the same for all computers. Learn on this system and you will know all the others! For in depth information about disk files see "FILES" in the ZBasic manual. for more.. ERROR=expr Reset ERROR=0 for disk trapping ERROR Returns disk error code. See ERRMSG$ CLOSE#fnum,... Closes file by number. CLOSE# CLOSES all files END or STOP CLOSES all files More ... INPUT#fnum, var,var Reads ASCII data from disk into variables LINEINPUT#fnum, var$ Reads ASCII data from disk into string only KILL "filename" Erases file from disk LOC(fnum) Returns location in record LOF(fnum) Last record (?) ON ERROR GOSUB line# User traps disk errors. If a disk error occurs (ERROR <> 0), line# is called. ON ERROR GOSUB 65535 User error trapping on. See ERROR ON ERROR RETURN Returns Disk Error trapping to ZBasic. More ... OPEN"ftype", filenumber, filename$ (,optional RECORD length) ftypes: "R"=Read/Write file Open if exists, else create "O"=Output only Write over existing, or create "I"=Input only Read if exists, else disk error More ... PRINT# filenumber, var, data,. Prints ASCII to disk READ# fnum, var, var$;len, ... (variables only) Reads condensed numbers from disk. String variables MUST be followed by ;length. FASTER than INPUT# REC(fnum) Present record of filenumber More ... RECORD # filenumber, record number (, optional location in rec) Positions the disk pointer to any position in a file. To point at the 14th position in record 9 of file 3--> RECORD #3, 9, 14 RENAME oldfile TO newfile Renames old to new More ... ROUTE # expr ROUTE all PRINT statements in program to DEVICE DEVICE -1,-2 Serial ports 1 or 2 (Use OPEN"C" to set port) 0 Screen (default) 1-99 Disk files (OPEN"O". Remember to CLOSE file.) 128 Printer (Turns PRINT into LPRINT). Executing a CHAIN file: OPEN"I",fnum,filename$ RUN fnum WRITE# fnum, var, var$;len,... Write numeric variables to disk in condensed format. String variables MUST be followed by ;length Faster than PRINT# More ... ERRMSG$ (error number) Returns the disk error message See "STRING VARIABLES" in ZBasic manual for more information.... ---GRAPHICS--- ALL ZBasic GRAPHIC commands use Device Independent Coordinates of 1024 across by 768 down, regardless of mode or computer! It is important to read the chapter "GRAPHICS" in the ZBasic manual if you do not understand this system. BOX x,y TO x1,y1 Draw a BOX outline with corners x,y & x1,y1 BOXFILL x,yTOx1,y1 Draw a solid BOX w/corners x,y-x1,y1 Brads Positions on circumf. of CIRCLE from 0-255 0 is at 3 o'clock. Goes counter-clockwise CIRCLE x,y,r Draw outline of circle at x,y w/radius of r CIRCLEFILL x,y,r SOLID circle CIRCLE x,y,r TO s,n Draw PIE. s=brad start pos. n=num of brads CIRCLE x,y,rPLOTs,n Draw ARC. "" ""... RATIO width,height Aspect of circle COLOR = n COLOR to be used with BOX, CIRCLE, FILL & PLOT 0=black -1=white FILL(x,y) Fills area with color PRINT@(x,y) Print at text position PRINT%(x,y) Print at graphic position INPUT@(x,y) "" INPUT%(x,y) "" POINT(x,y) Returns color of pixel at x,y (Not all systems) LOCATEx,y[,c] Cursor x,y c=0 Cursor OFF, c=-1 ON CLS Clear screen. Cursor to 0,0 CLSLINE Clear to end of line, cursor stays CLSPAGE Clear to end of page. "" PLOT x,y Plot one point PLOT x,y TO x,y Plot a line PLOT TO x,y Plot line from last point to x,y PLOT x,y TO x1,y1 TO x2, y2 TO... Lots of lines PLOT quality determined by MODE. SOUND frequency, duration Make sound Graphic positions: 0,0-----0,512-----0,1023 - - 0,384--384,512--384,1023 - - 767,1023--------767,1023 Positions stay the same regardless of mode or system. ----- PIXELS versus POSITION ----- REMEMBER: ZBasic graphics are device independent! This means coordinates refer to POSITIONS ON THE SCREEN... NOT PIXELS. Positions are the same REGARDLESS OF MODE or SYSTEM being used. MODEs MODE=n Sets screen mode for text and graphics CPM80 (Z80) Graphics are limited to characters ONLY! In MODEs 0,2,4,6 COLOR=CHR$(expr) In MODEs 1,3,5,7 COLOR 0,-1 MODE=7 BEST MODE 80x25 character text More ... Device Independent Graphics---- 1024 x 768 regardless of computer COLOR=0 Black COLOR=-1 White COLOR=n See apdx for more info SOUND frequency, duration 0,0 Upper left 0,1023 Upper right 767,0 Lower left 1023,767 Lower right Track-Info  *  ------Machine SPECIFIC Information ---- WARNING: USE OF MACHINE SPECIFIC COMMANDS PRESUPPOSES A KNOWLEDGE OF ASSEMBLY LANGUAGE PROGRAMMING AND A KNOWLEDGE OF THIS COMPUTER. PORTING MAY NOT BE POSSIBLE!! More ... CALL nnnnn Call subroutine at address CALL LINE n Call MACHLG subroutine at LINE line# or label DEFUSR digit=address Sets USR call address INP(port) Read data from port. (Z-80 or 8088 only) More ... LINE line# or label Returns the address of line# or label OUT port, data Sends data to port. (Z-80 or 8088 only) PEEK(address) 8 bit (0-255) PEEKWORD(addr) 16 bit (0-65535) PEEKLONG(addr) 32 bit machines only POKE address, byte expr 8 bit POKEWORD addr, expr 16 bit POKELONG addr, expr 32 bit machines only MACHLG byte, word, var Create a line with machine lang data to CALL LINE or DEF USR More ... USR digit (expr) User statement and function 0-9 8086 notes: Replace address with address, segment for PEEK,POKE 32 bit users: See PEEKLONG,POKELONG, DEFDBLINT, var&. WARNING: Machine specific code may cause unpredictable results! --END-- --SCREEN, PRINTER, DEVICE I/O----- This section deals with ways of presenting data on the screen, printer or other devices. Output will vary depending on the printer, screen hardware and other hardware. CLS (ASCII) Clear screen. (w/opt ASCII char) CLSLINE Clear to end of line CLSPAGE Clear to end of screen DEF TAB Define comma tab stops. (default=16) DELAY expr Delay system expr/1000ths sec DATE$ mm/dd/yy INPUT (screenpos)(maxlen,) (!) (;) ("str";) var, var,... screenpos INPUT@(x,y) text position, INPUT%(x,y) graphic pos. maxlen, Maximum# char's to input ; Suppress cr "str" string message var, var, vars to inpt LINEINPUT Same as INPUT except only one string variable may be input. Accepts quotes, commas, etc. terminate with . INKEY$ Reads keys on th fly. See STRINGS LPRINT Sends output to the printer. PAGE function Sends page feed to printer X=PAGE Returns present line on page of printer POS(n) Returns cursor position of: 0=scrn, 1=prt, 2=disk PAGE 1,2,3 1=Printed lines. 2=Actual lines. 3=Top margin (for printer only) PRINT@(x,y) Text position PRINT%(x,y) Graphic position ; supress c/r , vertical tab (see DEF TAB) TAB(expr) Insert tab 0-255 SPC(expr) Spaces=expr You may print variables or data separated by ; or , MODE= n Sets screen attributes. See Graphics. MOUSE(0) Initialize mouse MOUSE(1) Return X coordinate MOUSE(2) Return Y "" MOUSE(3) Button status NOTE: MOUSE is used for JOYSTICKS and other devices too. SOUND frequency, duration PRINT USING "###,###.##";1223.125 = 1,223.13 PRINT USING "$##,###.##";999.3212 = $999.32 PRINT USING "*##,###.##";32.598 =****32.60 PRINT USING "+##,###.##";32.598 = +32.60 PRINT USING "+##,###.##";-45.199 = -45.20 PRINT USING"##/##/##";33185 03/31/85 PRINT USING"##:##:##";12349 1:23:49 PRINT USING".#######";1.2E-5 .000012 PRINT USING"%###.##";123.355 %123.36 PRINT USING"@###,###";34.349 @ 34 A$="##":PRINT USING A$;89.9 90 More ... WIDTH expr Set screen width. Formats text nicely! WIDTH LPRINT expr Set printer width. Excellent formatting. ROUTE See route in Disk Files TIME$ hh:mm:ss (IF system has clock) SOUND freq, duration ---END SCREEN, PRINTER, DEVICE I/O---- Track-Info  * ---- MATH ---- Number ranges: INTEGER -32768 TO 32767 (0-65535 unsigned) BCD(REAL) 9.999E+63 TO 9.999E+63 HEX &H0000 TO &HFFFF OCTAL &O000000 TO &O000000 BINARY 16 bit Overflow errors: INTEGER = NONE BCD(REAL)= 9.99999E+63 Math Accuracy: 6 to 54 digits BCD: Set under onfigure. Single precision Double precision and Scientific accuracy may be set by the user. Operators in Order of Precedence: - Negation NOT ^,[ *,\,/, MOD +,- <,>,<=,>=,<>,=,<<,>> Expressions: ZBasic assumes all expressions to be integer unless #,!, a decimal point or scientific function is encountered in that expression. More ... Parentheses force precedence Numeric Functions: ABS(expr) Returns Absolute Value (positive) ASC(str$) Returns ASCII code of 1st char of str$ ATN(expr) Returns ARCTAN of expr in Radians COS(expr) Returns COSINE of expr in Radians More ... CVB(str$) Returns BCD value of str$ CVI(str$) Returns integer value of 1st 2 chars or str$ EXP(expr) Returns e^expr in BCD FIX(expr) Truncates digits to left of decimal point FRAC(expr) FRAC(1233.9993) = .9993 More ... INDEXF(s$,n) Finds s$ in INDEX$ starting at element n INT(expr) Truncates decimal value LOG(expr) Returns natural LOG of expr. LOG10= LOG(n)/LOG(10) MAYBE FAST 50/50 RND. Returns 0 or -1 MEM Memory left in INDEX$ PAGE Line pointer for printer POS(0,1,2) Position of cursor for Screen, Printer or Disk RND(expr) Returns a random number between 1 and expr SGN(expr) Returns sign of expr. Neg=-1, Zero=0, Positive=1 SIN(expr) Returns the SINE of expr in Radians SQR(expr) Returns the Square Root of expr. TAN(expr) Returns the TANGENT of expr in Radians VAL(str$) Returns the numeric value of a sting More ... VARPTR(variable) Returns the address of a variable VARPTR(INTEGER) Points to 1st byte VARPTR(Sng/Dbl) Points to sign/exponent byte VARPTR(String) Points to Length byte, followed by char's VARPTR(Array) Points to element See "Variable Storage" ------ See "MATH" in the ZBasic manual------ ---- STATEMENTS ----- The following is a list of ZBasic statements in alpha- betical order. CLEAR Sets all variables to 0 or null CLEAR num Allocates INDEX$ memory CLEAR END Clears only following variables CLEAR INDEX$ Clears INDEX$ DATA item, item Store data in table. See RESTORE and READ DEFINTvr,var-var Define letter range as integer DEFSNG "" "" Define letter range as single prec. DEFDBL "" "" Define letter range as Double prec. DEFSTR "" "" Define string DEF FN name(,var's) Defines function by name DEF LEN= expr Following strings will have this length DELAY = expr Delay in expr/1000ths of second DIM (len) var(n,n) Dimension arrays --or-- Define a strings length More ... DO: UNTIL cond DO LOOP ELSE IF false do ELSE END CLOSE files, end END IF Ends a LONG IF construct END FN Ends a LONG FN construct FN name(expr's) Executes function by name FOR var=xTOx FOR LOOP: More ... GOSUB line or label Calls routine. See RETURN GOTO line or label Jumps to that part of program IF cond THEN..ELSE Check for conditions INDEX$ See INDEX$ in STRINGS LET var=expr Optional assignment More ... LONG FN name(var) Multi-line DEF FN. See END FN LONG IF cond.... Multi-line IF. See END IF and XELSE MID$(v$,pos,len)= Insert string portion into s$ NEXT (var,var) End of FOR LOOP construct ON expr GOSUB1,2, GOSUBs to routine# expr. More ... ON expr GOTO 1,2,.. GOTO line or label specified by expr PSTR$(v%)="const" Set PSTR$(v%) to point at string constant RANDOM expr Random num seed READ var Reads DATA into variables READ PSTR$(v%) Sets pointer to DATA$ REM Put remarks in prog. ' for short RESTORE Sets DATA pointer to first item RESTORE expr Set pointer to item# expr RETURN Returns to statement after GOSUB RETURN line POPS last GOSUB SOUND freq, duration STEP expr STOP CLOSES files, prints line#, stops SWAP var,var Swaps values of same var type. (NOT INDEX$) TRON Line# trace on TRONB Scan each line TRONS Set single step. TRONX Scan that line only TROFF Turn off TRON, TRONB, TRONX and TRONS UNTIL End of DO:UNTIL loop WEND End of WHILE loop WHILE WHILE/WEND LOOP XELSE LONG IF else. -----END OF STATEMENTS------ Type HELP for main menu... Track-Info  * --------- SPECIAL CPM80 2.2 & 3.0 NOTES --------- SPECIAL CPM80 Notes: Filespecs [d:]filename[.ext] d: is drive to use A:,B:,C:..... filename May be upper or lower case starting with a letter .ext File extension like .BAS,.COM or .DAT . ------- CPM LIMITATIONS -------- CPM80 uses only Character mode Graphics All configuration questions must be answered for PRINT@(x,y),GRAPHICS,CLS LINE,CLS PAGE,CLS to operate!! POINT & FILL will not operate on the CPM80 version. . -- ZBasic 3.0 CPM80 -- The Keys must be configured for the ZBasic editor to scroll and position keys to function. Overlays are allowed in the CPM versions to allow Faster and smaller programs See Appendix. .COM file names must be Typed in UPPER case!!! Track-Info  *  X X 16*6+3X 320,324,300ZROSE BASSIEVE SORT BASSCIFN BASSHELL APPQUICK APPZBASIC HLP ZBASIC HLP!"#$%&'(ZBASIC HLP)TEST Track-Info  * V V A=1 16 V 16*A+3V 100,100,100(V AD*YE/ZE+CY%Bq+Y*C1oYE=-X*C1*C2-Y*S1*C2+Z*S2]BZROSE BASSIEVE SORT BASSCIFN BASSHELL APPQUICK APPZBASIC HLP ZBASIC HLP!"#$%&'(ZBASIC HLP)TEST *TEST BASÛqyÊÏõî`È$W17xuxxxxx{:*&!!K Bõî`ÈPYRAM ,d:*&!APYRAMYRAMID.BAS$: ͜ݖ!~w!x2 -x2[2k{2i}2g., 8.'-y݆@w@Z. -o-  #>=2 . y  (+(- >ͅ!6#~ր/>?w##~ ` ͕ -o-  #>=2 . y  (+(- >ͅ!6#~ր/>?w##~ ` ͕ 2|$!~6!:q0 Ͳ!+"!"!>FͲ*ͅo&(%ͅ|0(00/00/0000:00:00P#S#O<'&'^'">'f'!>2^+V,OO>'n(6T]"O& "&!u+t,O6 #O~!w)~"w*w%6&w(w$w!w"w#&O>O>#~+: ~## [. #[k~#8 .(#~q#͏(_OO1"v!"|!&"&2o$2*+>2 "e+[R8͒ 4{! '!̈́ ͗ >"|<( (L:/2>2 Not Enough Memory Bounds Error Break in|}*|0>2y#|( Ey+͗ ʹ #̈́ !"/!#"r"76T]q *#z {6#*&| |ͬR|ͬ!z#z#|g}o|g}o|g}o{G){G<Ͷ:ͬ_o!>)8+/O|ei2>";ɯ:e!+|<#|> +Ͷ<Ͷ|Å|Ͱ +ͭ {GͰ |+DM!˺z>=##B = +|(}l?0#F8G Nq#!|> ( w#!V^R8<(0w###{ 0= 6!+j s#rww(, ", "#(w(4,((Sk6] #~0ͮ? >jͮ03)))o#~O(X(H(+ͮ 8  8 0))))o~ Track-Info  * >2R>2!}<2>{2<t*> *:R(:<e͹>e <> 2<2>2!2RͯͼkbYP?S"]T>)6>)6?"S{ƀ2}ƀ2TOVO7ƀͼ( BDM(/":ͯR)"vuBu+ x >%lgo&ƀOA8<_!my~ %+28>DJPV\bgmsx~!{2J}2K!! w+{ w++y ~ͬ ! +6!F#~-(+ u$ u* u. # 4u~ 4v u ~w:(~ ~n 6-:w#>w##6P!N#!~#G(5.0 (( 56 F#((( !n~ 60.~(o~+:(6 (6- ~(o ~(o* n ~ ß 2!Ä Error. ~EN#~ (, s+q}hs.8~.(#(# >0ow#7!  ^#V#!~G#~##N#T] #/^#V#'#/ƀw w##/^#V# y ! B9!9  +6! ! :||t t||!!  ,!$Ͷ$Ͷ !~#~ր0W R)T]))8/ͅ2ͅ!~66w#!~w!~##ր<?(G6#y ~wy !~ =2 . y  (+(- >ͅ!6#~ր/>?w##~ ` ͕͓(ƀ2ͅ!~6@|8$f,%|0f|%i|2/!"!>Fͅ:> 2|$!~6!": :q0 Ͳ!+"!"!>FͲ*ͅo&(%ͅ#XP@Eh@ThCd vbr`3/ /'((EE#S`(tq5&bIwW$piYWIfͥͅ$pyc&yHa12cQD XFhuRͅ|#i1GYS Ar2XehUC`%RTͅ!~26|ͯ$|8\$|ͯ#!&(-(+(+ 0 0 )T]))_b O{y ( > y> yaiQY3}(!2!!!!~ #~ͻ > ̻ #ͦ ͣ _ !ͪ !#"kA S S 0+p#>2 >2 } <2  H ѷ((0 (G(B($( >ͻ wͻ # z("0 (0 x>ͻ > ͻ >ͻ +7w{̴ yGN#F+z()8 8 B^#VT T ͭ }0DGͭ yͰ Ͱ 0!Ä ̈́ > > ͻ > ! ͭ 6 5 8y406> >  ( P%!~<(8~ݖO! !~Fp0D݆I ~wI yɷG> > }=2&":}22}ʰ#ʭ#Ҵ#n#&>'~ &>'n&}( !=(++n&!VB( ++(+++N+^ s#r!'" z !Z~O#F @2 o >:w+6 { zO yƐ'@'w+6 p)0>))) p#0!FO y( (#(>!wOG#N~(#n& 66#w+ {}! 6!~6 ~G#~ͻ . w M!{GVwj#q 6#s#r++ y<l=(#V+^~=O#äy  8 <8 GF# ( !i& !T]+64G!Nwi,a8{0_wɯRgo+ɯR!Rgo++R!##DMnf utx( `i4~# 4fo|gz{ $$`:ͤl͕>2|t>2F +F +F +F +R!Nz #.8:*7~(F~O8##~ # :0 :/0!SDM*r:_0 7*eR"r6 +x !"/.!*e[rR.8e"*r":O ڢ[eRڢ"rKBDM8(!*/#"/s. #*rRDM*/+"/Sr.ܑ8S*r:0_8!R86" !R(<8::DM(0bk_8Sr!N2T]_0Sr͖Sr'd AOOOOOOOO? }2&O_!"0####"y2b .*>} .*> (}2?KK͌bDMbPYF:R#++ Chx ?DM**ͥͥͥ 3: ?S"Ͷ>(3:û 3>*û *^V9^V9,,?*"*L"F'<<CC:2?͹!R}(,(29>22=2͝r >͝ ͝͝.WÀXO"!B"~ R>>+>#{z}|!!|ݾ8}ݾ0zݾ8{ݾ0Track-Info  * |Ͳ$|8 >2|$|8 |Ͳ::2/!"!"2````$/>2`@͘`͕@:`0``/!":`(ͤͅ:`8``͕`͓A$/Ͷ|2"ͅ`$``͘*|(#<"0 ͕``͘`/:( /$:($`$͘$z͊ͅ: :$ͩ`@```!"!">2`k/` Br`!' 4 BP``p V2@!b#R%P'VͶMh&3G0B͠:͠ 2͠*Ͷ*"͝  w | ͝Ͷ͝ z( z/W{/_6#6!>P8#N#F#-'w:!w#6##6!!̈́ > û !!~> (>-#~րOg g(oo +>0S##y<< 0' >.y<( >0 y8A͢!(͢!# >m!6E#6+y(6-D#6/4 0:#w#6>0o >.0:?!ͮ" ,"͹!! s#r͹!!l6#ͮ""(, "4", +""(4"+, 6#ͮ""& 4[ ~#P% C[ N #~  > P% d:T%*6#wEp(#" =+"(3(0 (:o$[ ̈́%w#W#%W#%W#%8&>* | ,u%t&y#͸%:#G!y#'~ĸ%,ͬ 6 !T!" $."i#/#W#"&S ͬ 6.u,[ /!>ʹ#{2#}2T%=8 Ͱ#>8&&!<=(" T]@ "i#>.2T%!~2#w>2>z#&> "&:'K;}xy#&>0T$ :NT$ :]T$ :#T$ *#[$ d$ ",$d$ " >' > 1d$ "#d$DM ̈́% w# x %Ö́%}T$|T$̈́%ö́%g!}eͶy#$`iͶy#$Ͷy#n*F)N($`i#y$v$͆$ v$͐$͍$Ån"F!N$!=&^%V&>!jR 0 = BK!`iy#(&f%~&@%=Ou$ݾ" |ݾ!'e"t!q"'|ei)0>2W%>>>'&( 'n 2}%'v u'' 66>:T%$&(>'vu y<w$ e'4! 4"~&('F%'v(>f%e'%ͻ>>>>>2o$Ļ>>w'w$w!w"'"0&N$n+f,'~^%2o$:T%2p$ 6#0 6#-|o2&}!' 8> ( G#~0 6ͥ&!x'ͥ&>(!'͒!!'ͥ&F#4~ ont. or top? "*o$}&:2ʹ ]&ͪ !"o$!&̈́ 2 _SsCNo End of File Disk FullFile Not Found File Not Open Bad File NameBad File Number Write Only Read OnlyPositionDisk Error in File #00P  CALC.*b !'ͪ !ͅ![!"!"!"!"P![Pͥ![![ͥ!{[ͥ!s[!k[!c[ͥ![[!S[ͥ!K[!"I(!I͸;)!A0 !90 !10 *I!S !A͋[*I!S !9͋[*I!S !1͋[Ͳ5ô(!"IP)!I͸ځ)!"/e)!/͸~)*I*/)K Y)D)!"-Ö)!$-͸}4!"Ië)!I͸)*I!);!s#rß)!"I)!I͸&-*I!)K~#fo!S ͋*I!)K~#fo!S ͋!%[*I!)K~#fo!S ͋*I!)K~#fo!S ͋![*I!)K~#fo!S ͋*I!)K~#fo!S ͋![*I!)K~#fo!S ͋*I!)K~#fo!S ͋! [*I!)K~#fo!S ͋*I!)K~#fo!S ͋![*I!)K~#fo!S ͋*I!)K~#fo!S ͋![*I!S !͋!͋!͋!͋[*I!S !͋! ͋!͋!%͋[*I!S !%͋!͋! ͋!͋[)!͋!͋!͋![!͋!͋!͋![!͋!{͋![!"!"Ið-!I͸ 0*I!)K~#fo"!͋*!S ͋![!͋*!S ͋![!͋*!S ͋![*I!S ͋!͋*I!S ͋!͋*I!S ͋!͋@;0*I!)K~#fo"!"//!/͸0*I*/)K~#fo"!"?/*͸ڦ/*!);~#fo*p*!);~#fo*p|ʣ/*!);!s#r/3/*!);*s#r*!);*s#r*!);!s#r*#"*"/ä-!"I0!I͸1*I!);~#fo| 1*I!);~#fo"/*I!);~#fo"*)s*/!)}~#fos#r*#)s*/!)}~#fos#r*)s*!)}~#fos#r*)s*!)Track-Info  * }~#fos#r*"0!"I.1!I͸j4!K͋!s͋*I!S ͋!k͋!K͋!c͋!S͋*I!S ͋!c͋!k͋!K͋!S͋![͋*I!S ͋![!k͋*I!S ͋![͋!s͋*I!S ͋!c͋!s͋*I!S ͋![!S͋!s͋*I!S ͋!c͋!K͋![͋!k͋!S͋*I!S ͋!k͋!c͋!S͋![͋!K͋*I!S ͋![*I!S !͋[*I!S !͋[*I!S !͋[!͋!A[!͋!9[!͋!1[Ͳ5"1!2!'ͪ Ê)!"IÒ4!0I͸ڳ4*I`)s*I)s~#fos#rÆ4!"!͋![!͋@;4!ͅ![!͋ͶB!E;5!E*";5!>*!ap|85ó45!"IP5!I͸ڱ5*)s~#fo|ʤ5*)s~#fo*#)s~#foͶ*)s~#fo*)s~#foK*"D5!A͋/!͋!9͋!͋![!A͋/!͋!{͋!9͋!͋!{͋!1͋!͋![!A͋/!͋!͋!9͋!͋!͋!1͋!{͋!͋![*I!)}*ͅ!͋!͋*ͅͶs#r*I!)}*ͅ/!͋!͋*ͅͶs#r͋)s~#fo*)s~#foK*"D5!A͋/!͋!9͋!͋![!A͋/!͋!{͋!9͋!͋!{͋!1͋!͋![!A͋/!͋!͋!9͋!͋!͋!1͋!{͋!͋![*I!)}*ͅ!͋Track-Info  * Track-Info  * Track-Info  * Track-Info  * Track-Info  * Track-Info  * Track-Info  * Track-Info  * Track-Info  * Track-Info  *          Track-Info ! *!!!!!!!!!! Track-Info " *""""" """""Track-Info # *########## Track-Info $ *$$$$$ $$$$$Track-Info % *%%%%%%%%%% Track-Info & *&&&&& &&&&&Track-Info ' *''''''''''