IMD 1.16: 31/08/2007 10:56:28 sbasic 3.65 disk b 2/19/80  >@>14:D !>0>}= 400 {}x2>43>048ÿ0g(C(K(ˋ>_1!"ͷ! ("*u t ͯ( n f !jgn f [RDM*h"*Bad or missing CDOS.COM }CDOS COMx>(2 +{=SlG o&))))) ::8{=((i7*K 2 G  G qF y*Ky??!0 8 Gy>>^DVENF~GsDrEqFwGwDwEwF6GsHrIwJ^HVI~Jn f ͋~ #!0! DM0 z 7. ! ~ x y(YP;͋R(0o&R02 .! ^#V.! ~#fo:::{X!r/w R ѯ2 XOr* `=8CK~ s 1=8,Ks~(W(͔(s !WgBad directory block H ~(L~(?͋ ~(! ~ ^^#V#.! ~#foR8; ~ wn&))u t #_=u ~ w .! #.0! g G 66 @6 6 w w0w1w2.! 6 #g͋^V>w#!8n!&NeNF eNF B0Ń^VR8 ~ R8ut6 !u t ɗ2r2 * n(C~*+,(4 ~ R(&PYͻ(~{/wJ3 G A!G ~*_~+W~,zq!#8,~O8x<~!( 7 zW{_8͖~E> ~D=Äw#)6Ͷ4@ G~ O ~ <(9w q ((y!0  0>͂ >! >Ä< 8%.! Nl&~e 0{G!2 . ! n}(O N{(#F+ ( x( x( 7{  Rz xGG G ~G ,W   ! N͔ ~G ͧGN(ŧ?G*~8x( X#~# F =8 #?( ѧ7* * *X#^#VS ! ͆ 0 !" : 80ͷ 0 / U !"  2 y2 x2 " " *x0E2 * nf" ~2 7N* : _́{2 ^!={2 " ^V R> 8: .( N#Fx   : o& +~2      .( ^#V!M * U: _: G: Oɧ 8: (~( *N(>O.( ^#V! * ɧ / : ͡  8O: G.( ~#foy R>A2 ! g͸ Remove disk in drive ; press any key to continue .!  ا2 : A2 2 2 2 2, (:(1(7($(! h&)))l g! ggC ! ! !$ x Seek Write Read Home Read-after-write Logical disk error h, drive , block h error: Drive Drive not ready Diskette in drive is write-protected Drive is write-protected >͟ ͸ ((_R((! I( ! ͟ ͟ i !  g7Retry Ignore Continue      " $ 0 2 4 @ B D P RDM ! ! 9F+Ni`_^#VxBKeBK~WOzS0:__~Ez{*~(z###[+[##ͨ*ʹ 85~(͸ 6 ~w ʹ (͸ Dw~ 7͌   6 nb=>_> & & F(͌ ( 4\s#r\~#fo* >C( = z {?>70BB0 = * }+" }* " !" *F#~##( AG *$)LQ/:2yʹ ʢ=ʊ:.O:C:2yʞ (\=ʊ:O:2x2y2{2z2͜2"yÍ>@> y y>O2 R"2>2͜*z~D #~S >v >8>w! can not read 2 sided diskettes x22> 262œɗ22#4^ >040Ï>0͵W@ ͮ40>0140 ͪ ÜY Ü 6 Ü048 ±40ͮ02BẂƈ_z4{Ẃƨ_z4{048 40ͮ02{048 x40ͮ02Bɗ#4:3O:2~1ʮ^ :>(>040#͵O>0400@(@ ͮpͮ02(d: w 2:2:2:2>>>, Cylinder xx, Surface xx, Sector xx, Status=xx :wNn"f#w>#*3Ol4͵_:(: :g:2 4  !x2>2:G7G:g 4/ >ɯ42Hx2#4͑͵!͵:(}x!: !K+}      (24:@FDI>.I>9I@(>:9ȗ7L(>VL~:9 ͜(*:>29~#":~ 29]2<2=) > 2?$2>> I]2>]2?!@- % !<::>G! ~((#~#fo(pqrstuvwxyz{|}~onml^jk_>I!L]- % >A(O{(F͔>I>Iz-!o0$~GG!o0$^#V#~>IxIEHDCABKJbc][iI0PQMLWX12@RSZZgh  #;<;=EG2!"!"/wmʔlʔd͔:"@I;͔~( (I#>IG͔yIG͔]T/ >(M(T˿TT>I> I: : : >I>OI$ͼ2 $ͼ2 $ͼ2 $$GG$Gr @ STARTUP $STARTUP CMDçC2A SBR !SBASICIOZ80"#$%&'()*+,-./01SBASICIOZ80L23456789:;C3 SBR<=>(ͧط UProgram not found$Load error$! ^#V~/( =( ##~!#.$ATC1 SBRuC9B SBRvrçد1q>2228*|"*v"!`"9ZħͧU(W(2':'Էk'ͧk!~h5~! wͧ}ͧSBASICIOSBR?C3A SBR/@ABCDESBASIC SBRFC4 SBR$GHIJKc,l!4ͧͧZ( ( (`HU ͧk'ͧد2'$$$$ CMDͧA2 ç;|ԯBASLIB SBRLMNC5 SBROPQB1 SBRRSTUC6 SBR VWc,l! CDOS version . Cromemco Disk Operating System Copyright (c) 1978, 1979 Cromemco, Inc. 122Z2[!L@2'ͧH>~ ͧ ͧ(o&6~`8_w#~ ͬͧ =_ͧͬ\ͧͬlͧB2 SBRXYZ[C7 SBR \]B3 SBR7^_`abcdC8 SBRe CDOS version . Cromemco Disk Operating System Copyright (c) 1978, 1979 Cromemco, Inc. 122Z2[!L@ 4 ͧ!|2{}2!l!."v"x!h [h hhv!O h>r @ STARTUP $STARTUP CMDç#N#F#N#F#^#Vutut8IgkwآUV`}(y w}ڃڈC(0(I+| #|(\ͧͧ()!DM͕\ͧط(6 %U*Bad disk block overwritten $ͧͧZ+| \ͧBad directory block H ~(Lq~(?* ~(! ~ ^^#V#.͍~#foR8] (ͧط UProgram not found$Load error$! ^#V~/( =( ##~!#.$AT(͇7*oK ͧ͞ͱͳ órqF y¶*oKy??!08 Gͤyörçد1q>2228*|"*v"!`"9ZħͧU(W(2':'Էk'ͧk!~h5~! wͧ}ͧ-DK3H۽ms;| !9;7*o1cg*o ~YwqF o{*t~=Zͧ_ ͧç:]N( Y(ͧW2ا(7U9UçNo r$R$ead after write$!0 )) )O +"1q!q~ wn&))u t #_ͩu ~ w .͍#.0͍ ͳ66 @6 6 w w0w1w2.͍6 #*RIBBYEDIRERARENSAVETYPEVERIFY "d׷>?2h\ͧ(9yFile already exists$!\|!l\ \ͧا>>^DVENF~GsDrEqFwGwDwEwF6GsHrIwJ^HVI~Jn f *~ #!0! DM0 z 7. 4ͧͧZ( ( (`HU ͧk'ͧد2'$$$$ CMDͧA2 ç;|ԯ#~#s :~  ÷F  ;͋F *͊.͍~.͍~#foͶ!ö!oÊz 8÷p .}x ;OxInvalid jump to location H ` ͚͝ ç $O*o!9ut W>>w ~ 1c!~!O ^V>w#!8n!&NNF NF B0N^VR8 ~ R8utg6 !u t ɗ2syFile not found$!m~!8( ZG#\EW@R US+\ͧ(\ͧط!~ (^ͧ ~ ͍~ x y(YP]*R(0~o&R0c͞.͍^#V.͍~#fo:::{2'ͧH>~ ͧ ͧ(o&6~`8_w#~ ͬͧ =_ͧͬ\ͧͬlͧxGͳ {ó!͊!}!s#r#p!###X!!###\^#V#͊w{*v0"xe."v *x"v>2^#V!f~ nf (f;"A;^#V+++"I!,8Illegal system call H at H *os#r#s#r#q#p#s#r*oN#F͞* n(C~*+,(4 ~ (&PYZ(~{/wJ ͳ !có~*_~+W 6 #  ͧطͧط\ç !\>?#  (͞ͱͤ{=Ͷ͝ͱS ͳo&)))))ͱ ::rr͇8{=( ~,zq!#8,~O8x<~!( 7 zW{_?ͩDMO͞OGGGGv '~G MGF( W( GG6SYS DIR͌͗>8͝~E> ~D=w#͕6ͽ4@ G~ O ~ <(9w q ((y!͝V ͡ F8 ͗ Î>vݾ/(Kg! ^#(g# 7 <82~ *##"#W(!!~G! ~(x(~XWj&))))))).͍#͕͗ !>l>m G! ~!8~<! 4>> &}>(~ <(w 6  (>>WO!cͳ|g!czWA_ n^*V+N,{nf<<<#nfy!cͳR0 DM!c<GGnG(6F4F(NF3((~G GN(z͌"w͞G?(G! ~?(͛>ut[o!l0 0>͉>! >C8%.͍Nl&r 0{G!͞_. ͍n}(O N{(#F++*o#!*o#!??w ͽ(*(O[ BO* 5͙ / %Ͷ~ O*Nz(#*!"!*%#"%͞*!nf^VN8#z(#Nͭ*%ͭ*#>84ͭ0 ͸0>sx(#r͉ͭѷ> ! ~|/g}/o#! >>C#>O#>M*o q#p;#!cz ^'V(N)y(3~&o&)))n$f%y!cͳR0DM!c!cz .͍^boD (Î[o!Dl (z *w ;z͌ͱ0 x> y6 #l~(&=_9#w! w9q#ww #w͌8~ .͍]i&ͭ*!ͭí*** $ Files, $ Entries, $ K Displayed, $ K Left *** $ ͩ|{0_g>  ͕6T]# ~?# 6?*o s#r+!*v}|0)$ ~F# !GR-program too big#Ͷ (}.͍~#fo. ͍~. ͍^#VѧR͞* z ~  >?>?w !"!"#"%͌'8(#V# ͗z͌!ͷ0͌ͱ8 # ?(w#͗z͌!Hͷڱ~ˑG(wx( X#~# F 8 #?( ѧ7>  ՗#~+: ~w@8##t.  #t! w! ==ͩ{͞}! w(  = yö.͍}! n&_Tͩ{((r͇ۧ ! 8w##6 gCEW@R USz!r  ^# 6###*~ V ::w^ #q ~(#p#y( ! s#r:~(*v*oD !R;|~6*z>86(#6PY! ~Cz͌. ͍v(&8~(~ ͭ(íPress any key to continue $::͕ͭ8O~#^{ 0?g#^g͗#a_͌͗>͎Îr ,͇ۧ .!N! ~! 8w!~ 0 q͚ɗ># $ >~w ?? ((ͱ]T68 (66$)) 0 !b {F!͊ ͊! 9F+Ni`_^#VxBKBKWͻzS0:__~ͱzF{F*o~(F###͍zا2!:A2,2M2W2y2(:(1(7($(! h&)))!?ï!O!e!x Seek Write Re@(@ p02Y(d:Y w 2f:]2A:[2N:\2Z5>>>, Cylinder xx, Surface xx, Sector xx, Status=xx :*͞*+ ;E ;Oó***tX#^#VS!q0 !":80#0 Y͛!">@> y y>O2 R"^͇2[>2\*^z~D #~S >v >ec8>w! can no8<ͅ!DH!PT~( ͜({>:{2$F^#s#)$(?MS_ +##*o 85~($6 ~w  ($گw~ 7   6ad Home Read-after-write Logical disk error h, drive , block h error: Drive Drive not ready Diske]wNn"f#w>͏*^3O4!_:`(:a :bg:[2b 4 / !<2`:ZG7G:Xg 26y2x2""9*tx0E͞*nf"~27N*9:6_{2^!ͩ{2"^V R>q8:.͔N#Fxt read 2 sided diskettes x2Z͞> 2]͢͞ɗ2]2[͏4^ >040>0!W/@ 40>01k40W~((####~#foͬz+ͻ~ ܻ7ͬzB##~ͬ#ͬ##8z>\+~) nbͩ>_> ͒ ͒,F(P(T 4s#r~#fo*o >C( = tte in drive is write-protected Drive is write-protected > $((_R((!I( !<> !4/ >ɯ42`Hx2Z͏4!!O.͔^#V!  YH  ͢ 8048 4002YB̓Wƈ_z4{/̓Wƨ_z4{048 ]40 z(>/V(z +6#z(6rG{p#x 0 >^@>> >> > v ^F(>z {?>70BB0 = *}+"}*3"!"*tF#~##( Aͳ NgDr7Retry Ignore Continue ``````` `"`$`0`2`4`@`B`D`P`RDM !ccQhh8*ɧq͛: q8O:G.͔~#foy ;>A2K!6$Remove disk in drive ; press any key to continue ./02Y{8048 x4002YBɗ͏4:]3O:\2~1^ :X>(>040#!O>0400!~4w!|N8 $-15>:V2Xyʇ% =:V.O:VC:W2Xyʇ (\=:WO:W2Xx2Zy2[{2\z2]2X"^y lX+`tH 78@5 x > 6h:C`I?x ,:Eǣ;6ƀ`(a K6,:EX .D@ !@kqlAME8SSQN`Ud(1MQSETCHKTe$DX !-AI>ZAUTOLS`eDTUH$$$SYNe44 SCANIT44(BUSCLB44*?t, #?7E@ t6X* 1b lڂҵ`l> 3n+D"1b^P7i,v6?x pwlT ;K`R~Z`11 !o0$~GG!o0$^#V#~>IxIEHDCABKJbc][iI0PQMLWX12@RSZZgh  (Z3@l"?ޮ??b[X85_0`Tn+ !Pt &mfX'+68XtF#a&0Q!llffmwe eU@i,IG͔yIG͔]T/ >(M(T˿Tb3l +9 LA+63@@e"ۮuEJu|Yx 0nXtL;d-`vWJ WA-@%]@ISKL]KAILMVn !)037@IPY ">I>.I>9I@(>:9ȗ7L(>L@& BD# 'il[JB& tTQD:)E1c&@ 3@ L(ٵ| ٷdT`Ͷ,f͢`#2AٷZLVARdDT5D븎SETCHKĕ8ꨎZPROTELj4$툎ZAUTOLDT$X訖ZDELETK@"h `10( ͠$` |#s۩`* m԰p 6X8l2EƂn(%9[땢!ED|$# H`M#0 X}e !>S! !`T>I> I: : : >I>OI$ͼ2 $ͼ2 $ͼ2 $$GG$G29~#":~ 29]2<2=) > 2?$2>> I]2>]2?!@- % !<::>G! D\ 6nP%Kwi sJ& @T`f`2-P<,Q@ 2SAp%~S!p7P YCNXwl|fذV4Y,H`%=Y83i4!l0",r⬀ 5)aX .h6?P /ml3j 7Nn(? 8{(?((*(D@ $| uv0 #:[6荇BA w[p@`땢!/ݫ0SbBBE5M 992SCANITSd%U44(M 9MRSCANLI U5Dt(MI1 2SERRNSSQL`TS(95NAME4SSQM`TSh95Ndk:6 @Pz^m1xi0aͦ ̑eU@S-A^wuP $C@0p4^V tn+`38EG~((#~#fo(pqrstuvwxyz{|}~onml^jk_>I!L]- % >A(O{(F͔>I>Iz-fa &aݰ"99nS&bH (O >X65=, >@9= <x1ͻ@aȆ3@ @@b7 zE@ tD!,b dE@ !-ݥ'Xtd0{wB/xE"*IiM 7T& a,0E"X` a*M "X` a,0EI"  P"`R4TH$ lX'rq<0)C)S2y8 "V1FHR0B,@yT.ȥ@)E*LeP "J@THNH2XzS*Jd0C%P| A`0<~`>Å@ A( 1aƒ P wp :*XP(< =8P}^(,p u @`8 15_ = dr)PA!GYT'RXX$ "y M)IBy4Z" 0F$e@ZDR" D)X d DU)Ak"HC" "(-tE'di4NdaPR"JPjE#IiXh< @M8 A*p 8N@Ӑ0qNaL@e8  jp *Zp & bHP "tp(?8P phAb ^ǝ: AcH@T,9L'ȠvR'rY0A"Ϥy@Nʤ$Za)J" R" "p N'Hdx N*$2( S#IB( L#IB(!DD" DRh!\C'I<"X{oM&Y0f-E"X` a,0EoA@*Y{2a, EDp{wA= ܰ{tA=\{I)0Ed2 0DR K#Jd1,D"$!b%B`D  eiLO($ryP"R"HbqH'BA` RpL$ʀcS"%2 X5  |L'cK A@`D RpWK(@Ap@,wAk 9(@A7 w<\b0N j)X5f(z2y4O'(B4~&hr]0 n!4I8 ~DdhY`pb50E H~a@ CTY6?Do+#~ٶhPCf3 &1 ^ V(piFL-G<@08b ] D$piaB`,P Ӏp/`6 80 a0@~ p C)H%B( R"$( E,$ !FN' %2!JC$Ir(!B$!@!I%K"A@!F%K"A@!D A@!T$HA@ D"B( K! 2(!0U' 2X!lR""[{\a, Ea6"ڀblPM A5"X@a,0E "VYB+E"X` bAٷ-@( |@0k _eafÅ0A)bI8RHA* @fYSqPPfK@L'fyHD%2HPi@S$f SB 8PkJ@F)Egy4N `Pl$!@ |w ~H  +XP)8P|6 zg } vh p, XpP$aH*[a@ ( 1!Cz #4 y(j 63nO0 'm x+#f` f ;@ L#qPS#PL!b8P)`hͱ#i#rr @Ň yv`}&rv(74 5A@8P  P*>1(*@`9< pkD@(h {+Rթ #2($R"ʄ<$R9 s$ 8(Dq`R]D"I8D" .$S*I$S*JIC)H%B(%*L$Dd%ȥB1\ @R Rdr)PE,P9  A#$,@GA( 7 80_Z`D " >h@4p PhP D`B7(F;l8P sS(g@SD)8Pz$@A)fE8Pm%1@I'b@K"$wJe!@A"w R RP$ߤ)`H( dR$P|ȥ0@b R#`1x0^bQ Z*29#.âPT@EP*B$AXzAT9 QHMȄhNU)@1<"@),E#; 4d3@:A쇨v 6LjIr@@eF$j'\Xx. ݒD%4lj">6K6lͮB,p:fhR @Sxab5!J^Ԁ0GaҎ(@@GP5 10  * v( (@8Pv $`,8R")"YT Q,L*H@J,A&R`%K b)H%JB P G$¡ RdaPW"S$ V'+2)8P)`R(0RxE'I")H"rA$E#p(@A>4B 20k>C@(v @0hB5!s[f:< d40*T@b6ÅȈX0jb@0a+I1@A*$ :S$rS*2I8U*$TI)L) Du!E)JdP9ЊN" u0C  TO&̈́RqPRJdyH7I!( !0t 9[m/ np ?:L& Bpl4J6LjI[YW222,28 ڗ,R R/—MG@RSUE ʹSo!  @/ @ Q} MODEXP$Uɰ5STEXPE%8GETNSPDdEͰSERVAR"F*?*]BK**"2G<2?z6#z>T:TO& ʬ ?ҿ!?yb "*Dgřtğe,LHVNo"E@ B"\'vґU%KwiMB1F#/ˁ8@=GY$w#Q^X x m @"XvO20H 20G:828:º>`ʗL xʗҗBú".:;Ŀ2!8~w{{:;5 ~w_!=>?{~#{ ʤ–!Ô Not Found> {> {>2< <ʌ>2:_<2!~<&?yBKO6&! s#r! s#r! s#r/ ! s#r&! s#ryb@ FpX*;+wiHp=\Qz 26Ɍ4D4ȰLNUMSUe%5EؕGSLBL݈d8ЎQSTNULe$UDTGETNAC:;22r 22*5|ږʖyȷ–͈ڶ~@–ü"Öx *5|Ö*.~ ´:2:86 G@x Ý6 ?Comman<ʋ! w#! wʹ|![ʚS!A͵**DM[Begin execution]:1** ~ ~ʵ+++}>GO6! ~#fo! &?ѵ!  &?}_|W>2**?m**:m ҁ**?W{_*D5X&ERRORXetԔ5h`RETMTtUET8RETPE5DHΰPROMPTtUDĔLOADIPUD((%GETNC54U%(ȖLDHLINUTd Error~{#~#  `' +!~GS#~ B4:x+#w~H:j ͵{ 9> {::!;o +",""""go"*"5212320!""""""!""""22aà?No Start Address?Loading Error?Out) ~+‚>ʗ6 =‘*?!(  215 *?~O_?+++y++:1^:1! 285 >[{ y/!">#""":0GO0 ک)))ʽ)o>gÕy +%Overlaying areaDataProgram!! ~#fxPUTSPEUD8πBUPLBRހD8ERDUPEՂ$UD8,RETCЈUUD5(ЅFNOSUdĕ5DTȆPUTNAMUDĔXPRTCONU448>g6 Fatal Error$ $7 —2;<!` :—͍GOH:H/""""**"  G~#͈#~@#+^+VAs#r y** K8A~w#~w//:f/ f|͛>]{͵>2*?**? Ң!?*]**?BK**?***"**?BK**""""_ ~w#~wPỲ>BK| ~_q#VpAŠ  n:=ʬ >@w+r+s+@:2r+s >͈ /o/g   ~@wq+p*>28~@w+Ns+Fr{8*6+r+s+p+q+"~+V+^+F+N+*P@ DM>>>>m<23=O!}! ^# * ~_~@ʼ +++~#¼ ?*?BK" ?+++ 22:Fgo"""21"<2:**6***>2* ] *?>͈ڋ+^+VA" ̀:=W<2= : *  PY7H*?*!"}2<2 *":aĞúBASLIB SBR ҝxě:{$MEMRY**!"w#͈~@+^+V"*!1 2! Ô?Start symb`BK͈d~@?:$~@w+~_q+Î n:=1>Cw+p+q+r+s !P1 ͵ %Mult. Def. Global ~@*5+"5PỲ>`BKů}| "* ` !B 1 >/{͵ ~W+++~{+8 %2nd COMMON Larger /*" |2* `0 > ͈~@wVډ?yږҬy?ڳ& ?ڳy!! s#r^#Vͷ?ڑʑ!p#*!N#F#6*͟ / ͇ ! ~#foBK#:=d :[ *|P [ U }[ #`͟p#:[ *|y [ ~ }[ #:4Ñ**|G}~O"A++++µ~ y/O Í"Ox_?WOw#ol - - undefined< ~# ͿÍ SBR7:8`Q K :K 27** F ~G~ ~@ /21:8` ~͈~+ڥN+F@¾:z  | :r#s :AÅ z #n:=>Bw+r+s+r+s *5#"5!~# n:>ʣ :=ʘ >G:=ʢ >@w+:2: :=r+s+r+s z `"*̀! ^#V!!~#fo!^#V  !~#fo Ҁ!^q#Vp!~s#_~rW?}^#̂ {_!6)][ :=³ :ʳ nͶw+p+q+p+q#B/ ++sL :7> E?@2<L x  =  > 2+w+w+w+ w+w+"7ɭ :ȯ2**?DM* "* "*?BK""/""*"> >/{+^+V+~{ /{~@® >*21{y~ !k   ~ y+^+V y:7?27̵~ <</O X |4 6+wxG ɯ2,7:͍S|͍ |!"wi4#6 _{w#m!y :** !*"/*?l*`**?BK*" """/""// |*`i{!#‘**?"**"!y! ^#V  F#fh?!^#V ^#V? 6 #= x2;y.L Ex& 3 ' H !E~ H 6S#6B#6Ry[j 0j Af :j O Ò:› :2*|‹}ʦ~_!&^#V*"8Aq#p8A^q#Vp{8#~@+^+V{r#sA^#V{r+s}:0( )0{)  0{ |- }G8 x0:C { ~#foy  y/ õRQUESTx r *:ˆ"O<2XP̾ʫҫO! N#F 24:24  w  r W 4m  :0"  y! ^#V^#V?1! s#r Gyx!Ys#r#Jxl|W}_?* Z"**""*"*" !i~S#~B#~Rw+»COM` `<2: **belowaboveOrigin loader memory, move anyway(Y or N)?/    ! y*,O1i*ͳ( CROMEMCO BASICGEN version 03.65 Copyright (c) 1979 Cromemco, Inc. $:/ʔ(:] (c:eC :fM :gD \\yoxg*"*":=¬*!"͟*{OzG*?*DM7xw#  +x ~+ x **|< <  <>͛**}͛|͛qͅ:]/yO]qͅ:ĵ`< ?سȯ͛z / y*,!  $!9;;;;;; b @?zfb7i\if ڠ ڠ> aͳ(ERROR: Could not create requested CMD file. $ͳ(ERROR: Bad or missing file name. $>2h)ͳ( BASICGEN enaw+ :7=O#:7/&? ?Intersecting \O& ?2:?O:/z&?z~#͛Ï!:_w{<2`!Ô?Can't save object file!f!l!o!u#ҋ?zʚ7*"*"**?fKP*?"!*?BK***? bles you to produce a customized version of CROMEMCO STRUCTURED BASIC by including or omitting certain features. This 23!:3 B/B y** ܦ*  // /!2 >,{*& M^#Vy¼Ý!"F~#{>({>){Ý:&? Start = External ##### #!!*"*?"*"*"*?"*"bmbh͒ڃ͒Ԩܸ͒K O*?*"**?BK**?"òPY*?"*?"5**?ڃBK**program is interactive, expecting you to answer all questions with either a "Y" or "N". You may also abort the program vͽ & %*, Խy *, ԽÑ ^*, W!b!!!2,YPublic = è͸͒Ԩܸ! N#F#^#V#~#fo|} +x~+ íxw# øxw# ~#fob?q#p  ia control-C or restart it via ESCape. All other responses to questions are ignored and will beep the bell. You sho file. $6y2> 2ͳ( Please wait $*bk>$ ('_Y( N( _Y>ͳ( Restar? $(2f)"),C9:f)?'ͳ( Do you wish to include the square root (SQR) function ?? $("),C9Aͳ( Do you wish to include tTbBBDĕ8i1%MRLINELITSdT5XAUQ96: T`i1%MR;XSSc1%MQ::STcYAUQ96k"-f  B%- `7ng capability (i.e., EDIT, CHANGE, and FIND instructions) ?? $("),C6ͳ( Do you wish to include the PRINT USING instructionould respond when the program prompts with a double question mark ("??"). $!xٯ") :h)")BASICGEN/")SBASIC,/P:ting program... $ >bk> 2(*w# ͳ(ERROR: Link list too long. $!w)G~#0argument he trigonometric functions (SIN, COS, TAN, ATN) ?? $("),C9Bͳ( Do you wish to include the HEX, VALC, DATE, and TIME functiDnVm2 nHv%( 0$"2Z,T.OPfhVJd7OPGPh? #f0f 4&h ?? $("),C7ͳ( Do you wish to allow user-defined functions (i.e., DEF FNname...) ?? $("),C8ͳ( Do you want to includ0B00,B1,B2,B3,B4,B5,SBASICIOͳ(Will this be an interactive version of SBASIC (i.e., with the ability to ENTER, EDIT, LISTerromultiple definitioexpression errolabel erromissing labenesting erroopcode errophase errorange errosyntax erroundefons and the EXPAND instruction ?? $("),C1ͳ( $"),:\( @2')A:]{e(8 (3w# ͳ(FATAL ERROR: Command liV`d[ 3l[hL0f fjb8GOF~3d( 7)8t@`9|,>F#~(?Bhe the LOG and EXP functions and the power ("**" or "^") operator? CAUTION: you can not include the square root (SQR, or debug programs) ?? $(2g)"),C2,C2Aͳ( Do you wish KSAM file access capability ?? $("),C3,C3Aͳ( Do you wish the ined symbovalue errofile not foundivide by zero errono matching Ino matching MACRtoo many COMMONmuiple MACRO definitione too long. $ٯ")/N/E:h)")  d!\ %\ͳ( *** End of Job *** $ͳ(ERROR: Could not write t( ?€( ?j(?``$ 6wiH`ѓ?2rʤ@/䠡 ڵ/;jtb2 ~ʾ/;*̪z 2`) or trigonometric (SIN, COS, TAN, ATN) functions if you answer "N" to this question. Include LOG, EXP, and power ?full text of error messages displayed (instead of error numbers alone) ?? $("),C4),C5:g) _ͳ( Do you wish editilabel not alloweinstruction not alloweundefined symbol on pass on8>!*ͼ&F4 '"*:=?o (#4F4~#(; Ç   D5 fր'  RsW n(I3PB~ Aٵ T fQ"z٠Ś0JͶ "34F# YHY********************* rem rem THE FOLLOWING ROUTINES AND TABLES CONSTITUTE SBASIC'S INTERFACE rem . TO THE VARIOUS PERIPHERAPOPALL ; RESTORE ALL REGISTERS ; NOTE: THESE ROUTINES MUST BE ACCESSED BY A 'CALL' ; DO NOT 'JP' TO THESE ROUTINEgical to be able to ERASE a line printer, rem . anyway). rem . 4. Specific peripherals may or may not support all I/O opera8Fy[GD npDͼ` f@"/l0/7+TUz~Ќ#fր#16mp B8Db6"?-U(P"L DEVICES. rem rem FROM SBASIC A PERIPHERAL DEVICE IS TREATED AS IF IT WERE AN rem . ORDINARY DISK FILE WITH THE FOLLOWINGS EXT UMULT ; UNSIGNED MULTIPLY ; BC * DE => HL,DE (16 BIT RESULT IN DE) ; IF HL>0 (32 BIT RESULT) ROUTINE RETURNS 'Ntions; rem . one cannot GET data from a line printer, for example. rem rem rem*****************************************f!a?/QQ@#ћIæmRfՐ&pOp ͥB0)Fͭ@V@8:8@~V,ڼ A&2Sc(I1 22Qc3 AUQ J2 EXCEPTIONS: rem rem . 1. The 'file' (peripheral) name must start with a dollar sign. rem . 2. Peripheral names must be unZ' ; [USE CDOS CALL FOR DIVIDE, IF NEEDED.] EXT ERTIME ; TIME-OUT ERROR FOR TIMED INPUT. DO NOT USE. EXT ERRIO ; GENERA*********************************** rem TITLE << externals, equates, entry points, etc. >> rem rem EXTERNAL ROUTINES WHITS#0 EM B3Q#2`E1 MQB3U5@ 1=M%f3^7AIQ1 2TU#/5952TUc69AIQ =:3UV#=5AUQER2dique within the next two characters. rem . (i.e., "$LPT" and "$LPR" are seen as the same name.) rem . 3. Many functions wit TITLE BIO - STRUCTURED BASIC I/O ROUTINES << introduction >> rem rem*******************************************************L I/O ERROR. TO USE, PLACE DESIRED ERROR ; CODE IN THE A REGISTER AND CALL ERRIO. ; NOTE: IF ERROR CODE IS 0-127, THE RCH MAY BE USED BY THE I/O ROUTINES rem EXT PSHALL ; SAVE ALL REGISTERS (INCLUDING IX,IY,HL',ETC.) ; ON CPU STACK EXT S&Y UA1 Jphin SBASIC can only refer to disk files; rem . examples include RENAME, ERASE, and CREATE (it doesn't rem . really seem lo  ESULTANT ; ERROR WILL NOT BE TRAPPABLE FROM THE ; SBASIC PROGRAM. ; NOTE: ALSO SEE BELOW FOR SPECIAL ERRE ADDRESS ; OF THE HEAD OF ITS TABLE (SEE BELOW). EFCBDD EQU 3 ; DEVICE DEPENDENT INFORMATION -- THESE TWO BYTES ; ARE ********************************************* rem rem rem THE EXTENDED FILE CONTROL BLOCK (EFCB) rem . EACH OPEN FILE IS AVICE SYSLPT EQU 5 ; PUT BYTE TO 'LIST' OR 'PRINTER' DEVICE rem FORM rem rem rem************************************** ; AND ALWAYS USED IF 'SET 14,1' USED IN SBASIC. rem ENTRY SYPUTC ; PUT-A-CHARACTER TO SYSTEM CONSOLE. USED ; FOR ALLEFCB IS AVAILABLE ; TO THE DRIVER FOR TEMPORARY STORAGE, BUFFERED I/O, ; OR WHATEVER IS NECESSARY. rem rem rem EquOR RETURNS ; FROM SOME FUNCTIONS. rem rem rem*******************************************************************COPIED FROM THE DEVICE'S ENTRY IN DDLIST. EFCBP1 EQU 5 ; PARAMETER 1 ... PASSED AT 'OPEN' TIME VIA ; 'OPEN\CHANNEL,PARM1,PASSIGNED AN EFCB (AND ALL CALLS RECEIVE ADDRESS rem . OF THIS EFCB IN THE IY REGISTER). CERTAIN PARAMETERS ARE PASSED rem . ************************************** rem rem FIXED RAM LOCATIONS rem CAUTION! VALID ONLY FOR VERSION 03.XX SBASIC. rem  CONSOLE OUTPUT. ENTRY CHSTAT ; CHECK CONSOLE STATUS. USED FOR CHECKING TO SEE ; IF A KEY (PARTICULARLY AN ESCAPE) HAS BEates for CDOS system calls, etc. rem SYSPUTC EQU 2 ; 'PUT C'HARACTER TO SYSTEM CONSOLE SYSCRDY EQU 11 ; CHECK IF CHARACTER R********* rem rem ENTRY POINTS WITHIN THIS MODULE rem rem*****************************************************************RM2\...' FROM SBASIC. EFCBP2 EQU 7 ; PARAMETER 2 ... PASSED BY 'OPEN', AS ABOVE. rem EFCBS1 EQU 9 ; STATUS PARAMETER 1 ... PTO THE I/O ROUTINES VIA THESE BLOCKS. rem EFCB EQU 0 ; THE BASE ADDRESS EFCBUS EQU 0 ; EFCB-IN-USE FLAG: SET AND RESET BY rem ABS CDOS: EQU 5 ; SBASIC ALWAYS USES STANDARD CDOS ENTRY POINT! rem rem ORG 0230H SETSYS: ; THE VARIOUS SET/SYEN PUSHED. FORM rem rem rem**************************************************************************** rem rem FIXED EADY AT SYSTEM CONSOLE SYSRNE EQU 128 ; READ ONE CHARACTER FROM SYSTEM CONSOLE, WITHOUT ECHO SYSCRT EQU 142 ; Special CRT Func*********** rem ENTRY DDLIST ; MASTER DEVICE DRIVER TABLE rem ENTRY SYGETC ; GET-CHARACTER-FROM SYSTEM CONSOLE ; NOTE:ASSED AT I/O TIME VIA ; GET, PUT, PRINT, INPUT ... FOR EXAMPLE: ; 'GET\CHANNEL,STATUS1,STATUS2\...' FROM SBASIC. EFCBS2 SYSTEM! ; DON'T TOUCH! EFCBDA EQU 1 ; ADDRESS OF THE DEVICE DRIVER CURRENTLY USING ; THIS EFCB. NOTE THAT THIS IS THS() PARAMETERS ! ; SEE SBASIC MANUAL FOR EXPLANATION OF USAGE FROM ; SBASIC...SOME OF THESE MAY BE USEFUL TO ; AN IOFFSETS AND RAM TABLE LOCATIONS WITHIN SBASIC WHICH ARE USED rem . BY I/O ROUTINES. rem rem*******************************tion (cursor addressing, fields,etc.) rem SYSRDR EQU 3 ; GET BYTE FROM 'READER' DEVICE SYSPUN EQU 4 ; PUT BYTE TO 'PUNCH' DE NOT NORMALLY USED FOR PROGRAM EDITING ; AND 'INPUT'. USED BY DRIVER "$CONSOLE" ; AND BY 'GET' STATEMENT ('GET\0\...')  EQU 11 ; STATUS PARAMETER 2 ... SIMILAR TO EFCBS1. rem EFCBFREE EQU 13 EFCBTOP EQU 191 ; THE REST OF THE 192 BYTES OF THE  /O DRIVER. PARAMETERS THAT SHOULD NOT ; BE CHANGED HAVE NOT BEEN NAMED HERE. PAGESIZE DS 2 ; MAX CHARACTERS PER LINE FOR Ole I/O to rem . this named device. rem . 4 (2) device dependent ... each driver may designate its rem . own usarem . peripheral device drivers available to SBASIC users. rem rem rem DDLIST consists of a series of 8-byte entries, eacate on OPEN dw 0 ; --reserved-- rem rem next entry rem db 'T5' ; "$T50" -- tuart port 50H -- used in some systems  rem rem THE FOLLOWING LOCATIONS REFERENCE INTERNAL SBASIC FLAGS, ETC. rem $CONSOLE USES THEM TO PROVIDE I/O TRULY COMPATIOLE ; address of the driver for this device db 0,0 ; driver does not use device dependent info dw 0 ; --reserved-- remUTPUT...IF MSB ; IS SET, PAGESIZE IS INFINITE. TABSIZE DS 2 ; NUMBER OF COLUMNS BETWEEN PRINT POSITIONS WHEN ; USING ge for these bytes. rem . NOTE: SBASIC will move these bytes into the rem . bytes labeled EFCBDD within the apprh defining a separate rem . device driver. The format of each entry must follow rem . certain rules. The offsets of requ ; as a serial line printer. dw DRTUART ; note that the driver address is the same as that ; used by "$SY" !!! BLE WITH 'SYGETC' rem (SEE BELOW). NO DOCUMENTATION OF USAGE IS PROVIDED. USER-WRITTEN rem DRIVERS SHOULD NOT USE THESE LAB rem next entry rem db 'SY' ; "$SYstem console" -- historical name ; NOTE: this driver differs from $CONSOLE in t'PRINT A,B,...' LASTCHAR DS 2 ; LAST CHARACTER OUTPUT TO ANY DEVICE (LSB ONLY) ; LASTERR DS 2 ; LAST RUNTIME ERROR NUMBERopriate rem . EFCB before calling the driver's OPEN routine. rem . 6 (2) RESERVED for future use. Should be zero. ired information within rem . each entry is shown below: rem rem OFFSET (bytes) INFORMATION rem rem . 0 (2) the  db 50H ; first EFCBDD byte: port address is 50H. db 0 ; second EFCBDD byte: do not set baud rate on OPEN dw 0 ; --reELS. rem FLGECH EQU 031DH MODECH EQU 0260H MODFIL EQU 0267H MODRUN EQU 021FH rem TITLE <<< DDLIST - list of available hat ; it directly accesses the 4FDC/TUART port ; rather than going thru CDOS. CAUTION!! dw DRTUART ; address of  IS IN LSB. MSB NOT USED ; BY SYSTEM, BUT MOST USER PROGRAMS EXPECT ; IT TO BE ZERO. COLUMN DS 2 ; CURRENT PRINT COL rem rem rem**************************************************************************** rem rem rem rem the actual DDdevice name...without the '$' that the SBASIC rem . user needs. rem . 2 (2) the address of the driver that will handserved-- rem rem next entry rem db 'LP' ; "$LPT" -- the line printer dw DRLPT ; address of its driver db 0,0 ;drivers >>> REL ; BEGIN ACTUAL CODE GENERATION rem rem DDLIST -- a table of names, entry point addresses, etc. of all the general purpose TUART driver db 00H ; first EFCBDD byte: port address ! db 0 ; second EFCBDD byte: do not set baud rUMN. RESET TO ZERO ONLY BY CR ; (BUT I/O ROUTINES COULD CHANGE IF WANTED) TIMER DS 2 ; INPUT TIMEOUT COUNTER. ; remLIST: rem rem rem DDLIST: rem rem first entry rem db 'CO' ; "$COnsole" -- the system console driver dw DRCONS  no EFCBDD info dw 0 ; --reserved-- rem rem next entry rem db 'RD' ; "$RDR" -- the CDOS 'reader device' driver dendent bytes rem . from the DDLIST entry. rem . EFCBP1 and EFCBP2 contain the parameters passed rem . by the ust of what parameters are passed and where. The notation 'ERROR:' rem . indicates what error message results if the A registe Register A' contains the parameter count. rem . ERROR: 140, File position/status. rem rem . 6 (2) GET STATUS OR er address specified at OFFSET 2 within any DDLIST entry must, rem . in turn, point to a table of eight (8) two-byte addresse NO parameters are passed. rem . ERROR: 142, Cannot CLOSE file. rem rem . 4 (2) * SET STATUS OR POSITION. w DRRDR ; address of driver db 0,0 dw 0 rem rem next entry rem db 'PU' ; "$PUNCH" -- the CDOS 'punch device' driser's OPEN request (see above). rem . The A' register contains 0,1, or 2 -- a count rem . of the parameters passed.r contains a rem . non-zero value upon return from the routine. Be sure to zero A rem . if no error is encountered!!!! rePOSITION. called by the IOSTAT() rem . function. Usage is device dependent, and rem . the second value of the functs. rem . Each address within this new table (known as the 'DRIVER rem . ROUTINES TABLE') points to a sub-driver which implemcalled at each usage of any rem . file I/O statement (GET, PUT, PRINT, or INPUT). rem . The parameters specified by tver dw DRPUNCH ; address of driver db 0,0 dw 0 rem no more entries rem db 0 ; *** this zero byte must be here to rem . (note: EFCBP1 and EFCBP2 will contain 0FFFFH rem . if the user did not specify a value.) rem . ERROR: 1m rem rem OFFSET (bytes) DESCRIPTION rem rem . 0 (2) * OPEN. This routine is called when the user OPENs rem . ion may be rem . used to select one of several returned values. rem . Register A' contains the second value passedents a particular rem . primitive I/O function, according to SBASIC's definition thereof. rem rem The following shows the he user ( as in rem . 'PUT \channel,parm1,parm2\ ...' ) are passed rem . to SET STATUS for usage on a device-dependent signal ; the end of DDLIST *** rem TITLE <<< comments on schema of driver routines >>> rem rem rem Just as the34, Cannot open file. rem rem . 2 (2) * CLOSE. called when the file channel (number) is closed rem . either impl the device from SBASIC. It should perform rem . any needed initialization. rem . EFCBDD contains the device dep rem . to the IOSTAT function (e.g., "n" in rem . 'IOSTAT( channel, n )' . rem . ERROR: 140, File position/staoffset within the table (in bytes) of each rem . subroutine address, a description of the necessary routine, and rem . a li rem . basis. rem . EFCBS1 and EFCBS2 contain the parameters (or rem . 0FFFFH if not specified). rem .  DDLIST must adhere to a certain format, a peripheral device rem . driver must conform to SBASIC's rules. rem rem The drivicitly or explicitly. The routine rem . should perform any necessary cleanup (buffer rem . flushes, etc.). rem .  tus. rem rem . 8 (2) OUTPUT ONE BYTE or character. Currently all I/O rem . to peripheral devices is performed on us). However, SBASIC will not run rem . correctly with a driver if these routines are not supplied. rem . Since these routin address of zero. A user attempt rem . to access such a routine (e.g., by trying to INPUT rem . from a line printer) wy ; nor does it use a CLOSE routine ; but NOTE that the routines must exist, ; even if they are dummies !!! dw CONSET ror return exists for this function -- rem . use ERRIO as noted above to force an error.) rem rem . 12 (2) --RESERVEam entry from the keyboard and responses to the rem . INPUT statement use the CDOS read-a-buffered-line rem . system caa rem . byte-at-a-time basis. If buffering is desired, rem . the driver should provide it. rem . The byte tones are expected to return a zero in the rem . A register if no errors are encountered, the following routine rem . serves till generate an ERROR: 130, rem . Invalid command for device. rem rem rem--------------------------------------------; the SET STATUS routine may be used to change ; cursor position, etc. dw 0 ; currently, the CONSOLE does not supporD-- not currently in use. should be zero. rem . 14 (2) --RESERVED-- not currently in use. should be zero. rem rem=====ll. Usage of the CDOS routine may be rem . overridden by the user via a 'SET 14,1' command. rem . NOTE that the comman output is passed in the A register. rem . (No error return exists for this function -- rem . use ERRIO as noted abhis purpose. rem .dummy: XOR A ; this zeroes the A register... RET ; and this ensures a no-error routine to SBASIC. re-------------------------------- rem rem .dummy -- A Special Routine rem rem rem Several of the device drivers have 'mist a status ; read (cursor read?) ; NOTE that this routine may be omitted, and ; hence the use of the zero 'address'======================================================================= rem rem NOTES: an asterisk denotes routines which MUSTd sequence rem . OPEN \n\ "$CONSOLE" rem . INPUT \n\ ... rem . will NOT use the CDOS routine, but will instead use ove to force an error.) rem rem . 10 (2) INPUT ONE BYTE or character. The byte is NOT masked rem . to 7-bits by GETm rem---------------------------------------------------------------------------- rem TITLE <<< the CONSOLE driver >>> remsing' routines...that is rem . they do not implement one or more of the 'required' routines rem . (open, close, and set stat. dw SYPUTC ; master system output-a-character routine ; dw CONGETC ; get-a-character from console: almost identical  be included in rem . each driver! rem . for the optional routines, an omitted routine should be rem . be marked by a rem . this driver. rem rem DRCONSOLE: rem dw .dummy ; the CONSOLE does not require or use an OPEN routine dw .dumm, but is so masked by INPUT. rem . The input byte should be returned in the rem . A register. rem . (No er rem rem the driver for $CONSOLE includes the routines used for SBASIC's rem . primary console I/O. rem . EXCEPT: progr  ; to master system getc...see below. dw 0 ; --reserved-- dw 0 ; --reserved-- rem rem rem end of driver table for $CO PUSH HL ; AGAIN, SYGETC DOES ITS OWN HOUSEKEEPING PUSH DE PUSH BC rem LD A,(MODRUN) ; FLAG: >0 IF A PROGRAM IS RUNNINGW CONGETC SIMPLY FALLS THRU TO SYGETC...SBASIC'S STANDARD GET-A-BYTE-FROM- rem . CONSOLE ROUTINE (SEE NOTE ABOVE ABOUT 'SET 14RE WHEN 1) CHARACTER IS READY OR 2) WHEN WE ARE NOT DOING TIMED INPUT rem CHARRDY: LD C,SYSRNE ; READ FROM CONSOLE WITH NOP BC ; RECOVER OUR OWN REGS... POP DE RET ;AND QUIT. rem rem rem**************************************************** MINOR TIMER (REG B == .TIME) HAS TIMED OUT...TICK OFF 1/10TH OF A SECOND rem rem DEC HL ; COUNT DOWN BY ONE LD (TIMER),NSOLE rem rem**************************************************************************** rem FORM rem rem start of dr! OR A JR Z,CHARRDY ; PROGRAM ENTRY...NO TIMED INPUT JP M,CHARRDY ; DIRECT STATEMENT EXECUTION...TO TIMING rem LD HL,(,1'). rem rem rem NOTE: SYGETC DOES SEVERAL THINGS IN ITS OWN WAY: NOT THE LEAST OF rem . WHICH IS HANDLING THE INPUT O ECHO CALL CDOS ; (BECAUSE SBASIC DOES ITS OWN SPECIAL ECHOING) LD (LASTCHAR),A ; HISTORICAL POP BC POP DE POP HL ************************ rem rem GET-A-CHARACTER rem rem rem CONGETC is specially designed to 'simulate' console I/O andHL ; AND PUT IT BACK FOR NEXT TIME LD A,H OR L ; AND CHECK ONCE AGAIN... CALL Z,ERTIME ; TIMER RAN OUT. GENERATE USER-TRiver routines: rem rem rem put-a-character rem SYPUTC: PUSH DE ; (NORMALLY NOT REQUIRED OF A DRIVER -- PUSH BC ; TIMER) LD A,H OR L ; CHECK CURRENT VALUE OF TIMER JR Z,CHARRDY ; THE TIMER IS ALREADY ZERO. MEANS ITS NOT ACTIVE. rem TIMER TIMEOUT. rem SYGETC: .TIME EQU 175 ; THIS IS THE FUNDAMENTAL WAIT-FOR-A-TENTH-OF-A-SECOND ; COUNTER VALUE...CHA; CLEAN UP OUR HOUSE RET ; AND BACK TO CALLER rem rem rem************************************************************* hence must fool rem . SBASIC's get-a-line routine into believing that it called SYGETC rem . directly instead of via $CONSOAPPABLE ; ERROR...NOTE THAT SYS(5) IS ALREADY SET TO 0 NOW ; SO FURTHER INPUTS WON'T BE TIMED. JR TIMED ; AND GO TRSYSTEM DRIVER IS AN EXCEPTION -- SAVES TIME LD A,(LASTCHAR) ; AND SPACE MANY PLACES TO HAVE IT DO ITS ; OWN HOUSEKEEPING. rem rem READY TO DO TIMED INPUT rem TIMED: LD B,.TIME rem SGCLOOP: ; WAIT LOOP CALL CHSTAT ; CHECK FOR CHARACTER RNGE THIS TO FIT YOUR SYSTEM ; IF YOU WISH (DIFFERENT MEMORY SPEEDS, DIFFERENT ; VERSION OF CDOS CAN AFFECT THIS). rem *************** rem rem CONSOLE SET STATUS ( SET CURSOR POSITION ) rem CONSET: EX AF,AF' ; GET COUNT OF PARAMETERS TO A RLE. rem CONGETC: LD A,(FLGECH) LD (MODECH),A LD A,0FFH LD (MODFIL),A ; GET-A-LINE IS PROPERLY FOOLED rem rem NOY FOR ANOTHER TIMER TICK rem rem**************************************************************************** rem rem TO HE) LD E,A ; CDOS EXPECTS THE CHARACTER HERE LD C,SYSPUTC ; SYSTEM CALL FOR PUTC CALL CDOS ; OUTPUT THE CHARACTER rem PEADY...SEE BELOW OR A JR NZ,CHARRDY ; STOP TIMING...A CHARACTER IS READY DJNZ SGCLOOP ; OTHERWISE KEEP WAITING rem rem EGISTER OR A ; IS COUNT ZERO? RET Z ; YES...SO WE DON'T DO A SET STATUS. NOTE THAT ; WE ARE RETURNING WITH A=0...IMPLYIN dw TUOPEN ; open a tuart port dw .dummy ; no CLOSE routine needed dw .dummy ; set status not supported dw 0 ; get sta driver >>> rem rem DRTUART -- this is a fairly complete driver for serial I/O via rem . a Cromemco TUART (or the serial (OCTUPLED BAUD RATE) MODE. DEC C DEC C ; BACK TO PRIMARY PORT ADDRESS rem rem DDLIST-SPECIFIED BAUD RATE HAS BEEN SET ION CALL CDOS ; ...FROM CDOS rem XOR A ; ENSURE THAT A=0 (NO ERROR ENCOUNTERED) RET ; AND BACK TO USER rem rem** ; THE DDLIST INTO OUR OWN PERSONAL EFCB! OR A ; DID THE DDLIST SPECIFY A DEFAULT BAUD RATE? JR Z,TUOP2 ; NO...LEAVE THEG ; THAT WE FOUND NO ERROR! rem LD E,0 ; ( IN CASE THERE IS NO SECOND PARAMETER ) rem LD D,(IY+EFCBS1) ; D REGISTERtus not legal dw TUPUTC ; put-a-character to TUART port dw TUGETC ; get-a-character from TUART port dw 0 ; --reserved--port of the 4FDC). rem rem FEATURES: rem . One driver may be used to access any TUART port. rem . The DDLIST may specify rem TUOP2: EX AF,AF' ; GET COUNT OF USER-SPECIFIED PARAMETERS OR A RET Z ; NONE SPECIFIED...SO WE ARE DONE WITH 'OPEN************************************************************************** rem rem THE FOLLWING ROUTINE IS REQUIRED BY SBASIC. BAUD RATE ALONE rem OUT (C),A ; SEND OUT BAUD RATE TO TUART...NOTE THAT ; THE DDLIST ENTRY IS EXPECTED TO CONTAIN  GETS LSB OF FIRST PARAMETER... ; NOTE THAT NO CHECK IS PERFORMED ; AS TO LEGALITY OF THE VALUE...SEE ; CDOS MANU dw 0 ; --reserved-- rem rem**************************************************************************** rem rem OPEN a a default baud rate (to 9600 baud) or rem . it may specify that the currently set baud rate remain rem . unchanged. rem' rem rem USER REQUESTED A SPECIAL BAUD RATE/COMMAND FOR THE TUART rem LD B,0 ; A DEFAULT VALUE: NO OCTUPLED BAUD RATE  IT IS THROUGH THIS rem . ROUTINE THAT SBASIC CHECKS FOR AN ESCAPE-KEY WHILE A PROGRAM rem . IS RUNNING. MODIFY AT YOUR OW ; THE CORRECT BIT PATTERN FOR THE DESIRED ; BAUD RATE !!! CAUTION !!! LD A,0 ; THIS IS A JUST-IN-CASE... INC C INCAL FOR SIDE-EFFECTS. CP 2 ; NOW CHECK: DID USER PASS A SECOND PARAMETER? JR NZ,CSET2; NO...SO WE USE THE ZERO IN E-REGISTER  TUART serial port rem TUOPEN: LD C,(IY+EFCBDD) ; THE FIRST BYTE OF THE DEVICE DEPENDENT INFO ; SPECIFIES THE TUART PO . The SBASIC user may override any baud rate specified via the DDLIST. rem DRTUART: ; the driver table comes first rem  CP 2 ; DID USER SPECIFY 2 PARAMETERS? JR NZ,TUOP3 ; NO...JUST ONE. LD B,(IY+EFCBS2) ; YES...RETRIEVE IT... TUOP3: INC N RISK! rem CHSTAT: LD C,SYSCRDY CALL CDOS ; WE LET CDOS DO ALL THE WORK! RET rem TITLE <<< a general-purpose TUART C ; WE ADDRESS PORT n2H...THE TUART COMMAND ; REGISTER OUT (C),A ; AND ENSURE THAT WE ARE NOT IN 'HIGH BAUD' ; AS PARM2 rem LD E,(IY+EFCBS2) ; AND THIS IS LSB OF SECOND PARAMETER. rem CSET2: LD C,SYSCRT ; REQUEST SPECIAL CRT FUNCTRT ADDRESS. LD A,(IY+EFCBDD+1) ; THE SECOND BYTE OF THE DEVICE DEPENDENT ; ENTRY...NOTE THAT SBASIC HAS MOVED IT FROM  C INC C OUT (C),B ; THE 2ND PARM (OR DEFAULT) IS THE TUART ; COMMAND REGISTER SPECIFIER! DEC C DEC C ; BACK TO T************************************************* rem rem PRINTER or LIST device --- "$LPT" from SBASIC rem rem*********** CHECK TUART STATUS PORT AND 040H ; IS DATA AVAILABLE YET? JR Z,TGCLOOP ; NO...WAIT FOR IT. rem INC C ; TO THE DATA PO**** rem rem PUNCH device -- "$PUNCH" rem rem**************************************************************************** S TUART AND 080H ; CHECK: IS TRANSMIT BUFFER EMPTY? JR Z,TPCLOOP ; NO...WE MUST WAIT FOR IT TO FINISH LAST ; CHARACTERPTOPEN: LD A,0CH ; THIS IS AN ASCII FORM FEED... CALL LPTPUTC ; ...WHICH WE OUTPUT EACH TIME THE PRINTER IS OPENED rem XHE BAUD-RATE PORT rem LD A,(IY+EFCBS1) ; GET USER-SPECIFIED BAUD RATE OUT (C),A ; AND NOW THE TUART BAUD RATE AND COMMAND***************************************************************** rem DRLPT: ; first, the driver address table rem dw LPTRT OF THIS TUART IN A,(C) ; GET THE BYTE RET ; AND QUIT. rem TITLE <<< INTERFACES TO CDOS READER,PUNCH, AND LIST DEVIrem DRPUNCH: ; the device address table rem dw .dummy ; no OPEN routine dw .dummy ; no CLOSE routine dw .dummy ; no SE TRANSMISSION. rem INC C ; TO THE DATA PORT OF THE TUART LD A,B ; SO THAT BYTE RETURNS STILL IN A OUT (C),A ; AND OUTOR A ; ZERO TO A RET ; ...SAYS THAT OPEN WAS SUCCESSFUL ! rem rem******************************************************** ARE ; COMPLETE! rem XOR A RET ; RETURN WITH NO ERROR INDICATION rem rem**************************************OPEN ; a simple open routine dw .dummy ; no CLOSE routine dw .dummy ; and no SET STATUS routine dw 0 ; GET STATUS is illegCES >>> rem rem These interfaces are simple. They support only rem . unidirectional I/O, do not allow any status passing,T STATUS routine dw 0 ; GET STATUS is illegal dw PUNPUTC ; output 1 character to punch dw 0 ; get-a-byte from punch is illPUT ONE BYTE TO TUART! RET rem rem rem**************************************************************************** rem ******************** rem LPTPUTC: LD E,A ; MOVE CHARACTER TO WHERE CDOS EXPECTS IT LD C,SYSLPT CALL CDOS ; AND OUTPUT ONE************************************** rem rem OUTPUT ONE CHARACTER TO TUART rem TUPUTC: LD C,(IY+EFCBDD) ; GET PORT ADDRal here dw LPTPUTC ; output 1 character to the printer dw 0 ; trying to get a character from a printer is illegal dw 0 ; - and (with the rem . exception of the printer driver) do nothing at OPEN or CLOSE time. rem rem***************************egal dw 0 ; --reserved-- dw 0 ; --reserved-- rem rem******************************************************************** rem INPUT ONE CHARACTER FROM TUART rem TUGETC: LD C,(IY+EFCBDD) ; THE PORT ADDRESS FROM EFCB rem TGCLOOP: IN A,(C) ; CHARACTER VIA CDOS RET ; AND THAT IS ALL rem rem************************************************************************ESS FROM EFCB (SEE TUOPEN) rem LD B,A ; SAVE BYTE TO BE OUTPUT HERE FOR NOW rem TPCLOOP: IN A,(C) ; GET STATUS OF THI-reserved-- dw 0 ; --reserved-- rem rem**************************************************************************** rem L ******** rem PUNPUTC: ; OUTPUT ONE CHARACTER TO PUNCH LD E,A ; WHERE CDOS EXPECTS THE CHARACTER LD C,SYSPUN CALL CDOS ; 2ZKUPDASeDhi-1PZKRETRSԠetUD- 1=M&ZKEYFVVR`UUi-fZKADDVbBBD4ZKALTAۀ头DHZKA`9ߧ @aN7~Ө f?MvK6,2Ͳ@Lڐ=1* G y~C+RVm`O evmmdhx9ͣ ,mserved-- dw 0 ; --reserved-- rem rem**************************************************************************** rem RDRGB+v,荚3@DZ7O*-6C4nߢ n~Lfhʹ/+"@]l3@KtG@W_ #fаhDvYOUTPUT VIA CDOS SYSTEM CALL RET rem rem rem**************************************************************************** LTVe5$TZKOPEN头DZKCLOSetUDhZKGETCetUD(pZKGETKetUE(ZKGETUDHZKLOADUUH8Z0dt3k+l2Y~-؀T!۸4d?,@t3h+@~"A#F~Q+BPjfѐdoPzOor3oETC: ; GET 1 BYTE FROM READER DEVICE LD C,SYSRDR CALL CDOS ; LET CDOS DO ALL THE WORK! RET rem rem*******************rxrmh`:P;٠M阢'wi uNg:yNwfP(f` %f#Ma+D~sT05 s]͵ mrem rem READER driver -- "$RDR" rem rem**************************************************************************** rem DKDELeUD0ZKALTC头DhZKALT1e$UE(&ZALTCRetUDKCLOSIUUhZKEYIUUZFKEY头DEi,2FOb\@Lٷ`i@D~%?JVmfU-ـE 3@8`@nvd uN'#+6ЀV@ ********************************************************* rem rem . END OF SBASIC DRIVERS...ADD YOUR OWN rem END d9fڐ 3mHfސ訴6Xt vVmrkHE<-c,RⒼ zVڰxY͡ @(` b@v,*ͮ@,:b͡@0RRDR: ; device driver address table rem dw .dummy ; no OPEN dw .dummy ; no CLOSE dw .dummy ; no SET STATUS dw 0 ; il7uRC>@@ 2n ,Y X`4@ڰ%wXw I@ ( <wR@ hfRP`bBBD4i-1QZKALTDSe5$Ti-=A:ZKALTOetUDhi-QZKGETBUetUE(i-RZKADDQ UUHi-b!u ?N0b_Vm~Y  -Vm[- en#=i,K4n٠#fR9[V荛PATZaͼ 8aͻ+67+pfِFr2t vt  bhxE@Y^`^D(?j( 4D9< f'[legal to GET STATUS dw 0 ; can't PUT a character to the reader dw RDRGETC ; get 1 character (byte) from reader dw 0 ; --reP wi`+`%w՗ l(t܀%(?;qAf݀~'0~\-W~?LKlԐ:]ohdoP~? @m~INԜ:/өI~JӡDN`{LN`{MfѐK69[6m f6f 6e??LKrDlڎpP&L>/?1@| fѰ{$@M1 @ Fhɦ Ip 2c0IQ%5pTKS52D3ShTKS61D3(pdKS84d4Ӄ KGr"Bc&jh084,mJzZf@  Uh.Kj(+[0P ub4f '!FJrZ id"''Fe@2jzeX()))FM**Zrd\&"#'Fv2Jr Lk5L(P@)) g!XF 3o{EeT(I*"A5`O#+ &`6Ҿj?lm´$~s Ww@T8H" Ob 0 9 þ$@2 T4H-MKSA86RN T4-M2KSA99 D3(-LKS23 D3S-LKS56͌`D3(-LKSAM80 44KSA00D!#;vK p0!8,mQc`6`L~tm F@]=P#x!~XDo+ ] !8 EYpg<~[K] M1 @`DQ_P@c#|NVt-ՄGŨ*Wm0@ >b!fX9C@dVB-Wtua60Xwuax@"xFVuoU1QUuh0f`d֐ b,-`(P KR TA+P%8 P2T AbB5ؕKSA11 T4(舕KSA13 T4HPKSA15 T4x蠕KSA18 T4耕KSA31T43(pKSA33T4#XȕKSA22 T4#KS;OtG~('܂oh TFi_Ld))& Fo**gp - ))Fu2bbfx"(FhA22bag" (Fl** bf"#'*q2*Zb*tg #P@M [N ;O h!n! F4?]{%Nݧ2PKvC<2h 1 Z1 8#co`mHs^@ @eQD iȓ63n*ͣm< `3mHSw4 H? !fܐ4IrCVp +v<blؘf`A81T4( KSA83T4HPKSA85T4h逕KSA87 T4KSA1AL T4H KS02D3(,KS14D3#8@DKS40ĵ3S"''%JjZ*eP))FQ@* :d8#(*&)e@2badh() &FKrz bde #(*&$s*r2zg&FIA2*2brle"# FM22b #fUW4Q%*b1\,-nA  :BDq $f+ \,ۺ=a_{$CHD6L3o{6D4xIrCV &3o0J*BAr$;m `3n[%HUumhC%W…gū hcB9Xt F|SҲ 7( h@;jSD#9 DWDo[ULĝb*h@@{Vdipc22YP1p,ڨfؠX:T`H3oz*C$$W"*f$*L:Lے*BGū k@kULă"*$Q'XdEMDm` #ω V,LuQDͼ,*hXʼn5I|ʲc$2l;ͥ`+*:B$aXp8nHKʅXegٶ-élڢfPaͤIo4Io4IoVmw z06^K"9@<1.ݒ*EY"c 60m f@Uf:Xq6m3eQpG ͪ m fHeͪ  H9guQ*$fCW(%Ug1ɒͪA3T!  d(6b3%TQ#x)jed< |,@[6ք `$EP#m aR@ (V+ap'+b`}TLH l0śgYUp aUP& uD l:HpG̵$CI6,L3oxꉉ4IwC*pn`^ رf$rh@@;hcELĜ,+3hHc63hcf ͵AS1'[T2S'[6 [6j`36 Cb 06'1ɛkBF$~{H X069ͰUf׀6YP1ͱA (f@U@uh%kBD4I,TQ%*3iX3 (E˜ 8S!6䄫,"ͪG!ͱA (d6Ta^Y1 Cٴ\)͵%V+Y5G.U ukk$fK6۸Qa'X :ٴx,CNDbf$fH HX :ٶ ULā"*|$f@[6D |ٷ)^fӀe dh34 H ٷ)ͰˀfPf%8 `3n@C%R#p"$~s7;"!G簀:Kv0VHMIY-jE%e[ G$͵$0<=[$%@جے,(S&Cj;='xH/ v$ 08 .6O, E8fЁ#Y-!G3͵!LUB0 ;ژ j@`mTQ&m h 6UInB4H3o{$ULĝb<$T!  Qa!Q!upT uQD.fЖm WY$T`H@˭kBc$$g@@|l+,V '0$_  Pe͵ K66$Bh EnPE͠b X:TH2b]b 36HU>a[62D4 Hٶ$z³xV)r{J؃ 8_63܃1D4I|ڼ@Z~`v(rB]b$j` 68D6D4 H 24-!G2ͧLU@>-XT0|[Egū 60DͪNm WEUHaV nri0l3oZͱAVm Q"xuo{$uQD 2Blڨf62 l* Ё#@ʮ($͢ ͧa *N ͡ LՒ0W\ : ͣ ?=vm ٷ$%!b`} HUP4HeXVfրX _X DU)ZHٱ6m !UrʱA $>X<`U a  dh@dzh@;Y#$GfԠUQ"Xu66uA4lI ڲc*0$!TdH"B"$~{:lQ![ ڨcʈ ݕeϖ/,$|ZDVXj$Q"8i|µA0g,KTB9>Oi[ˬR<,XV MhYe]U>uY=eB]b*x$=,T$CBbwfffАmm WY1a0mT0IE,m ?0N);O,+6ԅ0X SrB]b$Q!"88 fif` E$C`l(6(66L3o{pЁ'{ D ͤajh66kvK6 |mT u62^UyFw/K XW<1>8Y/V+  ¼a Œj3o{ ¦`RݒͰ ,m `ʩ@ aހFm< TA!ʢ (66L3oz$!Gýڪ ͤJ ͼL:*NVm f 6T IP' 9ETXHMpT(I*Ld@P'3eB,*Qa"!5S'X 3ozͱAU5Q"x;KMfІ n|d"$"@(} UFD.UfՖQ1%*ݕeٵ|)*L Ҳlھ|Zþl¾b $ͪ+TA!,eMĄ4xIo4Io4Iot0CIę1wC4Q"X!.U Q!"88 r2qh4u,h;Z5eUP ?9`CwfCf6酲YDuQD% a1 f!5<,YU%}4 ^`F  +`- %bT0 4 `V xZ.KTuF` Y"B$C8(ͮ!   ;H l0 3kkCa4xHB*$_X9ͩ@ U>u2P'X VU /TXDFaAm d۬"YA1Q!upfԠU Q"X ИꂉYU8D3o{UTbBBDU%(%=IJXERRORQTԠdU%$4xII%>ERRORXT TU$dHII9=ERNDSKTTdU%$t(IA%MjERRXXT dU%$dHIU9 "!@*,dUCb $rY=h[ §aK" Ft& =m{ʮHdmW]`6܇.VmW2Z,<3oz:bDppidحP !baN$>Y1eY45< l; hYx5j͉egX?M+&:bb $a( .P0?.TБ@2 Q @Me:2 T  Q22 L!@M.2 Lc!UM&2 e`c620±b,"±".Uu ڔ1UEeWQ_X9ͩ@ uY"(&".UuڔºB,"º.Uu ڔ1W Ee\1QERRDIMT`dU%55dI9MMERDUPETS dU$5IINERBACKQT`dU%$T8II=ZERFNFT`dU$dHI=BERFNOPTS`dU 3m{ʳJݒjB#h 6AvmW\V82VMuVLlsWdާԙ3Z'%*ns9R0$2B|$"L".UuڔQ'X ]b$Q"x;":D0}b(}l5X &@=fېU+U8|[Xs*x`suk{ͪ |[ETI#`U60TIKd 06vK60T@H*S2)HE"'TYTT֠dU$$DI191:ERTIMEQՑTTU$HI-1:ERRECSTdU$IQeBERECOMT`dU%U4XIAIJERNOPRTSTU$&3(uY)ͤ mjfaK60óah3l#6EVPLEETHEGT`HeADb$3(FGTlHeA` e*.' *A2a[{%rAfp mT@I 2Lۼ>f# $GPa'+^.(r:DqUrY=`D C#0ͱ hAUQ PUTCUeUE4UAUQ1%:PUTCRU  eUDUAUQMBPUTQTUDtUD8 !AUQGETSEQUSTDT45  BGETNACӐPdtn7St0ae3i:>TԖ#-Ib:TQTU#`9II9=:&U9D0n2LƓq 6MQb2 B)MeΆ@i6Fl< Sd3iTt:Mok  e9Ly@d2 C)@lP*V)7/dp@tM->FmaԐ)o9 @l4Z-(D2&3(/'K)I e9 )MC ͤ ͤ Ia6LI8U*I' @63I󠀈I&M3Ie2n7@s:NSit3i: QTӕ`AUQ ;U !AUQ;UTcAUQ1%:;PTUԣ!@o8Mm!B&(o: )ͤ R1ef1 n7΂yn&(H@xi6D3e3i i6Dy 2FH@$3 o:T 9II :TT9IA%Mj;&QT#9II9aR;T#`9IU9;TSc9II=V:DTՐc YI9MM:TTcYI14m!  $u6f6 7St4ͻ0=0&00z dL;:2 1H nx`C,[6a+@a % % M@!3@STUĕ5H1%91&LISTENST`eUD1%N:VT#1%91&:TS19U5MV:USc1%Nj-f 8SU2HORN1RԓTTHi1=PWRLOGV TdX$$$PWRUu#ZPWR2deD$XMVTOR2deD#8MVTOR1deTTFUNADDTc 1i =:2QT#/ UA1 Jphx4f 0 *$q@T'dyL e2 4@F$I8@Ai,A& ePMADb PLJE"yH\  eUDĔPSYSERRe5D7peUЁ(F6D| d@%G& EG P5(PIU РW @\t.#F f {A`bBBD4- 1=M&ZKADDVVVR`UUhi%-fZFKEYSԠUDHi-1PZKALTASeDHi-1QZKALTOSe48i- ISSe44M 9%RSCANLBTe445HM 91&COPTBLTTe4U$$MII:NAME1VTeĕ8iAI=QSETCHKeUDideTTHORN1T$(HQUOTExPWRLOGEUFMONEK@ d#'$STbBBE5(iMEJ: THʠERFNISQ`bBBDTDi%REDITMOSd4tHi%9QRSTNUbBBDTDZEDITdTDDZCHANGd4tHZFINDe }]pрfvh6 68 n ͵ n @  %W &mxP Kq@ Yu!*Vb%h xi@KZKDELVU etUD(i-QZKGETFUetUE(i-1=ZKOPENVU e$UE(i-UAZKGETAbBBD4KCLOSIeDEhZKEY1IZDELETS`bBBE5SCANNLe44HSCANLBd%U44(SCANSTe44ĘCOPTBLU5Dt(SERLBLU4U%$NAME1iMEJj-f 8SbBBEE$xiM%:ZCOSSED$$$TRGE4ZCOSEDZATNK@d#'$S%5DYF@@**2rLST`bBBEU4Y Q>GETFCTSUM&:PQ:TS`hH3SQb =,m8 t?#305STb%h @%P 'p Gl`C rxY.QRfZpc?MQ%9%R2TQT- AIQ =:IUUhZIKEYUdUZALTCRUDHZKALT1eDZKALTCeDHZKALTFeDZKALTVe48ZKCRUd(ZNOLISe$DXSETCHKd4$ZAUTOLeDT$XZDELETdDT5D$$$SYNK@`4TU$dZBYE bBBE55HiaA:ZVALCVV UDDXiQ%5: #iaA::VSi!`:VUciQ%5j-f 8ԐS`bBBE$BBETdi9I: Qi9Ij-f 8SԠbBBEu(iA]HZPWR2Uԑ`deD#(5YQ=HMVTOR1SUS deTDHU9A2S#3MQJ3VU1MeAUQ3\Pc?iQ2QU$i5634P4Me123S#9AA=A123c=AI=5AR2ZEAUDTZKGETetUD(ZKGETCetUDhZKGETKetUE(ZKLOADeTZKPUTe$UE(ZKUPDAetUD I =R: ScI =Rj8DXiQ%5: #iaA::VSi!`:VUciQ%5j-f 8ԐS`bBBE$dtUD5QUGETNCSPd4EX-MIJ: T@%=IJ:Tԣ II=J;TTII%>;TԖ# Ib:QTU#9II9=ERRDIMT`dU%55dI9MMERDUPETS dU$5IINERBACKQT`dU%$T8II=ZERFNFT`dU$dHI=BERFNOPTS`~^q "|G1GHͲ`B|$fҐ&I"F 0I B f 6ͤ Fm!iH@ B fc6Y@9IQeB:TPc@9IQ =6;TTc@9IAIJ:T9I9=5>;tQTӕ`5AUQ :RU Y !AUQ:lUTcYAUQ1%::TUԣ:T9II :TT`9IA%Mj:.QT#`9II9aR:>T#9IU9:FTSc9II=V:VTՐc9I9MM:fTTc9IdU$dI9=NERFLMDQTV dU$d$HI1]JERFPOST dU$4I!bERBOVTTdU$$uhIU%:ERXSINTS`dU$de(II9ERͤ m!3hxEH@(ͤ Vm! 3i]H@ BGfC6Yͤ 6m!2iH@ Bf6 ٴͤ Vm!C3iH@ BfS6"YAUP!b:UV#`UAUQMB;6TUU#Y !Q;@U@Y !AUQ;rUTcYQ1%:;vQP#`m B;UPq9;U#uQ1 2:T#@1IIN:|TP5I9&:TS9II=Z:QT9I196:TS#9I=B:T#9I9U6;T#9DATYTT֠dU$$DI191:ERTIMEQՑTTU$HI-1:ERRECSTdU$IQeBERECOMT`dU%U4XIAIJERNOPRTSTUٴͤ m!G3i=H@ Bf6$ٴ(͡ m!di)H@lBfk63͡ m!hiIH@LB_@A$!@!z7&U;QUQIe9;Tc`-MIJjH -#@kC``$-B 2"Aݕ`#dn5f n n('pf I9=N;TQ#5Ib;$T#9I1]J;4T9I9= ";DT5I!b;QTգ9II;TTգ@5IU%:;TS@9$hAUQ PUTCUeUE4UAUQ1%:PUTCRU  eUDUAUQMBPUTQTUDtUD8 !AUQGETSEQUSTDT45  BGETNACӐP O$ C6ERRORXT TU$dHII9=ERNDSKTTdU%$t(IA%MjERRXXT dU%$dHIU9! ڊ?-1_BiLV 4N#ʿo@6 `&ha0 "Q@`jTYD%PfmPO\`ڊͪBh "I9%6;TՔ5II9;TUc9I95Mj:TQ#@9I191:;TSQc@5=YJ;LQTS#@9I-1:;\TP@9I9=Q.;lTӓ# mxat81ᄳ| fҐ'$|"aҐ!ѐa 0GKstdٶ# =D&ZLtd-TP tL-TP Bj p)MuT 0P @Iox4 !)4O DLR*ʅR !Jde9&p`3X1@i9aR3S#2iI3$T2iIQUJ3,Q3iI34VS#3i !>3<P#4iM3DT4iQI 3Lc5i5Hiћ`<}J JS=:2 Vӣ!i1 =:2֔ӣ! i:2US#" iJ2$VU c"iIP2,#i 224֑#iI 2<U#$ i2DQ$iI1=` ѼL#O*B1z }ck$tb-6hͪL;!6dP8ʹNc(?(BK("'lP^] t(0c66 Q p<&sA@(1Dn, G#qȀr7LX $b@  "0J.: \Q`& bj99:3@/@@`R3T֓ӣ5iMe:3\S6iaab3d#6i QJ3l5qi e3tU#7i=UR3|Vc8iIU:3VS8i 1=M3U#9БQbBBD$Tx I=5 BCROMWSTdDdՄ81ADFLTABPTDd%81QeBSYLDEL e54DŘ1 fDFLBSEPQSd$Tt8 B2LVP#%i1 22TVӣ%i =A22\c9@9iU92pUSc'@i!b2x֓#' iIB2SPc(@iM5&2S(i M1M"2֓#)@\,k꿁% 63@V (0KqD|\fڠ&mPKq 8Xwta-da3m`@`[lãnQR++@nKśtޯX6Aқ",O9\!l÷PN!ɥ PB&Db)HI'0D'4?AQp#x"T`"TdH0Ȍ $I@S`p iR3ԑPU#9iI963SU#:i1%MR3VUc:i1=3TTc;i9QJ3;i%5=3ѓS#<@i15=3֑<i1M%9:ZSCR TUD$$$$BEGd5$%xCROMWSeDDĕ8DFLMXCdDdxDFLTABE5%8DFLBSdDdESYLDELdD iR2֑Tc)iMQ=I2*@ i92֓c* i2L+@i5U1R2VT+i =9 2RST,@i%Z2VԌc,iA]H2֓ԣ-@idoaDZ h #+@n(8?(4? `8 ?Cc8?c08 v+łr7+6DJj)*p i Jiњ _QQ`-LBM@Fm )EAOX-ݤ!ݛC-B 09B0"0F @#@!!F@`[JGջ *X6@Y@|pn 7 3S#=@i 1J3VT=iaA:3VU'9iI9U62|ӣ(9iUQ=22T(9i1I2T)5i%R2S)5i%92dDSYCDLYdDd4EDFLBSET$TtBEGINS$TtZSCRbBBBBBHEXTBLK@92ԣ-i9=R2VSRS.@i%51R2Sc.i%62S#/@iM!=IR2Vӑ/i=J3P0@i=Q>3֒Q0i%9AUR3U#<j*Q*4k* q`,H誈q,I 8Hk)<r )< I xȈf42 HPCWt  F"- 4hڰӨt?Fp 4 FpF04a A i=22VPӣ iM  S#+@5iMQ=B2SPc,5iQ2Q/-iQ>2VT#/9iUM%92֑0@5iQ!:3Tԣ09iM IAR3VS15ia3Uc2AhdADb<:ABP:ADbI8:AD" @E"J R ʄRH R ;Jh0l#p y[h£` @W Y@x@fk42U 9i-Q.2U!9i-1=3S"5i-AUR2DԑU#@9i-UA2c,9i9AJ2T)1iUM2Sc-@9i92R.l;*6ٵPf +Fx[ @aY!Q-AmfVm ! " Y@ 0Xf 1i N30S#3@1iaB3831iI93@T4@1iMEJ3Hӣ41iM%:3P5@1iQ:3XU51iI3`P6@1iMA3hc61iMeN3p[æmtfD9 1n( 6hPo 4 X!` í@ n­@` lDlcp23 0Z0]"2SS#-9iIA2PVS#&i =A42dL#19iaAI=2XVVU#%@9i1% I2\V$9i-Q2`S:9i %9MV3VS*9iIKٶB@1QT"\" DU@6h#.bݒ!6J6̀2W x?wnPw! ͺ"fH͠`L;wɉʩj,S#7@5iA.3SS99i %9=J3S:@9i%=MQ3Tԣ;1i5%:3PV#<@1iA=N3S<1iJ3S#=@1iMQJ3T=1i !J3^27+u?[ptF=Eb! c@`n |Pf@&jfiMv̀6h!` nͰ! &`3ݔ 6mY@f&hͷ@OfQIf2VT#&9iI943VUc;@5iQ%52SU#5@yAUQ1%:3S3I 3F T6=A83t Uc?9MeMIJ3 Q#8`ID)Jj`* q,誉)ѝP*hh)ɉ1p,chh)j,i j* oI0,VV #?9i9I3xVTc&@9i-Z3SQ#>5i-e&3VVQ>5i%-f3VVc.@9i  >2S"@Y1%MR2(TT>i1Q J2 ͤ.m 9F62 62H 0ٴTSAݤ3` CBhJ@O0nʭ!Cݥ1 ڰ0mf؀mT<-V@|c! ^2` @U Q`bBBDTDi%REDITMOSd4tHi%9QRSTNUbBBDTDZEDITdTDDZCHANG4tH ZFINDe%5DYH-U9%93 SSc9 M 9MR2P#.1552< QSg @ i jQ, j@*eVHhq,8VQ#$9i-1P2(Sc#9i-1Q2,S##9i-1Q3S#9i-1QZ3>@i- I2$VS#!@5i-R2U @9i-QY@Vmf۠'@rmHf0 }@CpT( @fmyd7L! ۸ͩ@..Vt3ۮV;5pۜrB  (ͮkv xk !k_#( >3m` Dc2A <3hXb\B(?K(@ M l`!p0h\,訴~Op|fѓ`K@z l۶>a&h!#4Lڤͥ TB3j67\dpK2#3ґdoH Df3@fm2tPf0P$Cz@ 062EBPͨ`6kH+d,l"_"R EpÍB4 [*+$W)Jb@YUc i1=;Q#@i1=;XSRS9=UQMV;RSc@911 1>;PS@Y 1=M V:lVc@Yi 1=M:VUUiQ; P" ^ͧl8 `8[,ͨ۲٠PDf@0fGxn@23"% b[WzZPCe*[.˅xA u`\lmE`5~H͵/ͯ aS6'訴@Lͫ ͨQh*1 d43j hd-f Pa$ ٷ {4ͽE+ ݘf`6i d3l(f*-L`DF C6 |ͦ@Lf՛f@ 10U^2@: mA^l ܧ (9_fR77^ ]K>@82 `0`,ޠ{ I]vAh.6?Ow0 ~l@Yi M1M";#yi M1::S# y)AQ=!2:Uc ui=A:;8Scy=A8;QTc`u9=MV;SP@y%196: 363np 84tͮڊͻ ~a]vAG땚?\/ӸIn(3np#3@m]dF6m]d_WD ,+[U4dXi1=ZZLOADQ ddT=UQMVINFSUST48 1=M VCLOSIY`UUD8iQBLDFN e%4i M1:.aV!xF^dhGI@hEv! j(5^?-0k^ۧF ,7DlVh dg0YP;W!h~s (gA Aux[h'@`ۊX`ڰxY(f b@f݀ `ͪ@3f0fӠ pͪ@Sf^;ߧq- ~muOmf`u{%^ĕmv~v%fPFmP̩ںdY`rs2?LwF@=6?ߣ`t?NK6‚S#A=A12: TЕQ5%2; ђS# IM %2; QQ I ; SSciI94:6 ԑPU#iQQJ:l TTciM.; ͨ`ڰf0PUP[6mf0ͰKv%4 [-x%PAhp 3@L,چ  @2Y@B%6-ؔ0CALLDD dtUDDDi=A:FOPEN1STd5X9=MVFNMLIBSS`e4A=A12SSBUFPQS eu44dIM %2ADRBUFQРeȠy[hb6&m\- ۢ0cA٠p`D/%^,Rx `fczј2Am~P6mfhf *fh!,bPT*#J`R)C$v0 &ALV" Ɠa@* !FPfp'~A/Ӏ)sN@!f?M?Y`r3Ђ3np#6W,Ff_Pg$b0AnoѨD@zO帠 Ͱh3fGa[Ұ^H8o#X$` YbVXQTi%=MQ: T`%M-=B; T#%M-MB;T#%M-A:NT5=1=:UѐУM.j -[ vc[,?@" QO @x+Tʵ`0<~Ah: fװpe1,0 "JdK3@H,f3_#P%[$TiI94ZCREATVUeU$4XiM.ZDIRS`dD4E(%M-=BDISKCLT dD4u%M-ADISKGCS`dDd4(M.:6Vf܀7d\W 80;f pda@P ~@oӀͭڊ>3k݈3j#$|fߠ1!^FP%^Ϳ@cS6`&J=Y eXe@=W@~-ؖ_mvrY,9ٷdf@ͻ 4 ?ٖP0pN7+6Y8|JN02auy_-@ ~>3@H,6dE8T  Gi}Q!SNA 05}\&+6HBR*V@U Um 5+qHt?Gl Sܐ(j`?&P2tF?&C 8, fD3jh6Ё a,8sƀ[ J!g DZAz(hAɨ^Vt `&#Fmjzf#(*&p͖:e*HKMKWc3 I1]J3 VQSS#>aMaB3 S* I%9Y2L QT$Ib2f Tє%I152fT#9I9=!h+qj 1!fm^<3l`J:d ,?Y@µ* :!djÿ'Pf@& L|ãCn(Exɤ MP#(MP 3jh«*`b&B`D0r%m0RL@"ݙD&a0604EC0C$t @FB3, US4AUQ3 TUԣ)AUQMF2z S#(II3TSc= I9=B2T,5YQ=IN2USUS#/9M 9MR2UTc.9MQ%9ێ:eqy!|-fP#kW a6^m/&S@In(oa*`b&!6L#%Abn! C[K]p@lvm0%TAPM ɦW@A<-0 t?C@t?2݉Q@C0 AQT~T 3mPd2æn:iA1 EDi%9QMRZSHORTVӑT8 i>ZDOENDSTUT4X=%2ADVNSTQVTTUHaMREXOPSe%THAI=9ZCON%R3vSU#(`YI9 1>3:Tc-yaaB2NTS#-`yAU11&2QTգ5@Yi1%N3c8MY UI63PT"915=2JQSPc+95Ͳ A@L x~B:ݐ /B op\h@  6p ^#$|0#̐!2CHx!%K2**Vh a{.QD!Y|f?qT w4Dd#xH@B` x1LG4q@:h2i#&HlNқPUtDiIQUJZIF֓ӠeU44EM 2QESCGOTQTeE$5T(aaBEXSEXPQVV dUUaa@ZFORѓԕ`Ttd䕈1 %bGFNINAT`bBBEU4Y Q>GETFCTSUM&;BP㩠uQ:TS淀r荚3@ݘ?(Xnġ` S`$ C& #f =a2Ր#.@91 UI622c/IU9%9&3`P 9Q=AQ 2TSc%@yI-=923g F@2*š*„d#(*&)P*2jd"(FN*Tf@&FP򂪢*d(*!Yj2bft# "F}@bzd ))FQ@ꂪf#(* S`Tu4$E1 MQBZLETSSU UUH=  .PSHCDTU4%8A UMVPSHEXPU%8A=A9MOVPOPTT dDUYIS!4x[,~F-@lr3H nۧ>~p0>-E B,Q`Qd-nPJRG6h@n:QbIfTe$4XtZUSEĔ%$HlZLIBdDU8nSERLIBdDTH^LDMEMADD8^SVMEMA5dD(fLDCURM5d5U$XfLDBOt20#8dDEF C`-ݥ'[dT;I``BhK`dFffe@ip_ [JM(FdA`Ȍ0Kv>-Y K@ZGOSUBUtDZRETURhhZONU44PQESCGLU44tpQERGOE$5T(0.EXAEXPU4U0-EXEXPUUH.EXEX ! ͨ 0L&fwݐ@CH@~?"tFO5 ʬM F dYWh +a&( oͰp[aBSTEXPV dTUMI596ZENDDOВԑ`dE$TIQ=2ZUNTILS`eTEtiIAZENDPRVeT8i 12ZERRPRVVUBB~Ө rD& C6<_A@4Tb;KfBR6n`.$v @ EV?K1QuY# bDY" :,eQTH5d$D6GSLBLRT4$(HeCLRRSe%T&CHINITe5DHZBEGCOTD4P^ATOPTBe$UE%&VARINIեU48^ZLNQXpLG-kwiH` Kf@eF?IsPٵín eHA H A P( 8@bD]Aɪ,cP2ʄŤd(NGFORVATtd䕈5GLBIXكdtd6GLBINATu4$x>QLBSTPŤUH>ZIMLETUUH>GOBACK44H>PSHVAR7DmtF?tF?A@/A*xYWh p@!tF?3 +63/#92D!Pa:1+4p 7m:Ga e$4XiUMZLIBRAPdDUMI1% DELMODQSP`dDDMY55SVMODAT`e5d5U$1 =Q"SVBOTHT4$( 1IINRU- wiHD[#" :,*`d  1*8! *"р͹" tAA puBa1YM _Qb_1OCAL4T(pNLDSPCEbBBD5DɨtC` >C LB`%@mpf7DmtF?@7\ 3  rl0+4 d @` #n*?B  v83*?̪  /20`>H3p(? a38?ͪ ͼ`# f fcz4%8`>PBUFSU4U>PSHBRS%88EPOPNFdeFERNESTdDUFVAREXP̄U5DUxFLBLEXPdTUNSERMNM n+Y Ar.0DTXwt-k T`>3@Plmaհ!P%Kwi ', ς8&X70Pp(ͭ.HT`@NINISU e5DHi  >ZENDCOUe$UE%YI%9&ZPUSHS e4T(1MA $$$CTLED(ZINTSTe4%HhZLONGd+B@3m#tD!7Dmp#?7G@ :R@ y@XT( l kx4 SBQd B`"K31t~Hn7 ͽӈp9LFH8C!ИG~Ngw Y F#v)#? qq Kt⠠O MtF/6X ˬT>gǂ9x\1/H`vb1!ơ6iKJ3՘9_@P egi,b.٠P0es0(zYDf 9< h] x٠!g@ [ [Df_&x@ #&|?M `j` i )lʪ i PlKI(,k(誈ql ȱ *jQ|cJnۥ`tF*a+u?`)%$V+ "r>< @1$N( ڰ`V)8FFef+u,PBa%~VACnۢ6nf- k6_ fPK6OP f!tC6m ?L åͫ?q@A"d? m <0nY%nۢ6荰͢ çb0!;a\ D1 ^2B t  @6K6;tF/6X ȌF `Ͱd@ 0,X+OJ,"- 6FLͧ!wP p3ii< [)kdlM&hͩ! XCFC@lh&PN%lp!N#~VnҘDb 2``ڰYv@#  pO0`P~`@D!l~? 07HRT.C!$2Ct(BFK6 JQhȪHH(iq ȪIjP iJF iȪI QܚȪJ H*Q܌ i`@T 3@0Db32ٶ"o8HDnͼ#8.ͳՀanٶp6*3B6?‡~"I䠀"3,ڔͶ`"hjͿ!j2< Dlͨ䘠 J1+C6`28\ b8 DIf @ vȈ[HBK63jc6`18ú r@`1Q l`XՃqnK6?#'7X `NMn! b "1wTf Yv|db0[HBb;{3@4fpm nU@3\nۢ6荒8_Pf v >L2" ܯ [Fn!d 6hoѰn\. v,t `fڠXՃ%j `v# ͸om d!fз՛u!K՛j"6Y,#+3}g!si+1܂ ȪI0܈ I@/ȪH*HђȪHi鱑g 誈q܎ ȉ*ijj`܊8Db1_Db Df1Yvc+%(bm tF?6eh`WZP]V@ad8ͳmG!ͷ`,ڬ:`c6.E͠ GAٴPt6-؀[ nķ̖B' H7O81# 6ٵ(=lD ՛~Bð!0| (J3k*h#0 ! }C`3k@EH@ t3mYbrZWXՃ ,l@`ڰ[C`I$[`Z/HvD %*!ݥ dm d=H+6\S61*1!n)12Qf`qp~?{tFͮ+[ғ:Y-20B !  FMDSUe$E5XFFMULTddD(xFMLRT0dddT(ZDIVفUDdHHFBDIVDdE4UE8UDIVdD%3(FFDIVDd4@|@|[$ceOaXS[nՀmS\! `"9EK`!FNpSy|83V0cc[. orKk!^O BA. #2E`C3+0LdDj+ @*# E<';d@ AИGeA.OvA V;6K65]lۆĭ /md@XW@FFCOMPde4%CLRR0de44ZCONCAbBBD$&SLOTFId%D$xp&INTARG݂e4U%d(&MSERVA4D4,1[ h=АL`e5E5DiMQFZMATRSTTde5T(%MU ZPLUSQPQ UTHFFADDXUS UTTH5MVFRNDSUUS ddD(51IPFFM!Xl ld+cp9GhpVAD! 2 B`V@M ì@B  Lh2@ɖ'#xì\cm %aL 2ì,6=a\ՒGu@Y͠-V+BAh2xF۴R`@, p6|R`@\ iV}\# n2Z$vm< ۾(YQed$ThU::QU:k-@eX+@n#+:ݤ#b1~qF#(+k +eXfvƠ1P1艄/n0C6mbAS-b |`ݤ!K` 1"% 6xJ荺#A+4f NHGXߤ`k <,YULRUUDdH %YMDSETSQUdD%3(%YFCOMPT de4 1IHFSCOMPӐ`bBBD$M1=Q&BYTARGSTe4U%d(|eE's[GBrY|[HN^(< 0yREa 6|fӐFb(b8` zYIP~vCڡUuU0@H0> !dYbk:vm#Omb%q`@,H!$0%O6@/l -X` rA Ryf԰Cen(Xv86!\j°dg( 6hj\'0#/P 9p< vC05x mdcdf f ,l@h04xh ـ3m͵ wi),;Ϳ ;ͺ 5MIYSMATCHe5E5DZSTEQEHZMINUSڀTde5T(8FISUBUU8FIADDUTHFFADDddDEFBMULTTTHH|0{p0jD`@\;- %3@4fFhf`AR#~[@&Jd*Hh rFhNl\ ('%rLmt @r@f&63iX63kրR":Fmx?;vm|u73>O5 ͱ `GqWdè"9Z@ڰ-HD ;! a! `$0 fP3lpEP͡ >3ip C#P ͯBͲ` -Bc@АLe5D$XMQ=JAISTORԓS U55D(MMQ=I2STRLADԠe5E(iM IARSTRALZQ`Ee$XiA=-ZOUTTE58iA.ZINP_5P|fP&aGD!$ÐPYa$d@A acD:$!N)eqaA2* ` F$p ’" $@Θ E8F *4 $Dh6ͯ 57]l25lͷ@c@"#@dj:ٵq@ #6ͳ ?1*X63)( d3 &c#6>U E%8i%9RZFRA`E4t=9FZEROQӑ`ED(iMAZIRNVSRSETx9FINEG ETiY1):ZVALE4(iԠUu#iA]HMVTOREUԌdeD#85YQ=HFUNMULSQ deTT!=I8HORN2RUS ExA]I1=ZEXPQSӑ`bBBEu(ZPWR1EI2@#29nP!)$"Bi:d C !(APNH"v`  cE U n1 #b R$$!F#pA% IB@d% )$# MZADRTԠEi5%:ZXOR 5(i9FUNRT0S `5Ui9ZNE֑ 5H i1ZGESSe$(i %9a>ZPOSV̠e$U480ZTRACEeE$ZSYNe5ZXXXeZCTRe5E(8=ZTYPEeDXZSFMODedHZDATAeDT5E(0ZSCRPTe5E$Ũ ,ZBYEŤe$X-ZPOKEŤUH8.TWOARGť580-ZPEEKŤ.ZSETSTςŤ%8,ZINTŤe$,FFRAUH`ZGET%U$T~BUPLBRU$5$P^CVBD16bBBD$)(|Lxa> <@'YP%^ dd2U2 #a>e44AM!96PSHOPT deT4iI9ZRENUMTddDD5=Y1SERDATVPQ TddH1BFDSLPQT ddDt%2FNORM4PSHNAM4XUPSHOPeT4 ZRAND$TTZRESTOddDD MOVLCe4U$DH0ZREADddH MFDALPdE4Hi %9MVFDSLP2QE$Hi !>ZNOECHTeU48iQI ZNOTRASe5iaabZNOXXXe5E(iQeAZIMODEѓS eddZREMU5D@ZENDUt$(ZALABEU$UEXpRETCɀE$UDRETZ΀U$UD8RETNZdDhLDHLINـDD8DAM2E4tp5FFONETeU$5FXONEED(4ZSPCE$5ZUMINȃETx5FFNEGӃTdTx4ZRNDŤT(>ZVALJNťdZNEWST֐QEc( iMZABOPS E$i1 =:ZSETALeUu5HZAFEc(ZSFU$ZRELOPE$ZLCONe4UDZCOPALe4DXZXALBeDDZXDEFeTDXCZLE5tXFZBINANe$(HFZBINXOE8EZPOS2e$HFZBINSUdE4(ZDEGE$HHZECHOeT4ZESCe[;70 g1ɒ#/YB$T]aFy@b3lE%+? 1YV".è.hsG07 71dv#U EUHiRBUPRELTU$5$ Y $$$BA2Ձe5D$XASTORd5D(xSROUND55D(8SSTORL5E$H(STRLSR#vGETDIGe$4DHhvPRTCONdDT4480tPOUT$H(~PRTLBLӇ%D$((~BUPLBLTDU(ESCKEYe$HZINPUTES e4DXia1 ZXDATAVQeTDXi!bZLP֔ e4iM5&ZEOSL e4iaAI=ZTOVT 5diQ!:ZERRORSQZHEX5ZRPe4ZSEMIET8ZCOPM0e4ZXPROC5DZSTEP5dZTHENeU%$(ZUNDEFe4$ x %6L6mfyFhr@+TVT.@` \8X'Ũ ~sq 4ff +V * 7J'ۢ6荺#nۧ@ 7 *} Xu-QB)@#60 [6҅7)8(iٶ$(&,:ͨA6ùs]ۢ% CmAܣx z!WƯbf xC dOk\JܰRƂĠ9LmE fзPe"3n?;Hq; ** !QB-PBY,ڊC6[O?9bX(@`%zX?2##ڥXF#b" T\ \2FB`,N= gh?J`@csٶ-#"@`3#x\8OnՃ?Nb3a>EPV+,z!6_c ~Ѐ_XD"@',u]kwi A"P~/p!#~جm?EB ea F}\q@yZpPbݤ"(D? p Ⰳ`+['w$F6D ,(v "1@Vdp+  :4a~l0B2;MⰃ!Dg!Fqd@P<|Z,"v 6  +UjK`t2 r[RB( K"D a\!  !AtT.} cVC4}\wY_B 5d3nH; w3mQ=vHm <  s*0B§ :pͨDm <36ٷh$ :ٷh$ lxOڰ f2x۾ >D"#Ď0KŒfK6=Yh$@x[Q Nfз~{ B-U$B,:A@`>6K6 b:EPV+bX+9" 0rґ 煉T.ݫKesB!># @#+6D$0 fжȄud،2 T|0/7qݛ3e[0._W -ݥ'XbYVsg[D+9" #9`X}c ~@K՛[,3(| V?qr,X >\"Ѱyd'3@Xsz všذZ: .pw`XVX d+ԡn @ 6X'H?2##21F#EPd@`)@LۀʲA0`²BD2EA4fL4XB B&K66A v oW+d`lx"+,BX2_@y$bo[fݠȠfݠȠj3jp3¯baжm<2C3jxAOt!VBpʧ :|ͬa>aӀmp<>C*0C6T!O 3T3@2Pe"@eaVXPDMc|aжmE fзP znH~w J,wi㸬|dj(Pe_sG@;1 c#4fN vm: aXs@1 |BY, H9\m~ Y`!' `=-'+6.x2@0O >2U% d,@@:hKw , ςB#ZBnPGZB~[Fe[JOː3$Kc=etk^o> 6Z0kw , `9:`6 ͨO0DVm F@DՀ@jBCmE  ͨO2?,+^jK66q@n}dlP`c %QBVmE uX$ P\r^#``F!Ճ$(6b0 0 jlpkphb3$n~gqXA; +dLJbA:.U 'F@%[JMf_Bٷ 3Vfp9Vo 9Y 2on@n)$ܵ`Vm n\p%dx} rlHQb(Hb ebBBEu ,8 -W+e[p#EVm  ;VHl |ٷ%_B dL!LH)m 0G} fؐ<- fWW+'Ղ$+@lږ:X8xcJ( M`;X` "HR7hy[1>,`͹j|o3@U  @1 A#6?,p/ζH '\wi 8 a^T Ng jY3`^" hVґb % ~ӈhFB!dͧaew t X!}~?VHCMp[' vE lHS0j[."NuR˴ ݥ&KKrkG`Seޤ0"g<'8xN`xx "%% X 7A6C B;X\ 0=-aE !X4fҐוS k (`3 c,!%Q5>3QTc:9E1 MQB2|US#$YAUQ1%:2~!S#/IIJ3ԓP#-1a=B˕dD ppp6ą3i60dW!5NU" d  >*Z"rX -GŻꦈHM N n.Ґ6:+s;Hc6``>m @ z x t5@Kq@3js6ƇC$ tT iC`x`WTE5(MEJ:TMEJkj-fvhxe f! 2W4xD$@!V6 ! 6I.P#?9  /F@CD: gv fX`@FcX 0'XXbVXPp8}_0ii|[,lMpa͗͠p2#TT֣$YQ1%:3z%UTc!UIU%:24%TS#UAUQ J2QV#.YI1 23.QT#"YQ93jQTV#:B5 B2xU#0I95Mj3\,i pf Ef8 n(kn>ip6чm'6ht<#f ͧaorl0b@f ՛cY0 DipDvAVmC(|0h |G@p (v @hé a4B"t %x>aՀ| D W &mm^+&hͧ`4Y65ujkbͭJͮ`1[ `*FIbbd!d*"FD@[h7 :w vK,(;LWi#dMWir9|d m-@t@2" ԓU2@IIZ2 VQV#:II3QT#)a`2 TSc; 5U1J3(:aYIQeB3"QUP&MQ%9%Rp(qmC6mQn!d3m؋6?b+,NOE~?L,"?&Cf&m; VX3@2CtFpLJ͵B(7ElZ !C$";Ic nB @dT89]`[ʷvVA[JC6O2uAdUA|aWil`ee0~GA}`E_ Ri^|. @06Ruc >a`!@`8ͨanO B   jx @E<|+yQp˴O BA00k+tO<= $ax<`&  eUi!`ZVALCVU`UDXMMR;rVSi!`:XVS`5iQ::VSQcMMRk*-fE ,!J @ ,e*p<ǒI)+J#f#(*&2jze@# "F~@222jbf"$"Fo222"J$d!"!FM*22Jrf#'"J"22 fH#(*&#Fh2Bf t3\q!!hDeFhͥ!34 4|f o3@8^,͠ 3h8 *VQSS##@9MQI1MJp>6(pcMVmf@(z?b+ZĦ @͵@("O(,@͵@x"(6͵@ ʈ0?b+ZĮ@ @͵@ -ߗ jf! V?K1Q~ Ji,f[HM˚jBDc`"dYH @ *!q`Σ ! w .W $GRb30lW1BHN:t*$ SLir(D"B!$sH2vƠ5ܾBh \ 7i,fpY$L$A2<\rihp"6ٵͬ$rc8I(!L`^O yfװ PtP~ C: D: E: F: Stat/a *.* Stat Stat/b Screen Xfer/v Debug C L$ G/r$(0) Stat/dt Basic Xfer/cx Xfer/at prt:= .b9R'"2H!c 2%<" $HBNa8`1R$ :'T r ? @ A B C D E F G H I J K L